Commit graph

1005 commits

Author SHA1 Message Date
Leonardo de Moura
632c98aade feat(library/data/list): cleanup proofs 2017-02-17 19:42:57 -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
7df64e6e7b feat(library/data): add lazy_list 2017-02-08 12:01:46 -08:00
Leonardo de Moura
28cd022486 feat(library/data/vector): add to_list lemmas 2017-02-06 14:57:04 -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
Gabriel Ebner
e839080834 feat(init/meta/async_tactic): add tactic to prove subgoals in a different task 2017-01-28 08:27:23 +01:00
Leonardo de Moura
93ba77f8da chore(library/data): rename tuple => vector 2017-01-26 22:11:10 -08:00
Leonardo de Moura
08a0924fe3 fix(library/data/bitvec): typo 2017-01-25 18:41:32 -08:00
Joe Hendrix
641ccbc846 chore(library/data): remove (list/tuple).firstn in favor of taken 2017-01-25 18:39:54 -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
bbc99d4aa5 feat(library/data/tuple): make sure tuple.nil and tuple.cons can be used in patterns 2017-01-20 18:38:34 -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
Joe Hendrix
767ac42dfe chore(library/data): remove redundent decidable_eq instances 2017-01-17 17:34:10 -08:00
Joe Hendrix
5bc5013f16 chore(library/data/bitvec): remove leftover code 2017-01-17 17:34:05 -08:00
Joe Hendrix
985c3697b9 chore(library/data/list): add back copyright notice 2017-01-17 17:33:59 -08:00
Joe Hendrix
8e2cf491e5 refactor(library/data/list): move theorems to separate modules per lean2 2017-01-17 17:33:45 -08:00
Joe Hendrix
3de9e722e1 feat(library/data/bitvec): additional definitions 2017-01-17 17:33:37 -08:00
Joe Hendrix
d52c3327ba feat(library/data/nat/sub): additional theorems 2017-01-17 17:33:32 -08:00
Joe Hendrix
f244c0e70a feat(library/data/bitvec): add bitvec version of tuple.append 2017-01-17 17:33:24 -08:00
Joe Hendrix
de92ea658a feat(library/data/tuple): add decidable_eq to tuple 2017-01-17 17:33:17 -08:00
Joe Hendrix
9781a0414c feat(library/data/list): add has_decidable_eq to list. 2017-01-17 17:33:09 -08:00
Joe Hendrix
18cbc22791 refactor(library/data/nat): migrate data.nat to lean2 structure 2017-01-17 17:24: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
85f88c4174 refactor(library/data/monad/transformers): move transformers to init 2016-12-31 11:37:13 -08:00
Leonardo de Moura
52db1f1419 feat(library/data/set): add basic lemmas for demoing the AC procedure 2016-12-29 15:29:33 -08:00
Leonardo de Moura
61d007892b feat(library/data/stream): add stream module 2016-12-25 16:40:52 -08:00
Sebastian Ullrich
d95e817a56 refactor(library/data/{bitvec,tuple}): style, conventions, conversions 2016-12-18 13:25:00 -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
85ae8ce307 chore(tools/super): add copyright 2016-12-16 19:06:50 -08:00
Gabriel Ebner
6b15f6cef9 feat(library/tools/super): add super prover 2016-12-16 18:18:13 -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
Leonardo de Moura
c8d6836aa1 feat(library): port nat sub lemmas 2016-12-11 09:46:45 -08:00
Leonardo de Moura
e11fd8820a refactor(library/init): create init.data folder 2016-12-02 14:23:06 -08:00
Leonardo de Moura
11ef0b14fd feat(library/data): add decidable_eq instances for bitvec and tuple 2016-11-23 11:09:24 -08:00
Leonardo de Moura
1ebe2b590d feat(library/data/bitvec): define has_one for (bitvec 0) too. 2016-11-22 10:42:13 -08:00
Leonardo de Moura
b35aef2895 feat(library/data/bitvec): add has_to_string instance 2016-11-22 10:36:45 -08:00
Leonardo de Moura
866eaae8ed refactor(library): minor reorg 2016-11-18 11:33:47 -08:00
Leonardo de Moura
c816b80855 chore(*): don't use upper case letter for type variables, and camelCase for declarations 2016-11-17 14:54:08 -08:00
Leonardo de Moura
47cd475052 feat(library): add debugger 2016-11-16 14:53:13 -08:00
Joe Hendrix
e6d964bef3 feat(library): Port subset of lean2 standard library needed for bitvectors.
This is a minimal port of lean2 libraries needed for the bitvector
library to lean3.
2016-11-15 12:15:49 -08:00
Leonardo de Moura
d97e5b5061 chore(library): remove old files 2016-09-21 11:46:40 -07:00
Sebastian Ullrich
8bbcbb14cf chore(library, tests): use new attribute chaining syntax
sed -E -i 's/(attribute(\s*(\w|\.)+)* \[[^]]+)\] \[/\1, /' {library,tests}/**/*.lean  # repeat as needed
2016-08-16 13:49:03 -07:00
Leonardo de Moura
095585b61c feat(library/init): new notation for sum types 2016-08-16 10:45:08 -07:00
Sebastian Ullrich
fd2c42a8bf chore(library, tests): switch to new attribute declaration syntax
sed -Ei 's/^(\s*)((private |protected )?(noncomputable )?(abbreviation|definition|meta_definition|theorem|lemma|proposition|corollary)\s+\S+\s*)((\s*\[(\S+(\s+[0-9]+)*|priority.*)\])+)\s*/\1attribute \6\n\1\2/' library/**/*.lean tests/**/*.lean
sed -Ei 's/\s+$//' library/**/*.lean  # remove trailing whitespace
2016-08-12 15:36:12 -07:00
Leonardo de Moura
9ac7ee1624 refactor(library/init): well_founded is not a type class anymore 2016-08-08 14:28:45 -07:00
Sebastian Ullrich
c3ea0c1852 refactor(frontends/decl_cmds): simplify definition parsing logic
Also restrict syntax to `inline? (private|protected)? noncomputable?`
2016-08-08 12:44:37 -07:00
Leonardo de Moura
1602a53336 feat(frontends/lean): nary match 2016-08-08 10:04:58 -07:00
Leonardo de Moura
a52221d939 chore(library/data): use mk_dec_eq_instance 2016-08-08 09:34:57 -07:00
Leonardo de Moura
1e6b3614ab feat(frontends/lean): new pattern matching validation
@Kha, we now support variable/constant shadowing in patterns.
A constant may occur in a pattern if it is a constructor or tagged with
the new [pattern] attribute. In the standard library, I have tagged
'add', 'zero', 'one', 'bit0', 'bit1' and 'rfl' with this new attribute.
BTW, arbitrary constants and variables may occur nested in type ascriptions and
inaccessible terms.

Here is an example:

     meta_definition tactic_result_to_string {A : Type} : tactic_result A → string
     | (success a s)   := to_string a
     | (exception ⌞A⌟ e s) := "Exception: " ++ to_string (e ())

I had to use the inaccessible ⌞A⌟ in the example above, otherwise, we would be shadowing the parameter
{A : Type}, and we would get a type error.

The new validation is performed at to_pattern_fn (parser.cpp).
2016-08-07 11:31:11 -07:00
Leonardo de Moura
22612cff8c chore(library): disable sigma.mk notation 2016-08-04 10:44:48 -07:00