Leonardo de Moura
8747f12118
refactor(frontends/lean/elaborator): remove unnecessary
...
set_local_context_for method
2014-09-25 10:21:31 -07:00
Leonardo de Moura
b8eb65aac2
perf(frontends/lean/placeholder_elaborator): reuse local_context, this
...
is possible now because local_context is a mainly "functional object"
2014-09-25 10:11:41 -07:00
Leonardo de Moura
2e2d2d21f1
refactor(local_context): local_context::scope auxiliary object is not
...
needed anymore
2014-09-25 09:59:27 -07:00
Leonardo de Moura
09162e5fea
refactor(frontends/lean/local_context): remove name_generator from local_context
2014-09-25 09:44:34 -07:00
Leonardo de Moura
354c456639
refactor(frontends/lean/local_context): move mvar2meta mapping to elaborator
2014-09-25 09:31:03 -07:00
Leonardo de Moura
fce1113b80
refactor(frontends/lean/coercion_elaborator): simplify
...
coercion_elaborator interface
2014-09-25 08:48:31 -07:00
Leonardo de Moura
a61b95a87e
refactor(frontends/lean/proof_qed_elaborator): simplify
...
proof_qed_elaborator interface
2014-09-25 08:38:02 -07:00
Leonardo de Moura
18cfce60b9
refactor(frontends/lean/local_context): simplify local_context representation
2014-09-25 08:13:27 -07:00
Leonardo de Moura
8466115665
fix(frontends/lean/class): missing explicit initialization/finalization
2014-09-24 10:12:29 -07:00
Leonardo de Moura
dbe1763b1a
refactor(frontends/lean/server): explicit initialization/finalization
2014-09-24 10:12:29 -07:00
Leonardo de Moura
358074ae3d
refactor(kernel/record): remove kernel extension for records, we will
...
implement it outside of the kernel on top of the inductive datatypes
2014-09-24 10:12:28 -07:00
Leonardo de Moura
da481c3274
refactor(kernel): explicit initialization/finalization
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-24 10:12:28 -07:00
Leonardo de Moura
29d6bff785
refactor(frontends/lean): explicit initialization/finalization
2014-09-23 10:00:36 -07:00
Leonardo de Moura
4437a65d0b
refactor(frontends/lean/builtin_cmds): explicit token initialization
2014-09-22 19:22:53 -07:00
Leonardo de Moura
531046626a
refactor(*): explicit initialization/finalization for environment extensions
2014-09-22 17:30:29 -07:00
Leonardo de Moura
b6781711b1
refactor(*): explicit initialization/finalization for serialization
...
modules, expression annotations, and tactics
2014-09-22 15:26:41 -07:00
Leonardo de Moura
b1ee888aae
refactor(*): start move to explicit initialization/finalization,
...
explicitly initialize/finalize options
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-22 10:41:07 -07:00
Leonardo de Moura
8fe7465ade
fix(frontends/lean/pp): when formatting a coercion to function-class
...
that contains implicit arguments
2014-09-20 09:56:46 -07:00
Leonardo de Moura
fd5daa8fda
feat(frontends/lean): use coercions to function-class and sort-class in
...
function arguments, closes #203
2014-09-20 09:00:10 -07:00
Leonardo de Moura
e430dc8bab
feat(frontends/lean): add 'irreducible' as syntax sugar for 'reducible [off]'
2014-09-19 15:54:32 -07:00
Leonardo de Moura
4e2377ddfc
refactor(frontends/lean): replace '[protected]' modifier with 'protected definition' and 'protected theorem', '[protected]' is not a hint.
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-19 15:54:32 -07:00
Leonardo de Moura
5d8c7fbdf1
refactor(frontends/lean): replace '[private]' modifier with 'private
...
definition' and 'private theorem', '[private]' is not a hint.
2014-09-19 15:54:32 -07:00
Leonardo de Moura
97b1998def
refactor(frontends/lean): replace '[opaque]' modifier with 'opaque
...
definition', '[opaque]' is not a hint, but a kind of definition
2014-09-19 15:54:32 -07:00
Leonardo de Moura
08ccd58eb6
feat(frontends/lean): add 'reducible' modifier for controlling which
...
definitions are unfolded during elaboration
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-19 15:54:32 -07:00
Leonardo de Moura
baf4c01de8
feat(frontends/lean): definitions are opaque by default
2014-09-19 15:54:32 -07:00
Leonardo de Moura
48dbd13eef
feat(frontends/lean): allow transient classes/instances, i.e.,
...
classes/instances that are not saved in .olean files
2014-09-19 15:54:32 -07:00
Leonardo de Moura
93c2c30310
feat(frontends/lean): allow transient coercions, i.e., coercions that
...
are not saved in .olean files
2014-09-19 15:54:32 -07:00
Leonardo de Moura
b53b1825ae
fix(frontends/lean/info_manager): get_closest_env_opts
2014-09-18 17:03:59 -07:00
Leonardo de Moura
9e29602934
fix(frontends/lean/info_manager): make sure env_info is not lost when
...
starting parser in the middle of the 'file'
2014-09-18 16:51:59 -07:00
Leonardo de Moura
970ad72bc3
fix(frontends/lean/pp): protect pretty printer from exceptions
2014-09-18 16:21:20 -07:00
Leonardo de Moura
b3e05a2fe9
refactor(frontends/lean/scanner): remove dependency to seekg and unget
...
methods
It is not safe to use seekg for textual files. Here is a fragment from a
C++ manual:
seekg() and seekp()
This pair of functions serve respectively to change the position of stream pointers get and put. Both functions are overloaded with two different prototypes:
seekg ( pos_type position );
seekp ( pos_type position );
Using this prototype the stream pointer is changed to an absolute position from the beginning of the file. The type required is the same as that returned by functions tellg and tellp.
seekg ( off_type offset, seekdir direction );
seekp ( off_type offset, seekdir direction );
Using this prototype, an offset from a concrete point determined by
parameter direction can be specified. It can be:
ios::beg offset specified from the beginning of the stream
ios::cur offset specified from the current position of the stream pointer
ios::end offset specified from the end of the stream
The values of both stream pointers get and put are counted in different
ways for text files than for binary files, since in text mode files some
modifications to the appearance of some special characters can
occur. For that reason it is advisable to use only the first prototype
of seekg and seekp with files opened in text mode and always use
non-modified values returned by tellg or tellp. With binary files, you
can freely use all the implementations for these functions. They should
not have any unexpected behavior.
2014-09-18 15:24:48 -07:00
Leonardo de Moura
9733401c20
fix(frontends/lean/tactic_hint): failure when compiling lean terms into
...
tactics: mismatch on the number of universe parameters
2014-09-17 15:23:10 -07:00
Leonardo de Moura
2b0623c0a1
fix(frontends/lean): assertion violations
2014-09-16 18:59:51 -07:00
Leonardo de Moura
78ad24a697
feat(frontends/lean/server): add SYNC command, closes #199
2014-09-16 18:42:34 -07:00
Leonardo de Moura
e3e2370a38
feat(frontends/lean): split 'opaque_hint' command into 'opaque' and 'transparent'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-16 18:03:40 -07:00
Leonardo de Moura
4b51d50ad4
fix(frontends/lean/elaborator): coercion overloading
2014-09-16 15:12:20 -07:00
Leonardo de Moura
dffe9a6f17
fix(frontends/lean/elaborator): more robust support for coercions to
...
function-class that contains implicit arguments
2014-09-16 13:08:34 -07:00
Leonardo de Moura
d0d23eb525
fix(frontends/lean/inductive_cmd): improve name resolution in inductive
...
command
The new test demonstrates the problem being fixed by this commit
2014-09-16 09:48:51 -07:00
Leonardo de Moura
af2c3b1815
fix(frontends/lean/info_manager): bug in save_environment_options,
...
server was displaying old results
2014-09-15 16:05:17 -07:00
Leonardo de Moura
93e83baa1b
fix(frontends/lean/parser): commit_upto invocation after 'import'
2014-09-15 16:05:17 -07:00
Leonardo de Moura
feb4993f9c
fix(frontends/lean/server): '[anonymous]' entry being displayed by FINDP
...
This could happen when there is a declaration (e.g., nat) whose type is
equal to an active namespace.
2014-09-15 16:05:17 -07:00
Leonardo de Moura
d47412d201
fix(frontends/lean/parser): error line numbers for lua code, fixes #194
2014-09-14 21:03:09 -07:00
Leonardo de Moura
edcbe6fe10
feat(frontends/lean): allow multiple coercions from class A to B, closes #187
...
See new tests (for examples)
tests/lean/run/coe10.lean
tests/lean/run/coe11.lean
tests/lean/run/coe9.lean
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-14 12:59:43 -07:00
Leonardo de Moura
d647954f93
feat(frontends/lean/elaborator): constraints associated with 'proof-qed'
...
blocks are solved independently, closes #82
2014-09-13 10:21:10 -07:00
Leonardo de Moura
8c8c9d1c4a
feat(frontends/lean/elaborator): cleanup and remove unnecessary code
2014-09-12 17:55:27 -07:00
Leonardo de Moura
0c50517058
refactor(frontends/lean/elaborator): do not save/restore cache
2014-09-12 17:39:11 -07:00
Leonardo de Moura
6db46e0505
fix(frontends/lean/server): std::unordered_map::insert does replace
...
existing entry, fixes #188
2014-09-12 16:50:06 -07:00
Leonardo de Moura
b7023ce1d8
fix(frontends/lean/placeholder_elaborator): do not truncate stream of
...
solutions during class-instance resolution, closes #183
For example, in theorem inverse_unique at category.lean, implicit
arguments are synthesized for inverse_compose. The first solution H' is
not good, and produces a type incorrect solution
2014-09-12 16:12:23 -07:00
Leonardo de Moura
b7dcb8f833
fix(frontends/lean/elaborator): remove annotation left-over
2014-09-12 16:12:23 -07:00
Leonardo de Moura
a2e36e97f2
fix(frontends/lean/builtin_cmds): allow coercion command inside section, fixes #186
2014-09-12 12:13:29 -07:00