Ehrenfeucht–Mostowski templates for Lω₁ω #
This file introduces the intermediate object that bridges Lω₁ω-indiscernible
sequences and Ehrenfeucht–Mostowski (EM) stretching: a template assigns to
each n and each formula φ : L.BoundedFormulaω Empty n the truth value of
φ on increasing n-tuples drawn from an indiscernible sequence. A second
sequence b : J → N realizes the template if its truth values on increasing
tuples agree with the template's.
Main definitions #
Lomega1omegaTemplate L: a template for an Lω₁ω formula languageL, i.e. an assignmentφ ↦ Propfor everyφ : L.BoundedFormulaω Empty n.Lomega1omegaTemplate.RealizesOn T b: a sequenceb : J → Nrealizes the templateTif every formula's truth value on every strictly increasing tuple fromJagrees withT φ.IsLomega1omegaIndiscernible.template: the template induced by an indiscernible sequence, defined existentially (so well-defined without any extra assumption on the index set).
Main results #
IsLomega1omegaIndiscernible.template_truth_iff: well-definedness — the template's value atφagrees withφ.Realize (a ∘ s)for any strictly increasing tuples. Usesiff_realizefromIndiscernible.lean.IsLomega1omegaIndiscernible.realizesTemplate: an indiscernible sequence realizes its own template.IsLomega1omegaIndiscernible.realizesTemplate_restrict: restricting the index set along an order embedding still realizes the same template.IsLomega1omegaIndiscernible.template_reindex: reindexing along an order isomorphism produces a definitionally equal template.
This file does not prove anything about EM stretching itself; it only sets up the template object and its basic invariance properties.
A template for the language L of Lω₁ω formulas: an assignment of a truth
value to every Lω₁ω formula in every arity, with no free variables. Intended to
record the "common truth value on increasing n-tuples" of an indiscernible
sequence.
- truth {n : ℕ} : L.BoundedFormulaω Empty n → Prop
The truth value assigned to a formula.
Instances For
A sequence b : J → N realizes a template T if for every formula φ and
every strictly increasing n-tuple t : Fin n → J, the truth value of φ on
b ∘ t agrees with T.truth φ.
Equations
- T.RealizesOn b = ∀ {n : ℕ} (φ : L.BoundedFormulaω Empty n) {t : Fin n → J}, StrictMono t → (T.truth φ ↔ φ.Realize Empty.elim (b ∘ t))
Instances For
Template associated with a bare sequence a : I → M — same body as
IsLomega1omegaIndiscernible.template but without the indiscernibility
hypothesis (the existing definition discards that hypothesis in its data
anyway). Used by the restricted-indiscernibility API (_on variants).
Equations
- FirstOrder.Language.templateOfSeq a = { truth := fun {n : ℕ} (φ : L.BoundedFormulaω Empty n) => ∃ (s : Fin n → I), StrictMono s ∧ φ.Realize Empty.elim (a ∘ s) }
Instances For
The template induced by an indiscernible sequence: the truth value at φ
is the existential statement that some strictly increasing n-tuple in I
makes φ true. By indiscernibility (see template_truth_iff) this is
equivalent to "every such tuple makes φ true", and to "any specific witness
makes φ true".
Equations
- x✝.template = { truth := fun {n : ℕ} (φ : L.BoundedFormulaω Empty n) => ∃ (s : Fin n → I), StrictMono s ∧ φ.Realize Empty.elim (a ∘ s) }
Instances For
The hypothesis-bearing template equals the bare templateOfSeq. Proof
is rfl because the existing template discards its indiscernibility
argument in its data.
Well-definedness of template: the template's value at φ equals the
truth value of φ on any specific strictly increasing tuple. This is the
existential-vs-universal collapse provided by indiscernibility.
An indiscernible sequence realizes its own template.
Restricting an indiscernible sequence to a sub-order along an order
embedding e : J ↪o I produces a sequence that realizes the same template
as the original. (The template object is built from h, not h.restrict e.)
Reindexing an indiscernible sequence by an order isomorphism e : J ≃o I
produces a sequence that realizes the same template.
Reindexing an indiscernible sequence by an order isomorphism produces a
template equal to the original. (Restricting along a non-surjective order
embedding generally does not produce an equal template — only the realisation
direction is preserved; see realizesTemplate_restrict.)
Restricted-indiscernibility API for templateOfSeq #
Restricted template_truth_iff: the templateOfSeq's value at a
formula φ ∈ Γ equals the truth value of φ on any strictly-increasing
tuple, provided the source sequence is restricted-indiscernible on Γ.
This mirrors IsLomega1omegaIndiscernible.template_truth_iff but uses the
weaker IsLomega1omegaIndiscernibleOn hypothesis and compares against
templateOfSeq a (the hypothesis-free template).