Daniel Selsam
5f630e5866
fix(library/init/data/option/basic.lean): remove unused type parameter in instance
2017-02-21 11:00:40 -08:00
Leonardo de Moura
d1d5428808
feat(library): add check_constants.lean validation, cleanup unused names, minor stdlib fixes
2017-02-21 10:45:31 -08:00
Leonardo de Moura
e9a98362d3
feat(library): functional arrays
2017-02-20 22:00:02 -08:00
Leonardo de Moura
1ca5c78cf8
feat(library/tools/mini_crush): improve mini_crush
2017-02-19 18:33:12 -08:00
Leonardo de Moura
b52e8d67be
feat(library/init/meta): simp&intro tactics
2017-02-19 13:02:27 -08:00
Leonardo de Moura
0d22410e2e
feat(library/tactic): add zeta option, refactor simplify config option, allow users to change simplify_config in interactive mode
2017-02-19 12:11:22 -08:00
Leonardo de Moura
4f3fd2cba6
feat(library/init/data/list/qsort): add temp qsort as meta definition
2017-02-17 21:07:09 -08:00
Sebastian Ullrich
b9424975b3
refactor(init/meta): replace dynamically-checked quotes where possible
2017-02-17 19:59:57 -08:00
Leonardo de Moura
632c98aade
feat(library/data/list): cleanup proofs
2017-02-17 19:42:57 -08:00
Sebastian Ullrich
d15591a2d8
feat(library,frontends/lean): expose parser to Lean and use for parsing tactic parameters
2017-02-17 13:45:56 +01:00
Rob Lewis
46a46c9ee0
feat(norm_num): handle nat subtraction as a special case
2017-02-12 17:15:08 -08:00
Leonardo de Moura
2f5159e7eb
feat(library/init/meta): add simple tactics for testing where a declaration was defined
2017-02-11 10:57:06 -08:00
Leonardo de Moura
32e6442d0a
feat(frontends/lean): no global universes in the frontend
2017-02-08 17:23:04 -08:00
Leonardo de Moura
38557b5d6c
feat(library/init/data/nat/basic): missing lemma
2017-02-07 17:21:26 -08:00
Leonardo de Moura
d3db3661af
refactor(library/init/core): simpler has_sep type class with out_param
2017-01-30 18:54:56 -08:00
Leonardo de Moura
04a8518104
refactor(library/init/core): simpler has_insert type class with out_param
2017-01-30 18:50:21 -08:00
Leonardo de Moura
f176c272b4
refactor(library/init/core): simpler has_mem type class with out_param
2017-01-30 18:43:05 -08:00
Leonardo de Moura
41bf46dbba
chore(library/init): adjust Sort vs Type in definitions
2017-01-30 12:50:18 -08:00
Leonardo de Moura
3b38f71f11
fix(library,tests/lean): fix run/interactive tests, and problems in the standard library due to the new interpretation for Type
...
We had to change subtype to use Sort since the axiom
strong_indefinite_description uses it.
see #1341
2017-01-30 11:54:00 -08:00
Leonardo de Moura
77a9feaf70
refactor(frontends/lean): PType ==> Sort
...
see #1341
2017-01-30 11:54:00 -08:00
Leonardo de Moura
bf9f7560f7
feat(frontends/lean): (Type u) can't be a proposition
...
(Type u) is the old (Type (u+1))
(PType u) is the old (Type u)
Type* is the old (Type (_+1))
PType* is the old Type*
The stdlib can be compiled, but we still have > 70 broken tests
See discussion at #1341
2017-01-30 11:54:00 -08:00
Leonardo de Moura
0ba60e62d7
feat(kernel/quotient/quotient): make quotient module robust against users that define their own prelude's
...
Before this commit, an user could define their own prelude and change
the types of quot, quot.mk, quot.lift or quot.ind.
By doing that, they could prove false.
This commit prevents this kind of abuse.
It also modifies the definition of `quot` and avoids the `setoid`
dependency.
The previous `quot` type is now called `quotient`, and it is defined
using the new `quot` type provided by the kernel.
See discussion at #1330
2017-01-24 15:59:38 -08:00
Leonardo de Moura
f7edf601c8
fix(library/init/data/nat/lemmas): avoid bad patterns in nat sub ematch lemmas
...
The attribute [ematch_lhs] instructs Lean to use the left-hand-side of
the conclusion as a pattern.
2017-01-22 19:48:01 -08:00
Leonardo de Moura
d9528ffad8
chore(library/init/data/nat/lemmas): add comment
2017-01-21 03:11:59 -08:00
Gabriel Ebner
03e09db70e
refactor(library/data/bitvec,library/data/tuple): use automation
2017-01-21 09:48:35 +01:00
Leonardo de Moura
0795acaf6a
refactor(library/init/algebra): new transport from multiplicative to additive
...
The motivation is to avoid the problems produced by the "declare as
structure and then tag as class idiom" described in the file ring.lean.
2017-01-18 19:39:53 -08:00
Leonardo de Moura
97b98c58d0
refactor(library): move nat lemmas to library/init/data/nat/lemmas.lean
2017-01-17 17:42:13 -08:00
Leonardo de Moura
df91ae3738
fix(library/string,library/init/data/to_string): handle ASCII control characters
2017-01-11 23:44:33 -08:00
Leonardo de Moura
d0c86f13bb
chore(library/init/data/nat): rename nat.less_than to nat.less_than_or_equal as suggested by Rob
2017-01-11 17:47:49 -08:00
Leonardo de Moura
5d3ac31f25
feat(library/init/data/list/lemmas): add lemmas for POPL demo
2017-01-11 17:07:37 -08:00
Jeremy Avigad
20edc93b17
fix(library/init/data/list/lemmas): fix theorem names, now nil_append and cons_append
2017-01-10 09:10:33 -08:00
Leonardo de Moura
f56250d41e
chore(library/init/data/nat/lemmas): mark nat.add_zero as protected
2017-01-07 14:17:56 -08:00
Leonardo de Moura
db70c78704
feat(library/equations_compiler): make sure automatically generated equational lemmas use internal names
2017-01-06 11:40:34 -08:00
Leonardo de Moura
32cc36214a
feat(library/init/meta/smt_tactic): allow user to select simp attribute to be used during SMT preprocessing, use preprocessing at intros too
2017-01-01 22:26:26 -08:00
Leonardo de Moura
244e115412
chore(library/init/data): add more "short-circuit" instances for int/nat
2016-12-27 11:51:42 -08:00
Leonardo de Moura
61d007892b
feat(library/data/stream): add stream module
2016-12-25 16:40:52 -08:00
Leonardo de Moura
3061d8b9a3
feat(library): add mk_int_val_ne_proof
2016-12-24 15:22:31 -08:00
Leonardo de Moura
58ca9a3059
feat(library/init/data/int/comp_lemmas): add auxiliary lemmas for comparing int numerals
2016-12-24 13:52:48 -08:00
Daniel Selsam
95882c14cd
feat(init/data/string/basic.lean): inhabited string
2016-12-23 14:45:53 -08:00
Leonardo de Moura
6b416b4618
feat(library/vm): use native representation for int in the VM
2016-12-18 15:04:02 -08:00
Leonardo de Moura
d2ffa6c476
fix(library/init/data/int/basic): bug in instance definition
2016-12-18 14:45:55 -08:00
Sebastian Ullrich
d95e817a56
refactor(library/data/{bitvec,tuple}): style, conventions, conversions
2016-12-18 13:25:00 -08:00
Leonardo de Moura
1d0d45d890
feat(library/init/data/to_string): mark list.to_string as protected
2016-12-18 13:17:10 -08:00
Sebastian Ullrich
26ead0e7ac
feat(library/data/int/basic): has_to_string int
2016-12-18 13:15:41 -08:00
Leonardo de Moura
1726d37d4e
fix(library/algebra/order): decidable_linear_order
...
Add fields for decidable_eq and decidable_le.
We need this because a concrete instance may have its own
implementation that is not definitionally equal to
the old ones defined at library/algebra/order.lean.
Without this change, types such as nat and int would
have multiple definitions for decidable_eq and decidable_le
which are not definitionally equal.
2016-12-17 14:01:43 -08:00
Leonardo de Moura
422d43cf47
fix(library/init/data/nat/basic): issue reported by @kha
2016-12-17 13:17:30 -08:00
Gabriel Ebner
6b15f6cef9
feat(library/tools/super): add super prover
2016-12-16 18:18:13 -08:00
Leonardo de Moura
bcf15b0d39
feat(library/init/data/int): import int by default
2016-12-15 16:59:36 -08:00
Jeremy Avigad
8b84af4853
feat(library/init/data/int/basic,order): the integers as an ordered ring
2016-12-15 09:56:22 -08:00
Jeremy Avigad
57dcbcc1c6
feat(library/init/data/nat/lemmas): add facts about order and subtraction
2016-12-15 09:56:09 -08:00