Small universes are transparent: how to drop a size condition #
Every packing argument of Immerman's mutual definability needs the universe to
be above a concrete size – there is no room to lay a certificate out in a
universe of three elements – and a statement gated by n ≥ N is a statement
that has to carry n ≥ N for ever after. This file is what discharges such a
hypothesis, and it is stated once for both logics:
A numeric relation – one that depends only on the size of the universe and on the ranks of its arguments – is definable on universes of at most
kelements, whatever it is (DescriptiveComplexity.arithDef_of_card_le,DescriptiveComplexity.bitDef_of_card_le). So a numeric relation definable on the large universes is definable outright (DescriptiveComplexity.ArithDef.of_large,DescriptiveComplexity.BitDef.of_large).
The reason is that an order names its elements: orank x = j is first-order
for each numeral j (DescriptiveComplexity.arithDef_orankEq, by j
successors), and Nat.card A = n is first-order for each numeral n
(DescriptiveComplexity.arithDef_cardEq). Below a fixed size there are finitely
many (size, tuple of ranks) cases, so the relation is an explicit finite
disjunction, one disjunct per case, each disjunct a conjunction of namings and a
truth value decided outside the structure.
What it is for #
A construction that lays out a certificate says what it needs of n and proves
its statement for those n only; this turns that into the statement with no
side condition. It is the shared prerequisite of two developments – the Bit Sum
Lemma (LogTime/BitSum/, whose packing levels each need n above a bound) and
the tuple arithmetic of AC⁰ class-hood (whose half-width splitting needs
n ≥ 3) – and it is deliberately built before either.
The finiteness hypothesis is on the variables, not on anything else: a
disjunction over the rank assignments of infinitely many variables is not a
formula. Every consumer has finitely many, and states them as a Fin m.
Naming an element by its rank #
orank x = j is first-order, for each numeral j: j steps of “add
one”, each step one existential. The formula depends on j, and that is the
point – it is a formula of the machine, not of the instance.
Dependency graph
The same, in the bit logic.
Dependency graph
Naming the size of the universe #
The universe has more than k elements exactly when a rank k is
attained, which is first-order by the naming above.
Dependency graph
The same, in the bit logic.
Dependency graph
The universe has exactly n elements: a rank n - 1 is attained and a
rank n is not.
Dependency graph
The same, in the bit logic.
Dependency graph
Numeric relations #
A family of relations is numeric when it is a function of the size of the universe and of the ranks of its arguments – which is what every statement of arithmetic is, and what an input relation is not.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The relations a construction actually meets are numeric by inspection; this is the one that says so for an arithmetic statement of three variables.
Dependency graph
Transparency #
Below a fixed size, everything numeric is first-order: one disjunct per (size, tuple of ranks), each naming the size and every argument, and each carrying its truth value as a constant. Note what the disjunct does not do – it never looks at the instance, which is why the relation has to be numeric.
Dependency graph
The same, in the bit logic.
Dependency graph
The large case suffices: a numeric relation that is definable once the universe is big enough is definable, full stop. This is the lemma a packing argument quotes so that its size condition never reaches its statement.
Dependency graph
The same, in the bit logic.