Leonardo de Moura
ed976027fe
chore: naming convention
2020-08-26 20:24:33 -07:00
Leonardo de Moura
09a375b540
feat: reject _ where function is expected
...
It should behave like Lean3.
2020-08-26 18:48:05 -07:00
Leonardo de Moura
4934a2d522
chore: remove workaround
2020-08-26 16:24:20 -07:00
Leonardo de Moura
7db6f420f5
refactor: move mkAuxDefinitionCore
2020-08-26 16:20:09 -07:00
Leonardo de Moura
00599cf62b
fix: types of the recursive functions being defined cannot reference other functions in the same mutual block
2020-08-26 15:29:06 -07:00
Leonardo de Moura
8543a20b8f
feat: add checkpoint using withSynthesize
2020-08-26 15:10:26 -07:00
Leonardo de Moura
89bd5d6da2
fix: bug introduced today
2020-08-26 14:49:20 -07:00
Leonardo de Moura
5d036d0ca3
feat: generalize mkClosure
2020-08-26 14:45:46 -07:00
Leonardo de Moura
5af763f243
feat: use checkNotAlreadyDeclared
2020-08-26 13:44:25 -07:00
Leonardo de Moura
de2df5955f
refactor: polymorphic checkNotAlreadyDeclared
2020-08-26 13:42:57 -07:00
Leonardo de Moura
497d8592cf
feat: elaborate letrec values
2020-08-26 13:35:51 -07:00
Leonardo de Moura
1f2204af96
feat: add LetIdDeclView
2020-08-26 13:28:41 -07:00
Leonardo de Moura
f4f0684636
chore: remove dead code
2020-08-26 13:19:13 -07:00
Leonardo de Moura
5dc5e8a92f
feat: add LetRecView and expand letEqnsDecl occurring in letrec's
2020-08-26 11:30:06 -07:00
Leonardo de Moura
546c108497
chore: revise letrec syntax
2020-08-26 10:50:32 -07:00
Leonardo de Moura
70e508d704
chore: add Lean/Elab/LetRec.lean
2020-08-26 10:07:59 -07:00
Leonardo de Moura
effaf64a07
feat: allow user to specify attributes letrec declarations
2020-08-26 09:57:46 -07:00
Leonardo de Moura
8a9b031a9d
refactor: add Lean/Elab/Attributes.lean
2020-08-26 09:54:48 -07:00
Leonardo de Moura
a413da856f
refactor: polymorphic elabAttrs and elabAttr
2020-08-26 09:50:03 -07:00
Leonardo de Moura
6a83577703
feat: letrec syntax
2020-08-26 09:33:52 -07:00
Leonardo de Moura
467e912380
fix: bug on JP handling
2020-08-26 08:34:35 -07:00
Leonardo de Moura
76f9b155a1
chore: document kind of crash
2020-08-26 08:34:35 -07:00
Leonardo de Moura
5efa628e43
chore: split Lift.lean into MonadLift.lean, MonadFunctor.lean, and MonadRun.lean
2020-08-26 08:34:35 -07:00
Leonardo de Moura
321719b300
feat: add MonadFinally
2020-08-25 17:58:35 -07:00
Leonardo de Moura
31716731ba
chore: cleanup
2020-08-25 15:06:12 -07:00
Leonardo de Moura
813a964767
refactor: move polymorphic Meta methods back to Meta namespace
2020-08-25 14:57:58 -07:00
Leonardo de Moura
cf0149a1a7
refactor: use MonadControlT
2020-08-25 13:54:42 -07:00
Leonardo de Moura
b095f0652a
fix: tryLiftAndCoe
2020-08-25 13:54:41 -07:00
Leonardo de Moura
1103806ff4
refactor: HasMonadLift ==> MonadLift
2020-08-25 13:54:41 -07:00
Leonardo de Moura
b03cd748cf
feat: add MonadControl
2020-08-25 13:54:41 -07:00
Leonardo de Moura
e5b7daf9c2
refactor: make AppBuilder methods polymorphic
2020-08-24 18:23:34 -07:00
Leonardo de Moura
49f5e4db20
refactor: cleanup
2020-08-24 17:47:27 -07:00
Leonardo de Moura
eaed6ba6a3
refactor: polymorphic MetaM combinators
2020-08-24 17:03:54 -07:00
Leonardo de Moura
e391cb5b64
refactor: use internal exceptions instead of OptionT
...
@Kha: the motivations are
- Code is more uniform, and make sure we are using only `ReaderT` and
`StateRefT` on top of our basic monads.
- It is easier to support variants of `monadMap`. We don't need to
explain the system how these variants behave with `OptionT`.
2020-08-24 16:48:15 -07:00
Leonardo de Moura
ac565de96c
refactor: add MonadMetaM class
2020-08-24 12:17:47 -07:00
Leonardo de Moura
57a6998426
chore: minor
2020-08-24 12:17:47 -07:00
Leonardo de Moura
5b23b5302f
refactor: move TransparencyMode to its own file
2020-08-24 12:17:47 -07:00
Leonardo de Moura
e000fcaeda
chore: cleanup
2020-08-24 12:17:47 -07:00
Leonardo de Moura
143760d443
refactor: polymorphic withIncRecDepth
2020-08-24 12:17:47 -07:00
Leonardo de Moura
4f14fe3b79
refactor: polymorphic withRef
2020-08-24 12:17:47 -07:00
Sebastian Ullrich
8630d78b3f
fix: Int.add spec
2020-08-24 13:55:14 +02:00
Sebastian Ullrich
015903f055
chore: speedcenter: benchmark actual, parallel stdlib build
2020-08-24 13:43:44 +02:00
Leonardo de Moura
b672f0820b
chore: remove workarounds
2020-08-23 19:56:01 -07:00
Leonardo de Moura
6fc935f6d1
refactor: add MonadNameGenerator
2020-08-23 19:56:01 -07:00
Leonardo de Moura
d85836a387
chore: mark TODO
2020-08-23 19:55:53 -07:00
Leonardo de Moura
50f779e858
refactor: polymorphic setTraceState, getTraceState, etc
2020-08-23 19:10:38 -07:00
Leonardo de Moura
6180ba6d7d
chore: rename ST.Ref primitives
2020-08-23 12:28:14 -07:00
Leonardo de Moura
77b9445544
feat: real ST monad
...
@Kha: the new `ST` (and `EST`) are escapable like the Haskell ST monad.
It makes `StateRefT` much more useful because we can now run it from pure
code.
2020-08-23 12:15:32 -07:00
Leonardo de Moura
5ffbada3df
feat: add Lean.MonadEnv, Lean.MonadError, and Lean.MonadOptions
...
This is the first set of polymorphic methods. I will add more later,
and keep reducing code duplication.
cc @Kha
2020-08-22 16:00:43 -07:00
Leonardo de Moura
37571edce5
fix: remove unnecessary dependencies
2020-08-22 15:15:10 -07:00