20 lines
572 B
Lua
20 lines
572 B
Lua
|
local env = environment()
|
||
|
local nat = Const("nat")
|
||
|
local int = Const("int")
|
||
|
|
||
|
env = add_inductive(env,
|
||
|
"nat", Type,
|
||
|
"zero", nat,
|
||
|
"succ", mk_arrow(nat, nat))
|
||
|
|
||
|
env = add_inductive(env,
|
||
|
"int", Type,
|
||
|
"pos", mk_arrow(nat, int),
|
||
|
"neg", mk_arrow(nat, int))
|
||
|
function display_type(env, t)
|
||
|
print(tostring(t) .. " : " .. tostring(type_checker(env):check(t)))
|
||
|
end
|
||
|
|
||
|
display_type(env, Const("nat_rec", {0}))
|
||
|
display_type(env, Const("int_rec", {0}))
|