Documentation

InfinitaryLogic.Methods.Henkin.CountableCompletion.QuotientTermModel

The quotient term model and its atomic semantics (issue #8, commit 5a) #

From a Henkin-complete set S (the output of commit 4b's exists_henkinComplete_of_root) over the relational core L[[ℕ]], this file builds the closed-term quotient model and establishes its atomic semantics — everything the forward truth lemma (commit 5b) needs below formula induction.

Over a relational base every closed L[[ℕ]]-term collapses to a constant (exists_eq_constTerm), so the equality relation on closed terms is the constant equality constEq · · ∈ S, and the HenkinComplete atomic fields (eq_refl/eq_symm/eq_trans, rel_congr) supply exactly the constant-specialized equality and congruence laws.

Acceptance lemmas #

These atomic biconditionals are legitimate — they follow from the quotient definition, atomic congruence, and C0 alone. There is no M ⊨ φ ↔ φ ∈ S for arbitrary φ.

The relational collapse of closed terms #

The constant a closed term collapses to over the relational core.

Equations
Instances For

    The quotient carrier #

    The equality relation on closed terms: their collapsed constants are S-equal.

    Equations
    Instances For

      The equality relation is an equivalence (from the atomic equality fields of S).

      The setoid on closed terms.

      Equations
      Instances For

        The class of a closed term.

        Equations
        Instances For

          Iterated tuple congruence for relation instances #

          theorem FirstOrder.Language.relInst_congr {L : Language} {U S : Set (L.withConstants ).Sentenceω} (hsc : HenkinComplete U S) {l : } (R : L.Relations l) (g g' : Fin l) (h : ∀ (i : Fin l), constEq (g i) (g' i) S) (hg : relInst R g S) :
          relInst R g' S

          Coordinatewise relation congruence: S-equal argument tuples give the same relation membership. Iterates the atomic one-coordinate congruence HenkinComplete.rel_congr.

          theorem FirstOrder.Language.relInst_congr_iff {L : Language} {U S : Set (L.withConstants ).Sentenceω} (hsc : HenkinComplete U S) {l : } (R : L.Relations l) (g g' : Fin l) (h : ∀ (i : Fin l), constEq (g i) (g' i) S) :
          relInst R g S relInst R g' S

          The tuple congruence as an iff (using equality symmetry for the reverse).

          The L[[ℕ]]-structure on the quotient #

          @[implicit_reducible]

          The quotient term model as an L[[ℕ]]-structure. Function interpretation is the constant embedding (higher arities are empty over the relational core); RelMap on a quotient tuple holds iff some constant representatives make the atomic relation instance a member of S.

          Equations
          • One or more equations did not get rendered due to their size.

          Closed-term evaluation is its quotient class.

          Positive and negative atomic realization #

          theorem FirstOrder.Language.relMap_qmk_iff {L : Language} [L.IsRelational] {U S : Set (L.withConstants ).Sentenceω} (hsc : HenkinComplete U S) {l : } (R : L.Relations l) (g : Fin l) :
          (Structure.RelMap (Sum.inl R) fun (i : Fin l) => qmk hsc (constTerm (g i))) relInst R g S

          RelMap of a constant tuple reflects to atomic membership. Forward reflects through the representatives chosen by the relation map (via the tuple congruence); backward is the identity representative.

          theorem FirstOrder.Language.qmk_eq_of_mem {L : Language} [L.IsRelational] {U S : Set (L.withConstants ).Sentenceω} (hsc : HenkinComplete U S) (a b : ) (hmem : constEq a b S) :
          qmk hsc (constTerm a) = qmk hsc (constTerm b)

          Positive atomic (equality).

          Negative atomic (equality). Closes with C0 — not maximality.

          theorem FirstOrder.Language.relMap_of_mem {L : Language} [L.IsRelational] {U S : Set (L.withConstants ).Sentenceω} (hsc : HenkinComplete U S) {l : } (R : L.Relations l) (g : Fin l) (hmem : relInst R g S) :
          Structure.RelMap (Sum.inl R) fun (i : Fin l) => qmk hsc (constTerm (g i))

          Positive atomic (relation).

          theorem FirstOrder.Language.not_relMap_of_neg_mem {L : Language} [L.IsRelational] {U S : Set (L.withConstants ).Sentenceω} (hsc : HenkinComplete U S) {l : } (R : L.Relations l) (g : Fin l) (hmem : BoundedFormulaω.not (relInst R g) S) :
          ¬Structure.RelMap (Sum.inl R) fun (i : Fin l) => qmk hsc (constTerm (g i))

          Negative atomic (relation). Reflects through the relation map's chosen representatives, then closes with C0 — not maximality.