Leonardo de Moura
|
d3bce584f4
|
Add support for new metavariable representation in the normalizer.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-17 01:57:21 -07:00 |
|
Leonardo de Moura
|
da09e7217a
|
Cleanup meta_entry code
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-16 19:32:28 -07:00 |
|
Leonardo de Moura
|
99a163f11d
|
Simplify metavariable context. Now, we have only 'lift' and 'inst' instead of 'subst', 'lift' and 'lower'
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-16 19:32:28 -07:00 |
|
Leonardo de Moura
|
cad562a448
|
Add support for metavariables in the normalizer.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-16 19:32:28 -07:00 |
|
Leonardo de Moura
|
1be2a30c8c
|
Fix bug in normalizer. We must create a scope whenever we extend the value stack.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-16 19:32:28 -07:00 |
|
Leonardo de Moura
|
f79f046294
|
Add partial support for metavariables in the normalizer
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-15 21:23:50 -07:00 |
|
Leonardo de Moura
|
2800292947
|
Add timestamp to metavar_env
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-15 19:50:48 -07:00 |
|
Leonardo de Moura
|
5a4bc331d2
|
Make unification_problems a virtual class. Associate a 'standard' context with each metavariable in metavar_env
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-15 19:38:36 -07:00 |
|
Leonardo de Moura
|
63e102055e
|
Move metavariables to the kernel. This is the first step for implementing the new elaborator.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-15 12:09:01 -07:00 |
|
Soonho Kong
|
bc60b47295
|
Apply coding style
|
2013-09-13 18:48:09 -07:00 |
|
Leonardo de Moura
|
bcc3827a99
|
Modify Doxygen file to extract all elements even the undocumented ones. Disable warnings for undocumented entities. Add extra comments.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-13 13:46:22 -07:00 |
|
Leonardo de Moura
|
d54834279e
|
Use consistent coding style for if-then-else
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-13 12:57:40 -07:00 |
|
Leonardo de Moura
|
8c735f1daa
|
Use consistent coding style for spaces after ','
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-13 12:49:03 -07:00 |
|
Leonardo de Moura
|
2c68117adf
|
Tag TODOs
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-13 12:25:21 -07:00 |
|
Leonardo de Moura
|
0c09e4524a
|
Use consistent names for import functions, and library files.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-13 08:58:34 -07:00 |
|
Soonho Kong
|
5c3866cd71
|
Use fullpath in #include directives, add missing STL headers
|
2013-09-13 03:35:29 -07:00 |
|
Leonardo de Moura
|
26097475fd
|
Use fullpath in #include directives.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-12 20:04:10 -07:00 |
|
Leonardo de Moura
|
572c7ced2a
|
Add #include<atomic> to expr.h. We need it when #define LEAN_THREAD_UNSAFE_REF_COUNT is used
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-11 19:48:55 -07:00 |
|
Leonardo de Moura
|
33c4b44b2b
|
Encapsulate context implementation. The current implementantion based on lists may be a performance problem in the future, and we should be able to change it without affecting the whole code base.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-07 11:15:11 -07:00 |
|
Leonardo de Moura
|
bab11b57ad
|
Move Symm and Trans back to basic_thms.cpp
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-06 23:49:35 -07:00 |
|
Leonardo de Moura
|
c674bb3790
|
Add castlib as an independent library
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-06 23:40:47 -07:00 |
|
Leonardo de Moura
|
7a9d53d0d7
|
Refactor arith libraries
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-06 23:19:47 -07:00 |
|
Leonardo de Moura
|
b92bbeb83b
|
Add casting propagation and normalization
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-06 20:45:26 -07:00 |
|
Leonardo de Moura
|
c0c2f52087
|
Add Cast, DomInj and RanInj. Improve operator << for lean_frontend objects.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-06 18:32:15 -07:00 |
|
Leonardo de Moura
|
8840b37258
|
Fix type checker and elaborator for let expressions. Fix get_coercions (we need to pass the context). Fix pretty printer for def_type_mismatch_exception.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-06 11:02:00 -07:00 |
|
Leonardo de Moura
|
2459c4ae7c
|
Add (optional) type to let declarations
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-06 10:06:26 -07:00 |
|
Leonardo de Moura
|
87d3961158
|
Improve elaborator error messages
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-04 16:36:58 -07:00 |
|
Leonardo de Moura
|
be7fa0932a
|
Add unicode name for the types: Nat, Int and Real
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-04 09:03:41 -07:00 |
|
Leonardo de Moura
|
d41160f8a5
|
Modify environment. Now, when a builtin value is declared, if it has a unicode alternative representation, then we add it as a definition. Now, everything that occurs in the environment has been 'declared'.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-04 08:53:00 -07:00 |
|
Leonardo de Moura
|
e955c054ca
|
Modify type checker. Now, it only accepts builtin values that have been declared in the environment. The idea is to be able to track which classes of builtin values have been used in a given environment. We want to be able to quantify the size of the trusted code base for a particular development.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-04 08:30:04 -07:00 |
|
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
|
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
|
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
|
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
|
42be7a4989
|
Add coercion declarations
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-09-01 18:11:28 -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
|
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
|
4ef4655183
|
Add homogeneous equality
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
|
2013-08-30 14:26:12 -07:00 |
|