Floris van Doorn
60ae9f627c
feat(hott): add core.hlean and types/default.hlean
2015-04-10 06:35:24 -07:00
Floris van Doorn
d1b98b6919
fix(reserved_notation): make is_typeof an abbreviation
2015-04-10 06:35:15 -07:00
Leonardo de Moura
2bc13f6bfd
feat(library/tactic/exact): enforce goal type during elaboration when executing 'exact' tactic
...
Remark: this was the behavior of the 'sexact' tactic.
This commit also adds the 'rexact' (relaxed exact) tactic which does not
enforce the goal type.
closes #495
2015-04-06 13:23:38 -07:00
Leonardo de Moura
754276a660
feat(frontends/lean): round parenthesis for [tactic1 | tactic2]
...
This commit also replaces the notation for divides
`(` a `|` b `)`
with
a `∣` b
The character `∣` is entered by typing \|
closes #516
2015-04-06 09:24:09 -07:00
Leonardo de Moura
4ec0e1b07c
feat(frontends/lean): improve calc mode
...
Now, it automatically supports transitivity of the form
(R a b) -> (b = c) -> R a c
(a = b) -> (R b c) -> R a c
closes #507
2015-04-04 08:58:35 -07:00
Soonho Kong
0d1da89cf1
chore(.gitignore): update
2015-03-28 23:29:41 -04: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
b9e3c474c9
feat(library/tactic): add all_goals tactic
...
closes #501
2015-03-25 17:42:34 -07:00
Leonardo de Moura
74b28f6ad9
feat(library,hott): new notation for typeof
2015-03-24 18:35:21 -07:00
Leonardo de Moura
c0b4a47f63
refactor(hott/algebra/precategory/functor): remove unnecessary annotation
2015-03-24 12:06:16 -07:00
Leonardo de Moura
4817f2a18b
refactor(hott/algebra/precategory/basic): improve basic.hlean compilation time
2015-03-24 12:06:16 -07:00
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