Leonardo de Moura
fa6697ffa8
feat(frontends/lean/pp): add option pp.annotations for debugging purposes
2018-01-30 12:48:48 -08:00
Leonardo de Moura
28b8020995
fix(library/type_context): bug in the unifier
...
One of the approximations used was generating type incorrect terms.
2018-01-30 12:48:48 -08:00
Leonardo de Moura
39f1cc0bab
test(tests/lean/run): add new tests exposing bug in the unifier
...
This commit also documents the problem at type_context.cpp, and
describes a potential solution.
2018-01-30 12:48:48 -08:00
Leonardo de Moura
aa1473a6c8
refactor(library/type_context): add process_assignment_fo_approx
2018-01-30 12:48:48 -08:00
Sebastian Ullrich
0f16448bae
chore(src/CMakeLists): expose LEAN_IGNORE_OLEAN_VERSION as cmake option CHECK_OLEAN_VERSION
2018-01-30 10:40:07 +01:00
Mario Carneiro
316d67c3be
fix(library/init/data/setoid): fix redundant parameter
...
`setoid.refl` has two instances of `setoid A` in it
2018-01-28 15:49:35 -08:00
Gabriel Ebner
aac833c8d4
test(tests/lean/run): test for mk_inj_eq
2018-01-28 09:10:26 -08:00
Leonardo de Moura
9331945e8b
fix(library/init/meta/interactive): alternative fix for issue at #1913
...
We also document the problem to make sure we don't spend time again
trying to understand the workaround. This is an instance of a bigger
problem that should be addressed later.
2018-01-28 09:07:11 -08:00
Leonardo de Moura
1c61129d40
feat(library/init/meta/tactic): expose approx at unify and is_def_eq tactics
2018-01-25 22:27:18 -08:00
Leonardo de Moura
77ae133baa
fix(library/type_context): preprocess_class
...
@kha This commit fixes the bug we discussed on slack.
I had to repair one of the tests. The broken test made me
realize that if we use the unbundled approach to define something like
`is_semiring`
```
class is_semiring (α : Type) (plus : α → α → α) (mul : α → α → α) (zero : out_param α) (one : out_param α) :=
...
```
Then, to retrieve a `is_semiring` instance, we need to know `α`, `plus`
and `mul`. This is problematic because we may be in a context where one
of them cannot be inferred. This would force user to manually provide
the missing (input) parameter. We are not considering the unbundled
approach for complex algebraic structures such as `semiring`, `ring` and
`field`, but I wanted to document this limitation here since we may face
it in other type classes.
I think it is a bad idea to add back `inout_param` and have both:
`inout_param` and `out_param`. The previous `inout_param` created
many instabilities and hard to diagnose failures.
2018-01-24 17:30:04 -08:00
Leonardo de Moura
b5e2e8ed92
doc(library/module): document the persistent set_option discussion
...
cc @kha
2018-01-24 17:12:40 -08:00
Leonardo de Moura
adae5b9fa1
chore(library/mpq_macro): delete mpq_macro
2018-01-24 15:24:28 -08:00
Leonardo de Moura
1e626e382f
chore(frontends/smt2): remove SMT2 frontend
2018-01-24 15:21:52 -08:00
Leonardo de Moura
2ae080a6d2
doc(library): comment code that need to be refactored for AC matching and algebraic normalizer
2018-01-24 15:09:11 -08:00
Leonardo de Moura
5182b5a081
chore(library/tactic): remove unnecessary dependency
2018-01-24 13:35:47 -08:00
Leonardo de Moura
d4e1a4a50a
chore(library/system/io): tactic.run_io ==> tactic.unsafe_run_io
2018-01-24 10:32:32 -08:00
Leonardo de Moura
0d83a74b26
fix(library/io,tests/lean): io monad command line arguments, and tests
2018-01-23 15:24:41 -08:00
Leonardo de Moura
0ad5497462
refactor(library/io): make io easier to extend and use
2018-01-23 15:03:31 -08:00
Leonardo de Moura
cee73e8309
chore(util/lp): remove lp module
...
It has been moved to Z3.
2018-01-23 12:18:30 -08:00
matt rice
1538615e8c
feat(util): allow some math alphanum symbol latin letter variations
...
Add the Script, Double-struck, and Fractur blocks from,
https://unicode.org/charts/PDF/U1D400.pdf
to is_letter_like() so they may be bound to variables.
2018-01-23 11:20:05 -08:00
Sebastian Ullrich
19f8bfd9eb
chore(doc/make): add platform-generic build instructions
2018-01-23 11:14:18 -08:00
Sebastian Ullrich
3a1ede2d73
refactor(leanpkg/config_vars): replace with core lib
2018-01-23 11:14:18 -08:00
Sebastian Ullrich
5c6d15c43d
chore(CMakeLists): clean-olean: clean leanpkg as well
2018-01-23 11:14:18 -08:00
Sebastian Ullrich
18c2e3739a
feat(library/module_mgr): save .olean files of non-dirty .lean files in server mode
...
Note, currently there is no way for a dirty file to become non-dirty again
2018-01-23 11:14:18 -08:00
Sebastian Ullrich
67fc899d0d
feat(shell/server): sync: default "content" to file content
...
This mostly simplifies debugging and testing
2018-01-23 11:14:18 -08:00
Sebastian Ullrich
e8c057f1de
refactor(library/module_mgr): simplify module loading code
2018-01-23 11:14:18 -08:00
Sebastian Ullrich
1ee945a31f
fix(library): store and validate Lean version of .olean files
...
Fixes #1770
2018-01-23 11:14:18 -08:00
Leonardo de Moura
eef29f6a31
fix(build): cmake_policy(SET CMP0054 NEW) is only available on cmake >= 3.1
...
See: https://cmake.org/cmake/help/v3.1/policy/CMP0054.html
2018-01-22 18:10:54 -08:00
Nuno Lopes
0d820fa23d
fix(build): fix Cygwin build
2018-01-22 18:07:04 -08:00
Leonardo de Moura
eff960d498
feat(library/ac_match): add AC match design notes
2018-01-22 18:04:23 -08:00
Leonardo de Moura
ba5bdf639b
feat(library/init/algebra/classes) add is_symm_op type class
2018-01-22 15:43:30 -08:00
Leonardo de Moura
368f17d0b1
feat(library/tactic/simplify): add simp!
2018-01-16 17:29:24 -08:00
Leonardo de Moura
91b9e96582
feat(library/tactic/eqn_lemmas): store flag indicating whether a declaration has only simple equation lemmas or not
2018-01-16 16:55:05 -08:00
Leonardo de Moura
c195d7c2a1
feat(library/tactic/simp_tactic): improve mk_simp_attr
...
- An new simp attribute may depend on other existing attributes
- Add `[norm]` simp attribute. It is an extension of the default `[simp]` attribute.
It should be used to add extra rules for normalizing goals.
These extra rules are used to produce normal forms and/or reduce the
number of constants used in a goal. Here is an example coming from a
discussion with @kha. When working with monads, we may want to
eliminate `<$>` by using the lemma `f <$> x = x >>= pure ∘ f`.
This lemma is in the `[norm]` simp set, but it is not in `[simp]`
2018-01-16 16:47:30 -08:00
Mario Carneiro
147436bfb8
fix(init/data/nat/lemmas): generalize nat.iterate to (Sort u)
2018-01-16 11:37:33 -08:00
Leonardo de Moura
6635f6c8c1
chore(library/init/coe): document why @[reducible] annotation is needed
2018-01-16 11:31:43 -08:00
Sebastian Ullrich
c64284a377
perf(init/data/string/ops): make string.split linear
2018-01-15 10:51:27 +01:00
Sebastian Ullrich
f3b0cb936f
feat(util/lean_path): detect all instances of ambiguous imports
2018-01-15 09:58:19 +01:00
Sebastian Ullrich
1d1e997809
chore(doc/changes): document new leanpkg features
2018-01-15 09:58:19 +01:00
Sebastian Ullrich
837f015a14
chore(leanpkg/README): remove text redundant with the reference
2018-01-15 09:58:19 +01:00
Sebastian Ullrich
18fb3244e7
feat(leanpkg): add help command
2018-01-15 09:58:19 +01:00
Sebastian Ullrich
49e1cf9a79
feat(leanpkg): leanpkg new/init: initialize git repository to correct branch
2018-01-15 09:58:19 +01:00
Sebastian Ullrich
f047a2b73b
feat(leanpkg): leanpkg add/install user/repo shorthand
2018-01-15 09:58:19 +01:00
Sebastian Ullrich
ff346f875b
feat(init/data/string/ops): add string.split
2018-01-15 09:58:19 +01:00
Sebastian Ullrich
94cb177677
feat(leanpkg): never delete information from _target
...
Some people seem to be doing development inside it
2018-01-15 09:58:19 +01:00
Sebastian Ullrich
b354feb8b9
fix(leanpkg): mandate path = "src"
...
Fixes #1880
2018-01-15 09:58:19 +01:00
Leonardo de Moura
cebde17bec
feat(library/tactic/simplify): simp reduces c a_1 ... a_n = c b_1 ... b_n into a_1 = b_1 /\ ... /\ a_n = b_n
2018-01-12 18:18:56 -08:00
Leonardo de Moura
9eb22cd548
feat(library/constructions/injective): automatically generate auxiliary lemma *.inj_eq for constructors
...
We are going to use these lemmas in the simplifier.
2018-01-12 16:41:12 -08:00
Leonardo de Moura
58fce78282
feat(library/init/meta/interactive): add interactive tactic subst_vars
2018-01-12 14:37:11 -08:00
Leonardo de Moura
5bad6d5372
feat(library/init/meta/tactic): subst supports heterogeneous equalities that are actually homogeneous
2018-01-12 14:32:49 -08:00