Leonardo de Moura
|
186e598bf8
|
feat(library/tactic/goal): add option pp.compact_goals
|
2014-10-28 16:30:37 -07:00 |
|
Leonardo de Moura
|
ea739100b3
|
fix(library/unifier): broken optimization in the unifier
See new comments and tests for details.
|
2014-10-28 16:09:41 -07:00 |
|
Leonardo de Moura
|
777aa63660
|
fix(kernel/inductive): relax eliminator generation rules for empty types
This commit also removes the workaround false.rec_type. It is not needed anymore
|
2014-10-28 10:31:00 -07:00 |
|
Leonardo de Moura
|
60f32fa709
|
fix(frontends/lean): begin-end automatic tactic notation bug, fixes #262
|
2014-10-27 17:12:25 -07:00 |
|
Leonardo de Moura
|
78bc3ef7e4
|
feat(library/unifier): improve FailLocal/FailCircular failures in the unifier by using normalization
This improvements was marked as TODO, and was preventing us from
elaborating the example in the new test vector3.lean
|
2014-10-27 16:49:29 -07:00 |
|
Leonardo de Moura
|
7516fcad97
|
feat(kernel/type_checker): add is_stuck method, and improve ensure_pi method, closes #261
|
2014-10-27 13:16:50 -07:00 |
|
Leonardo de Moura
|
49941ce35b
|
test(tests/lean/run/sigma_no_confusion): define 'no_confusion' for sigma types
|
2014-10-27 07:26:01 -07:00 |
|
Leonardo de Moura
|
d66e5a6c41
|
fix(frontends/lean/builtin_cmds): bug (name clashing) in 'check' command new meta-variable naming
|
2014-10-26 19:19:45 -07:00 |
|
Leonardo de Moura
|
81dc201bab
|
fix(frontends/lean/elaborator): nested begin-end bug
|
2014-10-26 18:23:30 -07:00 |
|
Leonardo de Moura
|
a544d32fcf
|
fix(frontends/lean/elaborator): missing information when displaying unsolved placeholders
|
2014-10-26 16:11:58 -07:00 |
|
Leonardo de Moura
|
cc6a96e8ba
|
fix(frontends/lean): improve begin-end construct
|
2014-10-26 15:47:29 -07:00 |
|
Leonardo de Moura
|
fd60cf6a79
|
feat(library/tactic/exact_tactic): modify 'exact' tactic semantics, use higher-order unification
See new node.inj4 theorem, we need the extra power to be able to avoid type information at
exact (assume e₁ e₂, e₁)
|
2014-10-26 10:27:33 -07:00 |
|
Leonardo de Moura
|
8e6de93394
|
fix(frontends/lean/parser): add two kinds of no_undef_id behavior: to (global) constant; to local constant
|
2014-10-26 09:47:11 -07:00 |
|
Leonardo de Moura
|
c7f6a6b94e
|
feat(library/definitional/cases_on): automatically add 'cases_on'
|
2014-10-25 17:22:02 -07:00 |
|
Leonardo de Moura
|
cdcde661ef
|
feat(library/definitional/induction_on): automatically add 'induction_on'
|
2014-10-25 13:37:04 -07:00 |
|
Leonardo de Moura
|
a7a06ab0f8
|
feat(library/definitional/rec_on): automatically generate rec_on function for inductive datatypes
|
2014-10-25 13:08:59 -07:00 |
|
Leonardo de Moura
|
7a033ac07e
|
feat(frontends/lean): add 'print axioms' command, close #251
|
2014-10-24 14:35:03 -07:00 |
|
Leonardo de Moura
|
db25f933b0
|
feat(frontends/lean): use nice names for meta-variables when executing check c and c is a constant
|
2014-10-24 08:23:26 -07:00 |
|
Leonardo de Moura
|
79d0347721
|
feat(library/tactic): add generalize tactic, closes #34
Remark: the intros tactic has been added in a different commit: 7d0100a340
|
2014-10-23 22:40:15 -07:00 |
|
Leonardo de Moura
|
b83b065d00
|
feat(library/tactic/apply_tactic): modify heuristic for adding arguments to apply tactic.
|
2014-10-23 22:36:32 -07:00 |
|
Leonardo de Moura
|
f027acb5cb
|
fix(frontends/lean): missing type info in expressions nested in tactics
|
2014-10-23 18:31:05 -07:00 |
|
Leonardo de Moura
|
212ae0b61c
|
feat(frontends/lean): automatically add 'info' tactic in begin-end blocks
Actually, the tactic is only added when Lean is in collect-info mode.
|
2014-10-23 13:30:04 -07:00 |
|
Leonardo de Moura
|
e750c9b67a
|
feat(frontends/lean): add 'info' tactic for producing PROOF_STATE info for emacs mode
|
2014-10-23 13:18:30 -07:00 |
|
Leonardo de Moura
|
38a9aa2a98
|
feat(frontends/lean): automatically open 'tactic' namespace (if it is not already open) in 'by' and 'begin-end' expressions
|
2014-10-23 10:26:19 -07:00 |
|
Leonardo de Moura
|
00f9a10e82
|
refactor(library/tactic/unfold_tactic): use new 'tactic.expr' to implement 'unfold' tactic
This change also enabled us to remove hacks used in the tests modified
by this commit.
|
2014-10-23 10:26:19 -07:00 |
|
Leonardo de Moura
|
5a553603d1
|
fix(library/general_notation): mark \tr as left associative
|
2014-10-22 22:18:40 -07:00 |
|
Leonardo de Moura
|
c50227ea6e
|
feat(library/tactic): change apply tactic semantics: goals are not reversed; and dependent arguments are not included
This commit also adds the tactic rapply that corresponds to the previous
semantics we have been using.
|
2014-10-22 18:11:09 -07:00 |
|
Leonardo de Moura
|
e95c7c5f70
|
refactor(library/tactic/rename_tactic): use new 'tactic.expr' to implement 'intro/intros' tactic
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2014-10-22 17:29:50 -07:00 |
|
Leonardo de Moura
|
5e15ac0c92
|
feat(library/tactic): add new approach for embedding non-elaborated expressions into tactics
|
2014-10-22 17:29:50 -07:00 |
|
Leonardo de Moura
|
323715e951
|
refactor(library/tactic): move 'tracing' tactics to separate module
|
2014-10-22 14:12:45 -07:00 |
|
Leonardo de Moura
|
33f18b9454
|
fix(kernel/converter): remove buggy eta-reduction and rely only on eta-expansion
The bug is exposed by new unit test
|
2014-10-21 16:54:25 -07:00 |
|
Leonardo de Moura
|
6b89080b1a
|
feat(frontends/lean): do not allow user to define notation using tokens ! and @ , closes #248
|
2014-10-21 16:28:36 -07:00 |
|
Leonardo de Moura
|
e24225fabf
|
feat(frontends/lean): validate infixl/infixr/postfix/prefix declarations against reserved notations
|
2014-10-21 15:39:47 -07:00 |
|
Leonardo de Moura
|
6c7e23ecaa
|
refactor(library): use 'reserve' notation in the standard library
|
2014-10-21 15:39:47 -07:00 |
|
Leonardo de Moura
|
bb953b80aa
|
feat(frontends/lean): reserve notation, closes #95
|
2014-10-21 15:39:47 -07:00 |
|
Leonardo de Moura
|
8a44dfc1df
|
fix(frontends/lean/pp): bug in pretty printer notation match procedure
|
2014-10-20 18:58:27 -07:00 |
|
Leonardo de Moura
|
40fb66bf07
|
feat(frontends/lean): change default precedence to 1
|
2014-10-20 18:40:55 -07:00 |
|
Leonardo de Moura
|
e2fa981e89
|
fix(frontends/lean/pp): avoid parentheses around atomic notation
|
2014-10-20 18:08:13 -07:00 |
|
Leonardo de Moura
|
e68007a727
|
fix(frontends/lean/builtin_tactics): adjust tactics precedence
|
2014-10-20 17:10:16 -07:00 |
|
Leonardo de Moura
|
9b8f60b739
|
feat(frontends/lean/builtin_exprs): tolerate dangling ',' in begin-end block
This is useful when debugging proofs.
|
2014-10-20 15:59:49 -07:00 |
|
Leonardo de Moura
|
c09bb3cc6f
|
fix(tests/lean/notation): remove 'sorry' warning from expected outputs
|
2014-10-20 15:34:44 -07:00 |
|
Leonardo de Moura
|
7d0100a340
|
feat(library/tactic): add 'intros' tactic
|
2014-10-20 15:26:16 -07:00 |
|
Leonardo de Moura
|
f0cc17af87
|
fix(frontends/lean/elaborator): missing type information when ! operator (aka consume_args) is used
|
2014-10-20 08:31:36 -07:00 |
|
Leonardo de Moura
|
a1006073d4
|
feat(frontends/lean/notation_cmd): do not allow user to define new tokes containing '(', ')', ',' or change their precedence
|
2014-10-19 13:39:06 -07:00 |
|
Leonardo de Moura
|
4d4bc0551f
|
feat(frontends/lean/pp): minimize number of spaces when pretty printing notation
|
2014-10-19 13:08:15 -07:00 |
|
Leonardo de Moura
|
ed1afe26bd
|
feat(frontends/lean/pp): support scopedexpr notation in the pretty printer
|
2014-10-19 12:50:40 -07:00 |
|
Leonardo de Moura
|
f63d47fef3
|
feat(frontends/lean/pp): support foldl/foldr notation in the pretty printer
|
2014-10-19 11:16:24 -07:00 |
|
Leonardo de Moura
|
eef1cc4ac2
|
fix(frontends/lean/pp): implicit arguments in notation
|
2014-10-19 09:04:43 -07:00 |
|
Leonardo de Moura
|
555d26aa61
|
feat(frontends/lean/pp): take notation declarations into account when pretty printing
TODO: support foldl/foldr and binders
|
2014-10-19 08:41:29 -07:00 |
|
Leonardo de Moura
|
10b880ce3b
|
perf(kernel/metavar): improve occurs_expr and occurs performance
|
2014-10-17 14:05:22 -07:00 |
|