YES 3 decompositions #1 ----------- 14: +(x1,x2) -> +(x2,x1) 15: +(+(x1,x2),x3) -> +(x1,+(x2,x3)) 16: +(0(),x1) -> x1 17: +(s(x1),x2) -> s(+(x1,x2)) #2 ----------- 1: *(x1,*(x2,x3)) -> *(*(x1,x2),x3) 2: *(*(x1,x2),x3) -> *(x1,*(x2,x3)) 3: eq(x1,x2) -> eq(x2,x1) 4: eq(a(),a()) -> T() 5: eq(a(),*(x1,x2)) -> F() 6: eq(*(a(),x1),*(a(),x2)) -> eq(x1,x2) 7: rep(0(),x1) -> nil() 8: rep(s(x1),x2) -> *(x1,rep(x1,x2)) 9: hd(*(c(x1),x2)) -> x1 11: tl(*(c(x1),x2)) -> x2 12: lem1(x1) -> eq(*(hd(x1),tl(x1)),x1) #3 ----------- 1: *(x1,*(x2,x3)) -> *(*(x1,x2),x3) 2: *(*(x1,x2),x3) -> *(x1,*(x2,x3)) 3: eq(x1,x2) -> eq(x2,x1) 4: eq(a(),a()) -> T() 5: eq(a(),*(x1,x2)) -> F() 6: eq(*(a(),x1),*(a(),x2)) -> eq(x1,x2) 7: rep(0(),x1) -> nil() 8: rep(s(x1),x2) -> *(x1,rep(x1,x2)) 10: lt(*(x1,c(x2))) -> x2 11: tl(*(c(x1),x2)) -> x2 13: lem2(*(x1,x2)) -> eq(lt(*(x1,x2)),lt(tl(*(x1,x2)))) @Jouannaud and Kirchner's criterion --- R 14: +(x1,x2) -> +(x2,x1) 15: +(+(x1,x2),x3) -> +(x1,+(x2,x3)) 16: +(0(),x1) -> x1 17: +(s(x1),x2) -> s(+(x1,x2)) --- S 14: +(x1,x2) -> +(x2,x1) 15: +(+(x1,x2),x3) -> +(x1,+(x2,x3)) 16: +(0(),x1) -> x1 17: +(s(x1),x2) -> s(+(x1,x2)) @Jouannaud and Kirchner's criterion --- R 1: *(x1,*(x2,x3)) -> *(*(x1,x2),x3) 2: *(*(x1,x2),x3) -> *(x1,*(x2,x3)) 3: eq(x1,x2) -> eq(x2,x1) 4: eq(a(),a()) -> T() 5: eq(a(),*(x1,x2)) -> F() 6: eq(*(a(),x1),*(a(),x2)) -> eq(x1,x2) 7: rep(0(),x1) -> nil() 8: rep(s(x1),x2) -> *(x1,rep(x1,x2)) 9: hd(*(c(x1),x2)) -> x1 11: tl(*(c(x1),x2)) -> x2 12: lem1(x1) -> eq(*(hd(x1),tl(x1)),x1) --- S 1: *(x1,*(x2,x3)) -> *(*(x1,x2),x3) 2: *(*(x1,x2),x3) -> *(x1,*(x2,x3)) 3: eq(x1,x2) -> eq(x2,x1) 4: eq(a(),a()) -> T() 5: eq(a(),*(x1,x2)) -> F() 6: eq(*(a(),x1),*(a(),x2)) -> eq(x1,x2) 7: rep(0(),x1) -> nil() 8: rep(s(x1),x2) -> *(x1,rep(x1,x2)) 9: hd(*(c(x1),x2)) -> x1 11: tl(*(c(x1),x2)) -> x2 12: lem1(x1) -> eq(*(hd(x1),tl(x1)),x1) @Jouannaud and Kirchner's criterion --- R 1: *(x1,*(x2,x3)) -> *(*(x1,x2),x3) 2: *(*(x1,x2),x3) -> *(x1,*(x2,x3)) 3: eq(x1,x2) -> eq(x2,x1) 4: eq(a(),a()) -> T() 5: eq(a(),*(x1,x2)) -> F() 6: eq(*(a(),x1),*(a(),x2)) -> eq(x1,x2) 7: rep(0(),x1) -> nil() 8: rep(s(x1),x2) -> *(x1,rep(x1,x2)) 10: lt(*(x1,c(x2))) -> x2 11: tl(*(c(x1),x2)) -> x2 13: lem2(*(x1,x2)) -> eq(lt(*(x1,x2)),lt(tl(*(x1,x2)))) --- S 1: *(x1,*(x2,x3)) -> *(*(x1,x2),x3) 2: *(*(x1,x2),x3) -> *(x1,*(x2,x3)) 3: eq(x1,x2) -> eq(x2,x1) 4: eq(a(),a()) -> T() 5: eq(a(),*(x1,x2)) -> F() 6: eq(*(a(),x1),*(a(),x2)) -> eq(x1,x2) 7: rep(0(),x1) -> nil() 8: rep(s(x1),x2) -> *(x1,rep(x1,x2)) 10: lt(*(x1,c(x2))) -> x2 11: tl(*(c(x1),x2)) -> x2 13: lem2(*(x1,x2)) -> eq(lt(*(x1,x2)),lt(tl(*(x1,x2))))