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