Sebastian Ullrich
10982cd94d
chore(init/category/lift): document monad_run
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
afe3078b4b
chore(init/category): final touches
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
f4c2499063
chore(init/category/transformers): remove now-unused monad_transformer class, rename to lift.lean
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
22d15bac7f
chore(changes.md): changelog
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
b5c9569d86
feat(init/category): add cont_t monad transformer
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
c653292422
feat(init/category/monad_fail): make m in fail implicit
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
ace8ef286a
feat(init/category): even more refactorings, simp lemmas
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
5599c9ca67
feat(init/category): misc enhancements from the tactic refactoring
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
4742d44a74
feat(init/category/state): add monad_except instance for state_t
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
b372dd94d3
feat(init/category/transformers): add monad_run class
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
69cfdbd290
refactor(init/category): make all monad transformers structures, replace monad classes with has_monad_lift_t wrappers
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
8c157eba64
refactor(init/category/state): replace monad_state with monad_state_lift
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
248e035402
fix(init/category/transformers): make has_monad_lift more universe polymorphic
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
1a0363c7c2
feat(init/category/state): add run method, rename with_state
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
c36393066e
feat(init/category): introduce monad_functor and implement it for reader, state, and except
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
7565ce380f
feat(init/category): some helper functions
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
e24b364d0e
refactor(init/category/state): change monad_state.state to monad_state.embed taking state
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
788e8695eb
refactor(init/category/state): replace modify/put (returning unit) with modify'/put' (returning punit)
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
7f0b3b7628
feat(init/category): add monad_reader, reader, reader_t
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
d7c6bb4b99
feat(init/category/except): monad_except class
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
0ab672e304
feat(init/category): except_t monad transformer
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
b28a0392f7
feat(frontends/lean/structure_cmd): allow implicitness infer annotation and parameters in field declaration
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
940aca1ec3
refactor(init/category/lawful): unbundle lawful classes
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
e9b2d1fdc8
refactor(init/category/state): remove dependency on tactic framework
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
159b45c74f
refactor(init/category/state): introduce monad_state
...
* rename `read/write` to `get/put`, as in Haskell
* define `state` as `state_t id`
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
c799a52411
feat(init/category/id): id is a monad
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
8e2e101e0b
refactor(init/category/lawful): prove seq_assoc by normalization to bind
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
1c6861528b
refactor(init/category): move monad laws into separate type classes defined after the tactic framework
2018-03-20 14:58:35 -07:00
Sebastian Ullrich
63382cf7e3
chore(init/category/transformers): move monad_transformer, monad_lift out of monad namespace, make universe polymorphic
2018-03-20 14:58:35 -07:00
Leonardo de Moura
c17e5b913b
doc(tmp/lean4): expand explicit reference counter section
2018-03-19 21:42:16 -07:00
Leonardo de Moura
f81f0452ee
doc(tmp/lean4): explicit reference counting
2018-03-19 19:18:02 -07:00
Leonardo de Moura
ae60d2bf48
doc(tmp/lean4): add SSA/SIL remark
2018-03-19 18:42:34 -07:00
Leonardo de Moura
78accd059c
doc(tmp/lean4): object memory layout
2018-03-19 18:33:35 -07:00
Leonardo de Moura
e7760eaa0b
doc(tmp/lean4): expr, level, name, ... in Lean
2018-03-19 17:39:46 -07:00
Leonardo de Moura
785466507a
doc(tmp/lean4): document the inline issue
2018-03-19 17:26:31 -07:00
Leonardo de Moura
d52b5a9f4f
doc(tmp/lean4): update notes
2018-03-19 17:21:11 -07:00
Sebastian Ullrich
07bb7d809b
chore(.travis.yml): increase travis_wait timeout
...
By default, `travis_wait` kills the process after 20 minutes, so this could make test runs fail that actually would have succeeded before the change. Increase to maximum job runtime of 60 minutes.
2018-03-13 17:17:55 +01:00
Leonardo de Moura
16f28315ee
doc(lean4): design notes
...
@kha I added some notes for the Lean4 branch. It is very unpolished.
2018-03-09 17:48:00 -08:00
Sebastian Ullrich
29d1911f50
chore(.appveyor.yml,src/CMakeLists): make cxx and linker flags configurable and use them to disable slow LTO on AppVeyor
2018-03-08 10:30:58 -08:00
Sebastian Ullrich
340e056dee
chore(shell/CMakeLists): copy mpir.dll when building with MSVC
...
Also simplify code a bit
2018-03-08 10:30:47 -08:00
Sebastian Ullrich
854475808d
chore(shell/CMakeLists): make bin/lean a proper target
...
This ensures that it will be re-copied when removed, which is a quick way of
switching between debug and release builds.
2018-03-08 10:30:38 -08:00
Sebastian Ullrich
94b45cf48a
chore(.appveyor.yml): support MSVC
2018-03-08 10:30:28 -08:00
Sebastian Ullrich
7c8f884699
chore(README,doc/faq): The Gitter chat room has been migrated to Zulip
2018-03-08 10:06:37 -08:00
Sebastian Ullrich
fbe6b70295
perf(library/module_mgr): fix module_info reference cycle
2018-03-08 10:06:20 -08:00
Sebastian Ullrich
191d1e7321
chore(shell/server): sync_output command for debugging
2018-03-08 10:06:09 -08:00
Leonardo de Moura
2e66449feb
fix(library/tactic/tactic_state): build
2018-03-08 09:58:07 -08:00
Leonardo de Moura
169cd87dbe
feat(library/system/io): add io.run_tactic
...
@nunoplopes @aqjune
I had to add a new primitive to allow you to execute a tactic from the
`main` function. The `main` function is in the `io` monad. The new
primitive has type:
```
meta constant io.run_tactic {α : Type} (a : tactic α) : io α
```
I also added a new test that shows how to use it.
The test displays all declarations that have the `nat` prefix.
cc @kha
2018-03-07 12:15:26 -08:00
Leonardo de Moura
832d2358f1
test(tests/lean/run/1942): closes #1942
...
It seems the assertion violation has been fixed by recent changes.
2018-03-06 17:43:08 -08:00
Leonardo de Moura
2889482fe9
fix(library/init/meta/interactive): fixes #1943
2018-03-06 17:36:18 -08:00
Nuno Lopes
9152aaa7d6
fix(bit_tricks): make sure no one calls math.h's log2()
...
this fixes the bit_trick test with MSVC
2018-03-06 11:21:28 -08:00