Documentation

DescriptiveComplexity.Problems.Epr.Expansion

The expansion whose points are the relations on the instance #

What EPR's membership is read over. DescriptiveComplexity.AddrExp.addrExp has a block of one unary variable, so its points are the subsets of the instance; here the block's variable is binary, so a point is a binary relation – and an assignment of the universal variables of an ∃*∀* sentence is exactly that, a function being a relation.

Three tags keep the smaller objects visible inside the expansion:

The size is what the class needs: with n elements there are 2^(n²) points, so a Σ₁ sentence read here is a nondeterministic computation of exponential time in a polynomial of the instance, which is what NEXPTIME is.

The block and the vocabularies #

@[reducible]

The block of the expansion: one binary relation variable, so an assignment of it is a binary relation on the instance.

Marked @[reducible] so that the numerals of a tuple of its arity elaborate.

Equations
Instances For
    Dependency graph
    @[reducible, inline]

    The instance's vocabulary together with the order, over which the defining sentences of the expansion live.

    Equations
    Instances For
      Dependency graph
      Dependency graph
      Dependency graph
      @[reducible, inline]

      The block's variable, in the one-copy vocabulary.

      Equations
      Instances For
        Dependency graph
        @[reducible, inline]

        The first copy's variable, in the two-copy vocabulary.

        Equations
        Instances For
          Dependency graph
          @[reducible, inline]

          The second copy's variable, in the two-copy vocabulary.

          Equations
          Instances For
            Dependency graph
            @[reducible, inline]

            An instance symbol, in the ordered vocabulary.

            Equations
            Instances For
              Dependency graph

              Relations, as assignments of the block #

              The relation an assignment of the block is.

              Equations
              Instances For
                Dependency graph

                And the assignment a relation is.

                Equations
                Instances For
                  Dependency graph
                  @[simp]
                  theorem DescriptiveComplexity.Epr.peRel_peAssign {A : Type} (R : AAProp) :
                  Dependency graph
                  Dependency graph
                  Dependency graph

                  The atoms of the block and the lifts #

                  noncomputable def DescriptiveComplexity.Epr.peF1 {γ : Type} (x y : γ) :

                  The block's variable, as a formula over one copy.

                  Equations
                  Instances For
                    Dependency graph
                    noncomputable def DescriptiveComplexity.Epr.peFA {γ : Type} (x y : γ) :

                    The first copy's variable, as a formula over two copies.

                    Equations
                    Instances For
                      Dependency graph
                      noncomputable def DescriptiveComplexity.Epr.peFB {γ : Type} (x y : γ) :

                      The second copy's variable, as a formula over two copies.

                      Equations
                      Instances For
                        Dependency graph

                        A unary relation of the instance, as a formula.

                        Equations
                        Instances For
                          Dependency graph

                          A binary relation of the instance, as a formula.

                          Equations
                          Instances For
                            Dependency graph
                            Dependency graph
                            noncomputable def DescriptiveComplexity.Epr.peEqG {γ : Type} (x y : γ) :

                            Equality of two variables, as a formula.

                            Equations
                            Instances For
                              Dependency graph
                              noncomputable def DescriptiveComplexity.Epr.peLift1 {γ : Type} (φ : peOrd.Formula γ) :

                              Reading a sentence of the base vocabulary in the one-copy vocabulary.

                              Equations
                              Instances For
                                Dependency graph
                                Dependency graph
                                @[simp]
                                theorem DescriptiveComplexity.Epr.realize_peF1 {γ A : Type} [FirstOrder.Language.epr.Structure A] [LinearOrder A] {v : γA} (ρ : pairBlock.Assignment A) (x y : γ) :
                                (peF1 x y).Realize v peRel ρ (v x) (v y)
                                Dependency graph
                                @[simp]
                                theorem DescriptiveComplexity.Epr.realize_peFA {γ A : Type} [FirstOrder.Language.epr.Structure A] [LinearOrder A] {v : γA} (ρ σ : pairBlock.Assignment A) (x y : γ) :
                                (peFA x y).Realize v peRel ρ (v x) (v y)
                                Dependency graph
                                @[simp]
                                theorem DescriptiveComplexity.Epr.realize_peFB {γ A : Type} [FirstOrder.Language.epr.Structure A] [LinearOrder A] {v : γA} (ρ σ : pairBlock.Assignment A) (x y : γ) :
                                (peFB x y).Realize v peRel σ (v x) (v y)
                                Dependency graph
                                Dependency graph
                                Dependency graph
                                Dependency graph
                                @[simp]
                                theorem DescriptiveComplexity.Epr.realize_peEqG {γ A : Type} [FirstOrder.Language.epr.Structure A] [LinearOrder A] {v : γA} (x y : γ) :
                                (peEqG x y).Realize v v x = v y
                                Dependency graph
                                Dependency graph
                                Dependency graph

                                The tags and their domains #

                                The tags of the expansion: the elements, the ordered pairs, and the assignments.

                                • elt : ETag

                                  The point is an element of the instance.

                                • pair : ETag

                                  The point is an ordered pair of elements.

                                • asg : ETag

                                  The point is an assignment – any binary relation.

                                Instances For
                                  Dependency graph
                                  @[instance_reducible]
                                  Equations
                                  Dependency graph
                                  @[instance_reducible]
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Dependency graph
                                  def DescriptiveComplexity.Epr.PEDiag {A : Type} (R : AAProp) :

                                  A relation that is the diagonal singleton of an element: the reading that makes an element of the instance a point of the expansion.

                                  Equations
                                  Instances For
                                    Dependency graph
                                    def DescriptiveComplexity.Epr.PEPairRel {A : Type} (R : AAProp) :

                                    A relation that is a singleton: the reading that makes an ordered pair one.

                                    Equations
                                    Instances For
                                      Dependency graph
                                      theorem DescriptiveComplexity.Epr.peDiag_diag {A : Type} (x : A) :
                                      PEDiag fun (y z : A) => y = x z = x
                                      Dependency graph
                                      theorem DescriptiveComplexity.Epr.pePairRel_pair {A : Type} (x y : A) :
                                      PEPairRel fun (z w : A) => z = x w = y
                                      Dependency graph

                                      The domain sentence of the elements: the relation is a diagonal singleton.

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

                                        The domain sentence of the pairs: the relation is a singleton.

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

                                          Relation symbols of the vocabulary the expansion's points are read in: the three kinds of point, the instance's own relations read at elements, the components of a pair, the argument of a literal-position pair, and membership of a pair in an assignment. Every symbol is unary or binary, the pairs being points of their own.

                                          • isElt : eprPtRel 1

                                            isElt p: the point p is an element of the instance.

                                          • isPair : eprPtRel 1

                                            isPair p: the point p is an ordered pair of elements.

                                          • isAsg : eprPtRel 1

                                            isAsg p: the point p is an assignment.

                                          • evarE : eprPtRel 1

                                            evarE x: the element x is an existential variable.

                                          • clE : eprPtRel 1

                                            clE c: the element c is a clause.

                                          • inClE : eprPtRel 2

                                            inClE c l: the literal l occurs in the clause c.

                                          • posLE : eprPtRel 2

                                            posLE l s: the literal l is the positive atom of s.

                                          • negLE : eprPtRel 2

                                            negLE l s: the literal l is the negated atom of s.

                                          • sigE : eprPtRel 2

                                            sigE s p: the symbol s has the argument position p.

                                          • fstP : eprPtRel 2

                                            fstP q x: the first component of the pair q is x.

                                          • sndP : eprPtRel 2

                                            sndP q y: the second component of the pair q is y.

                                          • argP : eprPtRel 2

                                            argP q x: the pair q is a literal and a position whose argument is the variable x.

                                          • memP : eprPtRel 2

                                            memP r q: the assignment r contains the pair q.

                                          Instances For
                                            Dependency graph
                                            Dependency graph
                                            def FirstOrder.Language.instDecidableEqEprPtRel.decEq {a✝ : } (x✝ x✝¹ : eprPtRel a✝) :
                                            Decidable (x✝ = x✝¹)
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              Dependency graph

                                              The vocabulary of the expansion's points.

                                              Equations
                                              Instances For
                                                Dependency graph
                                                Dependency graph
                                                @[reducible, inline]

                                                The symbol marking the points that are elements.

                                                Equations
                                                Instances For
                                                  Dependency graph
                                                  @[reducible, inline]

                                                  The symbol marking the points that are pairs.

                                                  Equations
                                                  Instances For
                                                    Dependency graph
                                                    @[reducible, inline]

                                                    The symbol marking the points that are assignments.

                                                    Equations
                                                    Instances For
                                                      Dependency graph
                                                      @[reducible, inline]

                                                      The existential-variable symbol, at the points.

                                                      Equations
                                                      Instances For
                                                        Dependency graph
                                                        @[reducible, inline]

                                                        The clause symbol, at the points.

                                                        Equations
                                                        Instances For
                                                          Dependency graph
                                                          @[reducible, inline]

                                                          The literal-of-a-clause symbol, at the points.

                                                          Equations
                                                          Instances For
                                                            Dependency graph
                                                            @[reducible, inline]

                                                            The positive-literal symbol, at the points.

                                                            Equations
                                                            Instances For
                                                              Dependency graph
                                                              @[reducible, inline]

                                                              The negated-literal symbol, at the points.

                                                              Equations
                                                              Instances For
                                                                Dependency graph
                                                                @[reducible, inline]

                                                                The signature symbol, at the points.

                                                                Equations
                                                                Instances For
                                                                  Dependency graph
                                                                  @[reducible, inline]

                                                                  The first-component symbol.

                                                                  Equations
                                                                  Instances For
                                                                    Dependency graph
                                                                    @[reducible, inline]

                                                                    The second-component symbol.

                                                                    Equations
                                                                    Instances For
                                                                      Dependency graph
                                                                      @[reducible, inline]

                                                                      The argument symbol, read at a literal-position pair.

                                                                      Equations
                                                                      Instances For
                                                                        Dependency graph
                                                                        @[reducible, inline]

                                                                        The membership symbol of an assignment.

                                                                        Equations
                                                                        Instances For
                                                                          Dependency graph

                                                                          The defining sentences #

                                                                          Dependency graph
                                                                          Dependency graph

                                                                          A static choice on the tags.

                                                                          Equations
                                                                          Instances For
                                                                            Dependency graph

                                                                            A mark of the instance, at an element: the point is the element x, and x carries the mark.

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

                                                                              A binary relation of the instance, at two elements.

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

                                                                                The first component of a pair: the pair is (x, y) and the second point is the element x.

                                                                                Equations
                                                                                Instances For
                                                                                  Dependency graph
                                                                                  Dependency graph

                                                                                  The argument of a literal at a position: the pair is a literal l and a position p, the second point is the element x, and the encoding declares x there.

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

                                                                                    A pair belongs to an assignment: the second point is the pair (x, y) and the first, as a relation, holds of x and y.

                                                                                    Equations
                                                                                    Instances For
                                                                                      Dependency graph
                                                                                      Dependency graph

                                                                                      The defining sentence of a binary symbol at a pair of tags: both points must be elements.

                                                                                      Equations
                                                                                      Instances For
                                                                                        Dependency graph
                                                                                        Dependency graph
                                                                                        Dependency graph

                                                                                        The expansion whose points are the relations on the instance.

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

                                                                                          Reading the expansion at its points #

                                                                                          @[instance_reducible]

                                                                                          The expanded structure, at the vocabulary of the points – equal to the expansion's own by definition, but not syntactically, so instance search has to be handed it.

                                                                                          Equations
                                                                                          Instances For
                                                                                            Dependency graph

                                                                                            Reading a unary symbol of the expanded vocabulary at one point.

                                                                                            Dependency graph
                                                                                            theorem DescriptiveComplexity.Epr.realize_two {A : Type} [FirstOrder.Language.epr.Structure A] [LinearOrder A] (rt : FirstOrder.Language.eprPt.Relations 2) (φ : ETagETagpeLang2.Sentence) (h : ∀ (τ : Fin 2ETag), eprExp.relSentence rt τ = onS2 (φ (τ 0) (τ 1))) (x y : eprExp.Map A) :
                                                                                            FirstOrder.Language.Structure.RelMap rt ![x, y] A φ (↑x).1 (↑y).1

                                                                                            Reading a binary symbol of the expanded vocabulary at two points.

                                                                                            Dependency graph

                                                                                            The three kinds of point #

                                                                                            Dependency graph
                                                                                            Dependency graph
                                                                                            Dependency graph

                                                                                            The point an element is: the diagonal singleton, tagged elt.

                                                                                            Equations
                                                                                            Instances For
                                                                                              Dependency graph

                                                                                              The point an ordered pair is.

                                                                                              Equations
                                                                                              Instances For
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                theorem DescriptiveComplexity.Epr.cases_point {A : Type} [FirstOrder.Language.epr.Structure A] [LinearOrder A] (p : eprExp.Map A) :
                                                                                                (∃ (x : A), p = eltPt x) (∃ (x : A) (y : A), p = pairPt x y) ∃ (R : AAProp), p = asgPt R

                                                                                                Every point is an element, a pair or an assignment: what the domain sentences say, read back.

                                                                                                Dependency graph

                                                                                                What the defining sentences say #

                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                @[simp]
                                                                                                Dependency graph
                                                                                                @[simp]
                                                                                                Dependency graph
                                                                                                @[simp]
                                                                                                theorem DescriptiveComplexity.Epr.realize_argS {A : Type} [FirstOrder.Language.epr.Structure A] [LinearOrder A] (ρ σ : pairBlock.Assignment A) :
                                                                                                A argS ∃ (l : A) (p : A) (x : A), peRel ρ l p peRel σ x x ArgG l p x
                                                                                                Dependency graph
                                                                                                @[simp]
                                                                                                Dependency graph

                                                                                                What the symbols say at the points #

                                                                                                @[simp]
                                                                                                theorem DescriptiveComplexity.Epr.peRel_eltPt {A : Type} [FirstOrder.Language.epr.Structure A] [LinearOrder A] (x y z : A) :
                                                                                                peRel (↑(eltPt x)).2 y z y = x z = x
                                                                                                Dependency graph
                                                                                                @[simp]
                                                                                                theorem DescriptiveComplexity.Epr.peRel_pairPt {A : Type} [FirstOrder.Language.epr.Structure A] [LinearOrder A] (x y z w : A) :
                                                                                                peRel (↑(pairPt x y)).2 z w z = x w = y
                                                                                                Dependency graph
                                                                                                @[simp]
                                                                                                theorem DescriptiveComplexity.Epr.peRel_asgPt {A : Type} [FirstOrder.Language.epr.Structure A] [LinearOrder A] (R : AAProp) (x y : A) :
                                                                                                peRel (↑(asgPt R)).2 x y R x y
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph

                                                                                                A binary relation of the instance, read at the points of two elements.

                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph
                                                                                                Dependency graph