Partial Isomorphisms #
This file defines partial isomorphisms between first-order structures.
Main Definitions #
FirstOrder.Language.PartialEquiv
is defined so thatL.PartialEquiv M N
, annotatedM ≃ₚ[L] N
, is the type of equivalences between substructures ofM
andN
.
A partial L
-equivalence, implemented as an equivalence between substructures.
- dom : L.Substructure M
The substructure which is the domain of the equivalence.
- cod : L.Substructure N
The substructure which is the codomain of the equivalence.
- toEquiv : L.Equiv ↥self.dom ↥self.cod
The equivalence between the two subdomains.
Instances For
A partial L
-equivalence, implemented as an equivalence between substructures.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- FirstOrder.Language.PartialEquiv.instInhabited_self = { default := { dom := ⊤, cod := ⊤, toEquiv := FirstOrder.Language.Equiv.refl L ↥⊤ } }
Maps to the symmetric partial equivalence.
Equations
- f.symm = { dom := f.cod, cod := f.dom, toEquiv := f.toEquiv.symm }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- FirstOrder.Language.PartialEquiv.instPartialOrder = PartialOrder.mk ⋯
Restriction of a partial equivalence to a substructure of the domain.
Equations
- f.domRestrict h = let g := f.cod.subtype.comp (f.toEquiv.toEmbedding.comp (FirstOrder.Language.Substructure.inclusion h)); { dom := A, cod := g.toHom.range, toEquiv := g.equivRange }
Instances For
Restriction of a partial equivalence to a substructure of the codomain.
Equations
- f.codRestrict h = (f.symm.domRestrict h).symm
Instances For
A partial equivalence as an embedding from its domain.
Equations
- f.toEmbedding = f.cod.subtype.comp f.toEquiv.toEmbedding
Instances For
Given a partial equivalence which has the whole structure as domain, returns the corresponding embedding.
Equations
- FirstOrder.Language.PartialEquiv.toEmbeddingOfEqTop h = (h ▸ f.toEmbedding).comp FirstOrder.Language.Substructure.topEquiv.symm.toEmbedding
Instances For
Given a partial equivalence which has the whole structure as domain and as codomain, returns the corresponding equivalence.
Equations
- FirstOrder.Language.PartialEquiv.toEquivOfEqTop h_dom h_cod = FirstOrder.Language.Substructure.topEquiv.comp ((h_dom ▸ h_cod ▸ f.toEquiv).comp FirstOrder.Language.Substructure.topEquiv.symm)
Instances For
Given an embedding, returns the corresponding partial equivalence with ⊤
as domain.
Equations
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The limit of a directed system of PartialEquivs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The type of equivalences between finitely generated substructures.
Equations
- L.FGEquiv M N = { f : L.PartialEquiv M N // f.dom.FG }
Instances For
Two structures M
and N
form an extension pair if the domain of any finitely-generated map
from M
to N
can be extended to include any element of M
.
Equations
Instances For
Equations
- FirstOrder.Language.inhabited_self_FGEquiv = { default := ⟨{ dom := ⊥, cod := ⊥, toEquiv := FirstOrder.Language.Equiv.refl L ↥⊥ }, ⋯⟩ }
Maps to the symmetric finitely-generated partial equivalence.
Equations
- f.symm = ⟨(↑f).symm, ⋯⟩
Instances For
Alias of the forward direction of FirstOrder.Language.IsExtensionPair_iff_cod
.
The cofinal set of finite equivalences with a given element in their domain.
Instances For
The cofinal set of finite equivalences with a given element in their codomain.
Instances For
For a countably generated structure M
and a structure N
, if any partial equivalence
between finitely generated substructures can be extended to any element in the domain,
then there exists an embedding of M
in N
.
For two countably generated structure M
and N
, if any PartialEquiv
between finitely generated substructures can be extended to any element in the domain and to
any element in the codomain, then there exists an equivalence between M
and N
.