Daniel Fabian
371504e9cf
feat: add ProofBelow construction for inductive predicates.
...
This construction allows us to define `brecOn` for inductive predicates.
2021-04-25 20:02:22 -07:00
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
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