YES Problem: a(f(),a(g(),a(f(),x))) -> a(f(),a(g(),a(g(),a(f(),x)))) a(g(),a(f(),a(g(),x))) -> a(g(),a(f(),a(f(),a(g(),x)))) Proof: Uncurry Processor: f1(g1(f1(x))) -> f1(g1(g1(f1(x)))) g1(f1(g1(x))) -> g1(f1(f1(g1(x)))) a(f(),x1) -> f1(x1) a(g(),x1) -> g1(x1) Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [g1](x0) = [0 0 1]x0 [0 1 0] , [1 1 0] [0] [f1](x0) = [0 0 0]x0 + [0] [0 0 0] [1], [1 0 0] [1 1 1] [0] [a](x0, x1) = [0 1 0]x0 + [0 0 1]x1 + [0] [0 0 0] [1 1 1] [1], [0] [g] = [1] [0], [0] [f] = [0] [0] orientation: [1 1 0] [1] [1 1 0] [0] f1(g1(f1(x))) = [0 0 0]x + [0] >= [0 0 0]x + [0] = f1(g1(g1(f1(x)))) [0 0 0] [1] [0 0 0] [1] [1 0 1] [0] [1 0 1] [0] g1(f1(g1(x))) = [0 0 0]x + [1] >= [0 0 0]x + [1] = g1(f1(f1(g1(x)))) [0 0 0] [0] [0 0 0] [0] [1 1 1] [0] [1 1 0] [0] a(f(),x1) = [0 0 1]x1 + [0] >= [0 0 0]x1 + [0] = f1(x1) [1 1 1] [1] [0 0 0] [1] [1 1 1] [0] [1 0 0] a(g(),x1) = [0 0 1]x1 + [1] >= [0 0 1]x1 = g1(x1) [1 1 1] [1] [0 1 0] problem: g1(f1(g1(x))) -> g1(f1(f1(g1(x)))) a(f(),x1) -> f1(x1) a(g(),x1) -> g1(x1) Matrix Interpretation Processor: dim=3 interpretation: [1 1 0] [0] [g1](x0) = [0 0 0]x0 + [0] [0 0 0] [1], [1 0 0] [f1](x0) = [0 0 1]x0 [0 1 0] , [1 0 0] [1 1 1] [1] [a](x0, x1) = [0 0 0]x0 + [0 0 1]x1 + [0] [0 0 0] [0 1 0] [1], [0] [g] = [0] [0], [0] [f] = [0] [0] orientation: [1 1 0] [1] [1 1 0] [0] g1(f1(g1(x))) = [0 0 0]x + [0] >= [0 0 0]x + [0] = g1(f1(f1(g1(x)))) [0 0 0] [1] [0 0 0] [1] [1 1 1] [1] [1 0 0] a(f(),x1) = [0 0 1]x1 + [0] >= [0 0 1]x1 = f1(x1) [0 1 0] [1] [0 1 0] [1 1 1] [1] [1 1 0] [0] a(g(),x1) = [0 0 1]x1 + [0] >= [0 0 0]x1 + [0] = g1(x1) [0 1 0] [1] [0 0 0] [1] problem: Qed