Commit graph

2725 commits

Author SHA1 Message Date
Sebastian Ullrich
53b0e7dde8 fix: ban tabs
Fixes #339
2021-04-25 19:55:15 -07:00
Leonardo de Moura
675bebb446 fix: isLevelDefEq missing case 2021-04-25 10:27:14 -07:00
Leonardo de Moura
d68d1f0841 fix: fixes #423 2021-04-25 10:00:38 -07:00
Leonardo de Moura
67f007fb51 feat: improve error message 2021-04-25 09:59:32 -07:00
Leonardo de Moura
f47f605039 fix: remove incorrect test
It had two problems:
- It was preventing coercions from being applied.
- It was compromising error recovery. The body of the lambda was not
being elaborated when the exception was thrown.

The new error message is more verbose and potentially confusing, but
it is better than the one produced this morning.
2021-04-24 22:17:29 -07:00
Leonardo de Moura
1f9975d35d feat: improve error message and include variables introduced by the implicit lambda notation 2021-04-24 21:34:42 -07:00
Leonardo de Moura
10185d24dd feat: improve error message 2021-04-24 20:43:13 -07:00
Leonardo de Moura
a6888f72dd fix: instance + where + implicts issue
The following could not be elaborated.

```lean
instance : MulComm Bool where
  mulComm := fun {a b} =>
    match a, b with
    | true, true   => rfl
    | true, false  => rfl
    | false, true  => rfl
    | false, false => rfl
```
2021-04-24 20:07:35 -07:00
Leonardo de Moura
2ff8052ce4 fix: missing do 2021-04-24 19:40:40 -07:00
Leonardo de Moura
c76820a251 fix: no method lift over let 2021-04-24 19:33:55 -07:00
Sebastian Ullrich
01f6cece2f chore: fix parser error message 2021-04-24 21:48:12 +02:00
Sebastian Ullrich
069bcf8933 fix: restore missing invariant 2021-04-24 21:46:48 +02:00
Leonardo de Moura
a076b5b89e feat: improved error recovery for interpolated strings 2021-04-24 10:24:57 -07:00
Sebastian Ullrich
d15e2b3756 refactor: make notation and macro macros again 2021-04-24 11:25:08 +02:00
Leonardo de Moura
b2190da468 feat: add Macro.resolveGlobalName and Macro.resolveNamespace? 2021-04-23 19:38:56 -07:00
Leonardo de Moura
d70f9c232c feat: trace support for MacroM
closes #184
2021-04-23 19:15:14 -07:00
Leonardo de Moura
5c6b13ef9a feat: MonadTrace instance for CommandElabM 2021-04-23 18:49:56 -07:00
Leonardo de Moura
c6e00aba63 chore: finalize Macro.Methods refactoring
We can now add new methods without using `update-stage0` multiple times.
2021-04-23 18:08:44 -07:00
Leonardo de Moura
d1dcf0b067 chore: cleanup
We still need another update stage0
2021-04-23 18:02:50 -07:00
Leonardo de Moura
9552b6c95f feat: add Macro.hasDecls and Macro.getCurrNamespace
We need update stage0, and cleanup
2021-04-23 17:51:28 -07:00
Leonardo de Moura
0838b95105 chore: add Macro.State.Extra 2021-04-23 16:22:32 -07:00
Leonardo de Moura
1151ef9af0 chore: add Macro.Methods 2021-04-23 16:22:32 -07:00
Leonardo de Moura
a5d1b8f3c5 chore: add Macro.State 2021-04-23 16:22:24 -07:00
Leonardo de Moura
030f53fa43 fix: closes #421
The unifier used to implement the `cases` tactic should not discard
equations of the form `x = t` and `t = x` using proof irrelanvance.
The new test demonstrates the issue. The unifier was reaching the
state
```
x : Conw Con.nil
|- x = Conw.nilw -> x = Conw.nilw
```
and discarding the equality instead of substituting `x`
because `x` and `Conw.nilw` are definionally equal due to
proof irrelevance.

@javra Do you have more complicated examples that were being
affected by this issue?
2021-04-23 12:27:39 -07:00
Sebastian Ullrich
0e3db5b98b refactor: simplify & generalize runCommandElabM 2021-04-23 15:26:49 +02:00
Sebastian Ullrich
ccb873cea2 fix: panic on variable : 2021-04-23 09:24:35 +02:00
Leonardo de Moura
3a80e87793 chore: #405 step 1 2021-04-22 20:03:48 -07:00
Leonardo de Moura
e6e12ca408 fix: fixes #408 2021-04-22 19:07:03 -07:00
Leonardo de Moura
39abe04e67 chore: remove dead code 2021-04-22 18:00:06 -07:00
Leonardo de Moura
09d438ca1d chore: enforce notation parameter naming convention 2021-04-19 18:54:09 -07:00
Leonardo de Moura
762cebbbfc fix: match generalization bug 2021-04-19 18:37:25 -07:00
Leonardo de Moura
aaca889bea fix: fixes #414 2021-04-19 15:02:26 -07:00
Leonardo de Moura
1dca9d18d4 fix: missing tactic state info on broken proofs 2021-04-18 20:13:02 -07:00
Sebastian Ullrich
60f2faefb7 feat: display placeholder & goal errors even on parse error 2021-04-17 23:46:15 +02:00
Sebastian Ullrich
c09958cf78 chore: do not display MessageData tags by default 2021-04-17 23:46:15 +02:00
Sebastian Ullrich
e96a21631b refactor: move elaboration error filtering into Elab.Command
Also make it dependent on presence of `missing` instead of parse error,
which means that messages from complete commands that are immediately followed
by parse errors are not filtered out anymore
2021-04-17 23:44:57 +02:00
Sebastian Ullrich
61f39d6088 chore: Parser.atomic: preserve partial output 2021-04-17 23:44:45 +02:00
Sebastian Ullrich
fd42b111fb chore: always push missing on a parser error 2021-04-17 23:44:43 +02:00
Leonardo de Moura
157ef80c5a feat: match auto generalization 2021-04-16 21:48:38 -07:00
Leonardo de Moura
aaa072cf21 feat: add withNewBinderInfos 2021-04-16 09:59:40 -07:00
Leonardo de Moura
3bd34182ee chore: generalizing skeleton 2021-04-16 09:51:12 -07:00
Daniel Fabian
cb18af6184 feat: add withLocalDecls and withLocalDeclsD
They are array versions of `withLocalDecl` and `withLocalDeclD`, respectively. They are useful when you need to create variables dynamically.
2021-04-16 07:54:04 -07:00
Leonardo de Moura
555b978d67 refactor: add GeneralizeVars.lean
Helper methods for performing auto generalization.
2021-04-15 21:37:48 -07:00
Leonardo de Moura
2667744092 fix: panic message 2021-04-15 18:25:19 -07:00
Leonardo de Moura
1c23d68c6a feat: add (generalizing := true/false) optional attribute to match 2021-04-15 17:04:25 -07:00
Leonardo de Moura
f6651605d0 chore: remove unnecessary modification, fun syntax is not a binder 2021-04-15 12:38:48 -07:00
Leonardo de Moura
36a4f337e9 fix: fixes #247 2021-04-15 12:33:45 -07:00
Leonardo de Moura
dbc84c502c chore: make sure we don't lift methods over binders 2021-04-15 12:06:46 -07:00
Leonardo de Moura
c1f45ecd48 fix: fixes #394
The bug was due to the auto-generalization feature.
2021-04-13 19:14:57 -07:00
Leonardo de Moura
327eb1a96d fix: ensure ill-formed if do-statements do not trigger non termination 2021-04-13 15:51:20 -07:00