Commit graph

88 commits

Author SHA1 Message Date
Leonardo de Moura
57c9fb7f91 feat: add AbstractMetavarContext.mkForall and AbstractMetavarContext.mkLambda 2019-10-28 17:25:46 -07:00
Leonardo de Moura
0895a16a49 fead: add MonadCache helper class 2019-10-28 17:25:46 -07:00
Leonardo de Moura
1d0ecd6c7d chore: Expr.fvarName! ==> Expr.fvarId! 2019-10-28 13:59:31 -07:00
Leonardo de Moura
0f61de712e chore: add helper functions 2019-10-28 13:40:50 -07:00
Leonardo de Moura
f4eb95cefb chore: add BinderInfo.isAuxDecl 2019-10-28 13:39:58 -07:00
Leonardo de Moura
52f26022da chore: enforce naming convention 2019-10-28 11:10:25 -07:00
Leonardo de Moura
df8bbf5438 chore: remove Init.Control.Combinators
Reason: it contains a bunch of little functions that are supposed to
be defined in other modules.
2019-10-27 18:58:40 -07:00
Leonardo de Moura
34765c97d7 chore: rename mmap, mfoldl, mfor ...
We now use `mapM`, `foldlM`, ... like Haskell.
Motivation: fixes the inconsistent naming convetion. We are already
using the `M` suffix for functions such as `anyM`. We used `anyM`
because `many` is a valid English word.

cc @kha @dselsam
2019-10-27 18:19:34 -07:00
Leonardo de Moura
3c57c2b5ac feat: dependsOn 2019-10-27 17:40:43 -07:00
Leonardo de Moura
99e420ed45 feat: add ExprSet and PersistentExprSet 2019-10-27 17:27:46 -07:00
Leonardo de Moura
b0755d18ad feat: add synthetic field 2019-10-26 16:35:03 -07:00
Leonardo de Moura
9a48b25172 chore: simplify signatures 2019-10-26 16:28:57 -07:00
Leonardo de Moura
5c11c0b0e8 doc: document metavariables 2019-10-26 16:25:59 -07:00
Leonardo de Moura
4559bdef7d test: add instantiateMVars tests 2019-10-26 11:16:07 -07:00
Leonardo de Moura
762d31d584 chore: avoid silent bug 2019-10-26 09:57:23 -07:00
Leonardo de Moura
dec24f3410 chore: simplify LocalContext mk functions 2019-10-26 09:48:28 -07:00
Leonardo de Moura
b896069246 refactor: add AbstractMetavarContext module 2019-10-26 07:50:25 -07:00
Leonardo de Moura
308743bf15 feat: finish Expr.app case at instantiateExprMVars 2019-10-25 17:37:49 -07:00
Leonardo de Moura
f46db3cc01 feat: add Expr helper functions 2019-10-25 16:47:07 -07:00
Leonardo de Moura
336caaea63 feat: add instantiateDelayed 2019-10-25 14:31:30 -07:00
Leonardo de Moura
423b0fed3a refactor: use Array Expr at DelayedMVarAssignment 2019-10-25 12:03:09 -07:00
Leonardo de Moura
b86e3b901c chore: DelayedMetavarAssignment => `DelayedMVarAssignment 2019-10-25 11:34:48 -07:00
Leonardo de Moura
30c585e280 feat: metavariable instantiation functions 2019-10-25 11:29:47 -07:00
Leonardo de Moura
966882b85c feat: add Expr.updateMData 2019-10-25 10:57:17 -07:00
Leonardo de Moura
920bdead01 chore: add helper functions 2019-10-25 10:45:26 -07:00
Leonardo de Moura
14afe50384 chore: fix extern Level primitive names 2019-10-24 19:09:37 -07:00
Leonardo de Moura
025e9d32ef feat: update functions for universe levels, use C version of Level.hasParam and Level.hasMVar 2019-10-24 19:04:01 -07:00
Leonardo de Moura
da4c6a8b72 feat: helper functions 2019-10-24 17:43:27 -07:00
Leonardo de Moura
cb210b0adc feat: expose Expr.hasExprMVar and Expr.hasLevelMVar 2019-10-24 17:32:47 -07:00
Leonardo de Moura
f9572174c9 feat: TypeContext skeleton 2019-10-24 16:45:33 -07:00
Leonardo de Moura
d1c9a440d8 feat: add missing Expr.update* functions 2019-10-24 15:10:03 -07:00
Leonardo de Moura
ccfa57d657 chore: rename constructors
Before we start writing a lot of Expr code.

- `Expr.pi` does not make sense anymore.
- `Expr.elet` is weird. `«let»` is too inconvenient to write. So, I
   used `letE` short for `letExpr`. GHC avoids this issue because
   keywords are lowercase and constructors are capitalized.
2019-10-24 13:53:33 -07:00
Leonardo de Moura
a56297203f chore: style 2019-10-23 17:10:39 -07:00
Leonardo de Moura
93c6ab8eee feat: add Expr.updateApp test of concept 2019-10-23 15:19:34 -07:00
Leonardo de Moura
0941ea284f feat: suppress irrelevant arguments in extern calls 2019-10-23 15:06:44 -07:00
Leonardo de Moura
74d8caf57a feat: add Level mappings 2019-10-23 12:47:37 -07:00
Leonardo de Moura
0032c02247 feat: expose Expr.equal (structural equality) and adding Expr mappings aliases 2019-10-23 10:49:51 -07:00
Leonardo de Moura
c330600197 chore: add example to demonstrate that messages are computed lazily 2019-10-22 17:12:42 -07:00
Leonardo de Moura
c3e4bc0d55 fix: enableTracing 2019-10-22 16:45:23 -07:00
Leonardo de Moura
d51c291f2a refactor: simplify traceCtx 2019-10-22 16:36:18 -07:00
Leonardo de Moura
6498055656 chore: helper instances 2019-10-22 16:18:28 -07:00
Leonardo de Moura
45e21168d2 feat: hierarchical trace kinds 2019-10-22 15:13:57 -07:00
Leonardo de Moura
0a0bc0b7b9 fix: remove unused parameter and add missing disableTracing 2019-10-22 15:04:44 -07:00
Leonardo de Moura
16099189f2 chore: minor adjustments 2019-10-22 14:57:26 -07:00
Leonardo de Moura
13faf9fdf6 feat: add trace prefix to options 2019-10-22 14:43:02 -07:00
Leonardo de Moura
3cd8dc6366 fix: minor issues and add MonadTracer test 2019-10-22 14:33:07 -07:00
Leonardo de Moura
f74195fd50 refactor: new MonadTracer and helper classes/instances 2019-10-22 10:18:18 -07:00
Leonardo de Moura
17a3c51c54 feat: structured messages
Current "plan":
structure messages => tracing infrastructure => unifier => elaborator

cc @kha @dselsam
2019-10-22 08:43:32 -07:00
Leonardo de Moura
1418f12248 fix: reject [class] at declarations that are not inductive datatypes or structures
closes #42
2019-10-21 22:52:13 -07:00
Leonardo de Moura
5902ef30d6 refactor: prepare to change EState 2019-10-21 16:51:48 -07:00