lean4-htt/src/Lean/Util
Leonardo de Moura 0db795a1dc
feat: improve grind cutsat support for Fin n when n is not a numeral (#10022)
This PR improves support for `Fin n` in `grind cutsat` when `n` is not a
numeral. For example, the following goals can now be solved
automatically:

```lean
example (p d : Nat) (n : Fin (p + 1)) 
    : 2 ≤ p → p ≤ d + 1 → d = 1 → n = 0 ∨ n = 1 ∨ n = 2 := by
  grind

example (s : Nat) (i j : Fin (s + 1)) (hn : i ≠ j) (hl : ¬i < j) : j < i := by
  grind

example {n : Nat} (j : Fin (n + 1)) : j ≤ j := by
  grind

example {n : Nat} (x y : Fin ((n + 1) + 1)) (h₂ : ¬x = y) (h : ¬x < y) : y < x := by
  grind
```
2025-08-21 17:25:52 +00:00
..
CollectAxioms.lean
CollectFVars.lean
CollectLevelMVars.lean
CollectLevelParams.lean
CollectLooseBVars.lean
CollectMVars.lean
Diff.lean
FindExpr.lean
FindLevelMVar.lean
FindMVar.lean
FoldConsts.lean
ForEachExpr.lean
ForEachExprWhere.lean
FVarSubset.lean
HasConstCache.lean
Heartbeats.lean
InstantiateLevelParams.lean
LakePath.lean
LeanOptions.lean
MonadBacktrack.lean
MonadCache.lean
NumApps.lean
NumObjs.lean
OccursCheck.lean
Path.lean
PPExt.lean
Profile.lean
Profiler.lean fix: trace.profiler.output with newer Firefox Profiler (#9659) 2025-08-01 09:00:15 +00:00
PtrSet.lean
RecDepth.lean
Recognizers.lean
ReplaceExpr.lean
ReplaceLevel.lean
SafeExponentiation.lean feat: improve grind cutsat support for Fin n when n is not a numeral (#10022) 2025-08-21 17:25:52 +00:00
SCC.lean
SearchPath.lean
ShareCommon.lean
Sorry.lean
SortExprs.lean
TestExtern.lean
Trace.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00