Bundled First-Order Structures #
This file bundles types together with their first-order structure.
Main Definitions #
FirstOrder.Language.Theory.ModelType
is the type of nonempty models of a particular theory.FirstOrder.Language.equivSetoid
is the isomorphism equivalence relation on bundled structures.
TODO #
- Define category structures on bundled structures and models.
Equations
- M.structure = M.str
A type bundled with the structure induced by an equivalence.
Equations
- Equiv.bundledInduced L g = { α := N, str := g.inducedStructure }
Instances For
An equivalence of types as a first-order equivalence to the bundled structure on the codomain.
Equations
- Equiv.bundledInducedEquiv L g = g.inducedStructureEquiv
Instances For
The equivalence relation on bundled L.Structure
s indicating that they are isomorphic.
Equations
- FirstOrder.Language.equivSetoid = { r := fun (M N : CategoryTheory.Bundled L.Structure) => Nonempty (L.Equiv ↑M ↑N), iseqv := ⋯ }
The type of nonempty models of a first-order theory.
Instances For
Equations
- FirstOrder.Language.Theory.ModelType.instCoeSort T = { coe := FirstOrder.Language.Theory.ModelType.Carrier }
The object in the category of R-algebras associated to a type equipped with the appropriate typeclasses.
Instances For
Equations
- FirstOrder.Language.Theory.ModelType.instInhabited = { default := FirstOrder.Language.Theory.ModelType.of ∅ PUnit.{?u.17 + 1} }
Maps a bundled model along a bijection.
Equations
Instances For
Shrinks a small model to a particular universe.
Equations
- M.shrink = FirstOrder.Language.Theory.ModelType.equivInduced (equivShrink ↑M)
Instances For
Lifts a model to a particular universe.
Equations
- M.ulift = FirstOrder.Language.Theory.ModelType.equivInduced Equiv.ulift.symm
Instances For
The reduct of any model of φ.onTheory T
is a model of T
.
Equations
Instances For
When φ
is injective, defaultExpansion
expands a model of T
to a model of φ.onTheory T
arbitrarily.
Equations
Instances For
Equations
- M.leftStructure = FirstOrder.Language.LHom.sumInl.reduct ↑M
Equations
- M.rightStructure = FirstOrder.Language.LHom.sumInr.reduct ↑M
A model of a theory is also a model of any subtheory.
Equations
- M.subtheoryModel h = FirstOrder.Language.Theory.ModelType.mk ↑M
Instances For
Bundles M ⊨ T
as a T.ModelType
.
Equations
- h.bundled = FirstOrder.Language.Theory.ModelType.of T M
Instances For
A structure that is elementarily equivalent to a model, bundled as a model.
Equations
Instances For
An elementary substructure of a bundled model as a bundled model.