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.age
is the class of finitely-generated structures that embed into a particular structure.- A class
K
isFirstOrder.Language.Hereditary
when all finitely-generated structures that embed into structures inK
are also inK
. - A class
K
hasFirstOrder.Language.JointEmbedding
when for everyM
,N
inK
, there is another structure inK
into which bothM
andN
embed. - A class
K
hasFirstOrder.Language.Amalgamation
when for any pair of embeddings of a structureM
inK
into other structures inK
, those two structures can be embedded into a fourth structure inK
such that the resulting square of embeddings commutes. FirstOrder.Language.IsFraisse
indicates that a class is nonempty, isomorphism-invariant, essentially countable, and satisfies the hereditary, joint embedding, and amalgamation properties.FirstOrder.Language.IsFraisseLimit
indicates 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_quotient
shows that the age of any countable structure is essentially countable.FirstOrder.Language.exists_countable_is_age_of_iff
gives 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é.