Leonardo de Moura
0bcf5c8f5d
chore(*): remove algebra
2018-04-10 15:53:14 -07:00
Leonardo de Moura
7aaac31e35
chore(library/init/data/nat): remove dependency
2018-04-10 15:48:13 -07:00
Leonardo de Moura
b0e49535fa
chore(*): remove transfer and coinductive predicates
2018-04-10 13:38:18 -07:00
Leonardo de Moura
c03d351744
chore(library/init/data/int): keep only definitions
2018-04-10 13:29:06 -07:00
Leonardo de Moura
a023128738
chore(*): reduce corelib
2018-04-10 13:11:40 -07:00
Leonardo de Moura
41d1293b38
chore(*): reduce corelib
2018-04-10 12:33:09 -07:00
Leonardo de Moura
b14d69b1d7
chore(*): remove converter, ac_tactics, hole_commands, rbtree/rbmap proofs, bitvec
2018-04-10 12:25:51 -07:00
Leonardo de Moura
a2f0bf7c1b
chore(*): disable SMT tactic framework and backward chaining
2018-04-10 12:05:51 -07:00
Leonardo de Moura
bcaa0b2ad3
refactor(library/typed_expr): do not use macros for implementing typed_expr
...
Remark: in Lean4, we will not have macro_defs.
2018-04-09 15:16:46 -07:00
Sebastian Ullrich
8f55ec4c50
fix(init/core): remove out_param from has_pow
...
With the current elaboration scheme, out_params and coercions do not mix well,
as evidenced by the following example by @digama:
```
variables {α : Type*} [group α]
def gpow : α → ℤ → α := sorry
instance group.has_pow : has_pow α ℤ := ⟨gpow⟩
example (a : α) : a ^ 0 = 1 := sorry -- failed to synth ⊢ has_pow α ℕ
example (a : α) : a ^ (0:ℕ) = 1 := sorry -- ok, coerces
example (a : α) : a ^ (0:ℤ) = 1 := sorry -- ok
```
The issue is that
* we first try to solve `has_pow ?α ?β`, which is postponed
* then infer `?α = nat` from `a`
* then at some point call `elaborator::synthesize()` and default `β` to `nat`
* then try to solve `has_pow nat nat`, which fails at `int =?= nat`
2018-04-04 13:05:59 +02:00
Leonardo de Moura
d387103aa2
fix(library/init/core): closes #1951
...
- Add has_pow type class
- Make `^` notation right associative
2018-03-29 16:25:47 -07:00
Sebastian Ullrich
3fefe94757
refactor(library/init/core,library/init/unit): make unit an abbreviation of punit.{0}
2018-03-27 10:33:04 -07:00
Sebastian Ullrich
a41d797900
fix(init/category/state): lift unintended universe restriction
2018-03-26 13:00:23 +02:00
Sebastian Ullrich
0f7a8907c7
fix(init/data/default): add missing files
2018-03-22 00:15:56 +01:00
Sebastian Ullrich
0c0646f03b
chore(leanpkg/lean_version): recognize nightlies as releases separate from master
2018-03-20 15:14:45 -07:00
Sebastian Ullrich
28f4143be3
feat(init/category/except): add monad_except_adapter for change the error type of a monad stack
2018-03-20 14:58:37 -07:00
Sebastian Ullrich
4593d7fcda
feat(init/category/reader): add transitive monad_except instance
2018-03-20 14:58:37 -07:00
Sebastian Ullrich
277f8b7929
perf(init/category/reader): add inline annotations
2018-03-20 14:58:37 -07:00
Sebastian Ullrich
7daf6a2133
refactor(init/category): change _functor classes into new _adapter classes, add docs
2018-03-20 14:58:37 -07:00
Sebastian Ullrich
6b88f84cd6
refactor(init/category/reader): replace monad_reader_lift with Haskell's MonadReader class
2018-03-20 14:58:37 -07:00
Sebastian Ullrich
70167def6f
refactor(init/category/state): replace monad_state_lift with Haskell's MonadState
...
* does not leak information about the inner monad via out_param
* can be derived from an inner `monad_state` instance
2018-03-20 14:58:37 -07:00
Sebastian Ullrich
112bddd343
chore(init/category/lift): remove unused monad_run.unrun field
2018-03-20 14:58:37 -07:00
Sebastian Ullrich
8fce7a342d
chore(init/category/monad_fail): remove monad superclass for consistency with other monad classes
...
Also remove misleading TODO
2018-03-20 14:58:37 -07:00
Sebastian Ullrich
23884d2863
refactor(init/data/option_t): move to init/category and adapt style
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
bcbe5ec9f4
refactor(init/category/functor): merge has_map into functor
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
3adc5113cb
feat(init/category/state): make zoom work linearly
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
720e8c2640
doc(init/category/except): add reference to monad_except and move to end
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
da5c8e21df
chore(init/category/cont): move to test
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
bac0f66ca0
chore(init/category/combinators): remove unnecessary monad.lift{n}
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
e6f5ce1303
doc(init/category/reader): add docs and test
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
e044030cd2
doc(init/category/cont): add docs and test
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
c104d5d34b
doc(init/category/state): add docs and tests
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
97496509d7
feat(init/data/option_t): add has_monad_lift instance
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
4c877cff07
doc(init/category/lift): expand docs and note similarities to layers package
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
36f623af42
feat(init/category/reader): lift alternative through reader_t
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
1bd73f191f
style(init/category): consistently use Greek letters for type parameters (well, except for m)
2018-03-20 14:58:36 -07:00
Sebastian Ullrich
c56606d06a
refactor(init/category/state): remove flipped state_t.run
2018-03-20 14:58:36 -07:00
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
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