let rec compute_bindings bindings sigmaR sigma = function
| [] -> bindings , sigma
| Fresh _ :: havocs -> compute_bindings bindings sigmaR sigma havocs
| Update(x,phi) :: havocs ->
let sigma' = freshen_sigma x sigma in
let x' = snd (List.find (fun (y,_) -> F.eq_var x y) sigma') in
let t' = apply sigmaR (phi sigma) in
compute_bindings ((x',t')::bindings) sigmaR sigma' havocs