let rec cct sigma env cpt = function
| Tlet(x,t1,t2) ->
let t1 = cct sigma env cpt t1 in
let nx ,sigma = new_name x sigma cpt in
env.foralls <- Vset.add x env.foralls;
env.eqs <- p_and env.eqs (p_eq (e_var nx) t1) ;
cct sigma env cpt t2
| Tapp(f,tl) ->
e_app f (List.map (cct sigma env cpt ) tl)
| Tif (c,ta,tb) ->
e_if(cct sigma env cpt c)(cct sigma env cpt ta)(cct sigma env cpt tb)
| Tdata _ -> Wp_parameters.fatal "Normalization of Fol(data)"
| Tconst _ as c -> c
| Tvar x as t ->
begin
try e_var (Vmap.find x sigma)
with Not_found ->
Wp_parameters.failure ~once:true "Suspiscous normalization of %s"
(Fol.Var.var_name x) ; t
end