Leonardo de Moura
|
033f3b630d
|
feat(frontends/lean/scanner): allow upper-case greek letters in identifiers but Pi and Sigma
|
2015-03-30 02:14:26 -07: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
|
242f8ba048
|
feat(frontends/lean/elaborator): include number of unsolved goals
See #509
|
2015-03-27 14:54:41 -07:00 |
|
Leonardo de Moura
|
a1c1fcb2f0
|
fix(frontends/lean/pp): bug in pretty printer new feature
|
2015-03-25 21:16:21 -07:00 |
|
Leonardo de Moura
|
0c3fd7427e
|
feat(frontends/lean): add syntax-sugar for fold
closes #503
|
2015-03-25 18:25:48 -07:00 |
|
Leonardo de Moura
|
f2b1752807
|
fix(frontends/lean/parser): add workaround for #461
|
2015-03-25 18:09:43 -07:00 |
|
Leonardo de Moura
|
49bc56ec07
|
feat(frontends/lean/pp): improve pretty printer for prefix and postfix notation
closes #491
|
2015-03-25 16:45:58 -07:00 |
|
Leonardo de Moura
|
a1f933886f
|
fix(frontends/lean/structure_cmd): explicit universe levels for structures
closes #490
|
2015-03-25 16:10:30 -07:00 |
|
Leonardo de Moura
|
5f1d827b26
|
fix(frontends/lean/decl_cmds): assertion violation
closes #506
|
2015-03-25 13:46:23 -07:00 |
|
Leonardo de Moura
|
76157ba392
|
fix(frontends/lean/pp): abbreviations with too much arguments
closes #480
|
2015-03-23 12:16:25 -07:00 |
|
Leonardo de Moura
|
b5acbb2228
|
fix(frontends/lean/pp): missing parenthesis around abbreviations
fixes #476
|
2015-03-16 17:12:03 -07:00 |
|
Leonardo de Moura
|
9b577a7b3e
|
feat(frontends/lean): add 'migrate' command
|
2015-03-14 21:48:00 -07:00 |
|
Leonardo de Moura
|
fc3a7bac59
|
feat(frontends/lean): improve error handling inside match-with expressions
|
2015-03-13 23:25:46 -07:00 |
|
Leonardo de Moura
|
bed0d6df6b
|
fix(frontends/lean/elaborator): inaccessible over coercion
|
2015-03-13 23:04:45 -07:00 |
|
Leonardo de Moura
|
cfeb426cd7
|
fix(frontends/lean): pretty print numeral notation from algebra
|
2015-03-13 18:58:34 -07:00 |
|
Leonardo de Moura
|
9438366e37
|
feat(frontends/lean/builtin_exprs): better error synchronization for 'begin...end' blocks
|
2015-03-13 15:22:57 -07:00 |
|
Leonardo de Moura
|
b88b98ac22
|
feat(frontends/lean): try to add definition/theorem as axiom when it fails to be processed
The idea is to avoid a "tsunami" of error messages when a heavily used
theorem breaks in the beginning of the file
|
2015-03-13 14:47:21 -07:00 |
|
Leonardo de Moura
|
f5811d6092
|
feat(frontends/lean): hide subterms that do not contain metavariables
when generating "unresolved metavariables" error message
closes #473
|
2015-03-13 12:42:57 -07:00 |
|
Leonardo de Moura
|
7ca882d69a
|
fix(frontends/lean/parse_rewrite_tactic): esimp error message position information
|
2015-03-12 17:05:41 -07:00 |
|
Leonardo de Moura
|
71ce207080
|
fix(frontends/lean/elaborator): potential memory access violation
Before this commit, the modified method would crash if caching in the
whnf procedure was disabled.
|
2015-03-11 15:54:50 -07:00 |
|
Leonardo de Moura
|
f966634910
|
feat(frontends/lean): nested dependent pattern matching
|
2015-03-06 19:18:08 -08: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
|
bd8c4315f1
|
feat(frontends/lean): allow 'match-with' to be used in tactics without prefixing it with 'exact'
|
2015-03-06 15:49:31 -08:00 |
|
Leonardo de Moura
|
f24d9e84fe
|
feat(frontends/lean): add option 'max_memory'
Default value is 512Mb
|
2015-03-06 13:56:20 -08:00 |
|
Leonardo de Moura
|
3b721fe675
|
feat(frontends/lean): add missing 'help' command
|
2015-03-06 13:56:20 -08:00 |
|
Leonardo de Moura
|
daf36803c4
|
fix(frontends/lean/builtin_exprs): bug in 'using' construct
|
2015-03-06 13:56:20 -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
|
28487ede3b
|
feat(frontends/lean/decl_cmds): allow 'empty' set of pattern matching equations
|
2015-03-05 14:37:29 -08:00 |
|
Leonardo de Moura
|
8e9ccf8b6f
|
chore(frontends/lean): remove 'dead' tokens
|
2015-03-05 14:37:29 -08:00 |
|
Leonardo de Moura
|
b73a931c70
|
fix(frontends/lean/elaborator): missing case 'no-equation' annotation
|
2015-03-05 14:37:29 -08:00 |
|
Leonardo de Moura
|
e4060a5614
|
feat(frontends/lean): do not force user to type the function name in the left-hand-side of recursive equations
|
2015-03-05 12:08:36 -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
|
abd238aef0
|
feat(*): add [quasireducible] attribute
|
2015-03-04 22:12:49 -08:00 |
|
Leonardo de Moura
|
fa79b214b8
|
fix(frontends/lean): allow 'attribute <id> [priority ...]'
|
2015-03-03 16:17:32 -08:00 |
|
Leonardo de Moura
|
11aad4449b
|
feat(frontends/lean): add '[semireducible]' attribute
This commit also renames the elements of reducible_status.
The idea is to use in the C++ implementation the same names used in the
Lean front-end.
|
2015-03-03 10:48:36 -08:00 |
|
Leonardo de Moura
|
8240d7adcd
|
perf(frontends/lean/util): improve univ_metavars_to_params_fn
We moved to replace_visitor because it uses a more precise cache.
|
2015-03-02 18:25:00 -08:00 |
|
Leonardo de Moura
|
c81762970e
|
fix(frontends/lean/elaborator): revert commit ededf4fc6c
The instantiate_all are needed. See issue #457
|
2015-03-02 13:00:54 -08:00 |
|
Leonardo de Moura
|
ededf4fc6c
|
feat(frontends/lean): remove unnecessary instantiate_all's that were messing with error localization
|
2015-03-01 14:51:44 -08:00 |
|
Leonardo de Moura
|
c8ad5e9406
|
feat(frontends/lean/builtin_exprs): focus on have-tactic goal
|
2015-03-01 13:43:33 -08:00 |
|
Leonardo de Moura
|
c772d7bf84
|
fix(frontends/lean/elaborator): unassigned metavariable when using nested begin-end blocks
Closes #454
|
2015-02-28 09:03:56 -08:00 |
|
Leonardo de Moura
|
cf56935b01
|
feat(frontends/lean): improve support for user defined tactics
|
2015-02-27 16:58:25 -08:00 |
|
Leonardo de Moura
|
5b736a2268
|
feat(frontends/lean): add support for empty match-with expressions
|
2015-02-26 16:36:15 -08: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
|
c04c610b7b
|
feat(frontends/lean): add 'assert H : A, ...' as notation for 'have H [visible] : A, ...'
|
2015-02-25 14:30:42 -08:00 |
|
Leonardo de Moura
|
96b54a8007
|
feat(frontends/lean/builtin_exprs): add 'have' notation in 'begin-end' blocks
It is notation for the assert tactic.
|
2015-02-25 14:04:17 -08:00 |
|
Leonardo de Moura
|
909ebfc5f1
|
feat(frontends/lean/elaborator): try coercions after each overload
We try only the easy cases since the more general case is too expensive.
closes #444
|
2015-02-24 17:41:20 -08:00 |
|
Leonardo de Moura
|
34c36648bb
|
fix(frontends/lean/decl_cmds): constants command
closes #445
|
2015-02-24 16:27:13 -08:00 |
|
Leonardo de Moura
|
4364b7f926
|
feat(frontends/lean): pp.beta is true by default
Remark: there is one exception (command: print definition). For this
command pp.beta is still false.
|
2015-02-24 12:27:53 -08:00 |
|
Leonardo de Moura
|
1ff6446a63
|
feat(frontends/lean): nested begin-end blocks
|
2015-02-24 11:59:27 -08:00 |
|
Leonardo de Moura
|
3197e6d403
|
feat(frontends/lean/parse_rewrite_tactic): improve rewrite tactic parser
|
2015-02-23 19:40:03 -08:00 |
|
Leonardo de Moura
|
7adecaf494
|
fix(frontends/lean/structure_cmd): include context/section parameteres/variables that are used in explicit structure parameters
|
2015-02-23 15:28:43 -08:00 |
|
Leonardo de Moura
|
923fed8612
|
fix(frontends/lean/structure_cmd): bug in alias generation in the structure command
This commit (and 75acb3bc66 ) closes #443
|
2015-02-23 15:17:05 -08:00 |
|
Leonardo de Moura
|
75acb3bc66
|
fix(frontends/lean/structure_cmd): internal name of parameter/variable was being erased
|
2015-02-23 15:01:27 -08:00 |
|
Leonardo de Moura
|
33e562a7ce
|
fix(frontends/lean/structure_cmd): effect of "include" command in the structure command
closes #438
|
2015-02-19 22:44:51 -08:00 |
|
Leonardo de Moura
|
7fc216183e
|
feat(library/tactic): produce better error message when a tactic fails
closes #348
|
2015-02-16 18:42:15 -08:00 |
|
Leonardo de Moura
|
4248ad644d
|
fix(frontends/lean): priority expressions parser
|
2015-02-14 12:26:06 -08:00 |
|
Leonardo de Moura
|
c532a4a4b8
|
feat(frontends/lean/server): add option 'auto_completion.max_results'
Default value is 100
|
2015-02-13 12:58:11 -08:00 |
|
Leonardo de Moura
|
db71a29c81
|
feat(frontends/lean/parse_rewrite_tactic): improve esimp tactic
|
2015-02-13 12:22:17 -08:00 |
|
Leonardo de Moura
|
8ffadce4ab
|
feat(frontends/lean): add "premise" and "premises" command
It is just an alternative notation for "variable" and "variables"
closes #429
|
2015-02-11 18:46:03 -08:00 |
|
Leonardo de Moura
|
30d20e8029
|
chore(frontends/lean/parser): remove dead code
|
2015-02-11 16:29:58 -08:00 |
|
Leonardo de Moura
|
04e92e1e96
|
feat(frontends/lean/parser): reject explicit universe levels in variables and parameters
This modification was motivated by issue #427
|
2015-02-11 16:25:06 -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
|
eceed03044
|
feat(frontends/lean): add "except" notation for "open" command, allow multiple metaclasses to be opened in a single "open" command
|
2015-02-11 11:02:59 -08:00 |
|
Leonardo de Moura
|
1832fb6f54
|
feat(*): uniform metaclass names, metaclass validation at 'open' command
|
2015-02-11 10:35:04 -08:00 |
|
Leonardo de Moura
|
9d1cd073c5
|
feat(frontends/lean): add 'print metaclasses' command
|
2015-02-11 10:13:20 -08:00 |
|
Leonardo de Moura
|
60fca7575c
|
fix(frontends/lean/pp): bugs when pretty printing abbreviations
|
2015-02-10 19:06:09 -08:00 |
|
Leonardo de Moura
|
bd304e1911
|
chore(*): style
|
2015-02-10 18:31:17 -08:00 |
|
Leonardo de Moura
|
43f849bf95
|
feat(frontends/lean/pp): add support for abbreviations in the pretty printer
closes #365
|
2015-02-10 18:27:02 -08:00 |
|
Leonardo de Moura
|
565cd835af
|
feat(frontends/lean): add 'abbreviation' command
|
2015-02-10 17:31:40 -08:00 |
|
Leonardo de Moura
|
014271da8b
|
feat(frontends/lean): better error messages for ill-terminated declarations
|
2015-02-10 14:38:00 -08:00 |
|
Leonardo de Moura
|
666f697d24
|
fix(frontends/lean/builtin_exprs): 'using' expression should make local constant available for tactics
|
2015-02-08 17:27:22 -08:00 |
|
Leonardo de Moura
|
c04c0e8381
|
refactor(*): remove transparent_scope hack, replace [strict] with [all-transparent] annotation
|
2015-02-07 15:19:41 -08:00 |
|
Leonardo de Moura
|
1e8a975daa
|
feat(frontends/lean): extend parser: rewrite "fold" step
|
2015-02-06 15:22:34 -08:00 |
|
Leonardo de Moura
|
5b25da8c43
|
feat(frontends/lean): add esimp tactic based on rewrite tactic
closes #358
|
2015-02-06 14:13:32 -08:00 |
|
Leonardo de Moura
|
bc95f09828
|
feat(frontends/lean/decl_cmds): allow user to specify unfold-c hint
|
2015-02-06 12:56:52 -08:00 |
|
Leonardo de Moura
|
2e626b29fb
|
feat(library/tactic/rewrite_tactic): allow many constants to be provided in a single rewrite unfold step
|
2015-02-06 11:03:36 -08:00 |
|
Leonardo de Moura
|
56a46ae61e
|
feat(frontends/lean/parse_tactic_location): make rewrite notation more uniform
|
2015-02-06 10:31:50 -08:00 |
|
Leonardo de Moura
|
38ab4e7b3a
|
feat(frontends/lean/parse_rewrite_tactic): extend rewrite tactic parser
Add support for reduction steps.
|
2015-02-05 13:24:37 -08:00 |
|
Leonardo de Moura
|
5443609845
|
fix(frontends/lean/parse_rewrite_tactic): take namespaces into account when parsing constant to unfold
|
2015-02-05 12:41:11 -08:00 |
|
Leonardo de Moura
|
b6dd1269b9
|
feat(frontends/lean/builtin_exprs): make 'obtain' arguments visible by default
|
2015-02-05 10:38:45 -08:00 |
|
Leonardo de Moura
|
dfad24e3f5
|
feat(frontends/lean): polish rewrite tactic notation
|
2015-02-05 10:15:58 -08:00 |
|
Leonardo de Moura
|
15efadfbdc
|
feat(frontends/lean/parse_rewrite_tactic): cleanup rewrite tactic notation
Make a rewrite command sequence explicit.
|
2015-02-04 20:16:24 -08:00 |
|
Leonardo de Moura
|
08dcc9e2fc
|
feat(frontends/lean/parse_rewrite_tactic): polish rewrite tactic notation
|
2015-02-04 19:19:19 -08:00 |
|
Leonardo de Moura
|
599de0271b
|
feat(frontends/lean/parse_tactic_location): validate occurrence index
|
2015-02-04 14:04:56 -08:00 |
|
Leonardo de Moura
|
8912c759dd
|
fix(frontends/lean/parse_rewrite_tactic): corner case "rewrite ?(t)"
The token '?(' is used to represent inaccessible terms in recursive
equations. In the rewriter tactic, we want "rewrite ?(t)" to be parsed
as "? (t)".
|
2015-02-04 11:51:39 -08:00 |
|
Leonardo de Moura
|
991d29b7f6
|
fix(frontends/lean/parse_rewrite_tactic): bugs in rewrite tactic parser
|
2015-02-04 11:51:39 -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
|
461fd45efc
|
feat(frontends/lean): allow a different location for each rewrite element
|
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
|
87bcec2e5e
|
feat(frontends/lean): parse tactic location (i.e., scope of application)
|
2015-02-04 11:51:39 -08:00 |
|
Leonardo de Moura
|
0cea63651d
|
fix(frontends/lean): store line/col information at snapshots, save snapshot before 'end' scope, and before "closing" open namespaces
closes #422
|
2015-02-04 10:40:36 -08:00 |
|
Leonardo de Moura
|
1ee47dc063
|
feat(frontends/lean/server): suppress projections from autocompletion
closes #424
|
2015-02-04 07:18:47 -08:00 |
|
Leonardo de Moura
|
c92f3bec65
|
refactor(library/definitional/projection): move projection "database" to library/projection
|
2015-02-04 07:18:43 -08:00 |
|
Leonardo de Moura
|
15716c1471
|
feat(frontends/lean/calc_proof_elaborator): reject proofs with metavariables in the calc-assistant
|
2015-02-01 11:11:27 -08:00 |
|
Leonardo de Moura
|
d52af105d7
|
feat(frontends/lean/decl_cmds): allow many constants to be set in the same attribute command
|
2015-01-31 23:55:14 -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
|
dbc8e9e13a
|
refactor(*): add method get_num_univ_params
|
2015-01-28 17:22:18 -08:00 |
|
Leonardo de Moura
|
e4b5e07498
|
fix(frontends/lean/elaborator): apply substitution before compiling pre-tactics into tactics
closes #415
|
2015-01-28 13:32:56 -08:00 |
|
Leonardo de Moura
|
2a5658ebe2
|
fix(frontends/lean/elaborator_context): memory leak
|
2015-01-26 16:08:51 -08:00 |
|