Leonardo de Moura
8ee214f133
checkpoint: new numeral encoding
2015-11-08 14:04:55 -08:00
Leonardo de Moura
f6d22c0002
fix(library/theories/group_theory/finsubg): fix compilation errors
2015-11-08 14:04:55 -08:00
Leonardo de Moura
8657ccfc04
fix(library/data/int/gcd): remove sorry
2015-11-08 14:04:55 -08:00
Leonardo de Moura
a9f5735bb5
fix(library/data/int/basic): remove sorry's
2015-11-08 14:04:55 -08:00
Leonardo de Moura
843e95ade6
fix(library/data/real/basic): some real theorems
2015-11-08 14:04:55 -08:00
Leonardo de Moura
c0990d1902
fix(library/data/pnat): pnat with type classes
2015-11-08 14:04:55 -08:00
Leonardo de Moura
a23c05549e
fix(library/data/int/div): int div
2015-11-08 14:04:54 -08:00
Jeremy Avigad
1ffe62341b
fix(library/data/int): more int problems
2015-11-08 14:04:54 -08:00
Leonardo de Moura
07b33ec75e
fix(library/data/int,library/data/rat): int and rat
2015-11-08 14:04:54 -08:00
Leonardo de Moura
744d1cba3d
feat(library,hott,frontends/lean): avoid keywords with hyphen
2015-11-08 14:04:54 -08:00
Leonardo de Moura
27b4eb2058
fix(library/data): hf, int, nat, pnat
2015-11-08 14:04:54 -08:00
Leonardo de Moura
3369152559
fix(library/data,library/theories): fin, bag, finset, hf, list, ...
2015-11-08 14:04:54 -08:00
Leonardo de Moura
e6d7e89419
fix(library/data/int,library/data/nat): nat and int
2015-11-08 14:04:54 -08:00
Leonardo de Moura
a618bd7d6c
refactor(library): use type classes for encoding all arithmetic operations
...
Before this commit we were using overloading for concrete structures and
type classes for abstract ones.
This is the first of series of commits that implement this modification
2015-11-08 14:04:54 -08:00
Leonardo de Moura
06e35b4863
fix(library/algebra/numeral): remove redundant definitions
2015-11-08 14:04:54 -08:00
Leonardo de Moura
e4f0f6a9b4
feat(library): numeral normalization skeleton
2015-10-08 12:49:12 -07:00
Leonardo de Moura
5f967f40b2
fix(library/data/nat/basic): simplify two lemmas
2015-10-07 10:32:20 -07:00
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
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