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
.
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
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
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 = { fst := i, snd := 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.instInhabitedDirectLimit G f = { default := ⟦{ fst := default, snd := 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 = { toEmbedding := { 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.
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
- 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.
Equations
- ⋯ = ⋯