let rec vars_consts_from_IF_term = function
  | Iknows(t) -> vars_consts_from_term t
  | Ifnot(p) -> vars_consts_from_IF_term p
  | Ifcontains(t1,t2)
  | Ifequal(t1,t2)
  | Ifleq(t1,t2) -> (vars_consts_from_term t1) @ (vars_consts_from_term t2)
  | State(_,_,lt)
  | Unknown(_,lt) -> List.flatten (List.map vars_consts_from_term lt)
  | _ -> []