Commit graph

24104 commits

Author SHA1 Message Date
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
Leonardo de Moura
74d613ab88 fix: safe instance for MethodsRef 2021-04-24 07:24:08 -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
104b51471c chore: fix warning 2021-04-22 20:38:57 -07:00
Leonardo de Moura
df665bc219 chore: remove leftover 2021-04-22 20:34:52 -07:00
Leonardo de Moura
c0da331e02 chore: remove temp code 2021-04-22 20:32:24 -07:00
Sebastian Ullrich
8895ed47e5 refactor: clean up Thunk
Fixes a bug in the native implementation of `Thunk.bind` by deleting it
2021-04-22 20:29:08 -07: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
46e02bcdcc chore: fix stdlib 2021-04-16 21:59:44 -07: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
Sebastian Ullrich
32fd82efc2 fix: link lean statically against GMP again 2021-04-14 20:37:07 +02: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