lean4-htt/src/Lean/Util
Leonardo de Moura f5fd962a25
feat: safe exponentiation (#4637)
Summary:
- Adds configuration option `exponentiation.threshold`
- An expression `b^n` where `b` and `n` are literals is not reduced by
`whnf`, `simp`, and `isDefEq` if `n > exponentiation.threshold`.

Motivation: prevents system from becoming irresponsive and/or crashing
without memory.

TODO: improve support in the kernel. It is using a hard-coded limit for
now.
2024-07-03 05:12:53 +00:00
..
CollectFVars.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
CollectLevelParams.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
CollectMVars.lean perf: replace hasMVar by hasExprMVar in CollectMVars, FindMVar (#4451) 2024-06-14 18:06:00 +00:00
Diff.lean feat: show diffs when #guard_msgs fails (#3912) 2024-04-18 15:09:44 +00:00
FileSetupInfo.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
FindExpr.lean fix: revert "monadic generalization of FindExpr" (#4125) 2024-05-10 20:36:08 +00:00
FindLevelMVar.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
FindMVar.lean perf: replace hasMVar by hasExprMVar in CollectMVars, FindMVar (#4451) 2024-06-14 18:06:00 +00:00
FoldConsts.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ForEachExpr.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ForEachExprWhere.lean chore: fix linter errors (#4502) 2024-06-19 18:24:08 +00:00
HasConstCache.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Heartbeats.lean chore: fix Util.Heartbeats module-doc (#3954) 2024-04-22 07:02:58 +00:00
InstantiateLevelParams.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
LakePath.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
LeanOptions.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
MonadBacktrack.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
MonadCache.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
OccursCheck.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Path.lean fix: bad 'unknown package' error message (#4424) 2024-06-13 15:48:20 +00:00
Paths.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
PPExt.lean fix: set default value of pp.instantiateMVars to true and make the option be effective (#4558) 2024-07-02 22:59:44 +00:00
Profile.lean doc: profiler 2024-04-03 17:53:36 +02:00
Profiler.lean feat: trace.profiler export to Firefox Profiler (#3801) 2024-04-15 12:13:14 +00:00
PtrSet.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
RecDepth.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Recognizers.lean fix: regression on match expressions with builtin literals (#3521) 2024-02-27 18:49:44 +00:00
ReplaceExpr.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ReplaceLevel.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
SafeExponentiation.lean feat: safe exponentiation (#4637) 2024-07-03 05:12:53 +00:00
SCC.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
ShareCommon.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
Sorry.lean perf: add prelude to all Lean modules 2024-02-18 14:55:17 -08:00
TestExtern.lean feat: improvements to test_extern command (#3075) 2024-04-24 03:56:16 +00:00
Trace.lean fix: typo hearbeats -> heartbeats (#4590) 2024-06-30 07:07:11 +00:00