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
Jeremy Avigad
26ad6dde69
fix(library/data/fintype.lean): reduce imports, to avoid cyclic dependencies
2015-05-16 17:53:35 +10:00
Jeremy Avigad
daf53e4de2
fix(library/algebra/order.lean): rename decidable_eq to had_decidable_eq to avoid conflict
2015-05-16 17:53:35 +10:00
Jeremy Avigad
81d0d4aa53
fix(library/data/{set,finset}/basic.lean: delete \{{ \}}} notation (conflicts with records)
2015-05-16 17:53:35 +10:00
Sebastian Ullrich
77c20e99ff
feat(library/tactic/inversion_tactic): consistent orientation of generated equalities
...
Generated equalities in proof irrelevant environments were inverted
compared with the documentation and the proof relevant case, which
resulted in newly generated local vars replacing equivalent old ones
instead of the other way around.
2015-05-14 23:32:54 +02:00
Jeremy Avigad
8de6a4bb4c
feat(library/algebra/group_pow.lean,library/data/nat/power.lean): add generic power operation on monoids and groups
2015-05-13 22:19:02 -07:00
Leonardo de Moura
51a30892a1
chore(examples/ex): move example to library
2015-05-13 17:07:10 -07:00
Leonardo de Moura
065a1f7501
feat(library/tactic): add 'induction' tactic skeleton
2015-05-12 20:21:25 -07:00
Jeremy Avigad
05e28aaf19
feat(library/data/nat/{basic.lean,order.lean}): use migrate
2015-05-12 06:20:51 -07:00
Jeremy Avigad
42616f766f
refactor(library/data/{nat,int,rat}/{basic.lean,order.lean}: make algebra instance declarations local
2015-05-12 06:20:47 -07:00
Leonardo de Moura
f25c301c98
fix(library/data/rat): migrate for rat
2015-05-12 04:46:34 -07:00
Leonardo de Moura
d2adf922b7
refactor(library/data/int): use "migrate" command
2015-05-12 04:24:13 -07:00
Leonardo de Moura
396f77aa68
fix(library,hott): comment 'exit' commands to avoid warnings during compilation
2015-05-11 11:49:23 -07:00
Leonardo de Moura
f59a81d744
refactor(library/data): use new 'obtain' expression
2015-05-11 09:14:48 -07:00
Jeremy Avigad
a009cf24e3
feat(library/data/finset/{basic,card,comb}.lean: add theorems, including card of an injective image
2015-05-11 09:03:57 -07:00
Jeremy Avigad
3e07716b5d
feat(library/data/finset/to_set.lean): add finset/set translation theorems
2015-05-11 09:03:56 -07:00
Jeremy Avigad
efbca4c78e
feat(library/data/finset/finset.md): add markdown file
2015-05-11 09:03:56 -07:00
Jeremy Avigad
9d73aa657b
feat(library/data/{finset,list}/comb.lean): add 'any' for finsets
2015-05-11 09:03:56 -07:00
Leonardo de Moura
379af8a04e
feat(library): avoid 'definition' hack for theorems
2015-05-09 12:15:30 -07:00
Leonardo de Moura
bd28396be0
feat(kernel): transparent theorems
...
closes #576
2015-05-09 11:42:29 -07:00
Leonardo de Moura
8086ad7461
feat(library/init): define quot.hrec_on and quot.hrec_on₂ based on heterogeneous equality
...
They are easier to use than the version with nested eq.rec's
2015-05-09 09:49:41 -07:00
Leonardo de Moura
4f0f739ea6
feat(library): remove occurrences of 'opaque' keyword
2015-05-08 16:40:03 -07:00
Leonardo de Moura
6c958a25e7
refactor(library/tactic/expr_to_tactic): make sure builtin tactics don't need to be marked opaque
...
This modification is needed since we will remove opaque definitions from
the kernel.
see issue #576
2015-05-08 16:06:16 -07:00
Leonardo de Moura
57ea660963
refactor(*): start process for eliminating of opaque
definitions from the kernel
...
see issue #576
2015-05-08 16:06:04 -07:00
Leonardo de Moura
3aac370629
fix(library/data/finset/basic): type error on the finset.induction proof
2015-05-08 11:08:24 -07:00
Jeremy Avigad
624b664950
refactor(library/data/list/basic.lean): make minor renaming
2015-05-08 20:25:28 +10:00
Jeremy Avigad
75e50fd371
feat(library/data): update defaults and markdown files
2015-05-08 20:23:15 +10:00
Jeremy Avigad
b56f7a06d5
refactor(library/data/finset/bigop.lean): use inter eq empty rather than disjoint
2015-05-08 20:06:21 +10:00
Jeremy Avigad
6fce01385c
feat(library/data/{finset,list}/bigop.lean: generalize bigops from group to monoid
2015-05-08 19:51:37 +10:00
Jeremy Avigad
42f2fc973a
refactor(library/data/{finset,list,fintype}: rename cross_product to product
2015-05-08 19:51:37 +10:00
Jeremy Avigad
68f7afa053
feat(library/data/finset/card.lean): begin theory of cardinality
2015-05-08 19:51:37 +10:00
Jeremy Avigad
9e04d09381
feat(library/data/finset/comb.lean): add filter, diff, theorems
2015-05-08 19:51:37 +10:00
Jeremy Avigad
4db4c86d37
feat(library/data/finset/basic.lean): add lots of theorems, do minor renaming
2015-05-08 19:51:37 +10:00
Jeremy Avigad
a54a98c1ec
feat(library/data/set): add distributivity, diff, uniformize with finset
2015-05-08 19:51:37 +10:00
Jeremy Avigad
9e26dddaf3
feat(library/data/list/perm): add perm_filter
2015-05-08 19:51:37 +10:00
Jeremy Avigad
86a039b6d5
feat(library/data/list/set.lean): add two theorems
2015-05-08 19:51:37 +10:00
Jeremy Avigad
e4c75ae8ae
feat(library/logic/connective.lean): add distributivity laws
2015-05-08 19:51:37 +10:00
Jeremy Avigad
ba78cc42f9
fix(library/data/set/basic.lean, function.lean): fix typos
2015-05-08 19:51:37 +10:00
Leonardo de Moura
0b57f7d00a
refactor(library/tactic): refine interface between tactic and proof-term modes
...
Some constraints were being lost with the previous interface.
This is why we had a workaround in fintype.lean.
We can also remove some hacks we have used in the past.
2015-05-07 18:02:51 -07:00
Floris van Doorn
9893de6194
feat(hit/circle): prove partly that the fundamental group of the circle is int
...
Also add markdown files for nat and int
2015-05-07 16:39:04 -07:00
Floris van Doorn
0a8f4f6dab
feat(function): add unfold hints to function.[h]lean
2015-05-07 16:39:03 -07:00
Floris van Doorn
7cfac38eda
feat(hott): port parts of natural numbers and integers from standard library to HoTT
...
This also involves:
- adding definitions about logic and natural numbers existing in the standard library to init
- porting the current algebraic hierarchy
2015-05-07 16:39:03 -07:00
Leonardo de Moura
e2c1dc92a8
chore(library/data/fintype): add workaround until problem in the elaborator is fixed
2015-05-07 16:32:26 -07:00
Leonardo de Moura
aff9257c72
feat(frontends/lean): allow → to be used in calc proofs
...
see issue #586
2015-05-07 12:28:47 -07:00
Leonardo de Moura
b03266be70
feat(library/normalize,frontends/lean): rename '[unfold-m]' hint to '[constructor]', and allow it to be attached to constants
...
closes #587
2015-05-07 12:00:34 -07:00
Leonardo de Moura
5798ac43de
fix(frontends/lean/structure_cmd): 'structure' command must set unfold-c attribute for auxiliary recursors
...
fixes #582
2015-05-07 09:09:07 -07:00
Leonardo de Moura
64cc710ff7
refactor(ordered_group): replace 'match' with 'obtain'
2015-05-06 10:34:43 -07:00
Leonardo de Moura
84deddcca9
feat(library/tactic/rewrite_tactic): apply 'reflexivity' tactic after 'rewrite' instead of hard coded solution
2015-05-05 20:23:49 -07:00
Leonardo de Moura
7aa0e466a5
test(library): test new 'obtain' expression in the standard library
2015-05-05 18:30:16 -07:00
Leonardo de Moura
616f49c2e4
feat(frontends/lean): improved 'obtains' expression
2015-05-05 18:30:16 -07:00
Jeremy Avigad
f7a610faa3
feat(library/data/set/basic,function): mark set reducible, and add theorem from Haitao Zhang
2015-05-05 08:55:58 -07:00
Leonardo de Moura
11f74363e2
refactor(library): rename 'intersection' to 'inter' in list and finset, add finset abbreviation at top level
2015-05-05 08:53:31 -07:00
Leonardo de Moura
a46abbb9ce
refactor(library/data): test new tactics in the standard library
2015-05-03 21:40:33 -07:00
Leonardo de Moura
3cd8f38b8d
feat(library/data/string): prove that string and char have decidable equality
2015-05-03 21:08:09 -07:00
Leonardo de Moura
4e1146a2d5
refactor(hott,library): test new tactics in the HoTT and standard libraries
2015-05-02 22:22:31 -07:00
Leonardo de Moura
b39fe17dee
feat(library/tactic): add 'transitiviy', 'reflexivity' and 'symmetry' tactics
...
closes #500
2015-05-02 15:48:25 -07:00
Leonardo de Moura
cd17618f4a
refactor(library): replace 'calc_trans', 'calc_symm', 'calc_refl' and 'calc_subst' commands with attributes '[symm]', '[refl]', '[trans]' and '[subst]'
...
These attributes are used by the calc command.
They will also be used by tactics such as 'reflexivity', 'symmetry' and
'transitivity'.
See issue #500
2015-05-02 15:15:35 -07:00
Leonardo de Moura
415ca2b93f
feat(library/tactic): add 'congruence' tactic
...
It is the f_equal described at issue #500 .
2015-05-02 12:58:46 -07:00
Leonardo de Moura
458d13025f
refactor(library,hott): define 'congr' in the initialization files
2015-05-02 11:29:31 -07:00
Leonardo de Moura
ac8ba6a3cf
feat(library/tactic): add 'subst' tactic
...
see issue #500
2015-05-01 19:31:24 -07:00
Leonardo de Moura
e8affed020
refactor(library): test new tactics in the standard library
2015-05-01 18:18:29 -07:00
Leonardo de Moura
de369a0a0a
feat(library/tactic/injection_tactic): improve 'injection' tactic
...
see issue #500
2015-05-01 15:49:56 -07:00
Leonardo de Moura
9ba8b284a1
fix(library/tactic/apply_tactic): add eapply, and fix issue #361
2015-05-01 15:08:00 -07:00
Leonardo de Moura
e948dd239c
feat(library/data/list/perm): use new 'injection' tactic
2015-05-01 13:08:36 -07:00
Leonardo de Moura
63eb155c7e
feat(library/tactic): add 'injection' tactic
...
see issue #500
2015-05-01 12:45:21 -07:00
Leonardo de Moura
1e18a76bdb
chore(library/init/nat): replace 'no_confusion' with 'by contradiction'
2015-04-30 21:26:52 -07:00
Leonardo de Moura
2d9c950144
feat(library/tactic/constructor_tactic): allow 'constructor' tactic without index
...
see issue #500
2015-04-30 21:15:07 -07:00
Leonardo de Moura
d152f38518
feat(library/tactic): add 'constructor', 'split', 'left', 'right' and 'existsi' tactics
...
see issue #500
2015-04-30 17:52:29 -07:00