Leonardo de Moura
35d036b09a
chore: cleanup
2021-09-14 16:09:56 -07:00
Leonardo de Moura
ad3b0b4a2c
feat: nary generalize tactic
...
This commit also fixes a bug when using multiple targets with the
`induction` and `cases` tactics.
2021-08-30 16:31:39 -07:00
Leonardo de Moura
571a0491ee
feat: add Meta.byCases helper tactic
2021-08-16 14:58:51 -07:00
Leonardo de Moura
051ac3aef3
fix: casesRec
2021-05-14 18:05:04 -07:00
Leonardo de Moura
77b9dbf9a9
feat: add casesRec
2021-05-14 18:05:04 -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
Leonardo de Moura
9d45ea6721
feat: try to improve dependent pattern matching failure error message
2021-03-30 23:40:11 -07:00
Leonardo de Moura
2fd0b8c663
feat: contradiction catches empty inductive types
2021-03-21 21:48:43 -07:00
Leonardo de Moura
123783d5f9
fix: some issues at cases and subst
2021-03-21 18:35:31 -07:00
Leonardo de Moura
be841a7cad
chore: throwError! => throwError, throwErrorAt! => throwErrorAt
...
@Kha I marked the corresponding methods as `protected`.
I currently can't stand `throw_error`, and I am optimistic about
server highlighting feature you are working on :)
2021-03-11 11:59:45 -08:00
Leonardo de Moura
68143ca8ba
chore: trace[...]! ==> trace[...]
...
@Kha I think this one is a good change, there is no real reason for
using the `!` suffix here.
2021-03-10 18:44:43 -08:00
Leonardo de Moura
2888e49785
feat: @ modifier at induction and cases tactic alternatives
2021-02-01 18:03:19 -08:00
Leonardo de Moura
c1dce595a5
feat: add option useNamesForExplicitOnly to introN
2021-02-01 17:35:48 -08:00
Leonardo de Moura
ea0fda39bc
chore: Declaration.lean naming convention
...
`Declaration.lean` was one of the first Lean 4 files, and was still
using an old naming convention.
cc @Kha
2021-01-20 17:07:02 -08:00
Leonardo de Moura
0869f38de4
chore: update structure, class, inductive
2020-11-27 15:09:30 -08:00
Leonardo de Moura
f17e226638
chore: naming convention
...
Example: `mkNameStr` => `Name.mkStr`
cc @Kha
2020-11-11 10:08:55 -08:00
Leonardo de Moura
abd6914ac2
fix: missing indentExpr at error message
2020-11-03 17:20:52 -08:00
Leonardo de Moura
dbe376a45a
chore: control code size explosion
2020-11-03 17:20:52 -08:00
Leonardo de Moura
69abb0a35a
feat: avoid unnecessary whnfs at unifyEqs
2020-11-03 17:20:52 -08:00
Leonardo de Moura
1bec9ac3e0
feat: add generalizeTargets and more general unifyEqs
2020-11-02 17:43:43 -08:00
Leonardo de Moura
13c2a8ff51
chore: remove #lang lean4 header
2020-10-25 09:54:07 -07:00
Leonardo de Moura
3f0cc1d2ec
fix: library/constructions primitives crash at kernel_exception
2020-10-24 18:52:01 -07:00
Leonardo de Moura
bebd5075fd
chore: cleanup
2020-10-23 10:00:23 -07:00
Leonardo de Moura
1495f403a1
chore: use builtin_initialize instead of initialize at src/Lean
2020-10-19 15:17:02 -07:00
Leonardo de Moura
a915822454
chore: cleanup
2020-10-17 13:49:14 -07:00
Leonardo de Moura
9433124048
chore: move to new frontend
2020-10-17 07:35:58 -07:00
Leonardo de Moura
12aabcb731
feat: add introNP and intro1P
...
Versions of `introN` and `intro1` that preserve the binder name.
They are used to implement the idiom: "revert", do something, re-"intro"-tuce
Before this commit `introNP mvarId n` was `intro1 mvarId n [] false`.
2020-09-18 12:35:25 -07:00
Leonardo de Moura
4bc1be17f4
chore: cleanup
2020-08-28 09:18:22 -07:00
Leonardo de Moura
49f5e4db20
refactor: cleanup
2020-08-24 17:47:27 -07:00
Leonardo de Moura
ac565de96c
refactor: add MonadMetaM class
2020-08-24 12:17:47 -07:00
Leonardo de Moura
05a0e7f6d0
refactor: build all main monads on top of ECoreM
2020-08-20 18:36:04 -07:00
Leonardo de Moura
e2109ceab6
fix: missing substitution
...
We should include the `majorFVarId -> ctor-application` substitution
in each subgoal.
2020-08-14 12:38:00 -07:00
Leonardo de Moura
54f6517ca3
fix: condition for using simple casesOn
2020-08-14 10:50:48 -07:00
Leonardo de Moura
b3dcd35661
fix: bugs at cases tactic
2020-08-05 09:44:26 -07:00
Leonardo de Moura
a70962854e
chore: mark TODO
2020-08-04 18:50:53 -07:00
Leonardo de Moura
943446f1b3
fix: FVarSubst must be a mapping from FVarId to Expr
...
Reason: `subst` tactic must store the `x |-> e` when substituting `x`
with `e`.
2020-08-04 13:06:08 -07:00
Leonardo de Moura
d206d85fcd
fix: trace class name
2020-08-03 11:36:15 -07:00
Leonardo de Moura
249bda16c0
chore: remove prelude commands from Lean package
2020-06-25 11:21:17 -07:00
Leonardo de Moura
4ccc3fef52
chore: move Init.Lean files to Lean package
2020-05-26 15:04:35 -07:00