Commit graph

1429 commits

Author SHA1 Message Date
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