20 lines
557 B
Lua
20 lines
557 B
Lua
|
local env = environment()
|
||
|
local A = Local("A", Type)
|
||
|
env = add_decl(env, mk_var_decl("eq", Pi(A, mk_arrow(A, A, Bool))))
|
||
|
local eq = Const("eq")
|
||
|
local a = Local("a", A)
|
||
|
local b = Local("b", A)
|
||
|
local H = Local("H", eq(A, a, b))
|
||
|
local m = mk_metavar("m", Pi({A, a, b, H}, eq(A, a, b)))
|
||
|
print(to_proof_state(m))
|
||
|
local s = to_proof_state(m)
|
||
|
local n, g = s:goals():head()
|
||
|
local hs = g:hyps()
|
||
|
local h = hs:head()
|
||
|
local pm = proof_map()
|
||
|
pm:insert("main", h)
|
||
|
local r = s:pb(pm, substitution())
|
||
|
print(r)
|
||
|
assert(env:infer_type(r) == env:infer_type(m))
|
||
|
|