Documentation

LeanPool.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 : ) :

    Constant-expansion roots as side-bounded sentences #

    The two shapes every countable interpolation core needs of its labelled roots. Each replaces a four-part tuple of base-occurrence and negation rewrites at the call site.

    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 δ

      The two coordinate-growth constructors #

      The paired inseparable-pair consistency property #

      The paired model endpoint #

      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₂}).