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
Floris van Doorn
1d9c17342a
feat(hit): define mapping cylinder, coequalizer and quotient in terms of colimit
2015-04-23 14:29:04 -07:00
Floris van Doorn
51e87213d0
feat(hit): define nondependent recursors for all hits, sequential colimit, and elaborate on spheres
...
squash
2015-04-23 14:29:04 -07:00
Floris van Doorn
2469b8a2f8
feat(hott): add primitive hits
2015-04-23 14:29:04 -07:00
Leonardo de Moura
2613e7c444
fix(frontends/lean): bug when handling identifiers in tactics
...
This bug was reported by Jeremy in the Lean Google group:
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/lean-discuss/ZKJ8WPPEVJA/n05x6rPRzvMJ
2015-04-22 16:03:22 -07:00
Floris van Doorn
9d805437f0
fix(reserved_notation): lower binding power of 'iff'
2015-04-22 13:06:11 -07:00
Floris van Doorn
ee4cba4e0b
style(hott): a bit of cleanup
2015-04-22 13:06:11 -07:00
Floris van Doorn
17f3ac6ec2
fix(hott): fix binding power of 2 notations
2015-04-22 13:06:11 -07:00
Leonardo de Moura
3df99e514b
fix(frontends/lean): problems with sections
2015-04-21 19:46:57 -07:00
Leonardo de Moura
76bf8de91a
refactor(hott): remove most 'context' commands from the HoTT library
2015-04-21 19:17:59 -07:00
Leonardo de Moura
bf8a7eb9b4
fix(library/scoped_ext): bug in local metadata in sections
...
The problem is described in issue #554
2015-04-21 18:56:28 -07:00
Leonardo de Moura
6f6d106a10
feat(library/tactic): add "check_expr" tactic
...
closes #486
2015-04-19 19:00:05 -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