cont = engine.cont;
// '$variables_set'(A,B,[A|B]):-['$get_level'(C),var(A),'$cut'(C)]
a3 = a3.dereference();
if (a3.isList()){
Term[] args = {((ListTerm)a3).car(), ((ListTerm)a3).cdr()};
if (! a1.unify(args[0], engine.trail))
return engine.fail();
if (! a2.unify(args[1], engine.trail))
return engine.fail();
} else if (a3.isVariable()){
((VariableTerm) a3).bind(new ListTerm(a1, a2), engine.trail);