Documentation

DescriptiveComplexity.SecondOrderNewPoint

Which invented values are points, and what the expanded relations say of them #

An invented value stands for a tagged assignment of the expansion's block: the assignment is what the guessed meaning relations give it (DescriptiveComplexity.SecondOrderNewRead), and the tag is carried the same way, by one nullary variable of the block per tag – so a unary symbol on the extended universe. Neither is a point of the expanded universe on its own: a point carries exactly one tag, and its assignment satisfies that tag's domain sentence. Both are first-order statements about the value, and this file writes them.

Both are written over an abstract target vocabulary (DescriptiveComplexity.PointSyms names the symbols and nothing else), and both are formulas with free variables of an arbitrary type, so that the assembly can plug them under whatever quantifiers it needs.

The symbols #

The symbols the point formulas use in the target vocabulary: those the translation through the meanings needs, one unary symbol per tag, and the marker of the original elements.

  • read : ReadSyms L X.B Lt

    The symbols the defining sentences are read at.

  • tag : X.TagLt.Relations 1

    “this value carries the tag t”.

  • old : Lt.Relations 1

    The marker of the original elements.

Instances For
    Dependency graph

    The formulas #

    def DescriptiveComplexity.tagF {L Lt : FirstOrder.Language} {X : ExpExpansion L} (P : PointSyms L X Lt) {α : Type} (t : X.Tag) (v : α) :
    Lt.Formula α

    The atom “the value held by v carries the tag t”.

    Equations
    Instances For
      Dependency graph
      noncomputable def DescriptiveComplexity.isPointF {L Lt : FirstOrder.Language} [L.IsRelational] {X : ExpExpansion L} (P : PointSyms L X Lt) {α : Type} (v : α) :
      Lt.Formula α

      “The value held by v is a point of the expanded universe”: it carries exactly one tag, and the domain sentence of that tag holds of the assignment it means.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Dependency graph
        noncomputable def DescriptiveComplexity.pointRelF {L Lt : FirstOrder.Language} [L.IsRelational] {X : ExpExpansion L} (P : PointSyms L X Lt) {α : Type} {k : } (r : X.E.Relations k) (vs : Fin kα) :
        Lt.Formula α

        “The relation r of the expanded vocabulary holds of the values held by vs: one disjunct per tuple of tags, guarded by the tag atoms of those values, whose body is the defining sentence at that tuple, read through the meanings among the original elements.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          Dependency graph

          What they say #

          structure DescriptiveComplexity.PointOn {L Lt : FirstOrder.Language} {X : ExpExpansion L} {M A : Type} [Lt.Structure M] [L.Structure A] [LinearOrder A] (P : PointSyms L X Lt) (e : AM) (means : MX.B.Assignment A) (tags : MX.TagProp) :

          The readings the point formulas promise, beyond those of DescriptiveComplexity.ReadOn: the tag symbols are the tags a value carries, and the marker marks the original elements.

          Instances For
            Dependency graph
            theorem DescriptiveComplexity.realize_tagF {L Lt : FirstOrder.Language} {X : ExpExpansion L} {P : PointSyms L X Lt} {α M A : Type} [Lt.Structure M] [L.Structure A] [LinearOrder A] {e : AM} {means : MX.B.Assignment A} {tags : MX.TagProp} (h : PointOn P e means tags) (t : X.Tag) (v : α) (w : αM) :
            (tagF P t v).Realize w tags (w v) t
            Dependency graph
            theorem DescriptiveComplexity.realize_isPointF {L Lt : FirstOrder.Language} [L.IsRelational] {X : ExpExpansion L} {P : PointSyms L X Lt} {α M A : Type} [Lt.Structure M] [L.Structure A] [LinearOrder A] {e : AM} {means : MX.B.Assignment A} {tags : MX.TagProp} (hinj : Function.Injective e) (h : PointOn P e means tags) (v : α) (w : αM) :
            (isPointF P v).Realize w ∃ (t : X.Tag), tags (w v) t (∀ (t' : X.Tag), tags (w v) t't' = t) ExpExpansion.DomHolds (t, means (w v))

            DescriptiveComplexity.isPointF says that the value is a point: it carries one tag and no other, and its assignment satisfies that tag's domain sentence.

            Dependency graph
            theorem DescriptiveComplexity.realize_pointRelF {L Lt : FirstOrder.Language} [L.IsRelational] {X : ExpExpansion L} {P : PointSyms L X Lt} {α M A : Type} [Lt.Structure M] [L.Structure A] [LinearOrder A] {e : AM} {means : MX.B.Assignment A} {tags : MX.TagProp} (hinj : Function.Injective e) (h : PointOn P e means tags) {k : } (r : X.E.Relations k) (vs : Fin kα) (w : αM) :
            (pointRelF P r vs).Realize w ∃ (τ : Fin kX.Tag), (∀ (j : Fin k), tags (w (vs j)) (τ j)) A X.relSentence r τ

            DescriptiveComplexity.pointRelF says that the relation holds, provided the values carry the tags: some tuple of tags is the one the values carry, and the defining sentence at that tuple holds of the assignments they mean.

            Dependency graph