Leonardo de Moura
|
887f696f66
|
Factor duplicate code. Add more comments
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 23:27:58 -07:00 |
|
Leonardo de Moura
|
0c071d43af
|
Move examples to lean examples subdir. We should have an example subdirectory for each frontend
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 20:42:20 -07:00 |
|
Leonardo de Moura
|
fc9e395818
|
Define absolute value function and notation for it. Add new example.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 20:39:54 -07:00 |
|
Leonardo de Moura
|
3992c4b8f9
|
Define divides, and add examples
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 20:18:20 -07:00 |
|
Leonardo de Moura
|
8e7c657cf7
|
Use expected type of a definition in the elaborator. Improve elaborator solver. Add new example
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 18:04:42 -07:00 |
|
Leonardo de Moura
|
4a75e2d965
|
Fix bug when pretty printing function applications where the head is a meta-variable.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 17:51:56 -07:00 |
|
Leonardo de Moura
|
51422fe654
|
Modify the parser for accepting expressions such as: 'fun a b, f a b', 'forall a, f a > 0', etc. This is just syntax sugar for 'fun (a : _) (b : _), f a b' and 'forall a : _, f a > 0'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 17:24:05 -07:00 |
|
Leonardo de Moura
|
6f3fa63ccb
|
Add missing test
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 14:51:34 -07:00 |
|
Leonardo de Moura
|
a154f4e439
|
Modify Set command in the default lean frontend. Now, the lean prefix (for lean default frontend specific options) is optional when we are in the lean front-end.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 11:07:28 -07:00 |
|
Leonardo de Moura
|
a341643335
|
Fix unit tests for Windows
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 10:44:51 -07:00 |
|
Leonardo de Moura
|
2d97bc3861
|
Make pp::unicode false by default in Windows
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 10:26:12 -07:00 |
|
Leonardo de Moura
|
544229e5d3
|
Create pp::unicode option. The idea is to be able to disable unicode characters, but still be able to use mixfix notation.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-03 10:11:45 -07:00 |
|
Leonardo de Moura
|
e031d7bc10
|
Improve error messages when overloads+coercions do not work
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 20:05:47 -07:00 |
|
Leonardo de Moura
|
fd44ec8d79
|
Improve application type mismatch error messages
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 18:28:12 -07:00 |
|
Leonardo de Moura
|
72188691de
|
Add hyperbolic functions
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 17:28:43 -07:00 |
|
Leonardo de Moura
|
4eaba93591
|
Add trigonometric functions
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 17:03:02 -07:00 |
|
Leonardo de Moura
|
395513258e
|
Define mod and unary minus
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 16:31:44 -07:00 |
|
Leonardo de Moura
|
b483d0dc45
|
Replace Int::sub and Real::sub with definitions
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 16:31:30 -07:00 |
|
Leonardo de Moura
|
abc939382b
|
Add Real arithmetic. Fix elaborator for coercions. Now, two overloads are considered ambiguous if they need the same number of coercions. Improve pretty printer for nest infix operators with same precedence and associativity.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 13:20:00 -07:00 |
|
Leonardo de Moura
|
e218b92a9d
|
Modify verbose message for Set command
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 12:29:21 -07:00 |
|
Leonardo de Moura
|
0a67679afb
|
Add natural numbers. Fix how coercions and overloads interact (switch to approach used in C++). Add notation for natural and integer arithmetic. Rename m and u universe variables to M and U.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 12:24:29 -07:00 |
|
Leonardo de Moura
|
7acf438bf4
|
Metavariables will not be part of the kernel
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 09:36:04 -07:00 |
|
Leonardo de Moura
|
990f428a81
|
Remove virtual method kind from value class and subclasses. We can use dynamic_cast to achieve the same goal
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 09:35:10 -07:00 |
|
Leonardo de Moura
|
81d0203ee0
|
Replace macros TypeM, TypeU, Int, Bool, True and False with constant global expressions. The macros were producing counterintuitive behavior. For example, we had an enumeration type with an element called Int.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 09:11:53 -07:00 |
|
Leonardo de Moura
|
db88920f81
|
Rename normalize and type_check to normalizer and type_checker (using a consistent naming convention)
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-02 08:43:38 -07:00 |
|
Leonardo de Moura
|
c97e669f0c
|
Add coercion support in the elaborator and pretty printer
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-01 19:09:07 -07:00 |
|
Leonardo de Moura
|
e8c09015ad
|
Move elaborator to lean default frontend. It is getting too specific
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-01 18:22:24 -07:00 |
|
Leonardo de Moura
|
42be7a4989
|
Add coercion declarations
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-01 18:11:28 -07:00 |
|
Leonardo de Moura
|
75f4ec5092
|
Add functions for 'updating expressions'. The new functions are used to simplify the elaborator.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-01 15:37:30 -07:00 |
|
Leonardo de Moura
|
61a8fd16db
|
Remove unnecessary files
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-01 14:57:08 -07:00 |
|
Leonardo de Moura
|
d27680d7fc
|
Add support for overloads in the elaborator
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-01 14:54:02 -07:00 |
|
Leonardo de Moura
|
598daa40bc
|
Refactor elaborator for supporting overloads
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-01 10:24:10 -07:00 |
|
Leonardo de Moura
|
b2924bba99
|
Fix typos
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-01 10:03:15 -07:00 |
|
Leonardo de Moura
|
e54338f4a8
|
Add a real example. Fix bug in the parser
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-31 19:32:08 -07:00 |
|
Leonardo de Moura
|
51640ecff8
|
Move files in examples directory to tests directory. They are not real examples
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-31 19:16:30 -07:00 |
|
Leonardo de Moura
|
389f23f356
|
Add test script
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-31 18:31:39 -07:00 |
|
Leonardo de Moura
|
9d9f9797e4
|
Improve elaborator interface. Now, the metavariables are created inside the elaborator. The elaborator-user only needs to create placeholders. Motivaton: the placeholders are meaningful independently of the elaborator. On the other hand, the metavariables depend on the elaborator state.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-31 17:11:06 -07:00 |
|
Leonardo de Moura
|
71b8b6408e
|
Handle (and pretty print) elaborator error messages in the lean default frontend
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-31 16:46:41 -07:00 |
|
Leonardo de Moura
|
03a5b5dbd0
|
Add more tests
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-31 14:25:27 -07:00 |
|
Leonardo de Moura
|
64788320f2
|
Fix elaborator for let-expressions
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-31 14:24:07 -07:00 |
|
Leonardo de Moura
|
4a28a64685
|
Fix type checker for let expressions
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-31 14:19:24 -07:00 |
|
Leonardo de Moura
|
793468072b
|
Fix nontermination problem
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-31 12:32:16 -07:00 |
|
Leonardo de Moura
|
4c27530930
|
Fix missing case in the elaborator
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-30 17:07:45 -07:00 |
|
Leonardo de Moura
|
4b7d4cf0d1
|
Add latest example to regression suite
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-30 16:39:31 -07:00 |
|
Leonardo de Moura
|
dadbf15e70
|
Change how the (auxiliary) explicit definitions are encoded in the system. The previous encoding was confusing the pretty printer, and the definition looked recursive.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-30 16:37:21 -07:00 |
|
Leonardo de Moura
|
1b6d51b0aa
|
Mark implicit arguments of builtin symbols
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-30 15:56:04 -07:00 |
|
Leonardo de Moura
|
4ef4655183
|
Add homogeneous equality
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-30 14:26:12 -07:00 |
|
Leonardo de Moura
|
1e370023b1
|
Attach elaborator the lean default parser
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-30 13:25:30 -07:00 |
|
Leonardo de Moura
|
45d89ace65
|
Fix name clash problem when pretty printing
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-30 13:25:12 -07:00 |
|
Leonardo de Moura
|
6efb6c6e83
|
Fix clang++ compilation problem.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-30 09:04:11 -07:00 |
|
Leonardo de Moura
|
2aac94f2e6
|
Refactor elaborator using new metavar library.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-30 01:25:06 -07:00 |
|
Leonardo de Moura
|
682df7699d
|
Fix is_convertible propositions => type
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-30 01:24:06 -07:00 |
|
Leonardo de Moura
|
1f6943e3a4
|
Add head_reduce_mmv (reduction function modulo metavariables)
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-29 14:15:17 -07:00 |
|
Leonardo de Moura
|
2cf9ca9345
|
Add metavariable utilities. They will be used to refactor the elaborator.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-29 13:49:22 -07:00 |
|
Leonardo de Moura
|
01e4b4b7fe
|
Add postprocessor functional object to the replace_fn template. Add unit-test that demonstrates how to build a replacer that builds a trace. The trace associates new expressions with the old ones that were used to create it.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-28 10:47:19 -07:00 |
|
Leonardo de Moura
|
cdab19b88c
|
Simplify the elaborator
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-27 20:39:38 -07:00 |
|
Leonardo de Moura
|
8dacd97801
|
Remove obsolete commands.
|
2013-08-27 16:03:45 -07:00 |
|
Leonardo de Moura
|
a9c6088d11
|
Uniform notation declarations.
|
2013-08-27 15:59:13 -07:00 |
|
Leonardo de Moura
|
5aae838e1c
|
Add missing mixfix notation
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-27 10:09:46 -07:00 |
|
Leonardo de Moura
|
85daaea8ce
|
Rename get_exs in oper to get_deno
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-27 09:49:48 -07:00 |
|
Leonardo de Moura
|
206c7fa203
|
Implement support for notation + implicit arguments. Cleanup pretty printer code for handling implicit arguments.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-27 09:45:00 -07:00 |
|
Leonardo de Moura
|
76c968a5b8
|
Add basic support for hiding implicit arguments when pretty printing.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-26 20:35:10 -07:00 |
|
Leonardo de Moura
|
fc6cc17925
|
Improve lean pretty printer support for implicit argument annotations
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-26 19:19:56 -07:00 |
|
Leonardo de Moura
|
7bca3705ca
|
Add implicit argument declarations to lean parser.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-26 10:16:29 -07:00 |
|
Leonardo de Moura
|
7003f85213
|
Add implicit argument management to lean frontend.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-26 10:16:29 -07:00 |
|
Leonardo de Moura
|
0a34959716
|
Fix a bug. Add another test.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-25 20:43:50 -07:00 |
|
Leonardo de Moura
|
3721577700
|
Fix bugs in elaborator. Cleanup tests.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-25 18:46:33 -07:00 |
|
Leonardo de Moura
|
8f4a844598
|
Fix unit tests
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-25 11:42:36 -07:00 |
|
Leonardo de Moura
|
7e130ac47f
|
Propagate interrupt to normalizer in the lean frontend
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-25 11:34:46 -07:00 |
|
Leonardo de Moura
|
b42e04297d
|
Add support for creating meta-variables in the parser.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-25 11:18:19 -07:00 |
|
Leonardo de Moura
|
25e47a8a2f
|
Add check_interrupted 'macro'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-25 11:03:09 -07:00 |
|
Leonardo de Moura
|
ece6e6ca6a
|
Add interrupt to parser. Add elaborator to parser. Add placeholder support in the scanner.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-25 11:02:34 -07:00 |
|
Leonardo de Moura
|
02b72acc2f
|
Add implicit arguments unit tests
|
2013-08-24 18:23:39 -07:00 |
|
Leonardo de Moura
|
ac1267bef3
|
Add expression elaborator to library
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-24 18:14:09 -07:00 |
|
Leonardo de Moura
|
68e1a1a24a
|
Add metavar_env to library
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-24 17:51:53 -07:00 |
|
Leonardo de Moura
|
dc91a7adb8
|
Add Ctrl-C support for interrupting Lean shell.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-24 16:11:35 -07:00 |
|
Leonardo de Moura
|
f0edf2b4a3
|
Pretty print kernel exceptions. Improve default lean frontend error messages.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-24 13:16:43 -07:00 |
|
Leonardo de Moura
|
0b112b6637
|
Add sstream to simplify the generation of exception messages.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-24 11:55:17 -07:00 |
|
Leonardo de Moura
|
48ba655bd5
|
Store position at parser_error. It produces better error messages.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-24 11:30:54 -07:00 |
|
Leonardo de Moura
|
55eaef1a44
|
Save position information when parsing expression in the lean default fronted.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-24 09:56:07 -07:00 |
|
Leonardo de Moura
|
bf608a38aa
|
Add head_reduce
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-23 19:35:33 -07:00 |
|
Leonardo de Moura
|
be1ea2ddc7
|
Add name_set typedef
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-23 19:34:10 -07:00 |
|
Leonardo de Moura
|
e95a0c2559
|
Modify basic printer for contexts
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-23 12:11:16 -07:00 |
|
Leonardo de Moura
|
18a195029b
|
Refactor expression equality
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-23 09:42:49 -07:00 |
|
Leonardo de Moura
|
f08c06d582
|
Add head_beta tests
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-23 09:42:49 -07:00 |
|
Leonardo de Moura
|
e7487a1fec
|
Add head_beta function
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-23 09:42:49 -07:00 |
|
Leonardo de Moura
|
670dc5ad55
|
Add option to control maximum recursion depth in the expression normalizer
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Conflicts:
src/tests/kernel/normalize.cpp
|
2013-08-23 09:42:49 -07:00 |
|
Leonardo de Moura
|
198fd46fc2
|
Track recursion depth at normalizer. Add fluid let template.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-23 09:42:49 -07:00 |
|
Leonardo de Moura
|
d30c6b2c9d
|
Fix spaces
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-23 09:42:49 -07:00 |
|
Leonardo de Moura
|
42a7094ca2
|
Fix bug in display_decimal. Add more mpq tests
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-23 09:42:49 -07:00 |
|
Leonardo de Moura
|
218b6ac8b7
|
Fix typo
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-23 09:42:49 -07:00 |
|
Soonho Kong
|
ca779265e5
|
Update src/CMakeLists.txt to increase stack size for windows build
[skip ci]
|
2013-08-22 21:16:57 -07:00 |
|
Leonardo de Moura
|
f1462dc51e
|
Change lean frontend specific options. Now, frontend specific options must begin with the frontend name.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-22 10:55:55 -07:00 |
|
Leonardo de Moura
|
0f6a7e4a95
|
Rename exprlib to library. Name was misleading, it is more than a library for manipulating expressions.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-22 10:26:52 -07:00 |
|
Leonardo de Moura
|
60fdcf0011
|
Add option_declaration tests
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-22 08:59:39 -07:00 |
|
Leonardo de Moura
|
5d813c30d0
|
Add missing option test
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-22 08:51:33 -07:00 |
|
Leonardo de Moura
|
fbd25cac9f
|
Add hierarchical names tests
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-22 08:48:52 -07:00 |
|
Leonardo de Moura
|
1b5fcb80ee
|
Add sexpr tests
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-22 08:30:52 -07:00 |
|
Leonardo de Moura
|
6272408f12
|
Add format tests
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-22 08:20:42 -07:00 |
|
Leonardo de Moura
|
3c5f993191
|
Fix bugs in options module. Add more tests.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-22 08:08:55 -07:00 |
|