luav.lp
No OneTemporary

File Metadata

Created
Wed, Jul 8, 11:57 PM
#begin_lua
function f(x)
if Val.type(x) == Val.NUM then
return Val.new(Val.FUNC, { "num", x })
elseif Val.type(x) == Val.ID then
return Val.new(Val.FUNC, { "str", x })
elseif Val.type(x) == Val.FUNC then
local f = Val.new(Val.FUNC, x:name(), x:args())
return Val.new(Val.FUNC, { "fun", f })
elseif Val.type(x) == Val.INF then
return Val.new(Val.FUNC, { "inf", Val.new(Val.INF) })
elseif Val.type(x) == Val.SUP then
return Val.new(Val.FUNC, { "sup", Val.new(Val.SUP) })
end
end
function g(a,b)
return Val.cmp(a, b)
end
function h(x)
return '"' .. tostring(x) .. '"'
end
#end_lua.
p(1). p(a). p(#supremum).
p(f(d(x),1)). p(#infimum).
type(X,Y) :- (X,Y) := @f(Z), p(Z).
leq(X,Y) :- p(X), p(Y), @g(X,Y) <= 0.
str(@h(X)) :- p(X).

Event Timeline