(SIG (if o o o -> o) (true -> o) (a -> o) (b -> o) (g o -> o) (false -> o) (f o o -> o) ) (RULES if(true,a,x) -> a if(true,b,x) -> b if(true,g(a),x) -> g(a) if(true,g(b),x) -> g(b) if(false,x,a) -> a if(false,x,b) -> b if(false,x,g(a)) -> g(a) if(false,x,g(b)) -> g(b) g(a) -> g(g(a)) g(b) -> a f(a,b) -> b f(g(g(a)),x) -> b )