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)
| _ -> []