Abstracting constants out of terms #
A term of the constant expansion L[[γ]] mentions only finitely many of the new constants, so it
is obtained from a term of L by substituting a tuple of constants for its bound positions. In an
expansion of an L-structure, such a term evaluates to the value of the term of L at the
values of the constants.
Main results #
FirstOrder.Language.Term.exists_finite_forall_onTerm_subst_eq: the constants of a term ofL[[γ]]lie in a finite set, and the term abstracts over every tuple listing that set.FirstOrder.Language.Term.exists_onTerm_subst_eq: every term ofL[[γ]]without bound positions is obtained from a term ofLby substituting constants for its bound positions.FirstOrder.Language.Term.realize_onTerm_subst_con: the value of such a term in an expansion.FirstOrder.Language.Term.exists_eq_con_of_isRelational: over a relational language, a closed term ofL[[γ]]is a constant.FirstOrder.Language.coe_con_constantsOn_structure: in the expansion interpreting each constantcase c, the constantL.con cis interpreted ase c.
In the expansion of an L-structure interpreting each constant c of constantsOn γ as
e c, the constant L.con c of L[[γ]] is interpreted as e c.
Every term of L[[γ]] whose variables are free variables abstracts to a term of L: there is
a finite set of constants such that, at every tuple listing them, the term is obtained from a
term of L by substituting the constants of the tuple for its bound positions.
Terms abstract their constants: a term of L[[γ]] whose variables are free variables is
obtained from a term of L by substituting a tuple of constants for its bound positions.
Over a relational language, a term of L[[γ]] without variables is one of the constants.
The value of a term of L with constants substituted for its bound positions, in an expansion
of an L-structure, is its value at the values of the constants.