Commit graph

2223 commits

Author SHA1 Message Date
Leonardo de Moura
827d2d7b72 chore: use mkAppN 2019-12-04 16:25:17 -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
ad54d8e024 feat: add helper functions 2019-12-04 12:43:24 -08:00
Leonardo de Moura
963063dfee chore: disable tests for type class resolution prototype 2019-12-03 14:50:14 -08:00
Leonardo de Moura
9994500284 test: add more tests 2019-12-03 14:40:38 -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
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
57f830a751 chore: fix test 2019-12-02 19:42:44 -08:00
Leonardo de Moura
7e34cb4474 feat: add SynthInstance.lean
It is the first step to integrate the new type class procedure intro
`MetaM`. It implements the main entry point where we preprocess the
instance, check cache, invoke main function, process replacements, and
cache result.
2019-12-01 18:32:48 -08:00
Leonardo de Moura
00b991baf6 feat: add openAbstractMVarsResult 2019-12-01 18:32:48 -08:00
Leonardo de Moura
be9dab41ad fix: abstractMVars 2019-11-27 10:53:25 -08:00
Leonardo de Moura
e45211f31c test: display discrimination tree containing type class instances 2019-11-26 18:00:31 -08:00
Leonardo de Moura
120778585d feat: add isProofQuick 2019-11-25 08:42:23 -08:00
Leonardo de Moura
882db55d11 feat: add reduce 2019-11-25 08:42:23 -08:00
Leonardo de Moura
2cf3e197aa test: add getUnify basic tests 2019-11-24 08:41:00 -08:00
Leonardo de Moura
c5afa18469 feat: add DiscrTree.getMatch 2019-11-24 07:56:57 -08:00
Leonardo de Moura
4a6d0a8082 feat: projections of classes should not be reducible 2019-11-23 09:25:49 -08:00
Leonardo de Moura
69723b48c3 feat: add Array.insertAt 2019-11-22 17:42:27 -08:00
Leonardo de Moura
ea2d971bd3 chore: add isDefEq abbreviation for isExprDefEq
Most tactic users will never use `isLevelDefEq`.
2019-11-22 11:54:06 -08:00
Leonardo de Moura
7306343589 test: foApprox for isExprDefEq 2019-11-22 11:52:21 -08:00
Leonardo de Moura
a146ceafeb test: offset constraints 2019-11-22 11:19:02 -08:00
Leonardo de Moura
167549de59 chore: fix tests 2019-11-22 07:56:06 -08:00
Leonardo de Moura
617c0a8707 chore: reduce verbosity 2019-11-21 16:33:43 -08:00
Leonardo de Moura
439123e2e7 refactor: ensure that unfoldDefinitionAux is not specialized multiple times 2019-11-21 15:32:24 -08:00
Leonardo de Moura
5d7042aa9e test: add example on how to disable type checking trace messages 2019-11-21 13:08:51 -08:00
Leonardo de Moura
a28cf323b5 test: test approxDefEq 2019-11-21 11:25:27 -08:00
Leonardo de Moura
aa7afb7285 test: add ho-pattern test 2019-11-21 09:17:03 -08:00
Leonardo de Moura
67c88f12bd test: add basic test 2019-11-21 09:05:38 -08:00
Sebastian Ullrich
6df256a05e feat: import runtime
A runtime-only import is not loaded into the compile-time environment, but is linked into and initialized in binaries
2019-11-21 15:52:01 +01:00
Sebastian Ullrich
3dcd4febd9 feat: make LEAN_PATH a mapping from package names to root dirs, remove C++ impl 2019-11-20 16:39:53 +01:00
Sebastian Ullrich
ab42cffad2 refactor: rename all Default.lean files except for Init/Default.lean 2019-11-19 13:52:21 +01:00
Leonardo de Moura
033f781724 chore: fix tests 2019-11-17 08:53:18 -08:00
Leonardo de Moura
1d9a76ae45 chore: fix tests
Remark: weird discrepancies in the new typeclass module.
Ignoring for now since it was not integrated yet.
2019-11-16 12:19:27 -08:00
Leonardo de Moura
d9f3b4bf63 refactor: remove Expr.mvar hidden field 2019-11-15 10:04:42 -08:00
Leonardo de Moura
524872d68a chore: avoid Expr constructors in tests 2019-11-14 16:54:36 -08:00
Leonardo de Moura
c768a24735 chore: mkApp => mkAppN
We are goint to use `mkApp` for creating unary applications
2019-11-14 15:44:17 -08:00
Leonardo de Moura
0193ead596 test: add corner case 2019-11-12 13:59:24 -08:00
Leonardo de Moura
28d7fe3f49 test: add etaExpanded? tests 2019-11-12 12:24:31 -08:00
Leonardo de Moura
3af65381bd feat: add isPropQuick
It is used to speedup `isProp`.
2019-11-11 20:25:29 -08:00
Leonardo de Moura
01bd502db1 test: add more tests for MetaM 2019-11-11 12:09:10 -08:00
Leonardo de Moura
7469146b0d test: add tests for MetaM 2019-11-11 11:30:22 -08:00
Daniel Selsam
bff5e4ed37 feat: solves mvars in reverse order during tabled tc 2019-11-09 21:15:34 -08:00
Daniel Selsam
9ce13e93c9 feat: allow metas in intermediate tc answers 2019-11-09 15:49:39 -08:00
Daniel Selsam
0bab51b66e feat: solve typeclass subgoals in reverse order
Some instance arguments may still need to be reversed.
2019-11-09 15:47:50 -08:00
Leonardo de Moura
1e065d495b feat: expose hasLooseBVar 2019-11-09 12:29:50 -08:00
Leonardo de Moura
41e574d6cc chore: fix tests 2019-11-05 14:44:05 -08:00
Leonardo de Moura
638ceebab4 feat: helper functions 2019-11-01 17:07:26 -07:00