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
Leonardo de Moura
8b7dc4e03a
feat(frontends/lean): apply eta-reduction in postprocessing step
...
Perhaps, we should add an option to disable this new feature.
Remark: this commit makes commit 46d418a
redundant.
I'm keeping 46d418a
because we may retract this commit in the future.
2015-06-10 16:29:30 -07:00
Leonardo de Moura
6f6848968d
feat(frontends/lean/coercion_elaborator): "coercion lifting" for backtracking case
...
closes #252
2015-05-30 16:44:26 -07:00
Floris van Doorn
4a29f4bdd4
feat(types): incorporate pathovers in the files of the types folder
...
Conflicts:
hott/cubical/pathover.hlean
2015-05-26 21:37:01 -07:00
Floris van Doorn
0b12d51b25
feat(hott): use pathovers in all the recursors of hits
...
move pathover file to the init folder
2015-05-26 21:37:01 -07:00
Floris van Doorn
54ed8a8e76
feat(hott): small changes in init and category
2015-05-26 21:37:01 -07:00
Jeremy Avigad
33214f0895
refactor(hott/*): remove 'Module:' lines
2015-05-23 20:52:58 +10:00
Leonardo de Moura
e1c2340db2
fix(frontends/lean): consistent behavior for protected declarations
...
see https://github.com/leanprover/lean/issues/604#issuecomment-103265608
closes #609
2015-05-18 22:35:18 -07:00
Floris van Doorn
c430d1d5ba
feat(category.constructions): define comma category
2015-05-18 15:59:55 -07:00
Floris van Doorn
eedf1992bf
feat(functor): prove sorry's, and shorten some proofs
2015-05-18 15:59:55 -07:00
Floris van Doorn
2144036cdb
feat(hott.circle): prove that the fundamental group of the circle is equal to the integers, as groups
...
Also many minor fixes at various places
2015-05-18 15:59:55 -07:00
Leonardo de Moura
19361f0196
feat(library/unifier): do not fire type class resolution as last resort when type contains metavariables
...
see discussion at #604
2015-05-18 15:45:23 -07:00
Leonardo de Moura
0b57f7d00a
refactor(library/tactic): refine interface between tactic and proof-term modes
...
Some constraints were being lost with the previous interface.
This is why we had a workaround in fintype.lean.
We can also remove some hacks we have used in the past.
2015-05-07 18:02:51 -07:00
Floris van Doorn
7cfac38eda
feat(hott): port parts of natural numbers and integers from standard library to HoTT
...
This also involves:
- adding definitions about logic and natural numbers existing in the standard library to init
- porting the current algebraic hierarchy
2015-05-07 16:39:03 -07:00
Floris van Doorn
90f1a691fd
feat(hott): change notation of transport to correspond with standard library
2015-05-07 16:39:03 -07:00
Floris van Doorn
8b4756f9c8
feat(hott): port nat from standard library to HoTT library; make script to port files
2015-05-07 16:39:03 -07:00
Leonardo de Moura
21ee0a5ff9
refactor(hott/algebra/category/constructions/functor): cleanup proof
2015-05-07 15:29:02 -07:00
Leonardo de Moura
4e1146a2d5
refactor(hott,library): test new tactics in the HoTT and standard libraries
2015-05-02 22:22:31 -07:00
Leonardo de Moura
9ba8b284a1
fix(library/tactic/apply_tactic): add eapply, and fix issue #361
2015-05-01 15:08:00 -07:00
Leonardo de Moura
3912bc24c8
feat(frontends/lean): nicer syntax for 'intros' 'reverts' and 'clears'
2015-04-30 11:00:39 -07:00
Floris van Doorn
297d50378d
feat(hott): add definitions using truncations and theorems about them
...
define embedding, (split) surjection, retraction, existential quantifier, 'or' connective
also add a whole bunch of theorems about these definitions
still has two sorry's which can be solved after #564 is closed
2015-04-29 10:04:07 -07:00
Floris van Doorn
40086d0084
feat(hott): standardize the naming of definitions proving equality of elements of a structure
...
examples:
foo_eq : Pi {A B : foo}, _ -> A = B
foo_mk_eq : Pi _, foo.mk _ = foo.mk _ (if constructor is called "bar", then this becomes "bar_eq")
foo_eq_equiv : Pi {A B : foo}, (A = B) ≃ _
also changed priority of some instances of is_trunc
2015-04-29 10:04:06 -07:00
Floris van Doorn
b70841171a
fix(hott): rename retr and sect to right_inv and left_inv
2015-04-29 10:04:06 -07:00
Floris van Doorn
797a2d2047
refactor(category): merge precategory/ and category/, organize construction files differently.
2015-04-29 10:04:06 -07:00
Floris van Doorn
23e6a3131d
feat(precategory): add two redundant fields to precategory. Also some cleanup.
...
In particular, all instances of "set_option apply.class_instance false" are removed
2015-04-29 10:04:06 -07:00
Leonardo de Moura
75621df52b
feat(frontends/lean): uniform notation for lists in tactics
...
closes #504
2015-03-27 17:54:48 -07:00
Leonardo de Moura
227de07758
fix(hott/algebra/category/constructions): avoid type class resolution loop
2015-03-23 11:32:20 -07:00
Floris van Doorn
8948926a07
style(hott/algebra/precategory): some cleanup
2015-03-16 17:15:51 -07:00
Floris van Doorn
c914b79341
feat(hott/algebra/category): show that functor category is univalent if codomain is
2015-03-16 17:15:51 -07:00
Floris van Doorn
71f9a5d1d2
feat(hott/algebra/precategory): do lots of stuff with categories
2015-03-16 17:15:51 -07:00
Jeremy Avigad
c09f1c4eaf
feat(*.md): create markdown files for HoTT library, update ones in standard library
2015-03-04 18:33:18 -08:00
Floris van Doorn
704f2b2697
feat(hott/algebra/category): prove that set is a univalent category assuming is_equiv is an hprop
2015-03-04 00:22:41 -05:00
Floris van Doorn
1559e0e58c
feat(hott): some more renaming in category library
2015-02-28 01:16:23 -05:00
Floris van Doorn
326eaffafb
style(hott/algebra): rename theorems in the HoTT category libraries
2015-02-28 01:16:23 -05:00
Floris van Doorn
219f7ae11a
feat(hott/algebra/precategory): general cleanup in precategories, define uncurrying functor
2015-02-28 01:16:23 -05:00
Floris van Doorn
f513538631
feat(hott): more cleanup of HoTT library
...
remove funext class,
remove a couple of sorry's,
add characterization of equality in trunctypes,
use Jeremy's format for headers everywhere in the HoTT library,
continue working on Yoneda embedding
2015-02-26 13:19:54 -05:00
Floris van Doorn
c091acc55b
feat(hott): remove funext as type class, add theorems to prove equalities between functors and natural transformations
2015-02-26 12:52:33 -05:00
Floris van Doorn
61901cff81
feat(hott): rename definition and cleanup in HoTT library
...
also add more definitions in types.pi, types.path, algebra.precategory
the (pre)category library still needs cleanup
authors of this commit: @avigad, @javra, @fpvandoorn
2015-02-20 21:40:42 -05:00
Leonardo de Moura
0f34f4d4a1
fix(hott): adjust library to new apply tactic semantics
2015-02-06 17:27:56 -08:00
Leonardo de Moura
b4d6f6e3ed
feat(frontends/lean): 'attribute' command is persistent by default
2015-01-26 11:51:17 -08:00
Leonardo de Moura
4f2e0c6d7f
refactor(frontends/lean): add 'attribute' command
...
The new command provides a uniform way to set declaration attributes.
It replaces the commands: class, instance, coercion, multiple_instances,
reducible, irreducible
2015-01-24 20:23:21 -08:00
Jakob von Raumer
e11c401d79
fix(hott/algebra) comment unfinished proofs out for later completion
2015-01-03 22:31:40 -08:00
Jakob von Raumer
4de1a07324
chore(hott/algebra) maybe use only lower case file names
2015-01-03 22:31:40 -08:00
Jakob von Raumer
334db4ec1e
feat(hott/algebra) start to formalize the category of sets (seems to be pretty tough)
2015-01-03 22:31:40 -08:00
Leonardo de Moura
d2958044fd
feat(frontends/lean): add multiple_instances command
...
After this commit, Lean "cuts" the search after the first instance is
computed. To obtain the previous behavior, we must use the new command
multiple_instances <class-name>
closes #370
2014-12-21 17:28:44 -08:00
Jakob von Raumer
503048226e
chore(hott) fix the types and algebra
2014-12-16 13:11:32 -08:00
Jakob von Raumer
dae2aeb605
chore(hott) fix file endings
2014-12-16 13:11:32 -08:00
Jakob von Raumer
402622ac91
chore(hott) try to move library
2014-12-16 13:11:32 -08:00