lean2/tests/lua
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
..
slow perf(lua/name): improve to_name_ext performance 2013-11-14 18:06:09 -08:00
threads chore(tests/lua/threads): fix type in file name 2013-11-28 13:12:54 -08:00
big.lua feat(kernel/expr): add hash code based on allocation time 2013-11-14 02:43:11 -08:00
cex_builder1.lua feat(bindings/lua): add cex_builder to Lua API 2013-11-26 09:17:57 -08:00
coercion_bug1.lua fix(frontends/lean/frontend): is_coercion for environment objects that have parents 2013-12-08 17:47:00 -08:00
context1.lua refactor(kernel/expr): remove 'null' expression, and operator bool for expression 2013-12-07 23:21:10 -08:00
env1.lua feat(kernel/environment): track which modules were already imported 2013-11-17 18:15:44 -08:00
env2.lua refactor(kernel/object): remove 'null' object, and operator bool for kernel objects 2013-12-08 14:37:38 -08:00
env3.lua feat(lua): use formatter available in the state object to convert Lean objects into strings in the Lua API 2013-11-12 16:56:30 -08:00
env4.lua refactor(kernel/object): remove 'null' object, and operator bool for kernel objects 2013-12-08 14:37:38 -08:00
expr1.lua feat(lua): expose basic API for Lean expressions in the Lua bindings 2013-11-07 21:54:57 -08:00
expr2.lua feat(lua): add Consts function 2013-11-08 12:09:46 -08:00
expr3.lua feat(lua): add Type function 2013-11-08 15:52:58 -08:00
expr4.lua feat(lua): add mk_metavar to Lua API 2013-11-10 11:14:04 -08:00
expr5.lua fix(lua): memory leaks, we should not use luaL_error because it does not unwind C++ stack 2013-11-11 21:45:13 -08:00
expr6.lua refactor(kernel/expr): remove 'null' expression, and operator bool for expression 2013-12-07 23:21:10 -08:00
expr7.lua feat(lua): add abstract, instantiate, has_free_vars, lift/lower free_vars to Lua API 2013-11-13 17:02:49 -08:00
expr8.lua test(lua/expr): add missing tests 2013-11-17 11:46:24 -08:00
fmt1.lua feat(kernel/environment): track which modules were already imported 2013-11-17 18:15:44 -08:00
format1.lua feat(lua): expose format objects in the Lua bindings 2013-11-07 21:54:42 -08:00
format2.lua feat(lua): add is_* predicates 2013-11-08 12:40:28 -08:00
format3.lua test(lua): add tests for format object 2013-11-11 12:58:47 -08:00
front.lua feat(frontends/lean): rename command Set to SetOption 2013-12-18 21:18:48 -08:00
goal1.lua refactor(kernel/expr): remove 'null' expression, and operator bool for expression 2013-12-07 23:21:10 -08:00
hidden1.lua 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
io_state1.lua feat(bindings/lua): expose io_state object in the Lua API 2013-11-26 12:54:47 -08:00
jst1.lua refactor(kernel/expr): remove 'null' expression, and operator bool for expression 2013-12-07 23:21:10 -08:00
level1.lua refactor(lua): cleanup Lua bindings, and add accessor/tester to expr Lua API 2013-11-13 11:46:09 -08:00
localctx1.lua feat(lua): expose local_context objects in the Lua bindings 2013-11-09 12:18:46 -08:00
map.lua feat(lua): add splay_maps to the Lua API 2013-11-14 13:35:36 -08:00
map2.lua fix(lua/splay_tree): for_each method was crashing if the map was updated during for_each 2013-11-14 13:48:23 -08:00
menv1.lua test(lua/metavar_env): add missing tests 2013-11-17 19:18:47 -08:00
mpz1.lua feat(lua): allow Lean to be compiled with Lua 5.1 and LuaJit 2013-11-03 12:40:44 -08:00
mpz2.lua feat(lua): add is_* predicates 2013-11-08 12:40:28 -08:00
n1.lua test(lua): use assertions 2013-11-05 13:21:01 -08:00
n2.lua feat(lua): add is_* predicates 2013-11-08 12:40:28 -08:00
n3.lua feat(lua): add State objects, it allows us to create several Lua State objects in a lua script 2013-11-11 15:05:50 -08:00
n5.lua test(lua/name): add missing tests 2013-11-17 11:25:21 -08:00
num1.lua fix(lua/numerics): bug in bindings, add more tests 2013-11-17 11:02:44 -08:00
num2.lua feat(lua/expr): add method for extracting semantic attachment data 2013-11-19 19:06:47 -08:00
opt1.lua refactor(lua/options): improve options bindings for Lua 2013-11-04 18:46:58 -08:00
opt2.lua feat(lua): add is_* predicates 2013-11-08 12:40:28 -08:00
opt3.lua test(lua): add tests for options object 2013-11-11 09:42:50 -08:00
opt4.lua feat(bindings/lua/options): improve options Lua API 2013-11-25 21:05:05 -08:00
parser1.lua feat(lua): expose parse_expr and parse_commands from frontends/lean in the Lua API 2013-11-15 16:11:26 -08:00
parser2.lua feat(frontends/lean): rename command Set to SetOption 2013-12-18 21:18:48 -08:00
proof_builder1.lua refactor(library/tactic): use unprotect/protect idiom for callbacks in the tactic API 2013-11-27 18:11:46 -08:00
proof_state1.lua feat(bindings/lua): add proof_state to Lua API 2013-11-26 11:34:58 -08:00
sexpr1.lua feat(lua): expose s-expressions in the Lua bindings 2013-11-04 19:58:32 -08:00
sexpr2.lua test(lua): add test driver for Lua binding tests 2013-11-05 13:11:34 -08:00
sexpr3.lua feat(lua): add is_* predicates 2013-11-08 12:40:28 -08:00
sexpr4.lua test(lua): add tests for sexpr object 2013-11-11 09:51:07 -08:00
sexpr5.lua feat(lua): add fields method to sexpr Lua API 2013-11-13 12:10:24 -08:00
single.lua fix(shell/lean): Lua repl missing, incorrect exit code in interactive mode, missing tests 2013-12-09 12:25:19 -08:00
splay1.lua test(*): add missing tests 2013-11-18 09:13:34 -08:00
st1.lua feat(lua): add State objects, it allows us to create several Lua State objects in a lua script 2013-11-11 15:05:50 -08:00
st2.lua feat(lua): allow Booleans to be copied between Lua states 2013-11-11 20:39:46 -08:00
st3.lua feat(lua): add support for copying closures between Lua states 2013-11-12 12:54:34 -08:00
tactic1.lua feat(library/tactic): use _tac suffix instead of _tactic like Isabelle 2013-12-05 20:06:32 -08:00
test.sh refactor(shell): combine lean and leanlua executables in a single executable 2013-11-19 16:48:21 -08:00
test_single.sh refactor(shell): combine lean and leanlua executables in a single executable 2013-11-19 16:48:21 -08:00
ty1.lua feat(lua): add type_inferer object to Lua API 2013-11-16 19:18:15 -08:00
ty2.lua test(lua/type_inferer): add missing tests 2013-11-17 11:17:32 -08:00
unify1.lua feat(library/fo_unify): first order unification 2013-12-03 12:21:21 -08:00
util.lua test(lua): add test driver for Lua binding tests 2013-11-05 13:11:34 -08:00