2014-05-09 01:08:32 +00:00
|
|
|
function init(env)
|
|
|
|
env = add_decl(env, mk_var_decl("A", Bool))
|
|
|
|
env = add_decl(env, mk_var_decl("And", mk_arrow(Bool, mk_arrow(Bool, Bool))))
|
|
|
|
env = add_decl(env, mk_axiom("p", Const("A")))
|
|
|
|
env = add_decl(env, mk_axiom("q", Const("A")))
|
|
|
|
return env
|
|
|
|
end
|
|
|
|
local And = Const("And")
|
|
|
|
local p = Const("p")
|
|
|
|
local q = Const("q")
|
|
|
|
|
|
|
|
local env = init(empty_environment())
|
|
|
|
local t = type_checker(env)
|
|
|
|
assert(t:is_def_eq(p, q))
|
|
|
|
assert(t:is_def_eq(And(p, q), And(q, p)))
|
|
|
|
|
2014-05-16 22:04:34 +00:00
|
|
|
env = init(empty_environment({prop_proof_irrel=false}))
|
2014-05-09 01:08:32 +00:00
|
|
|
t = type_checker(env)
|
|
|
|
assert(not t:is_def_eq(p, q))
|
|
|
|
assert(not t:is_def_eq(And(p, q), And(q, p)))
|
|
|
|
|