let add_var_decl_hyp m p v =
    let p = (* add hyp about the variable *)
      try
        (* This might be dangerous because it makes possible to prove the
        * validity of &x even after exiting x scope... :
        let h = Hlib.valid_pointer (pointer_of_loc (L0addr v)) in
        (F.p_implies  h p )
        *)
 p
      with Not_found -> (* var_addr doesn't exist : don't need it ! *) p
    in
    let p = add_array_length_hyp m v p in
      p