Leonardo de Moura
7bfa39ae45
fix: for .. in .. do notation and universe constraints
...
We use `MProd` instead of `Prod` to group values when expanding the
`do` notation. `MProd` is a universe monomorphic product.
The motivation is to generate simpler universe constraints in code
that was not written by the user but generated by the `do` macro.
Note that we are not really restricting the macro power since the
`HasBind.bind` combinator already forces values computed by monadic
actions to be in the same universe.
The new test cannot be compiled without this modication.
2020-10-18 18:05:00 -07:00
Leonardo de Moura
0b81ffb569
refactor: factor out nested do term support and document code
...
We currently use the nested `do` terms for two combinators: `catch`
and `finally`. We may want to support more in the future.
2020-10-09 11:59:14 -07:00
Leonardo de Moura
8a6cb1842f
feat: expand doTry
...
@Kha I did not implement support for reassignments and `continue`,
`break`, `return` inside the `finally` clause. It is doable, but it
feels like unnecessary complexity. We currently don't have any
instance in our code base where this would be useful.
2020-10-08 19:39:36 -07:00
Leonardo de Moura
5b76155318
feat: new return semantics
...
`return e` is not equivalent to `pure e` anymore.
Now, `return e` means "return value `e` as the result of the root `do` block".
2020-10-07 14:07:58 -07:00
Leonardo de Moura
b4289d5c5d
feat: add DoResult
2020-10-03 15:38:30 -07:00
Leonardo de Moura
21d90afa43
feat: add ForInStep type
2020-10-03 15:16:45 -07:00
Sebastian Ullrich
ab6b6ac3ba
feat: add dedicated task priority
2020-09-29 08:01:10 -07:00
Sebastian Ullrich
562c7ed5ce
feat: expose task priorities
2020-09-29 08:01:10 -07:00
Sebastian Ullrich
77cbaa752c
fix: Task: make reference and -j0 semantics eager, simplify
2020-09-14 17:57:33 +02:00
Leonardo de Moura
27170cddb9
feat: mark Lean.ofReduceBool and Lean.ofReduceNat as axioms
...
The idea is to inform users whether their trust code base depends on
the compiler, interpreter, `[implementedBy]` and `[extern]`
annotations.
2020-08-28 12:22:12 -07:00
Leonardo de Moura
f8db5d2652
fix: must use lean_mk_task_own
2020-08-27 12:21:10 -07:00
Leonardo de Moura
5a09883cc7
chore: add namedPattern
2020-08-11 15:04:09 -07:00
Leonardo de Moura
447000a797
fix: >>= associativity
2020-08-03 14:00:19 -07:00
Leonardo de Moura
09eb27404f
chore: remove <$ and $> notation
...
cc @Kha
2020-06-15 14:52:31 -07:00
Leonardo de Moura
f23780a334
chore: add hack for allowing old and new frontends to parse Core.lean
2020-06-09 14:11:34 -07:00
Leonardo de Moura
e62e30ad0f
chore: remove whitespace
2020-06-09 14:11:34 -07:00
Leonardo de Moura
50990b99d6
chore: remove unnecessary annotations
2020-05-12 15:02:03 -07:00
Leonardo de Moura
ebfa362507
chore: fix HasOfNat
2020-05-12 15:02:03 -07:00
Leonardo de Moura
33a10130cf
chore: fix stdlib
2020-05-12 15:02:03 -07:00
Leonardo de Moura
7a5fcfae8b
feat: add [recursor] attribute to Iff.elim
2020-04-09 10:45:27 -07:00
Leonardo de Moura
596a547e57
feat: add helper theorems
2020-03-16 11:17:41 -07:00
Leonardo de Moura
2d7ec0b49c
fix: bug at unsafe umapMAux implementation
...
closes #125
2020-03-14 13:41:14 -07:00
Leonardo de Moura
2e6fac2853
feat: add support for reduceBool and reduceNat in the kernel type_checker
2020-03-14 12:13:22 -07:00
Leonardo de Moura
6f9583987d
feat: add reduceBool and reduceNat "hints"
...
TODO: actual implementation at `type_checker.cpp`
2020-03-14 10:57:19 -07:00
Leonardo de Moura
7bb9638ea6
feat: helper lemmas for equation compiler
2020-03-13 06:39:13 -07:00
Leonardo de Moura
88dc110260
feat: add Squash
2020-03-02 08:30:05 -08:00
Leonardo de Moura
684554e979
feat: add PtrEqResult
2020-02-29 11:00:50 -08:00
Leonardo de Moura
d511ddfa9e
feat: add SemiDeciable and withPtrEqSubsingleton
2020-02-29 09:50:31 -08:00
Leonardo de Moura
cca90b5f9f
chore: simplify withPtrEqDecEq
2020-02-27 11:45:02 -08:00
Leonardo de Moura
db3d9c9284
feat: helper theorems
2020-02-15 16:08:43 -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
b8257f2317
feat: add HasOfNat
...
It is used to encode numerical literals in the new frontend.
2019-12-16 10:28:28 -08:00
Leonardo de Moura
41f4476ca8
feat: add synthetic sorry
2019-12-12 15:18:38 -08:00
Leonardo de Moura
8fd70ee882
feat: add builtin notation
2019-12-11 16:22:23 -08:00
Leonardo de Moura
6cd7d568d3
chore: HasModn ==> HasModN
2019-12-11 15:36:58 -08:00
Leonardo de Moura
1784b0ee67
chore: Heq ==> HEq
2019-12-04 11:20:38 -08:00
Leonardo de Moura
e8bd90a753
fix: performance issue introduced by 2809cea147
2019-11-27 05:43:28 -08:00
Leonardo de Moura
2809cea147
chore: remove DecidableEq workaround
...
We have better indexing now.
2019-11-26 17:30:18 -08:00
Leonardo de Moura
c445199747
chore: library/Init ==> src/Init
...
cc @Kha @dselsam @cipher1024
2019-11-22 06:06:05 -08:00