Fraïssé Classes and Fraïssé Limits #
This file pertains to the ages of countable first-order structures. The age of a structure is the class of all finitely-generated structures that embed into it.
Of particular interest are Fraïssé classes, which are exactly the ages of countable ultrahomogeneous structures. To each is associated a unique (up to nonunique isomorphism) Fraïssé limit - the countable ultrahomogeneous structure with that age.
Main Definitions #
FirstOrder.Language.ageis the class of finitely-generated structures that embed into a particular structure.- A class
KisFirstOrder.Language.Hereditarywhen all finitely-generated structures that embed into structures inKare also inK. - A class
KhasFirstOrder.Language.JointEmbeddingwhen for everyM,NinK, there is another structure inKinto which bothMandNembed. - A class
KhasFirstOrder.Language.Amalgamationwhen for any pair of embeddings of a structureMinKinto other structures inK, those two structures can be embedded into a fourth structure inKsuch that the resulting square of embeddings commutes. FirstOrder.Language.IsFraisseindicates that a class is nonempty, isomorphism-invariant, essentially countable, and satisfies the hereditary, joint embedding, and amalgamation properties.FirstOrder.Language.IsFraisseLimitindicates that a structure is a Fraïssé limit for a given class.
Main Results #
- We show that the age of any structure is isomorphism-invariant and satisfies the hereditary and joint-embedding properties.
FirstOrder.Language.age.countable_quotientshows that the age of any countable structure is essentially countable.FirstOrder.Language.exists_countable_is_age_of_iffgives necessary and sufficient conditions for a class to be the age of a countable structure in a language with countably many functions.
Implementation Notes #
- Classes of structures are formalized with
Set (Bundled L.Structure). - Some results pertain to countable limit structures, others to countably-generated limit structures. In the case of a language with countably many function symbols, these are equivalent.
References #
- [W. Hodges, A Shorter Model Theory][Hodges97]
- [K. Tent, M. Ziegler, A Course in Model Theory][Tent_Ziegler]
TODO #
- Show existence and uniqueness of Fraïssé limits
The Age of a Structure and Fraïssé Classes #
The age of a structure M is the class of finitely-generated structures that embed into it.
Equations
- FirstOrder.Language.age L M = {N : CategoryTheory.Bundled (FirstOrder.Language.Structure L) | FirstOrder.Language.Structure.FG L ↑N ∧ Nonempty (FirstOrder.Language.Embedding L (↑N) M)}
Instances For
A class K has the hereditary property when all finitely-generated structures that embed into
structures in K are also in K.
Equations
- FirstOrder.Language.Hereditary K = ∀ M ∈ K, FirstOrder.Language.age L ↑M ⊆ K
Instances For
A class K has the joint embedding property when for every M, N in K, there is another
structure in K into which both M and N embed.
Equations
- FirstOrder.Language.JointEmbedding K = DirectedOn (fun (M N : CategoryTheory.Bundled (FirstOrder.Language.Structure L)) => Nonempty (FirstOrder.Language.Embedding L ↑M ↑N)) K
Instances For
A class K has the amalgamation property when for any pair of embeddings of a structure M in
K into other structures in K, those two structures can be embedded into a fourth structure in
K such that the resulting square of embeddings commutes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A Fraïssé class is a nonempty, isomorphism-invariant, essentially countable class of structures satisfying the hereditary, joint embedding, and amalgamation properties.
- is_nonempty : Set.Nonempty K
- FG : ∀ M ∈ K, FirstOrder.Language.Structure.FG L ↑M
- is_equiv_invariant : ∀ (M N : CategoryTheory.Bundled (FirstOrder.Language.Structure L)), Nonempty (FirstOrder.Language.Equiv L ↑M ↑N) → (M ∈ K ↔ N ∈ K)
- is_essentially_countable : Set.Countable (Quotient.mk' '' K)
- hereditary : FirstOrder.Language.Hereditary K
- jointEmbedding : FirstOrder.Language.JointEmbedding K
- amalgamation : FirstOrder.Language.Amalgamation K
Instances
The age of a countable structure is essentially countable (has countably many isomorphism classes).
The age of a direct limit of structures is the union of the ages of the structures.
Sufficient conditions for a class to be the age of a countably-generated structure.
A structure M is ultrahomogeneous if every embedding of a finitely generated substructure
into M extends to an automorphism of M.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A structure M is a Fraïssé limit for a class K if it is countably generated,
ultrahomogeneous, and has age K.
- ultrahomogeneous : FirstOrder.Language.IsUltrahomogeneous L M
- age : FirstOrder.Language.age L M = K
Instances For
If a class has a Fraïssé limit, it must be Fraïssé.