Guessing what the invented values mean #
To read a problem over an exponential expansion as one with value invention, the
invented values have to be the expansion's points, and a point is an
assignment of a block: a relation over the instance. So the sentence guesses a
meaning relation M, one more argument than the relation it names: M v x⃗
says that the invented value v names a relation holding of x⃗.
Three of the four conditions on that guess are ordinary first-order statements about the extended universe:
DescriptiveComplexity.meanShaped–Mrelates an invented value to original elements and nothing else;DescriptiveComplexity.meanInj– distinct invented values name distinct relations;DescriptiveComplexity.meanEmpty– some invented value names the empty relation.
The fourth is what buys the one thing a sentence cannot say, that the guess is onto:
DescriptiveComplexity.meanFlip– for every invented value and every tuple, some invented value names the same relation with that tuple flipped.
With injectivity, those last two make the meanings enumerate every relation,
by DescriptiveComplexity.bijective_of_flipClosedP – a counting argument in
Lean, not a condition in the logic. That is where the bound of an
exponentially-bounded invention is spent.
The block and its atoms #
The block guessing the meanings: one relation of arity one more than the relation being named.
Equations
Instances For
Dependency graph
The meaning relation, as a symbol.
Instances For
Dependency graph
The vocabulary a meaning guess is written in.
Equations
Instances For
Dependency graph
The atom old x.
Equations
- DescriptiveComplexity.oldAtomM L a x = FirstOrder.Language.Relations.formula (Sum.inl (Sum.inr FirstOrder.Language.oldSym)) fun (x_1 : Fin 1) => FirstOrder.Language.var x
Instances For
Dependency graph
The atom M v x⃗: the invented value v names a relation holding of x⃗.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The four guards #
The meaning relation is shaped: it relates an invented value to original elements, and nothing else.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Some invented value names the empty relation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Distinct invented values name distinct relations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The meanings are closed under flipping one tuple: for every invented value and every tuple of original elements, some invented value names the same relation with that tuple flipped. This is what makes the guess onto.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The whole guard: the four conditions together.
Equations
Instances For
Dependency graph
The guards, realized #
The relation an element names, read off the guess.
Instances For
Dependency graph
The relation an invented value names, at original arguments.
Equations
- DescriptiveComplexity.meanAt ρ i w = DescriptiveComplexity.meaningOf ρ (Sum.inr i) fun (j : Fin a) => Sum.inl (w j)
Instances For
Dependency graph
The host structure: the extended structure expanded by the guess.
Equations
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The guard makes the meanings a bijection: with the four conditions, the
invented values name every a-ary relation of the instance, each exactly once.
This is where the counting of
DescriptiveComplexity.SecondOrderNewCount is spent.
Dependency graph
The whole guard, realized, and what it buys: the invented values name
every a-ary relation of the instance, each exactly once.