Commit graph

599 commits

Author SHA1 Message Date
Floris van Doorn
c64e5a114c feat(circle): add missing facts that the circle is 1-truncated and 0-connected 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
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
Leonardo de Moura
e3a35ba4fd feat(frontends/lean): add 'with_attributes' tactical
closes #494
2015-12-13 18:27:44 -08:00
Leonardo de Moura
d4e49a8434 feat(library/tactic/intros_tactic): intro without argument should introduce a single variable
see #695
2015-12-13 16:28:39 -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
46739c8b70 feat(hott/algebra): port abstract structures 2015-12-09 12:34:06 -08:00
Floris van Doorn
14a2c8e444 fix(init/nat): add spaces around inequalities 2015-12-09 12:34:06 -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
Leonardo de Moura
85379b7706 feat(library/blast/actions/simple_actions): make sure contradiction action works even if classical logic support is not enabled
not (not (not a)) -> not a
2015-12-07 09:30:14 -08:00
Jakob von Raumer
cc8a5581d6 chore(hott/cubical): add lost space hints around square concatenations 2015-12-02 23:13:25 -08:00
Jakob von Raumer
68901c7788 feat(hott/homotopy): complete join associativity proof, helper lemmas for squares 2015-12-02 23:13:21 -08:00
Jakob von Raumer
bd064ef9c8 feat(hott/homotopy): prove missing helper lemmas up to cube massaging 2015-12-02 23:13:17 -08:00
Jakob von Raumer
811f3067ff feat(hott): join associativity proof done up to small auxiliary lemmas, add transposition, inversion of cubes 2015-12-02 23:13:12 -08:00
Jakob von Raumer
1d68d57bb9 chore(hott/cubical): adapt cubovers to new order of faces 2015-12-02 23:13:07 -08:00
Jakob von Raumer
e481e541a2 feat(hott/homotopy): more progress on join associativity 2015-12-02 23:13:03 -08:00
Jakob von Raumer
6c6dde7e48 feat(hott/homotopy): progress on join associativity, many coherence lemmas about square operations needed 2015-12-02 23:12:59 -08:00
Jakob von Raumer
1b52ae8858 feat(hott/cubical): add cube concatenations 2015-12-02 23:12:54 -08:00
Jakob von Raumer
3f1cf3835f chore(hott/cubical): change order of visible arguments in cube 2015-12-02 23:12:50 -08:00
Jakob von Raumer
54b1d1a9fe feat(hott/homotopy): more steps towards join associativity, cube composition 2015-12-02 23:12:46 -08:00
Jakob von Raumer
e1e8680474 feat(hott/homotopy): continue defining squares for join associativity 2015-12-02 23:12:41 -08:00
Jakob von Raumer
2bc45f4de1 feat(hott/cubical): add cubes which are degenerate in one dimension 2015-12-02 23:12:37 -08:00
Jakob von Raumer
bba6ab5a6d feat(hott/cubical): add fillers and other little lemmas for squares and cubes 2015-12-02 23:12:34 -08:00
Jakob von Raumer
12a498d411 feat(hott/homotopy): add join switch and derive associativity from switch 2015-12-02 23:12:29 -08:00
Jakob von Raumer
149e5fff9f feat(hott/homotopy): add commutativity proof for join 2015-12-02 23:12:24 -08:00
Jakob von Raumer
eea219e33f feat(hott/homotopy): start associativity proof for join 2015-12-02 23:12:19 -08:00
Floris van Doorn
c44ad80e4e feat(homotopy/torus): give recursion and induction principle for the torus
also change the surface of the torus to a square instead of an equality between paths
2015-11-22 18:29:37 -08:00
Floris van Doorn
fe8a858d79 feat(hott): add recursor to refl_quotient 2015-11-22 18:29:37 -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
cc03ca9c6d fix(reserved_notation): make :: bind stronger than ++
this allows us to write l1 ++ a :: l2 without parentheses
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
Floris van Doorn
5328486d49 feat(hit): add elimination rule to propositions 2015-11-22 14:21:25 -08:00
Floris van Doorn
5b8486a34f feat(set_quotient): add some properties for set_quotients 2015-11-22 14:21:25 -08:00
Floris van Doorn
45d808ce7f feat(homotopy/circle): give all higher homotopy groups of the circle 2015-11-22 14:21:25 -08:00
Floris van Doorn
810a399699 style(homotopy/circle): clean-up encode-decode proof 2015-11-22 14:21:25 -08:00
Leonardo de Moura
491c7c55e1 feat(library/simplifier/simp_rule_set): add priorities for simp and congr rules 2015-11-16 22:34:06 -08:00
Floris van Doorn
9e492a8771 feat(category): more about adjoint functors
This commit has multiple unfinished proofs (commented out)
2015-11-16 21:32:09 -08:00
Floris van Doorn
f866f71491 feat(algebra/e_closure): add some support for dependent elimination of two_quotients 2015-11-16 21:32:09 -08:00
Floris van Doorn
206bcd4b2a feat(algebra/homotopy_group): define homotopy groups 2015-11-16 21:32:09 -08:00
Floris van Doorn
47be1e3a15 feat(types/pointed): change definition of loop space 2015-11-16 21:32:09 -08:00
Floris van Doorn
d402b67d25 feat(hott/function): show that a function is embedding iff it has propositional fibers 2015-11-16 21:32:09 -08:00
Floris van Doorn
5c1bf1e777 fix(hott): delete empty file 2015-11-16 21:32:09 -08:00
Floris van Doorn
e00ccff6de fix(hott): make sure the HoTT library compiles with --to_axiom 2015-11-16 21:32:09 -08:00
Leonardo de Moura
4d68e2a520 feat(library,hott): add eq.mpr and eq.mp lemmas 2015-11-14 15:40:47 -08:00
Leonardo de Moura
5ceac83b6a feat(frontends/lean/elaborator): restrict the number of places where coercions are considered
We do not consider coercions around meta-variables anymore.
2015-11-11 12:37:19 -08:00
Leonardo de Moura
9bedbbb739 refactor(library,hott): remove coercions between algebraic structures
They are classes, and mixing coercion with type class resolution is a
recipe for disaster (aka counterintuitive behavior).
2015-11-11 11:57:44 -08:00
Ulrik Buchholtz
0eb070e183 fix(hott/book.md): align with previous commit 2015-11-08 14:21:27 -08:00
Ulrik Buchholtz
aebb88d42b feat(hott/homotopy): connectedness, including HoTT Thm 8.2.1 2015-11-08 14:21:16 -08:00
Leonardo de Moura
a07598a3ec feat(hott/init/logic): congr_fun was missing in the HoTT library, blast assumes it is part of the environment 2015-11-08 14:05:03 -08:00
Leonardo de Moura
01259a2d1c feat(library/app_builder): add helper functions for creating eq.rec applications 2015-11-08 14:05:01 -08:00
Floris van Doorn
4828afa781 fix(hott): small fixes after rebasing 2015-11-08 14:04:59 -08:00
Floris van Doorn
5e4441cb43 fix(functor.equivalence): comment out sorry's 2015-11-08 14:04:59 -08:00
Floris van Doorn
49cb516c71 feat(category.limit): prove that the limit functor is right adjoint to the diagonal map 2015-11-08 14:04:59 -08:00
Floris van Doorn
36dfb61a3e feat(category.limits): prove that yoneda preserves limits 2015-11-08 14:04:59 -08:00
Floris van Doorn
46dba4ee5e refactor(category): move some files to subfolders, and create file with basic functors 2015-11-08 14:04:59 -08:00
Floris van Doorn
e14754a337 feat(category): start on proof of yoneda preserves limits and limit functor is left adjoint 2015-11-08 14:04:59 -08:00
Floris van Doorn
a99a99f047 feat(hit/quotient): prove the flattening lemma 2015-11-08 14:04:59 -08:00
Floris van Doorn
aa9f32a3bd fix(init/equiv): make transport not an instance 2015-11-08 14:04:59 -08:00
Floris van Doorn
f2d07ca23c feat(category): various small changes in category theory 2015-11-08 14:04:59 -08:00
Floris van Doorn
de1c47eda9 feat(categories): add exponential laws for categories
also give nicer rules to construct equalities between (pre)categories
2015-11-08 14:04:59 -08:00
Floris van Doorn
0e7b7af1da refactor(category): add new folder functor, split adjoint file into separate files 2015-11-08 14:04:59 -08:00
Floris van Doorn
3f0d8c0a8c feat(category.adjoint): prove more about functors 2015-11-08 14:04:58 -08:00
Floris van Doorn
18ec5f8b85 feat(categories): prove introduction rule for equivalences 2015-11-08 14:04:58 -08:00
Floris van Doorn
448178a045 feat(category.functor2): prove that the category of functors is complete and cocomplete if the codomain is 2015-11-08 14:04:58 -08:00
Floris van Doorn
3b7afad6ad feat(category.hset): prove that the category of sets is cocomplete 2015-11-08 14:04:58 -08:00
Floris van Doorn
c7fd29f854 feat(category): start with the introduction rule for equivalences 2015-11-08 14:04:58 -08:00
Leonardo de Moura
50186e2db3 feat(library/class_instance_resolution): add old type class resolution procedure back to be able to compile HoTT library 2015-11-08 14:04:58 -08:00
Leonardo de Moura
d1e111fd6c fix(hott,frontends/lean,library,library/tactic): make sure we can still compile the HoTT library 2015-11-08 14:04:55 -08:00
Leonardo de Moura
8ee214f133 checkpoint: new numeral encoding 2015-11-08 14:04:55 -08:00
Leonardo de Moura
744d1cba3d feat(library,hott,frontends/lean): avoid keywords with hyphen 2015-11-08 14:04:54 -08:00
Jakob von Raumer
d508ceccec feat(hott/homotpy) add join operator, and prove two basic lemmas 2015-10-13 09:59:24 -07:00
Floris van Doorn
115dedbd1c fix(hott): notation spacing and markdown files 2015-10-02 16:26:10 -07:00
Leonardo de Moura
ede23a3267 feat(hott,library): add additional spacing hints 2015-09-30 17:41:44 -07:00
Floris van Doorn
aac13a2ee7 fix(hott): minor changes to merge ulrik and my commits 2015-09-28 09:09:22 -07:00
Floris van Doorn
2264759060 feat(category): define colimits as dual of limits 2015-09-28 09:09:22 -07:00
Floris van Doorn
df73931a6d feat(category.opposite): prove that the opposite of a univalent category is univalent 2015-09-28 09:09:22 -07:00
Floris van Doorn
099bd95ebd feat(category.limits): prove that being complete is a mere proposition for categories 2015-09-28 09:09:22 -07:00
Floris van Doorn
51edd0ad1d feat(category.constructions.hset): prove that the category of sets is complete 2015-09-28 09:09:22 -07:00
Floris van Doorn
f82d1bd566 feat(category): add limits in a category 2015-09-28 09:09:22 -07:00
Floris van Doorn
6e23305c5d feat(category): define terminal, initial, indiscrete and sum category 2015-09-28 09:09:21 -07:00
Floris van Doorn
3c4c722afd feat(hott): port more from chapters 4 and 6 of the book 2015-09-28 09:09:21 -07:00
Ulrik Buchholtz
c6f3f6f3f4 feat(hott): prove HoTT book 7.5.4 and 7.5.5 2015-09-28 09:09:21 -07:00
Ulrik Buchholtz
25ed9d6e5a feat(hott): prove HoTT book Theorem 4.7.7 2015-09-28 09:09:21 -07:00
Ulrik Buchholtz
ed1029641a fix(hott/*): update book.md and clean up homotopy.connectedness 2015-09-28 09:09:21 -07:00
Ulrik Buchholtz
2c22501084 feat(hott): prove HoTT book Theorem 4.7.6 2015-09-28 09:09:21 -07:00
Leonardo de Moura
33f46fd137 feat(library/blast): parse blast tactic and invoke stub 2015-09-25 12:45:16 -07:00
Leonardo de Moura
4a6ff8058d fix(hott): import commands (some files have been moved to different directories) 2015-09-25 09:39:45 -07:00
Ulrik Buchholtz
384a366e0f refactor(hott): move homotopy hits to new homotopy folder 2015-09-24 22:52:33 -04:00
Floris van Doorn
732897340d fix(types): change some definitions to theorems 2015-09-11 23:35:21 -07:00
Floris van Doorn
fb364f8bc7 feat(types): add more equivalences between combinations of type constructors 2015-09-11 23:35:21 -07:00
Floris van Doorn
e84b22864f feat(hott): various changes in the HoTT library 2015-09-11 23:35:21 -07:00
Floris van Doorn
bd3aa9cf54 feat(category): prove Theorem 9.5.9 from the HoTT book 2015-09-11 23:35:21 -07:00
Floris van Doorn
1a3b363467 feat(category): prove that the yoneda embedding is an embedding 2015-09-11 23:35:21 -07:00
Floris van Doorn
fd89aa77a3 feat(hott): prove Yoneda lemma 2015-09-11 23:35:21 -07:00
Floris van Doorn
817d691237 fix(hott/init/nat): also define ℕ in the top-level in HoTT 2015-09-11 23:35:21 -07:00
Leonardo de Moura
cae2271818 refactor(hott/algebra/category/adjoint): rewrite expensive proof
see #815
2015-09-01 16:59:14 -07:00
Floris van Doorn
a8964adb9c fix(hott): make sure there are no sorry's visible 2015-09-01 15:17:46 -07:00
Floris van Doorn
7e52c49dce feat(hott): many changes is the HoTT library
Prove that 'is_left_adjoint F' is a mere proposition, although this proof is commented out because it takes ~10 seconds
2015-09-01 15:17:46 -07:00
Floris van Doorn
f555120428 feat(types/eq): add general encode-decode method 2015-09-01 15:17:46 -07:00
Floris van Doorn
f4892db432 feat(types.trunc): prove the principle of unique choice 2015-09-01 15:17:46 -07:00
Floris van Doorn
c24fd508b6 feat(hott/types): add more about pathovers in type constructors, prove that double negation elimination doesn't hold universally 2015-09-01 15:17:46 -07:00
Floris van Doorn
cfddfdfa84 feat(hott/types): add characterization of lift, prove that Type.{u} is not an hset 2015-09-01 15:17:46 -07:00
Leonardo de Moura
582dbecfd0 feat(library,hott): add notation T1 : T2 as syntax sugar for (focus (T1; all_goals T2))
closes #775
2015-08-08 10:16:25 -07:00
Floris van Doorn
ad5cda48a8 refactor(hott): move cubical folder and files eq2, function and hprop_trunc from types/ to the root HoTT directory 2015-08-07 13:34:41 -07:00
Floris van Doorn
e51ba09a27 feat(hott): add types.sum, greatly expand types.prod, minor changes in types.sigma and types.pi 2015-08-07 13:34:41 -07:00
Floris van Doorn
3d2a6a08a4 feat(hott/nat): add characterization of equality in nat 2015-08-07 13:34:41 -07:00
Floris van Doorn
189293b5d4 fix(init.path): rename transport_compose to tr_compose 2015-08-07 13:34:41 -07:00
Floris van Doorn
d111607890 feat(hott): add file which maps sections of the HoTT book to the HoTT library 2015-08-07 13:34:41 -07:00
Floris van Doorn
f3ba81a19d fix(init.path): a couple of small simplifications 2015-08-07 13:34:40 -07:00
Floris van Doorn
0ec525a8ee feat(two_quotient): finish proof of elim_incl2 2015-08-07 13:34:40 -07:00
Floris van Doorn
11b1f416f6 feat(nat): add unfold attributes to add, mul, sub and of_num in namespace nat_esimp in both libraries 2015-08-04 13:23:20 +02:00
Floris van Doorn
747d12a385 feat(hott): prove characterization of a pathover in a pathover-type 2015-08-04 13:01:12 +02:00
Floris van Doorn
e198be318f feat(circle): show that x = x in the circle is always Z 2015-08-04 13:01:11 +02:00
Floris van Doorn
7a780b1b60 feat(hott): various minor changes in the HoTT library 2015-08-04 13:01:11 +02:00
Leonardo de Moura
b3cd3efbb4 refactor(hott): fix "sorry"s at int/basic.hlean, and comment the remaining "sorry"s 2015-07-27 08:34:11 -07:00
Leonardo de Moura
e969c7a8d6 refactor(library): remove 'simp' hack 2015-07-22 10:13:19 -07: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
38d5c361df refactor(hott/types/trunc): remove unnecessary fold
The new unfold tactic performs the fold automatically for us.

see issue #692
2015-07-12 13:07:18 -04:00
Leonardo de Moura
584f9e3f49 fix(library/tactic/unfold_rec): support indexed families at unfold_rec
This commit also removes many (now unnecessary) folds from the HoTT
library.

See issue #692

We still have to implement support for recursive definitions based on
brec_on that recurse over inductive families.
2015-07-12 12:32:58 -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
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
68785b8bed fix(library/tactic/generalize_tactic): fixes #711 2015-06-26 19:35:30 -07:00
Leonardo de Moura
de90926eed refactor(hott): adjust HoTT library to new support for projections 2015-06-26 17:18:30 -07:00
Floris van Doorn
69f91bfd86 fix(types/nat/hott): workaround failed inductions 2015-06-25 23:13:47 -04:00
Floris van Doorn
24762fe843 feat(hit): add hits with 2-path constructors
In hit.two_quotient we define a general construction to define hits with 2-dimensional path constructors, similar to quotients.
We can add 2-paths between any two 'words', where a word consists of 1-path constructors, concatenation and inverses.
We use this to define the torus, reflexive quotients and the reduced suspension.

There is still one 'sorry' in the construction
2015-06-25 22:31:41 -04:00
Floris van Doorn
df3ce2b00b feat(types/eq2): add theorem about eq_of_con_inv_eq_idp 2015-06-25 22:31:41 -04:00
Floris van Doorn
c8eee66c5b feat(hott/relation): add equivalence closure of a relation 2015-06-25 22:31:41 -04:00
Floris van Doorn
b94b66243e feat(hott/types): add some theorems about operations of 2-paths 2015-06-25 22:31:41 -04:00
Floris van Doorn
ea0f57aef5 feat(hott): various clean-up and small additions 2015-06-25 22:31:40 -04:00
Floris van Doorn
2748525c21 feat(hit/susp): finish the proof that loop space is adjoint to the suspension 2015-06-25 22:31:40 -04: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
ac03bf7a4a feat(hott/nat): prove computation rule for cases by inequality 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
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
Leonardo de Moura
cfafc90cc0 refactor(hott,library): make sure files compile even without using "projection macros" 2015-06-22 12:22:11 -07:00
Leonardo de Moura
e382f7c2f9 refactor(hott/algebra/field): cleanup
use same definition used in the standard library.
2015-06-21 15:58:54 -07:00
Leonardo de Moura
5830d7d037 refactor(hott/algebra/category/yoneda): reduce compilation time using 'rewrite' tactic 2015-06-18 15:52:08 -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
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