Commit graph

58 commits

Author SHA1 Message Date
Leonardo de Moura
9c0bd9dd41 chore: fix tests 2020-05-26 15:05:00 -07:00
Leonardo de Moura
2f959e23ca fix: checkAssignment was overwriting assignment 2020-02-11 16:11:56 -08:00
Leonardo de Moura
55231b960e feat: simplify and improve processAssignmentFOApproxAux 2020-02-11 14:42:02 -08:00
Leonardo de Moura
f6ae8560e8 fix: isDefEq issue exposed by new test 2020-02-10 23:46:17 -08:00
Leonardo de Moura
f39586a237 test: expose problem at isDefEq 2020-02-10 22:22:42 -08:00
Leonardo de Moura
e732eac899 fix: but at elimMVarDepsApp 2020-02-10 20:49:43 -08:00
Leonardo de Moura
f0e2a3cfa4 chore: add small test 2020-02-10 20:37:37 -08:00
Leonardo de Moura
95ad26cc23 feat: add mkEqNDRec and mkEqRec 2020-02-09 11:02:35 -08:00
Leonardo de Moura
ba915d90f5 feat: do not enable constApprox in the combinator approxDefEq 2020-02-03 11:50:40 -08:00
Leonardo de Moura
f8bfe88d6b fix: consume unnecessary let-decls at isDefEq
Make sure we solve unification constraints such as `(let x := v; ?m) =?= ?m`
2020-02-02 21:54:44 -08:00
Leonardo de Moura
8de49b157c feat: add new approximation at isDefEq 2020-02-01 22:38:58 -08:00
Leonardo de Moura
c048a3f573 fix: Level.normalize 2020-01-29 03:38:35 -08:00
Leonardo de Moura
f60c8c6249 test: add kabstract tests 2020-01-10 13:30:50 -08:00
Leonardo de Moura
ebd20432b6 fix: isDefEqOffset 2020-01-09 10:47:02 -08:00
Leonardo de Moura
4b08b1eea3 fix: ?m t =?= ?n 2020-01-07 16:05:17 -08:00
Leonardo de Moura
a99523b4b3 feat: add set_option ppOld false option for disabling ppOld
The old pretty printer often sucks.
2020-01-07 13:20:54 -08:00
Leonardo de Moura
c233225153 feat: add mkForallUsedOnly
This commit also fixes a bug at `mkBinding` for unused let-decls
2020-01-05 11:53:39 -08:00
Leonardo de Moura
a1aac9a98d chore: fix tests 2019-12-15 18:34:13 -08:00
Leonardo de Moura
869b133b59 chore: fix tests 2019-12-13 19:25:35 -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
5b9402f0e3 feat: add Expr.headBeta 2019-12-05 09:01:50 -08:00
Leonardo de Moura
dd0b71938d feat: register Meta tracing options 2019-12-05 06:38:28 -08:00
Sebastian Ullrich
3e46b8a8a4 test: simplify meta2.lean 2019-12-05 13:21:08 +01:00
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
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
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
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
4a6d0a8082 feat: projections of classes should not be reducible 2019-11-23 09:25:49 -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
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
Leonardo de Moura
6234c60aae chore(*): disable test suite 2018-04-10 12:56:55 -07:00
Leonardo de Moura
0d83a74b26 fix(library/io,tests/lean): io monad command line arguments, and tests 2018-01-23 15:24:41 -08:00
Leonardo de Moura
527c8851a8 refactor(library/system/io): use type classes 2017-03-23 14:29:07 -07:00