The local EM context, layer 1: deep interpretation and realize bridges #
The semantic layer of the EMContext re-base, generic over Λ: the deep interpretation of
closed Λ[[J]]-terms in a source model and the realize bridges connecting it to the syntactic
de-substitution pipeline of LocalEMFamily.lean. Mirrors the skolemColim-specific chain of
EMTermModel.lean, with one systematic simplification: every original proof touched the language
structure only through letI := skolemColimStructure L, so here the structure is simply the
ambient instance [Λ.Structure M] — localColimStructure enters only at instantiation sites
(as in LocalEMExtraction.lean). No [Nonempty M] is needed (no Hilbert choice in this layer).
Contents (source lemma in EMTermModel.lean in parentheses):
locDeepInterp(deepInterp) +locDeepInterp_func, and the realization bridgeslocDeepInterp_eq_realize,locDeepInterp_subst,locDeepInterp_onTerm_subst;- the support bridge
locJSupport_onTerm_subst_subset(jSupport_onTerm_subst_subset); - the ordered-position/
Fin-arity bridgeslocDeepInterp_eq_realize_pos,locDeTermFin_realize(deepInterp_eq_realize_fin), and the superset realization invariancelocDeTermFin_realize_superset; - the atom bridges
realize_locDeEqAtom(_superset),realize_locDeRelAtom(_superset)— the superset variants route throughlocDeTermFin_realize_supersetinstead of re-deriving the per-term key inline as the originals do; - the general formula bridge
realize_locDeForm(realize_deForm), consumingrealize_openBounds(imported explicitly fromMethods/Henkin/Construction.lean) andrealize_relabel_sumInr_zero(from theLomega1omegacore).
This file also carries the generic quotient layer: locDeepInterp_snoc, the eventual-equality
relation LocalEMEq (refl/symm) with its support-enlargement engine
(LocalEMEq_eventually_on_superset, eventually_locDeepInterp_superset_iff,
eventually_locRelMap_superset_iff), the LocalEMContext standing-data structure, and (in the
Quotient section) the carrier + Λ[[J]]-Structure. The tail-indiscernibility predicate
IsLomega1omegaIndiscernibleOnTail comes from the neutral Methods/TailIndiscernible.lean, so this
file stays EM-free.
Next layers (subsequent chunks): the skolemNeedSymbol witness-term transport and the
family-membership-carrying restricted truth lemma.
Support of substituted base-language terms (syntactic) #
Support of a base-language term after substitution: substituting the closed terms ts
for the free variables of a base-language term (onTerm t) (which itself carries no
J-constants, being a Λ-image) produces only the J-constants of the ts. The bridge from a
uniform support hypothesis S ⊇ ⋃ locJSupport (ts i) to the per-atom support hypotheses of the
congruence layer.
Deep interpretation #
The deep interpretation of a closed Λ[[J]]-term at depth d relative to a support S:
interpret each J-constant c_j by the source sequence at position d + deepRank S j (so
support constants map to a strictly-increasing deep tuple of a), and evaluate in M's ambient
Λ-structure.
Equations
- Λ.locDeepInterp J a d S t = FirstOrder.Language.Term.realize Empty.elim t
Instances For
Deep interpretation commutes with function application (same depth and support): it is the
structure's funMap of the argument interpretations. Immediate from Term.realize.
De-substitution bridge: the deep interpretation of a closed term equals the
de-substituted Λ-term constantsToVars t (each skeleton constant c_j turned into the
variable Sum.inl j) realized with j ↦ a (d + deepRank S j). Turns the support machinery from
combinatorial into semantic — the right-hand side is a genuine formula realization, so tail
indiscernibility applies.
M-side term substitution: the deep interpretation of a substituted term is the
realization (in M's [[J]]-structure at depth d) of the body on the deep interpretations of
the substituted terms. Mostly Term.realize_subst (deep interpretation is realization in the
depth-d structure).
Deep interpretation of a base-language substituted term: combining locDeepInterp_subst
with realize_onTerm, the deep interpretation of (onTerm t).subst ts equals t realized in
M's ambient Λ-structure on the deep interpretations of the substituted terms.
Ordered-position realize bridge: the deep interpretation is the realize of the
ordered-position de-substituted term on the consecutive deep tuple n ↦ a (d + n) — exactly
the shape tail indiscernibility consumes (a strictly-increasing deep tuple).
Fin-arity realize bridge: the deep interpretation is the realize of the
Fin S.card-indexed de-substituted term on the consecutive deep tuple i ↦ a (d + i), directly
feeding the atoms.
Superset realization invariance: the Fin-arity de-substituted term over S, realized
on the T-induced deep tuple i ↦ a (d + deepRank T (orderEmbOfFin S i)), equals the deep
interpretation over the larger support T. The core shared by the equality- and relation-atom
superset bridges (restrictVar realize with a dite-extended assignment, then
realize_eq_of_eq_on_varFinset to discard the junk, then orderEmbOfFin_deepRank).
Atom and formula realize bridges #
Equality-atom realize bridge: the local de-substituted equality atom holds on the
consecutive deep tuple i ↦ a (d + i) iff t and u have equal deep interpretations at depth
d over S.
Superset equality-atom bridge: the same atom over S, realized on the T-induced deep
tuple (S ⊆ T), holds iff t and u have equal deep interpretations over T. One
arity-S.card formula carries both the S-truth (consecutive tuple) and the T-truth (this
strictly-increasing tuple) — the input to tail indiscernibility.
Relation-atom realize bridge: the local de-substituted relation atom holds on the
consecutive deep tuple iff R holds in M on the deep interpretations over S.
Superset relation-atom bridge: the same relation atom over S, realized on the
T-induced deep tuple (S ⊆ T), holds iff R holds in M on the deep interpretations over
T. Via locDeTermFin_realize_superset.
General formula realize bridge (generalizes the atom bridges): the local de-substituted
formula holds on the consecutive deep tuple i ↦ a (d + i) iff φ holds in M's ambient
Λ-structure on the deep interpretations of ts at depth d over S.
Deep interpretation commutes with Fin.snoc: interpreting the one-point extension
Fin.snoc ts u gives the snoc of the interpretations. Semantic prep for the later truth lemma's
all case (relating the carrier's ∀x over term-classes to the body's argument tuple).
Eventual deep equality: closed terms t, u are identified when, for all sufficiently deep
interpretations of their combined skeleton support, they evaluate equally in M. (The combined
support means both terms are read against the same ordered finite skeleton.)
Equations
- Λ.LocalEMEq J a t u = ∀ᶠ (d : ℕ) in Filter.atTop, Λ.locDeepInterp J a d (Λ.locJSupport J t ∪ Λ.locJSupport J u) t = Λ.locDeepInterp J a d (Λ.locJSupport J t ∪ Λ.locJSupport J u) u
Instances For
Support-enlargement invariance (the atom-slice payoff): if t, u are eventually deep-equal
on their combined support S₀ (i.e. LocalEMEq t u) and the de-substituted equality atom of S₀
lies in a tail-indiscernible family Γ, then they are eventually deep-equal on any larger support
S ⊇ S₀. Tail indiscernibility identifies the truth of the one arity-S₀.card atom on the
consecutive S₀-tuple and on the strictly-increasing S-tuple; the two atom bridges convert those
to the S₀- and S-deep equalities. The unlock for LocalEMContext.trans and congruence.
Support-enlargement iff (the symmetric core): on the deep tail the deep equality over the
combined support S₀ is equivalent to the deep equality over any larger support S ⊇ S₀. Both
directions — descending from a larger support back to S₀ is what LocalEMContext.trans needs.
Relation support-independence (the relation analogue of the previous iff): on the deep
tail, the truth of R on the deep interpretations over the combined support S₀ of the arguments is
equivalent to its truth over any larger support S ⊇ S₀. Makes the quotient RelMap independent of
the chosen common support.
The local EM quotient context #
To avoid threading the indiscernible sequence, its tail-indiscernible family, and the atomic-diagram
membership through every congruence proof, we bundle them in a LocalEMContext. Every quotient
operation then uses LocalEMEq_eventually_on_superset (via the support-enlargement iff) as its
standing congruence engine. Generic over Λ and [Λ.Structure M]; the countable local instance is
built in LocalEMExtraction.lean.
The standing data for the local EM quotient over a fixed source model M: a sequence a of
deep indiscernibles, a tail-indiscernible family Γ, and the fact that every de-substituted atom
lies in Γ. The structure accepts an arbitrary Γ; the countable local family ΓEMlocal and its
tail-indiscernible sequence discharge these fields at instantiation (LocalEMExtraction.lean).
- a : ℕ → M
The deep indiscernible sequence.
- Γ : Set ((n : ℕ) × Λ.BoundedFormulaω Empty n)
The tail-indiscernible formula family.
- hind : IsLomega1omegaIndiscernibleOnTail self.a self.Γ
- atom_mem (S : Finset J) (t u : (Λ.withConstants J).Term Empty) (ht : Λ.locJSupport J t ⊆ S) (hu : Λ.locJSupport J u ⊆ S) : ⟨S.card, Λ.locDeEqAtom J S t u ht hu⟩ ∈ self.Γ
Every de-substituted equality atom is in
Γ. - rel_mem (S : Finset J) {l : ℕ} (R : Λ.Relations l) (ts : Fin l → (Λ.withConstants J).Term Empty) (ht : ∀ (i : Fin l), Λ.locJSupport J (ts i) ⊆ S) : ⟨S.card, Λ.locDeRelAtom J S R ts ht⟩ ∈ self.Γ
Every de-substituted relation atom is in
Γ.
Instances For
Support monotonicity: an argument's skeleton support is contained in the whole term's.
Transitivity of LocalEMEq (the congruence engine's first payoff): enlarge to the union of
all three supports, transport both hypotheses up to it via the enlargement iff, chain the
equalities in M, and descend back to the (t,v)-support.
Function congruence: if the arguments are pairwise LocalEMEq, so are the function terms.
Enlarge every argument's deep equality up to the whole term's support, combine the finitely many
eventual equalities, and apply locDeepInterp_func.
LocalEMEq is an equivalence relation on closed terms (refl/symm need no context; trans is
LocalEMContext.trans).
Equations
Instances For
The local EM term-model carrier for a context: closed Λ[[J]]-terms modulo LocalEMEq.
Equations
Instances For
A closed term as an element of the carrier.
Equations
- FirstOrder.Language.LocalEMContext.mkClass Λ J ctx t = ⟦t⟧
Instances For
A common support covering all argument representatives — the support over which a relation's deep truth is read.
Equations
- FirstOrder.Language.LocalEMContext.commonSupport Λ J ctx xs = Finset.univ.biUnion fun (i : Fin n) => Λ.locJSupport J (Quotient.out (xs i))
Instances For
The local EM term-model structure on the carrier: function symbols act by term formation
f([t̄]) := [func f t̄] (skeleton constants are the arity-0 case), and a relation holds iff it holds
in M on the deep interpretations for all sufficiently deep d (read over a common support of the
arguments). Well-definedness is proved separately via the enlargement-invariance congruence engine.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Function interpretation computes on classes (well-definedness): applying the interpreted
function symbol to a tuple of term-classes gives the class of the function term. Immediate from
func_congr and Quotient.out_eq. (The arity-0 case is constMap_mkClass.)
The arity-0 case: a skeleton constant c_j (or any Λ-constant) interprets as the class of its
constant term.
Relation congruence on terms (helper): changing a finite tuple of argument terms by
LocalEMEq, all over a fixed covering support T, preserves the eventual deep truth of a relation.
Combines the per-term equality invariance over T with Filter.eventually_all.
Relation interpretation computes on classes (well-definedness): the interpreted relation
holds on a tuple of term-classes iff it holds in M on the deep interpretations for all sufficiently
deep d, over any support S covering the arguments — independent of the representatives and of
the chosen support. The relation analogue of funMap_mkClass, via a bridge support T = S ∪ Sout.
The base Λ-structure on the carrier: the reduct of the term-model [[J]]-structure along
the skeleton-constant inclusion (a base function/relation symbol acts as its Sum.inl image).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Map-language plumbing: the skeleton-constant inclusion Λ → Λ[[J]] is an expansion of the
carrier's base structure to its term-model [[J]]-structure (definitional, as the [[J]]-structure
interprets Sum.inl symbols by the base reduct). Lets realize_mapLanguage transfer realizations of
base-language formulas.