Leonardo de Moura
f58afaaa43
fix: make sure let _ := val and let _ : type := val are treated at letIdDecl
...
closes #1114
2022-05-10 06:52:27 -07:00
Sebastian Ullrich
1b51bab4a1
feat: turn on info trees by default
2022-05-10 06:24:31 -07:00
Leonardo de Moura
7ce0471f28
feat: improve binrel% elaborator
...
It now relies on `binop%` too, and addresses issue reported at
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Regression.20in.20coercion.20inference/near/281737387
2022-05-09 18:39:52 -07:00
Leonardo de Moura
1768067aa0
doc: document elaboration issue
...
described at
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Regression.20in.20coercion.20inference/near/281737387
TODO: improve `binrel%` elaboration function.
2022-05-09 17:39:24 -07:00
Leonardo de Moura
fc03b2fc31
feat: unfold ident,+
2022-05-09 07:09:53 -07:00
Leonardo de Moura
995d4f0979
chore: prepare for unfold ident,+
2022-05-09 07:09:22 -07:00
Sebastian Ullrich
91991649bc
fix: connect occurrences of mutable variable inside and outside for in info tree
2022-05-07 15:50:26 -07:00
Sebastian Ullrich
22f8ea147c
fix: propagate position information of variables in do blocks
2022-05-07 15:50:26 -07:00
Sebastian Ullrich
2f461d201e
fix: info tree of let_delayed
2022-05-07 15:50:26 -07:00
Leonardo de Moura
9043f91d8c
fix: if Tactic.Context.recover == false, we must disable "error to sorry" when elaborating terms in tactics
...
closes #1142
2022-05-07 15:37:12 -07:00
Leonardo de Moura
ab31f9ad5d
fix: fixes #1143
2022-05-07 15:27:34 -07:00
Leonardo de Moura
2c8c20d424
feat: add [eliminator] attribute specifying default recursors/eliminators for the cases and induction tactics
2022-05-07 15:09:42 -07:00
Leonardo de Moura
b5bcf252ce
chore: cleanup
2022-05-07 14:48:22 -07:00
Leonardo de Moura
af5e13e534
feat: improve binop% elaboration function
2022-05-07 10:32:55 -07:00
Leonardo de Moura
38baeaf373
feat: backtrack when applying default instances if subproblems cannot be solved
2022-05-07 09:56:38 -07:00
Leonardo de Moura
8c23bef399
feat: add support for casesOn applications to structural and well-founded recursion modules
2022-05-06 17:12:10 -07:00
Leonardo de Moura
c65537aea5
feat: Option is a Monad again
...
TODO: remove `OptionM` after update stage0
see: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Do.20we.20still.20need.20OptionM.3F/near/279761084
2022-05-04 15:27:42 -07:00
Leonardo de Moura
04d3c6feeb
fix: auto implicit behavior on constructors
2022-05-04 15:04:49 -07:00
Leonardo de Moura
a1af8074c9
feat: improve discriminant refinement procedure
2022-05-04 14:46:43 -07:00
Leonardo de Moura
94b5a9b460
feat: improve split tactic
2022-05-03 17:46:50 -07:00
Sebastian Ullrich
e76a2a6d9e
chore: normalize spelling
2022-05-03 10:26:11 +02:00
Leonardo de Moura
109363bc7e
fix: closes #1132
2022-05-01 08:18:30 -07:00
Leonardo de Moura
4eb2cfec46
feat: make sure case' ... => tac does not use done after tac
2022-05-01 07:30:11 -07:00
Leonardo de Moura
03524305db
fix: findTag?
...
If there is an exact match, return it.
2022-05-01 07:30:11 -07:00
Leonardo de Moura
c241ef61b1
fix: use HEq (if needed) for encoding h : discr equalities
2022-04-29 15:05:48 -07:00
Leonardo de Moura
d793d2f0fd
feat: adapt elabMatchAltView to handle the new encoding for h : discr = pattern
2022-04-29 07:17:46 -07:00
Leonardo de Moura
f4b4b14797
refactor: prepare to handle match h: notation at Meta\Match\Match.lean
2022-04-29 07:17:46 -07:00
Sebastian Ullrich
ff4a770c2d
feat: annotate match tactic alternatives with expected state
2022-04-29 16:16:09 +02:00
Sebastian Ullrich
db2a912112
feat: with_annotate_state helper tactic
2022-04-29 16:16:09 +02:00
Leonardo de Moura
575b1187c5
feat: add Tactic.Context.recover for controlling error recovery
...
Moreover, when executing `tac_1 <|> tac_2`, we now disable error
recovery at `tac_1`.
closes #1126 #1127
2022-04-27 10:47:15 -07:00
Mario Carneiro
f37b700e6e
fix: use correct number of none patterns for antiquotation splice
2022-04-27 09:55:27 +02:00
Sebastian Ullrich
814f614369
fix: simp attributes and macro scopes
2022-04-26 10:39:02 +02:00
Leonardo de Moura
3cf642688b
fix: do not generate equation theorems while processing dsimp arguments
2022-04-25 18:11:32 -07:00
Leonardo de Moura
40c8db7494
feat: improve argument type mismatch error position, and do not stop at application type mismatch errors
2022-04-25 16:30:40 -07:00
Leonardo de Moura
0c8a6d8977
feat: exists es:term,+ tactic
...
cc: @fgdorais
2022-04-25 15:35:31 -07:00
Leonardo de Moura
29b340aa36
fix: consume Expr.mdata at congr tactic
...
fixes #1118
2022-04-25 06:33:32 -07:00
Leonardo de Moura
342a26a023
feat: dsimp tactic
2022-04-23 18:05:18 -07:00
Leonardo de Moura
ed12b62e28
fix: InfoTree was missing information for (pseudo) match patterns such as x + 1.
...
This kind of pattern has to be reduced to a constructor, and the
`PatternWithRef` information was being lost in the process.
2022-04-23 12:08:59 -07:00
Leonardo de Moura
34c75fc443
feat: allow ▸ even if the expected type is not available
...
see issue #1116
2022-04-23 08:00:27 -07:00
Leonardo de Moura
66c82dadc9
fix: the default value for structure fields may now depend on the structure parameters
2022-04-21 17:38:19 -07:00
Leonardo de Moura
0b92195ec8
feat: refine auto bound implicit feature
2022-04-21 10:17:15 -07:00
Leonardo de Moura
4727fd6883
feat: do not hightlight auxiliary declarations used to compile recursive definitions as variables
...
They are "morally" constants.
2022-04-21 08:11:22 -07:00
Leonardo de Moura
597313135a
fix: index out of bounds at computeFixedIndexBitMask
...
closes #1112
2022-04-19 05:21:43 -07:00
Leonardo de Moura
4848ad4869
feat: implement autoUnfold at simp
...
Right now, it only supports the following kind of definitions
- Recursive definitions that support smart unfolding.
- Non-recursive definitions where the body is a match-expression. This
kind of definition is only unfolded if the match can be reduced.
2022-04-18 16:51:52 -07:00
Leonardo de Moura
bb2df569bc
fix: bug at declare_config_elab
2022-04-18 14:56:22 -07:00
Leonardo de Moura
e6aee1e463
feat: make sure cases and induction alternatives are processed using the order provided by the user
...
Motivation: improve the effectiveness of the `save` and `checkpoint` tactics.
2022-04-18 11:45:36 -07:00
Leonardo de Moura
822375aaff
chore: ensure _ alternative is the last one in the cases and induction tactics
2022-04-18 11:18:03 -07:00
Leonardo de Moura
5599cefe2e
feat: add sleep tactic for debugging purposes
2022-04-18 09:53:45 -07:00
Leonardo de Moura
d9f007e4dd
fix: tactic cache corruption
2022-04-17 15:52:21 -07:00
Leonardo de Moura
d4183cf646
feat: add option tactic.dbg_cache
2022-04-17 13:47:28 -07:00