lean4-htt/src/Lean/Meta
Leonardo de Moura 0aca10b228
feat: Toint inequalities in cutsat (#9026)
This PR implements support for (non strict) `ToInt` inequalities in
`grind cutsat`. `grind cutsat` can solve simple problems such as:
```lean
example (a b c : Fin 11) : a ≤ b → b ≤ c → a ≤ c := by
  grind

example (a b c : Fin 11) : c ≤ 9 → a ≤ b → b ≤ c → a ≤ c + 1 := by
  grind

example (a b c : UInt8) : a ≤ b → b ≤ c → a ≤ c := by
  grind

example (a b c d : UInt32) : a ≤ b → b ≤ c → c ≤ d → a ≤ d := by
  grind
```
Next step: strict inequalities, and equalities.
2025-06-27 06:29:31 +00:00
..
ArgsPacker
Constructions feat: refactor of Lean.Grind.ToInt and remaining instances (#8996) 2025-06-25 13:32:38 +00:00
Match style: replace HEq x y with x ≍ y (#8872) 2025-06-20 07:47:33 +00:00
Tactic feat: Toint inequalities in cutsat (#9026) 2025-06-27 06:29:31 +00:00
AbstractMVars.lean feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
AbstractNestedProofs.lean feat: use nondep flag in Expr.letE and LocalContext.ldecl (#8804) 2025-06-22 21:54:57 +00:00
ACLt.lean
AppBuilder.lean style: replace HEq x y with x ≍ y (#8872) 2025-06-20 07:47:33 +00:00
ArgsPacker.lean chore: fix spelling mistakes (#8324) 2025-05-14 06:52:16 +00:00
Basic.lean feat: optimized simp routine for let telescopes (#8968) 2025-06-27 02:13:20 +00:00
BinderNameHint.lean chore: fix spelling mistakes (#7328) 2025-04-07 01:15:48 +00:00
Canonicalizer.lean chore: remove the old Lean.Data.HashMap implementation (#7519) 2025-03-20 23:49:55 +00:00
Check.lean feat: use nondep flag in Expr.letE and LocalContext.ldecl (#8804) 2025-06-22 21:54:57 +00:00
CheckTactic.lean
Closure.lean feat: use nondep flag in Expr.letE and LocalContext.ldecl (#8804) 2025-06-22 21:54:57 +00:00
Coe.lean doc: add documentation for builtin attributes (#8173) 2025-06-11 09:04:37 +00:00
CoeAttr.lean
CollectFVars.lean
CollectMVars.lean
CompletionName.lean
CongrTheorems.lean fix: make mkHCongrWithArityForConst? compatible with parallelism (#8899) 2025-06-20 21:55:14 +00:00
Constructions.lean
CtorRecognizer.lean
DecLevel.lean
Diagnostics.lean
DiscrTree.lean fix: replace bad simp lemmas for Id (#7352) 2025-05-22 22:45:35 +00:00
DiscrTreeTypes.lean
Eqns.lean feat: explicit defeq attribute (#8419) 2025-06-06 18:40:06 +00:00
Eval.lean refactor: introduce VisibilityMap in Lean.Environment, use it to split base in preparation for private import (#8145) 2025-04-28 10:17:18 +00:00
ExprDefEq.lean feat: optimized simp routine for let telescopes (#8968) 2025-06-27 02:13:20 +00:00
ExprLens.lean feat: use nondep flag in Expr.letE and LocalContext.ldecl (#8804) 2025-06-22 21:54:57 +00:00
ExprTraverse.lean
ForEachExpr.lean
FunInfo.lean
GeneralizeTelescope.lean
GeneralizeVars.lean
GetUnfoldableConst.lean fix: unknown identifier ranges (#8362) 2025-05-22 10:05:31 +00:00
GlobalInstances.lean
Hint.lean feat: add word-level hint suggestion diffs (#8574) 2025-06-26 23:56:19 +00:00
IndPredBelow.lean feat: use omission dots for hidden let values in Infoview (#8041) 2025-05-27 23:09:11 +00:00
Inductive.lean
InferType.lean feat: optimized simp routine for let telescopes (#8968) 2025-06-27 02:13:20 +00:00
Injective.lean style: replace HEq x y with x ≍ y (#8872) 2025-06-20 07:47:33 +00:00
Instances.lean chore: follow up on #8173 post-stage0 update (#8722) 2025-06-16 09:08:35 +00:00
IntInstTesters.lean feat: divisibility constraint normalizer (#7092) 2025-02-15 04:20:40 +00:00
Iterator.lean
KAbstract.lean feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
KExprMap.lean
LazyDiscrTree.lean feat: meta syntax 2025-06-04 18:26:05 +02:00
LetToHave.lean feat: add Meta.letToHave and the let_to_have tactic (#8954) 2025-06-24 01:33:53 +00:00
LevelDefEq.lean
LitValues.lean chore: remove prime from Fin.ofNat' (#8515) 2025-05-28 11:51:00 +00:00
Match.lean
MatchUtil.lean
NatInstTesters.lean feat: Nat divisibility constraints in cutsat (#7495) 2025-03-15 03:46:47 +00:00
Offset.lean
Order.lean chore: fix spelling mistakes (#8324) 2025-05-14 06:52:16 +00:00
PPGoal.lean feat: use nondep flag in Expr.letE and LocalContext.ldecl (#8804) 2025-06-22 21:54:57 +00:00
PProdN.lean chore: fix spelling mistakes (#7328) 2025-04-07 01:15:48 +00:00
RecursorInfo.lean
Reduce.lean
ReduceEval.lean
SizeOf.lean feat: explicit defeq attribute (#8419) 2025-06-06 18:40:06 +00:00
Sorry.lean
Structure.lean refactor: factor out common code for structure default values (#7737) 2025-03-31 22:40:39 +00:00
SynthInstance.lean feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
Tactic.lean feat: extract_lets and lift_lets tactics (#6432) 2025-04-21 08:57:01 +00:00
Transform.lean feat: use nondep flag in Expr.letE and LocalContext.ldecl (#8804) 2025-06-22 21:54:57 +00:00
TransparencyMode.lean
TryThis.lean chore: fix spelling mistakes (#8324) 2025-05-14 06:52:16 +00:00
UnificationHint.lean
WHNF.lean feat: optimized simp routine for let telescopes (#8968) 2025-06-27 02:13:20 +00:00