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
Floris van Doorn
42b78962f9
feat(init/wf): simplify definition acc.drec
2016-02-09 10:03:48 -08:00
Floris van Doorn
e14d4a4c0c
feat(init/wf): port from standard library to HoTT library
...
After this commit we need some more advanced theorems in init/wf, notably function extenstionality.
For this reason I had to refactor the init folder a little bit.
To keep the init folders in both libraries similar, I did the same refactorization in the standard library, even though that was not required for the standard library
2016-02-09 10:03:48 -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
62e1431f04
chore(hott): delay lemmas about smash product until I have more ideas on how to tackle the coherence there.
2016-02-09 09:58:17 -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
23dec19aa7
feat(hott): start lemma about smashing with bool
2016-02-09 09:57:52 -08:00
Jakob von Raumer
8bc4206c62
feat(hott): add custom recursors for cofiber type
2016-02-09 09:57:47 -08:00
Jakob von Raumer
31e2653e58
feat(hott): add lemma: cofiber of terminal morphism is suspension
2016-02-09 09:57:39 -08:00
Jakob von Raumer
7e02ea6cab
feat(hott): add smash product of pointed types
2016-02-09 09:57:33 -08:00
Jakob von Raumer
ce8ca64771
feat(hott): adjust small things in wedge theory
2016-02-09 09:57:27 -08:00
Jakob von Raumer
56cd88267c
feat(hott): add cofiber of a function, prove lemma that cofibers of equivalences are contractible
2016-02-09 09:57:21 -08:00
Floris van Doorn
ec38ee8df8
fix(hott/init/tactic): add replace
2016-02-07 14:06:28 -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
29c84aad19
fix(book.md): add types.arrow to 2.9
...
closes #976
2016-01-26 20:40:22 -08:00
Floris van Doorn
3409deecdb
chore(hott): update md files, move port.md
2016-01-24 16:34:45 -08:00
Floris van Doorn
8eab58f41a
fix(choice): make some style changes
2016-01-24 16:34:45 -08:00
seulbaek
92d6806073
refactor(hott/choice): rename 3.8.5
2016-01-24 16:34:35 -08:00
seulbaek
107550238b
refactor(hott/choice): rename lemmas for 3.8.2
2016-01-24 16:34:23 -08:00
seulbaek
d42f3d313f
feat(hott): add choice.hlean
2016-01-24 16:34:12 -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
d8d3b0c0b2
feat(hott): add wedge sum of pointed types, neutrality of wedging with the unit type
2016-01-24 16:30:21 -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
Jakob von Raumer
8d22e454e7
feat(hott): add theory about pointed pushouts
2016-01-24 16:30:12 -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
Leonardo de Moura
b117a10f82
refactor(library/blast/simplifier): use priority_queue to store simp/congr lemmas, use name convention used at forward/backward lemmas, normalize lemmas when blast starts, cache get_simp_lemmas
2015-12-28 17:52:57 -08:00
Leonardo de Moura
f177082c3b
refactor(*): normalize metaclass names
...
@avigad and @fpvandoorn, I changed the metaclasses names. They
were not uniform:
- The plural was used in some cases (e.g., [coercions]).
- In other cases a cryptic name was used (e.g., [brs]).
Now, I tried to use the attribute name as the metaclass name whenever
possible. For example, we write
definition foo [coercion] ...
definition bla [forward] ...
and
open [coercion] nat
open [forward] nat
It is easier to remember and is uniform.
2015-12-28 10:39:15 -08:00
Ulrik Buchholtz
b09fdc8c61
feat(hott/hit): flattening lemmas for coeq and pushout
2015-12-28 09:06:13 -08:00
Ulrik Buchholtz
f3b2c7010f
feat(hott): functoriality of quotients
2015-12-28 09:06:13 -08:00
Leonardo de Moura
128b557d37
refactor(frontends/lean): use attribute_manager to simplify decl_attributes
2015-12-17 22:28:53 -08:00
Floris van Doorn
74366aa061
fix(hott): change some theorems to definitions
...
This ensures that the HoTT library compiles with the option --to_axiom
2015-12-17 12:46:16 -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
Leonardo de Moura
61ecf018e9
feat(frontends/lean,library/tactic): add easy tactic parsing support for at ...
and with ...
2015-12-17 12:18:32 -08:00
Leonardo de Moura
c824a0e050
chore(library,hott): enforce naming conventions
2015-12-17 11:36:58 -08:00
Leonardo de Moura
13419d1561
chore(hott/library): cleanup
2015-12-17 11:31:07 -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