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.
The complete infinitary type of a tuple over the empty set: all L_{ω₁ω}-formulas (in n
free variables) it realizes.
Equations
- FirstOrder.Language.infinitaryType M a = {ψ : L.BoundedFormulaω Empty n | ψ.Realize Empty.elim a}
Instances For
The realized complete types of M at arity n.
Equations
- FirstOrder.Language.RealizedInfinitaryTypes M n = Set.range fun (a : Fin n → M) => FirstOrder.Language.infinitaryType M a
Instances For
Smallness: M realizes only countably many complete L_{ω₁ω}-types, across all finite
arities.
Equations
Instances For
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.)