Commit graph

107 commits

Author SHA1 Message Date
Leonardo de Moura
067dca5a65 chore: naming convention 2019-12-15 18:28:00 -08:00
Leonardo de Moura
e0510520ed chore: update TODOs 2019-12-15 18:12:45 -08:00
Leonardo de Moura
248cc2ec3a chore: naming convention 2019-12-15 07:48:42 -08:00
Leonardo de Moura
ac86983128 chore: naming convention 2019-12-15 07:40:32 -08:00
Leonardo de Moura
a80c5c8339 chore: naming convention 2019-12-14 12:00:25 -08:00
Leonardo de Moura
4184165573 feat: enable foApprox and ctxApprox during type class instance synthesis 2019-12-13 19:24:00 -08:00
Leonardo de Moura
93d987461a chore: naming convention 2019-12-13 19:17:45 -08:00
Leonardo de Moura
119742e463 feat: make sure MetaM also implements new unifier approximation 2019-12-13 19:12:53 -08:00
Leonardo de Moura
afc50a801d feat: add lazy unfolding to field name resolution 2019-12-13 09:52:44 -08:00
Leonardo de Moura
523748f40a fix: bug at isDefEq 2019-12-12 14:28:04 -08:00
Leonardo de Moura
36648ebe69 fix: DiscrTree.getKeyArgs 2019-12-12 05:04:31 -08:00
Leonardo de Moura
34332ecaa9 fix: forallBoundedTelescope 2019-12-11 18:08:41 -08:00
Leonardo de Moura
4b285a48dc fix: forallMetaTelescopeReducing 2019-12-11 18:03:11 -08:00
Leonardo de Moura
77bf2a60e1 fix: lambdaMetaTelescope 2019-12-11 17:50:34 -08:00
Leonardo de Moura
b773bb9ceb fix: make sure instances created by class command are stored in the new DiscrTree 2019-12-11 17:16:12 -08:00
Leonardo de Moura
e13a10fbf2 feat: elaborate explicit and implicit arguments 2019-12-11 09:04:26 -08:00
Leonardo de Moura
c3005671f5 chore: avoid ^do ... 2019-12-11 06:19:12 -08:00
Leonardo de Moura
83b0a712d9 feat: convert KernelException into MessageData 2019-12-10 16:22:20 -08:00
Leonardo de Moura
de7cbc17b2 feat: add user-friendly Meta.Exception -> MessageData 2019-12-10 15:49:52 -08:00
Leonardo de Moura
5b00560dfb chore: remove nonsensical test 2019-12-09 15:41:21 -08:00
Leonardo de Moura
1352619ee4 refactor: MonadTracer and helper functions
This commit adds
- `addContext : MessageData -> m MessageData` method. We need it to
  make sure we wrap the message with the current context. Before this
  commit I had to redefine `trace` for `MetaM`, `SynthM`, and
  `TermElabM`.
- polymorphic `traceM` method.
2019-12-08 09:05:15 -08:00
Leonardo de Moura
59eb963153 chore: missing , 2019-12-05 11:26:15 -08:00
Leonardo de Moura
2ae92340ef feat: add intro and assumption 2019-12-05 10:57:48 -08:00
Leonardo de Moura
f80ec55149 feat: improve tracing messages 2019-12-05 07:29:01 -08:00
Leonardo de Moura
9715bc7738 fix: missing instantiateMVars 2019-12-05 06:57:50 -08:00
Leonardo de Moura
dd0b71938d feat: register Meta tracing options 2019-12-05 06:38:28 -08:00
Sebastian Ullrich
92380ec5bd feat: implement MetaHasEval for MetaM 2019-12-05 13:20:24 +01:00
Leonardo de Moura
cc5a3cca29 chore: move helper modules to src/Init/Lean/Util 2019-12-04 17:17:34 -08:00
Leonardo de Moura
f15af1df0a chore: move Lean auxiliary datatypes to src/Init/Lean/Data 2019-12-04 17:00:13 -08:00
Leonardo de Moura
f570d2a1c3 fix: caching condition 2019-12-04 16:14:26 -08:00
Leonardo de Moura
e3b8013c4e feat: add mkAppM
This is the generic application builder.
2019-12-04 16:12:24 -08:00
Leonardo de Moura
dacf69b2f0 chore: remove mkCApp* functions 2019-12-04 13:07:42 -08:00
Leonardo de Moura
ad54d8e024 feat: add helper functions 2019-12-04 12:43:24 -08:00
Leonardo de Moura
5813fbb26a feat: add AppBuilder module
It is essentially a placeholder.
2019-12-04 11:00:17 -08:00
Leonardo de Moura
86279adc63 chore: add more comments, cleanup, enforce linearity 2019-12-04 09:46:26 -08:00
Leonardo de Moura
ab75062eb4 chore: avoid unnecessary complexity 2019-12-04 06:24:33 -08:00
Leonardo de Moura
7f852d1dad doc: getSubgoalsAux 2019-12-04 06:14:05 -08:00
Leonardo de Moura
1ad97e8e9e refactor: simplify code 2019-12-04 05:54:21 -08:00
Leonardo de Moura
a0a7f11faf refactor: remove unnecessary tryResolveCore from tryAnswer 2019-12-04 05:36:53 -08:00
Leonardo de Moura
1e16b31190 doc: Meta/SynthInstance.lean 2019-12-03 20:09:06 -08:00
Leonardo de Moura
1aa398415c fix: accidental variable shadowing 2019-12-03 14:38:59 -08:00
Leonardo de Moura
43fc18eb41 fix: incorrect local context being used to create new metavariables 2019-12-03 13:31:24 -08:00
Leonardo de Moura
a7aca58bf7 fix: missing instantiateMVars 2019-12-03 13:01:44 -08:00
Leonardo de Moura
618b22e9a1 fix: typo 2019-12-03 12:53:37 -08:00
Leonardo de Moura
98f9ec8b07 refactor: avoid code explosion generated by telescope functions 2019-12-03 12:28:54 -08:00
Leonardo de Moura
2e0b22d49d fix: MetavarContext propagation 2019-12-03 11:34:04 -08:00
Leonardo de Moura
2254da0367 test: add simple test 2019-12-03 10:42:43 -08:00
Leonardo de Moura
5adce9fa20 fix: use eta reduction at DiscrTree
@kha @dselsam

Suppose we are trying to retrieve the global instances for
`(Monad (StateM Nat))`.
During retrieval, we reducde `StateM Nat` into `fun x => StateT Nat Id x`
However, the `DiscrTree` contains an entry for `Monad (StateT * *)`.
Thus, we fail to retrieve any instance.
I fixed the particular issue by using eta reduction.
Not sure we will encounter other definitional-equality related problems .
2019-12-03 10:30:53 -08:00
Leonardo de Moura
3c515dcd21 feat: missing methods 2019-12-03 09:09:45 -08:00
Leonardo de Moura
833c587fa3 feat: add generate, newSubgoal, tryResolve, and simpler table
TODO: `resume`
2019-12-02 19:00:43 -08:00