Documentation

InfinitaryLogic.Descriptive.FiniteCarrier

Finite-Carrier Counting via Permutation Orbits #

This file proves that for structures on Fin n, isomorphism is the orbit equivalence relation of Equiv.Perm (Fin n), which is Borel (finite union of graphs of continuous maps). Combined with the existing ℕ-tier result, this gives a counting dichotomy for all countable models.

Main Definitions #

Main Results #

Permutation action on finite-carrier structure space #

Equiv.Perm (Fin n) acts on StructureSpaceOn L (Fin n) by relabeling: (σ • c) ⟨R, v⟩ = c ⟨R, σ.symm ∘ v⟩.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem FirstOrder.Language.perm_smul_apply {L : Language} (n : ) (σ : Equiv.Perm (Fin n)) (c : L.StructureSpaceOn (Fin n)) (R : (l : ) × L.Relations l) (v : Fin R.fstFin n) :
(σ c) R, v = c R, (_root_.Equiv.symm σ) v
Equations

Isomorphism = orbit equivalence #

theorem FirstOrder.Language.iso_iff_orbit {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (n : ) (c₁ c₂ : L.StructureSpaceOn (Fin n)) :
Nonempty (L.Equiv (Fin n) (Fin n)) ∃ (σ : Equiv.Perm (Fin n)), σ c₁ = c₂

Two Fin n-structures are L-isomorphic iff they lie in the same Sym(Fin n) orbit.

Isomorphism setoid on finite-carrier models #

The isomorphism setoid on models of φ with carrier Fin n.

Equations
Instances For

    Isomorphism relation is Borel on finite carriers #

    theorem FirstOrder.Language.continuous_perm_smul {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (n : ) (σ : Equiv.Perm (Fin n)) :
    Continuous fun (c : L.StructureSpaceOn (Fin n)) => σ c

    Each orbit map c ↦ σ • c is continuous on StructureSpaceOn L (Fin n).

    The isomorphism relation on Fin n-models is measurable. It equals ⋃ σ : Perm(Fin n), graph(σ • ·), a finite union of closed sets.

    Per-tier counting dichotomy #

    Per-tier counting dichotomy: for each n, the iso classes among Fin n-models of φ are either ≤ ℵ₀ or = 2^ℵ₀. Does NOT need bounded Scott height.

    Combined counting theorem #

    The type of all coded isomorphism classes across all carrier tiers: ℕ-models plus Fin n-models for each n.

    Equations
    Instances For

      Counting dichotomy for all countable models with bounded Scott height. The type AllCodedIsoClasses φ faithfully represents all isomorphism classes of countable models of φ (via the bridge theorems codeModel, iso_of_codeModel_eq, codeModel_surjective). This theorem states the dichotomy on its cardinality.

      Bridge theorems: coded classes represent all countable models #

      noncomputable def FirstOrder.Language.codeModel {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] {φ : L.Sentenceω} {M : Type} [L.Structure M] [Countable M] ( : φ.Realize M) :

      Map a countable model of φ to its coded iso class. Uses finite_or_infinite to dispatch to the ℕ or Fin n tier.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem FirstOrder.Language.codeModel_eq_of_iso {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] {φ : L.Sentenceω} {M N : Type} [L.Structure M] [L.Structure N] [Countable M] [Countable N] (hφM : φ.Realize M) (hφN : φ.Realize N) (e : L.Equiv M N) :

        L-isomorphic countable models map to the same coded class.

        theorem FirstOrder.Language.iso_of_codeModel_eq {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] {φ : L.Sentenceω} {M N : Type} [L.Structure M] [L.Structure N] [Countable M] [Countable N] (hφM : φ.Realize M) (hφN : φ.Realize N) (h : codeModel hφM = codeModel hφN) :
        Nonempty (L.Equiv M N)

        Models mapping to the same coded class are L-isomorphic. The proof composes: M ≃[L] carrier (from encodeViaEquiv_iso), the carrier-carrier L-isomorphism (extracted from the quotient equality in h), and carrier ≃[L] N (from encodeViaEquiv_iso).

        theorem FirstOrder.Language.codeModel_surjective {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] {φ : L.Sentenceω} (q : AllCodedIsoClasses φ) :
        ∃ (M : Type) (x : L.Structure M) (x_1 : Countable M) ( : φ.Realize M), codeModel = q

        Every coded class is realized by some countable model.