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