Documentation

InfinitaryLogic.Methods.Henkin.CountableCompletion.QuotientTruthLemma

The forward truth lemma for the quotient term model (issue #8, commit 5b) #

From a Henkin-complete set S over the relational core L[[ℕ]], QuotientTermModel.lean (commit 5a) built the closed-term quotient model QModel hsc and its atomic semantics. This file lifts that to the full forward, polarity-sensitive truth lemma and packages a consumer-shaped model-existence theorem.

Discipline #

The truth lemma is not a biconditional M ⊨ φ ↔ φ ∈ S. It is two separate forward implications — one per polarity — proven together by a single simultaneous recursion:

No excluded middle / by_cases on membership _ ∈ S, and no maximality/decisiveness of S, is used anywhere. Every step is driven by a constructive HenkinComplete field:

The all case (depth-measure recursion) #

The quantifier cases are handled by well-founded recursion on an ordinal depth measure, mirroring the shape of the legacy Methods/Henkin/Construction.lean truth lemma: from (all body) ∈ S the all_inst field yields, for every constant c, the sentence instConst c body = (body.openBounds).subst (fun _ => constTerm c), whose depth is strictly smaller than that of all body; recursion on that sentence plus realize_instConst_qmodel and surjectivity of qmk discharges the universal (dually for the negated universal via neg_all_witness).

The Empty ⊕ Fin 0 sentence-term bridge #

Sentence atomics equal t u / rel R ts carry terms in L[[ℕ]].Term (Empty ⊕ Fin 0). Since both Empty and Fin 0 are uninhabited, every such term is ground; we collapse it to L[[ℕ]].Term Empty (a re-statement of the private helpers in Methods/Henkin/Construction.lean).

Collapse a sentence-atomic term (variables in the uninhabited Empty ⊕ Fin 0) to a closed Term Empty.

Equations
Instances For

    Relabeling a toGround-collapsed term back to Empty ⊕ Fin 0 recovers the original.

    Evaluating a sentence-atomic term with any assignment equals evaluating its toGround collapse with Empty.elim (both variable types are uninhabited).

    closeBy and its realization (validated commit-5b foundation) #

    theorem FirstOrder.Language.realize_closeBy {L : Language} [L.IsRelational] {U S : Set (L.withConstants ℕ).Sentenceω} {n : ℕ} (hsc : HenkinComplete U S) (φ : (L.withConstants ℕ).BoundedFormulaω Empty n) (τ : Fin n → ℕ) :
    (closeBy φ τ).Realize (QModel hsc) ↔ φ.Realize Empty.elim fun (i : Fin n) => qmk hsc (constTerm (τ i))

    Realizing closeBy φ τ in QModel hsc is realizing φ at the classes of the constants τ.

    The constant instance instConst c body realizes in QModel hsc exactly as body at the class of c in its single variable. This is the semantic bridge the all case consumes; it needs no syntactic substitution-composition identity.

    Surjectivity of the quotient map #

    theorem FirstOrder.Language.qmk_surjective {L : Language} [L.IsRelational] {U S : Set (L.withConstants ℕ).Sentenceω} (hsc : HenkinComplete U S) (x : QModel hsc) :
    ∃ (c : ℕ), x = qmk hsc (constTerm c)

    Every element of the quotient term model is the class of some constant.

    Ordinal depth: strict decrease for the constant instance #

    The generic preservation/strict-decrease calculus for BoundedFormulaω.depth now lives in the neutral Lomega1omega/Depth.lean (shared with Methods/Henkin/Construction.lean); only the instConst combination is derived here.

    Two small realization bookkeeping facts #

    A ground sentence-atomic term is the standard constant term of its collapsed constant.

    The simultaneous forward truth lemma #

    truth_both hsc σ bundles the two polarities. It is a single well-founded recursion on σ.depth: connectives recurse on structural subformulas (strictly smaller depth), and the all case recurses on instConst c body (a sentence of strictly smaller depth).

    The forward, polarity-sensitive truth lemma (bundled). For every sentence σ, membership in S forces truth in QModel hsc (positive), and membership of σ.not forces falsity (negative). Proven by one simultaneous well-founded recursion on the ordinal depth of σ.

    theorem FirstOrder.Language.truth_pos {L : Language} {U S : Set (L.withConstants ℕ).Sentenceω} [L.IsRelational] (hsc : HenkinComplete U S) {n : ℕ} (φ : (L.withConstants ℕ).BoundedFormulaω Empty n) (τ : Fin n → ℕ) (hmem : closeBy φ τ ∈ S) :
    φ.Realize Empty.elim fun (i : Fin n) => qmk hsc (constTerm (τ i))

    Forward truth lemma, positive polarity (open form). If the constant closure closeBy φ τ belongs to S, then φ is realized in QModel hsc at the classes of the constants τ. A thin realize_closeBy wrapper over the sentence-level engine truth_both.

    theorem FirstOrder.Language.truth_neg {L : Language} {U S : Set (L.withConstants ℕ).Sentenceω} [L.IsRelational] (hsc : HenkinComplete U S) {n : ℕ} (φ : (L.withConstants ℕ).BoundedFormulaω Empty n) (τ : Fin n → ℕ) (hmem : BoundedFormulaω.not (closeBy φ τ) ∈ S) :
    ¬φ.Realize Empty.elim fun (i : Fin n) => qmk hsc (constTerm (τ i))

    Forward truth lemma, negative polarity (open form). If the negation of the constant closure closeBy φ τ belongs to S, then φ is not realized in QModel hsc at the classes of the constants τ.

    The consumer model-existence theorem #

    Model existence from a Henkin-complete set. The quotient term model is a nonempty L[[ℕ]]-structure realizing every member of S and falsifying every sentence whose negation is in S. Both polarities are exposed for members of S.