lean2/src/frontends/lean
Leonardo de Moura 7772c16033 refactor(kernel): add unfold_opaque flag to normalizer, modify how type checker uses the opaque flag, remove hidden_defs, and mark most builtin definitions as opaque
After this commit, in the type checker, when checking convertability, we first compute a normal form without expanding opaque terms.
If the terms are convertible, then we are done, and saved a lot of time by not expanding unnecessary definitions.
If they are not, instead of throwing an error, we try again expanding the opaque terms.
This seems to be the best of both worlds.
The opaque flag is a hint for the type checker, but it would never prevent us from type checking  a valid term.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2013-12-20 12:47:47 -08:00
..
CMakeLists.txt feat(frontends/lean): Scopes in the default Lean frontend 2013-12-18 17:40:21 -08:00
coercion.h Rename lean frontend files. The prefix lean_ is not necessary anymore. 2013-09-12 20:09:35 -07:00
environment_scope.cpp feat(frontends/lean): Scopes in the default Lean frontend 2013-12-18 17:40:21 -08:00
environment_scope.h feat(frontends/lean): Scopes in the default Lean frontend 2013-12-18 17:40:21 -08:00
frontend.cpp feat(frontends/lean): improve coercion manangement 2013-12-19 15:45:46 -08:00
frontend.h feat(frontends/lean): hide builtin object in the 'Show Environment' command 2013-12-19 14:00:58 -08:00
frontend_elaborator.cpp feat(frontends/lean): Scopes in the default Lean frontend 2013-12-18 17:40:21 -08:00
frontend_elaborator.h feat(frontends/lean): Scopes in the default Lean frontend 2013-12-18 17:40:21 -08:00
notation.cpp refactor(frontends/lean): remove frontend class, it is not needed anymore 2013-12-18 14:37:55 -08:00
notation.h fix(frontends/lean/pp): make sure pp and parser are using the same precedences 2013-12-19 12:46:14 -08:00
operator_info.cpp chore(util/rc): remove unnecessary argument from LEAN_COPY_REF and LEAN_MOVE_REF macros 2013-12-13 15:01:24 -08:00
operator_info.h refactor(library/io_state): simplify regular/diagnostic 2013-12-10 13:09:35 -08:00
parser.cpp refactor(kernel): add unfold_opaque flag to normalizer, modify how type checker uses the opaque flag, remove hidden_defs, and mark most builtin definitions as opaque 2013-12-20 12:47:47 -08:00
parser.h feat(frontends/lean): macro definition using Lua 2013-12-19 19:08:10 -08:00
pp.cpp fix(frontends/lean/pp): pretty printer for Type 2013-12-19 15:24:45 -08:00
pp.h refactor(kernel/environment): add ro_environment 2013-12-12 16:48:34 -08:00
register_module.cpp feat(frontends/lean): macro definition using Lua 2013-12-19 19:08:10 -08:00
register_module.h refactor(frontends/lua): rename leanlua_state to script_state, and move it to util 2013-11-27 14:57:36 -08:00
scanner.cpp feat(frontends/lean): allow 'tactic hints' to be associated with 'holes' 2013-12-06 14:49:39 -08:00
scanner.h feat(frontends/lean): allow 'tactic hints' to be associated with 'holes' 2013-12-06 14:49:39 -08:00