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