Documentation

DescriptiveComplexity.Problems.Wide.RelExp

Reading the instance inside the doubled universe #

DescriptiveComplexity.Problems.Wide.Double runs the machinery at a universe that is never a singleton, at the price of a universe that is no longer the instance. This file pays that price for one sentence at a time: a sentence about the instance's ordered vocabulary, expanded by a block, is renamed into the extended vocabulary (DescriptiveComplexity.Draw.newBlockLHom) and relativized to the mark (DescriptiveComplexity.relativizeTo), and then says in the doubled universe exactly what it said in the instance (DescriptiveComplexity.Draw.realize_relOldBlock).

The block assignment travels with it. An assignment of the instance is extended to the doubled universe by DescriptiveComplexity.Draw.extAssign – it holds of a tuple exactly when every entry is marked and the entries' elements satisfy it – and that is the shape the support condition of the relativized expansion will pin down: an assignment over the doubled universe that only ever holds of marked tuples is an assignment of the instance and nothing more.

The lexicographic order, on the doubled universe #

theorem DescriptiveComplexity.Draw.tupLeLex_one {A : Type} [LinearOrder A] (u v : Fin 1A) :
tupLeLex u v u 0 v 0

On a one-coordinate tuple the lexicographic order is the order itself.

Dependency graph

Two points of the doubled universe with the same tag compare as their elements do.

Dependency graph

The renaming, and the mark #

Renaming a sentence about the instance – over its ordered vocabulary, expanded by a block – into the extended vocabulary.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Dependency graph
    @[reducible, inline]

    The mark of the instance's own elements, in the block-expanded extended vocabulary.

    Equations
    Instances For
      Dependency graph
      @[instance_reducible]

      The order the reduction puts on the doubled universe: the instance's copy and the junk copy, each in the instance's order.

      Equations
      Dependency graph

      An assignment of the instance, extended to the doubled universe: it holds of a tuple exactly when every entry is marked and the entries' elements satisfy it.

      Equations
      Instances For
        Dependency graph

        An assignment of the doubled universe, restricted to the instance.

        Equations
        Instances For
          Dependency graph
          Dependency graph

          An assignment is supported when it only ever holds of marked tuples: the condition the relativized expansion pins down, and exactly what makes an assignment of the doubled universe an assignment of the instance.

          Equations
          Instances For
            Dependency graph
            Dependency graph

            The transport #

            The structures the transport is about are built from block assignments, so they are never instances: every statement below names them.

            The marked part of the doubled universe, as a substructure: the vocabulary is relational, so there is nothing to be closed under.

            Equations
            Instances For
              Dependency graph
              noncomputable def DescriptiveComplexity.Draw.oldSubDEquiv {L : FirstOrder.Language} [L.IsRelational] {B : SOBlock} {A : Type} [L.Structure A] [LinearOrder A] (ρ₀ : B.Assignment A) :
              A (oldSubD L B A ρ₀)

              The marked part is the instance: an element and its marked copy.

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

                The marked part carries the instance, over the instance's own ordered vocabulary expanded by the block: an isomorphism, the reduct of the induced structure along the renaming being what the extended assignment restricts to.

                Equations
                Instances For
                  Dependency graph

                  Reading a sentence about the instance inside the doubled universe: its renaming, relativized to the mark, says of the extended assignment exactly what it said of the assignment.

                  Dependency graph

                  The support condition, as a sentence #

                  An assignment of the doubled universe is an assignment of the instance exactly when it never holds of an unmarked entry. That is one sentence per relation variable of the block, and it is the conjunct the relativized expansion's domain sentence carries beside the relativized original.

                  @[reducible, inline]

                  A relation variable of the block, as a symbol of the expanded extended vocabulary: named, because a raw Sum.inr is not recognized at the transparency rw matches at.

                  Equations
                  Instances For
                    Dependency graph

                    One relation variable holds only of marked tuples, as a sentence.

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

                      The support condition, as a sentence: every relation variable of the block holds only of marked tuples.

                      Equations
                      Instances For
                        Dependency graph

                        The marked part of an arbitrary extended structure #

                        The doubled universe is not the only structure the relativized expansion will be read at: FirstOrder.Language.ExpExpansion demands its domain sentence be satisfiable at every structure, so the marked part has to be an instance in its own right wherever there is one.

                        The marked part of an extended structure. A def, so that its instances below are found by their own head rather than by the subtype's.

                        Equations
                        Instances For
                          Dependency graph

                          The element a marked point is.

                          Equations
                          Instances For
                            Dependency graph
                            Dependency graph
                            Dependency graph

                            A marked element, as a point of the marked part.

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

                              The instance's own relations, on its marked part.

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

                              An assignment of the marked part, extended to the whole structure: it holds of a tuple exactly when every entry is marked and the marked entries satisfy it.

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

                                The marked part, as a substructure of the block-expanded extended vocabulary.

                                Equations
                                Instances For
                                  Dependency graph

                                  The marked part carries the instance it marks: the identity map is an isomorphism from the marked part, with the structures above, onto the substructure with the reduct of its induced structure.

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

                                    Reading a sentence about the marked part inside the structure: its renaming, relativized to the mark, says of the extended assignment exactly what it said of the assignment.

                                    Dependency graph
                                    theorem DescriptiveComplexity.Draw.supported_extAssignM {L : FirstOrder.Language} [L.IsRelational] {M : Type} [(newLang L).Structure M] (B : SOBlock) (ρ₀ : B.Assignment (MarkPart L M)) (i : B.ι) (w : Fin (B.arity i)M) :
                                    extAssignM B ρ₀ i w∀ (j : Fin (B.arity i)), FirstOrder.Language.Structure.RelMap (oldNewSym L) ![w j]

                                    An extended assignment is supported: nothing but marked tuples.

                                    Dependency graph
                                    theorem DescriptiveComplexity.Draw.realize_suppAt {L : FirstOrder.Language} {M : Type} [(newLang L).Structure M] (B : SOBlock) [LinearOrder M] (ρ : B.Assignment M) (i : B.ι) :
                                    M suppAt L B i ∀ (w : Fin (B.arity i)M), ρ i w∀ (j : Fin (B.arity i)), FirstOrder.Language.Structure.RelMap (oldNewSym L) ![w j]

                                    The support condition, read: an assignment satisfies the support sentence exactly when it never holds of an unmarked entry.

                                    Dependency graph
                                    theorem DescriptiveComplexity.Draw.realize_suppSentence {L : FirstOrder.Language} {M : Type} [(newLang L).Structure M] (B : SOBlock) [LinearOrder M] (ρ : B.Assignment M) :
                                    M suppSentence L B ∀ (i : B.ι) (w : Fin (B.arity i)M), ρ i w∀ (j : Fin (B.arity i)), FirstOrder.Language.Structure.RelMap (oldNewSym L) ![w j]
                                    Dependency graph