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
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
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
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
Leonardo de Moura
1238f43575
feat(library/logic/examples): add "double-negation translation" example
2015-05-31 18:18:10 -07:00
Leonardo de Moura
ca110012d8
feat(library/tactic): automate "generalize-intro-induction/cases" idiom
...
closes #645
2015-05-30 21:57:28 -07: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
Rob Lewis
4b67cd1f97
feat(library/algebra): update algebraic hierarchy to be more constructive
2015-05-29 14:11:50 +10:00
Leonardo de Moura
00232e70d6
feat(hott,library): auxiliary theorems for simplifier
2015-05-27 16:35:56 -07:00
Leonardo de Moura
85409a59d3
feat(library/tactic/rewrite_tactic): add xrewrite and krewrite tactic variants
...
closes #511
2015-05-27 16:32:43 -07: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
8056f326d7
feat(reserved_notation): make is_typeof parsing-only, add ^ to HoTT
2015-05-26 21:37:01 -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
Rob Lewis
eb537daa1c
feat(library/algebra): add min/max to ordered algebraic structures
2015-05-26 11:45:09 +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
Jeremy Avigad
716da2488b
fix(hott/*.md,library/*.md): use the word 'file' instead of 'module'
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
d0987eb3ac
feat(library/tactic): add 'subtvars' tactic
2015-05-25 16:36:44 -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