Commit graph

156 commits

Author SHA1 Message Date
Leonardo de Moura
be61fb0566 feat(frontends/lean/elaborator): add "noncomputable theory" command, display "noncomputable" when printing definitions
When the command "noncomputable theory" is used, Lean will not sign an
error when a noncomputable definition is not marked as noncomputable
2015-07-29 17:54:35 -07:00
Leonardo de Moura
69ead0ddd8 feat(frontends/lean/decl_cmds): reject unnecessary "noncomputable" annotations 2015-07-29 13:01:07 -07:00
Leonardo de Moura
74be3031b1 feat(frontends/lean/decl_cmds): sign an error if "noncomputable" keyword is used in the HoTT library or with non-definitions 2015-07-29 13:01:06 -07:00
Leonardo de Moura
308af87b69 feat(library): add 'noncomputable' keyword for the standard library 2015-07-28 21:56:35 -07:00
Leonardo de Moura
2109dff46a feat(frontends/lean): remove unnecessary flag 2015-06-17 17:23:20 -07:00
Leonardo de Moura
3d9b557cfd feat(frontends/lean): allow the user to mark subterms that should be automatically abstracted into new definitions
closes #484
2015-06-12 17:49:26 -07:00
Leonardo de Moura
4694f47ea4 refactor(frontends/lean/decl_attributes): move decl_attributes to a separate module 2015-06-12 13:38:57 -07:00
Leonardo de Moura
ca43f6e62e refactor(frontends/lean): add postprocess procedure and cleanup 2015-06-10 15:19:35 -07:00
Leonardo de Moura
0fbc944cdd feat(frontends/lean): add '[rewrite]' attribute 2015-06-01 17:58:24 -07:00
Leonardo de Moura
b6fde68012 feat(frontends/lean/decl_cmds): avoid funny names when displaying error messages for "examples" 2015-06-01 15:35:28 -07:00
Leonardo de Moura
3b7b268e40 fix(frontends/lean/pp): fixes #634
trying again...
2015-05-29 14:07:38 -07:00
Leonardo de Moura
ab58e538a4 feat(frontends/lean/elaborator): hide auxiliary 'match' hypothesis during elaboration 2015-05-25 15:24:56 -07:00
Leonardo de Moura
c2faa0fe98 refactor(library): rename equivalence_manager to relation_manager 2015-05-21 12:25:02 -07:00
Leonardo de Moura
e1c2340db2 fix(frontends/lean): consistent behavior for protected declarations
see https://github.com/leanprover/lean/issues/604#issuecomment-103265608

closes #609
2015-05-18 22:35:18 -07:00
Leonardo de Moura
c61c049152 feat(library/user_recursors): generalize acceptable use-defined recursors
see issue #492
2015-05-18 14:21:10 -07:00
Leonardo de Moura
750f6d5a43 feat(library,frontends/lean): validate user defined recursors and add attribute to mark them
see issue #492

The user-defined recursors will also be used to implement the blast tactic
2015-05-12 15:48:01 -07:00
Leonardo de Moura
bd28396be0 feat(kernel): transparent theorems
closes #576
2015-05-09 11:42:29 -07:00
Leonardo de Moura
4e35afedcc feat(frontends/lean): rename 'wait' to 'reveal'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2015-05-08 20:54:16 -07:00
Leonardo de Moura
f8e2f68ce0 feat(frontends/lean): add 'wait' command
This commit also fixes several problems with -j option (parallel
compilation). The .olean files were not missing data when -j was used

see issue #576
2015-05-08 20:05:21 -07:00
Leonardo de Moura
e59456c19f feat(frontends/lean): remove 'opaque' keyword
see issue #576
2015-05-08 16:45:13 -07:00
Leonardo de Moura
cf7e60e5a6 refactor(kernel): remove "opaque" field from kernel declarations
see issue #576
2015-05-08 16:06:16 -07:00
Leonardo de Moura
57ea660963 refactor(*): start process for eliminating of opaque definitions from the kernel
see issue #576
2015-05-08 16:06:04 -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
6571c47353 feat(library/normalize): add '[unfold-m]' hint
See issue #496
2015-05-04 14:23:04 -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
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
60e320fd79 feat(frontends/lean): protected constants and axioms
fixes #527
2015-04-19 17:45:58 -07:00
Leonardo de Moura
d731a4ab13 feat(library/normalize): add '[unfold-f]' hint
closes #497
2015-04-05 03:00:13 -07:00
Leonardo de Moura
d591c63840 feat(frontends/lean/decl_cmds): allow local coercions in contexts
closes #525
2015-04-04 15:25:07 -07:00
Leonardo de Moura
26c914173c feat(frontends/lean): add --profile option 2015-03-31 11:53:55 -07:00
Leonardo de Moura
8c76419c60 fix(frontends/lean/decl_cmds): error localization problem for recursive equations 2015-03-30 13:30:29 -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
fc3a7bac59 feat(frontends/lean): improve error handling inside match-with expressions 2015-03-13 23:25:46 -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
f966634910 feat(frontends/lean): nested dependent pattern matching 2015-03-06 19:18:08 -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
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
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
5b736a2268 feat(frontends/lean): add support for empty match-with expressions 2015-02-26 16:36:15 -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
34c36648bb fix(frontends/lean/decl_cmds): constants command
closes #445
2015-02-24 16:27:13 -08:00
Leonardo de Moura
4248ad644d fix(frontends/lean): priority expressions parser 2015-02-14 12:26:06 -08:00
Leonardo de Moura
bd304e1911 chore(*): style 2015-02-10 18:31:17 -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