Documentation

Lean.Meta.Tactic.Grind.Arith.Cutsat.SearchM

In principle, we only need to support two kinds of case split.

  • Disequalities.
  • Cooper-Left, but we have 4 different variants of this one.
Instances For
    • kind : CaseKind
    • fvarId : FVarId

      Decision variable used to represent the case-split. For example, suppose we are splitting on p ≠ 0. Then, we create a decision variable h : p + 1 ≤ 0

    • saved : State

      Snapshot of the cutsat state for backtracking purposes. We do not use a trail stack.

    Instances For
      • rat : Kind

        Allow variables to be assigned to rational numbers during model construction.

      • int : Kind

        Variables must be assigned to integer numbers. Cooper case splits are required in this mode.

      Instances For

        State of the model search procedure.

        • cases : PArray Case

          Decision stack (aka case-split stack)

        • precise : Bool

          precise := false if not all constraints were satisfied during the search.

        • decVars : FVarIdSet

          Set of decision variables in cases.

        Instances For
          @[reducible, inline]
          Equations
            Instances For

              Returns true if approximations are allowed.

              Equations
                Instances For

                  Sets precise to false to indicate that some constraint was not satisfied.

                  Equations
                    Instances For