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.

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

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