let ps = get cache tree parent in
let fcs = get cache tree fc in
let nss = get cache tree ns in
let ps = get cache tree parent in
let fcs = get cache tree fc in
let nss = get cache tree ns in
if states1 != states0 then set cache tree node states1;
let () = loop fc in
let fcs1 = get cache tree fc in
let trans2, states2 =
eval_trans trans_cache6 trans1 node_info fcs1 nss ps states1
in
if states1 != states0 then set cache tree node states1;
let () = loop fc in
let fcs1 = get cache tree fc in
let trans2, states2 =
eval_trans trans_cache6 trans1 node_info fcs1 nss ps states1
in
if states3 != states2 then set cache tree node states3;
if states0 != states3 && (not !redo) then redo := true
end
if states3 != states2 then set cache tree node states3;
if states0 != states3 && (not !redo) then redo := true
end