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
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
lastbit(0) → 0
lastbit(s(0)) → s(0)
lastbit(s(s(x))) → lastbit(x)
conv(0) → cons(nil, 0)
conv(s(x)) → cons(conv(half(s(x))), lastbit(s(x)))
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
lastbit(0) → 0
lastbit(s(0)) → s(0)
lastbit(s(s(x))) → lastbit(x)
conv(0) → cons(nil, 0)
conv(s(x)) → cons(conv(half(s(x))), lastbit(s(x)))
half(0)
half(s(0))
half(s(s(x0)))
lastbit(0)
lastbit(s(0))
lastbit(s(s(x0)))
conv(0)
conv(s(x0))
HALF(s(s(x))) → HALF(x)
LASTBIT(s(s(x))) → LASTBIT(x)
CONV(s(x)) → CONV(half(s(x)))
CONV(s(x)) → HALF(s(x))
CONV(s(x)) → LASTBIT(s(x))
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
lastbit(0) → 0
lastbit(s(0)) → s(0)
lastbit(s(s(x))) → lastbit(x)
conv(0) → cons(nil, 0)
conv(s(x)) → cons(conv(half(s(x))), lastbit(s(x)))
half(0)
half(s(0))
half(s(s(x0)))
lastbit(0)
lastbit(s(0))
lastbit(s(s(x0)))
conv(0)
conv(s(x0))
LASTBIT(s(s(x))) → LASTBIT(x)
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
lastbit(0) → 0
lastbit(s(0)) → s(0)
lastbit(s(s(x))) → lastbit(x)
conv(0) → cons(nil, 0)
conv(s(x)) → cons(conv(half(s(x))), lastbit(s(x)))
half(0)
half(s(0))
half(s(s(x0)))
lastbit(0)
lastbit(s(0))
lastbit(s(s(x0)))
conv(0)
conv(s(x0))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LASTBIT(s(s(x))) → LASTBIT(x)
LASTBIT1 > [s1, half1, 0]
[conv1, nil] > lastbit1 > [s1, half1, 0]
[conv1, nil] > cons1 > [s1, half1, 0]
LASTBIT1: multiset
s1: multiset
half1: multiset
0: multiset
lastbit1: [1]
conv1: [1]
cons1: multiset
nil: multiset
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
lastbit(0) → 0
lastbit(s(0)) → s(0)
lastbit(s(s(x))) → lastbit(x)
conv(0) → cons(nil, 0)
conv(s(x)) → cons(conv(half(s(x))), lastbit(s(x)))
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
lastbit(0) → 0
lastbit(s(0)) → s(0)
lastbit(s(s(x))) → lastbit(x)
conv(0) → cons(nil, 0)
conv(s(x)) → cons(conv(half(s(x))), lastbit(s(x)))
half(0)
half(s(0))
half(s(s(x0)))
lastbit(0)
lastbit(s(0))
lastbit(s(s(x0)))
conv(0)
conv(s(x0))
HALF(s(s(x))) → HALF(x)
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
lastbit(0) → 0
lastbit(s(0)) → s(0)
lastbit(s(s(x))) → lastbit(x)
conv(0) → cons(nil, 0)
conv(s(x)) → cons(conv(half(s(x))), lastbit(s(x)))
half(0)
half(s(0))
half(s(s(x0)))
lastbit(0)
lastbit(s(0))
lastbit(s(s(x0)))
conv(0)
conv(s(x0))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
HALF(s(s(x))) → HALF(x)
HALF1 > [s1, half1, 0]
[conv1, nil] > lastbit1 > [s1, half1, 0]
[conv1, nil] > cons1 > [s1, half1, 0]
HALF1: multiset
s1: multiset
half1: multiset
0: multiset
lastbit1: [1]
conv1: [1]
cons1: multiset
nil: multiset
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
lastbit(0) → 0
lastbit(s(0)) → s(0)
lastbit(s(s(x))) → lastbit(x)
conv(0) → cons(nil, 0)
conv(s(x)) → cons(conv(half(s(x))), lastbit(s(x)))
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
lastbit(0) → 0
lastbit(s(0)) → s(0)
lastbit(s(s(x))) → lastbit(x)
conv(0) → cons(nil, 0)
conv(s(x)) → cons(conv(half(s(x))), lastbit(s(x)))
half(0)
half(s(0))
half(s(s(x0)))
lastbit(0)
lastbit(s(0))
lastbit(s(s(x0)))
conv(0)
conv(s(x0))
CONV(s(x)) → CONV(half(s(x)))
half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
lastbit(0) → 0
lastbit(s(0)) → s(0)
lastbit(s(s(x))) → lastbit(x)
conv(0) → cons(nil, 0)
conv(s(x)) → cons(conv(half(s(x))), lastbit(s(x)))
half(0)
half(s(0))
half(s(s(x0)))
lastbit(0)
lastbit(s(0))
lastbit(s(s(x0)))
conv(0)
conv(s(x0))