Reading an expansion's defining sentences through the meanings #
A defining sentence of an exponential expansion – the sentence that says whether
a relation of the expanded vocabulary holds of k points – is written over the
ordered base vocabulary expanded by k copies of the expansion's block
(DescriptiveComplexity.ExpExpansion.relSentence). Value invention holds those
k points as k invented values of one extended universe, each standing for an
assignment of the block through a guessed meaning relation. So the sentence
has to be read with:
- its base symbols passing through untouched, but among the original elements only;
- its order symbol at a guessed linear order, the extended universe having none of its own;
- the block symbol of copy
iand variablejread asMⱼ vᵢ ·, the meaning relation ofjat the value the copy holds.
That is a DescriptiveComplexity.ParamHom – the third item changes a symbol's
arity and puts a free variable in front of its arguments – followed by
relativization to the original elements, which
DescriptiveComplexity.ParamHom.relOnSentenceF performs in one step.
What this file adds is the map itself (DescriptiveComplexity.readHom) and what
it is worth (DescriptiveComplexity.realize_readHom): the structure the map
induces on the original elements is the base structure expanded by the k
copies of the block, interpreted by the assignments the values mean. The three
hypotheses that buy it name the three items above, each as a plain statement
about the target structure rather than about a formula.
The target vocabulary is left abstract, a
DescriptiveComplexity.ReadSyms naming only the symbols the translation uses:
the assembly that puts the order, the meanings, the tag bits and a guessed
certificate into one block chooses where each of them sits, and nothing here
needs to know.
The symbols the translation uses #
The symbols a translation through the meanings needs in the target vocabulary: the base vocabulary's own, a binary symbol for the guessed order, and one meaning symbol per variable of the block, of that variable's arity plus one.
The image of a base symbol.
- ord : Lt.Relations 2
The symbol the guessed order is read at.
The meaning relation of a variable: its arity, plus the value it belongs to.
Instances For
Dependency graph
The map #
The translation: base symbols through, the order symbol at the guessed
order, and the block symbol of copy i at the meaning relation of its variable,
with the value of copy i as first argument.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The same at a single copy, which is the shape a domain sentence has:
DescriptiveComplexity.ExpExpansion.dom speaks of one assignment, so its block
symbols are the block's own and there is one value to read them at.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
What it is worth #
The three readings the translation promises, as statements about the target structure: base symbols hold of original elements as they do in the instance, the order symbol is the instance's order, and the meaning symbol of a variable, at a value, is the assignment that value means.
- base {n : ℕ} (r : L.Relations n) (ts : Fin n → A) : (FirstOrder.Language.Structure.RelMap (S.base r) fun (i : Fin n) => e (ts i)) ↔ FirstOrder.Language.Structure.RelMap r ts
A base symbol holds of original elements exactly as it does in the instance.
- ord (ts : Fin 2 → A) : (FirstOrder.Language.Structure.RelMap S.ord fun (i : Fin 2) => e (ts i)) ↔ ts 0 ≤ ts 1
The order symbol is the instance's order.
- mean (v : M) (i : B.ι) (ts : Fin (B.arity i) → A) : (FirstOrder.Language.Structure.RelMap (S.mean i) fun (i_1 : Fin (B.arity i + 1)) => Fin.cases v (fun (j : Fin (B.arity i)) => e (ts j)) i_1) ↔ means v i ts
The meaning symbol of a variable, at a value, is the assignment that value means.
Instances For
Dependency graph
The structure the translation induces on the original elements agrees,
symbol by symbol, with the base structure expanded by the k copies of the
block interpreted by the assignments the values mean.
Dependency graph
The structure the translation induces on the original elements is the one the defining sentence is meant to be read in: the base structure, its order, and one copy of the block per value, interpreted by the assignment that value means.
Equations
- DescriptiveComplexity.readEquiv h vs = { toEquiv := Equiv.refl A, map_fun' := ⋯, map_rel' := ⋯ }
Instances For
Dependency graph
The translation, read among the original elements, says what the defining
sentence says: the guarded image of a sentence holds of k invented values
exactly when the sentence holds in the instance, with the k copies of the
block interpreted by the assignments those values mean.
Dependency graph
The same at a single copy #
The single-copy reading of
DescriptiveComplexity.readEquiv_rel.
Dependency graph
The single-copy reading of DescriptiveComplexity.readEquiv.
Equations
- DescriptiveComplexity.readEquiv₁ h v = { toEquiv := Equiv.refl A, map_fun' := ⋯, map_rel' := ⋯ }
Instances For
Dependency graph
The single-copy reading of DescriptiveComplexity.realize_readHom: the
guarded image of a domain sentence holds of an invented value exactly when the
sentence holds in the instance, the block interpreted by the assignment that
value means.