Commit graph

191 commits

Author SHA1 Message Date
Leonardo de Moura
768ba1c363 refactor(library/hott): remove more unnecessary annotations 2016-02-25 14:30:00 -08:00
Leonardo de Moura
510168a387 refactor(library,hott): remove unnecessary annotations 2016-02-25 12:26:20 -08:00
Leonardo de Moura
146edde5b3 feat(library/class): mark instances as quasireducible by default
quasireducible are also known as lazyreducible.

There is a lot of work to be done.
We still need to revise blast, and add a normalizer for type class
instances. This commit worksaround that by eagerly unfolding
quasireducible.
2016-02-25 12:11:29 -08:00
Leonardo de Moura
1924b2884c refactor(library/tactic): remove 'append' and 'interleave' tacticals
Preparation for major refactoring in the tactic framework.
2016-02-24 16:02:16 -08:00
Sebastian Ullrich
3de216d302 chore(*.md): fix/remove broken links 2016-02-23 10:11:24 -08:00
Floris van Doorn
6cdbc0f79f feat(pointed/equiv): add more theorems
The theorems are mostly about the interaction between pointed equivalences and pointed homotopies
Some of these theorems were missing for (unpointed) equivalences, so I also added them there
2016-02-22 11:15:39 -08:00
Floris van Doorn
eea2a1ac91 feat(hott): add some more abstracts 2016-02-22 11:15:39 -08:00
Floris van Doorn
facd94a1b4 feat(hott): various changes
more about pointed truncated types, including pointed sets.
also increase the priority of some basic instances that nat/num/pos_num/trunc_index have 0, 1 and + (in both libraries)
also move the notation + for sum into the namespace sum, to (sometimes) avoid overloading with add
2016-02-22 11:15:38 -08:00
Floris van Doorn
087c44d614 style(hott): rename instances of pType using pfoo instead of Foo
For example, the pointed suspension operation was called Susp before this commit, but now is called psusp
2016-02-22 11:15:38 -08:00
Floris van Doorn
bac6d99cc7 style(hott): rename Pointed to pType
also rename sigma_equiv_sigma_id to sigma_equiv_sigma_right and similarly for pi
2016-02-22 11:15:38 -08:00
Floris van Doorn
43cf2ad23d style(hott): replace all other occurrences of hprop/hset
They are replaced by either Prop/Set or prop/set
2016-02-22 11:15:38 -08:00
Floris van Doorn
4e2cc66061 style(*): rename is_hprop/is_hset to is_prop/is_set 2016-02-22 11:15:38 -08:00
Floris van Doorn
816237315c feat(hott): various additions, especially for pointed maps/homotopies/equivalences 2016-02-22 11:15:38 -08:00
Floris van Doorn
ecc141779a feat(init.path): update init.path to use tactics, also some additions
Now the file hardly uses eq.rec explicitly anymore.
Also add the fact that horizontal and vertical inverses of paths are equal
Make one more argument explicit in eq.cancel_left and eq.cancel_right (to make it nicer to write 'apply cancel_right p')
2016-02-22 11:15:38 -08:00
Floris van Doorn
7f09ba328e feat(hott): small changes 2016-02-22 11:15:38 -08:00
Floris van Doorn
78092af27f feat(hott): add some attributes 2016-02-22 11:15:38 -08:00
Floris van Doorn
cd74b6bff0 fix(hott): abstract some equivalence proofs
Note: this is important. I proved a quite complicated equivalence with calc, by chaining these
equivalences. Now if I want to know the underlying function of this composite equivalence, I have to
unfold all these instances. Without the abstracts, this took 14 seconds, and afterwards, it took 2
seconds.
2016-02-22 11:15:38 -08:00
Jakob von Raumer
c0abcc7722 chore(hott): fix signature of previous lemma 2016-02-09 09:59:03 -08:00
Jakob von Raumer
3c7536cff8 chore(hott): clean up cancellability proof a bit 2016-02-09 09:58:57 -08:00
Jakob von Raumer
4d6c516c01 feat(hott): add lemma: equivalent fin sets come from equal numbers, sums with fin sets are cancellable 2016-02-09 09:58:52 -08:00
Jakob von Raumer
4edb6d7765 feat(hott): finish cancelling law for sums with unit 2016-02-09 09:58:31 -08:00
Jakob von Raumer
0ad8131985 feat(hott): start cancellation proof for sums 2016-02-09 09:58:24 -08:00
Jakob von Raumer
1042f6c29d feat(hott): port finite ordinal sets from the std library, with all things related to nat.mod and to fintype still missing.
create a logic.hlean file for further extension of the logic theory in the prelude. add distributivity lemmas for products and sums.
2016-02-09 09:58:10 -08:00
Jakob von Raumer
cb3bc1a311 feat(hott): add another constructor for pointed equivalences 2016-02-09 09:57:59 -08:00
Jakob von Raumer
7e02ea6cab feat(hott): add smash product of pointed types 2016-02-09 09:57:33 -08:00
Leonardo de Moura
30d6853ffd refactor(hott,tests): make sure HoTT library and tests still work if we introduce checkpoints in have-expressions 2016-02-04 16:58:32 -08:00
Leonardo de Moura
42fbc63bb6 fix(library/tc_multigraph): avoid name collisions
@avigad, @fpvandoorn, @rlewis1988, @dselsam

I changed how transitive instances are named.
The motivation is to avoid a naming collision problem found by Daniel.
Before this commit, we were getting an error on the following file
tests/lean/run/collision_bug.lean.

Now, transitive instances contain the prefix "_trans_".
It makes it clear this is an internal definition and it should not be used
by users.

This change also demonstrates (again) how the `rewrite` tactic is
fragile. The problem is that the matching procedure used by it has
very little support for solving matching constraints that involving type
class instances. Eventually, we will need to reimplement `rewrite`
using the new unification procedure used in blast.

In the meantime, the workaround is to use `krewrite` (as usual).
2016-02-04 13:15:42 -08:00
Ulrik Buchholtz
dcb35008e1 feat(hott/homotopy): general connectivity elimination and the wedge connectivity lemma 2016-02-04 11:07:22 -08:00
Floris van Doorn
8eab58f41a fix(choice): make some style changes 2016-01-24 16:34:45 -08:00
seulbaek
2c81c93d69 feat(hott/types/equiv): add is_trunc_equiv to equiv.hlean 2016-01-24 16:33:59 -08:00
Jakob von Raumer
aa5e188179 feat(hott): add symmetry of pushouts and pointed pushouts 2016-01-24 16:30:26 -08:00
Jakob von Raumer
664132b845 feat(hott): add calc lemmas for pointed equivalences, make pinl and pinr constructors 2016-01-24 16:30:16 -08:00
Leonardo de Moura
66a722ff5a feat(library/unifier): remove "eager delta hack", use is_def_eq when delta-constraint does not have metavariables anymore
The "eager-delta hack" was added to minimize problems in the interaction
between coercions and delta-constraints.
2016-01-03 12:39:32 -08:00
Ulrik Buchholtz
f3b2c7010f feat(hott): functoriality of quotients 2015-12-28 09:06:13 -08:00
Floris van Doorn
c852f7bc71 feat(hott): use the induction tactic for trunc at some places 2015-12-17 12:46:16 -08:00
Floris van Doorn
da5f10ce63 feat(hott): minor fixes. allow the usage of numerals for trunc_index 2015-12-17 12:46:16 -08:00
Sebastian Ullrich
2185ee7e95 feat(library/tactic): make let tactic transparent, introduce new opaque note tactic
The new let tactic is semantically equivalent to let terms, while `note`
preserves its old opaque behavior.
2015-12-14 10:14:02 -08:00
Floris van Doorn
4ef58f1ba5 chore(hott): more cleanup.
Make zero and one reducible (see algebra/port.md)
Change some theorems which need to compute into definitions
2015-12-10 10:42:16 -08:00
Floris van Doorn
c968f920ba chore(hott): cleanup 2015-12-10 10:42:16 -08:00
Floris van Doorn
65c93b180d fix(types.md): add num 2015-12-09 12:36:11 -08:00
Floris van Doorn
2325d23f68 feat(hott): port nat and int from the standard library 2015-12-09 12:36:11 -08:00
Floris van Doorn
377755e5ab feat(types/sigma): add lemma 2015-12-09 12:34:06 -08:00
Leonardo de Moura
6404c3c014 chore(hott/types/nat/order): remove occurrence of "migrate" command 2015-12-08 15:37:13 -08:00
Floris van Doorn
ae92e8c94d feat(hit/two_quotient): give dependent eliminator for two_quotients 2015-11-22 18:29:37 -08:00
Floris van Doorn
0537ef2bd9 chore(*): add me as author to files where I made nontrivial contributions 2015-11-22 14:21:26 -08:00
Floris van Doorn
74aff044ef feat(group): port three more theorems from the standard library 2015-11-22 14:21:26 -08:00
Floris van Doorn
482c68b387 feat(*/list): add some computation rules for lists in both libraries 2015-11-22 14:21:26 -08:00
Floris van Doorn
93283a4cf8 feat(list): also port part of list.comb 2015-11-22 14:21:26 -08:00
Floris van Doorn
5abc450fad feat(list): port list.basic from the standard library 2015-11-22 14:21:26 -08:00
Floris van Doorn
88a62f8e74 feat(algebra|types): small additions
add to markdown file for algebra, and add some definitions in types/
2015-11-22 14:21:25 -08:00