Constant surgery: substituting one constant for another #
The neutral constant-surgery layer. substConst b a ρ replaces the constant c_b by c_a
throughout ρ, built from the existing abstraction/instantiation pair, together with its
realization, symbol, constant-support and quantifier-occurrence laws.
Nothing here is specific to interpolation: this is the reusable operation tracked by issue #39
(neutral L_ω₁ω syntax-analysis and constant-surgery API), extracted early because the cross-label
equality/relation transfer of the Malitz arc is its first consumer. The decisive law is
hasQuantSigned_substConst: substitution moves no quantifier occurrence, which is what lets a
consumer replace a constant in a separator without spending a quantifier permission.
The instConst dependency is why this file currently sits under Methods beside the interpolation
machinery rather than in the syntax layer; #39's consolidation is where that is resolved.
Constant-for-constant substitution #
The machinery the cross-label equality/relation transfers need, and the reason they are the riskiest gate: when the relation atom and the equality atom sit on different labels, the derived atom is entailed by neither side alone, and the separator of the extended pair may legitimately mention a constant that only the other side carries. Feferman's condition (iii) then forces that constant out of the separator — and the operation that does it is substitution of the shared partner, not quantification.
substConst b a ρ replaces the constant c_b by c_a throughout ρ, built from the existing
abstraction/instantiation pair.
Replace the constant c_b by c_a: abstract b into the free variable, then instantiate at
a.
Equations
Instances For
Realizing the substitution is realizing the original with b reinterpreted at a's value.
The substituted constant is gone, provided it was not the substitute.
Constant abstraction does not move the signed quantifier occurrences.
Substitution does not move the signed quantifier occurrences: the budgets are untouched.