lean4-htt/src/Init
Leonardo de Moura 27df5e968a
feat: Simp.Config.implicitDefEqProofs (#4595)
This PR implements `Simp.Config.implicitDefEqsProofs`. When `true`
(default: `true`), `simp` will **not** create a proof term for a
rewriting rule associated with an `rfl`-theorem. Rewriting rules are
provided by users by annotating theorems with the attribute `@[simp]`.
If the proof of the theorem is just `rfl` (reflexivity), and
`implicitDefEqProofs := true`, `simp` will **not** create a proof term
which is an application of the annotated theorem.

The default setting does change the existing behavior. Users can use
`simp -implicitDefEqProofs` to force `simp` to create a proof term for
`rfl`-theorems. This can positively impact proof checking time in the
kernel.

This PR also fixes an issue in the `split` tactic that has been exposed
by this feature. It was looking for `split` candidates in proofs and
implicit arguments. See new test for issue exposed by the previous
feature.

---------

Co-authored-by: Kim Morrison <kim@tqft.net>
2024-11-29 22:29:27 +00:00
..
Control chore: missing @[ext] attribute on monad transformer ext lemmas (#6008) 2024-11-08 06:53:49 +00:00
Data chore: cleanup of List/Array lemmas (#6249) 2024-11-29 06:12:38 +00:00
Grind feat: add grind core module (#4249) 2024-05-22 03:50:36 +00:00
Omega chore: cleanup of List/Array lemmas (#6249) 2024-11-29 06:12:38 +00:00
System chore: harden markPersistent uses (#6257) 2024-11-29 14:33:33 +00:00
BinderPredicates.lean
ByCases.lean chore: cleaning up redundant simp lemmas (#5381) 2024-09-18 10:06:29 +00:00
Classical.lean chore: move @[simp] from exists_prop' to exists_prop (#5529) 2024-10-01 05:38:18 +00:00
Coe.lean fix: make Lean.Internal.liftCoeM and Lean.Internal.coeM unfold (#3404) 2024-02-27 22:17:46 +00:00
Control.lean
Conv.lean feat: conv arg now can access more arguments (#5894) 2024-11-01 02:12:14 +00:00
Core.lean refactor: allow Sort u in Squash (#6074) 2024-11-14 05:55:21 +00:00
Data.lean feat: upstream definition of Vector from Batteries (#6197) 2024-11-24 23:01:32 +00:00
Dynamic.lean
Ext.lean feat: add [ext] attribute to Array.ext (#4970) 2024-08-09 12:40:39 +00:00
GetElem.lean chore: cleanup of List/Array lemmas (#6249) 2024-11-29 06:12:38 +00:00
Grind.lean feat: add grind core module (#4249) 2024-05-22 03:50:36 +00:00
Guard.lean
Hints.lean
MacroTrace.lean chore: reorganising to reduce imports (#3790) 2024-03-27 11:15:01 +00:00
Meta.lean chore: avoid runtime array bounds checks (#6134) 2024-11-21 05:04:52 +00:00
MetaTypes.lean feat: Simp.Config.implicitDefEqProofs (#4595) 2024-11-29 22:29:27 +00:00
Notation.lean doc: fix typo and make docstring more precise (#6009) 2024-11-22 16:30:01 +00:00
NotationExtra.lean chore: avoid runtime array bounds checks (#6134) 2024-11-21 05:04:52 +00:00
Omega.lean chore: update copyrights (#5449) 2024-09-24 05:27:53 +00:00
Prelude.lean feat: USize.size inequalities (#6203) 2024-11-26 23:42:15 +00:00
PropLemmas.lean chore: add missing deprecation dates (#5884) 2024-10-30 05:37:36 +00:00
RCases.lean doc: typo in rcases docs (#3796) 2024-03-28 07:31:01 +00:00
ShareCommon.lean feat: USize.size inequalities (#6203) 2024-11-26 23:42:15 +00:00
SimpLemmas.lean feat: proper let_fun support in simp (#6220) 2024-11-26 21:42:08 +00:00
Simproc.lean chore: fix simproc doc-string (#3800) 2024-03-28 17:54:52 +00:00
SizeOf.lean refactor: name the default SizeOf instance (#5981) 2024-11-07 09:21:32 +00:00
SizeOfLemmas.lean refactor: redefine unsigned fixed width integers in terms of BitVec (#5323) 2024-10-16 07:28:23 +00:00
Syntax.lean feat: rename Array.setD to setIfInBounds (#6195) 2024-11-24 08:54:19 +00:00
System.lean
Tactics.lean fix: make sure whitespace is printed before tactic configuration (#6161) 2024-11-21 19:21:59 +00:00
TacticsExtra.lean feat: activate new tactic configuration syntax for most tactics (#5898) 2024-11-01 02:08:53 +00:00
Util.lean chore: harden markPersistent uses (#6257) 2024-11-29 14:33:33 +00:00
WF.lean chore: cleanup unused variables (#5579) 2024-10-02 01:51:22 +00:00
WFTactics.lean feat: update omega/solve_by_elim to use new tactic syntax, use new tactic syntax (#5932) 2024-11-03 16:23:37 +00:00
While.lean chore: make 'while' available earlier (#5784) 2024-10-21 05:56:37 +00:00