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