Commit graph

24318 commits

Author SHA1 Message Date
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
Sebastian Ullrich
29c7db3ed2 feat: term info at many more constants 2021-03-20 08:31:06 -07:00
Sebastian Ullrich
83ecff44c6 test: make infoTree an output test 2021-03-20 08:28:18 -07:00
Sebastian Ullrich
c0af90022e feat: term info at #print 2021-03-20 08:28:18 -07:00
Sebastian Ullrich
c86f41a42b feat: command-level info trees 2021-03-20 08:28:18 -07:00
Sebastian Ullrich
86072873f4 feat: server: allow more than one ContextInfo 2021-03-20 08:28:18 -07:00
Sebastian Ullrich
62891a1b0c feat: trace.Elab.info 2021-03-20 08:28:18 -07:00
Sebastian Ullrich
2f168e3364 feat: mkConstWithLevelParams 2021-03-20 08:28:18 -07:00
Sebastian Ullrich
d34ef570a7 chore: print unexpected internal frontend errors 2021-03-20 08:28:18 -07:00
Daniel Selsam
c0d8e09a2f fix: bug in normLtAux 2021-03-20 08:21:08 -07:00