Commit graph

667 commits

Author SHA1 Message Date
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
Floris van Doorn
124c9d3d8a feat(hott): various cleanup and fixes, rename \~ to ~, expand types.pointed 2015-06-25 22:31:40 -04:00
Leonardo de Moura
d2e64d30e8 refactor(library/data/quotient): make proofs more robust 2015-06-25 17:48:58 -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
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
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
70fc05294b refactor(library/local_context): avoid hack in local_context 2015-06-18 15:41:00 -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
Rob Lewis
a72ca936c0 chore(library/real): replace theorems with versions from 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
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
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
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
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
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
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
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
c2aa8c6720 feat(library/data/finset/partition.lean): add theory of partitions into finsets by Haitao Zhang 2015-06-05 09:32:00 -07: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
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
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
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
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
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
Jeremy Avigad
ffa648a090 feat/refactor(library/*): various additions and improvements 2015-06-01 12:35:44 +10:00
Jeremy Avigad
cdecc309b3 fix(library/data/finset/to_set.lean): to_set does not require decidable equality 2015-06-01 12:35:44 +10:00
Jeremy Avigad
b76445df39 feat(library/data/{nat,int}/div.lean,*): improve and extend div in nat and int 2015-05-30 22:10:21 +10:00
Jeremy Avigad
c986ee305b refactor(library/data/nat/gcd.lean): move gcd to a new file 2015-05-30 22:10:21 +10:00
Jeremy Avigad
cc0a620db1 feat(library/data/{nat,int}/div.lean): add to and improve div library 2015-05-30 22:10:21 +10:00
Rob Lewis
82f85a574d feat(library/data/real): prove reals form an ordered ring 2015-05-29 14:11:51 +10:00
Rob Lewis
2273dc669e feat(library/data): fill in sorrys in int and rat orderings 2015-05-29 14:11:51 +10:00
Rob Lewis
6dfcc4610b feat(data): update orderings on int and nat to conform to new algebraic hierarchy 2015-05-29 14:11:51 +10:00
Leonardo de Moura
dc6411b903 feat(library/inductive_unifier_plugin): restrict rule that was generating non-terminating behavior
see issue #632
2015-05-27 14:41:12 -07:00
Leonardo de Moura
5da4922397 feat(library/data/list/perm): cleanup proofs
refl and symm were refering to the setoid.refl and setoid.symm.
Moreover, they were producing harder elaboration problems
2015-05-27 12:30:56 -07:00
Leonardo de Moura
47e5633498 feat(frontends/lean/calc_proof_elaborator): avoid unnecessary unfolding in the calc tactic 2015-05-27 12:07:39 -07:00
Floris van Doorn
0c7e16e017 feat(library.data.int.basic): move theorems about successor and predecessor from HoTT to standard library 2015-05-26 21:37:01 -07:00
Leonardo de Moura
7f0951b8e7 feat(library/tactic): improve assumption tactic performance 2015-05-25 20:22:37 -07:00
Rob Lewis
393cefcf97 feat(library/data/real): define real numbers, prove they form a commutative ring 2015-05-26 12:05:53 +10:00
Rob Lewis
681f431d4b feat(library/data/rat): make rat subtraction reducible, fix migration of min/max 2015-05-26 11:52:34 +10:00
Leonardo de Moura
4152ebfa23 refactor(library/data/nat): use new tactics 2015-05-25 18:14:52 -07:00
Jeremy Avigad
39129f112b refactor(library/*): do various renamings 2015-05-25 16:50:42 -07:00
Jeremy Avigad
a64c0ea845 feat/refactor(library/data/{int,rat}/*): improve casting from nat to int to rat 2015-05-25 16:50:42 -07:00
Jeremy Avigad
4ed9e46532 refactor(library/data/int/*): use better direction for of_nat theorems 2015-05-25 16:50:42 -07:00
Jeremy Avigad
fdc89cd285 refactor(library/algebra/order.lean,library/{data,algebra}/*): use better names for order theorems 2015-05-25 16:50:42 -07:00
Jeremy Avigad
81c0ef8c89 refactor(library/data/nat/*): cleanup, additions, renaming 2015-05-25 16:50:42 -07:00
Jeremy Avigad
7c92161e49 refactor(library/data/finset/basic.lean): change order of arguments to induction tactic 2015-05-25 16:50:42 -07:00
Leonardo de Moura
6db08c5519 test(library): test new tactics in the standard library 2015-05-25 16:48:33 -07:00
Leonardo de Moura
7e875c8d85 refactor(library): simplify theorems using improved tactics 2015-05-25 10:43:28 -07:00
Leonardo de Moura
88975927e6 fix(library/tactic/relation_tactics): beta-reduce goal before trying to extract head symbol 2015-05-24 18:56:35 -07:00
Leonardo de Moura
c453bb52a9 feat(library/data/stream): add notation and commonly used definitions 2015-05-24 16:53:58 -07:00
Leonardo de Moura
880027ea0e feat(library/data/stream): define stream mem predicate and prove basic theorems 2015-05-24 15:47:33 -07:00
Leonardo de Moura
607a5fbb86 feat(library/data/stream): define cycle, inits, tails for streams and prove basic theorems 2015-05-24 13:42:51 -07:00
Leonardo de Moura
3181471024 feat(library/data/list/basic): add nth_eq_some aux theorem 2015-05-24 10:10:23 -07:00
Leonardo de Moura
32a2425e02 feat(library/data/stream): prove take lemma for infinite streams 2015-05-23 23:01:54 -07:00
Leonardo de Moura
75901157a1 feat(library/data/stream): add more declarations and examples demonstrating how to use eq_of_bisim 2015-05-23 22:03:17 -07:00
Leonardo de Moura
d987d6cc84 feat(library/data/stream): simplify corecursion proofs, define interleave operation by corecursion, add one example of proof by bisimulation 2015-05-23 16:00:08 -07:00
Leonardo de Moura
8685e8ad7e feat(library/data/stream): define corec for infinite streams 2015-05-23 14:32:52 -07:00
Leonardo de Moura
dd4dd154ec feat(library/data/stream): add bisimulation for streams 2015-05-23 12:07:27 -07:00
Jeremy Avigad
8bebd104ff refactor(library/*): remove 'Module:' lines 2015-05-23 20:52:23 +10:00
Jeremy Avigad
f65a49b2c3 feat/fix(library/data/nat,int): add power to int, add trans attributes, power notation 2015-05-23 15:38:42 +10:00
Jeremy Avigad
a662f925cb refactor(library/data/quotient.lean): improve comments 2015-05-23 14:21:16 +10:00
Jeremy Avigad
4bc93b59e3 feat(library/data/rat/{basic,order}.lean): add property of of_int 2015-05-23 12:34:07 +10:00
Jeremy Avigad
59c1801921 refactor(library/data/{list,set,finset}/basic.lean): make subset reserved notation 2015-05-23 12:34:07 +10:00
Leonardo de Moura
fe32b9fa7f feat(library/data/stream): add infinite streams 2015-05-22 18:08:11 -07:00
Leonardo de Moura
1665ee39e8 feat(library/data/finset/card): test 'induction' tactic at finset 2015-05-19 15:56:51 -07:00
Leonardo de Moura
3e87f09d78 feat(library/tactic/induction_tactic): add support for user-defined recursors that contain parameters that should be synthesized by type class resolution 2015-05-19 15:33:46 -07:00
Leonardo de Moura
e1c2340db2 fix(frontends/lean): consistent behavior for protected declarations
see https://github.com/leanprover/lean/issues/604#issuecomment-103265608

closes #609
2015-05-18 22:35:18 -07:00
Floris van Doorn
2144036cdb feat(hott.circle): prove that the fundamental group of the circle is equal to the integers, as groups
Also many minor fixes at various places
2015-05-18 15:59:55 -07:00
Leonardo de Moura
19361f0196 feat(library/unifier): do not fire type class resolution as last resort when type contains metavariables
see discussion at #604
2015-05-18 15:45:23 -07:00
Jeremy Avigad
566acf4b31 feat(library/data/finset/card.lean): add card_Union_of_disjoint and other theorems 2015-05-17 19:06:10 +10:00
Jeremy Avigad
6549940c63 feat(library/data/finset/bigops.lean): add Union for finsets 2015-05-17 17:50:32 +10:00
Jeremy Avigad
783dd61083 feat(library/data/finset/basic.lean): add useful calculation rules for quantifiers 2015-05-17 17:49:02 +10:00
Jeremy Avigad
9720d84095 refactor(library/algebra/group_bigops.lean,library/data/nat/bigops.lean): add ext principle, clean up file 2015-05-17 16:00:38 +10:00
Jeremy Avigad
4764f6e8ec refactor(library/algebra/group_bigops.lean,library/data/nat/bigops.lean): simplify naming scheme for bigops 2015-05-17 15:24:37 +10:00
Jeremy Avigad
981bf93ce0 feat(library/data/default.lean): add rat and vector 2015-05-17 12:19:47 +10:00
Jeremy Avigad
ff701a9812 feat(library/data/nat/bigops.lean): add finite products and sums for nat 2015-05-16 22:26:59 +10:00
Jeremy Avigad
eae047bd31 refactor,feat(library/{data,algebra}): move bigops to algebra, define sums 2015-05-16 18:42:13 +10:00
Jeremy Avigad
63bb4b558a fix(library/data/set/{classical_inverse.lean,map.lean}): protect definitions in map, to avoid ambiguity 2015-05-16 18:24:19 +10:00
Jeremy Avigad
26ad6dde69 fix(library/data/fintype.lean): reduce imports, to avoid cyclic dependencies 2015-05-16 17:53:35 +10:00
Jeremy Avigad
81d0d4aa53 fix(library/data/{set,finset}/basic.lean: delete \{{ \}}} notation (conflicts with records) 2015-05-16 17:53:35 +10:00
Jeremy Avigad
8de6a4bb4c feat(library/algebra/group_pow.lean,library/data/nat/power.lean): add generic power operation on monoids and groups 2015-05-13 22:19:02 -07:00
Jeremy Avigad
05e28aaf19 feat(library/data/nat/{basic.lean,order.lean}): use migrate 2015-05-12 06:20:51 -07:00
Jeremy Avigad
42616f766f refactor(library/data/{nat,int,rat}/{basic.lean,order.lean}: make algebra instance declarations local 2015-05-12 06:20:47 -07:00