Commit graph

796 commits

Author SHA1 Message Date
Jeremy Avigad
eaf886cb5a refactor(library/algebra/group_bigops,library/*): put group_bigops in 'finset' namespace, in preparation for set versions 2015-08-08 04:23:52 -07:00
Jeremy Avigad
31eed7faea feat(library/data/set,finset): finish porting properties of card to sets 2015-08-08 04:23:52 -07:00
Jeremy Avigad
1b0773b604 feat(library/data/set/basic,finite): add more finiteness facts 2015-08-08 04:23:52 -07:00
Leonardo de Moura
06f20694c8 fix(frontends/lean/builtin_exprs): fixes #768 2015-08-08 04:20:17 -07:00
Jeremy Avigad
7df59d8b12 feat(library/data/set/finite): add more finiteness facts 2015-08-07 13:45:16 -07:00
Jeremy Avigad
eb181485eb feat(library/data/set/finite): start the theory of finite sets 2015-08-07 13:45:16 -07:00
Jeremy Avigad
d6bde18b46 feat,refactor(library/data/{finset,set}/*,src/emacs/lean-input.el): add powerset and notation, and some tidying 2015-08-07 13:45:15 -07:00
Jeremy Avigad
7b4ebb9866 feat,refactor(library/data/finset/*): add priorities for finset notation, add some theorems 2015-08-07 13:45:15 -07:00
Rob Lewis
11bb342819 style(library/data/real): clean up proofs in basic.lean 2015-08-07 13:30:23 -07:00
Jeremy Avigad
9ff0097223 refactor(library/algebra/{lattice,order},library/data/nat): split lattice from order, make nat an instance of discrete linear order 2015-08-03 22:41:56 -04:00
Jeremy Avigad
0def951efa refactor(library/data/nat/sub,*): get rid of diff, tidy some max and min theorems 2015-08-03 22:41:56 -04:00
Rob Lewis
e004ed8cba feat(library/algebra): add one directional versions of iff theorems 2015-08-03 17:16:18 -04:00
Rob Lewis
78942a0689 fix(library/data/real): fix num -> rat -> real coercion chain 2015-08-03 16:38:42 -04:00
Rob Lewis
4dd4d7b3b8 style(library/data): clean up proofs in pnat and real 2015-08-03 15:02:03 -04:00
Rob Lewis
5c2fe1c3af refactor(real/complete): put limit sequence construction in a section 2015-08-03 11:20:26 -04:00
Rob Lewis
ba2dda08d3 feat(library/data/real): prove infimum property" 2015-08-03 11:16:56 -04:00
Leonardo de Moura
60ba3d15ff feat(library/data/matrix): add basic matrix module 2015-08-01 19:33:31 +01:00
Jeremy Avigad
36c7aad6ee fix(library/data/rat/basic): define pow before migrate 2015-08-01 18:23:36 +01:00
François G. Dorais
343b9e62c7 feat(library/data/fin): add foldl and foldr 2015-08-01 18:17:08 +01:00
Leonardo de Moura
1f304ad4b9 fix(frontends/lean/pp): pretty printing 'binder'
This commit also replaces many occurrences of 'binders' with 'binder'.
2015-07-31 11:27:38 -07:00
Leonardo de Moura
3b742c5d69 refactor(library/data/real/complete): use 'em' instead of 'decidable.em'
It is slightly faster since it avoids type class resolution.
It looks more readable too.
Note that em is not axiom anymore. It is a theorem based on choce.
2015-07-31 10:57:53 -07:00
Leonardo de Moura
381c3d5e35 feat(library/data/vec): transfer more theorems from list to vec 2015-07-31 09:59:58 -07:00
Leonardo de Moura
a53ac25ca8 chore(library): remove outdated comments 2015-07-31 08:37:24 -07:00
Rob Lewis
01af780b6e feat(library/data/real): clean up proof of supremum property 2015-07-31 08:28:37 -07:00
Rob Lewis
0c65468db3 feat(library/data/real): remove remaining sorrys from proof of supremum property 2015-07-31 08:28:36 -07:00
Rob Lewis
25aa5b3939 feat(library/data/nat): define least function for nat 2015-07-31 08:28:36 -07:00
Rob Lewis
7d6b595289 feat(library/data/real): complete proof of the supremum property pending two integer theorems 2015-07-31 08:28:36 -07:00
Rob Lewis
954e30b59a feat(library/data/real): add more theorems to reals 2015-07-31 08:28:36 -07:00
Rob Lewis
f929f82cb4 feat(library/data/real): fill in remaining sorrys in supremum property proof 2015-07-31 08:28:36 -07:00
Rob Lewis
b4b08aca32 feat(library/data/real): more progress toward supremum property 2015-07-31 08:28:26 -07:00
Rob Lewis
2fdf1e599e feat(library/algebra/ordered_group): add missing theorems to ordered group 2015-07-31 09:10:57 -04:00
Rob Lewis
ebbad9e70d chore(library/data/real): fill in sorrys in supremum property proof 2015-07-31 09:10:57 -04:00
Rob Lewis
7a4947cfe1 feat(library/algebra/real): significant progress toward supremum property 2015-07-31 09:10:57 -04:00
Rob Lewis
601f824baf feat(library/data/real): compare a real and a sequence pointwise to compare two reals 2015-07-31 09:10:57 -04:00
Rob Lewis
d63010b7df feat(library/data/real): prove more about embedding Q into R 2015-07-31 09:10:57 -04:00
Rob Lewis
a670f21e78 feat(library/data/real): begin proving supremum property 2015-07-31 09:10:57 -04:00
Rob Lewis
3a97079920 feat(library/data/real): finish coercions from rat to real 2015-07-31 09:10:56 -04:00
Leonardo de Moura
811bae5566 feat(library/data/vec): expand vec 2015-07-30 23:17:01 -07:00
Leonardo de Moura
44518fcab1 refactor(library/theories/group_theory): move diff to nat 2015-07-30 20:14:48 -07:00
Leonardo de Moura
0a29581b0e feat(library/data/vec): add more theorems to vec (vectors as subtypes) 2015-07-30 18:09:10 -07:00
Leonardo de Moura
be61fb0566 feat(frontends/lean/elaborator): add "noncomputable theory" command, display "noncomputable" when printing definitions
When the command "noncomputable theory" is used, Lean will not sign an
error when a noncomputable definition is not marked as noncomputable
2015-07-29 17:54:35 -07:00
Leonardo de Moura
88c659c54e feaf(library): make sure basic standard library can be compiled with option "--to_axiom"
We use this option to erase proofs when generating the javascript
version. The proofs are erased to minimize the size of the file that
must be downloaded by users
2015-07-29 16:11:23 -07:00
Leonardo de Moura
bbd6946a15 refactor(library/logic/axioms): we have only one extra axiom 2015-07-29 13:36:23 -07:00
Leonardo de Moura
0bda39c8ac feat(frontends/lean): check for noncomputability when moving theorems from theorem_queue to environment 2015-07-29 13:01:07 -07:00
Leonardo de Moura
69ead0ddd8 feat(frontends/lean/decl_cmds): reject unnecessary "noncomputable" annotations 2015-07-29 13:01:07 -07:00
Leonardo de Moura
308af87b69 feat(library): add 'noncomputable' keyword for the standard library 2015-07-28 21:56:35 -07:00
Leonardo de Moura
cfa9412f96 fix(frontends/lean): "show goal" localization, add "position", support "by tactic" 2015-07-28 12:48:12 -07:00
Jeremy Avigad
d02b83b6d6 feat(library/theories/number_theory/prime_factorization): prove that n is equal to its prime factorization 2015-07-27 15:16:16 -07:00
Jeremy Avigad
6355670ac4 fix(library/data/nat/nat.md): add 'find' to markdown file 2015-07-27 07:46:59 -07:00
Jeremy Avigad
471c9058eb fix/feat(library/logic/connectives,library/data/{finset,set}): fix names or.left_distrib etc., fix implicit arguments, and make small additions 2015-07-27 07:46:59 -07:00
Leonardo de Moura
a124bc246a feat(library/data/fin): add equivalences between fin types 2015-07-26 15:42:39 -07:00
Leonardo de Moura
d95e3c1e1d feat(library/data/equiv): basic equivalences 2015-07-26 13:06:01 -07:00
Leonardo de Moura
72d6550a7a feat(library/data/bag): show that subbag predicate is decidable when A has decidable equality 2015-07-25 17:44:03 -07:00
Leonardo de Moura
31b1606658 feat(library/data/bag): add subbag predicate 2015-07-25 14:31:24 -07:00
Leonardo de Moura
a883b72a25 fix(library/data): 'choose' -> 'find' renaming problems 2015-07-25 11:25:04 -07:00
Jeremy Avigad
1cc6be6052 feat(library/data/finset/comb): define powerset 2015-07-25 14:02:44 -04:00
Jeremy Avigad
c9d6cc5255 feat(library/data/{finset,set}): various basic facts 2015-07-25 14:02:44 -04:00
Jeremy Avigad
9cd7db3fea fix(library/data/list/perm): fix typo in theorem names 2015-07-25 14:02:44 -04:00
Jeremy Avigad
d3cd0bb8ff refactor(library/data/nat/find): rename 'choose' to 'find' to avoid conflict with combinatorics 'choose' 2015-07-25 14:02:44 -04:00
Leonardo de Moura
43f5f70414 feat(library/data/bag): add basic properties for bag intersection and union 2015-07-25 08:37:30 -07:00
Leonardo de Moura
ebf8c7fbdb feat(library/data): define bag using quotients 2015-07-24 23:45:08 -07:00
Leonardo de Moura
8be82d7405 feat(data/list): add count for lists 2015-07-24 23:44:11 -07:00
Leonardo de Moura
99a9dec93f refactor(library/data/real/basic): declare 'real' in the toplevel like 'nat', 'int' and 'rat' 2015-07-24 11:59:46 -07:00
Leonardo de Moura
5c7a20e5bd fix(library/unifier): crash when unifying constraints of the form (pr t =?= s)
where pr is a projection and t is a stuck term

see issue #737
2015-07-24 11:52:46 -07:00
Leonardo de Moura
0f2c0b6512 feat(library/data/real/basic): replace 'have ... [visible]' with 'assert ...'
Remove comments about "sorry"s. Mario has fixed all of them.
2015-07-24 10:07:16 -07:00
Mario Carneiro
066b0fcdf9 feat(library): clean up "sorry"s in library
Breaking changes: pnat was redefined to use subtype instead of a custom inductive type, which affects the notation for pnat 2 and 3
2015-07-24 12:21:33 -04:00
Leonardo de Moura
946308b187 feat(frontends/lean): allow anonymous 'have'-expressions in tactic mode 2015-07-23 18:52:59 -07:00
Leonardo de Moura
18dd7c13f9 feat(frontends/lean): add '[congr]' attribute 2015-07-22 17:21:47 -07:00
Leonardo de Moura
fbaa8b21f6 refactor(library/data/nat): cleanup for the tutorial 2015-07-22 13:41:50 -07:00
Leonardo de Moura
e969c7a8d6 refactor(library): remove 'simp' hack 2015-07-22 10:13:19 -07:00
Leonardo de Moura
092c8d05b9 feat(frontends/lean,library): rename '[rewrite]' to '[simp]' 2015-07-22 09:01:42 -07:00
Leonardo de Moura
0de715ae54 refactor(library/data): cleanup proofs using new features 2015-07-21 09:57:10 -07:00
Leonardo de Moura
3e3d37905c refactor(library/data): cleanup proofs using new features 2015-07-21 08:26:44 -07:00
Leonardo de Moura
ff425b66e7 feat(library/data/list): test type notation in the standard library 2015-07-20 22:00:05 -07:00
Leonardo de Moura
10e5b182b5 refactor(library/data): use "suppose"-expressions to cleanup proofs 2015-07-20 19:45:54 -07:00
Leonardo de Moura
8ad6312764 feat(library/hlist): add helper eq.rec lemmas 2015-07-20 14:56:50 -07:00
Leonardo de Moura
0a8bab14ee feat(library/data/vector): add helper lemmas for proving v == w when v and w are vectors 2015-07-20 11:59:03 -07:00
Leonardo de Moura
48f8b8f18d refactor(library): use new 'suppose'-expression 2015-07-19 21:15:20 -07:00
Leonardo de Moura
c2fc612ec1 fix(library/data/nat/order): add missing theorems back 2015-07-19 20:21:25 -07:00
Leonardo de Moura
6936d71030 feat(library/data/list/basic): add 'firstn' definition and theorems 2015-07-19 20:15:40 -07:00
Leonardo de Moura
d2f64d7744 feat(library/data/nat/order): add 'max/min' auxiliary theorems 2015-07-19 20:15:11 -07:00
Leonardo de Moura
d91627ebec refactor(library): move 'max/min' to 'data/nat' 2015-07-19 19:47:14 -07:00
Leonardo de Moura
01169ca2a8 feat(library/data/hlist): add heterogeneous lists 2015-07-19 14:33:15 -07:00
Leonardo de Moura
73f665dce3 refactor(library/data/list/perm): use anonymous 'suppose' and 'have' expressions 2015-07-19 12:35:12 -07:00
Leonardo de Moura
812ddf1ef5 feat(frontends/lean): add 'suppose'-expression
It is a variant of 'assume' that allow anonymous declarations.
2015-07-19 12:15:12 -07:00
Leonardo de Moura
92f8eb173b feat(frontends/lean): use 'this' as the name for anonymous 'have'-expression 2015-07-18 13:36:05 -05:00
Leonardo de Moura
ade60278d0 refactor(library): rename iff.mp' to iff.mpr 2015-07-18 08:52:58 -05:00
Leonardo de Moura
16f50d9aea feat(library/data/list/basic): add list.is_inhabited 2015-07-17 06:52:43 -04:00
Leonardo de Moura
9d83361fdc refactor(library): use subtype instead of sigma 2015-07-16 22:48:33 -04:00
Leonardo de Moura
d70c79f4e3 refactor(library/data/fin,library/theories/group_theory/cyclic): fixes #735 2015-07-16 19:39:12 -04:00
Haitao Zhang
ca895e4901 fix(library/data/finset/partition): improve lemmas on binary partition 2015-07-16 14:13:06 -07:00
Haitao Zhang
9ba350098f feat(library/data): add a few convenience lemmas 2015-07-15 17:44:37 -07:00
Haitao Zhang
8dc45686ff feat(library/data/finset/partition): add theory of binary partition 2015-07-15 17:44:36 -07:00
Leonardo de Moura
89f69630b6 feat(library): use sigma instead of exists (experimental) 2015-07-15 15:49:47 -04:00
Haitao Zhang
721d3781ca feat(library/data/list/basic): add a lemma length_pos_of_mem 2015-07-15 14:49:53 -04:00
Haitao Zhang
9d523bae6b feat(library/data/fin): add more fin definition and lemmas 2015-07-15 14:49:53 -04:00
Leonardo de Moura
3ab0e07ba9 feat(frontends/lean): add simp tactic frontend stub
This commit also removes the fake_simplifier. It doesn't work anymore
because simp is now a reserved word.
2015-07-14 09:54:53 -04:00
Haitao Zhang
5034de9c4e feat(library/data/nat/power): add nat power divide theorems 2015-07-13 22:02:17 -04:00
Haitao Zhang
fae8176363 feat(library/data/list/comb): add map theorems 2015-07-13 22:02:17 -04:00
Leonardo de Moura
ebe6ec0017 feat(library): add '[rewrite]' annotation some some theorems 2015-07-13 16:39:53 -04:00
Leonardo de Moura
ea62a27b6b feat(library/data/stream): define lex-order for streams 2015-07-12 16:55:04 -04:00
Jeremy Avigad
98cace9bf8 fix(library/data/finset/bigops): remove extraneous parameter 2015-07-11 19:01:44 -04:00
Jeremy Avigad
9810105a2a refactor(library/data/finste/basic): rename non_empty_of_card_succ to ne_empty_of_card_eq_succ 2015-07-11 19:01:44 -04:00
Jeremy Avigad
d443b25dee fix(library/data/{finset,set}/basic: change notation from {[a, b, c]} to '{a, b, c} 2015-07-11 19:01:44 -04:00
Jeremy Avigad
e8ad284ead feat(library/data/finset/{bigops,comb}): add two theorems for Haitao 2015-07-11 19:01:43 -04:00
Jeremy Avigad
70407473c2 feat(library/theories/combinatorics/choose): begin theory of binomial coefficients 2015-07-11 19:01:43 -04:00
Leonardo de Moura
8e8e08cfe7 feat(library/tactic): use occurrence object in unfold tactic family 2015-07-11 18:53:45 -04:00
Leonardo de Moura
d939509135 doc(library/data/nat/examples): add tail recursive fib example 2015-07-10 20:38:07 -04:00
Leonardo de Moura
fc82b46171 chore(library/data/nat/examples/fib): cleanup example 2015-07-10 08:18:30 -04:00
Leonardo de Moura
32cc2e917b doc(library/data/nat/examples): add examples 2015-07-09 21:56:48 -04:00
Leonardo de Moura
a9515ac7a4 feat(library/tactic/rewrite_tactic): try to fold nested recursive applications after unfolding a recursive function
See issue #692.
The implementation still has some rough spots.
It is not clear what the right semantic is.
Moreover, the folds in e_closure could not be eliminated automatically.
2015-07-08 21:19:18 -04:00
Jeremy Avigad
2e3b1b04cd feat(library/algebra/ring_power): add properties of power in ring structures 2015-07-07 21:05:48 -07:00
Jeremy Avigad
31aeff95d5 refactor(library/algebra/ordered_ring): remove 0 ~= 1 from ordered_semiring, add 0 < 1 to linear_ordered_semiring 2015-07-07 21:05:48 -07:00
Jeremy Avigad
e35f05ad47 feat(library/data/nat/order): add greatest i < n st P i 2015-07-07 21:05:48 -07:00
Leonardo de Moura
4b1b3e277f feat(frontends/lean): rename '[unfold-c]' to '[unfold]' and '[unfold-f]' to '[unfold-full]'
see issue #693
2015-07-07 16:37:06 -07:00
Leonardo de Moura
0828ca775c feat(library/data): add type equivalence lemmas for subtype and vector 2015-07-06 12:44:51 -07:00
Leonardo de Moura
9f7c4aac69 feat(library): add helper lemmas for equivalent types 2015-07-06 12:17:57 -07:00
Leonardo de Moura
01ba0b4747 feat(library/logic/equiv): add equivalence between types
This is a good test for the simplifier
2015-07-06 11:17:03 -07:00
Leonardo de Moura
77d5657813 refactor(library/algebra/function): move function.lean to init folder
Motivation: this file defines basic things such as function composition.
In the HoTT library, it is located in the init folder.
2015-07-06 07:29:56 -07:00
Leonardo de Moura
9ccd8ff700 feat(library/data/nat/parity): cleanup proofs 2015-07-05 09:35:15 -07:00
François G. Dorais
10b55bd785 feat(library/data/fin): add proof of finite choice 2015-07-04 09:58:18 -07:00
Leonardo de Moura
f4f77e7f0b feat(library): move data/nat/primes to theories/number_theory 2015-07-04 09:49:14 -07:00
Leonardo de Moura
aee8bd8b0c feat(library/data/nat): add coprime_primes theorem 2015-07-04 00:37:09 -07:00
Leonardo de Moura
e630511184 feat(library/data/nat/primes): add more simple theorems for primes 2015-07-03 23:31:04 -07:00
Leonardo de Moura
30ef971bc0 feat(library/data/nat): add basic facts about parity 2015-07-03 17:38:23 -07:00
Leonardo de Moura
1bdc9e0747 feat(library/data/finset/card): add dvd_Sum_of_dvd 2015-07-03 14:01:15 -07:00
Leonardo de Moura
339a7334f8 feat(library/data/finset/card): add exists_two_of_card_gt_one 2015-07-03 14:01:15 -07:00
Leonardo de Moura
aa2a5b6282 feat(library/data/nat/primes): add infinite primes theorem 2015-07-03 00:31:54 -07:00
Leonardo de Moura
372d17ab96 refactor(library/data/nat/primes): rename is_prime to prime 2015-07-02 23:21:10 -07:00
Leonardo de Moura
d76edf331b feat(library/data/nat/bquant): add not bex and not ball lemmas 2015-07-02 23:18:02 -07:00
Leonardo de Moura
e811bb1a66 chore(library/data/nat/default): add new files to nat/default 2015-07-02 22:28:51 -07:00
Leonardo de Moura
5917a26554 feat(library/data/nat/primes): add is_prime 2015-07-02 22:27:51 -07:00
Leonardo de Moura
072fa7ec49 feat(library/data/nat): add aux lemmas 2015-07-02 22:27:21 -07:00
Leonardo de Moura
e33946ff02 feat(library/data/nat/fact): define factorial 2015-07-02 20:25:34 -07:00
Leonardo de Moura
4ae9f3ea81 feat(library/coercion): new coercion manager
closes #668
2015-07-01 16:32:34 -07:00
Leonardo de Moura
0f64a6e545 feat(library/data/rat/order): use 'trans-instance' to improve performance of migrate command 2015-07-01 08:57:10 -07:00
Leonardo de Moura
cf574d0127 feat(library): assign priorities to notation declarations in the standard library
Now, even if the user opens the namespaces in the "wrong" order, the
notation + coercions will behave as expected.
2015-06-30 17:38:13 -07:00
Leonardo de Moura
b5444c1314 refactor(frontends/lean/builtin_cmds): allow "constant" edges in the instance transitive closure graph 2015-06-29 18:57:05 -07:00
Jeremy Avigad
e6ce5d9b72 refactor(library/data/fin): put fin.val coercion in fin namespace 2015-06-29 21:24:38 +10:00
Jeremy Avigad
a54fb42f87 refactor(library/data/int/basic): put int.of_nat coercion in int namespace 2015-06-29 21:00:42 +10:00
Jeremy Avigad
130eb3f6d9 fix(library/data/int/basic): change notation from -[n+1] to -[1+n] to avoid conflict e.g. with -[coercions] 2015-06-29 15:23:11 +10:00
Jeremy Avigad
b19331f28f feat(library/data/nat/order): add theorems for max and min 2015-06-29 15:23:11 +10:00
Jeremy Avigad
1a164d8fc9 feat(library/algebra/ordered_group): add theorems for max and min 2015-06-29 15:23:11 +10:00
Jeremy Avigad
70e551c6d6 feat(library/algebra/order,library/data/nat/order,library/*): instantiate nat to lattice, add theorems 2015-06-29 15:23:11 +10:00
Jeremy Avigad
93e5124d71 feat(library/algebra/order): add lattices, min, max 2015-06-29 15:23:11 +10:00
Leonardo de Moura
3cd81051c6 refactor(library/data/real/division): remove unnecessary 'xrewrite' 2015-06-27 14:07:32 -07:00
Jeremy Avigad
f8d8a2aed6 feat(library/data/nat/div): add characterization of mod 2015-06-27 18:51:44 +10:00
Jeremy Avigad
829c3fb22c refactor(library/data/int/div): reorient of_nat_div and of_nat_mod 2015-06-27 18:47:36 +10:00
Jeremy Avigad
7c118f40fe feat(library/data/nat/sub): add calculation facts for sub 2015-06-27 18:41:57 +10:00
Leonardo de Moura
a2cbf3dbca refactor(library/data/fin): adjust proofs to support new approach for projections 2015-06-26 17:18:29 -07:00