Commit graph

1539 commits

Author SHA1 Message Date
Leonardo de Moura
56e2e0c0a5 feat(library/data/encodable): show that (finset A) is encodable when A is encodable 2015-08-10 07:47:00 -07:00
Leonardo de Moura
70bd95d931 feat(library/data/list): show that (sort R l1 = sort R l2) when R is a decidable total order and l1 is a permutation of l2 2015-08-09 23:36:08 -07:00
Leonardo de Moura
2a22c75e52 feat(library/data/list/sort): prove that (sort R l) is strongly_sorted 2015-08-09 23:36:07 -07:00
Leonardo de Moura
5ca37dace0 fix(library/data/nat/order): fixes #786 2015-08-09 23:36:07 -07:00
Leonardo de Moura
f9b2b93f7a refactor(library/algebra/complete_lattice): add alternative definitions of complete_lattice and convertions between them 2015-08-09 20:40:07 -07:00
Jeremy Avigad
d17f72eb7c fix(library/data/set/filter): adapt to change in complete_lattice structure 2015-08-09 22:36:04 -04:00
Jeremy Avigad
b130a144c8 feat(library/data/set/filter): add filters, show they form a complete lattice 2015-08-09 22:14:25 -04:00
Jeremy Avigad
244052b413 refactor(library/data/set/*): rename setext to ext 2015-08-09 22:14:25 -04:00
Jeremy Avigad
d77bdaabc2 refactor(library/logic/eq): rename two theorems 2015-08-09 22:13:18 -04:00
Jeremy Avigad
eca3437388 refactor(library/algebra/ring): add alternate names for dvd.intro, dvd.intro_left 2015-08-09 22:13:18 -04:00
Jeremy Avigad
209d7b07aa feat(library/data/set/basic): add a few theorems 2015-08-09 22:13:18 -04:00
Leonardo de Moura
276771e6ca feat(library/data/list/sort): add sort for lists
TODO: prove the result is sorted, prove that l1 ~ l2 -> sort R l1 = sort R l2
2015-08-09 14:23:09 -07:00
Leonardo de Moura
b4828283fa feat(library/data/list/sorted): add locally_sorted, sorted and strongly_sorted predicates for lists 2015-08-09 10:28:41 -07:00
Leonardo de Moura
7ddcfa5225 feat(library/algebra/complete_lattice): add basic theorems for complete_lattices 2015-08-08 23:18:36 -07:00
Leonardo de Moura
b2415f7b4b feat(library/data/set/basic): add basic 'set' theorems 2015-08-08 23:18:20 -07:00
Jeremy Avigad
8f815cabc0 refactor(library/data/finset/comb,library/data/set/basic,library/*): rename 'filter' to 'sep' to free up 'set.filter' 2015-08-08 18:10:44 -04:00
Jeremy Avigad
4b39400439 feat(library/data/{int,rat,real}/bigops): add bigops for int, rat, real
Because migrate does not handle parameters, we have to migrate by hand.
2015-08-08 17:20:23 -04:00
Jeremy Avigad
f97298394b feat(library/data/nat/bigops,library/data/set/card,library/*): add set versions of bigops for nat
This required splitting data/set/card.lean from data/set/finite.lean, to avoid dependencies
2015-08-08 17:20:23 -04:00
Leonardo de Moura
582dbecfd0 feat(library,hott): add notation T1 : T2 as syntax sugar for (focus (T1; all_goals T2))
closes #775
2015-08-08 10:16:25 -07:00
Leonardo de Moura
ecf9c825ac feat(library/algebra/complete_lattice): add 'complete_lattice' structure 2015-08-08 07:38:49 -07:00
Jeremy Avigad
fce042ef79 feat(library/algebra/group_set_bigops.lean): add set versions of bigops 2015-08-08 04:23:52 -07:00
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
Floris van Doorn
e51ba09a27 feat(hott): add types.sum, greatly expand types.prod, minor changes in types.sigma and types.pi 2015-08-07 13:34:41 -07:00
Floris van Doorn
d111607890 feat(hott): add file which maps sections of the HoTT book to the HoTT library 2015-08-07 13:34:41 -07:00
Rob Lewis
00262e4e47 feat(library/algebra): finish adding one-directional versions of iff theorems 2015-08-07 13:30:23 -07:00
Rob Lewis
11bb342819 style(library/data/real): clean up proofs in basic.lean 2015-08-07 13:30:23 -07:00
François G. Dorais
fc6b41ee0e fix(algebra/group_power): change notation suggested by @avigad 2015-08-04 16:23:31 -04:00
François G. Dorais
155e22c92c feat(library/algebra/group_power): add times (additive variant of power) 2015-08-04 16:23:31 -04:00
Floris van Doorn
11b1f416f6 feat(nat): add unfold attributes to add, mul, sub and of_num in namespace nat_esimp in both libraries 2015-08-04 13:23:20 +02: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
François G. Dorais
131b344519 feat(library/algebra/group_power): add times (additive variant of power) 2015-08-04 01:58:57 +02: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
82a9bc757a feat(library/algebra): move theorems from real to algebra 2015-08-03 15:01:32 -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
1693932c9f feat(library/algebra/group): add theorem to comm group 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
f88038c3e7 feat(library/algebra/field): add missing theorems to field 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
c9daf7cbb9 feat(library/algebra/ordered_field): add missing theorems to ordered field 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
8dc2246a83 refactor(library/theories/group_theory/action): improve compilation time 2015-07-30 20:58:38 -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
82836fe9e0 feat(library/init/logic): make sure standard library can be compiled when proofs are erased 2015-07-29 15:00:50 -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
6dbcf86fd4 feat(library/logic/axioms): use diaconescu to prove em
With the new "noncomputable" feature we can use Hilbert's choice without
being concerned it may accidentaly "leak" inside definitions we don't
want to use it.
2015-07-29 13:01:07 -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
3fc74c2ba8 feat(library/theories/combinatorics/choose): show the number of subsets of s of size k is choose (card s) k 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
e221d38790 feat(library/tactic/assert_tactic): allow duplicate names for hypotheses in assert tactic 2015-07-23 18:52:59 -07: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
86e9002b66 doc(library/logic/axioms/examples): add alternative proof for has_left_inverse_of_injective 2015-07-22 22:11:13 -07:00
Leonardo de Moura
18dd7c13f9 feat(frontends/lean): add '[congr]' attribute 2015-07-22 17:21:47 -07:00
Leonardo de Moura
cc396cba76 feat(frontends/lean): allow backticks in binder declarations 2015-07-22 13:54: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
b9451549d1 feat(frontends/lean): add type notation for referencing hypotheses 2015-07-20 21:43:47 -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
784184a137 chore(library/theories/number_theory/primes): remove unnecessary "have" 2015-07-18 12:48:07 -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
c0cd72fc8d chore(library/theories/group_theory): remove dangling "check"s 2015-07-16 22:50:02 -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
a04c6b0c7d feat(library/theories/group_theory): Group and finite group theories
subgroup.lean : general subgroup theories, quotient group using quot
finsubg.lean : finite subgroups (finset and fintype), Lagrange theorem,
  finite cosets and lcoset_type, normalizer for finite groups, coset product
  and quotient group based on lcoset_type, semidirect product
hom.lean : homomorphism and isomorphism, kernel, first isomorphism theorem
perm.lean : permutation group
cyclic.lean : cyclic subgroup, finite generator, order of generator, sequence and rotation
action.lean : fixed point, action, stabilizer, orbit stabilizer theorem, orbit partition,
  Cayley theorem, action on lcoset, cardinality of permutation group
pgroup.lean : subgroup with order of prime power, Cauchy theorem, first Sylow theorem
2015-07-15 20:02:11 -07:00
Haitao Zhang
5ffcd2a2d8 feat(library/algebra/group): add definitions and lemmas of conjugation 2015-07-15 19:36:18 -07:00
Haitao Zhang
f4cbd98692 feat(library/algebra/group): add theorem eq_inv_of_mul_eq_one 2015-07-15 18:43:47 -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
Haitao Zhang
516333ad65 feat(library/algebra/group_bigops): add Prodl theorems 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
267545ca0c feat(frontends/lean): parse 'with_options' tactical
see issue #492
2015-07-13 19:13:41 -04:00
Leonardo de Moura
6ab5cf214c feat(library,hott): add simp tactic reference 2015-07-13 18:01:40 -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
1881ad0aef feat(library/logic/weak_fan): add weak_fan theorem 2015-07-13 10:18:12 -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
7f1993be41 feat(library/theories/number_theory/prime_factorization): begin theory, with multiplicity and prime_factors 2015-07-07 21:05:48 -07:00
Jeremy Avigad
ac7f7cee63 refactor(library/theories/number_theory/primes): add some minor theorems, and rename some theorems 2015-07-07 21:05:48 -07:00
Jeremy Avigad
d9098ff4e5 fix(library/theories/number_theory/bezout): make duplicate proof of prime -> irreducible an example 2015-07-07 21:05:48 -07: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
Leonardo de Moura
db1fae0461 feat(library/theories/number_theory/primes): cleanup proofs 2015-07-05 08:21:16 -07:00
Leonardo de Moura
d1b5a6be54 feat(library/theories/number_theory/primes): add Haitao's divisor_of_prime_pow lemma 2015-07-04 13:27:10 -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
Jeremy Avigad
a776e13c3b feat(library/theories/number_theory/bezout): for nat, irreducible implies prime 2015-07-04 22:56:55 +10: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
14f7e3de94 fix(library/algebra): missing file 2015-06-30 18:15:13 -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
3bf18c174e feat(library/algebra/ordered_group): define abs in terms of max, make some theorems constructively valid 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
Jeremy Avigad
0d25831111 refactor(library/algebra/order): cleanup, and remove unused class 2015-06-29 15:23:11 +10:00
Leonardo de Moura
52564ecc0f refactor(library/algebra/group_power): open namespaces in the "right" order 2015-06-27 14:51:00 -07:00
Leonardo de Moura
ca0aa4eb47 feat(library/composition_manager): simplify compositions of the form (mk ... (proj (mk ...)) ...)
closes #666
2015-06-27 14:07:32 -07:00
Leonardo de Moura
3cd81051c6 refactor(library/data/real/division): remove unnecessary 'xrewrite' 2015-06-27 14:07:32 -07:00
Leonardo de Moura
3215af3926 feat(frontends/lean): add '[trans-instance]' attribute
see issue #666
2015-06-27 14:07:29 -07:00
Jeremy Avigad
54128eb45f feat(library/theories/number_theory/bezout): add Bezout's theorem, adapted from William Peterson's project 2015-06-27 19:13:36 +10: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
97b3fd45ce fix(library/logic/axioms/prop_decidable): fixes #704 2015-06-26 19:14:36 -07: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
Floris van Doorn
124c9d3d8a feat(hott): various cleanup and fixes, rename \~ to ~, expand types.pointed 2015-06-25 22:31:40 -04:00
Floris van Doorn
0b9c8e14a4 fix(*/init/nat): fix occurrences where both theorem and [unfold-c] were used 2015-06-25 22:31:40 -04:00
Leonardo de Moura
1b414d36e7 refactor(library/init): define prod as an inductive datatype
Motivation: prod is used internally in the definitional package.
If we define prod as a structure, then Lean will tag pr1 and pr2 as
projections. This creates problems when we add special support for
projections in the elaborator. The heuristics avoid some case-splits
that are currently performed, and without them some files break.
2015-06-25 17:59:06 -07:00
Leonardo de Moura
d2e64d30e8 refactor(library/data/quotient): make proofs more robust 2015-06-25 17:48:58 -07:00
Leonardo de Moura
c9f3b766f8 refactor(library/algebra/category/constructions): modify proof
It was affected by the new way of handling projections that we will implement
2015-06-25 17:48:26 -07:00
Floris van Doorn
fa1979c128 feat(datatypes): let the type of unit be the lowest non-Prop universe
The definitional package (brec_on and cases_on) now use poly_unit instead of unit

closes #698
2015-06-25 17:33:46 -07:00
Jeremy Avigad
a0461262d0 feat(library/data/real/*.lean): migrate theorems from algebra 2015-06-25 17:30:12 -07:00
Rob Lewis
4161b9ccbf feat(library/data/real): rearrange constant sequence theorems to introduce rat coercion earlier. begin migrating theorems from algebra 2015-06-25 17:30:12 -07:00
Rob Lewis
82950e1c52 chore(library/algebra/ordered_field): remove redundant line in calc 2015-06-25 17:30:12 -07:00
Rob Lewis
afcf785f03 chore(library/data): update data.md 2015-06-25 17:30:12 -07:00
Leonardo de Moura
8967f57818 refactor(library/data/list): reduce reliance on definitional equality 2015-06-24 15:58:19 -07:00
Leonardo de Moura
018518f0cf refactor(library/algebra/ring): more robust proofs 2015-06-22 15:31:03 -07:00
Leonardo de Moura
7ffabeb245 refactor(library/algebra/group): avoid abuse of rewrite tactic
The two instances are relying on the fact that (a - b) reduces to (a + -b)
2015-06-22 15:11:14 -07:00
Leonardo de Moura
cfafc90cc0 refactor(hott,library): make sure files compile even without using "projection macros" 2015-06-22 12:22:11 -07:00
Jeremy Avigad
d28eb919f1 refactor(library/logic/axioms/examples/diaconescu.lean): mild reformatting, to match tutorial 2015-06-20 21:13:00 -07:00
Jeremy Avigad
7d204fdd91 refactor(library/data/finset/card.lean): add useful facts, shorter proof of eq_card_of_eq_subset 2015-06-20 21:13:00 -07:00
Leonardo de Moura
ee0d919c6f feat(library/data/finset/card): add eq_of_card_eq_of_subset theorem 2015-06-19 20:05:32 -07:00
Leonardo de Moura
2910c780d0 feat(library/data/finset/basic): add auxiliary card lemma 2015-06-19 20:05:32 -07:00
Leonardo de Moura
4246a64913 feat(library/data/finset/basic): add more theorems for finset erase 2015-06-19 20:05:32 -07:00
Leonardo de Moura
5f293cee9c refactor(library/algebra/ordered_field): improve compilation time 2015-06-18 16:12:24 -07:00
Leonardo de Moura
70fc05294b refactor(library/local_context): avoid hack in local_context 2015-06-18 15:41:00 -07:00
Leonardo de Moura
a4c0699e81 feat(library/tactic/constructor_tactic): restore 'constructor' tactic old semantics, add 'fconstructor' tactic
See issue #676

Add new test demonstrating why it is useful to have the old semantics
for 'constructor'
2015-06-17 23:48:54 -07:00
Leonardo de Moura
d12b5613c6 feat(library/data/set): show that (set A) is a comm_semiring 2015-06-17 09:53:50 -07:00
Haitao Zhang
1aff1f7cde fix(library/data/fintype/function): make inj_of_nodup and nodup_of_inj more general 2015-06-16 19:17:53 -07:00
Haitao Zhang
8817042318 feat(library/data/fin) : establish add_comm_group on fin using madd 2015-06-16 16:38:47 -07:00
Leonardo de Moura
d43e0891ae fix(library/init/logic): make sure library can be compiled using '--to_axiom' option 2015-06-16 13:10:08 -07:00
Leonardo de Moura
b80a391d63 fix(library/init/sigma): make sure file compiles even when '--to_axiom' is used 2015-06-16 12:52:08 -07:00
Rob Lewis
a72ca936c0 chore(library/real): replace theorems with versions from algebra 2015-06-16 11:30:12 -07:00
Rob Lewis
f7ab2780d4 feat(library/algebra): move more theorems from reals to algebra) 2015-06-16 11:30:12 -07:00
Rob Lewis
b94d0a948d chore(library/data/real): replace theorems with more general versions from algebra 2015-06-16 11:30:12 -07:00
Rob Lewis
b23e23061f feat(library/algebra): finish/move more general theorems from reals to algebra) 2015-06-16 11:30:12 -07:00
Rob Lewis
8d0518444d chore(library/data/{pnat, real}): rename pnat theorems 2015-06-16 11:30:12 -07:00
Rob Lewis
ff0ba6687e feat(library/algebra/ordered_field): move identity about abs to ordered_field 2015-06-16 11:30:12 -07:00
Rob Lewis
090f00458d chore(library/data/real): remove redundant theorems 2015-06-16 11:30:12 -07:00
Rob Lewis
34868d196e feat(library/data/rat): define pos natural upper bounds of rationals 2015-06-16 11:30:12 -07:00
Rob Lewis
1f4765e30a feat(library/algebra/ordered_ring): add theorems used for rational upper bounds 2015-06-16 11:30:12 -07:00
Rob Lewis
cf7c85e5fd feat(library/data/real): fill in lots of sorrys about pnats 2015-06-16 11:30:12 -07:00