Direct Limits of First-Order Structures #
This file constructs the direct limit of a directed system of first-order embeddings.
Main Definitions #
FirstOrder.Language.DirectLimit G f
is the direct limit of the directed systemf
of first-order embeddings between the structures indexed byG
.FirstOrder.Language.DirectLimit.lift
is the universal property of the direct limit: maps from the components to another module that respect the directed system structure give rise to a unique map out of the direct limit.FirstOrder.Language.DirectLimit.equiv_lift
is the equivalence between limits of isomorphic direct systems.
A copy of DirectedSystem.map_self
specialized to L
-embeddings, as otherwise the
fun i j h ↦ f i j h
can confuse the simplifier.
A copy of DirectedSystem.map_map
specialized to L
-embeddings, as otherwise the
fun i j h ↦ f i j h
can confuse the simplifier.
Given a chain of embeddings of structures indexed by ℕ
, defines a DirectedSystem
by
composing them.
Equations
- FirstOrder.Language.DirectedSystem.natLERec f' m n h = Nat.leRecOn h (fun (k : ℕ) (g : L.Embedding (G' m) (G' k)) => (f' k).comp g) (FirstOrder.Language.Embedding.refl L (G' m))
Instances For
Alias for Σ i, G i
.
Equations
- FirstOrder.Language.Structure.Sigma f = ((i : ι) × G i)
Instances For
Constructor for FirstOrder.Language.Structure.Sigma
alias.
Equations
- FirstOrder.Language.Structure.Sigma.mk f i x = ⟨i, x⟩
Instances For
Raises a family of elements in the Σ
-type to the same level along the embeddings.
Equations
- FirstOrder.Language.DirectLimit.unify f x i h a = (f (x a).fst i ⋯) (x a).snd
Instances For
The directed limit glues together the structures along the embeddings.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The structure on the Σ
-type which becomes the structure on the direct limit after quotienting.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The direct limit of a directed system is the structures glued together along the embeddings.
Equations
Instances For
Equations
- FirstOrder.Language.instInhabitedDirectLimitOfDefault G f = { default := ⟦⟨default, default⟩⟧ }
The direct limit setoid
respects the structure sigmaStructure
, so quotienting by it
gives rise to a valid structure.
Equations
- FirstOrder.Language.DirectLimit.prestructure G f = { toStructure := FirstOrder.Language.DirectLimit.sigmaStructure G f, fun_equiv := ⋯, rel_equiv := ⋯ }
The L.Structure
on a direct limit of L.Structure
s.
Equations
- FirstOrder.Language.DirectLimit.instStructureDirectLimit G f = FirstOrder.Language.quotientStructure
The canonical map from a component to the direct limit.
Equations
- FirstOrder.Language.DirectLimit.of L ι G f i = { toFun := fun (a : G i) => ⟦FirstOrder.Language.Structure.Sigma.mk f i a⟧, inj' := ⋯, map_fun' := ⋯, map_rel' := ⋯ }
Instances For
Every element of the direct limit corresponds to some element in some component of the directed system.
Every finitely generated substructure of the direct limit corresponds to some substructure in some component of the directed system.
The universal property of the direct limit: maps from the components to another module that respect the directed system structure (i.e. make some diagram commute) give rise to a unique map out of the direct limit.
Equations
- FirstOrder.Language.DirectLimit.lift L ι G f g Hg = { toFun := Quotient.lift (fun (x : FirstOrder.Language.Structure.Sigma f) => (g x.fst) x.snd) ⋯, inj' := ⋯, map_fun' := ⋯, map_rel' := ⋯ }
Instances For
The isomorphism between limits of isomorphic systems.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The direct limit of countably many countably generated structures is countably generated.
The map from a direct limit of a system of substructures of M
into M
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The isomorphism between a direct limit of a system of substructures and their union.
Equations
- One or more equations did not get rendered due to their size.