lean2/tests/lua/mod1.lua
Leonardo de Moura ade5d99023 feat(library/modules): add option for discarding the proof of imported theorems (after checking them)
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-05-29 10:56:28 -07:00

32 lines
1.1 KiB
Lua

local env = environment()
env = add_decl(env, mk_var_decl("A", Bool))
local A = Const("A")
env = add_decl(env, mk_axiom("H1", A))
local H1 = Const("H1")
env = add_decl(env, mk_theorem("H2", A, H1))
assert(env:get("H2"):is_theorem())
env = add_decl(env, mk_definition("B", Bool, A))
env:export("mod1_mod.olean")
local env2 = import_modules("mod1_mod.olean", 1, true)
assert(env2:get("A"):type() == Bool)
assert(env2:get("A"):is_var_decl())
assert(env2:get("H1"):type() == A)
assert(env2:get("H1"):is_axiom())
assert(env2:get("H2"):type() == A)
assert(env2:get("H2"):is_theorem())
assert(env2:get("H2"):value() == H1)
assert(env2:get("B"):type() == Bool)
assert(env2:get("B"):value() == A)
assert(env2:get("B"):is_definition())
local env3 = import_modules("mod1_mod.olean")
assert(env3:get("A"):type() == Bool)
assert(env3:get("A"):is_var_decl())
assert(env3:get("H1"):type() == A)
assert(env3:get("H1"):is_axiom())
assert(env3:get("H2"):type() == A)
assert(env3:get("H2"):is_axiom())
assert(env3:get("B"):type() == Bool)
assert(env3:get("B"):value() == A)
assert(env3:get("B"):is_definition())