Commit graph

1472 commits

Author SHA1 Message Date
Floris van Doorn
115dedbd1c fix(hott): notation spacing and markdown files 2015-10-02 16:26:10 -07:00
Leonardo de Moura
ede23a3267 feat(hott,library): add additional spacing hints 2015-09-30 17:41:44 -07:00
Sebastian Ullrich
d1b5031dbd feat(library): add some spacing hints 2015-09-30 17:36:32 -07:00
Floris van Doorn
3c4c722afd feat(hott): port more from chapters 4 and 6 of the book 2015-09-28 09:09:21 -07:00
Leonardo de Moura
33f46fd137 feat(library/blast): parse blast tactic and invoke stub 2015-09-25 12:45:16 -07:00
Jeremy Avigad
719e9043cd feat(library/data/set/equinumerosity): add Cantor's theorem, Schroeder-Bernstein theorem 2015-09-25 09:32:28 -07:00
Jeremy Avigad
2c7526e1fc feat(library/*): add various theorems 2015-09-25 09:32:28 -07:00
Jeremy Avigad
135f5ff96b feat(library/init/quot.lean): declare calc subst rule for iff 2015-09-25 09:32:28 -07:00
Leonardo de Moura
3d4475b7d9 refactor(library/logic/cast): simplify proofs 2015-09-21 12:34:24 -07:00
Jeremy Avigad
42c9bdc463 feat(library/theories/analysis/{metric_space,real_limit}: add convergence theorems 2015-09-20 20:51:28 -04:00
Jeremy Avigad
aa8dfba5a5 feat/fix(library/algebra/*): add some useful theorems, fix implicit arguments 2015-09-20 20:47:30 -04:00
Jeremy Avigad
9561e379c7 fix(library/data/set/basic): make set_of reducible 2015-09-20 19:54:46 -04:00
Rob Lewis
8fef4a95d4 chore(library/algebra/ordered_field): generalize theorem from reals 2015-09-17 16:23:22 -04:00
Rob Lewis
d6be32e4ef feat(library/theories/analysis): refactor IVT proof, add more general version of IVT 2015-09-17 16:22:46 -04:00
Rob Lewis
856a09d70e chore(library/theories/analysis): make proof of IVT compile faster 2015-09-16 16:44:28 -04:00
Rob Lewis
631b9b3312 feat(library/theories/analysis): clean and simplify proof of IVT 2015-09-16 08:28:11 -07:00
Rob Lewis
ee257a7c6c chore(library/data/{nat,real}): rename and move iterate function 2015-09-16 08:28:11 -07:00
Rob Lewis
ea3915f279 feat(library/theories/analysis): prove intermediate value theorem 2015-09-16 08:28:11 -07:00
Rob Lewis
f5dcb1e0a9 feat(library/algebra): add missing theorems to algebra library 2015-09-16 08:28:11 -07:00
Rob Lewis
4312f1e54b chore(library/data/real): clean and rename theorems in completeness proofs 2015-09-16 08:28:11 -07:00
Rob Lewis
f4fa38e365 chore(library/data/{rat, pnat}): move theorems from reals to more appropriate places 2015-09-16 08:28:11 -07:00
Jeremy Avigad
352a906ba2 feat(library/theories/{metric_space,real_limit}): define metric spaces, limits, instantiate reals 2015-09-12 21:46:09 -04:00
Jeremy Avigad
948cdee366 feat(library/algebra/ordered_group): add variant of triangle inequality 2015-09-12 21:46:09 -04:00
Jeremy Avigad
b48b33c412 feat(library/data/real/division): add useful rules for proving equalities 2015-09-12 21:46:09 -04:00
Jeremy Avigad
780c950414 refactor(library/data/int/order): use 'exists' instead of 'ex', 'least' instead of 'smallest', etc. 2015-09-12 21:46:09 -04:00
Jeremy Avigad
1affeec3c6 fix(library/algebra/ordered_filed): rename theorems 2015-09-12 21:46:09 -04:00
Jeremy Avigad
8db9afbf1c feat/refactor(data/real/complete): add another archimedean property, rename theorems 2015-09-12 21:46:09 -04:00
Jeremy Avigad
d9e166f77f feat/refactor(library/data/real/*): add / improve casts to real from nat, int, rat 2015-09-12 21:46:09 -04:00
Jeremy Avigad
de83a68667 refactor(library/data/{int,rat}/*): clean up casts between nat, int, and rat 2015-09-12 21:46:09 -04:00
Jeremy Avigad
20f6b4c6bd feat(library/logic/quantifiers): add 'the' 2015-09-12 21:46:09 -04:00
Leonardo de Moura
3035dd7e66 refactor(library/data/finset/equiv): remove workarounds added by commit e9809a453d
The workarounds were needed due to a bug at local_context class.
The problem has been fixed at df3100d2cd
2015-09-12 17:19:49 -07:00
Leonardo de Moura
e9809a453d fix(library/data/finset/equiv): broken proof
TODO: investigate why the proof has to be fixed
2015-09-11 23:24:29 -07:00
Rob Lewis
8d1f449491 refactor(library/data/real): move and rename theorems 2015-09-11 08:52:53 -07:00
Leonardo de Moura
3c1d6ec67a feat(library/algebra/algebra): add link to complete lattices module 2015-09-04 13:04:36 -07:00
Sebastian Reuße
f8a773be11 chore(library/algebra): remove obsolete link. 2015-09-04 09:41:34 +02:00
Rob Lewis
e722120e34 fix(library/data/rat/order): declare decidable_le an instance 2015-09-03 15:43:07 -07:00
Jeremy Avigad
2ab7928257 refactor(library/data/set/basic): standardize intro and elim theorem names 2015-09-03 15:38:27 -07:00
Floris van Doorn
9a439d4a4e feat(library.md): update reference to classical axiom 2015-09-01 15:17:46 -07:00
Jeremy Avigad
072971f3bb feat(library/data/finset/comb,library/data/set/basic): define set complement 2015-09-01 14:47:19 -07:00
Jeremy Avigad
840ef98829 refactor(library/init/nat): make \nat notation available at top level 2015-09-01 14:47:19 -07:00
Jeremy Avigad
51e0d31304 refactor(library/algebra/ordered_ring,ordered_field): move theorems from ordered_field to ordered_ring 2015-09-01 14:47:19 -07:00
Jeremy Avigad
7d72c9b6b5 refactor(library/algebra/{field,ordered_field}, library/*): more renaming, setting implicit arguments
Many theorems for division rings and fields have stronger versions for discrete fields, where we
assume x / 0 = 0. Before, we used primes to distinguish the versions, but that has the downside
that e.g. for rat and real, all the theorems are equally present. Now, I qualified the weaker ones
with division_ring.foo or field.foo. Maybe that is not ideal, but let's try it.

I also set implicit arguments with the following convention: an argument to a theorem should be
explicit unless it can be inferred from the other arguments and hypotheses.
2015-09-01 14:47:19 -07:00
Jeremy Avigad
93c2d1e9d0 refactor(library/algebra/ordered_field): rename theorems to maintain consistency with other parts of the library 2015-09-01 14:47:19 -07:00
Jeremy Avigad
92af727daf fix(library/data/real/{basic,division,order}: use notation for 0 and 1
These changes were needed because e.g. real.add_zero was "x + zero = x", and rewrite
would not match it to a goal "t + 0".

The fix was a lot harder than I expected. At first, migrate failed with resource
errors. In the end, what worked was this: I defined the coercion from num to real
directly (rather than infer num -> nat -> int -> rat -> real).

I still don't understand what the issues are, though. There are subtle issues with
numerals and coercions and migrate.

(We are not alone. Isabelle also suffers from the fact that there are too many
"zero"s and "one"s.)
2015-09-01 14:47:19 -07:00
Leonardo de Moura
3b19de1974 feat(library/data/num): show that num has decidable equality 2015-08-31 17:47:07 -10:00
Leonardo de Moura
63b93cf762 refactor(library/data/set/finite): make proof more robust 2015-08-31 17:26:24 -10:00
Leonardo de Moura
92716972c0 refactor(library/data/hf): add local attribute to make proofs more robust 2015-08-31 17:06:54 -10:00
Leonardo de Moura
f74d7fc266 refactor(library/data/real/basic): add extra step to help unifier 2015-08-31 16:56:05 -10:00
Leonardo de Moura
e01b155b2e refactor(library/data/int/basic): cleanup proof
Proof was abusing the higher-order unifier
2015-08-31 16:53:11 -10:00
Leonardo de Moura
ea05ce7fe9 fix(library/data/real/order): mark '2' as local notation 2015-08-31 15:03:18 -10:00
Leonardo de Moura
86b10ab184 feat(library/data): define perm as a special kind of equiv
This commit also proves the basic permutation lemmas in the nominal isabelle library.
2015-08-27 06:06:02 -10:00
Leonardo de Moura
3a72cd9621 fix(frontends/lean): rename multiword keyword "suffices to show" to "suffices" 2015-08-18 17:57:53 -07:00
Leonardo de Moura
3ce8c5d6f7 feat(frontends/lean): add "suffices to show A, from B, C" construct 2015-08-18 17:04:38 -07:00
Jeremy Avigad
7dda69fec7 feat/refactor(library/theories/number_theory/irrational_roots,library/*): show nth roots irrational, and add lots of missing theorems 2015-08-16 23:23:23 -04:00
Leonardo de Moura
a06b288deb fix(library/data/set/finite): the powerset notation has already been fixed 2015-08-16 18:47:20 -07:00
Leonardo de Moura
40ef589d8c fix(library/data/finset,library/data/list): fixes #799
Make sure standard library - theories folder can be compiled with --to_axiom
2015-08-15 09:49:40 -07:00
Jeremy Avigad
c83d592c17 feat(library/theories/number_theory/square_root_irrational): add proof that sqrt 2 is irrational 2015-08-14 18:49:57 -07:00
Jeremy Avigad
e416291135 feat(library/algebra/*,library/data/*): small additions and changes 2015-08-14 18:49:57 -07:00
Jeremy Avigad
4a36f843f7 refactor(library/algebra/group_power,library/*): change definition of pow
I changed the definition of pow so that a^(succ n) reduces to a * a^n rather than a^n * a.

This has the nice effect that on nat and int, where multiplication is defined by recursion on the right,
a^1 reduces to a, and a^2 reduces to a * a.

The change was a pain in the neck, and in retrospect maybe not worth it, but oh, well.
2015-08-14 18:49:57 -07:00
Jeremy Avigad
f9f4cd2197 feat(library/algebra/ordered_field,library/data/int/div): prove sign a = a / abs a 2015-08-14 18:49:57 -07:00
Jeremy Avigad
a56a7d2736 feat(library/data/rat/basic): prove numerator and denominator are coprime 2015-08-14 18:49:57 -07:00
Leonardo de Moura
49eb7166f0 refactor(library/data): rename fixed_list -> tuple 2015-08-13 16:45:34 -07:00
Leonardo de Moura
9bb778dc7c feat(library/data/hf): define head and tail for hf 2015-08-13 16:00:32 -07:00
Leonardo de Moura
a6b1c84874 feat(library/data/hf): add basic list functions to hf 2015-08-13 15:36:54 -07:00
Leonardo de Moura
50983c4573 feat(library/data/hf): prove that s₁ ⊆ s₂ → s₁ ≤ s₂ for hereditarily finite sets 2015-08-13 15:36:26 -07:00
Leonardo de Moura
aa2a417483 feat(library/data/hf): add induction and total order for hf 2015-08-13 14:11:44 -07:00
Leonardo de Moura
f4a81fdd73 fix(library/data): powerset notation 2015-08-13 09:04:00 -07:00
Leonardo de Moura
51c48277c8 feat(library/data/hf): add hf.powerset 2015-08-13 08:52:45 -07:00
Leonardo de Moura
6bec3ba58b feat(library/data/hf): add hf.image 2015-08-13 08:22:58 -07:00
Leonardo de Moura
bf65acb126 feat(library/data/rat): show that the rationals are encodable and countable 2015-08-12 21:31:24 -07:00
Leonardo de Moura
710b7b6e40 feat(library/data/int/countable): show that int is encodable, isomorphic to nat, and countable 2015-08-12 21:31:24 -07:00
Leonardo de Moura
52f902bc33 feat(library/data/encodable): show that the quotient A/R is encodable if A is encodable and R is decidable 2015-08-12 21:31:24 -07:00
Leonardo de Moura
d2eb99bf11 refactor(library/logic): move logic/choice.lean to init/classical.lean
choice axiom is now in the classical namespace.
2015-08-12 18:37:33 -07:00
Leonardo de Moura
cb9830beaf refactor(library/logic/choice): move prop_decidable instance into namespace 'classical' 2015-08-12 17:06:15 -07:00
Leonardo de Moura
b4024982a2 refactor(library/data): move vector as indexed family to examples folder 2015-08-12 15:05:14 -07:00
Leonardo de Moura
840c1a3693 refactor(library/data): rename vec to fixed_list 2015-08-12 14:38:21 -07:00
Leonardo de Moura
cee9d6b092 feat(library/data/hf): define Hereditarily finite sets 2015-08-11 16:56:06 -07:00
Leonardo de Moura
6fd3affeb1 feat(library/data/finset/equiv): show that (finset nat) is isomorphic to nat 2015-08-11 15:54:14 -07:00
Leonardo de Moura
1cacac2789 feat(library/data/nat/parity): add auxiliary lemma 2015-08-11 14:20:58 -07:00
Leonardo de Moura
a5615a6ea7 feat(library/data/finset/equiv): start bijection from (finset nat) to nat 2015-08-10 19:42:09 -07:00
Leonardo de Moura
0e98f10c96 feat(library/data/nat/div): add div_div_eq_div_mul theorem for nat 2015-08-10 19:30:00 -07:00
Leonardo de Moura
de3d0e4162 feat(library/data/list/comb): show that (list A) is isomorphic to A if A is isomorphic to nat 2015-08-10 16:04:02 -07:00
Leonardo de Moura
303e9031d6 feat(library/data/encodable): add encodable subtypes 2015-08-10 09:54:48 -07:00
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