let rec get_cycle f = function
    | [] -> []
    | g::stk -> if LogicId.equal f g then [] else (g :: get_cycle f stk)