Documentation

InfinitaryLogic.Admissible.Barwise.Data

Barwise Compactness Data #

This file defines BarwiseCompactnessData, the literature-faithful interface for the Barwise compactness theorem (Theorem 3.1.3 of [KK04], Theorem 5.6 of [Bar75]). Unlike the project's existing FiniteCompactFragment.compact field (which demands unrestricted finite-subset compactness on arbitrary theories), this structure uses:

Design Notes #

The standard Barwise compactness theorem:

Let A be a countable admissible set. If Γ is Σ₁-on-A and Γ ⊆ L_A, and every T₀ ∈ A with T₀ ⊆ Γ has a model, then Γ has a model.

The key internality: "T₀ ∈ A" means the subtheory is literally an element of the admissible set, not just an externally-finite subset. This internality is what lets the proof use Σ-reflection and Δ₀-separation inside A. A bare isAFinite : Set Sentenceω → Prop predicate would lose that structure; hence we use a Code type with decode.

The barwiseHeight field represents o(A), the ordinal of the admissible set. No lower bound is imposed: the case o(A) = ω (A = HF, hereditarily finite sets) is the structurally important case where A-coded = finite and L_A = first-order logic (classical compactness as a special case of Barwise compactness). (AdmissibleFragmentCore.height likewise carries no lower bound.)

The isSigma1 predicate is currently abstract (Prop-valued). A future refinement could carry witness data (the Σ formula defining the theory in (A, ∈)), but that would require formalizing the Σ/Δ₀ formula hierarchy for the ∈-language, which is a separate substantial project.

References #

The data for a literature-faithful statement of the Barwise compactness theorem. Extends AdmissibleFragmentCore with A-coded subtheories and Σ₁-on-A definability.

The Code type represents elements of the admissible set A that are sets of sentences (the "A-coded subtheories" / "A-finite subtheories"). The decode map sends a code to its actual set of sentences. The compact field then says: if Γ is Σ₁-on-A and every A-coded subtheory of Γ has a model, then Γ has a model.

Instances For
    theorem FirstOrder.Language.barwise_compactness_of_data {L : Language} (B : L.BarwiseCompactnessData) {Γ : Set L.Sentenceω} (hSigma : B.isSigma1 Γ) ( : ΓB.formulas) (hfin : ∀ (c : B.Code), B.decode cΓ∃ (M : Type) (x : L.Structure M), Theoryω.Model (B.decode c) M) :
    ∃ (M : Type) (x : L.Structure M), Theoryω.Model Γ M

    Barwise compactness theorem, stated as a standalone theorem using BarwiseCompactnessData.