f = Const("f")
x = Const("x")
y = Const("y")
a = Const("a")
b = Const("b")
print(Let(x, f(a), f(x, x)))
print(Let({{x, f(a)}, {y, f(b)}}, f(x, y)))
x1, x2, x3 = Consts("x1, x2, x3")
assert(tostring(f(x1, x2, x3)) == "f x1 x2 x3")
y1, y2 = Consts("y1 y2")
assert(tostring(f(y1, y2)) == "f y1 y2")