Substitution for bound positions of infinitary formulas #
BoundedFormulaInf.substBounds σ φ replaces the bound position i of an infinitary formula
φ with m bound positions by the term σ i, whose variables are the free variables α and
k bound positions. Free variables are left in place. Past a quantifier the substitution is
lifted by BoundedFormulaInf.liftSubst: the old positions of the substituted terms shift by
Fin.castSucc, and the newly quantified position goes to the new last position, so no
substituted term is captured by a binder.
Bound substitution generalizes the relabelling BoundedFormulaInf.mapBound, which substitutes
bound positions for bound positions. It instantiates a formula with a bound position at a closed
term (BoundedFormulaInf.inst), as the quantifier clauses of a consistency property require,
and more generally instantiates the n bound positions of a formula at a tuple of terms.
Main definitions #
FirstOrder.Language.BoundedFormulaInf.liftSubst: a bound substitution lifted past a quantifier.FirstOrder.Language.BoundedFormulaInf.substBounds: substitution of terms for bound positions.FirstOrder.Language.BoundedFormulaInf.inst: instantiation of the single bound position of a formula at a term.
Main results #
FirstOrder.Language.BoundedFormulaInf.realize_substBounds: the substituted formula is realized atxsexactly when the original is realized at the values of the substituted terms.FirstOrder.Language.BoundedFormulaInf.substBounds_varandFirstOrder.Language.BoundedFormulaInf.substBounds_substBounds: identity and composition.FirstOrder.Language.BoundedFormulaInf.mapBound_eq_substBounds: relabelling is substitution of bound positions for bound positions.FirstOrder.Language.BoundedFormulaInf.inst_substBounds_liftSubst: instantiating the body of a quantified formula after substituting closed terms extends the tuple of substituted terms.FirstOrder.Language.BoundedFormulaInf.IsAtomic.substBounds: bound substitution keeps atomic formulas atomic.FirstOrder.Language.SentenceInf.realize_inst_of_realize_allandFirstOrder.Language.SentenceInf.realize_inst_of_realize_equal: a universal sentence implies its instances, and equal closed terms can be exchanged in an instance.FirstOrder.Language.LHom.onBoundedFormulaInf_substBounds: language maps commute with bound substitution.FirstOrder.Language.BoundedFormulaInf.relationsIn_substBounds,FirstOrder.Language.BoundedFormulaInf.functionsIn_subset_functionsIn_substBoundsandFirstOrder.Language.BoundedFormulaInf.functionsIn_substBounds_subset: bound substitution keeps the relation symbols, keeps the function symbols, and adds at most the function symbols of the substituted terms.
References #
- The construction follows Mathlib's finitary
BoundedFormula.subst, which substitutes terms for free variables throughTerm.subst, with binders handled as inBoundedFormulaInf.mapBound.
Lift a substitution for bound positions past a quantifier: each substituted term has its
bound positions shifted by Fin.castSucc, and the newly quantified position goes to the new last
position.
Instances For
Substitute terms for the bound positions of an infinitary formula: bound position i is
replaced by σ i, and free variables are kept. Past a quantifier, σ is lifted by
liftSubst, so the substituted terms are not captured.
Instances For
Bound substitution is realization at the substituted values: the substituted formula is
realized at xs exactly when the original is realized at the values of the substituted terms.
Substituting each bound position by itself is the identity.
Two successive bound substitutions are one: substitute σ, then τ into the terms of σ.
Relabelling is bound substitution of bound positions for bound positions.
Instantiation #
Instantiate the single bound position of φ at the term t. For a sentence-level
φ : L.BoundedFormulaInf ι Empty 1 and a closed term t, this is the sentence φ[t].
Instances For
An instance φ[t] holds exactly when φ holds at the value of t.
Instantiating at t the body of a quantified formula whose outer bound positions were
substituted by the closed terms σ substitutes the extended tuple Fin.snoc σ t.
Occurring symbols #
Bound substitution keeps exactly the relation symbols of the formula.
Bound substitution keeps every function symbol of the formula.
Bound substitution adds at most the function symbols of the substituted terms.
Substitution of equals: if the closed terms t and t' are equal in M, the instance
of φ at t' holds whenever the instance at t does.
Language maps commute with bound substitution, acting on the substituted terms.