The order the reduction puts on the points #
DescriptiveComplexity.PFPDefinable quantifies over every linear order on
the expanded universe, so the EXPSPACE reduction may choose the one its
machine can compare: the pullback of the binary block-value order along the
encoding (DescriptiveComplexity.Draw.encOrder). An order atom on two points
is then exactly the comparison of their encodings in the machine's own reading
– DescriptiveComplexity.WMSetLe at the lexicographic order on tuples, the
order the register file walks – which is
DescriptiveComplexity.Draw.encOrder_le_iff.
The junction between the two languages for orders on block values –
the address layer's DescriptiveComplexity.WMSetLe tupLeLex and the library's
DescriptiveComplexity.setLinearOrder – is
DescriptiveComplexity.Draw.wmSetLe_iff_setLe: both say at the most
significant differing tuple, the second contains it, with most significant =
lexicographically least.
(The library's canonical order on the expanded universe,
DescriptiveComplexity.ExpExpansion.mapLinearOrder, orders by tag first and
padded atoms second; nothing here conflicts with it – the reduction simply
instantiates the definition's order quantifier differently.)
The two readings of the binary order on block values #
The two readings of the binary order on block values agree: the address
layer's DescriptiveComplexity.WMSetLe at the lexicographic tuple order is the
library's DescriptiveComplexity.setLinearOrder on subsets of the Lex
tuples.
Dependency graph
The pulled-back order on the points #
The order the reduction puts on the expanded universe: the pullback of the binary block-value order along the encoding. An order atom on two points is then the comparison of their encodings, which the machine can run on its register file.
Equations
- DescriptiveComplexity.Draw.encOrder ly zero one hne = LinearOrder.lift' (DescriptiveComplexity.Draw.encMap ly zero one) ⋯
Instances For
Dependency graph
What the chosen order says: the machine's own comparison of the two encodings.