Leonardo de Moura
30e3049c56
feat(hott/algebra/precategory/nat_trans): reduce compilation time using rewrite tactic
2015-03-23 19:55:01 -07:00
Leonardo de Moura
5bf46d1226
fix(library/tactic/inversion_tactic): improve 'cases' tactic for HoTT mode
...
closes #481
2015-03-23 18:06:11 -07:00
Leonardo de Moura
227de07758
fix(hott/algebra/category/constructions): avoid type class resolution loop
2015-03-23 11:32:20 -07:00
Jakob von Raumer
024ce8012f
fix(hott/algebra) make previously added lemma more applicable to groupoids
2015-03-23 11:17:57 -07:00
Jakob von Raumer
97a1cc8edb
feat(hott/algebra) show that functors preserve inverses and isos
2015-03-23 11:17:56 -07:00
Jakob von Raumer
74824078a8
fix(hott/algebra) fix previous commit by importing 'arity'
2015-03-23 11:17:56 -07:00
Jakob von Raumer
36a102bad2
feat(hott/algebra) add another equality lemma for precategories
2015-03-23 11:17:56 -07:00
Jakob von Raumer
4e790057b3
feat(hott/algebra) add structure for strict precategories
2015-03-23 11:17:56 -07:00
Jakob von Raumer
10c0b3a3ca
feat(hott/algebra) add characterization of paths between precategories
2015-03-23 11:17:56 -07:00
Jakob von Raumer
f480d67881
chore(hott/algebra) make carrier hset witness an instance
2015-03-23 11:17:56 -07:00
Floris van Doorn
8948926a07
style(hott/algebra/precategory): some cleanup
2015-03-16 17:15:51 -07:00
Floris van Doorn
57514244b1
feat(hott/algebra/precategory): add todo-file for adjoint functors, equivalences and isomorphisms
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
ebba33057c
feat(hott): add arity.hlean, about multivariate functions
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
Jakob von Raumer
7083f2fccd
fix(hott/algebra) correct the name of a groupoid constructor
2015-03-13 15:45:46 -07:00
Jakob von Raumer
25abecaa26
chore(hott/algebra) cmall changes in category files
2015-03-13 15:45:02 -07:00
Leonardo de Moura
a24f8dce67
refactor(hott/algebra/precategory): minor cleanup
2015-03-12 20:52:00 -07:00
Leonardo de Moura
14aeac180a
refactor(library/algebra/category/constructions): more rewrite tactic tests
2015-03-12 20:27:11 -07:00
Leonardo de Moura
adae95cf68
refactor(hott/algebra/precategory/functor): remove unnecessary annotations
2015-03-12 20:13:40 -07:00
Leonardo de Moura
265316a9f5
refactor(hott/algebra/precategory/basic): remove unnecessary set_option commands
2015-03-12 20:10:47 -07:00
Leonardo de Moura
0118ecf3cd
refactor(hott/algebra/precategory/yoneda): remove unnecessary annotations
2015-03-12 20:06:25 -07:00
Leonardo de Moura
7accd0f1e6
feat(library/tactic/rewrite_tactic): allow rewrite with terms that contains binders
...
see discussion at #470
2015-03-12 18:07:55 -07:00
Leonardo de Moura
d7c6028a3e
refactor(hott,library): use/test the rewrite tactic in more places
...
The performance also improved.
2015-03-12 17:25:31 -07:00
Leonardo de Moura
55586dcb2d
refactor(hott/algebra/precategory/yoneda): reduce compilation time to 1sec using rewrite tactic
...
After the latest improvements, the rewrite tactic "works" more often
at yoneda.hlean
2015-03-12 17:07:27 -07:00
Leonardo de Moura
1490bdad49
feat(frontends/lean): add version of 'exact' tactic (sexact) that enforces goal type during term elaboration
2015-03-06 17:34:45 -08:00
Leonardo de Moura
368f9d347e
refactor(frontends/lean): approach used to parse tactics
...
The previous approach was too fragile
TODO: we should add separate parsing tables for tactics
2015-03-05 18:11:21 -08:00
Leonardo de Moura
039afb4578
feat(frontends/lean): treat "proof t qed" as alias for "by exact t"
2015-03-05 11:12:39 -08:00
Leonardo de Moura
8295ef4e57
fix(library/tactic/class_instance_synth): constraint execution order at type class resolution
...
We could not fix this problem before because we did not have the
[quasireducible] annotation.
Without this annotation, the fixed TC would loop in some HoTT files.
2015-03-04 22:20:20 -08: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
3d7656078d
feat(hott/types): prove that 'is_equiv f' is an hprop
2015-03-04 00:22:51 -05: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
5b922aad5c
feat(init): add 'do' tactic
2015-03-04 00:17:41 -05:00
Floris van Doorn
da9b134dd8
feat(hott/types): start with proof that is_equiv is an hprop
2015-03-04 00:14:18 -05:00
Leonardo de Moura
e40e2f0677
feat(hott/init): define num.sub in the HoTT library
2015-03-03 16:22:59 -08:00
Leonardo de Moura
ca57b43698
feat(library/tactic): add 'change' tactic
2015-03-01 14:15:39 -08: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
23a248ab28
style(hott): let inverse notation have higher binding power than application
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
9201bd7ca6
feat (hott/init): move nat.of_num to init.num and make it reducible outside namespace nat
...
This is so that init.trunc can already use nat.of_num.
Also make nat.of_num reducible in the standard library
Also make gt and ge abbreviations
2015-02-26 12:28:57 -05:00
Leonardo de Moura
68110faa4d
feat(frontends/lean/inductive_cmd): allow '|' in inductive datatype declarations
2015-02-25 17:00:10 -08:00
Leonardo de Moura
5ca52d81ec
feat(frontends/lean): ML-like notation for match and recursive equations
2015-02-25 16:20:44 -08:00
Leonardo de Moura
3c24461e51
refactor(*): modify '|' binding power, use 'abs a' instead of '|a|', and '(a | b)' instead of 'a | b'
2015-02-25 15:18:21 -08:00
Leonardo de Moura
c04c610b7b
feat(frontends/lean): add 'assert H : A, ...' as notation for 'have H [visible] : A, ...'
2015-02-25 14:30:42 -08:00
Jeremy Avigad
e513b0ead4
refactor(library,hott): rename theorems for decidable and inhabited
...
The convention is this: we use e.g. nat.is_inhabited and nat.has_decidable_eq
for these two purposes only, to avoid clashing with "inhabited" and "decidable_eq"
in a namespace. Otherwise, we use "decidable_foo" and "inhabited_foo".
2015-02-25 14:05:07 -08:00
Leonardo de Moura
d5538ddf19
refactor(hott/algebra/precategory/morphism): reduce compilation time using rewrite tactic
2015-02-25 14:04:17 -08:00
Leonardo de Moura
3ede8e9150
refactor(library): use []
binder annotation when declaring instances
2015-02-24 16:12:39 -08:00
Leonardo de Moura
1cd44e894b
feat(library/tactic/class_instance_synth): conservative class-instance resolution: expand only definitions marked as reducible
...
closes #442
2015-02-24 16:12:35 -08:00
Leonardo de Moura
3846f5a4e7
refactor(hott): use nested begin-end blocks, use cases tactic
2015-02-24 13:27:57 -08:00
Leonardo de Moura
d1ba9ba1dd
feat(hott/types/sigma): simplify file using 'cases' tactic, definitional package and rewrite tactic
...
Simpler version is also faster.
On my notebook, the runtime was 2.8 secs before, and 1.1 secs after changes
2015-02-23 23:28:28 -08: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
421a30d75c
feat(library): export [reducible] annotations from function namespace to top-level
...
see issue #433
2015-02-16 18:52:41 -08:00
Jakob von Raumer
80e1ac2c4f
feat(hott/algebra): make lemmas about isomorphisms accept more iso parameters. new lemmas about groupoids
2015-02-13 09:28:33 -08:00
Leonardo de Moura
a35cce38b3
feat(frontends/lean): new semantics for "protected" declarations
...
closes #426
2015-02-11 14:09:25 -08: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
b4dd2cc729
refactor(library/tactic/rewrite_tactic): more general rewrite step
...
The rule can be an arbitrary expression.
Allow user to provide a pattern that restricts the application of the rule.
2015-02-04 11:51:39 -08:00
Leonardo de Moura
c845e44777
feat(frontends/lean): parse rewrite tactic
2015-02-04 11:51:39 -08:00
Leonardo de Moura
855050e623
feat(frontends/lean/calc_proof_elaborator): try conservative alternatives first
2015-01-31 21:29:34 -08:00
Leonardo de Moura
e2c41fca75
feat(frontends/lean): modify syntax for local notation
...
The idea is to make it uniform with the syntax for defining local
attributes.
2015-01-26 11:51:17 -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
Leonardo de Moura
abc64fbab8
refactor(library/algebra/group): remove unnecessary symm
2015-01-20 16:20:47 -08:00
Leonardo de Moura
2717adde94
feat(library/unifier): add option 'unifier.conservative', use option by default in the calc_assistant
2015-01-19 16:23:29 -08:00
Leonardo de Moura
2e4a2451e6
refactor(library/reducible): simplify reducible/irreducible semantics
2015-01-08 18:52:18 -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
Jakob von Raumer
f59c2559b6
feat(hott/algebra) add proof that functors into strict cats form an hset
2015-01-03 22:31:39 -08:00
Jakob von Raumer
0faf585773
feat(hott) start characterizing truncatedness by sigma and pi types
2015-01-03 22:31:39 -08:00
Jakob von Raumer
0e34a1838d
feat(hott) create new file with advanced truncatedness lemmas
2015-01-03 22:31:39 -08:00
Jakob von Raumer
0915da6625
chore(hott/algebra) modify the proof that taking the dual category is involutive
2015-01-03 22:31:39 -08:00
Jakob von Raumer
428a2b6f58
chore(hott/algebra) complete the sigma characterization
2015-01-03 22:31:39 -08:00
Jakob von Raumer
4af0a911b3
feat(hott/algebra) finish functor category up to that missing sigma characterization
2015-01-03 22:31:39 -08:00
Jakob von Raumer
31d1076bd7
fix(hott/algebra) fix some proofs for functor category
2015-01-03 22:31:39 -08:00
Jakob von Raumer
31b3bbe5cb
chore(hott/init/axioms) remove +1 in universe levels from axioms
2015-01-03 22:31:39 -08:00
Jakob von Raumer
98803406cc
chore(hott/algebra) add sigma characterization of functors, turn functors into structures
2015-01-03 22:31:39 -08:00
Jakob von Raumer
004a01629a
feat(hott) add preliminary axiomatized truncation operator
2015-01-03 22:31:39 -08:00
Jakob von Raumer
0a1aab9ff9
chore(hott) make univalence an axiom again
2015-01-03 22:31:39 -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
Leonardo de Moura
0627ad2f56
feat(hott/init/nat): add basic facts about natural numbers
2014-12-20 11:32:27 -08:00
Leonardo de Moura
d75ef7a07a
feat(hott/init/types): add 'sum' notation
2014-12-20 11:32:27 -08:00
Leonardo de Moura
6843fe3a8b
refactor(hott/init): 'prod' and 'sum' notation should be infix right like 'and' and 'or'
2014-12-20 11:32:27 -08:00
Leonardo de Moura
187f4483e9
refactor(hott/init/util.hlean): modify definition to make it more convenient for definitional package
2014-12-19 22:00:25 -08:00
Leonardo de Moura
2e93e5d6a7
fix(hott/init): minimize number of universe parameters
2014-12-19 22:00:25 -08:00
Leonardo de Moura
f93278eab8
fix(hott/init/hedberg): remove unnecessary import
2014-12-19 19:01:07 -08:00
Leonardo de Moura
2521dbb39e
refactor(hott): use same name convention for sigma in the HoTT and standard libraries
2014-12-19 18:46:06 -08:00
Leonardo de Moura
69191ef9b7
feat(hott/init/datatypes): add sum.intro_left and sum.intro_right aliases
2014-12-19 17:56:44 -08:00
Leonardo de Moura
3d2d5839a1
feat(hott/init): add auxiliary definition needed by definitional package
2014-12-19 14:22:03 -08:00
Leonardo de Moura
582c1f8458
feat(hott/init): add proof for Hedberg's theorem
2014-12-19 13:54:12 -08:00
Jakob von Raumer
71cffd29a0
chore(hott) minor corrections
2014-12-16 13:11:32 -08:00
Jakob von Raumer
9607518ce0
chore(hott) reflect @avigad's name changes in the std library
2014-12-16 13:11:32 -08:00
Jakob von Raumer
503048226e
chore(hott) fix the types and algebra
2014-12-16 13:11:32 -08:00
Jakob von Raumer
341a3d4411
chore(hott) add function.hlean to init
2014-12-16 13:11:32 -08:00
Jakob von Raumer
a02cc1aff9
chore(hott) fix init
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
Leonardo de Moura
8ad9b84c85
feat(init): reserve notation for "not in"
2014-12-15 19:22:17 -08:00
Leonardo de Moura
ad9620f325
feat(hott/init): add notation for sigma types
2014-12-09 15:41:18 -08:00
Leonardo de Moura
41c6914e48
refactor(hott/init): mark theorems load by initialization as transparent
2014-12-08 12:12:19 -08:00
Leonardo de Moura
beef85289a
feat(hott/init): add lift to initialization
2014-12-08 12:09:41 -08:00
Leonardo de Moura
ec7f90cb16
feat(hott/init): make sure eq is universe polymorphic
...
Jakob and Floris needed path equality to be universe polymorphic when
proving univalence.
2014-12-06 09:43:42 -08:00
Leonardo de Moura
94a825c472
feat(hott/init): add wf and prod to HoTT initialization
2014-12-05 21:48:08 -08:00
Leonardo de Moura
5e9ed30e7d
feat(hott/init/prod): show lex is well-founded in HoTT
2014-12-05 21:46:17 -08:00
Leonardo de Moura
cf7dd60442
feat(hott/init): add well-founded recursion to HoTT library
2014-12-05 21:36:34 -08:00
Leonardo de Moura
1dc0790004
feat(hott/init): add initialization files
2014-12-05 15:47:04 -08:00
Leonardo de Moura
eb87c18693
feat(*): add support for separate HoTT library
2014-12-05 14:34:02 -08:00