Leonardo de Moura
050008cb84
refactor: use PersistentArray instead of Array for default [MonadTracer] implementation
...
Motivation: flexibility. Now, the default implementation is better
suited for code that uses traces nonlinearly (e.g., `TermElabM`).
2019-12-22 07:36:26 -08:00
Leonardo de Moura
80165d24a1
chore: style
2019-12-22 07:25:27 -08:00
Leonardo de Moura
7490c34b54
chore: fix tests
...
- Delayed assignments do not become regular assignments anymore.
- We can instantiate mvas more aggressively in the new design.
2019-12-21 16:03:44 -08:00
Leonardo de Moura
b69fec3ce3
chore: improve · input method
2019-12-21 15:55:14 -08:00
Leonardo de Moura
a32fd2e693
feat: implement design documented at 868a217202
2019-12-21 15:53:36 -08:00
Leonardo de Moura
c14192670f
feat: add PersistentHashMap.forM
2019-12-21 09:22:10 -08:00
Leonardo de Moura
fdfff29bb1
feat: expose liftLooseBVars and lowerLooseBVars
2019-12-21 08:57:11 -08:00
Leonardo de Moura
a7e33a85a6
chore: remove reverse and add comment
2019-12-21 07:55:58 -08:00
Leonardo de Moura
868a217202
doc: revise design for creating let-expressions of terms containing metavariables
...
TODO: implement :)
The goal is to fix accidental zeta-expansions occurring when creating
let-declarations where the body of the expression contains
syntheticOpaque metavariables.
2019-12-20 10:04:37 -08:00
Leonardo de Moura
b621b9fbde
chore: more cleanup
2019-12-20 07:50:06 -08:00
Sebastian Ullrich
1361d5cefe
chore: elaborator comments and minor changes
2019-12-20 07:42:08 -08:00
Sebastian Ullrich
dedb6c2e13
refactor: simplify MacroHygiene implementations
...
The stack of macro scopes is already implied by the stack of withFreshMacroScope
calls, there is no need for an explicit stack.
/cc @leodemoura
2019-12-20 14:19:09 +01:00
Leonardo de Moura
5adadc3158
test: document let issue
...
TODO: fix issue at `Meta.mkLambda` when some of the free variables are let-declarations.
2019-12-19 17:29:26 -08:00
Leonardo de Moura
d2d6e85719
feat: add forRevM
2019-12-19 17:24:29 -08:00
Leonardo de Moura
93f4184125
feat: elaborate let
2019-12-19 17:00:19 -08:00
Leonardo de Moura
a97b3cf5a1
chore: simplify withMVarContext
...
cc @kha
2019-12-19 15:16:19 -08:00
Leonardo de Moura
30a5f19f30
feat: simplify code using filterRevM
...
cc @kha
2019-12-19 15:09:20 -08:00
Leonardo de Moura
40f7caca0b
feat: add tailrec filterM and filterRevM
2019-12-19 15:06:16 -08:00
Leonardo de Moura
78f9606c8c
feat: simplify code using filterM
...
cc @kha
2019-12-19 14:53:05 -08:00
Leonardo de Moura
8431303999
test: new test
2019-12-19 14:45:17 -08:00
Leonardo de Moura
757419ffa9
feat: rename fold functions initial value parameter to init
2019-12-19 14:44:51 -08:00
Leonardo de Moura
f7562ce94d
fix: bug at addLValArg
2019-12-19 14:44:35 -08:00
Leonardo de Moura
bfca7e32e0
fix: try to postpone if function type is not known
2019-12-19 14:20:56 -08:00
Leonardo de Moura
8d81e89e53
feat: elaborate $.
2019-12-19 14:16:28 -08:00
Leonardo de Moura
edb1ffadb4
chore: update stage0
2019-12-19 14:07:10 -08:00
Leonardo de Moura
e221a239f8
feat: $. notation
2019-12-19 14:03:27 -08:00
Leonardo de Moura
f04f51a295
test: pattern confusion example
...
cc @dselsam
2019-12-19 13:36:22 -08:00
Leonardo de Moura
57f6881c6c
feat: restore state when catching Exception.postpone
...
cc @Kha
2019-12-19 13:21:11 -08:00
Leonardo de Moura
24506b50b4
chore: update stage0
2019-12-19 12:11:46 -08:00
Leonardo de Moura
3e5527219f
test: add foldl test
2019-12-19 12:06:47 -08:00
Leonardo de Moura
ea2cebaf74
fix: typo
2019-12-19 12:03:13 -08:00
Leonardo de Moura
eb24ec56dc
feat: add array literal notation
2019-12-19 11:42:39 -08:00
Leonardo de Moura
76e75a1b53
feat: avoid unnecessary metavars
2019-12-19 11:26:47 -08:00
Leonardo de Moura
fc5fb07fc3
fix: mkFreshExprMVar
2019-12-19 11:13:22 -08:00
Leonardo de Moura
c5c158e5b9
fix: isDefEqQuick
2019-12-19 11:10:58 -08:00
Leonardo de Moura
fadd453395
fix: avoid nontermination
2019-12-19 10:37:24 -08:00
Leonardo de Moura
50100df574
fix: avoid assignment overwriting
2019-12-19 10:36:46 -08:00
Leonardo de Moura
40576ac3dd
fix: missing !
2019-12-19 10:27:49 -08:00
Leonardo de Moura
bdc9ea6fc6
fix: unregistered level metavariable
2019-12-19 09:58:05 -08:00
Leonardo de Moura
66a59d6379
chore: update stage0
2019-12-19 09:29:05 -08:00
Leonardo de Moura
74f48414f1
feat: add option --exitOnPanic (short version -e)
...
Lean does not exit on panic anymore.
The old behavior (`std::exit(1)`) produces a horrible debugging
experience for the elaborator since all trace messages are lost.
The new command line option restores the old behavior.
cc @Kha @dselsam
2019-12-19 09:24:37 -08:00
Leonardo de Moura
49bdbf7eb2
chore: style
2019-12-19 08:43:17 -08:00
Leonardo de Moura
6eeb64bf88
chore: update stage0
2019-12-19 07:33:24 -08:00
Leonardo de Moura
76d351d830
refactor: split Elab/Term.lean into smaller files
2019-12-19 07:26:54 -08:00
Leonardo de Moura
f334e7e89c
chore: cleanup and remove Array.getA
2019-12-19 07:09:51 -08:00
Leonardo de Moura
1c459a6fb0
refactor: use match_syntax to implement expandCDot
2019-12-19 06:34:52 -08:00
Leonardo de Moura
5629870ab0
test: news tests
2019-12-19 05:51:04 -08:00
Sebastian Ullrich
a2e0f1e6b1
refactor: simplify quotations
2019-12-19 10:59:20 +01:00
Leonardo de Moura
39c4026320
chore: update stage0
2019-12-18 20:22:39 -08:00
Sebastian Ullrich
88a924b728
feat: support (almost) proper name resolution in quotations in the old frontend
2019-12-18 20:11:45 -08:00