YES
0 QTRS
↳1 Overlay + Local Confluence (⇔, 3 ms)
↳2 QTRS
↳3 DependencyPairsProof (⇔, 0 ms)
↳4 QDP
↳5 DependencyGraphProof (⇔, 0 ms)
↳6 AND
↳7 QDP
↳8 UsableRulesProof (⇔, 0 ms)
↳9 QDP
↳10 QReductionProof (⇔, 0 ms)
↳11 QDP
↳12 QDPSizeChangeProof (⇔, 0 ms)
↳13 YES
↳14 QDP
↳15 UsableRulesProof (⇔, 0 ms)
↳16 QDP
↳17 QReductionProof (⇔, 0 ms)
↳18 QDP
↳19 QDPSizeChangeProof (⇔, 0 ms)
↳20 YES
↳21 QDP
↳22 UsableRulesProof (⇔, 0 ms)
↳23 QDP
↳24 QReductionProof (⇔, 0 ms)
↳25 QDP
↳26 QDPOrderProof (⇔, 39 ms)
↳27 QDP
↳28 PisEmptyProof (⇔, 0 ms)
↳29 YES
↳30 QDP
↳31 UsableRulesProof (⇔, 0 ms)
↳32 QDP
↳33 QReductionProof (⇔, 0 ms)
↳34 QDP
↳35 QDPOrderProof (⇔, 15 ms)
↳36 QDP
↳37 PisEmptyProof (⇔, 0 ms)
↳38 YES
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(s(0)) → 0
log(s(s(x))) → s(log(s(quot(x, s(s(0))))))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(s(0)) → 0
log(s(s(x))) → s(log(s(quot(x, s(s(0))))))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
LE(s(x), s(y)) → LE(x, y)
MINUS(s(x), y) → IF_MINUS(le(s(x), y), s(x), y)
MINUS(s(x), y) → LE(s(x), y)
IF_MINUS(false, s(x), y) → MINUS(x, y)
QUOT(s(x), s(y)) → QUOT(minus(x, y), s(y))
QUOT(s(x), s(y)) → MINUS(x, y)
LOG(s(s(x))) → LOG(s(quot(x, s(s(0)))))
LOG(s(s(x))) → QUOT(x, s(s(0)))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(s(0)) → 0
log(s(s(x))) → s(log(s(quot(x, s(s(0))))))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
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)
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(s(0)) → 0
log(s(s(x))) → s(log(s(quot(x, s(s(0))))))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
LE(s(x), s(y)) → LE(x, y)
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
LE(s(x), s(y)) → LE(x, y)
From the DPs we obtained the following set of size-change graphs:
MINUS(s(x), y) → IF_MINUS(le(s(x), y), s(x), y)
IF_MINUS(false, s(x), y) → MINUS(x, y)
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(s(0)) → 0
log(s(s(x))) → s(log(s(quot(x, s(s(0))))))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
MINUS(s(x), y) → IF_MINUS(le(s(x), y), s(x), y)
IF_MINUS(false, s(x), y) → MINUS(x, y)
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, y) → true
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
MINUS(s(x), y) → IF_MINUS(le(s(x), y), s(x), y)
IF_MINUS(false, s(x), y) → MINUS(x, y)
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
le(0, y) → true
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
From the DPs we obtained the following set of size-change graphs:
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)
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(s(0)) → 0
log(s(s(x))) → s(log(s(quot(x, s(s(0))))))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
QUOT(s(x), s(y)) → QUOT(minus(x, y), s(y))
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
le(0, y) → true
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
QUOT(s(x), s(y)) → QUOT(minus(x, y), s(y))
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
le(0, y) → true
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(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))
trivial
s_1=1
0=1
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
if_minus(false, s(x), y) → s(minus(x, y))
if_minus(true, s(x), y) → 0
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
le(0, y) → true
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
LOG(s(s(x))) → LOG(s(quot(x, s(s(0)))))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
log(s(0)) → 0
log(s(s(x))) → s(log(s(quot(x, s(s(0))))))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
LOG(s(s(x))) → LOG(s(quot(x, s(s(0)))))
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
le(0, y) → true
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
log(s(0))
log(s(s(x0)))
log(s(0))
log(s(s(x0)))
LOG(s(s(x))) → LOG(s(quot(x, s(s(0)))))
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
le(0, y) → true
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LOG(s(s(x))) → LOG(s(quot(x, s(s(0)))))
trivial
s_1=1
0=1
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
if_minus(false, s(x), y) → s(minus(x, y))
if_minus(true, s(x), y) → 0
quot(0, s(y)) → 0
quot(s(x), s(y)) → s(quot(minus(x, y), s(y)))
minus(0, y) → 0
minus(s(x), y) → if_minus(le(s(x), y), s(x), y)
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
if_minus(true, s(x), y) → 0
if_minus(false, s(x), y) → s(minus(x, y))
le(0, y) → true
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
minus(0, x0)
minus(s(x0), x1)
if_minus(true, s(x0), x1)
if_minus(false, s(x0), x1)
quot(0, s(x0))
quot(s(x0), s(x1))