#---------------------------------------------------------------------- a = spot.formula.ap('a') b = spot.formula.ap('b') c = spot.formula.ap('c') T = spot.formula.tt() F = spot.formula.ff() f1 = spot.formula.Equiv(c, a) f2 = spot.formula.Implies(a, b) f3 = spot.formula.Xor(b, c) f4 = spot.formula.Not(f3); del f3 f5 = spot.formula.Xor(F, c) del a, b, c, T, F, f1, f2, f4, f5 assert spot.fnode_instances_check() #---------------------------------------------------------------------- assert str([x for x in spot.formula('a &b & c')]) == '[a, b, c]' def switch_g_f(x): if x._is(spot.op_G): return spot.formula.F(switch_g_f(x[0])) if x._is(spot.op_F): return spot.formula.G(switch_g_f(x[0])) return x.map(switch_g_f) f = spot.formula('GFa & XFGb & Fc & G(a | b | Fd)') assert str(switch_g_f(f)) == 'FGa & XGFb & Gc & F(a | b | Gd)'
a = spot.formula.ap('a') b = spot.formula.ap('b') c = spot.formula.ap('c') T = spot.formula.tt() F = spot.formula.ff() f1 = spot.formula.Equiv(c, a) f2 = spot.formula.Implies(a, b) f3 = spot.formula.Xor(b, c) f4 = spot.formula.Not(f3) del f3 f5 = spot.formula.Xor(F, c) del a, b, c, T, F, f1, f2, f4, f5 assert spot.fnode_instances_check() #---------------------------------------------------------------------- assert str([x for x in spot.formula('a &b & c')]) == '[a, b, c]' def switch_g_f(x): if x._is(spot.op_G): return spot.formula.F(switch_g_f(x[0])) if x._is(spot.op_F): return spot.formula.G(switch_g_f(x[0])) return x.map(switch_g_f) f = spot.formula('GFa & XFGb & Fc & G(a | b | Fd)') assert str(switch_g_f(f)) == 'FGa & XGFb & Gc & F(a | b | Gd)'