Commit graph

29801 commits

Author SHA1 Message Date
Leonardo de Moura
3b259afaf0 chore: fix tests 2022-06-14 16:43:22 -07:00
Leonardo de Moura
346c4beb70 feat: elaborate opaque command 2022-06-14 16:36:24 -07:00
Leonardo de Moura
794021b9e4 chore: adjust codebase
`opaque` is now a command keyword
2022-06-14 16:32:53 -07:00
Leonardo de Moura
5193c6d0ef chore: update stage0 2022-06-14 16:23:49 -07:00
Leonardo de Moura
05778565ab feat: add opaque command
It will replace the `constant` command. See
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/What.20is.20.60opaque.60.3F/near/284926171
2022-06-14 16:22:36 -07:00
Jakob von Raumer
d7cb93e9e4 feat: allow conv mode's arg command to access implicit arguments 2022-06-14 16:15:38 -07:00
Leonardo de Moura
d78e7cd011 feat: macro expand cases and induction tactics multiple LHSs 2022-06-14 14:18:52 -07:00
Leonardo de Moura
3a1dc5e066 fix: support new inductionAlt syntax at Linter/Basic.lean 2022-06-14 11:31:49 -07:00
Leonardo de Moura
bd2cccf287 chore: use double tick 2022-06-14 11:30:55 -07:00
Leonardo de Moura
2dad133208 chore: update stage0 2022-06-14 11:26:06 -07:00
Leonardo de Moura
daeb271678 feat: update induction and cases syntax
We can now write
```
induction x with
| foo | bar => ...
| boo => ...
```

TODO: expand alternatives containing multiple LHSs.
2022-06-14 11:25:15 -07:00
Leonardo de Moura
05a72a9e00 chore: update stage0 2022-06-14 11:17:33 -07:00
Leonardo de Moura
7c9b5b7147 feat: prepare to support multi-cases at cases and induction
We want to be able to write
```
induction x with
| foo | bar => ...
| boo => ...
```
2022-06-14 11:16:58 -07:00
Sebastian Ullrich
43b08239b0 fix: further conv goal state refinements 2022-06-14 11:09:47 +02:00
Sebastian Ullrich
7bb94abb62 feat: trace.Elab.input
Unlike Elab.command, it does not contain macro expansions
2022-06-14 10:41:56 +02:00
Leonardo de Moura
77ae79be46 chore: use let/if in do blocks 2022-06-13 17:10:14 -07:00
Leonardo de Moura
7dbdfa090a chore: remove debugging leftovers 2022-06-13 16:37:31 -07:00
E.W.Ayers
13e286f545 doc: fix docstring for InteractiveGoal 2022-06-13 16:32:01 -07:00
E.W.Ayers
2edf02544e chore: rm ExprWithCtx
We will make this a separate PR
2022-06-13 16:32:01 -07:00
E.W.Ayers
367bde3601 chore: revert "refactor: replace InfoWithCtx with ExprWithCtx"
This reverts commit db342793d53c986b8794084196552c33711f9091.
2022-06-13 16:32:01 -07:00
E.W.Ayers
f64cb95eca refactor: replace InfoWithCtx with ExprWithCtx
This is potentially controversial. There are still some [todo]s that need sorting.
2022-06-13 16:32:01 -07:00
E.W.Ayers
3d561a3ab0 doc: add docstrings for interactive 2022-06-13 16:32:01 -07:00
E.W.Ayers
e3d2080232 refactor: PPExprTaggedRequest -> PPExprTaggedParams 2022-06-13 16:32:01 -07:00
E.W.Ayers
fd66e70d1e fix: explicit structure for PPExprTaggedRequest 2022-06-13 16:32:01 -07:00
E.W.Ayers
69facfbe8e fix: remove Optional from InteractiveHypothesisBundle.fvarIds 2022-06-13 16:32:01 -07:00
E.W.Ayers
45e3c72be7 refactor: InteractiveHypothesis → InteractiveHypothesisBundle 2022-06-13 16:32:01 -07:00
Ed Ayers
5130da82a8 doc: src/Lean/Widget/InteractiveGoal.lean
Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
2022-06-13 16:32:01 -07:00
E.W.Ayers
cea53fc53e fix: tests
Caused by a classic imperative programming bug oops
2022-06-13 16:32:01 -07:00
E.W.Ayers
f2a874ebaa fix: handle inaccessible fvar names correctly 2022-06-13 16:32:01 -07:00
E.W.Ayers
675147dcfc fix: make InteractiveHyp.fvarIds optional
This is for backwards compat.
2022-06-13 16:32:01 -07:00
E.W.Ayers
0f61d1dc59 refactor: key fields are now f/mvarid fields 2022-06-13 16:32:01 -07:00
E.W.Ayers
4165b7e8ba doc: ToHide.collect 2022-06-13 16:32:01 -07:00
E.W.Ayers
6e1c9653d9 feat: Add a key field to InteractiveGoal
This is used to uniquely identify InteractiveGoals and
InteractiveHypotheses. This makes it easier to do
contextual suggestions: eg the infoview can send a message
saying "the user clicked on subexpression 5 in hypothesis N in goal G"
where N and G are unique identifiers for a goal rather than pretty names
which may be non-unique or indices which may be difficult to compute
(eg in infoview there is a mode where hypotheses are reversed or filtered).

While adding these I also refactored the InteractiveGoal generating function.
I unwrapped a fold in to a for/in loop with mutating variables which is a
little easier to read.
2022-06-13 16:32:01 -07:00
Wojciech Nawrocki
351be06a21 feat: ppExprTagged RPC call 2022-06-13 16:32:01 -07:00
Wojciech Nawrocki
4972f214be fix: sorried errors in rpcServerMethod 2022-06-13 16:32:01 -07:00
Leonardo de Moura
c2fdcad443 chore: update stage0 2022-06-13 16:23:53 -07:00
Leonardo de Moura
e52a7bdf42 feat: let/if indentation in do blocks
closes #1120
2022-06-13 16:18:49 -07:00
Leonardo de Moura
415f5f2a42 chore: style 2022-06-13 15:59:55 -07:00
Leonardo de Moura
dee712ec7e chore: fix test
Pushed the wrong file in previous commit.

see #490
2022-06-13 14:06:56 -07:00
Leonardo de Moura
9ba5831de8 fix: _root_ prefix in declarations
closes #490
2022-06-13 14:03:18 -07:00
Leonardo de Moura
328586988c chore: style 2022-06-13 13:58:29 -07:00
Sebastian Ullrich
bda871da25 feat: RBTree.union/diff 2022-06-13 11:12:51 +02:00
Leonardo de Moura
fb574af873 fix: mkSplitterProof
This commit fixes the first issue reported at #1179

closes #1179
2022-06-12 19:38:54 -07:00
Wojciech Nawrocki
46257dfb0e feat: show bitwise terminates 2022-06-12 14:01:05 -07:00
Wojciech Nawrocki
4d05803782 feat: WF lemma for Nat division 2022-06-12 14:01:05 -07:00
Wojciech Nawrocki
2a53857928 feat: add strong Nat induction principle 2022-06-12 14:01:05 -07:00
Wojciech Nawrocki
ff15e31e85 refactor: remove redundant theorem 2022-06-12 14:01:05 -07:00
Leonardo de Moura
09d1530d8e feat: detect unexpected occurrences of match-expression minor premises
The error message is far from perfect, but it is better than ignoring
the issue and failing later with an even more incomprehensible error
message.

see #1179
2022-06-12 12:07:42 -07:00
Leonardo de Moura
8a8a8b5e48 chore: style 2022-06-10 18:27:43 -07:00
Jakob von Raumer
033618ad5e fix: indices in conv arg now count arguments with forward dependencies 2022-06-10 18:25:34 -07:00