The local EM truth lemma, layer 1: truth kernel + Skolem-witness transport #
This file assembles the pieces the restricted local truth lemma consumes, in two parts.
The generic truth kernel (section TruthKernel, over any [Λ.Structure M]): the eventual-deep-
truth predicate LocalEMContext.eventualDeepTruth, the carrier substitution bridge
realize_term_mkClass, the atom cases eventualDeepTruth_equal_iff/_rel_iff, the 0-1 decidedness
law eventualDeepTruth_decided, the imp/falsum connective cases (eventually_imp_iff_imp_eventually,
eventualDeepTruth_falsum_iff, eventualDeepTruth_imp_iff), and the all-case class/snoc bridge
mkClass_snoc. Ported from EMTermModel.lean:820–1115. These are generic over Λ (they touch only
the generic quotient structure + realize bridges), so no localColim-specific plumbing is needed.
The Skolem-witness transport (section WitnessTransport, over localColim s₀): the restricted
truth lemma's all case (∀ψ) needs, in the source model, the Hilbert-choice witness of ¬ψ as an
actual closed term of (localColim s₀)[[J]], together with the semantic "witness universality" it
delivers. This part builds exactly that transport, mirroring the
skWitnessTerm/deepInterp_skWitness/skWitness_universal chain of EMTermModel.lean but over the
countable local tower:
locSkWitnessTerm— the colimit-level witness term for a stage-kuniversal∀ψ ∈ Γlocal s₀ k, built from the local Skolem symbolskolemNeedSymbol h(witnessing∃ xₙ, ¬ψ), included throughLlocalInclusion s₀ (k+1)and thenlhomWithConstants;locJSupport_locSkWitnessTerm— its head is anL-function symbol, not aJ-constant, so itsJ-support is just the union of the arguments';locDeepInterp_skWitness— its deep interpretation is exactly the Hilbert-choice value for¬ψon the deep interpretations of the arguments (thelocalColimStructure/localStageStructure/localSkolemStructurefunMap coherence is fully definitional, so this isrflafter unfolding);locSkWitness_universal— the Skolem-axiom transport: ifψholds at the deep tuple extended by the witness's deep value, then it holds at everyM-element. Powered bylocalSkolem_funMap_spec(inLocalSkolem.lean) and the realization transportrealize_map_LlocalInclusion.
This is the local analogue of EMTermModel.lean:114–180. It is a pure file (imports
LocalEMContext, not the Conditional-touching LocalEMExtraction) so the local context/truth stack
stays off the EM stack.
The generic truth kernel #
The atom/connective rewrite API and the eventual-deep-truth decidedness fact, generic over any
[Λ.Structure M] (they only touch the generic quotient structure of LocalEMContext.lean plus the
realize_locDeForm/locDeepInterp_onTerm_subst bridges — no localColim-specific plumbing). The
OmegaComplete mixin, TLReady, and the staged induction are later layers.
Eventual deep truth of a base-language formula φ on a tuple of closed argument terms over a
support S: φ holds in M on the deep interpretations of the terms, for all sufficiently deep d.
The right-hand side of the restricted truth lemma. Local analogue of EMContext.eventualDeepTruth.
Equations
- FirstOrder.Language.LocalEMContext.eventualDeepTruth Λ J ctx φ ts S = ∀ᶠ (d : ℕ) in Filter.atTop, φ.Realize Empty.elim fun (i : Fin n) => Λ.locDeepInterp J ctx.a d S (ts i)
Instances For
Carrier-side term substitution: realizing a term in the local EM term model under the
assignment Sum.elim Empty.elim (mkClass ∘ ts) gives the class of the substituted closed term. By
induction on the term, using funMap_mkClass. Local analogue of EMContext.realize_term_mkClass.
Truth lemma, equality-atom case: realizing a base-language equality atom in the local EM term
model on a tuple of term-classes is equivalent to its eventual deep truth. Carrier side via
realize_term_mkClass; quotient side via Quotient.eq; deep side via
eventually_locDeepInterp_superset_iff and locDeepInterp_onTerm_subst.
Truth lemma, relation-atom case: realizing a base-language relation atom in the local EM term
model on a tuple of term-classes is equivalent to its eventual deep truth. Carrier side via
realize_term_mkClass; then relMap_mkClass_iff; deep side via locDeepInterp_onTerm_subst.
0-1 law for eventual deep truth (the unlock for the truth lemma's imp/connective cases): if
the de-substituted formula locDeForm S φ ts lies in the tail-indiscernible family Γ, then φ's
eventual deep truth is decided. The value is eventually constant because tail indiscernibility makes
all sufficiently-deep consecutive tuples agree on the single arity-S.card formula. Local analogue of
EMContext.eventualDeepTruth_decided.
An eventual implication splits as an implication of eventuals exactly when the antecedent's
eventual truth is decided. The Filter fact behind the truth lemma's imp case — only the
antecedent's decidedness is needed.
Truth lemma, falsum case (eventual-deep-truth side): falsum has no eventual deep truth.
Immediate from Filter.eventually_const (atTop on ℕ is NeBot).
Truth lemma, imp case (eventual-deep-truth side): the eventual deep truth of φ ⟹ ψ is the
implication of their eventual deep truths, provided φ's eventual deep truth is decided (supplied by
eventualDeepTruth_decided). Local analogue of EMContext.eventualDeepTruth_imp_iff.
Forming classes commutes with Fin.snoc: the carrier tuple obtained by snocing mkClass u onto
mkClass ∘ ts is mkClass ∘ (Fin.snoc ts u). The bridge between the carrier-side ∀x (over
term-classes) and the term-side Fin.snoc ts u in the all case. Local analogue of
EMContext.mkClass_snoc.
Local Skolem-witness transport (over localColim s₀) #
The colimit-level local Skolem-witness term for a stage-k universal ∀ψ ∈ Γlocal s₀ k:
the local Skolem symbol skolemNeedSymbol h (witnessing ∃ xₙ, ¬ψ), in the localSkolem summand of
Llocal s₀ (k+1), included through LlocalInclusion s₀ (k+1) and then lhomWithConstants, applied
to the closed argument terms ts. Local analogue of skWitnessTerm.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The witness term mentions only the J-constants of its arguments (its head is an
L-function symbol, not a skeleton constant), so its support is covered whenever the arguments' is.
Local analogue of jSupport_skWitnessTerm.
Deep value of the local Skolem-witness term: it is exactly the Hilbert-choice value for ¬ψ
on the deep interpretations of the arguments (read in the source model's stage-k structure). The
localColimStructure/localStageStructure/localSkolemStructure funMap coherence is fully
definitional, so this is rfl after the term/funMap unfolding. Local analogue of
deepInterp_skWitness.
Local Skolem-witness universality (the contrapositive Skolem axiom, transported to the deep
tuple): if the body ψ holds at the deep interpretation of its Skolem-witness term (for ¬ψ), then
it holds at every M-element. The Skolem input consumed inline by the all case of the local
truth lemma. Local analogue of skWitness_universal.