0 QTRS
↳1 AAECC Innermost (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 PisEmptyProof (⇔)
↳11 TRUE
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 PisEmptyProof (⇔)
↳16 TRUE
rev(nil) → nil
rev(.(x, y)) → ++(rev(y), .(x, nil))
car(.(x, y)) → x
cdr(.(x, y)) → y
null(nil) → true
null(.(x, y)) → false
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
car(.(x, y)) → x
cdr(.(x, y)) → y
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
rev(nil) → nil
rev(.(x, y)) → ++(rev(y), .(x, nil))
null(nil) → true
null(.(x, y)) → false
rev(nil) → nil
rev(.(x, y)) → ++(rev(y), .(x, nil))
car(.(x, y)) → x
cdr(.(x, y)) → y
null(nil) → true
null(.(x, y)) → false
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
rev(nil)
rev(.(x0, x1))
car(.(x0, x1))
cdr(.(x0, x1))
null(nil)
null(.(x0, x1))
++(nil, x0)
++(.(x0, x1), x2)
REV(.(x, y)) → ++1(rev(y), .(x, nil))
REV(.(x, y)) → REV(y)
++1(.(x, y), z) → ++1(y, z)
rev(nil) → nil
rev(.(x, y)) → ++(rev(y), .(x, nil))
car(.(x, y)) → x
cdr(.(x, y)) → y
null(nil) → true
null(.(x, y)) → false
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
rev(nil)
rev(.(x0, x1))
car(.(x0, x1))
cdr(.(x0, x1))
null(nil)
null(.(x0, x1))
++(nil, x0)
++(.(x0, x1), x2)
++1(.(x, y), z) → ++1(y, z)
rev(nil) → nil
rev(.(x, y)) → ++(rev(y), .(x, nil))
car(.(x, y)) → x
cdr(.(x, y)) → y
null(nil) → true
null(.(x, y)) → false
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
rev(nil)
rev(.(x0, x1))
car(.(x0, x1))
cdr(.(x0, x1))
null(nil)
null(.(x0, x1))
++(nil, x0)
++(.(x0, x1), x2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
++1(.(x, y), z) → ++1(y, z)
rev1 > nil > true > .2
rev1 > ++2 > .2
cdr1 > .2
[null1, false] > true > .2
rev(nil) → nil
rev(.(x, y)) → ++(rev(y), .(x, nil))
car(.(x, y)) → x
cdr(.(x, y)) → y
null(nil) → true
null(.(x, y)) → false
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
rev(nil) → nil
rev(.(x, y)) → ++(rev(y), .(x, nil))
car(.(x, y)) → x
cdr(.(x, y)) → y
null(nil) → true
null(.(x, y)) → false
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
rev(nil)
rev(.(x0, x1))
car(.(x0, x1))
cdr(.(x0, x1))
null(nil)
null(.(x0, x1))
++(nil, x0)
++(.(x0, x1), x2)
REV(.(x, y)) → REV(y)
rev(nil) → nil
rev(.(x, y)) → ++(rev(y), .(x, nil))
car(.(x, y)) → x
cdr(.(x, y)) → y
null(nil) → true
null(.(x, y)) → false
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
rev(nil)
rev(.(x0, x1))
car(.(x0, x1))
cdr(.(x0, x1))
null(nil)
null(.(x0, x1))
++(nil, x0)
++(.(x0, x1), x2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
REV(.(x, y)) → REV(y)
rev1 > ++2 > [.2, nil, false]
[null1, true] > [.2, nil, false]
rev(nil) → nil
rev(.(x, y)) → ++(rev(y), .(x, nil))
car(.(x, y)) → x
cdr(.(x, y)) → y
null(nil) → true
null(.(x, y)) → false
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
rev(nil) → nil
rev(.(x, y)) → ++(rev(y), .(x, nil))
car(.(x, y)) → x
cdr(.(x, y)) → y
null(nil) → true
null(.(x, y)) → false
++(nil, y) → y
++(.(x, y), z) → .(x, ++(y, z))
rev(nil)
rev(.(x0, x1))
car(.(x0, x1))
cdr(.(x0, x1))
null(nil)
null(.(x0, x1))
++(nil, x0)
++(.(x0, x1), x2)