0 QTRS
↳1 Overlay + Local Confluence (⇔)
↳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
↳23 QDPOrderProof (⇔)
↳24 QDP
↳25 PisEmptyProof (⇔)
↳26 TRUE
↳27 QDP
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
inc(0)
inc(s(x0))
minus(0, x0)
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
log(x0)
log2(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
if2(true, x0, s(x1))
if2(false, x0, x1)
LE(s(x), s(y)) → LE(x, y)
INC(s(x)) → INC(x)
MINUS(s(x), s(y)) → MINUS(x, y)
QUOT(s(x), s(y)) → QUOT(minus(x, y), s(y))
QUOT(s(x), s(y)) → MINUS(x, y)
LOG(x) → LOG2(x, 0)
LOG2(x, y) → IF(le(x, 0), le(x, s(0)), x, inc(y))
LOG2(x, y) → LE(x, 0)
LOG2(x, y) → LE(x, s(0))
LOG2(x, y) → INC(y)
IF(false, b, x, y) → IF2(b, x, y)
IF2(false, x, y) → LOG2(quot(x, s(s(0))), y)
IF2(false, x, y) → QUOT(x, s(s(0)))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
inc(0)
inc(s(x0))
minus(0, x0)
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
log(x0)
log2(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
if2(true, x0, s(x1))
if2(false, x0, x1)
MINUS(s(x), s(y)) → MINUS(x, y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
inc(0)
inc(s(x0))
minus(0, x0)
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
log(x0)
log2(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
if2(true, x0, s(x1))
if2(false, x0, x1)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MINUS(s(x), s(y)) → MINUS(x, y)
MINUS1 > logundefined
le2 > true > logundefined
le2 > false > 0 > logundefined
quot2 > s1 > 0 > logundefined
log1 > 0 > logundefined
le2: [1,2]
true: []
quot2: [2,1]
log1: [1]
false: []
logundefined: []
MINUS1: [1]
s1: [1]
0: []
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
inc(0)
inc(s(x0))
minus(0, x0)
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
log(x0)
log2(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
if2(true, x0, s(x1))
if2(false, x0, x1)
QUOT(s(x), s(y)) → QUOT(minus(x, y), s(y))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
inc(0)
inc(s(x0))
minus(0, x0)
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
log(x0)
log2(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
if2(true, x0, s(x1))
if2(false, x0, x1)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
QUOT(s(x), s(y)) → QUOT(minus(x, y), s(y))
le2 > true > logundefined
le2 > false > logundefined
quot2 > s1 > minus1 > logundefined
quot2 > s1 > false > logundefined
log > 0 > false > logundefined
minus1: [1]
le2: [1,2]
log: []
true: []
quot2: [2,1]
false: []
logundefined: []
s1: [1]
0: []
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
inc(0)
inc(s(x0))
minus(0, x0)
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
log(x0)
log2(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
if2(true, x0, s(x1))
if2(false, x0, x1)
INC(s(x)) → INC(x)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
inc(0)
inc(s(x0))
minus(0, x0)
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
log(x0)
log2(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
if2(true, x0, s(x1))
if2(false, x0, x1)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
INC(s(x)) → INC(x)
INC1 > logundefined
le2 > true > logundefined
le2 > false > quot2 > s1 > minus1 > 0 > logundefined
log1 > 0 > logundefined
INC1: [1]
minus1: [1]
le2: [1,2]
true: []
quot2: [1,2]
log1: [1]
false: []
logundefined: []
s1: [1]
0: []
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
inc(0)
inc(s(x0))
minus(0, x0)
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
log(x0)
log2(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
if2(true, x0, s(x1))
if2(false, x0, x1)
LE(s(x), s(y)) → LE(x, y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
inc(0)
inc(s(x0))
minus(0, x0)
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
log(x0)
log2(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
if2(true, x0, s(x1))
if2(false, x0, x1)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LE(s(x), s(y)) → LE(x, y)
LE1 > logundefined
le2 > true > logundefined
le2 > false > 0 > logundefined
quot2 > s1 > 0 > logundefined
log1 > 0 > logundefined
le2: [1,2]
true: []
quot2: [2,1]
log1: [1]
false: []
logundefined: []
s1: [1]
0: []
LE1: [1]
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
inc(0)
inc(s(x0))
minus(0, x0)
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
log(x0)
log2(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
if2(true, x0, s(x1))
if2(false, x0, x1)
LOG2(x, y) → IF(le(x, 0), le(x, s(0)), x, inc(y))
IF(false, b, x, y) → IF2(b, x, y)
IF2(false, x, y) → LOG2(quot(x, s(s(0))), y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
inc(0) → 0
inc(s(x)) → s(inc(x))
minus(0, y) → 0
minus(x, 0) → x
minus(s(x), s(y)) → minus(x, y)
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(x) → log2(x, 0)
log2(x, y) → if(le(x, 0), le(x, s(0)), x, inc(y))
if(true, b, x, y) → log_undefined
if(false, b, x, y) → if2(b, x, y)
if2(true, x, s(y)) → y
if2(false, x, y) → log2(quot(x, s(s(0))), y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
inc(0)
inc(s(x0))
minus(0, x0)
minus(x0, 0)
minus(s(x0), s(x1))
quot(0, s(x0))
quot(s(x0), s(x1))
log(x0)
log2(x0, x1)
if(true, x0, x1, x2)
if(false, x0, x1, x2)
if2(true, x0, s(x1))
if2(false, x0, x1)