Language Maps #
Maps between first-order languages in the style of the Flypitch project, as well as several important maps between structures.
Main Definitions #
- A
FirstOrder.Language.LHom
, denotedL →ᴸ L'
, is a map between languages, sending the symbols of one to symbols of the same kind and arity in the other. - A
FirstOrder.Language.LEquiv
, denotedL ≃ᴸ L'
, is an invertible language homomorphism. FirstOrder.Language.withConstants
is defined so that ifM
is anL.Structure
andA : Set M
,L.withConstants A
, denotedL[[A]]
, is a language which adds constant symbols for elements ofA
toL
.
References #
For the Flypitch project:
- [J. Han, F. van Doorn, A formal proof of the independence of the continuum hypothesis] [flypitch_cpp]
- [J. Han, F. van Doorn, A formalization of forcing and the unprovability of the continuum hypothesis][flypitch_itp]
A language homomorphism maps the symbols of one language to symbols of another.
- onFunction : ⦃n : ℕ⦄ → L.Functions n → L'.Functions n
- onRelation : ⦃n : ℕ⦄ → L.Relations n → L'.Relations n
Instances For
A language homomorphism maps the symbols of one language to symbols of another.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Defines a map between languages defined with Language.mk₂
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pulls a structure back along a language map.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The identity language homomorphism.
Equations
- FirstOrder.Language.LHom.id L = { onFunction := fun (_n : ℕ) => id, onRelation := fun (_n : ℕ) => id }
Instances For
Equations
- FirstOrder.Language.LHom.instInhabitedLHom = { default := FirstOrder.Language.LHom.id L }
The inclusion of the left factor into the sum of two languages.
Equations
Instances For
The inclusion of the right factor into the sum of two languages.
Equations
Instances For
The inclusion of an empty language into any other language.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- FirstOrder.Language.LHom.instUniqueLHom = { toInhabited := { default := FirstOrder.Language.LHom.ofIsEmpty L L' }, uniq := (_ : ∀ (x : L →ᴸ L'), x = default) }
The composition of two language homomorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A language map defined on two factors of a sum.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The map between two sum-languages induced by maps on the two factors.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A language homomorphism is injective when all the maps between symbol types are.
- onFunction : ∀ {n : ℕ}, Function.Injective fun (f : L.Functions n) => ϕ.onFunction f
- onRelation : ∀ {n : ℕ}, Function.Injective fun (R : L.Relations n) => ϕ.onRelation R
Instances For
Pulls an L
-structure along a language map ϕ : L →ᴸ L'
, and then expands it
to an L'
-structure arbitrarily.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A language homomorphism is an expansion on a structure if it commutes with the interpretation of all symbols on that structure.
- map_onFunction : ∀ {n : ℕ} (f : L.Functions n) (x : Fin n → M), FirstOrder.Language.Structure.funMap (ϕ.onFunction f) x = FirstOrder.Language.Structure.funMap f x
- map_onRelation : ∀ {n : ℕ} (R : L.Relations n) (x : Fin n → M), FirstOrder.Language.Structure.RelMap (ϕ.onRelation R) x = FirstOrder.Language.Structure.RelMap R x
Instances
Equations
Equations
Equations
Equations
Equations
- (_ : FirstOrder.Language.LHom.IsExpansionOn FirstOrder.Language.LHom.sumInl M) = (_ : FirstOrder.Language.LHom.IsExpansionOn FirstOrder.Language.LHom.sumInl M)
Equations
- (_ : FirstOrder.Language.LHom.IsExpansionOn FirstOrder.Language.LHom.sumInr M) = (_ : FirstOrder.Language.LHom.IsExpansionOn FirstOrder.Language.LHom.sumInr M)
Equations
- (_ : FirstOrder.Language.LHom.IsExpansionOn ϕ M) = (_ : FirstOrder.Language.LHom.IsExpansionOn ϕ M)
A language equivalence maps the symbols of one language to symbols of another bijectively.
- toLHom : L →ᴸ L'
- invLHom : L' →ᴸ L
- left_inv : FirstOrder.Language.LHom.comp self.invLHom self.toLHom = FirstOrder.Language.LHom.id L
- right_inv : FirstOrder.Language.LHom.comp self.toLHom self.invLHom = FirstOrder.Language.LHom.id L'
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The identity equivalence from a first-order language to itself.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- FirstOrder.Language.LEquiv.instInhabitedLEquiv = { default := FirstOrder.Language.LEquiv.refl L }
The inverse of an equivalence of first-order languages.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The composition of equivalences of first-order languages.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A language with constants indexed by a type.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- (_ : IsEmpty ((FirstOrder.Language.constantsOn α).Functions (n + 1))) = (_ : IsEmpty ((FirstOrder.Language.constantsOn α).Functions (n + 1)))
Gives a constantsOn α
structure to a type by assigning each constant a value.
Equations
- FirstOrder.Language.constantsOn.structure f = FirstOrder.Language.Structure.mk₂ f PEmpty.elim PEmpty.elim PEmpty.elim PEmpty.elim
Instances For
A map between index types induces a map between constant languages.
Equations
- FirstOrder.Language.LHom.constantsOnMap f = FirstOrder.Language.LHom.mk₂ f PEmpty.elim PEmpty.elim PEmpty.elim PEmpty.elim
Instances For
Extends a language with a constant for each element of a parameter set in M
.
Equations
Instances For
Extends a language with a constant for each element of a parameter set in M
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The language map adding constants.
Equations
- FirstOrder.Language.lhomWithConstants L α = FirstOrder.Language.LHom.sumInl
Instances For
The constant symbol indexed by a particular element.
Equations
- FirstOrder.Language.con L a = Sum.inr a
Instances For
Adds constants to a language map.
Equations
Instances For
Equations
The language map removing an empty constant set.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The language map extending the constant set.
Equations
Instances For
Equations
- FirstOrder.Language.constantsOnSelfStructure = FirstOrder.Language.constantsOn.structure id
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.