let norm_Uplet_light purifie (s : t_subst) (l : term list) : term list * t_subst =
  let rec norm_Ul = function
    | t::fin -> 
        ( let (ll,s2) = norm_Ul fin in 
            match purifie s2 t with
              | (Var n as tt, ss)           -> 
                  ( match valeur n ss with
                      | Atm(0)
                      | Xor(_) -> (tt::ll, ss)
                      | tt     -> (tt::ll, ss) )    
              | (Atm(0) as tt, ss)
              | (Xor(_) as tt, ss) -> 
                  let (nv, ns) = add_newvalue ss tt
                  in (nv::ll, ns)
              | (tt, s3)                    -> 
                  (tt::ll, s3)  )
    | []     -> ([], s)
  in 
    norm_Ul l