let create_schema_term (predicate: symbol) : term =
if Symbol.arity predicate = 0 then
request_const predicate
else
(* create the most general term,
i.e. a term with a fresh parameter at each position *)
let terms =
Array.make (Symbol.arity predicate) null_term
in
for i = 0 to Symbol.arity predicate - 1 do
terms.(i) <- request_var (Var.create_universal i)
done;
request_func (predicate, terms)