Documentation

DescriptiveComplexity.SecondOrderNewRead

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:

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.

  • base {n : } : L.Relations nLt.Relations n

    The image of a base symbol.

  • ord : Lt.Relations 2

    The symbol the guessed order is read at.

  • mean (i : B.ι) : Lt.Relations (B.arity i + 1)

    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 #

        structure DescriptiveComplexity.ReadOn {L Lt : FirstOrder.Language} {B : SOBlock} {M A : Type} [Lt.Structure M] [L.Structure A] [LinearOrder A] (S : ReadSyms L B Lt) (e : AM) (means : MB.Assignment A) :

        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.

        Instances For
          Dependency graph
          theorem DescriptiveComplexity.readEquiv_rel {L Lt : FirstOrder.Language} {B : SOBlock} {S : ReadSyms L B Lt} {k : } {M A : Type} [Lt.Structure M] [L.IsRelational] [L.Structure A] [LinearOrder A] {e : AM} {means : MB.Assignment A} (h : ReadOn S e means) (vs : Fin kM) {n : } (r : ((L.sum FirstOrder.Language.order).sum (B.replicate k).lang).Relations n) (x : Fin nA) :

          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
          def DescriptiveComplexity.readEquiv {L Lt : FirstOrder.Language} {B : SOBlock} {S : ReadSyms L B Lt} {k : } {M A : Type} [Lt.Structure M] [L.IsRelational] [L.Structure A] [LinearOrder A] {e : AM} {means : MB.Assignment A} (h : ReadOn S e means) (vs : Fin kM) :

          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
          Instances For
            Dependency graph
            theorem DescriptiveComplexity.realize_readHom {L Lt : FirstOrder.Language} {B : SOBlock} {S : ReadSyms L B Lt} {k : } {M A : Type} [Lt.Structure M] [L.IsRelational] [L.Structure A] [LinearOrder A] {e : AM} {means : MB.Assignment A} (h : ReadOn S e means) {R : Lt.Relations 1} (hinj : Function.Injective e) (hR : ∀ (x : M), FirstOrder.Language.Structure.RelMap R ![x] ∃ (a : A), e a = x) (vs : Fin kM) (φ : ((L.sum FirstOrder.Language.order).sum (B.replicate k).lang).Sentence) :
            ((readHom S k).relOnSentenceF R φ).Realize vs A φ

            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 #

            theorem DescriptiveComplexity.readEquiv₁_rel {L Lt : FirstOrder.Language} {B : SOBlock} {S : ReadSyms L B Lt} {M A : Type} [Lt.Structure M] [L.IsRelational] [L.Structure A] [LinearOrder A] {e : AM} {means : MB.Assignment A} (h : ReadOn S e means) (v : M) {n : } (r : ((L.sum FirstOrder.Language.order).sum B.lang).Relations n) (x : Fin nA) :

            The single-copy reading of DescriptiveComplexity.readEquiv_rel.

            Dependency graph
            def DescriptiveComplexity.readEquiv₁ {L Lt : FirstOrder.Language} {B : SOBlock} {S : ReadSyms L B Lt} {M A : Type} [Lt.Structure M] [L.IsRelational] [L.Structure A] [LinearOrder A] {e : AM} {means : MB.Assignment A} (h : ReadOn S e means) (v : M) :

            The single-copy reading of DescriptiveComplexity.readEquiv.

            Equations
            Instances For
              Dependency graph
              theorem DescriptiveComplexity.realize_readHom₁ {L Lt : FirstOrder.Language} {B : SOBlock} {S : ReadSyms L B Lt} {M A : Type} [Lt.Structure M] [L.IsRelational] [L.Structure A] [LinearOrder A] {e : AM} {means : MB.Assignment A} (h : ReadOn S e means) {R : Lt.Relations 1} (hinj : Function.Injective e) (hR : ∀ (x : M), FirstOrder.Language.Structure.RelMap R ![x] ∃ (a : A), e a = x) (v : M) (φ : ((L.sum FirstOrder.Language.order).sum B.lang).Sentence) :
              (((readHom₁ S).relOnSentenceF R φ).Realize fun (x : Unit) => v) A φ

              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.

              Dependency graph