Commit graph

97 commits

Author SHA1 Message Date
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
Floris van Doorn
c852f7bc71 feat(hott): use the induction tactic for trunc at some places 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
2325d23f68 feat(hott): port nat and int from the standard library 2015-12-09 12:36:11 -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
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
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
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
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
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
744d1cba3d feat(library,hott,frontends/lean): avoid keywords with hyphen 2015-11-08 14:04:54 -08:00
Floris van Doorn
115dedbd1c fix(hott): notation spacing and markdown files 2015-10-02 16:26:10 -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
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
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
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
189293b5d4 fix(init.path): rename transport_compose to tr_compose 2015-08-07 13:34:41 -07: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
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
de90926eed refactor(hott): adjust HoTT library to new support for projections 2015-06-26 17:18:30 -07: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
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
5830d7d037 refactor(hott/algebra/category/yoneda): reduce compilation time using 'rewrite' tactic 2015-06-18 15:52:08 -07:00
Leonardo de Moura
62e1be897c test(hott/algebra/category): test new 'abstract ... end' expression in the HoTT library 2015-06-12 17:53:01 -07:00