Commit graph

799 commits

Author SHA1 Message Date
Leonardo de Moura
43317d5598 fix: nullary minor premises must be thunks 2020-08-08 16:23:50 -07:00
Leonardo de Moura
d2206dcab2 feat: as-patterns x@pattern 2020-08-08 16:12:44 -07:00
Leonardo de Moura
0ca83699d7 fix: array literal support at DepElim 2020-08-08 15:21:35 -07:00
Leonardo de Moura
0fa404ead2 feat: add support for array literals in the pattern matching compiler 2020-08-07 17:13:15 -07:00
Leonardo de Moura
e1be008516 feat: add caseArraySizes
An auxiliary tactic for pattern matching array literals.
2020-08-07 16:04:57 -07:00
Leonardo de Moura
b624fa78d7 fix: another subst issue 2020-08-07 16:04:01 -07:00
Leonardo de Moura
6b18f486d1 feat: add mkLt and mkLe 2020-08-07 14:47:11 -07:00
Leonardo de Moura
3b0ec1b20a feat: add mkDecideProof 2020-08-07 13:48:37 -07:00
Leonardo de Moura
77e51306c5 fix: missing substitution 2020-08-07 13:37:38 -07:00
Leonardo de Moura
c59fda4c19 feat: add assertExt 2020-08-07 12:06:53 -07:00
Leonardo de Moura
feda5e746f chore: improve error message 2020-08-07 11:50:08 -07:00
Leonardo de Moura
57ac1751cb feat: expose mkElimCore
`mkElimCore` allows caller to pick the motive.
2020-08-07 06:41:47 -07:00
Leonardo de Moura
aa972878d8 feat: add processValue 2020-08-06 16:34:37 -07:00
Leonardo de Moura
fd9be5e8ae feat: add caseValues tactic
It is an auxiliary tactic for compiling pattern matching.
2020-08-06 15:37:00 -07:00
Leonardo de Moura
e423533bca chore: improve DepElim trace messages 2020-08-06 11:02:57 -07:00
Leonardo de Moura
d09eb82c4c feat: add Meta.EqnCompiler trace class 2020-08-06 10:47:26 -07:00
Leonardo de Moura
7342cab0e5 feat: add (ref : Syntax) to Meta.Exception.tactic
cc @Kha
2020-08-06 10:14:32 -07:00
Leonardo de Moura
b1023872b3 refactor: MVarSubst => MVarRenaming 2020-08-06 09:49:42 -07:00
Leonardo de Moura
f934a86646 feat: add (ref : Syntax) to Meta.Exception.other
@Kha The Syntax is here just to provide possition information. The
goal is to improve error message location information in code such as `DepElim`.
2020-08-06 09:40:16 -07:00
Sebastian Ullrich
b6b5f4c9c9 refactor: move whnf-eval functions into Lean.Meta.ReduceEval 2020-08-06 09:27:12 -07:00
Leonardo de Moura
e818368c96 refactor: move EqnCompiler to Meta folder 2020-08-06 09:10:01 -07:00
Leonardo de Moura
eb32fec77e feat: add admit tactic 2020-08-05 15:33:49 -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
6be71b337f refactor: add prototype2.lean 2020-08-04 18:35:11 -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
8aa375ba3e fix: bug at FVarSubst generation 2020-08-03 17:47:24 -07:00
Leonardo de Moura
d206d85fcd fix: trace class name 2020-08-03 11:36:15 -07:00
Leonardo de Moura
ad53983e35 feat: add FVarSubst.domain 2020-08-03 11:35:58 -07:00
Leonardo de Moura
252ef7345f fix: incorrect FVarSubst for subst tactic 2020-08-03 11:35:14 -07:00
Leonardo de Moura
9746f8ab25 feat: apply variable substitution to Alts 2020-08-03 10:12:10 -07:00
Leonardo de Moura
fe0d298657 fix: mkAuxDefinition was not correctly handling delayed metavar assignments 2020-07-31 15:38:38 -07:00
Leonardo de Moura
edb25946d7 fix: instantiate metavars 2020-07-31 14:56:07 -07:00
Leonardo de Moura
0e473ba840 feat: add throwOther 2020-07-31 14:34:51 -07:00
Leonardo de Moura
55ecbe0c28 feat: add whnfAll cache 2020-07-31 11:34:51 -07:00
Leonardo de Moura
30e5b390ab feat: use MessageData at Meta.Exception.appBuilder 2020-07-30 13:28:06 -07:00
Leonardo de Moura
e22e900784 feat: change Meta.Exception.other constructor 2020-07-30 13:06:57 -07:00
Leonardo de Moura
98e9fc20d5 feat: add replaceFVar 2020-07-30 13:06:45 -07:00
Leonardo de Moura
1e1ac497da feat: add Meta.mkListLit and Meta.mkArrayLit 2020-07-29 18:01:26 -07:00
Leonardo de Moura
3ad1ffdd63 feat: add withExistingLocalDecls 2020-07-29 18:01:26 -07:00
Leonardo de Moura
06a767089c fix: do not use `mkAppM id #[e]``
If `e` has type `forall {A : Type}, B`, ``mkAppM `id #[e]`` fails
since it will try to synthesize the implicit argument `A : Type`.
We can avoid this issue by using
1- ``mkAppOptM `id #[none, some e]``, or
2- `mkId e`
2020-07-27 15:24:06 -07:00
Leonardo de Moura
eba7a28df0 feat: add Meta.mkProjection 2020-07-20 16:01:36 -07:00
Leonardo de Moura
e26ec036ba feat: add instantiateForall 2020-07-11 08:01:36 -07:00
Leonardo de Moura
f559576994 feat: inductive datatype header validation 2020-07-09 15:34:25 -07:00
Leonardo de Moura
11ed7c6195 chore: move PersistentArray to Std 2020-06-25 13:02:21 -07:00
Leonardo de Moura
1612097788 chore: move HashMap and HashSet to Std 2020-06-25 12:46:56 -07:00
Leonardo de Moura
1be221a1f4 chore: move PersistentHashMap and PersistentHashSet to Std 2020-06-25 11:56:00 -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