pp_ltl(true,['true'|S],S).
pp_ltl(false,['false'|S],S).
pp_ltl(deadlock,['deadlock'|S],S).
pp_ltl(sink,['sink'|S],S).
pp_ltl(goal,['goal'|S],S).
pp_ltl(state_error,['error'|S],S).
pp_ltl(det_output,['det_output'|S],S).
pp_ltl(current,['current'|S],S).
pp_ltl(globally(F),['G ('| S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(finally(F),['F ('| S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(next(F),['X ('|S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(yesterday(F),['Y ('|S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(since(F,G),['('|S],T) :- !,
pp_ltl(F,S,[' S '| S1]),
pp_ltl(G,S1,[')'|T]).
pp_ltl(once(F),['O ('|S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(historically(F),['H ('|S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(until(F,G),['('|S],T) :- !,
pp_ltl(F,S,[' U '| S1]),
pp_ltl(G,S1,[')'|T]).
pp_ltl(weakuntil(F,G),['('|S],T) :- !,
pp_ltl(F,S,[' W '| S1]),
pp_ltl(G,S1,[')'|T]).
pp_ltl(release(F,G),['('|S],T) :- !,
pp_ltl(F,S,[' R '| S1]),
pp_ltl(G,S1,[')'|T]).
pp_ltl(implies(F,G),['('|S],T) :- !,
pp_ltl(F,S,[' => '| S1]),
pp_ltl(G,S1,[')'|T]).
pp_ltl(equivalent(F,G),['('|S],T) :- !,
pp_ltl(F,S,[' <=> '| S1]),
pp_ltl(G,S1,[')'|T]).
pp_ltl(fairnessimplication(FairAssump,Formula),['('|S],T) :- !,
pp_ltl_fairness(FairAssump,S,[' => '| S1]),
pp_ltl(Formula,S1,[')'|T]).
pp_ltl(or(F,G),['('|S],T) :- !,
pp_ltl(F,S,[' or '| S1]),
pp_ltl(G,S1,[')'|T]).
pp_ltl(and(F,G),['('|S],T) :- !,
pp_ltl(F,S,[' & '| S1]),
pp_ltl(G,S1,[')'|T]).
pp_ltl(not(F),['not('| S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(ap(AP),[Pred|S],S) :- !, pp_ap(AP,Pred).
pp_ltl(action(A),[Action|S],S) :- !, pp_tp(A,Action).
pp_ltl(ena(F),['EX ('|S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(en(F), ['EX ('|S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(an(F), ['AX ('|S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(eg(F), ['EG ('|S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(ef(F), ['EF ('|S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(ag(F), ['AG ('|S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(af(F), ['AF ('|S],T) :- !, pp_ltl(F,S,[')'|T]).
pp_ltl(eu(F,G), ['( E '|S],T) :- !,
pp_ltl(F,S,[' U '|S1]),
pp_ltl(G,S1,[')'|T]).