Two marked copies of a vocabulary, and the isomorphism problem they carry #
Every problem of the GI degree has the same shape: one universe holding two
marked structures over the same vocabulary, and the question whether they are
isomorphic. DescriptiveComplexity.Problems.DigraphIso and
DescriptiveComplexity.Problems.DagIso each hand-roll that shape
(FirstOrder.Language.twoGraphs, FirstOrder.Language.twoDags), which is fine
for one problem and wasteful for a family.
FirstOrder.Language.twoCopies L₁ builds it once: two unary marks, and two
copies of every relation symbol of L₁. A structure over it carries an
L₁-structure on each marked set
(DescriptiveComplexity.patSideStructure,
DescriptiveComplexity.hostSideStructure), and
DescriptiveComplexity.TwoCopiesIso is the decision problem asking whether
those two L₁-structures are isomorphic.
The reason to have it is the gadget layer this file is written for: a
construction on single L₁-structures can be doubled – run relativized to each
mark – only if the target vocabulary is known to be two copies of something,
since the defining formulas have to be given symbol by symbol. Problems added
to the degree from here on should be stated over twoCopies; the two existing
hand-rolled vocabularies stay as they are, their results being already proved.
Relation symbols of the two-copy vocabulary: a mark for each side, and two copies of every relation symbol of the base vocabulary.
- patMark
{L₁ : Language}
: L₁.twoCopiesRel 1
patMark a:abelongs to the pattern side. - hostMark
{L₁ : Language}
: L₁.twoCopiesRel 1
hostMark a:abelongs to the host side. - pat
{L₁ : Language}
{n : ℕ}
(r : L₁.Relations n)
: L₁.twoCopiesRel n
The pattern copy of a relation symbol of the base vocabulary.
- host
{L₁ : Language}
{n : ℕ}
(r : L₁.Relations n)
: L₁.twoCopiesRel n
The host copy of a relation symbol of the base vocabulary.
Instances For
Dependency graph
Two marked copies of a relational vocabulary, sharing one universe.
Instances For
Dependency graph
Dependency graph
The pattern mark.
Equations
Instances For
Dependency graph
The host mark.
Equations
Instances For
Dependency graph
The pattern copy of a base relation symbol.
Instances For
Dependency graph
The host copy of a base relation symbol.
Instances For
Dependency graph
Belonging to the pattern side.
Instances For
Dependency graph
Belonging to the host side.
Equations
Instances For
Dependency graph
The pattern side, as a structure over the base vocabulary.
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
The host side, as a structure over the base vocabulary.
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
An isomorphism of the two sides, over the base vocabulary.
Equations
- DescriptiveComplexity.TCSideEquiv A = L₁.Equiv { x : A // DescriptiveComplexity.TCPatMark x } { y : A // DescriptiveComplexity.TCHostMark y }
Instances For
Dependency graph
Isomorphism-invariance #
An isomorphism of the ambient structures restricts to the pattern sides.
Equations
- DescriptiveComplexity.patSideMap e x = ⟨e ↑x, ⋯⟩
Instances For
Dependency graph
An isomorphism of the ambient structures restricts to the host sides.
Equations
- DescriptiveComplexity.hostSideMap e x = ⟨e ↑x, ⋯⟩
Instances For
Dependency graph
The restriction of an ambient isomorphism to the pattern sides is itself an isomorphism over the base vocabulary.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The restriction of an ambient isomorphism to the host sides.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Isomorphic sides transport along an isomorphism of the ambient structures.
Dependency graph
The isomorphism problem of a vocabulary: are the two marked
L₁-structures of the instance isomorphic? Every entry of the GI degree added
from here on is an instance of this shape.