Documentation

LeanPool.InfinitaryLogic.Lomega1omega.CountableIndex

Countable connectives over arbitrary countable index types #

BoundedFormulaω's iInf/iSup branch over the fixed carrier . Constructions like the Hanf beth ladder (clause families over pairs of countable ordinals) and countable fragments quantify over countable-but-not- index types. This file provides the conjunction and disjunction over any such index, as thin wrappers around the carrier-transport primitives BoundedFormulaInf.iInfAlong/iSupAlong.

The index may live in any universe, since ι is encoded into rather than enumerated from it. This is what lets a consumer such as ModelTheory/TypeIsolation.lean — whose index is a subtype of realized types, landing in Type (max u v) — be universe-polymorphic.

Both definitions are noncomputable: Encodable.ofCountable upgrades [Countable ι] to an encoding by choice. Padding handles the empty index uniformly, an empty ι padding every branch, so no case split is needed and each realization lemma is the upstream one applied directly.

Only the realization lemmas are provided. No syntactic naturality API is built here: the encoding is noncanonical, so definitional commutation statements would be unpleasant — consumers should work through realize_ciInf/realize_ciSup.

noncomputable def FirstOrder.Language.BoundedFormulaω.ciInf {L : Language} {γ : Type u'} {n : } {ι : Type uι} [Countable ι] (φs : ιL.BoundedFormulaω γ n) :

Countable conjunction over a countable index type, at any index universe.

The index is encoded into the fixed carrier by an IndexCoding, and branches outside the image are padded with . Padding is what makes the empty carrier need no special handling: an empty ι pads every branch, and the conjunction is vacuously true.

Equations
Instances For
    noncomputable def FirstOrder.Language.BoundedFormulaω.ciSup {L : Language} {γ : Type u'} {n : } {ι : Type uι} [Countable ι] (φs : ιL.BoundedFormulaω γ n) :

    Countable disjunction over a countable index type, at any index universe. Dual to ciInf; undecodable branches are padded with , so an empty ι is vacuously false.

    Equations
    Instances For
      theorem FirstOrder.Language.BoundedFormulaω.realize_ciInf {L : Language} {γ : Type u'} {n : } {M : Type w} [L.Structure M] {ι : Type uι} [Countable ι] (φs : ιL.BoundedFormulaω γ n) (v : γM) (xs : Fin nM) :
      (ciInf φs).Realize v xs ∀ (i : ι), (φs i).Realize v xs
      theorem FirstOrder.Language.BoundedFormulaω.realize_ciSup {L : Language} {γ : Type u'} {n : } {M : Type w} [L.Structure M] {ι : Type uι} [Countable ι] (φs : ιL.BoundedFormulaω γ n) (v : γM) (xs : Fin nM) :
      (ciSup φs).Realize v xs ∃ (i : ι), (φs i).Realize v xs