This PR improves support for nonlinear monomials in `grind cutsat`. For example, given a monomial `a * b`, if `cutsat` discovers that `a = 2`, it now propagates that `a * b = 2 * b`. Recall that nonlinear monomials like `a * b` are treated as variables in `cutsat`, a procedure designed for linear integer arithmetic. Example: ```lean example (a : Nat) (ha : a < 8) (b c : Nat) : 2 ≤ b → c = 1 → b ≤ c + 1 → a * b < 8 * b := by grind example (x y z w : Int) : z * x * y = 4 → x = z + w → z = 1 → w = 2 → False := by grind ``` |
||
|---|---|---|
| .. | ||
| bench | ||
| compiler | ||
| elabissues | ||
| ir | ||
| lean | ||
| pkg | ||
| playground | ||
| plugin | ||
| simpperf | ||
| .gitignore | ||
| common.sh | ||
| lakefile.toml | ||
| lean-toolchain | ||