Commit graph

101 commits

Author SHA1 Message Date
Leonardo de Moura
fdbbdf68fc refactor(library/init/lean/elaborator/basic): make sure ElabState does not depend on parser state
cc @kha
2019-07-19 17:07:39 -07:00
Leonardo de Moura
b2e1ff8b3e feat(library/init): use new "empty match" syntax 2019-07-15 16:25:14 -07:00
Leonardo de Moura
d7a60c0b7f chore(library/init): temporarily disable unquoted symbols 2019-07-12 14:07:33 -07:00
Leonardo de Moura
ea6eee516b chore(frontends/lean): use => instead of := in match-expressions
Motivation: use same separator used in lambda expressions as in
other programming languages.
2019-07-04 11:38:38 -07:00
Leonardo de Moura
009e8ecd59 chore(library/init/control/estate): style 2019-07-02 20:45:25 -07:00
Leonardo de Moura
07cff06b6e chore(library): Π ==> 2019-07-02 17:35:15 -07:00
Leonardo de Moura
a02443d23d chore(frontends/lean): fun x, e ==> fun x => e 2019-07-02 13:22:11 -07:00
Leonardo de Moura
e29bf35d15 chore(frontends/lean/builtin_exprs): remove hard coded (::) notation 2019-07-02 11:01:05 -07:00
Leonardo de Moura
6841e47aa4 chore(frontends/lean/builtin_exprs): remove support for (<infix>) and (<infix> <expr>) notations
In Lean 4, we will support the more general

`a + ·` ==> `fun x, a + x`
`· + b` ==> `fun x, x + b`
`· + ·` ==> `fun x y, x + y`
`f · y` ==> `fun x, f a y`
`g · · b` ==> `fun x y, g x y b`
2019-07-02 08:06:06 -07:00
Leonardo de Moura
91e1d30cf8 feat(frontends/lean/builtin_exprs): use ; in do-notation 2019-06-27 18:00:43 -07:00
Leonardo de Moura
af2d6dbd45 chore(library/init): avoid local attribute 2019-06-24 15:48:11 -07:00
Leonardo de Moura
94bca2b9d8 chore(library/init): mimize use of notations 2019-06-24 15:48:11 -07:00
Leonardo de Moura
40ecbb7cbc feat(library/init/control/monad): mark monadInhabited as an instance 2019-05-20 09:33:17 -07:00
Leonardo de Moura
750384142e perf(library/init/control/estate): missing [inline] 2019-05-11 16:38:25 -07:00
Leonardo de Moura
76f643fbf6 chore(library/init/control/estate): add EState.run and EStage.run' 2019-05-11 16:26:51 -07:00
Leonardo de Moura
251890b490 feat(library/init/control/combinators): add Nat.mfold and rename Nat.for => Nat.fold 2019-05-10 10:47:57 -07:00
Leonardo de Moura
ff47eba9d1 fix(library/init/control/combinators): iterate forward 2019-05-09 07:43:13 -07:00
Leonardo de Moura
fa16920a6a feat(library/init/control/conditional): add HasToBool.toBool, and combinators
New combinator: `bool`, `<&&>` and `<||>`
2019-05-06 14:24:20 -07:00
Leonardo de Moura
4845a2dbc4 feat(library/init/lean/compiler): cleanup 2019-05-03 16:37:08 -07:00
Sebastian Ullrich
c77970a00f refactor(library): remove now-redundant parentheses 2019-05-03 13:57:21 +02:00
Leonardo de Moura
abaf181495 refactor(core): homogeneous andthen
The motivation is to make sure `andthen` and `orelse` are both
homogeneous.
2019-04-24 14:00:34 -07:00
Leonardo de Moura
69e46881cb feat(library/init/control/alternative): more general HasOrelse class 2019-04-24 14:00:20 -07:00
Leonardo de Moura
e7f379fb0f chore(library/init/control/id): spurious [inline] annotations 2019-04-05 14:16:38 -07:00
Leonardo de Moura
5f6106be83 chore(init): add reserve for all control notation at core.lean
cc @kha
2019-04-04 08:53:42 -07:00
Leonardo de Moura
8b145d7884 chore(library/init/control/combinators): use Applicative instead of Monad in relevant combinators 2019-04-03 13:28:08 -07:00
Leonardo de Moura
5f36337322 chore(library/init/control/combinators): remove dependency 2019-04-02 17:21:13 -07:00
Leonardo de Moura
a7069060f5 fix(library/init/control): camelCase conversion typos 2019-03-30 20:54:39 -07:00
Leonardo de Moura
e58949e938 chore(library/init/control/id): rename id monad to Id 2019-03-29 16:45:52 -07:00
Leonardo de Moura
e4f36d14ac chore(library/init/control/combinators): remove weird List.mmap' alias for List.mfor 2019-03-29 11:09:47 -07:00
Leonardo de Moura
9abca5bad9 perf(library/init/control/combinators): improve mfor
`mfor` was creating a bunch of closures.

We have disabled `mrepeat` since we don't have support for marking
which arguments should be considered during specialization.
2019-03-29 11:08:11 -07:00
Leonardo de Moura
49551036ed refactor(library/init): minor changes
Old `Nat.repeat` => `Nat.for`
Old `Nat.mrepeat` => `Nat.mfor`
New `Nat.repeat` has type
```
def repeat {α : Type u} (f : α → α) (n : Nat) (a : α) : α :=
``
`List.repeat` => `List.replicate` (like in Haskell)
Avoid weird `ℕ` in List library
2019-03-29 10:39:00 -07:00
Sebastian Ullrich
c8e11d289f feat(library/init/data/array/basic): new Array operations from syntax-array experiment 2019-03-29 16:02:08 +01:00
Leonardo de Moura
b66f5dcf5c chore(library/init): avoid wf_term_hack 2019-03-27 12:12:21 -07:00
Leonardo de Moura
9d1f4a4f29 chore(library/init/control/state): indentation consistency 2019-03-23 19:03:26 -07:00
Leonardo de Moura
930653f292 chore(library/init): Unit.star => Unit.unit
@kha Our stdlib is starting to match the names we used in our paper :)
2019-03-22 13:06:45 -07:00
Leonardo de Moura
87b066b87e refactor(library/init): move function.lean definitions to core.lean 2019-03-22 09:33:10 -07:00
Leonardo de Moura
e31c3fde56 chore(library/init): remove dead code, lemma => theorem 2019-03-22 09:27:30 -07:00
Leonardo de Moura
dfe15cf743 refactor(library/init): use get and set for State EState and Ref
TODO: use the same naming convention for array reads and writes.
2019-03-21 16:34:32 -07:00
Leonardo de Moura
64a43e1976 chore(library/init/control/combinators): use namespace 2019-03-21 15:11:05 -07:00
Sebastian Ullrich
97e5aa2411 chore(library): s/Punit/PUnit/g etc 2019-03-21 15:06:45 -07:00
Leonardo de Moura
2be87ecd92 chore(library/init): Bool.tt => Bool.true and Bool.ff => Bool.false 2019-03-21 15:06:44 -07:00
Leonardo de Moura
f8113a01eb chore(library): unit => Unit 2019-03-21 15:06:44 -07:00
Leonardo de Moura
62e6341014 chore(*): lowercase file names 2019-03-21 15:06:44 -07:00
Leonardo de Moura
2ea0baeb99 chore(library): use lowercase in imports 2019-03-21 15:06:44 -07:00
Leonardo de Moura
ac27bd092b chore(*): small fixes 2019-03-21 15:06:44 -07:00
Leonardo de Moura
67fb78bb47 chore(*): renaming files 2019-03-21 15:06:44 -07:00
Sebastian Ullrich
beda5f5f43 chore(library): capitalize types and namespaces 2019-03-21 15:06:43 -07:00
Sebastian Ullrich
b939162168 chore(library): switch from snake_case to camelCase 2019-03-21 15:06:43 -07:00
Leonardo de Moura
36faa595f5 refactor(library/init): move inhabited (except ...) to except.lean 2019-03-18 16:48:58 -07:00
Leonardo de Moura
6d0ec3a8c9 refactor(library/init/io): implement io monad using estate monad 2019-03-16 15:34:58 -07:00