Documentation

Complexitylib.SAT.ThreeSAT.Syntax

Regular syntax checker for exact 3-CNF encodings #

Exact-3 shape is a regular property of the concrete CNF encoding. This module gives a finite-state left-to-right scanner for it and proves that the scanner accepts an encoded CNF exactly when every clause has three literals. The syntax language deliberately need not reject every malformed word: intersecting it with CNFSAT.language supplies well-formedness, which keeps this checker small and makes the intended 3SAT decomposition explicit.

Main results #

Parser state after consuming whole two-bit encoding tokens. between k means that k complete literals have been seen in the current clause.

Instances For

    Initial token parser state: between clauses with no current literals.

    Equations
    Instances For

      Bit-level scanner state. half state b remembers the first bit of the next two-bit encoding token.

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

        One input-bit transition of the exact-3 syntax scanner.

        Equations
        Instances For

          The scanner accepts precisely at a token boundary between clauses.

          Equations
          Instances For

            The regular language recognized by the exact-3 syntax scanner.

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

              A typed CNF's bit encoding is accepted exactly when it is exact 3-CNF.

              Concrete zero-work-tape finite-state checker for exact-3 syntax.

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

                The syntax checker decides its regular language in exactly n + 2 steps.

                The exact-3 syntax language is decidable in linear time.

                3SAT is CNF-SAT intersected with the regular exact-3 syntax language.