Documentation

MIPRE.Foundations.SAT.Cnf

3SAT and decoupled 5SAT formulas #

Literals, clauses and satisfaction, for the succinct Cook–Levin theorem (planning/succinct-cook-levin.md). A 3SAT formula is a set of clauses, each of exactly three literals (a clause of fewer literals repeats one: x ∨ x ∨ x), and a decoupled 5SAT formula (answer_reduction.tex, "Decoupled 5SAT and its succinct descriptions") is a set of clauses with one literal from each of five blocks of variables, evaluated on five separate assignments. The literal x^o of the paper is ⟨x, o⟩: positive when o = true.

structure MIPRE.SAT.Lit (V : Type u_1) :
Type u_1

A literal: a variable and its sign (pos = true for x, false for ¬x).

Instances For
    def MIPRE.SAT.instDecidableEqLit.decEq {V✝ : Type u_1} [DecidableEq V✝] (x✝ x✝¹ : Lit V✝) :
    Decidable (x✝ = x✝¹)
    Equations
    Instances For
      def MIPRE.SAT.Lit.eval {V : Type u_1} (w : V → Bool) (l : Lit V) :

      The value of a literal under an assignment.

      Equations
      Instances For
        structure MIPRE.SAT.Clause3 (V : Type u_1) :
        Type u_1

        A 3SAT clause.

        Instances For
          def MIPRE.SAT.instDecidableEqClause3.decEq {V✝ : Type u_1} [DecidableEq V✝] (x✝ x✝¹ : Clause3 V✝) :
          Decidable (x✝ = x✝¹)
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def MIPRE.SAT.Clause3.eval {V : Type u_1} (w : V → Bool) (c : Clause3 V) :

            The value of a clause.

            Equations
            Instances For
              @[reducible, inline]
              abbrev MIPRE.SAT.Cnf3 (V : Type u_1) :
              Type u_1

              A 3SAT formula on the variables V: a set of clauses.

              Equations
              Instances For
                def MIPRE.SAT.Cnf3.Sat {V : Type u_1} (φ : Cnf3 V) (w : V → Bool) :

                w satisfies every clause of φ.

                Equations
                Instances For
                  structure MIPRE.SAT.Clause5 (V₁ : Type u_1) (V₂ : Type u_2) (V₃ : Type u_3) (V₄ : Type u_4) (V₅ : Type u_5) :
                  Type (max (max (max (max u_1 u_2) u_3) u_4) u_5)

                  A decoupled 5SAT clause: one literal from each of five blocks.

                  • l₁ : Lit V₁
                  • l₂ : Lit V₂
                  • l₃ : Lit V₃
                  • l₄ : Lit V₄
                  • l₅ : Lit V₅
                  Instances For
                    def MIPRE.SAT.Clause5.eval {V₁ : Type u_1} {V₂ : Type u_2} {V₃ : Type u_3} {V₄ : Type u_4} {V₅ : Type u_5} (w₁ : V₁ → Bool) (w₂ : V₂ → Bool) (w₃ : V₃ → Bool) (w₄ : V₄ → Bool) (w₅ : V₅ → Bool) (c : Clause5 V₁ V₂ V₃ V₄ V₅) :

                    The value of a decoupled clause on five assignments.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[reducible, inline]
                      abbrev MIPRE.SAT.Cnf5 (V₁ : Type u_1) (V₂ : Type u_2) (V₃ : Type u_3) (V₄ : Type u_4) (V₅ : Type u_5) :
                      Type (max (max (max (max u_5 u_4) u_3) u_2) u_1)

                      A decoupled 5SAT formula.

                      Equations
                      Instances For
                        def MIPRE.SAT.Cnf5.Sat {V₁ : Type u_1} {V₂ : Type u_2} {V₃ : Type u_3} {V₄ : Type u_4} {V₅ : Type u_5} (φ : Cnf5 V₁ V₂ V₃ V₄ V₅) (w₁ : V₁ → Bool) (w₂ : V₂ → Bool) (w₃ : V₃ → Bool) (w₄ : V₄ → Bool) (w₅ : V₅ → Bool) :

                        The five assignments satisfy every clause of φ.

                        Equations
                        Instances For