lean2/tests/lua
Leonardo de Moura 603dafbaf7 refactor(kernel): remove 'let'-expressions
We simulate it in the following way:
1- An opaque 'let'-expressions (let x : t := v in b) is encoded as
      ((fun (x : t), b) v)
   We also use a macro (let-macro) to mark this pattern.
   Thus, the pretty-printer knows how to display it correctly.

2- Transparent 'let'-expressions are eagerly expanded by the parser.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-24 16:27:27 -07:00
..
old test(shell): add command line tests 2014-05-26 04:53:04 -07:00
slow feat(library/kernel_bindings): used 'named' parameters in import_modules API 2014-05-29 11:03:44 -07:00
ac.lua test(lua): add Acc datatype declaration test 2014-05-23 11:26:02 -07:00
acc.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
alias1.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
alias2.lua feat(library/aliases): add level aliases 2014-06-12 12:35:02 -07:00
alias3.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
big.lua test(shell): add command line tests 2014-05-26 04:53:04 -07:00
choice.lua feat(library): add choice expressions 2014-06-11 14:35:34 -07:00
choice2.lua fix(library/choice): avoid assertion violation when Lua API is misused 2014-06-24 12:14:38 -07:00
cnstr1.lua refactor(kernel/constraint): rename: level constraints are also equality constraints 2014-06-22 10:50:47 -07:00
coe1.lua feat(library/coercion): improve get_user_coercions API 2014-05-25 11:35:47 -07:00
coe2.lua test(lua): add coercion to function-class tests 2014-05-25 08:22:28 -07:00
coe3.lua test(lua): add coercion sort-class tests 2014-05-25 08:29:47 -07:00
coe4.lua test(lua): coercion module error messages 2014-05-25 10:01:04 -07:00
coe5.lua test(lua): add get_user_coercions test 2014-06-12 22:18:27 -07:00
def1.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
env1.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
env2.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
env3.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
env4.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
env5.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
env6.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
env7.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
env8.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
env9.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
env10.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
env11.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
eta.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
explicit.lua feat(library): add mk_explicit/is_explicit procedures for '@'-expressions 2014-06-24 12:11:27 -07:00
expr1.lua feat(kernel/expr): add is_contextual binder info 2014-05-14 14:54:27 -07:00
expr2.lua fix(library/kernel_bindings): bug in mk_app, add expr_lt tests 2014-05-09 19:54:52 -07:00
expr3.lua refactor(kernel): remove 'let'-expressions 2014-06-24 16:27:27 -07:00
expr4.lua feat(library/kernel_bindings): improve Pi and Fun Lua APIs, and allow users to provide binder information 2014-05-16 14:09:00 -07:00
expr7.lua refactor(kernel): remove 'let'-expressions 2014-06-24 16:27:27 -07:00
expr8.lua test(lua): add tests for new Pi/Fun notation in Lua 2014-05-19 17:17:15 -07:00
expr9.lua fix(kernel/type_checker): restore type checker cache when a failure occurs, do not send constraints to add_cnstr_fn when a type checker failure occurrs 2014-06-22 09:00:32 -07:00
expr10.lua fix(library/normalize): bug in normalize 2014-05-20 11:53:58 -07:00
expr11.lua test(lua): add tests for improving kernel_bindings coverage 2014-05-20 12:16:12 -07:00
extra.lua test(lua): add .olean corrupted file tests 2014-05-31 12:51:33 -07: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
free.lua feat(library/kernel_bindings): improve argument validation in the Lua API 2014-06-03 10:17:12 -07:00
glvl1.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
hott1.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
implua.lua test(lua): add import Lua file test 2014-05-26 04:34:34 -07:00
ind1.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
ind2.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
ind3.lua test(lua): add test for mutually recursive inductive type recursor/eliminator 2014-05-20 09:41:50 -07:00
ind4.lua test(lua): add test to demonstrate the different between list(A) where A is a parameter, and where A is an index 2014-05-20 12:17:16 -07:00
ind5.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
ind6.lua test(lua): add another inductive datatype example 2014-05-22 14:10:25 -07:00
ind_ex.lua fix(kernel/inductive): inductive datatype declaration validation bug pointed out by Cody Roux 2014-05-21 16:29:25 -07:00
ind_tricky.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07:00
int1.lua test(lua): add integer datatype test 2014-05-30 16:30:33 -07:00
jst1.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
level1.lua refactor(kernel): add level normalizer, is_equivalent predicate, switch to is_equivalent in the type checker, fix bugs in is_lt predicate 2014-05-11 18:05:02 -07:00
level2.lua feat(library/kernel_bindings): global level constructor/accessor/recognizer 2014-05-07 16:22:45 -07:00
level4.lua refactor(kernel): add level normalizer, is_equivalent predicate, switch to is_equivalent in the type checker, fix bugs in is_lt predicate 2014-05-11 18:05:02 -07:00
level5.lua test(lua): add more level API unit tests 2014-05-13 09:20:10 -07:00
level6.lua feat(library/kernel_bindings): add sugar for level expressions in the Lua API 2014-05-17 08:10:36 -07:00
level7.lua test(lua): add is_geq (for universe level) tests 2014-05-17 13:42:12 -07:00
level8.lua test(lua): add more universe level expression tests 2014-05-20 11:41:17 -07:00
level9.lua test(lua): make sure bug reported by Floris does not happen in Lean 0.2 2014-05-21 13:34:04 -07:00
map2.lua test(lua): reactivate some of the Lua unit tests 2014-04-29 10:36:57 -07:00
mod1.lua feat(library/kernel_bindings): used 'named' parameters in import_modules API 2014-05-29 11:03:44 -07:00
mod3.lua test(lua): add .olean corrupted file tests 2014-05-31 12:51:33 -07:00
mod3_corrupted1.olean test(lua): add .olean corrupted file tests 2014-05-31 12:51:33 -07:00
mod3_corrupted2.olean test(lua): add .olean corrupted file tests 2014-05-31 12:51:33 -07:00
mod3_corrupted3.olean test(lua): add .olean corrupted file tests 2014-05-31 12:51:33 -07:00
mod3_corrupted4.olean test(lua): add .olean corrupted file tests 2014-05-31 12:51:33 -07:00
mod3b.lua test(lua): add .olean corrupted file tests 2014-05-31 12:51:33 -07:00
mod4.lua fix(kernel/module): non-termination 2014-05-23 15:12:47 -07:00
mod5.lua feat(library/aliases): add 'exceptions' and support for universes to add_aliases procedure, add for_each_universe method to environment 2014-06-13 08:26:05 -07: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): reactivate some of the Lua unit tests 2014-04-29 10:36:57 -07:00
n6.lua test(lua): fix n6.lua, and add more tests 2014-05-18 13:52:16 -07:00
n7.lua refactor(library/aliases): move replace_prefix to util/name 2014-05-31 15:11:22 -07:00
name1.lua test(tests/lua): extra tests for Lua hierachical name API 2014-01-14 11:38:10 -08:00
name_gen1.lua feat(util): name_generator Lua API 2014-05-07 17:28:11 -07:00
ns1.lua feat(util): name_set Lua API 2014-05-07 18:32:53 -07:00
ns2.lua feat(util/name_set): improve name_set Lua API 2014-05-08 17:17:00 -07:00
num1.lua fix(lua/numerics): bug in bindings, add more tests 2013-11-17 11:02:44 -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
parse_table.lua feat(frontends/lean/parse_table): add use_lambda_abstraction flag to scoped_expr_actions 2014-06-10 09:39:01 -07:00
place1.lua feat(library): add simple placeholder module 2014-05-30 20:28:28 -07:00
place2.lua feat(library/placeholder): allow types to be attached to placeholders 2014-06-16 14:35:55 -07:00
prv.lua feat(frontends/lean/builtin_cmds): add definition command family 2014-06-13 17:30:35 -07:00
replace1.lua feat(library/kernel_bindings): expose replace_fn in the Lua API 2014-06-04 15:26:55 -07:00
res1.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
scope.lua fix(tests/lua): remove os.exit(0), it does not work if it is executed in the scope of a lock 2014-06-17 22:17:06 -07: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
simple.lua test(lua): add import Lua file test 2014-05-26 04:34:34 -07:00
sorted.lua test(lua): add is_sorted inductive predicate example 2014-05-30 16:30:32 -07:00
subst1.lua feat(library/kernel_bindings): substitution Lua API 2014-05-01 15:30:30 -07:00
tag1.lua refactor(kernel): improve names 2014-05-16 11:28:05 -07:00
tc1.lua fix(kernel/type_checker): restore type checker cache when a failure occurs, do not send constraints to add_cnstr_fn when a type checker failure occurrs 2014-06-22 09:00:32 -07:00
tc2.lua refactor(kernel/type_checker): simplify replace constraint_handler with closure 2014-06-21 12:25:54 -07:00
tc3.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
tc4.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
tc5.lua refactor(library/kernel_bindings): rename empty_environment ==> bare_environment in the Lua API 2014-05-21 11:24:24 -07:00
tc6.lua fix(kernel/type_checker): check if the declaration contains duplicate universe level parameters 2014-06-02 13:57:43 -07:00
tc7.lua refactor(kernel/converter): converter should fail instead of relying on unification hints for solving a constraint, the hints must be applied by the frontend 2014-06-24 09:00:14 -07:00
tc8.lua feat(kernel/type_checker): add push/pop methods to type_checker, they control the cache, and allow the type checker to reuse results even when it is used inside of a backtracking search 2014-06-22 09:58:05 -07:00
tc_bug1.lua refactor(kernel/converter): converter should fail instead of relying on unification hints for solving a constraint, the hints must be applied by the frontend 2014-06-24 09:00:14 -07:00
test.sh feat(util/options): 'verbose' as a system option, add -q (quiet) option 2014-01-09 15:31:58 -08:00
test_single.sh refactor(frontends/lua): replace lean.lua.h with util.lua 2013-12-26 19:49:26 -08:00
token_table.lua feat(frontends/lean/parser): add parse_level 2014-06-12 12:34:55 -07:00
unify1.lua feat(library/unifier): add unify_fn skeleton 2014-06-21 20:08:39 -07:00
unify2.lua feat(library/unifier): add main loop and resolve_conflict 2014-06-22 11:57:10 -07:00
unify3.lua refactor(kernel/converter): converter should fail instead of relying on unification hints for solving a constraint, the hints must be applied by the frontend 2014-06-24 09:00:14 -07:00
unify4.lua feat(library/unifier): implement flex-rigid case 2014-06-23 11:00:35 -07:00
unify5.lua feat(library/kernel_bindings): add mk_choice_cnstr to Lua API 2014-06-23 13:39:21 -07:00
unify6.lua test(lua): add universe constraint unifier test 2014-06-23 14:19:02 -07:00
yield.lua test(lua): add Lua 'yield' test 2014-05-26 04:39:53 -07:00