Commit graph

1473 commits

Author SHA1 Message Date
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
Rob Lewis
4b38e14586 feat(library/algebra/ordered_field): add a couple missing theorems to ordered_field 2015-06-16 11:30:12 -07:00
Rob Lewis
a79ec6b0d4 feat(library/data/pnat): move facts about positive nats to their own file 2015-06-16 11:30:12 -07:00
Jeremy Avigad
9249ebdaab feat(library/data/{nat,int}/div.lean): add properties of add and mod 2015-06-15 22:53:11 +10:00
Jeremy Avigad
6b36076ab5 feat({library,hott}/init/nat): add sub_le_succ 2015-06-15 22:53:11 +10:00
Jeremy Avigad
3b010b8c92 feat({library,hott}/algebra/group): add abbreviations e.g. for mul.cancel_left 2015-06-15 22:53:11 +10:00
Jeremy Avigad
a4a8253f50 refactor(library,hott,tests): rename succ_inj to succ.inj, add abbreviation eq_of_succ_eq_succ 2015-06-15 22:52:38 +10:00
Haitao Zhang
679bb8b862 feat(library/data/fin): add more theorems on finite ordinals
Add defintional equalities, properties of lifting and lowering functions, and definitions of madd.
2015-06-14 20:49:47 -07:00
Haitao Zhang
844d59c2ae feat(library/data/fintype/function): add theorems of all nodup lists and all injective functions 2015-06-14 20:49:47 -07:00
Leonardo de Moura
ff5022c2f4 feat(library/data/axioms): add 'type_decidable'
In Lean standard mode, Hilbert choice implies that all types are
decidable.
2015-06-14 17:33:22 -07:00
Haitao Zhang
ef4b4d19ce feat(library/data/list/basic): add cons related equalities 2015-06-14 16:59:56 -07:00
Haitao Zhang
798b240149 fix(library/data/list/comb): adjust dmap related names to comply with convention 2015-06-14 16:59:56 -07:00
Haitao Zhang
6105263222 feat(library/data/list/comb): add theorem on dmap and adjust names 2015-06-11 15:29:52 -07:00
Haitao Zhang
1a9521dc9c fix(library/data/fintype/function): convert line endings from crlf to lf 2015-06-11 15:29:43 -07:00
Leonardo de Moura
1b5d1136d9 refactor(library/data/finset/card): remove unnecessary xrewrite
We can use the default 'rewrite' tactic after the commits pushed today.
2015-06-10 18:46:16 -07:00
Leonardo de Moura
dc8768627c refactor(library/data/fintype/function): cleanup proof 2015-06-10 18:21:15 -07:00
Leonardo de Moura
8fbe22f263 refactor(library/data/finset/basic): cleanup proof 2015-06-10 18:19:16 -07:00
Leonardo de Moura
226a5800dd fix(library/data/rat/order): adjust file to recent changes 2015-06-10 16:56:17 -07:00
Jeremy Avigad
3c1f5f4e33 feat(library/data/{set,finset}): add more cardinality facts, rename, and add a lemma from Haitao 2015-06-10 16:39:17 -07:00
Jeremy Avigad
658c5a2c49 feat(library/rat/basic.lean): add reduce for rat, and num and denom 2015-06-10 16:39:17 -07:00
Leonardo de Moura
4b91cfccff feat(frontends/lean/builtin_exprs): make notation ( e : T ) builtin
In the previous approach, the following (definitionally equal) term was being generated

       (fun (A : Type) (a : A), a) T e
2015-06-10 14:52:59 -07:00
Leonardo de Moura
1bffb89126 fix(library/algebra/function): lean was failing to infer that injective is a decidable predicate for finite types with decidable equality
This is an issue reported by Haitao.
2015-06-09 15:30:58 -07:00
Rob Lewis
d287b20018 chore(library/data/real): move more lemmas to algebra 2015-06-09 16:27:55 +10:00
Rob Lewis
01f0bb827c feat(library/data/real): use new algebra lemmas in completeness proof 2015-06-09 16:14:52 +10:00
Rob Lewis
7822ba9dee feat(library/algebra): add lemmas to group and ordered group 2015-06-09 16:14:21 +10:00
Rob Lewis
b1aea149db chore(library/data/real): update md 2015-06-09 15:43:43 +10:00
Rob Lewis
e112468f99 feat(library/data/real): prove reals are Cauchy complete 2015-06-09 15:39:51 +10:00
Rob Lewis
3749a8ad04 chore(library/data/real): update real.md 2015-06-09 15:39:51 +10:00
Leonardo de Moura
1c5c79fbc1 refactor(library/data/list/perm): use improved 'obtain' to cleanup proof 2015-06-08 11:58:21 -07:00
Haitao Zhang
6949e2d422 feat(library/data/fintype): add finite function related theories
develop kth related techniques, all_lists_of_len, all_funs, map between lists and functions, finite inverse and cardinality
remove function module from default import list for now
2015-06-08 10:48:22 -07:00
Leonardo de Moura
35eae96aa5 chore(library/data/int/gcd): remove 'TODO'
The 'TODO' was fixed by commit 496189feed
2015-06-08 10:45:05 -07:00
Jeremy Avigad
e59400b58c feat(library/data/int/{div,gcd}): add some theorems, to reduce rationals 2015-06-08 22:43:51 +10:00
Jeremy Avigad
1c93c5bbb2 feat(library/logic/{connectives.lean,quantiers.lean}): add iff congruence rules 2015-06-08 16:58:08 +10:00
Jeremy Avigad
feb385748f refactor(library/data/set/map.lean): put map into set namespace
This is needed to repair a conflict in the tutorial, but it is the right thing to do anyhow. The type "map A B" should not be a top-level identifier.
2015-06-06 18:58:33 -07:00
Leonardo de Moura
17f2c240e1 refactor(library/init/wf): cleanup wf proofs using tactics
add dependent elimination for acc.
2015-06-06 16:58:24 -07:00
Leonardo de Moura
7db84c7036 refactor(library/data): replace 'fin' with Haitao's 'less_than'
The commit also fixes vector to use the new definition.
2015-06-05 10:33:19 -07:00
Jeremy Avigad
453da48dd5 feat(library/data/less_than.lean): add finite ordinals from Haitao Zhang 2015-06-05 09:32:00 -07:00
Jeremy Avigad
370860e1b0 feat(library/data/fintype,finset): add cardinality for finite types from Haitao Zhang 2015-06-05 09:32:00 -07:00
Jeremy Avigad
f475408f4c feat(library/data/list/*): add theorems from Haitao Zhang and clean up 2015-06-05 09:32:00 -07:00
Jeremy Avigad
4db89e16dc feat(library/theories): create theories folder 2015-06-05 09:32:00 -07:00
Jeremy Avigad
c2aa8c6720 feat(library/data/finset/partition.lean): add theory of partitions into finsets by Haitao Zhang 2015-06-05 09:32:00 -07:00
Leonardo de Moura
4d52d4c790 fix(library/init/quot): prove quot.exact 2015-06-05 08:04:55 -07:00
Floris van Doorn
dce257bccb fix(init/nat): remove exit 2015-06-04 20:23:44 -04:00
Floris van Doorn
ff41886a32 feat(nat/bquant): give instances for quantification bounded with le
also add theorems c_iff_c to logic/connectives, where c is a connective
2015-06-04 20:14:13 -04:00
Floris van Doorn
7f5caab694 feat(nat): redefine le and lt in the standard library 2015-06-04 20:14:13 -04:00
Floris van Doorn
37995edbd7 fix(tools.md): remove missing link 2015-06-04 20:14:13 -04:00
Floris van Doorn
876aa20ad6 feat(hott): Port remainder of §6.3 and §7.2 from the HoTT book
Also prove a theorem similar to Lemma 7.3.1

There are still some sorry's in hit.suspension
2015-06-04 20:14:12 -04:00
Leonardo de Moura
63f61a35f4 feat(library/data/list/set): cleanup nodup_map proof 2015-06-04 15:21:40 -07:00
Leonardo de Moura
9a7cff0e89 feat(library/data/list/comb): add length_product theorem 2015-06-04 15:11:09 -07:00
Jeremy Avigad
df69bb4cfc feat(library/*): add theorems from Haitao on sets and functions, clean up 2015-06-04 11:55:25 -07:00
Jeremy Avigad
03952ae12c feat(library/logic/{connectives,identities},library/algebra/function): cleanup and some additions from Haitao Zhang 2015-06-04 11:55:25 -07:00
Leonardo de Moura
dce86b3a84 feat(library/init/logic): add 'eq.drec' (in standard Lean) with a signature very similar to eq.rec in the HoTT library 2015-06-03 17:29:26 -07:00
Leonardo de Moura
c841e63649 refactor(library/data/fintype): create 'fintype' subdirectory 2015-06-03 16:43:55 -07:00
Leonardo de Moura
2a6ea2c6fb feat(library/data/finset/to_set): add to_set.inj 2015-06-03 14:05:43 -07:00
Leonardo de Moura
16d03c17ee refactor(library/logic/eq): use 'substvars' tactic 2015-06-02 23:55:51 -07:00
Leonardo de Moura
a8c9121d2e feat(library/data/vec): add vector as list subtype 2015-06-02 22:09:23 -07:00
Leonardo de Moura
7a39d5aaa3 feat(library/data): add auxiliary definitions 2015-06-02 22:08:25 -07:00
Leonardo de Moura
228a99af7e feat(library/data/subtype): cleanup proof 2015-06-02 19:51:28 -07:00
Leonardo de Moura
70d0dea02d feat(library/init/logic): add more congruence theorems
Remark: the simplifier should be able to select the "right" one.
2015-06-02 14:06:15 -07:00
Leonardo de Moura
2f9005827c feat(library/init/logic): 'if-then-else' and 'dependent-if-then-else' congruence theorems
We will use these theorems to test the new simplifier.
2015-06-02 13:27:50 -07:00
Leonardo de Moura
50fe4ec6c0 feat(library/data/encodable): add quot.rep definition for choosing equivalence class representative for equivalence classes of encodable types 2015-06-02 11:03:24 -07:00
Leonardo de Moura
e7448ca77e feat(library/init/quot): add exists_rep theorem for quotients 2015-06-02 10:52:07 -07:00
Leonardo de Moura
1ea56038e3 feat(library/init/quot): add has_decidable_eq definition for quotients 2015-06-02 10:47:20 -07:00
Rob Lewis
b1404c5943 feat(library/data/real): fill in sorrys in proof that R is l.o. field 2015-06-01 23:00:53 +10:00
Rob Lewis
9843e61583 feat(library/data/real): define inverses of reals, prove (classically) that R is a discrete linear ordered field 2015-06-01 23:00:53 +10:00
Jeremy Avigad
82142b60f0 refactor(library/data/finset/basic.lean): remove finset / finset.finset duplicate 2015-06-01 12:35:44 +10:00
Jeremy Avigad
dcae29a253 feat(library/data/int/gcd.lean): add gcd for the integers 2015-06-01 12:35:44 +10:00