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:
- connectives —
imp/neg_imp/iInf/neg_iInf/iSup/neg_iSup; - quantifiers —
all_inst(positive) andneg_all_witness(negative) only; - atomics — the commit-5a quotient API (
qmk_eq_of_mem/qmk_ne_of_neg_mem/relMap_of_mem/not_relMap_of_neg_mem), with theEmpty ⊕ Fin 0sentence-term bridge below; - contradictions —
no_falsum/no_contradiction(C0).
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
- (FirstOrder.Language.var (Sum.inl e)).toGround = e.elim
- (FirstOrder.Language.var (Sum.inr i)).toGround = i.elim0
- (FirstOrder.Language.func f ts).toGround = FirstOrder.Language.func f fun (i : Fin l) => (ts i).toGround
Instances For
Evaluating a sentence-atomic term with any assignment equals evaluating its toGround collapse
with Empty.elim (both variable types are uninhabited).
The closing substitution of a bounded formula by constants.
Equations
- FirstOrder.Language.closeBy φ τ = FirstOrder.Language.BoundedFormulaω.subst φ.openBounds fun (i : Fin n) => FirstOrder.Language.constTerm (τ i)
Instances For
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 #
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 σ.
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.
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.