The invariant structure Iᵏ A #
The quotient of the k-tuples of a structure by ≡ᵏ
(DescriptiveComplexity.InvMap) – the invariant of
Dawar–Lindell–Weinstein 1995 – as a structure
over the invariant vocabulary DescriptiveComplexity.invLang:
- one unary bit per coordinate equality (
DescriptiveComplexity.InvRel.eqBit) and per base relation at a selection of coordinates (DescriptiveComplexity.InvRel.relBit) – the atomic type of a class; - one binary substitution relation per pebble
(
DescriptiveComplexity.InvRel.sub): the classes reachable by moving that pebble – how the invariant structure quantifies overA; - one binary rearrangement relation per coordinate selection
(
DescriptiveComplexity.InvRel.rearr): the class of a permuted, repeated, selected copy of a tuple – how the invariant structure reads relation variables at rearranged argument tuples.
The vocabulary does not depend on the agreement family S; the structure
does, and interprets the bit of a base relation outside S as false, which
keeps every interpretation well-defined on classes
(DescriptiveComplexity.equivK_atomicAgreeOn_of_pairSub for the coordinate
manipulations, the game move DescriptiveComplexity.EquivK.update for
substitution).
The second half of the file equips Iᵏ A with a linear order: any coloring
c₀ whose agreement is atomic agreement (the syntactic bit coloring of the
definable refinement, in DescriptiveComplexity.Invariant.OrderDef) induces
the canonical order DescriptiveComplexity.OrdK on tuples, which descends to
a linear order on the classes (DescriptiveComplexity.invLinearOrder) – the
order the simulated computation of the Abiteboul–Vianu argument runs on.
The invariant vocabulary #
The relation symbols of the invariant vocabulary: atomic-type bits, substitution along a pebble, rearrangement along a coordinate selection.
- eqBit
{L : FirstOrder.Language}
{k : ℕ}
(i j : Fin k)
: InvRel L k 1
The tuples of the class identify coordinates
iandj. - relBit
{L : FirstOrder.Language}
{k : ℕ}
(R : (n : ℕ) × L.Relations n)
(g : Fin R.fst → Fin k)
: InvRel L k 1
The base relation
Rholds on the tuples of the class at the selectiongof coordinates. - sub
{L : FirstOrder.Language}
{k : ℕ}
(j : Fin k)
: InvRel L k 2
The second class is reached from the first by moving pebble
j. - rearr
{L : FirstOrder.Language}
{k : ℕ}
(σ : Fin k → Fin k)
: InvRel L k 2
The second class is the rearrangement of the first along
σ.
Instances For
Dependency graph
The invariant vocabulary: the relational language of the invariant structure.
Equations
- DescriptiveComplexity.invLang L k = { Functions := fun (x : ℕ) => Empty, Relations := DescriptiveComplexity.InvRel L k }
Instances For
Dependency graph
Dependency graph
The quotient #
k-tuples up to ≡ᵏ, as a setoid.
Equations
- DescriptiveComplexity.invSetoid S k A = { r := DescriptiveComplexity.EquivK (DescriptiveComplexity.atomicAgreeOn S A k), iseqv := ⋯ }
Instances For
Dependency graph
The invariant structure's universe: the ≡ᵏ-classes of k-tuples
over A, relative to the agreement family S.
Equations
- DescriptiveComplexity.InvMap S k A = Quotient (DescriptiveComplexity.invSetoid S k A)
Instances For
Dependency graph
The class of a k-tuple.
Equations
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The equality bit on classes.
Equations
- DescriptiveComplexity.InvMap.eqBitRel i j = Quotient.lift (fun (u : Fin k → A) => u i = u j) ⋯
Instances For
Dependency graph
The relation bit on classes: false outside the agreement family, the base relation at the selection inside it.
Equations
- DescriptiveComplexity.InvMap.relBitRel R g = Quotient.lift (fun (u : Fin k → A) => R ∈ S ∧ FirstOrder.Language.Structure.RelMap R.snd fun (p : Fin R.fst) => u (g p)) ⋯
Instances For
Dependency graph
The substitution relation on classes: the second class is reached from
the first by a move of pebble j.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The rearrangement relation on classes: the second class is the
rearrangement of the first along σ.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The invariant structure: the interpretation of the invariant
vocabulary on the ≡ᵏ-classes.
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
Reading the relations at representatives #
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The linear order on the classes #
Any coloring whose agreement is atomic agreement induces, through the
canonical order on tuples (DescriptiveComplexity.OrdK), a linear order on
the ≡ᵏ-classes (decidability by choice).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The order on classes, read at representatives: strictly below in the canonical order, or equivalent.