Documentation

InfinitaryLogic.Methods.Interpolation.PairedInsepFamily

The paired inseparable-pair consistency family and its model (issue #8, commit 4c part 2) #

This file assembles the paired finite inseparable-pair family on top of the validated cross-coordinate gates (PairedInseparability.lean) and the one-sided left closures (InseparablePairFamily.lean). A family member is a U-bounded, symmetrically support-budgeted pair (Γ, Δ) with Γ ⊆ SentBnd F₁ R₁, Δ ⊆ SentBnd F₂ R₂, inseparable at the shared vocabulary (F₁ ∩ F₂, R₁ ∩ R₂).

The side vocabulary predicate SentBnd #

def FirstOrder.Language.SentBnd {L : Language} (F : Set ((n : ) × L.Functions n)) (R : Set ((n : ) × L.Relations n)) :

Side vocabulary bound. A sentence whose base function/relation symbols lie in (F, R).

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

    SentBnd closure lemmas #

    theorem FirstOrder.Language.sentBnd_imp_left {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} {φ ψ : (L.withConstants ).Sentenceω} (h : BoundedFormulaω.imp φ ψ SentBnd F R) :
    φ SentBnd F R
    theorem FirstOrder.Language.sentBnd_imp_right {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} {φ ψ : (L.withConstants ).Sentenceω} (h : BoundedFormulaω.imp φ ψ SentBnd F R) :
    ψ SentBnd F R
    theorem FirstOrder.Language.sentBnd_component_iInf {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} {φs : (L.withConstants ).Sentenceω} (k : ) (h : BoundedFormulaω.iInf φs SentBnd F R) :
    φs k SentBnd F R
    theorem FirstOrder.Language.sentBnd_component_iSup {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} {φs : (L.withConstants ).Sentenceω} (k : ) (h : BoundedFormulaω.iSup φs SentBnd F R) :
    φs k SentBnd F R
    theorem FirstOrder.Language.sentBnd_instConst {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} {φ : (L.withConstants ).BoundedFormulaω Empty 1} (c : ) (h : φ.all SentBnd F R) :
    theorem FirstOrder.Language.sentBnd_constEq {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} (a b : ) :
    theorem FirstOrder.Language.sentBnd_relInst_congr {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} {l : } (Rr : L.Relations l) {g : Fin l} (g' : Fin l) (h : relInst Rr g SentBnd F R) :
    relInst Rr g' SentBnd F R

    Atomic constant-support facts #

    The paired family #

    def FirstOrder.Language.PairedInsepFamilyMem {L : Language} (F₁ : Set ((n : ) × L.Functions n)) (R₁ : Set ((n : ) × L.Relations n)) (F₂ : Set ((n : ) × L.Functions n)) (R₂ : Set ((n : ) × L.Relations n)) (rL rR : (L.withConstants ).Sentenceω) (S : Set (L.withConstants ).Sentenceω) :

    A paired family member: a symmetrically support-budgeted, U-bounded, side-typed pair (Γ, Δ) inseparable at the shared vocabulary (F₁ ∩ F₂, R₁ ∩ R₂).

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

      Support and freshness bookkeeping #

      theorem FirstOrder.Language.support_mem_left {L : Language} {Γ Δ : Set (L.withConstants ).Sentenceω} {A : Finset } {φ : (L.withConstants ).Sentenceω} (hmem : φ Γ) (hsupp : (⋃ γΓ, sentenceJConsts γ) δΔ, sentenceJConsts δA) :
      sentenceJConsts φA
      theorem FirstOrder.Language.support_mem_right {L : Language} {Γ Δ : Set (L.withConstants ).Sentenceω} {A : Finset } {φ : (L.withConstants ).Sentenceω} (hmem : φ Δ) (hsupp : (⋃ γΓ, sentenceJConsts γ) δΔ, sentenceJConsts δA) :
      sentenceJConsts φA
      theorem FirstOrder.Language.support_mem {L : Language} {Γ Δ : Set (L.withConstants ).Sentenceω} {A : Finset } {φ : (L.withConstants ).Sentenceω} (hmem : φ Γ Δ) (hsupp : (⋃ γΓ, sentenceJConsts γ) δΔ, sentenceJConsts δA) :
      sentenceJConsts φA
      theorem FirstOrder.Language.support_insert_left {L : Language} {Γ Δ : Set (L.withConstants ).Sentenceω} {φ : (L.withConstants ).Sentenceω} {A : Finset } ( : sentenceJConsts φA) (h : (⋃ γΓ, sentenceJConsts γ) δΔ, sentenceJConsts δA) :
      (⋃ γinsert φ Γ, sentenceJConsts γ) δΔ, sentenceJConsts δA
      theorem FirstOrder.Language.support_insert_right {L : Language} {Γ Δ : Set (L.withConstants ).Sentenceω} {φ : (L.withConstants ).Sentenceω} {A : Finset } ( : sentenceJConsts φA) (h : (⋃ γΓ, sentenceJConsts γ) δΔ, sentenceJConsts δA) :
      (⋃ γΓ, sentenceJConsts γ) δinsert φ Δ, sentenceJConsts δA
      theorem FirstOrder.Language.fresh_left {L : Language} {Γ Δ : Set (L.withConstants ).Sentenceω} {A : Finset } (c : ) (hc : cA) (hsupp : (⋃ γΓ, sentenceJConsts γ) δΔ, sentenceJConsts δA) (γ : (L.withConstants ).Sentenceω) :
      γ ΓcsentenceJConsts γ
      theorem FirstOrder.Language.fresh_right {L : Language} {Γ Δ : Set (L.withConstants ).Sentenceω} {A : Finset } (c : ) (hc : cA) (hsupp : (⋃ γΓ, sentenceJConsts γ) δΔ, sentenceJConsts δA) (δ : (L.withConstants ).Sentenceω) :
      δ ΔcsentenceJConsts δ
      theorem FirstOrder.Language.insepAt_insert_right_of_entails {L : Language} {F' : Set ((n : ) × L.Functions n)} {R' : Set ((n : ) × L.Relations n)} {A : Finset } {Γ Δ : Set (L.withConstants ).Sentenceω} {φ : (L.withConstants ).Sentenceω} (hcons : Theoryω.Entails Δ φ) (h : InsepAt F' R' A Γ Δ) :
      InsepAt F' R' A Γ (insert φ Δ)

      Grow the Δ-coordinate by an entailed sentence (the right-coordinate twin of insepAt_insert_of_entails, obtained through insepAt_swap).

      The two coordinate-growth constructors #

      theorem FirstOrder.Language.pairedInsep_insert_left {L : Language} {F₁ : Set ((n : ) × L.Functions n)} {R₁ : Set ((n : ) × L.Relations n)} {F₂ : Set ((n : ) × L.Functions n)} {R₂ : Set ((n : ) × L.Relations n)} {rL rR : (L.withConstants ).Sentenceω} {S Γ Δ : Set (L.withConstants ).Sentenceω} {A : Finset } {φ : (L.withConstants ).Sentenceω} (hSeq : S = Γ Δ) (hΓfin : Γ.Finite) (hΔfin : Δ.Finite) (hΓU : ΓGenU rL rR) (hΔU : ΔGenU rL rR) (hΓS : ΓSentBnd F₁ R₁) (hΔS : ΔSentBnd F₂ R₂) (hφU : φ GenU rL rR) (hφS : φ SentBnd F₁ R₁) (hsupp : (⋃ γinsert φ Γ, sentenceJConsts γ) δΔ, sentenceJConsts δA) (hA : InsepAt (F₁ F₂) (R₁ R₂) A (insert φ Γ) Δ) :
      PairedInsepFamilyMem F₁ R₁ F₂ R₂ rL rR (S {φ})

      Add φ to the Γ-coordinate of a paired family member.

      theorem FirstOrder.Language.pairedInsep_insert_right {L : Language} {F₁ : Set ((n : ) × L.Functions n)} {R₁ : Set ((n : ) × L.Relations n)} {F₂ : Set ((n : ) × L.Functions n)} {R₂ : Set ((n : ) × L.Relations n)} {rL rR : (L.withConstants ).Sentenceω} {S Γ Δ : Set (L.withConstants ).Sentenceω} {A : Finset } {φ : (L.withConstants ).Sentenceω} (hSeq : S = Γ Δ) (hΓfin : Γ.Finite) (hΔfin : Δ.Finite) (hΓU : ΓGenU rL rR) (hΔU : ΔGenU rL rR) (hΓS : ΓSentBnd F₁ R₁) (hΔS : ΔSentBnd F₂ R₂) (hφU : φ GenU rL rR) (hφS : φ SentBnd F₂ R₂) (hsupp : (⋃ γΓ, sentenceJConsts γ) δinsert φ Δ, sentenceJConsts δA) (hA : InsepAt (F₁ F₂) (R₁ R₂) A Γ (insert φ Δ)) :
      PairedInsepFamilyMem F₁ R₁ F₂ R₂ rL rR (S {φ})

      Add φ to the Δ-coordinate of a paired family member.

      The paired inseparable-pair consistency property #

      def FirstOrder.Language.pairedInsepConsistencyProperty {L : Language} (F₁ : Set ((n : ) × L.Functions n)) (R₁ : Set ((n : ) × L.Relations n)) (F₂ : Set ((n : ) × L.Functions n)) (R₂ : Set ((n : ) × L.Relations n)) (rL rR : (L.withConstants ).Sentenceω) (hrL : (sentenceJConsts rL).Finite) (hrR : (sentenceJConsts rR).Finite) :

      The paired inseparable-pair consistency property. The finite paired family over the generated universe GenU rL rR, with each ConsistencyPropertyEqOn closure field discharged by a Γ/Δ case split: the Γ case reuses the one-sided left closure, the Δ case dualizes it through insepAt_swap, and the cross cases use the PairedInseparability gates. The root finiteness hypotheses enter only in neg_all_witness (to choose a fresh witness).

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

        The paired model endpoint #

        theorem FirstOrder.Language.exists_paired_model {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (F₁ : Set ((n : ) × L.Functions n)) (R₁ : Set ((n : ) × L.Relations n)) (F₂ : Set ((n : ) × L.Functions n)) (R₂ : Set ((n : ) × L.Relations n)) (rL rR : (L.withConstants ).Sentenceω) (hrL : (sentenceJConsts rL).Finite) (hrR : (sentenceJConsts rR).Finite) (hrLsent : rL SentBnd F₁ R₁) (hrRsent : rR SentBnd F₂ R₂) (A₀ : Finset ) (hsupp : sentenceJConsts rL sentenceJConsts rRA₀) (hroot : InsepAt (F₁ F₂) (R₁ R₂) A₀ {rL} {rR}) :
        ∃ (M : Type) (x : (L.withConstants ).Structure M) (_ : Nonempty M), rL.Realize M rR.Realize M

        Paired model existence. From a root inseparable pair {rL} / {rR} (support-budgeted at A₀, side-typed at (F₁, R₁) / (F₂, R₂), inseparable at the shared vocabulary), over a countable relational vocabulary, there is a single L[[ℕ]]-model realizing both roots. The fair enumeration produces a Henkin-complete S* ⊇ {rL, rR}; its quotient term model realizes every positive member, and both roots enter positively.

        theorem FirstOrder.Language.exists_paired_model_neg {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (F₁ : Set ((n : ) × L.Functions n)) (R₁ : Set ((n : ) × L.Relations n)) (F₂ : Set ((n : ) × L.Functions n)) (R₂ : Set ((n : ) × L.Relations n)) (r₁ r₂ : (L.withConstants ).Sentenceω) (hr₁ : (sentenceJConsts r₁).Finite) (hr₂ : (sentenceJConsts r₂).Finite) (hr₁sent : r₁ SentBnd F₁ R₁) (hr₂sent : BoundedFormulaω.not r₂ SentBnd F₂ R₂) (A₀ : Finset ) (hsupp : sentenceJConsts r₁ sentenceJConsts (BoundedFormulaω.not r₂)A₀) (hroot : InsepAt (F₁ F₂) (R₁ R₂) A₀ {r₁} {BoundedFormulaω.not r₂}) :
        ∃ (M : Type) (x : (L.withConstants ).Structure M) (_ : Nonempty M), r₁.Realize M ¬r₂.Realize M

        Public wrapper (interpolation polarity). Instantiating rR := r₂.not yields a single model with M ⊨ r₁ and ¬ M ⊨ r₂ — the seed {r₁, r₂.not} (not {r₁, r₂}).