Documentation

Lean.Meta.Tactic.Grind.Arith.Linear.Search

Assuming all variables smaller than x have already been assigned, returns the best lower bound for x using the given partial assignment and inequality constraints where x is the maximal variable.

Instances For

    Assuming all variables smaller than x have already been assigned, returns the best upper bound for x using the given partial assignment and inequality constraints where x is the maximal variable.

    Instances For

      Returns values we cannot assign x because of disequality constraints.

      Instances For
        def Lean.Meta.Grind.Arith.Linear.findInt? (lower : Rat) (lowerStrict : Bool) (upper : Rat) (upperStrict : Bool) (dvals : Array (Rat × DiseqCnstr)) :

        Try to find integer between lower and upper bounds that is different for known disequalities

        Instances For
          partial def Lean.Meta.Grind.Arith.Linear.findRat (lower upper : Rat) (dvals : Array (Rat × DiseqCnstr)) :

          Find rational value in the interval (lower, upper) that is different from all known disequalities.

          Given an inequality c₁ which is a lower bound, i.e., leading coefficient is negative, and a disequality c, splits c and resolve with c₁.

          Instances For

            Returns true if we already have a complete assignment / model.

            Instances For

              Returns true if work/progress has been done. There are two kinds of progress:

              • An assignment for satisfying constraints was constructed.
              • An inconsistency was detected.

              The result is false if module for every structure already has an assignment.

              Instances For