Commit graph

135 commits

Author SHA1 Message Date
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
b1ece388a6 feat(frontends/lean,library/tactic/induction_tactic): improve induction tactic notation, expand induction tactic implementation 2015-05-18 09:25:07 -07:00
Leonardo de Moura
065a1f7501 feat(library/tactic): add 'induction' tactic skeleton 2015-05-12 20:21:25 -07:00
Leonardo de Moura
6c958a25e7 refactor(library/tactic/expr_to_tactic): make sure builtin tactics don't need to be marked opaque
This modification is needed since we will remove opaque definitions from
the kernel.

see issue #576
2015-05-08 16:06:16 -07:00
Floris van Doorn
111c8e1529 feat(hott): add [unfold-c] and [constructor] attributes for HITs 2015-05-07 16:39:04 -07:00
Floris van Doorn
9893de6194 feat(hit/circle): prove partly that the fundamental group of the circle is int
Also add markdown files for nat and int
2015-05-07 16:39:04 -07:00
Floris van Doorn
0a8f4f6dab feat(function): add unfold hints to function.[h]lean 2015-05-07 16:39:03 -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
e5241f84ec fix(init.datatypes): make empty live in Type.{0} 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
Floris van Doorn
61c1cd6840 feat(hott.init): define core namespace 2015-05-07 16:39:03 -07:00
Floris van Doorn
ce5f60d009 feat(hott.init.function): add more notions from the standard library 2015-05-07 16:39:03 -07:00
Leonardo de Moura
b03266be70 feat(library/normalize,frontends/lean): rename '[unfold-m]' hint to '[constructor]', and allow it to be attached to constants
closes #587
2015-05-07 12:00:34 -07:00
Leonardo de Moura
741fca1e7b feat(hott/init/path): mark 'idp' and 'idpath' with '[unfold-m]' hint
closes #496
2015-05-04 14:29:22 -07:00
Leonardo de Moura
657ad3327f chore(hott): remove unnecessary '[trans]' attributes 2015-05-02 21:35:59 -07:00
Leonardo de Moura
b39fe17dee feat(library/tactic): add 'transitiviy', 'reflexivity' and 'symmetry' tactics
closes #500
2015-05-02 15:48:25 -07:00
Leonardo de Moura
cd17618f4a refactor(library): replace 'calc_trans', 'calc_symm', 'calc_refl' and 'calc_subst' commands with attributes '[symm]', '[refl]', '[trans]' and '[subst]'
These attributes are used by the calc command.
They will also be used by tactics such as 'reflexivity', 'symmetry' and
'transitivity'.

See issue #500
2015-05-02 15:15:35 -07:00
Leonardo de Moura
415ca2b93f feat(library/tactic): add 'congruence' tactic
It is the f_equal described at issue #500.
2015-05-02 12:58:46 -07:00
Leonardo de Moura
458d13025f refactor(library,hott): define 'congr' in the initialization files 2015-05-02 11:29:31 -07:00
Leonardo de Moura
ac8ba6a3cf feat(library/tactic): add 'subst' tactic
see issue #500
2015-05-01 19:31:24 -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
63eb155c7e feat(library/tactic): add 'injection' tactic
see issue #500
2015-05-01 12:45:21 -07:00
Leonardo de Moura
2d9c950144 feat(library/tactic/constructor_tactic): allow 'constructor' tactic without index
see issue #500
2015-04-30 21:15:07 -07:00
Leonardo de Moura
d152f38518 feat(library/tactic): add 'constructor', 'split', 'left', 'right' and 'existsi' tactics
see issue #500
2015-04-30 17:52:29 -07:00
Leonardo de Moura
1c6067bac2 feat(library/tactic): add 'exfalso' tactic
see issue #500
2015-04-30 15:43:07 -07:00
Leonardo de Moura
9760968b45 refactor(library,hott): use/test new 'contradiction' tactic in the standard and hott libraries 2015-04-30 13:56:12 -07:00
Leonardo de Moura
9c8a63caec feat(library/tactic): add 'contradiction' tactic
see issue #500

Remark: this tactic also applies no_confusion to take care of a contradiction
2015-04-30 13:47:40 -07:00
Leonardo de Moura
3233008039 feat(library/tactic): allow user to name generalized term in the 'generalize' tactic
closes #421
2015-04-30 11:57:40 -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
15c2ee289f feat(hott): make some fibrations in path.hlean implicit, and a bit of renaming in init 2015-04-29 10:04:07 -07:00
Floris van Doorn
5349839fa9 feat(hott): define pathovers and squares 2015-04-29 10:04:07 -07:00
Floris van Doorn
c23e707874 feat(circle): define circle as sphere 1, remove all but 1 sorry 2015-04-29 10:04:07 -07:00
Floris van Doorn
70a2f6534c feat(hit): derive path computation rule for elim and elim_type for every hit
also make argument of eq_of_rel implicit
also remove most sorry's for hits

path computation rule for rec still needs to be done for all hits
2015-04-29 10:04:07 -07:00
Floris van Doorn
4173c958f7 feat(init.ua): add some useful consequences of ua 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
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
Floris van Doorn
052fbe0228 refactor(hott.init): remove subdirectories, merge some files 2015-04-29 10:04:06 -07:00
Floris van Doorn
86012d841b fix(hott): make f explicit in is_equiv.mk and a bit of renaming in init 2015-04-29 10:04:06 -07:00
Floris van Doorn
e769fdd9dc feat(hott): make some arguments in init.path implicit and rename apD to apd 2015-04-29 10:04:06 -07:00
Leonardo de Moura
d2c7b5c319 feat(library/tactic): add 'let' tactic
closes #555
2015-04-28 17:24:43 -07:00
Leonardo de Moura
a23118d357 feat(frontends/lean): add tactic_notation command
This addresses the first part of issue #461

We still need support for tactic definitions
2015-04-27 17:46:13 -07:00
Leonardo de Moura
ca8943f45b feat(library,hott): remove rapply tactic 2015-04-27 15:06:16 -07:00
Leonardo de Moura
dcc94dde82 refactor(kernel): rename may_reduce_later to is_stuck, and make is_stuck more precise
It now reflects the definition used in the elaboration paper.
2015-04-27 11:20:15 -07:00
Leonardo de Moura
9d01868361 feat(frontends/lean): use rewrite tactic to implement unfold (it has a unfold step)
closes #502
2015-04-24 17:23:12 -07:00
Leonardo de Moura
8241863abe feat(kernel/hits): add two builtin HITs: type_quotient and trunc 2015-04-23 15:32:31 -07:00
Floris van Doorn
591a563be3 feat(hit): For all hits, add the elimination to the universe (using ua) 2015-04-23 14:29:04 -07:00
Floris van Doorn
f41d92199a feat(hit): make type quotient primitive instead of colimit 2015-04-23 14:29:04 -07:00