Leonardo de Moura
6571c47353
feat(library/normalize): add '[unfold-m]' hint
...
See issue #496
2015-05-04 14:23:04 -07:00
Leonardo de Moura
3c8c75470f
fix(library/tactic/exact_tactic): do not report unassigned metavariables in the 'refine' tactic
2015-05-03 21:08:09 -07:00
Leonardo de Moura
87aaf373f4
fix(frontends/lean): fix '#' override notation on the left-hand-side of recursive equations (and match-expressions)
2015-05-03 21:08:09 -07:00
Leonardo de Moura
326048df54
feat(library/tactic/inversion_tactic): clear variables that have been eliminated by cases tactic
...
see discussion at:
https://groups.google.com/forum/#!topic/lean-discuss/oyzgIqdMyNc
2015-05-02 19:33:59 -07:00
Leonardo de Moura
441f1f9fe2
feat(frontends/lean): import error message for "unknown" tactics when parsing
2015-05-02 18:57:58 -07:00
Leonardo de Moura
118189eaac
fix(frontends/lean/elaborator): bug in translation function
...
This commit fixes the bug reported in the lean discussion list:
https://groups.google.com/forum/#!topic/lean-discuss/oyzgIqdMyNc
2015-05-02 18:05:07 -07:00
Leonardo de Moura
e1dc18f6b6
fix(library/tactic/inversion_tactic): check whether eliminator can only eliminate to Prop
...
fixes #571
2015-05-02 17:48:08 -07:00
Leonardo de Moura
e379034b95
feat(library/tactic): improve 'assumption' tactic
...
- It uses the unifier in "conservative" mode
- It only affects the current goal
closes #570
2015-05-02 17:33:54 -07:00
Leonardo de Moura
8c107d6936
fix(frontends/lean/builtin_cmds): bug in export
command
...
Cause: we have two different tokes to represent declarations: [decls] and [declarations]
fixes #568
2015-05-02 16:01:25 -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
2054d67483
chore(library/tactic/rewrite_tactic): fix style
2015-05-01 19:49:48 -07:00
Leonardo de Moura
9dc0388022
fix(library/tactic/rewrite_tactic): bug when rewriting hypotheses
2015-05-01 19:45:23 -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
b0759f3986
fix(library/tactic/rewrite_tactic): bug when rewriting multiple hypotheses
2015-05-01 19:03:43 -07:00
Leonardo de Moura
de369a0a0a
feat(library/tactic/injection_tactic): improve 'injection' tactic
...
see issue #500
2015-05-01 15:49:56 -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
ce5ef5a6cc
feat(frontends/lean): improver parser for tactics of the form 'tac_name <expr> with <ids*>'
2015-05-01 13:06:11 -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
7e9f574ef3
fix(library/tactic/apply_tactic): use internally 'apply' instead of 'fapply' as the default "apply" tactic
...
This changes improves the 'constructor' tactic
2015-04-30 21:58:35 -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
15e52b06df
fix(library/tactic/constructor_tactic): bug in constructor tactic
...
see example (constr_tac2.lean) in comment at issue #500
2015-04-30 20:18:24 -07:00
Leonardo de Moura
d18f9c7607
fix(library/tactic/constructor_tactic): use 1 (instead of 0) to reference the first constructor
...
see comment at issue #500
2015-04-30 20:08:00 -07:00
Leonardo de Moura
0b995c4fe3
fix(library/tactic/rewrite_tactic): relax reducibility constraints in some parts of the rewrite tactic
...
fixes #567
2015-04-30 18:22:58 -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
d546b019fb
fix(library/tactic/rewrite_tactic): assertion violation when checking
...
dependencies at rewrite tactic
2015-04-30 15:41:57 -07:00
Leonardo de Moura
936e024128
fix(library/tactic/rewrite_tactic): bug in rewrite hypothesis in HoTT mode
2015-04-30 15:30:25 -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
Soonho Kong
018cbe9447
fix(src/CMakeLists.txt): debian deps for static and non-static builds
2015-04-30 12:38:44 -04:00
Soonho Kong
e8d894473e
feat(src/CMakeLists.txt): add cpack support for Debian package
2015-04-30 10:01:34 -04:00
Soonho Kong
c7f1e3737f
fix(src/CMakeLists.txt): add -lpthread only if MULTI_THREAD is ON
2015-04-30 09:55:38 -04:00
Soonho Kong
7bae895c23
refactor(src/CMakeLists.txt): simplify conditions in if
...
There are many places where we do not need 'MATCHES "ON"' or 'MATCHES
"OFF"'. Reference: http://www.cmake.org/cmake/help/v3.0/command/if.html
~~~
if(<constant>)
True if the constant is 1, ON, YES, TRUE, Y, or a non-zero number. False
if the constant is 0, OFF, NO, FALSE, N, IGNORE, NOTFOUND, the empty
string, or ends in the suffix -NOTFOUND. Named boolean constants are
case-insensitive. If the argument is not one of these constants, it is
treated as a variable.
~~~
2015-04-30 09:51:05 -04:00
Leonardo de Moura
c19ec664b8
feat(CMakeLists): add flag suggested by Soonho
...
closes #557
2015-04-29 16:34:14 -07:00
Leonardo de Moura
d6d30f12c6
feat(frontends/lean): add "polymorphic" print command
...
closes #524
2015-04-29 16:17:33 -07:00
Leonardo de Moura
1a28a3c36f
feat(frontends/lean): add 'print inductive' command
2015-04-29 15:22:10 -07:00
Leonardo de Moura
dce7177382
feat(library/tactic/change_tactic): improve 'change' tactic
...
- Better error messages
- Try to solve unification constraints produced during is_def_eq test
addresses comment on issue #531
2015-04-29 13:31:09 -07:00
Leonardo de Moura
d055947243
feat(library/tactic/rewrite_tactic): ignore implicit argument when matching at rewrite tactic
2015-04-29 12:51:33 -07:00
Leonardo de Moura
182a8a542e
feat(library/tactic/rewrite_tactic): store exception "what" message in rewrite trace
2015-04-29 12:46:41 -07:00
Leonardo de Moura
b790ca9806
fix(library/tactic/rewrite_tactic): type check rewriting steps
...
closes #550
2015-04-29 12:16:37 -07:00
Leonardo de Moura
91abba3c3d
refactor(kernel): rename method
2015-04-29 11:46:27 -07:00
Leonardo de Moura
b98c109f73
fix(kernel/hits/hits): bug in reduction rule
...
closes #564
2015-04-29 10:01:46 -07:00
Leonardo de Moura
051615712c
fix(kernel/quotient/quotient): bug in reduction rule
2015-04-29 10:01:17 -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
16f237f042
feat(kernel/inductive): remove problematic check
...
see discussion at issue #563
closes #563
2015-04-28 17:21:41 -07:00
Leonardo de Moura
1be72f1faa
feat(frontends/lean): parse argument of unary tactis with rbp=0, tokens may have a different precedence in expression and tactic modes
2015-04-28 13:43:05 -07:00
Leonardo de Moura
4283111198
fix(frontends/lean): missing files
2015-04-28 10:55:04 -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
88023e9597
fix(shell/lean): missing 'break'
2015-04-27 14:23:01 -07:00
Leonardo de Moura
bdef7aaf40
feat(frontends/lean/pp): add check_system at pretty printer
2015-04-27 14:21:53 -07:00
Leonardo de Moura
a3c3a94a51
feat(util/sexpr/format): add check_system at formatter
2015-04-27 14:21:25 -07:00
Leonardo de Moura
d41e055d1c
feat(frontends/lean/migrate_cmd): catch memory error in the migrate command
2015-04-27 12:58:11 -07:00
Leonardo de Moura
fee2b002fc
fix(util/exception): typo in error message
2015-04-27 12:02:04 -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
68383d49de
refactor(shell/lean): remove useless output
...
It was added for implementing the web version, and avoid the need to
simulate a file system in the web browser.
It turns out we decided to use a virtual file system.
2015-04-27 10:15:01 -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
28404fe16d
fix(library/tactic/rewrite_tactic): second problem reported at issue #548
...
closes #548
2015-04-24 16:49:32 -07:00
Leonardo de Moura
4148d6b8cc
fix(library/tactic/rewrite_tactic): first two problems at issue #548
2015-04-24 16:07:00 -07:00
Leonardo de Moura
6134c8822a
fix(frontends/lean/util): assertion violation
...
fixes #559
2015-04-24 15:09:23 -07:00
Leonardo de Moura
f723550d33
feat(frontends/lean/elaborator): decorates error message with free variables introduced by the left-hand-side of the equation
...
closes #528
2015-04-24 14:58:15 -07:00
Leonardo de Moura
4a157ee676
refactor(kernel/justification): create "wrapper" justification
...
It allows us to provide a different pretty printer.
This is a cleanup, and also helps to address issue #528
2015-04-24 14:49:32 -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
Soonho Kong
c1b23f29c9
doc(emacs/README.md): add debian case
...
[skip ci]
2015-04-23 15:05:08 -04: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
d4a929febb
feat(lean-input): add some notation
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
Leonardo de Moura
cdf929d178
fix(frontends/lean/local_decls): missing '{}' around macro
2015-04-22 12:54:42 -07:00
Leonardo de Moura
a526cd92ac
fix(frontends/lean): bug in pretty printer
...
this is related to issue #530
2015-04-22 12:44:08 -07:00
Leonardo de Moura
dc93603b4a
feat(frontends/lean): parameter and variable binder type update
...
see issue #532
2015-04-22 12:28:11 -07:00
Leonardo de Moura
91f21c007a
feat(frontends/lean): remove 'context' command
2015-04-22 11:32:02 -07:00
Leonardo de Moura
53653c3526
fix(frontends/lean): pretty printing in sections with parameters
...
fix #530
2015-04-21 22:44:09 -07:00
Leonardo de Moura
caf28f4053
fix(frontends/lean/decl_cmds): missing condition
2015-04-21 21:08:57 -07:00
Leonardo de Moura
22f6a95cc4
feat(frontends/lean): local notation override global one
2015-04-21 19:55:59 -07:00
Leonardo de Moura
fe9f4dd95f
fix(frontends/lean): another bug in sections with parameters
2015-04-21 19:50:21 -07:00
Leonardo de Moura
3df99e514b
fix(frontends/lean): problems with sections
2015-04-21 19:46:57 -07:00
Leonardo de Moura
52e9ad1a98
feat(frontends/lean): allow persistent notation declaration in sections (when they do not contain parameters)
...
see issue #554
2015-04-21 19:04:06 -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
697a536d9e
fix(library/tactic/inversion_tactic): type incorrect term being built by 'cases' tactic
...
fixes #545
2015-04-20 19:24:52 -07:00
Leonardo de Moura
68d4978953
feat(shell/lean): trap 'std::bad_alloc' and print nicer error message
...
See #489
2015-04-20 17:55:00 -07:00
Leonardo de Moura
47e37a3353
feat(kernel/metavar): add additional assertions
2015-04-20 17:46:06 -07:00
Leonardo de Moura
eb23a30626
feat(library/unifier): additional memory checks
2015-04-20 17:41:08 -07:00
Leonardo de Moura
28dad944c5
fix(library/unifier): cyclic assignment (?M <- ?M)
...
This was producing nonterminating behavior on example described at issue #489
2015-04-20 17:35:37 -07:00
Leonardo de Moura
431eade894
fix(library/tactic/inversion_tactic): incorrect use of optimization
2015-04-20 16:21:44 -07:00
Leonardo de Moura
107763a506
fix(frontends/lean): better error message for 'proof ... qed' blocks containing unsolved placeholders
2015-04-20 15:50:37 -07:00
Leonardo de Moura
df05edf333
feat(frontends/lean): generate warning when 'exit' is used
...
closes #553
2015-04-20 14:45:39 -07:00
Leonardo de Moura
6f6d106a10
feat(library/tactic): add "check_expr" tactic
...
closes #486
2015-04-19 19:00:05 -07:00
Leonardo de Moura
60e320fd79
feat(frontends/lean): protected constants and axioms
...
fixes #527
2015-04-19 17:45:58 -07:00
Leonardo de Moura
b7ca2a0ec9
fix(library/tactic/exact_tactic): exact and or_else
...
fixes #543
2015-04-19 17:23:09 -07:00
Soonho Kong
3d79f89f5e
fix(emacs/lean-mode): lean-execute
...
shell-quote-argument also escapes '~' into '\~' which causes a problem.
This fix first calls 'f-full' to get a absolute path, then call
shell-quote-argument.
close #544
2015-04-16 19:27:42 -04:00
Soonho Kong
20b594e1cd
fix(emacs/lean-mode.el): use 'shell-quote-argument' in lean-execute
...
close #544
2015-04-13 14:19:39 +01:00
Leonardo de Moura
5d95cb0979
feat(library/tactic): add 'refine' tactic
...
closes #482
2015-04-06 18:36:56 -07:00
Leonardo de Moura
412f03b08b
feat(library/tactic/exact_tactic): generate error if 'exact' tactic produces a term containing metavariables
2015-04-06 13:38:53 -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
969d17fd12
fix(frontends/lean/elaborator): class inference in tactic mode with trunc
...
closes #477
2015-04-05 17:47:14 -07:00
Leonardo de Moura
d731a4ab13
feat(library/normalize): add '[unfold-f]' hint
...
closes #497
2015-04-05 03:00:13 -07:00