Commit graph

821 commits

Author SHA1 Message Date
Jeremy Avigad
c6c50a61b3 refactor(library/data/set/basic.lean): take advantage of extensionality in sets 2015-04-05 10:12:27 -04:00
Jeremy Avigad
74ff43a543 refactor(library/init/{funext,quot}.lean): adjust comments and headers 2015-04-05 10:11:53 -04:00
Jeremy Avigad
6596217a84 refactor(library/data/set): expand set.lean to set directory 2015-04-05 09:27:15 -04:00
Leonardo de Moura
4ec0e1b07c feat(frontends/lean): improve calc mode
Now, it automatically supports transitivity of the form
    (R a b) -> (b = c) -> R a c
    (a = b) -> (R b c) -> R a c

closes #507
2015-04-04 08:58:35 -07:00
Leonardo de Moura
f1b7021ed0 feat(library/data/list/basic): add more theorems for disjoint predicate 2015-04-03 22:55:16 -07:00
Leonardo de Moura
23a1f5fa4b feat(library/data/list/basic): define nodup and disjoint 2015-04-03 15:44:07 -07:00
Leonardo de Moura
3b0f666646 feat(library/algebra/function): define injective 2015-04-03 15:43:44 -07:00
Leonardo de Moura
01f5dd9fa8 feat(library/data/list): add "erase" function lemmas 2015-04-03 13:18:48 -07:00
Leonardo de Moura
fc0ed5e46c feat(library/data/list/basic): define erase and prove basic theorems 2015-04-02 23:58:47 -07:00
Leonardo de Moura
44ba0e10c0 feat(library/init/logic): add rewrite rules for decidable 2015-04-02 23:31:40 -07:00
Leonardo de Moura
9f3ba66295 feat(library/data/perm): add more theorems 2015-04-02 20:00:46 -07:00
Leonardo de Moura
e47c8c2d9e feat(library/data/list/basic): add quasiequality predicate l₁≈a|l₂, l₁ is equal to l₂ with 'a' inserted somewhere 2015-04-02 20:00:46 -07:00
Leonardo de Moura
5a394ac7ea feat(library/data/perm): add more theorems 2015-04-02 09:21:20 -07:00
Leonardo de Moura
92d6e93971 feat(library/data/perm): cleanup and add calculational proof support to perm 2015-04-02 08:50:05 -07:00
Leonardo de Moura
54136c1ec0 feat(library/data/perm): add list permutation module 2015-04-01 23:00:02 -07:00
Leonardo de Moura
dbe54c4fb5 feat(library/data): define unordered pairs using quotients 2015-04-01 17:30:49 -07:00
Leonardo de Moura
3951b50282 feat(library/data/prod): define swap 2015-04-01 17:30:37 -07:00
Leonardo de Moura
7b64a47221 refactor(library/init): add auxiliary function mk_equivalence 2015-04-01 17:30:20 -07:00
Leonardo de Moura
4fcb560ea7 feat(library/init/funext): add subsingleton_pi instance using funext 2015-04-01 13:05:05 -07:00
Leonardo de Moura
ced742083a feat(library/init/quot): add helper function quot.rec_on_subsingleton₂ 2015-04-01 13:04:41 -07:00
Leonardo de Moura
ed1acd9fb0 feat(library/init): move propext to init/quot, add Jeremy's funext theorem 2015-04-01 12:36:33 -07:00
Leonardo de Moura
0da4f191fc feat(library/init/quot): add rec_on for subsingleton types 2015-04-01 11:57:39 -07:00
Leonardo de Moura
ce5e83eb3e refactor(library/init): move subsingleton to init folder 2015-04-01 11:57:29 -07:00
Leonardo de Moura
b960e123b1 feat(kernel): add experimental support for quotient types 2015-03-31 22:04:16 -07:00
Leonardo de Moura
a52cb009dc refactor(library): reorganize init folder and add setoid 2015-03-31 19:56:05 -07:00
Leonardo de Moura
6e6cc749a8 feat(library/logic/axioms): break prop_complete into propext and em
The user may want to use propext without assuming em.
2015-03-31 18:51:43 -07:00
Leonardo de Moura
e35de54cee feat(library/data/list/basic): add aux theorems 2015-03-31 18:38:05 -07:00
Leonardo de Moura
4c0ce9a619 feat(library/data/list/basic): missing theorems 2015-03-30 19:11:45 -07:00
Leonardo de Moura
87f6fc6b6a feat(library/algebra/ring): remove sorrys 2015-03-30 11:55:48 -07:00
Leonardo de Moura
56af7ba535 feat(library/algebra/ordered_ring): remove sorry 2015-03-30 11:01:26 -07:00
Leonardo de Moura
3d4a02089a feat(library/logic/examples/propositional): add different encoding 2015-03-30 07:13:19 -07:00
Leonardo de Moura
9d34431bb6 feat(library/logic/examples/propositional/soundness): cleanup precedence levels 2015-03-30 05:42:47 -07:00
Leonardo de Moura
5ef88bfbc8 feat(library/logic/examples/propositional): add example based on Floris Coq files formalizing propositional Calculus 2015-03-30 05:12:29 -07:00
Leonardo de Moura
299cbe4b25 feat(library/data/bool): add auxiliary theorems for bool 2015-03-30 04:55:28 -07:00
Leonardo de Moura
42fe87d7cc feat(library/data/list/basic): add sublist predicate 2015-03-30 03:20:42 -07:00
Leonardo de Moura
66bb22f268 feat(library/data/list/basic): cleanup 2015-03-30 02:14:33 -07:00
Leonardo de Moura
ec1a60b02c feat(library/init/logic): add helper function for proving decidable equality 2015-03-30 02:14:26 -07:00
Leonardo de Moura
5b9d52c0dd refactor(library/data/int/order): cleanup 2015-03-28 12:58:40 -07:00
Leonardo de Moura
75621df52b feat(frontends/lean): uniform notation for lists in tactics
closes #504
2015-03-27 17:54:48 -07:00
Rob Lewis
abcc56a2a7 feat(library/algebra):refactor field and ordered_field more appropriately 2015-03-27 11:54:11 -07:00
Rob Lewis
b79f600fbc style(library/algebra/ordered_field):fix indentation, shorten calc statements 2015-03-27 11:52:30 -07:00
Rob Lewis
94b9aaea45 feat(library/algebra/ordered_field): prove more theorems 2015-03-27 11:52:30 -07:00
Rob Lewis
a1028922bd feat(library/algebra/ordered_field): complete proofs of many theorems. Define discrete linear ordered field 2015-03-27 11:52:30 -07:00
Rob Lewis
4099de7754 feat(library/algebra/field): redefine field so that 1/0=0. Many theorems lose hypotheses in discrete setting. 2015-03-27 11:52:29 -07:00
Rob Lewis
365f1ebcb6 feat(library/algebra/ordered_field): prove more theorems for ordered field 2015-03-27 11:45:57 -07:00
Rob Lewis
11f82eacfb feat(library/algebra/ordered_field.lean): add ordered fields 2015-03-27 11:45:57 -07:00
Jeremy Avigad
e019ab5500 fix(library/init/logic.lean): rename inhabited_imp_nonempty 2015-03-25 18:29:06 -07:00
Jeremy Avigad
8e007b3441 feat(library/logic/axioms/hilbert.lean): add 'some' operator 2015-03-25 18:29:06 -07:00
Jeremy Avigad
765f6f21f8 fix(library/algebra/ring.lean): allow degenerate semirings and rings, but not degenerate ordered_semirings and ordered_rings. Closes #478. 2015-03-25 18:29:06 -07:00
Leonardo de Moura
b9e3c474c9 feat(library/tactic): add all_goals tactic
closes #501
2015-03-25 17:42:34 -07:00
Leonardo de Moura
74b28f6ad9 feat(library,hott): new notation for typeof 2015-03-24 18:35:21 -07:00
Leonardo de Moura
9b577a7b3e feat(frontends/lean): add 'migrate' command 2015-03-14 21:48:00 -07:00
Leonardo de Moura
ba913876e0 feat(library/data/list/basic): enforce name conventions, add foldl_eq_foldr theorem 2015-03-14 13:06:09 -07:00
Leonardo de Moura
bed0d6df6b fix(frontends/lean/elaborator): inaccessible over coercion 2015-03-13 23:04:45 -07:00
Leonardo de Moura
27e58dc534 refactor(library/data): cleanup vector and list modules 2015-03-13 22:25:21 -07:00
Jeremy Avigad
ec05e83a2a feat(library/data/int/div.lean): add theorems about div 2015-03-12 20:54:49 -07:00
Leonardo de Moura
14aeac180a refactor(library/algebra/category/constructions): more rewrite tactic tests 2015-03-12 20:27:11 -07:00
Leonardo de Moura
d7c6028a3e refactor(hott,library): use/test the rewrite tactic in more places
The performance also improved.
2015-03-12 17:25:31 -07:00
Leonardo de Moura
167675a397 feat(library/data/vector): add nth and decidable_eq 2015-03-09 08:41:36 -07:00
Leonardo de Moura
a628836f28 feat(library/data/vector): add theorems 2015-03-08 22:51:11 -07:00
Leonardo de Moura
f6cd604a44 chore(library/data/bool): enforce naming conventions 2015-03-06 19:20:48 -08:00
Leonardo de Moura
4fdac068b0 chore(library/data/vector): cleanup vector proofs 2015-03-06 17:37:03 -08:00
Leonardo de Moura
1490bdad49 feat(frontends/lean): add version of 'exact' tactic (sexact) that enforces goal type during term elaboration 2015-03-06 17:34:45 -08:00
Leonardo de Moura
78d8e79000 fix(library/data/num): naming convention 2015-03-05 23:48:08 -08:00
Leonardo de Moura
fa201bce9b feat(library/algebra/group): cleanup some proofs 2015-03-05 18:46:07 -08:00
Leonardo de Moura
368f9d347e refactor(frontends/lean): approach used to parse tactics
The previous approach was too fragile

TODO: we should add separate parsing tables for tactics
2015-03-05 18:11:21 -08:00
Leonardo de Moura
57ec52b6f1 refactor(library/data/fin): cleanup pattern matching equations 2015-03-05 14:42:42 -08:00
Leonardo de Moura
e4060a5614 feat(frontends/lean): do not force user to type the function name in the left-hand-side of recursive equations 2015-03-05 12:08:36 -08:00
Leonardo de Moura
53df3d86ee feat(library/data/list/basic): use 'show' instead of 'change' tactic 2015-03-04 20:40:06 -08:00
Leonardo de Moura
b8afba47ad feat(library/data/list/basic): add some map, foldl, foldl, zip and unzip 2015-03-04 20:30:19 -08:00
Leonardo de Moura
c78734874d feat(library/data/list/basic): list A has decidable equality if A has 2015-03-04 18:48:13 -08:00
Jeremy Avigad
c09f1c4eaf feat(*.md): create markdown files for HoTT library, update ones in standard library 2015-03-04 18:33:18 -08:00
Leonardo de Moura
cc2d988aea feat(library/data/num): prove many theorems for pos_num.lt and pos_num.le 2015-03-04 18:30:31 -08:00
Leonardo de Moura
f60fc5183a feat(library/data/bool): add auxiliary theorems 2015-03-04 18:30:31 -08:00
Floris van Doorn
5b922aad5c feat(init): add 'do' tactic 2015-03-04 00:17:41 -05:00
Leonardo de Moura
6ad469e717 fix(library/algebra/order): duplicate argument 2015-03-03 17:04:26 -08:00
Leonardo de Moura
e2bef88a33 fix(library/algebra/order): duplicate arguments
There is a 'include s' in the section
2015-03-03 16:52:12 -08:00
Leonardo de Moura
efd096e85c feat(library/init/num): define sub and le for binary numerals 2015-03-03 15:55:16 -08:00
Leonardo de Moura
b254c78c44 refactor(library/algebra): move bundled structures to separate module
Motivation: performance.
After this commit, the bundled instances do not participate in the
class/instance resolution if we do not import algebra.bundled.
2015-03-02 18:45:08 -08:00
Leonardo de Moura
02d3f7c37c refactor(library/data/list): use 'change' tactic 2015-03-01 14:27:22 -08:00
Leonardo de Moura
df13588b93 chore(library/data): remove unnecessary parentheses 2015-03-01 14:18:36 -08:00
Leonardo de Moura
ca57b43698 feat(library/tactic): add 'change' tactic 2015-03-01 14:15:39 -08:00
Leonardo de Moura
a1066ebdf4 feat(library/algebra/ordered_group): improve performance using rewrite tactic 2015-03-01 11:38:27 -08:00
Leonardo de Moura
18ab9ce4e1 feat(library/algebra/ordered_ring): improve performance using rewrite tactic 2015-03-01 10:10:44 -08:00
Leonardo de Moura
9c0375b6e2 feat(library/init/logic): add transitivity theorems for = + <-> 2015-03-01 10:09:46 -08:00
Leonardo de Moura
e8ef1f97b6 feat(library/data/set): use Prop instead of bool when defining set 2015-03-01 08:23:39 -08:00
Leonardo de Moura
25df44ea43 refactor(library/algebra/category/morphism): restore previous (and more readable) proofs 2015-03-01 06:54:52 -08:00
Rob Lewis
10f1232296 feat(library/algebra/field): fix broken theorems 2015-02-28 08:49:28 -08:00
Rob Lewis
8ef2849b67 feat(library/algebra/fields): prove more theorems about division rings 2015-02-28 08:49:28 -08:00
Jeremy Avigad
a8cf58d97c feat(library/algebra/field): define discrete field 2015-02-28 08:49:28 -08:00
Rob Lewis
eef2e99a1c feat(library/algebra/field): add theorems about division rings 2015-02-28 08:49:05 -08:00
Rob Lewis
b8f0341119 feat(library/algebra): add field.lean 2015-02-28 08:48:48 -08:00
Floris van Doorn
23a248ab28 style(hott): let inverse notation have higher binding power than application 2015-02-28 01:16:23 -05:00
Floris van Doorn
9201bd7ca6 feat (hott/init): move nat.of_num to init.num and make it reducible outside namespace nat
This is so that init.trunc can already use nat.of_num.
Also make nat.of_num reducible in the standard library
Also make gt and ge abbreviations
2015-02-26 12:28:57 -05:00
Leonardo de Moura
68110faa4d feat(frontends/lean/inductive_cmd): allow '|' in inductive datatype declarations 2015-02-25 17:00:10 -08:00
Leonardo de Moura
5ca52d81ec feat(frontends/lean): ML-like notation for match and recursive equations 2015-02-25 16:20:44 -08:00
Leonardo de Moura
3c24461e51 refactor(*): modify '|' binding power, use 'abs a' instead of '|a|', and '(a | b)' instead of 'a | b' 2015-02-25 15:18:21 -08:00
Leonardo de Moura
c04c610b7b feat(frontends/lean): add 'assert H : A, ...' as notation for 'have H [visible] : A, ...' 2015-02-25 14:30:42 -08:00
Jeremy Avigad
e513b0ead4 refactor(library,hott): rename theorems for decidable and inhabited
The convention is this: we use e.g. nat.is_inhabited and nat.has_decidable_eq
for these two purposes only, to avoid clashing with "inhabited" and "decidable_eq"
in a namespace. Otherwise, we use "decidable_foo" and "inhabited_foo".
2015-02-25 14:05:07 -08:00
Jeremy Avigad
e555531eb6 feat(library/data/int/div): start on div for integers 2015-02-25 14:05:07 -08:00