Commit graph

767 commits

Author SHA1 Message Date
Leonardo de Moura
7a69c6483d feat: add congr conv tactic 2021-09-01 18:32:21 -07:00
Leonardo de Moura
1a362bc212 feat: add support for displaying conv goal in interactive mode 2021-09-01 16:45:12 -07:00
Leonardo de Moura
b18af2c15c feat: basic support for displaying conv state 2021-09-01 15:34:59 -07:00
Leonardo de Moura
5f762171cc feat: add support for split at 2021-08-31 19:35:07 -07:00
Leonardo de Moura
6db4b53c40 fix: missing flag 2021-08-31 19:29:09 -07:00
Leonardo de Moura
8fec444e55 feat: add injections tactic 2021-08-31 19:12:06 -07:00
Leonardo de Moura
03e61155b0 feat: allow instances to be (temporarily) erased 2021-08-31 15:30:29 -07:00
Leonardo de Moura
c7d797f5b6 feat: add simpMatch and use it at splitMatch 2021-08-31 12:53:41 -07:00
Leonardo de Moura
6d4422e5ac refactor: add Simp.tryLemma? 2021-08-31 12:32:34 -07:00
Leonardo de Moura
2375447b4d chore: remove temporary trace messages 2021-08-31 12:13:07 -07:00
Leonardo de Moura
aba0a479ec fix: intro at split tactic 2021-08-30 20:58:04 -07:00
Leonardo de Moura
0a215ac1d2 feat: store the number of parameters in each match splitter alternative 2021-08-30 20:57:18 -07:00
Leonardo de Moura
b500a2053d feat: split tactic for splitting match and if terms 2021-08-30 18:31:20 -07:00
Leonardo de Moura
92cf7c987f chore: cleanup 2021-08-30 16:33:05 -07:00
Leonardo de Moura
ad3b0b4a2c feat: nary generalize tactic
This commit also fixes a bug when using multiple targets with the
`induction` and `cases` tactics.
2021-08-30 16:31:39 -07:00
Leonardo de Moura
ce47000e33 fix: missing whnf at tryLemma? 2021-08-30 08:33:58 -07:00
Leonardo de Moura
79938056ad chore: add isIte and isDIte 2021-08-30 07:08:19 -07:00
Leonardo de Moura
02224548d2 chore: generalize signatures 2021-08-30 07:05:40 -07:00
Leonardo de Moura
9d5f211c28 feat: add environment extension for storing match conditional equations and splitter 2021-08-28 14:49:20 -07:00
Leonardo de Moura
03f095ccab fix: match + OfNat issue
See https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/simp.20match.20question
2021-08-27 11:48:02 -07:00
Leonardo de Moura
2f8d2e8a12 feat: add procedure for solving subgoals generated by mkSplitterProof 2021-08-24 20:23:13 -07:00
Leonardo de Moura
2b9fded6b7 feat: add splitter theorem 2021-08-24 18:37:12 -07:00
Leonardo de Moura
f4ecbd1102 chore: reduce dependencies 2021-08-24 17:38:43 -07:00
Leonardo de Moura
6f71cb1047 refactor: add Meta.intros 2021-08-24 17:24:29 -07:00
Leonardo de Moura
14b65499e6 feat: construct proof template for the auto generated extended elimination principle 2021-08-24 17:13:42 -07:00
Leonardo de Moura
214f2f7bb6 fix: toFVarsRHSArgs 2021-08-24 16:50:03 -07:00
Wojciech Nawrocki
81eff794d5 doc: add review comments 2021-08-24 08:57:41 -07:00
Wojciech Nawrocki
f52940160e feat: better interactive goals 2021-08-24 08:57:41 -07:00
Leonardo de Moura
269a3478e0 refactor: cleanup mkEquationsFor
and build eliminator type where alternatives have the extra
conditions that ensure none of the previous alternatives are applicable.
2021-08-23 20:19:24 -07:00
Leonardo de Moura
4f45a514fc fix: TC issue introduced by recent bug fix
This commit fixes the issue reported at
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/instance.20not.20synthesizing.20issue.3F
2021-08-23 17:32:19 -07:00
Leonardo de Moura
5a7044365b feat: add instances Alternative MetaM and Alternative TacticM 2021-08-22 22:29:09 -07:00
Leonardo de Moura
ca747e9b27 feat: use contradiction at leaves
closes #644
2021-08-22 18:41:02 -07:00
Leonardo de Moura
48e6188e89 feat: use exfalso at ElimEmptyInductive 2021-08-22 18:16:14 -07:00
Leonardo de Moura
e5c380fd4f feat: add exfalso 2021-08-22 18:14:49 -07:00
Leonardo de Moura
ec20725cfb feat: use searchFuel instead of searchDepth at contradiction 2021-08-22 17:41:12 -07:00
Leonardo de Moura
49520aa2ee feat: generate conditional equation theorems for match expressions 2021-08-19 19:33:31 -07:00
Leonardo de Moura
37f2f7d472 fix: bug at processGenDiseq
We should not assign metavar from outer depth inside `withNewMCtxDepth`
2021-08-19 19:33:26 -07:00
Leonardo de Moura
3c519887d1 chore: generate error message when MatchEqs fail
TODO: we currently do not generate equation theorems
for `match` expressions using array literals.
2021-08-19 17:04:52 -07:00
Leonardo de Moura
1624e42a5d chore: cleaup 2021-08-19 14:39:58 -07:00
Leonardo de Moura
bffefa61bd feat: extend contradiction for MatchEqs.lean 2021-08-19 12:52:50 -07:00
Leonardo de Moura
7b881b6020 chore: add Contradiction.Config 2021-08-19 11:43:12 -07:00
Leonardo de Moura
a6529a795b feat: add casesOnStuckLHS 2021-08-19 11:22:13 -07:00
Leonardo de Moura
015df19808 feat: add trySubst 2021-08-19 07:08:02 -07:00
Leonardo de Moura
d0d7799a7b doc: document (and rename) the new configuration option ignoreLevelMVarDepth 2021-08-18 20:38:18 -07:00
Leonardo de Moura
99e8a98f06 feat: allow universes metavariables from any depth to be assigned when ignoreLevelDepth is true
We set `ignoreLevelDepth` to true during type class resolution.
2021-08-18 20:20:51 -07:00
Leonardo de Moura
45d3b85d5a refactor: cleanup MatchEqs and simplify SplitIf 2021-08-18 18:34:34 -07:00
Leonardo de Moura
83eaa47e0a chore: move MatchEqs 2021-08-17 21:32:32 -07:00
Leonardo de Moura
158636b8c0 feat: add spliIfGoal
TODO: remove unnecessary complexity, `MatchEqs` doesn't need all this
complexity, and we should not recurse here.
2021-08-17 21:32:32 -07:00
Leonardo de Moura
e04976614f feat: check if metavar is not assigned at simp tactics
and make sure `simpLocalDecl` does not change the goal if it didn't simplify
2021-08-17 21:32:32 -07:00
Leonardo de Moura
60d38606e7 fix: missing instantiateMVars 2021-08-17 21:32:32 -07:00