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
. These can be ordered, with an order that is defined here in terms of a commutative square, but could also be defined as the order on the graphs of the partial equivalences under inclusion as subsets ofM × N
.FirstOrder.Language.FGEquiv
is the type of partial equivalencesM ≃ₚ[L] N
with finitely-generated domain (or equivalently, codomain).FirstOrder.Language.IsExtensionPair
is defined so thatL.IsExtensionPair M N
indicates that any finitely-generated partial equivalence fromM
toN
can be extended to include an arbitrary elementm : M
in its domain.
Main Results #
FirstOrder.Language.embedding_from_cg
shows that if structuresM
andN
form an equivalence pair withM
countably-generated, then any finite-generated partial equivalence between them can be extended to an embeddingM ↪[L] N
.FirstOrder.Language.equiv_from_cg
shows that if countably-generated structuresM
andN
form an equivalence pair in both directions, then any finite-generated partial equivalence between them can be extended to an isomorphismM ↪[L] N
.- The proofs of these results are adapted in part from David Wärn's approach to countable dense
linear orders, a special case of this phenomenon in the case where
L = Language.order
.
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
- One or more equations did not get rendered due to their size.
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
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 ↥⊥ }, ⋯⟩ }
Equations
- One or more equations did not get rendered due to their size.
Maps to the symmetric finitely-generated partial equivalence.
Equations
- f.symm = ⟨(↑f).symm, ⋯⟩
Instances For
An alternate characterization of an extension pair is that every finitely generated partial isomorphism can be extended to include any particular element of the domain.
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
.