Leonardo de Moura
e4d4db45e9
feat: add missing simp lemmas for ->
2021-03-24 14:51:18 -07:00
Leonardo de Moura
4044308090
chore: use double quoted names
2021-03-24 12:36:18 -07:00
Leonardo de Moura
52bc9805e7
chore: update stage0
2021-03-24 12:30:24 -07:00
Leonardo de Moura
e31c02522b
feat: closes #327
2021-03-24 12:29:33 -07:00
Leonardo de Moura
d86164cf54
fix: simple match case
2021-03-24 11:46:55 -07:00
Leonardo de Moura
30b9792148
fix: doc
2021-03-24 10:59:11 -07:00
Leonardo de Moura
b3ec00b00a
chore: use "discriminant refinement"
2021-03-24 10:43:43 -07:00
Leonardo de Moura
592364270c
chore: cleanup
2021-03-24 09:50:56 -07:00
Leonardo de Moura
d03f5fe318
feat: add trivial extensible (macro) tactic
2021-03-24 09:50:56 -07:00
Leonardo de Moura
2dfd262e4d
chore: cleanup
2021-03-24 09:50:56 -07:00
Sebastian Ullrich
d15c08e3c8
fix: lean4-mode: void-variable
2021-03-24 15:25:35 +01:00
Sebastian Ullrich
94a9a2516a
doc: update server readme
2021-03-24 14:16:37 +01:00
Leonardo de Moura
1eb9d16690
chore: fix typos
2021-03-23 20:47:56 -07:00
Leonardo de Moura
1b7f7e9d39
chore: remove unnecessary annotations
2021-03-23 20:42:59 -07:00
Leonardo de Moura
6f6bb02bcd
chore: update stage0
2021-03-23 20:40:45 -07:00
Leonardo de Moura
5742b078af
feat: "discriminant refinement" for match-expressions
2021-03-23 20:40:07 -07:00
Leonardo de Moura
5ac7b1232a
chore: add workarounds
...
@Kha It seems the recent parser modifications created some unexpected
problems. I didn't investigate them. I am "lost" in the elaborator and
dependent pattern matching land.
1) We can't write anymore
```
f [1, 2, 3] |>.run' 0 = Except.ok ()
```
We have to use parentheses and the error message is weird :(
```
(f [1, 2, 3] |>.run' 0) = Except.ok ()
```
2) I had to add comments to `macro.lean`, I didn't find a workaround
for one of the rules. BTW, I had to add a bunch of `:term` for fixing
the other rules, and the error messages were counterintuitive.
2021-03-23 18:35:27 -07:00
Leonardo de Moura
e4f8aad664
chore: update stage0
2021-03-23 18:17:18 -07:00
Leonardo de Moura
1b963862c6
test: add test for former weird error message
2021-03-23 18:16:06 -07:00
Leonardo de Moura
b85c60aa75
chore: remove leftovers
2021-03-23 17:33:23 -07:00
Leonardo de Moura
99cd4fa720
feat: refine auto bound implicit locals
2021-03-23 17:33:15 -07:00
Leonardo de Moura
ec409a9bfc
fix: fixes #366
2021-03-23 16:02:45 -07:00
Sebastian Ullrich
62ae39e62b
fix: pp.all should not turn off pp.binder_types
2021-03-23 19:45:41 +01:00
Sebastian Ullrich
a0eff55772
fix: unhygiene in synthesized notation unexpander
2021-03-23 19:08:06 +01:00
Sebastian Ullrich
dbefb7dd5f
feat: support $_ antiquotations in match
2021-03-23 19:07:42 +01:00
Sebastian Ullrich
ba285c1c45
chore: do not hide leanpkg print-paths errors
...
@Vtec234 I was super confused about why the LEAN_PATH seemed to be set
up the wrong way when in reality an import failed to compile. If this is
an issue in the client or on Windows, we must fix it there.
2021-03-23 15:31:21 +01:00
Sebastian Ullrich
3af7bc0b87
fix: wrong dir in new error message
2021-03-23 14:06:20 +01:00
Sebastian Ullrich
ed55fdfd3e
chore: better error message when failing to find current package
2021-03-23 12:10:26 +01:00
Leonardo de Moura
81e6181488
test: add another test
2021-03-22 21:21:14 -07:00
Leonardo de Moura
650c6df380
feat: try other variables after failure
2021-03-22 21:02:26 -07:00
Leonardo de Moura
17907a7829
fix: perform topological sort on pattern variables
2021-03-22 20:35:07 -07:00
Sebastian Ullrich
ed9c3ba525
doc: LHS precedences
2021-03-22 16:33:37 +01:00
Sebastian Ullrich
cd4cd581be
feat: make infix non-associative
2021-03-22 16:33:37 +01:00
Sebastian Ullrich
2180898192
fix: |>. must parse its arguments
...
... since we want it to have a low precedence, which now precludes it
from being used in function position
2021-03-22 16:33:37 +01:00
Sebastian Ullrich
bbf6c717fc
feat: introduce arg precedence
2021-03-22 16:33:37 +01:00
Sebastian Ullrich
9f6436ebfd
chore: reset prefer_native
2021-03-22 16:33:37 +01:00
Sebastian Ullrich
a798101c08
chore: update stage0
2021-03-22 16:33:37 +01:00
Sebastian Ullrich
725c0c1911
chore: implement lhs prec
2021-03-22 16:33:37 +01:00
Sebastian Ullrich
61229b7d2d
chore: update stage0
2021-03-22 16:33:37 +01:00
Sebastian Ullrich
3d90850fdd
feat: add syntax for specifying LHS precedence on trailing parsers
2021-03-22 16:33:36 +01:00
Leonardo de Moura
3749213e08
fix: missing whnf at Unify.unify
2021-03-21 22:38:46 -07:00
Leonardo de Moura
2fd0b8c663
feat: contradiction catches empty inductive types
2021-03-21 21:48:43 -07:00
Leonardo de Moura
3d6154f147
fix: contradiction
...
It must ignore auxiliary declarations.
2021-03-21 20:05:15 -07:00
Leonardo de Moura
123783d5f9
fix: some issues at cases and subst
2021-03-21 18:35:31 -07:00
Leonardo de Moura
880f1372bd
feat: set pp.inaccessibleNames true when visualizing tactic state
...
@Kha The default value (false) for `pp.inaccessibleNames == false` help when
visualizing error messages (see test
`hidingInaccessibleNames.lean`). We added this feature after to hide
intermediate variables created by `match_syntax`.
However, this default value confused me in tactic mode. For example,
it will hide a hypotheses `x : Fin 0` if nobody depends on it, but as
a user we want to know we have it since we can close the goal using
it. Thus, I added `withPPInaccessibleNames act`, it executes `act`
using `pp.inaccessibleNames true` if the user did not explicitly set
it. I use this combinator at `FileWorker` and when producing the
`unsolved goals` error message. In all other scenarios, I believe
hiding these inaccessible variables is a good thing.
2021-03-21 18:21:46 -07:00
Leonardo de Moura
19b24e3e82
chore: update stage0
2021-03-20 18:53:41 -07:00
Leonardo de Moura
d9273786c7
chore: remove when and «unless»
...
They are obsolete.
cc @Kha
2021-03-20 18:52:18 -07:00
Leonardo de Moura
9a5f239513
refactor: remove Monad Option and Alternative Option
...
We should use `OptionM` instead.
`Option` still implements `Functor` and `OrElse`.
cc @Kha
2021-03-20 18:25:25 -07:00
Leonardo de Moura
7d61a61407
chore: udpate stage0
2021-03-20 17:51:04 -07:00
Leonardo de Moura
04e3f21783
chore: add OptionM monad
...
Motivation: `Option` is data, `OptionM` is control.
2021-03-20 17:50:45 -07:00