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