bf081ed431
Motivation: it matches the notation used to declare it.
23 lines
656 B
Lua
23 lines
656 B
Lua
local env = environment()
|
|
local N = Const("N")
|
|
env = add_decl(env, mk_constant_assumption("N", Type))
|
|
env = add_decl(env, mk_constant_assumption("f", mk_arrow(N, N)))
|
|
env = add_decl(env, mk_constant_assumption("a", N))
|
|
local f = Const("f")
|
|
local a = Const("a")
|
|
local m1 = mk_metavar("m1", mk_metavar("m2", mk_sort(mk_meta_univ("l"))))
|
|
local ngen = name_generator("tst")
|
|
local tc = type_checker(env, ngen)
|
|
|
|
function test_check(e)
|
|
t, cs = tc:check(e)
|
|
print(tostring(e) .. " : " .. tostring(t))
|
|
cs = cs:linearize()
|
|
for i = 1, #cs do
|
|
print(" >> " .. tostring(cs[i]))
|
|
end
|
|
end
|
|
|
|
test_check(f(m1))
|
|
test_check(f(f(m1)))
|
|
test_check(f(m1))
|