lean4-htt/tests
Joachim Breitner 9c00a59339
feat: use omega in default decreasing_trivial (#3503)
with this, more functions will be proven terminating automatically,
namely those where after `simp_wf`, lexicographic order handling,
possibly `subst_vars` the remaining goal can be solved by `omega`.

Note that `simp_wf` already does simplification of the goal, so
this adds `omega`, not `(try simp) <;> omega` here.

There are certainly cases where `(try simp) <;> omega` will solve more 
goals (e.g. due to the `subst_vars` in `decreasing_with`), and
`(try simp at *) <;> omega` even more. This PR errs on the side of
taking
smaller steps.

Just appending `<;> omega` to the existing
`simp (config := { arith := true, failIfUnchanged := false })` call
doesn’t work nicely, as that leaves forms like `Nat.sub` in the goal
that
`omega` does not seem to recognize.

This does *not* remove any of the existing ad-hoc `decreasing_trivial`
rules based on `apply` and `assumption`, to not regress over the status
quo (these rules may apply in cases where `omega` wouldn't “see”
everything, but `apply` due to defeq works).

Additionally, just extending makes bootstrapping easier; early in `Init`
where
`omega` does not work yet these other tactics can still be used.

(Using a single `omega`-based tactic was tried in #3478 but isn’t quite
possible yet, and will be postponed until we have better automation
including forward reasoning.)
2024-02-27 18:53:36 +00:00
..
bench chore: speedcenter: count max symbols in shared libraries (#3418) 2024-02-20 19:25:24 +00:00
compiler fix: split libInit_shared out of libleanshared (#3421) 2024-02-22 19:16:32 +00:00
elabissues feat: add bitwise operations to reduceNat? and kernel (#3134) 2024-01-11 18:12:45 +00:00
ir feat: lake: GNU/BSD OS detection in test scripts (#3180) 2024-01-14 02:49:38 +00:00
lean feat: use omega in default decreasing_trivial (#3503) 2024-02-27 18:53:36 +00:00
pkg feat: simproc sets 2024-02-01 16:58:54 +11:00
playground perf: Use flat ByteArrays in Trie (#2529) 2023-09-20 13:22:37 +02:00
plugin feat: profiling of linters 2023-04-18 15:30:21 +02:00
simpperf
.gitignore
common.sh fix: use -O3 for LLVM tests in common.sh 2023-11-02 23:21:47 +01:00
lean-toolchain doc: VS Code dev setup (#2961) 2023-11-30 08:35:03 +00:00