Ordered First-Ordered Structures #
This file defines ordered first-order languages and structures, as well as their theories.
Main Definitions #
FirstOrder.Language.orderis the language consisting of a single relation representing≤.FirstOrder.Language.IsOrderedpoints out a specific symbol in a language as representing≤.FirstOrder.Language.OrderedStructureindicates that the≤symbol in an ordered language is interpreted as the actual relation≤in a particular structure.FirstOrder.Language.linearOrderTheoryand similar define the theories of preorders, partial orders, and linear orders.FirstOrder.Language.dlodefines the theory of dense linear orders without endpoints, a particularly useful example in model theory.FirstOrder.Language.orderStructureis the structure on an ordered type, assigning the symbol representing≤to the actual relation≤.- Conversely,
FirstOrder.Language.LEOfStructure,FirstOrder.Language.preorderOfModels,FirstOrder.Language.partialOrderOfModels, andFirstOrder.Language.linearOrderOfModelsare the orders induced by first-order structures modelling the relevant theory.
Main Results #
PartialOrders model the theory of partial orders,LinearOrders model the theory of linear orders, and dense linear orders without endpoints modelLanguage.dlo.- Under
L.orderedStructureassumptions, elements of anyL.HomClass M Nare monotone, and strictly monotone if injective. - Under
Language.order.orderedStructureassumptions, anyOrderHomClasshas an instance ofL.HomClass M N, whileM ↪o Nand anyOrderIsoClasshave an instance ofL.StrongHomClass M N. FirstOrder.Language.isFraisseLimit_of_countable_nonempty_dloshows that any countable nonempty model of the theory of linear orders is a Fraïssé limit of the class of finite models of the theory of linear orders.FirstOrder.Language.isFraisse_finite_linear_ordershows that the class of finite models of the theory of linear orders is Fraïssé.FirstOrder.Language.aleph0_categorical_dloshows that the theory of dense linear orders isℵ₀-categorical, and thus complete.
The relational language consisting of a single relation representing ≤.
Equations
- FirstOrder.Language.order = { Functions := fun (x : ℕ) => Empty, Relations := FirstOrder.Language.orderRel }
Instances For
Equations
Equations
A language is ordered if it has a symbol representing ≤.
- leSymb : L.Relations 2
The relation symbol representing
≤.
Instances
Equations
Joins two terms t₁, t₂ in a formula representing t₁ ≤ t₂.
Equations
- t₁.le t₂ = FirstOrder.Language.leSymb.boundedFormula₂ t₁ t₂
Instances For
The language homomorphism sending the unique symbol ≤ of Language.order to ≤ in an ordered
language.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The theory of preorders.
Equations
Instances For
The theory of partial orders.
Instances For
The theory of linear orders.
Instances For
A sentence indicating that an order has no top element: $\forall x, \exists y, \neg y \le x$.
Equations
- L.noTopOrderSentence = (((FirstOrder.Language.var ∘ Sum.inr) 1).le ((FirstOrder.Language.var ∘ Sum.inr) 0)).not.ex.all
Instances For
A sentence indicating that an order has no bottom element: $\forall x, \exists y, \neg x \le y$.
Equations
- L.noBotOrderSentence = (((FirstOrder.Language.var ∘ Sum.inr) 0).le ((FirstOrder.Language.var ∘ Sum.inr) 1)).not.ex.all
Instances For
A sentence indicating that an order is dense: $\forall x, \forall y, x < y \to \exists z, x < z \wedge z < y$.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The theory of dense linear orders without endpoints.
Equations
Instances For
Equations
Any linearly-ordered type is naturally a structure in the language Language.order.
This is not an instance, because sometimes the Language.order.Structure is defined first.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Any structure in an ordered language can be ordered correspondingly.
Equations
- L.leOfStructure M = { le := fun (a b : M) => FirstOrder.Language.Structure.RelMap FirstOrder.Language.leSymb ![a, b] }
Instances For
The order structure on an ordered language is decidable.
Equations
- L.decidableLEOfStructure M = h
Instances For
Any model of a theory of preorders is a preorder.
Equations
- L.preorderOfModels M = { toLE := L.leOfStructure M, lt := fun (a b : M) => a ≤ b ∧ ¬b ≤ a, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯ }
Instances For
Any model of a theory of partial orders is a partial order.
Equations
- L.partialOrderOfModels M = { toPreorder := L.preorderOfModels M, le_antisymm := ⋯ }
Instances For
Any model of a theory of linear orders is a linear order.
Equations
- One or more equations did not get rendered due to their size.
Instances For
This is not an instance because it would form a loop with
FirstOrder.Language.order.instStrongHomClassOfOrderIsoClass.
As both types are Props, it would only cause a slowdown.
Any countable nonempty model of the theory of dense linear orders is a Fraïssé limit of the class of finite models of the theory of linear orders.
The class of finite models of the theory of linear orders is Fraïssé.
The theory of dense linear orders is ℵ₀-categorical.
The theory of dense linear orders is ℵ₀-complete.