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
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
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
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
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
Rob Lewis
11bb342819
style(library/data/real): clean up proofs in basic.lean
2015-08-07 13:30:23 -07: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
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
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
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
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
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
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
bbd6946a15
refactor(library/logic/axioms): we have only one extra axiom
2015-07-29 13:36:23 -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
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