Commit graph

2493 commits

Author SHA1 Message Date
Leonardo de Moura
47aba91c43 feat: error message when optParam and autoParam are used at fun 2020-02-13 17:57:12 -08:00
Leonardo de Moura
da3bf54ec7 feat: elaborate autoParams
cc @Kha
2020-02-13 16:24:50 -08:00
Leonardo de Moura
93de4ce7b3 feat: elaborate by 2020-02-13 11:45:51 -08:00
Leonardo de Moura
4227d3bce4 chore: reduce problem size
Motivation: avoid stack overflow in debug mode
2020-02-12 21:27:34 -08:00
Leonardo de Moura
263d22576b test: add new implicit lambda test 2020-02-12 13:47:54 -08:00
Leonardo de Moura
1fe92ade36 doc: document why example fails 2020-02-12 13:46:55 -08:00
Leonardo de Moura
6c16deded4 feat: improve implicit lambdas 2020-02-12 13:38:01 -08:00
Leonardo de Moura
fc404af645 feat: solve ?m t =?= c even when constApprox is disabled 2020-02-12 13:21:56 -08:00
Leonardo de Moura
98c925ed7e feat: elaborate #check_failure 2020-02-12 11:55:02 -08:00
Leonardo de Moura
17dfe3fb66 test: implicit lambda tests 2020-02-11 21:21:21 -08:00
Leonardo de Moura
41baf46083 feat: propagate expected type at elabFunCore 2020-02-11 17:47:51 -08:00
Leonardo de Moura
97dfe95b41 chore: fix test
and document why better expected type propagation broke this example.
2020-02-11 16:26:39 -08: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
30e0ccd8c4 feat: implicit lambdas
It is still work in progress
2020-02-11 13:43:05 -08:00
Leonardo de Moura
03b5b7d562 feat: implicit lambdas 2020-02-11 09:59:46 -08:00
Leonardo de Moura
adb940e879 feat: new test 2020-02-11 09:34:45 -08:00
Leonardo de Moura
7085072590 feat: allow implicitBinder and instBinder at fun 2020-02-11 08:26:10 -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
34776c4f41 chore: fix test 2020-02-10 14:48:57 -08:00
Leonardo de Moura
c3b2a1da50 fix: bug at subst tactic 2020-02-09 19:25:15 -08:00
Leonardo de Moura
352b720728 test: add clear failure test 2020-02-09 16:48:36 -08:00
Leonardo de Moura
22ff3c7db2 feat: add evalClear 2020-02-09 16:41:29 -08:00
Leonardo de Moura
95ad26cc23 feat: add mkEqNDRec and mkEqRec 2020-02-09 11:02:35 -08:00
Leonardo de Moura
7c7c4edf38 feat: add evalRevert 2020-02-08 18:51:11 -08:00
Leonardo de Moura
3c5b3cd91f feat: add Expr.replace helper function 2020-02-06 14:03:54 -08:00
Leonardo de Moura
eacff1a448 feat: implement withPtrEq and withPtrAddr 2020-02-04 17:48:11 -08:00
Leonardo de Moura
6f4dd5441e chore: disable test on windows 2020-02-04 14:21:38 -08:00
Leonardo de Moura
362185147e chore: remove unncessary annotation 2020-02-04 14:21:26 -08:00
Leonardo de Moura
b5eb64da3a fix: add mkFilePath and try to fix Windows build 2020-02-04 11:24:33 -08:00
Leonardo de Moura
48be9094b9 test: add test for parsing Core.lean 2020-02-04 10:15:00 -08:00
Sebastian Ullrich
52a0a0937e feat: check precedence of leading parsers as well 2020-02-04 07:49:33 -08:00
Leonardo de Moura
1f359b9844 chore: remove unnecessary workaround
It is not needed anymore after we fixed the `app` parser
2020-02-03 20:25:09 -08:00
Leonardo de Moura
99f7aff491 fix: liftMethod notation 2020-02-03 17:12:44 -08:00
Leonardo de Moura
31bb6a1dec feat: extend tryCoeAndLift
Add combined coe+lift case.
2020-02-03 14:30:13 -08:00
Leonardo de Moura
bcfaeaceab feat: change ite and dite argument order
Motivation: make sure `propagateExpectedType` heuristic is applied in
the new frontend when processing them.
2020-02-03 14:11:29 -08:00
Leonardo de Moura
a474850f5e feat: use automatic liftM at ensureHasType 2020-02-03 13:06:36 -08:00
Leonardo de Moura
48acc748ef feat: improve automatic liftM at do blocks
We now don't need to use `decide` in the following example:

```
def pred (x : Nat) : IO Bool := do
pure $ decide $ (← g 1) > 0
```
2020-02-03 12:16:57 -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
17cc925115 feat: change liftMethod notation
cc @Kha
2020-02-03 09:38:05 -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
2abfa1bcff fix: closes #108 2020-02-01 23:17:00 -08:00
Leonardo de Moura
8487216b1e feat: fallback to constApprox when foApprox fails 2020-02-01 22:50:29 -08:00
Leonardo de Moura
8de49b157c feat: add new approximation at isDefEq 2020-02-01 22:38:58 -08:00
Leonardo de Moura
a7c8978d81 feat: insert liftM automatically in do notation when needed
@Kha The new example demonstrates the feature in action.
I added a comment explaining why it is more effective than relying on coercions.
2020-02-01 17:33:04 -08:00
Leonardo de Moura
cd4ec6313e chore: try macros first 2020-02-01 00:53:49 -08:00
Leonardo de Moura
d8c738bef8 feat: elaborate do notation 2020-01-31 20:11:06 -08:00