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
↳17 QDP
↳18 QDPOrderProof (⇔)
↳19 QDP
↳20 PisEmptyProof (⇔)
↳21 TRUE
↳22 QDP
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
and(x0, true)
and(x0, false)
plus(x0, 0)
plus(x0, s(x1))
double(0)
double(s(x0))
F(true, x, y) → F(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
F(true, x, y) → AND(gt(x, y), gt(y, s(s(0))))
F(true, x, y) → GT(x, y)
F(true, x, y) → GT(y, s(s(0)))
F(true, x, y) → PLUS(s(0), x)
F(true, x, y) → DOUBLE(y)
GT(s(u), s(v)) → GT(u, v)
PLUS(n, s(m)) → PLUS(n, m)
DOUBLE(s(x)) → DOUBLE(x)
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
and(x0, true)
and(x0, false)
plus(x0, 0)
plus(x0, s(x1))
double(0)
double(s(x0))
DOUBLE(s(x)) → DOUBLE(x)
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
and(x0, true)
and(x0, false)
plus(x0, 0)
plus(x0, s(x1))
double(0)
double(s(x0))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
DOUBLE(s(x)) → DOUBLE(x)
[true, gt, plus2] > and2 > [DOUBLE1, s1, f]
[true, gt, plus2] > [0, false] > [DOUBLE1, s1, f]
[true, gt, plus2] > double1 > [DOUBLE1, s1, f]
DOUBLE1: [1]
s1: [1]
f: []
true: multiset
and2: [2,1]
gt: multiset
0: multiset
plus2: [1,2]
double1: [1]
false: multiset
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
and(x0, true)
and(x0, false)
plus(x0, 0)
plus(x0, s(x1))
double(0)
double(s(x0))
PLUS(n, s(m)) → PLUS(n, m)
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
and(x0, true)
and(x0, false)
plus(x0, 0)
plus(x0, s(x1))
double(0)
double(s(x0))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PLUS(n, s(m)) → PLUS(n, m)
[true, and2, gt1, plus2] > [PLUS1, s1, f, 0, false]
double1 > [PLUS1, s1, f, 0, false]
PLUS1: multiset
s1: multiset
f: []
true: multiset
and2: [2,1]
gt1: [1]
0: multiset
plus2: [1,2]
double1: [1]
false: multiset
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
and(x0, true)
and(x0, false)
plus(x0, 0)
plus(x0, s(x1))
double(0)
double(s(x0))
GT(s(u), s(v)) → GT(u, v)
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
and(x0, true)
and(x0, false)
plus(x0, 0)
plus(x0, s(x1))
double(0)
double(s(x0))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GT(s(u), s(v)) → GT(u, v)
and2 > false
gt > [f, true, 0] > s1
gt > false
plus2 > s1
double1 > [f, true, 0] > s1
s1: multiset
f: multiset
true: multiset
and2: multiset
gt: []
0: multiset
plus2: [2,1]
double1: [1]
false: multiset
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
and(x0, true)
and(x0, false)
plus(x0, 0)
plus(x0, s(x1))
double(0)
double(s(x0))
F(true, x, y) → F(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
f(true, x, y) → f(and(gt(x, y), gt(y, s(s(0)))), plus(s(0), x), double(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
and(x, true) → x
and(x, false) → false
plus(n, 0) → n
plus(n, s(m)) → s(plus(n, m))
double(0) → 0
double(s(x)) → s(s(double(x)))
f(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
and(x0, true)
and(x0, false)
plus(x0, 0)
plus(x0, s(x1))
double(0)
double(s(x0))