Documentation

LeanPool.InfinitaryLogic.Methods.Interpolation.InseparablePairFamily

The finite inseparable-pair consistency family and its structural lemmas (issue #8, commit 4a) #

This file assembles the consistency family whose members will be packaged, in commit 4b, into a ConsistencyPropertyEqOn instance driving the fair Henkin enumeration of the Craig interpolation argument (docs/craig-audit.md §7–§8).

A family member over a fixed shared vocabulary (F, R), right-hand side Δ, and enumeration roots r₁, r₂ is a finite set Γ of L[[ℕ]]-sentences drawn from the generated universe GenU r₁ r₂ that is inseparable from Δ at some finite allowed support A (InsepAt F R A Γ Δ).

The bulk of the file proves the structural closure lemmas — one per ConsistencyPropertyEqOn field — showing that each syntactic decomposition step (the propositional C0C4 rules, the L_{ω₁ω} conjunction/disjunction component rules, the atomic equality/congruence rules, universal instantiation, and the fresh-witness rule for negated universals) preserves family membership. These are the exact obligations the consistency-property packaging will discharge.

The two moving parts are:

Base-symbol / constant-support union bounds #

The separators built in the InsepAt closures are combinations (iSup, imp, falsum) of the component separators; these lemmas bound their base symbols and constant support by the components'.

theorem FirstOrder.Language.sentenceJConsts_imp_subset {L : Language} {A : Set } {σ₁ σ₂ : (L.withConstants ).Sentenceω} (h₁ : sentenceJConsts σ₁A) (h₂ : sentenceJConsts σ₂A) :

The consequence-preservation workhorse and semantic validities #

theorem FirstOrder.Language.insepAt_insert_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 φ Γ) Δ

Consequence preservation: adding an entailed sentence to Γ cannot break inseparability, because the separator's Γ-entailment survives a cut.

A membership fact plus a pointwise validity yields a Γ-entailment.

Atomic equality and relation-congruence validities #

cval M c is the ambient interpretation of the constant c_c; a constant equality realizes iff the interpretations coincide.

theorem FirstOrder.Language.entails_rel_congr {L : Language} {Γ : Set (L.withConstants ).Sentenceω} {l : } (Rr : L.Relations l) (g : Fin l) (i : Fin l) (b : ) (h1 : relInst Rr g Γ) (h2 : constEq (g i) b Γ) :

Ambient universal instantiation #

InsepAt-level closures under the decomposition rules #

theorem FirstOrder.Language.insepAt_iSup_component {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} {A : Finset } {Γ Δ : Set (L.withConstants ).Sentenceω} (φs : (L.withConstants ).Sentenceω) (hmem : BoundedFormulaω.iSup φs Γ) (h : InsepAt F R A Γ Δ) :
∃ (k : ), InsepAt F R A (insert (φs k) Γ) Δ

C4 (disjunction): a disjunction in Γ splits off a component preserving inseparability.

theorem FirstOrder.Language.insepAt_neg_iInf_component {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} {A : Finset } {Γ Δ : Set (L.withConstants ).Sentenceω} (φs : (L.withConstants ).Sentenceω) (hmem : (BoundedFormulaω.iInf φs).not Γ) (h : InsepAt F R A Γ Δ) :
∃ (k : ), InsepAt F R A (insert (BoundedFormulaω.not (φs k)) Γ) Δ

C3' (negated conjunction): a negated conjunction in Γ splits off a negated component.

theorem FirstOrder.Language.insepAt_imp_dichotomy {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} {A : Finset } {Γ Δ : Set (L.withConstants ).Sentenceω} {φ ψ : (L.withConstants ).Sentenceω} (hmem : BoundedFormulaω.imp φ ψ Γ) (h : InsepAt F R A Γ Δ) :
InsepAt F R A (insert (BoundedFormulaω.not φ) Γ) Δ InsepAt F R A (insert ψ Γ) Δ

C1 (implication): an implication in Γ yields one of the two possible refinements.

theorem FirstOrder.Language.insepAt_falsum_absurd {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} {A : Finset } {Γ Δ : Set (L.withConstants ).Sentenceω} (hmem : BoundedFormulaω.falsum Γ) (h : InsepAt F R A Γ Δ) :

C0 (falsum): ⊥ ∈ Γ is incompatible with inseparability ( separates from anything).

theorem FirstOrder.Language.insepAt_contradiction_absurd {L : Language} {F : Set ((n : ) × L.Functions n)} {R : Set ((n : ) × L.Relations n)} {A : Finset } {Γ Δ : Set (L.withConstants ).Sentenceω} {φ : (L.withConstants ).Sentenceω} (h1 : φ Γ) (h2 : BoundedFormulaω.not φ Γ) (h : InsepAt F R A Γ Δ) :

A sentence and its negation both in Γ is incompatible with inseparability.

The constant-instance negation identity #

The fresh-witness rule produces instConst c φ.not; the family field wants (instConst c φ).not. These are literally the same formula (openBounds and subst distribute over · .imp ⊥).

The finite inseparable-pair consistency family #

The family closure lemmas (one per ConsistencyPropertyEqOn field) #