Documentation

InfinitaryLogic.ModelTheory.InfinitaryTypes

Complete infinitary types and small models #

The general types API of the countably-many-types project (issue #11): the complete L_{ω₁ω}-type of a finite tuple over the empty set (infinitaryType), the family of realized types at each arity (RealizedInfinitaryTypes), and the smallness predicate (Lomega1omegaSmall: countably many realized types at every arity).

Smallness DESCENDS along reducts (Lomega1omegaSmall.of_expansion — each reduct type is the preimage of an expansion type under mapLanguage, so the realized reduct types are a countable image); it does NOT ascend through arbitrary expansions, which is why the arbitrary-language endpoint of issue #11 must go through a canonical uniform expansion rather than this lemma.

def FirstOrder.Language.infinitaryType {L : Language} (M : Type w) [L.Structure M] {n : } (a : Fin nM) :

The complete infinitary type of a tuple over the empty set: all L_{ω₁ω}-formulas (in n free variables) it realizes.

Equations
Instances For

    The realized complete types of M at arity n.

    Equations
    Instances For

      Smallness: M realizes only countably many complete L_{ω₁ω}-types, across all finite arities.

      Equations
      Instances For
        theorem FirstOrder.Language.infinitaryType_equiv {L : Language} {M N : Type w} [L.Structure M] [L.Structure N] (e : L.Equiv M N) {n : } (a : Fin nM) :
        infinitaryType M a = infinitaryType N fun (i : Fin n) => e (a i)

        Isomorphism transport for types: an L-isomorphism carries the complete type of a tuple to the complete type of its image.

        Smallness is invariant under structure isomorphism.

        Smallness descends along reducts: if M is small as an L'-structure and g : L →ᴸ L' is an expansion on M, then M is small as an L-structure. (The converse FAILS for arbitrary expansions — new symbols can realize new types.)