Problem: *(*(x,y),z) -> *(x,*(y,z)) *(+(x,y),z) -> +(*(x,z),*(y,z)) *(x,+(y,f(z))) -> *(g(x,z),+(y,y)) Proof: Unfolding Processor: loop length: 2 terms: *(x45,+(f(z),f(x46))) *(g(x45,x46),+(f(z),f(z))) context: [] substitution: z -> z x45 -> g(g(x45,x46),z) x46 -> z Qed