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.withConstantsis defined so that ifMis anL.StructureandA : Set M,L.withConstants A, denotedL[[A]], is a language which adds constant symbols for elements ofAtoL.
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.
The mapping of functions
The mapping of relations
Instances For
A language homomorphism maps the symbols of one language to symbols of another.
Instances For
The identity language homomorphism.
Instances For
The inclusion of the left factor into the sum of two languages.
Instances For
The inclusion of the right factor into the sum of two languages.
Instances For
The inclusion of an empty language into any other language.
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.
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) : Structure.funMap (ϕ.onFunction f) x = Structure.funMap f x
- map_onRelation {n : ℕ} (R : L.Relations n) (x : Fin n → M) : Structure.RelMap (ϕ.onRelation R) x = Structure.RelMap R x
Instances
A language equivalence maps the symbols of one language to symbols of another bijectively.
The forward language homomorphism
The inverse language homomorphism
Instances For
A language equivalence maps the symbols of one language to symbols of another bijectively.
Instances For
The identity equivalence from a first-order language to itself.
Instances For
The inverse of an equivalence of first-order languages.
Instances For
The type of functions for a language consisting only of constant symbols.
Instances For
A language with constants indexed by a type.
Instances For
Gives a constantsOn α structure to a type by assigning each constant a value.
Instances For
A map between index types induces a map between constant languages.
Instances For
Extends a language with a constant for each element of a parameter set in M.
Instances For
Extends a language with a constant for each element of a parameter set in M.
Instances For
The language map adding constants.
Instances For
The constant symbol indexed by a particular element.
Instances For
Adds constants to a language map.
Instances For
The language map removing an empty constant set.
Instances For
The language map extending the constant set.
Instances For
Type synonym for N used to equip it with an L[[A]]-structure where the new constants on A
are interpreted via the embedding f.
Instances For
Lifts an embedding to the expanded language with constants.