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
Jeremy Avigad
db7bdce451
refactor(logic/funext.lean, algebra/function.lean): delete logic/funext, merge into algebra/function
2015-05-23 16:16:36 +10:00
Jeremy Avigad
f65a49b2c3
feat/fix(library/data/nat,int): add power to int, add trans attributes, power notation
2015-05-23 15:38:42 +10:00
Jeremy Avigad
a662f925cb
refactor(library/data/quotient.lean): improve comments
2015-05-23 14:21:16 +10:00
Jeremy Avigad
d33c91d7b9
fix({hott,library}/algebra/*): fix names
2015-05-23 14:05:06 +10:00
Jeremy Avigad
4bc93b59e3
feat(library/data/rat/{basic,order}.lean): add property of of_int
2015-05-23 12:34:07 +10:00
Jeremy Avigad
59c1801921
refactor(library/data/{list,set,finset}/basic.lean): make subset reserved notation
2015-05-23 12:34:07 +10:00
Leonardo de Moura
fe32b9fa7f
feat(library/data/stream): add infinite streams
2015-05-22 18:08:11 -07:00
Leonardo de Moura
1665ee39e8
feat(library/data/finset/card): test 'induction' tactic at finset
2015-05-19 15:56:51 -07:00
Leonardo de Moura
3e87f09d78
feat(library/tactic/induction_tactic): add support for user-defined recursors that contain parameters that should be synthesized by type class resolution
2015-05-19 15:33:46 -07:00
Leonardo de Moura
e1c2340db2
fix(frontends/lean): consistent behavior for protected declarations
...
see https://github.com/leanprover/lean/issues/604#issuecomment-103265608
closes #609
2015-05-18 22:35:18 -07:00
Floris van Doorn
2144036cdb
feat(hott.circle): prove that the fundamental group of the circle is equal to the integers, as groups
...
Also many minor fixes at various places
2015-05-18 15:59:55 -07:00
Leonardo de Moura
19361f0196
feat(library/unifier): do not fire type class resolution as last resort when type contains metavariables
...
see discussion at #604
2015-05-18 15:45:23 -07:00
Leonardo de Moura
b1ece388a6
feat(frontends/lean,library/tactic/induction_tactic): improve induction tactic notation, expand induction tactic implementation
2015-05-18 09:25:07 -07:00
Jeremy Avigad
566acf4b31
feat(library/data/finset/card.lean): add card_Union_of_disjoint and other theorems
2015-05-17 19:06:10 +10:00
Jeremy Avigad
6549940c63
feat(library/data/finset/bigops.lean): add Union for finsets
2015-05-17 17:50:32 +10:00
Jeremy Avigad
783dd61083
feat(library/data/finset/basic.lean): add useful calculation rules for quantifiers
2015-05-17 17:49:02 +10:00
Jeremy Avigad
9720d84095
refactor(library/algebra/group_bigops.lean,library/data/nat/bigops.lean): add ext principle, clean up file
2015-05-17 16:00:38 +10:00
Jeremy Avigad
4764f6e8ec
refactor(library/algebra/group_bigops.lean,library/data/nat/bigops.lean): simplify naming scheme for bigops
2015-05-17 15:24:37 +10:00
Jeremy Avigad
6dc1cfca3c
feat(library/init/nat.lean): add notation <= and >= for nat
2015-05-17 12:57:48 +10:00
Jeremy Avigad
7bde8193fe
feat(library/algebra/order): add alternate names for le.antisymm etc.
2015-05-17 12:54:36 +10:00
Jeremy Avigad
981bf93ce0
feat(library/data/default.lean): add rat and vector
2015-05-17 12:19:47 +10:00
Jeremy Avigad
ff701a9812
feat(library/data/nat/bigops.lean): add finite products and sums for nat
2015-05-16 22:26:59 +10:00
Jeremy Avigad
eae047bd31
refactor,feat(library/{data,algebra}): move bigops to algebra, define sums
2015-05-16 18:42:13 +10:00
Jeremy Avigad
87e4f7a951
feat(library/algebra/group.lean): add coercions from additive (comm) monoid to (comm) monoid
2015-05-16 18:27:49 +10:00
Jeremy Avigad
63bb4b558a
fix(library/data/set/{classical_inverse.lean,map.lean}): protect definitions in map, to avoid ambiguity
2015-05-16 18:24:19 +10:00