0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 PisEmptyProof (⇔)
↳9 TRUE
↳10 QDP
↳11 QDPOrderProof (⇔)
↳12 QDP
↳13 PisEmptyProof (⇔)
↳14 TRUE
rev(nil) → nil
rev(rev(x)) → x
rev(++(x, y)) → ++(rev(y), rev(x))
++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(x, ++(y, z)) → ++(++(x, y), z)
make(x) → .(x, nil)
REV(++(x, y)) → ++1(rev(y), rev(x))
REV(++(x, y)) → REV(y)
REV(++(x, y)) → REV(x)
++1(.(x, y), z) → ++1(y, z)
++1(x, ++(y, z)) → ++1(++(x, y), z)
++1(x, ++(y, z)) → ++1(x, y)
rev(nil) → nil
rev(rev(x)) → x
rev(++(x, y)) → ++(rev(y), rev(x))
++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(x, ++(y, z)) → ++(++(x, y), z)
make(x) → .(x, nil)
++1(x, ++(y, z)) → ++1(++(x, y), z)
++1(.(x, y), z) → ++1(y, z)
++1(x, ++(y, z)) → ++1(x, y)
rev(nil) → nil
rev(rev(x)) → x
rev(++(x, y)) → ++(rev(y), rev(x))
++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(x, ++(y, z)) → ++(++(x, y), z)
make(x) → .(x, nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
++1(x, ++(y, z)) → ++1(++(x, y), z)
++1(.(x, y), z) → ++1(y, z)
++1(x, ++(y, z)) → ++1(x, y)
[++^12, ++2] > .2
++^12: [2,1]
++2: [2,1]
.2: [2,1]
nil: []
++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(x, ++(y, z)) → ++(++(x, y), z)
rev(nil) → nil
rev(rev(x)) → x
rev(++(x, y)) → ++(rev(y), rev(x))
++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(x, ++(y, z)) → ++(++(x, y), z)
make(x) → .(x, nil)
REV(++(x, y)) → REV(x)
REV(++(x, y)) → REV(y)
rev(nil) → nil
rev(rev(x)) → x
rev(++(x, y)) → ++(rev(y), rev(x))
++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(x, ++(y, z)) → ++(++(x, y), z)
make(x) → .(x, nil)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
REV(++(x, y)) → REV(x)
REV(++(x, y)) → REV(y)
[REV1, ++2]
++2: [2,1]
REV1: [1]
rev(nil) → nil
rev(rev(x)) → x
rev(++(x, y)) → ++(rev(y), rev(x))
++(nil, y) → y
++(x, nil) → x
++(.(x, y), z) → .(x, ++(y, z))
++(x, ++(y, z)) → ++(++(x, y), z)
make(x) → .(x, nil)