f(a2(),x) -> x a1() -> i1(a2()) f(x,i2(x)) -> a2() i2(a2()) -> a2() f(f(x,y),z) -> f(x,f(y,z)) f(x,f(i2(x),y)) -> y f(x,a2()) -> i2(i2(x)) f(i2(i2(x)),y) -> f(x,y) f(i2(x),f(x,y)) -> y i2(i2(i2(x))) -> i2(x) i2(f(x,y)) -> f(i2(y),i2(x)) f(x,i1(x)) -> i1(a2()) f(x,i1(a2())) -> i1(i2(x)) i1(i2(i2(x))) -> i1(x) i2(i1(x)) -> i2(i2(x)) i1(i1(x)) -> i1(i2(x)) f(i1(x),y) -> f(i2(x),y) i1(f(x,y)) -> f(i2(y),i1(x))