let enqueue_ident a =
let values = a.var.ident.ivalues in
Vec.push values (a, ((snd (Vec.last values)) land a.value));
let l = ref [] in
let ivars = a.var.ident.ivars in
let lvl = a.var.level in
for i = 0 to Vec.size ivars - 1 do
let v = Vec.get ivars i in
if v.level < 0 then
match check_bottom_clause v.pa with
| Some c ->
l := (v.na, c, lvl) :: !l
| None ->
match check_bottom_clause v.na
with
| Some c ->
l := (v.pa, c, lvl) :: !l
| None -> ()
done;
!l