Documentation

Lean.Elab.Tactic.BVDecide.LRAT.Trim

This module implements the LRAT trimming algorithm described in section 4 of "Faster LRAT Checking Than Solving with CaDiCaL" (https://drops.dagstuhl.de/storage/00lipics/lipics-vol271-sat2023/LIPIcs.SAT.2023.21/LIPIcs.SAT.2023.21.pdf).

The context used for trimming LRAT proofs.

Instances For
    • used : ByteArray

      For each proof step i contains at index i - initialId 0 if i is unused, 1 if it is used.

    • mapped : Array Nat

      For each proof step i contains at index i - initialId the step that i maps to in the new proof or 0 if that step is not yet set. Used such that the proof remains a sequence without gaps.

    • lastUse : Array Int

      Maps each clause id to the latest proof step id that references it or -1. Used to determine when a clause can be deleted.

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

                    Perform a use-def analysis of LRAT proof steps, starting at the empty clause and working its way up with DFS.

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

                        Map the set of used proof steps to a new LRAT proof that has no holes in the sequence of proof identifiers. Inserts .del actions immediately after a clause's last use.

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