R
↳Dependency Pair Analysis
+'(s(N), s(M)) -> +'(N, M)
*'(s(N), s(M)) -> +'(N, +(M, *(N, M)))
*'(s(N), s(M)) -> +'(M, *(N, M))
*'(s(N), s(M)) -> *'(N, M)
GT(NzN, 0) -> U4(isNzNat(NzN))
GT(NzN, 0) -> ISNZNAT(NzN)
GT(s(N), s(M)) -> GT(N, M)
LT(N, M) -> GT(M, N)
D(s(N), s(M)) -> D(N, M)
QUOT(N, NzM) -> U11(isNzNat(NzM), N, NzM)
QUOT(N, NzM) -> ISNZNAT(NzM)
QUOT(NzM, NzM) -> U01(isNzNat(NzM))
QUOT(NzM, NzM) -> ISNZNAT(NzM)
QUOT(N, NzM) -> U21(isNzNat(NzM), NzM, N)
U11(True, N, NzM) -> U1(gt(N, NzM), N, NzM)
U11(True, N, NzM) -> GT(N, NzM)
U1(True, N, NzM) -> QUOT(d(N, NzM), NzM)
U1(True, N, NzM) -> D(N, NzM)
U21(True, NzM, N) -> U2(gt(NzM, N))
U21(True, NzM, N) -> GT(NzM, N)
GCD(NzM, NzM) -> U02(isNzNat(NzM), NzM)
GCD(NzM, NzM) -> ISNZNAT(NzM)
GCD(NzN, NzM) -> U31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
GCD(NzN, NzM) -> ISNZNAT(NzN)
GCD(NzN, NzM) -> ISNZNAT(NzM)
U31(True, True, NzN, NzM) -> U3(gt(NzN, NzM), NzN, NzM)
U31(True, True, NzN, NzM) -> GT(NzN, NzM)
U3(True, NzN, NzM) -> GCD(d(NzN, NzM), NzM)
U3(True, NzN, NzM) -> D(NzN, NzM)
R
↳DPs
→DP Problem 1
↳Polynomial Ordering
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 6
↳Remaining
+'(s(N), s(M)) -> +'(N, M)
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
+'(s(N), s(M)) -> +'(N, M)
POL(s(x1)) = 1 + x1 POL(+'(x1, x2)) = x1
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 7
↳Dependency Graph
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 6
↳Remaining
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polynomial Ordering
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 6
↳Remaining
GT(s(N), s(M)) -> GT(N, M)
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
GT(s(N), s(M)) -> GT(N, M)
POL(s(x1)) = 1 + x1 POL(GT(x1, x2)) = x1
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 8
↳Dependency Graph
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 6
↳Remaining
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polynomial Ordering
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 6
↳Remaining
D(s(N), s(M)) -> D(N, M)
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
D(s(N), s(M)) -> D(N, M)
POL(D(x1, x2)) = x1 POL(s(x1)) = 1 + x1
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 9
↳Dependency Graph
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 6
↳Remaining
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polynomial Ordering
→DP Problem 5
↳Nar
→DP Problem 6
↳Remaining
*'(s(N), s(M)) -> *'(N, M)
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
*'(s(N), s(M)) -> *'(N, M)
POL(*'(x1, x2)) = x1 POL(s(x1)) = 1 + x1
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 10
↳Dependency Graph
→DP Problem 5
↳Nar
→DP Problem 6
↳Remaining
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Narrowing Transformation
→DP Problem 6
↳Remaining
U1(True, N, NzM) -> QUOT(d(N, NzM), NzM)
U11(True, N, NzM) -> U1(gt(N, NzM), N, NzM)
QUOT(N, NzM) -> U11(isNzNat(NzM), N, NzM)
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
two new Dependency Pairs are created:
QUOT(N, NzM) -> U11(isNzNat(NzM), N, NzM)
QUOT(N, 0) -> U11(False, N, 0)
QUOT(N, s(N'')) -> U11(True, N, s(N''))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 11
↳Narrowing Transformation
→DP Problem 6
↳Remaining
U11(True, N, NzM) -> U1(gt(N, NzM), N, NzM)
QUOT(N, s(N'')) -> U11(True, N, s(N''))
U1(True, N, NzM) -> QUOT(d(N, NzM), NzM)
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
three new Dependency Pairs are created:
U11(True, N, NzM) -> U1(gt(N, NzM), N, NzM)
U11(True, 0, NzM') -> U1(False, 0, NzM')
U11(True, N', 0) -> U1(u4(isNzNat(N')), N', 0)
U11(True, s(N''), s(M')) -> U1(gt(N'', M'), s(N''), s(M'))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 11
↳Nar
...
→DP Problem 12
↳Instantiation Transformation
→DP Problem 6
↳Remaining
U1(True, N, NzM) -> QUOT(d(N, NzM), NzM)
U11(True, s(N''), s(M')) -> U1(gt(N'', M'), s(N''), s(M'))
QUOT(N, s(N'')) -> U11(True, N, s(N''))
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
one new Dependency Pair is created:
U1(True, N, NzM) -> QUOT(d(N, NzM), NzM)
U1(True, s(N''''), s(M''')) -> QUOT(d(s(N''''), s(M''')), s(M'''))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 11
↳Nar
...
→DP Problem 13
↳Rewriting Transformation
→DP Problem 6
↳Remaining
QUOT(N, s(N'')) -> U11(True, N, s(N''))
U1(True, s(N''''), s(M''')) -> QUOT(d(s(N''''), s(M''')), s(M'''))
U11(True, s(N''), s(M')) -> U1(gt(N'', M'), s(N''), s(M'))
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
one new Dependency Pair is created:
U1(True, s(N''''), s(M''')) -> QUOT(d(s(N''''), s(M''')), s(M'''))
U1(True, s(N''''), s(M''')) -> QUOT(d(N'''', M'''), s(M'''))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 11
↳Nar
...
→DP Problem 14
↳Forward Instantiation Transformation
→DP Problem 6
↳Remaining
U1(True, s(N''''), s(M''')) -> QUOT(d(N'''', M'''), s(M'''))
U11(True, s(N''), s(M')) -> U1(gt(N'', M'), s(N''), s(M'))
QUOT(N, s(N'')) -> U11(True, N, s(N''))
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
one new Dependency Pair is created:
QUOT(N, s(N'')) -> U11(True, N, s(N''))
QUOT(s(N'''''), s(N'''')) -> U11(True, s(N'''''), s(N''''))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 11
↳Nar
...
→DP Problem 15
↳Narrowing Transformation
→DP Problem 6
↳Remaining
U11(True, s(N''), s(M')) -> U1(gt(N'', M'), s(N''), s(M'))
QUOT(s(N'''''), s(N'''')) -> U11(True, s(N'''''), s(N''''))
U1(True, s(N''''), s(M''')) -> QUOT(d(N'''', M'''), s(M'''))
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
two new Dependency Pairs are created:
U1(True, s(N''''), s(M''')) -> QUOT(d(N'''', M'''), s(M'''))
U1(True, s(0), s(M'''')) -> QUOT(M'''', s(M''''))
U1(True, s(s(N')), s(s(M'))) -> QUOT(d(N', M'), s(s(M')))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 11
↳Nar
...
→DP Problem 16
↳Instantiation Transformation
→DP Problem 6
↳Remaining
U1(True, s(s(N')), s(s(M'))) -> QUOT(d(N', M'), s(s(M')))
QUOT(s(N'''''), s(N'''')) -> U11(True, s(N'''''), s(N''''))
U1(True, s(0), s(M'''')) -> QUOT(M'''', s(M''''))
U11(True, s(N''), s(M')) -> U1(gt(N'', M'), s(N''), s(M'))
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
two new Dependency Pairs are created:
QUOT(s(N'''''), s(N'''')) -> U11(True, s(N'''''), s(N''''))
QUOT(s(N''''''), s(s(N''''''))) -> U11(True, s(N''''''), s(s(N'''''')))
QUOT(s(N''''''), s(s(M'''))) -> U11(True, s(N''''''), s(s(M''')))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 11
↳Nar
...
→DP Problem 17
↳Instantiation Transformation
→DP Problem 6
↳Remaining
QUOT(s(N''''''), s(s(M'''))) -> U11(True, s(N''''''), s(s(M''')))
U1(True, s(0), s(M'''')) -> QUOT(M'''', s(M''''))
U11(True, s(N''), s(M')) -> U1(gt(N'', M'), s(N''), s(M'))
QUOT(s(N''''''), s(s(N''''''))) -> U11(True, s(N''''''), s(s(N'''''')))
U1(True, s(s(N')), s(s(M'))) -> QUOT(d(N', M'), s(s(M')))
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
two new Dependency Pairs are created:
U11(True, s(N''), s(M')) -> U1(gt(N'', M'), s(N''), s(M'))
U11(True, s(N'''), s(s(N'''))) -> U1(gt(N''', s(N''')), s(N'''), s(s(N''')))
U11(True, s(N'''), s(s(M'''''))) -> U1(gt(N''', s(M''''')), s(N'''), s(s(M''''')))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 11
↳Nar
...
→DP Problem 18
↳Forward Instantiation Transformation
→DP Problem 6
↳Remaining
U1(True, s(s(N')), s(s(M'))) -> QUOT(d(N', M'), s(s(M')))
U11(True, s(N'''), s(s(M'''''))) -> U1(gt(N''', s(M''''')), s(N'''), s(s(M''''')))
QUOT(s(N''''''), s(s(N''''''))) -> U11(True, s(N''''''), s(s(N'''''')))
U1(True, s(0), s(M'''')) -> QUOT(M'''', s(M''''))
U11(True, s(N'''), s(s(N'''))) -> U1(gt(N''', s(N''')), s(N'''), s(s(N''')))
QUOT(s(N''''''), s(s(M'''))) -> U11(True, s(N''''''), s(s(M''')))
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
two new Dependency Pairs are created:
U1(True, s(0), s(M'''')) -> QUOT(M'''', s(M''''))
U1(True, s(0), s(s(N'''''''''))) -> QUOT(s(N'''''''''), s(s(N''''''''')))
U1(True, s(0), s(s(N''''''''))) -> QUOT(s(N''''''''), s(s(N'''''''')))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 11
↳Nar
...
→DP Problem 19
↳Forward Instantiation Transformation
→DP Problem 6
↳Remaining
U1(True, s(0), s(s(N''''''''))) -> QUOT(s(N''''''''), s(s(N'''''''')))
U11(True, s(N'''), s(s(M'''''))) -> U1(gt(N''', s(M''''')), s(N'''), s(s(M''''')))
QUOT(s(N''''''), s(s(M'''))) -> U11(True, s(N''''''), s(s(M''')))
U1(True, s(0), s(s(N'''''''''))) -> QUOT(s(N'''''''''), s(s(N''''''''')))
U11(True, s(N'''), s(s(N'''))) -> U1(gt(N''', s(N''')), s(N'''), s(s(N''')))
QUOT(s(N''''''), s(s(N''''''))) -> U11(True, s(N''''''), s(s(N'''''')))
U1(True, s(s(N')), s(s(M'))) -> QUOT(d(N', M'), s(s(M')))
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
two new Dependency Pairs are created:
U11(True, s(N'''), s(s(N'''))) -> U1(gt(N''', s(N''')), s(N'''), s(s(N''')))
U11(True, s(s(N'''')), s(s(s(N'''')))) -> U1(gt(s(N''''), s(s(N''''))), s(s(N'''')), s(s(s(N''''))))
U11(True, s(0), s(s(0))) -> U1(gt(0, s(0)), s(0), s(s(0)))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 11
↳Nar
...
→DP Problem 20
↳Forward Instantiation Transformation
→DP Problem 6
↳Remaining
U1(True, s(0), s(s(N'''''''''))) -> QUOT(s(N'''''''''), s(s(N''''''''')))
U11(True, s(0), s(s(0))) -> U1(gt(0, s(0)), s(0), s(s(0)))
U11(True, s(s(N'''')), s(s(s(N'''')))) -> U1(gt(s(N''''), s(s(N''''))), s(s(N'''')), s(s(s(N''''))))
QUOT(s(N''''''), s(s(M'''))) -> U11(True, s(N''''''), s(s(M''')))
U1(True, s(s(N')), s(s(M'))) -> QUOT(d(N', M'), s(s(M')))
U11(True, s(N'''), s(s(M'''''))) -> U1(gt(N''', s(M''''')), s(N'''), s(s(M''''')))
QUOT(s(N''''''), s(s(N''''''))) -> U11(True, s(N''''''), s(s(N'''''')))
U1(True, s(0), s(s(N''''''''))) -> QUOT(s(N''''''''), s(s(N'''''''')))
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
two new Dependency Pairs are created:
U11(True, s(N'''), s(s(M'''''))) -> U1(gt(N''', s(M''''')), s(N'''), s(s(M''''')))
U11(True, s(s(N'''')), s(s(M''''''))) -> U1(gt(s(N''''), s(M'''''')), s(s(N'''')), s(s(M'''''')))
U11(True, s(0), s(s(M''''''))) -> U1(gt(0, s(M'''''')), s(0), s(s(M'''''')))
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 6
↳Remaining Obligation(s)
U11(True, s(0), s(s(M''''''))) -> U1(gt(0, s(M'''''')), s(0), s(s(M'''''')))
U11(True, s(s(N'''')), s(s(M''''''))) -> U1(gt(s(N''''), s(M'''''')), s(s(N'''')), s(s(M'''''')))
U1(True, s(0), s(s(N''''''''))) -> QUOT(s(N''''''''), s(s(N'''''''')))
U11(True, s(0), s(s(0))) -> U1(gt(0, s(0)), s(0), s(s(0)))
QUOT(s(N''''''), s(s(M'''))) -> U11(True, s(N''''''), s(s(M''')))
U1(True, s(s(N')), s(s(M'))) -> QUOT(d(N', M'), s(s(M')))
U11(True, s(s(N'''')), s(s(s(N'''')))) -> U1(gt(s(N''''), s(s(N''''))), s(s(N'''')), s(s(s(N''''))))
QUOT(s(N''''''), s(s(N''''''))) -> U11(True, s(N''''''), s(s(N'''''')))
U1(True, s(0), s(s(N'''''''''))) -> QUOT(s(N'''''''''), s(s(N''''''''')))
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
U3(True, NzN, NzM) -> GCD(d(NzN, NzM), NzM)
U31(True, True, NzN, NzM) -> U3(gt(NzN, NzM), NzN, NzM)
GCD(NzN, NzM) -> U31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
R
↳DPs
→DP Problem 1
↳Polo
→DP Problem 2
↳Polo
→DP Problem 3
↳Polo
→DP Problem 4
↳Polo
→DP Problem 5
↳Nar
→DP Problem 6
↳Remaining Obligation(s)
U11(True, s(0), s(s(M''''''))) -> U1(gt(0, s(M'''''')), s(0), s(s(M'''''')))
U11(True, s(s(N'''')), s(s(M''''''))) -> U1(gt(s(N''''), s(M'''''')), s(s(N'''')), s(s(M'''''')))
U1(True, s(0), s(s(N''''''''))) -> QUOT(s(N''''''''), s(s(N'''''''')))
U11(True, s(0), s(s(0))) -> U1(gt(0, s(0)), s(0), s(s(0)))
QUOT(s(N''''''), s(s(M'''))) -> U11(True, s(N''''''), s(s(M''')))
U1(True, s(s(N')), s(s(M'))) -> QUOT(d(N', M'), s(s(M')))
U11(True, s(s(N'''')), s(s(s(N'''')))) -> U1(gt(s(N''''), s(s(N''''))), s(s(N'''')), s(s(s(N''''))))
QUOT(s(N''''''), s(s(N''''''))) -> U11(True, s(N''''''), s(s(N'''''')))
U1(True, s(0), s(s(N'''''''''))) -> QUOT(s(N'''''''''), s(s(N''''''''')))
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost
U3(True, NzN, NzM) -> GCD(d(NzN, NzM), NzM)
U31(True, True, NzN, NzM) -> U3(gt(NzN, NzM), NzN, NzM)
GCD(NzN, NzM) -> U31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
p(s(N)) -> N
+(N, 0) -> N
+(s(N), s(M)) -> s(s(+(N, M)))
*(N, 0) -> 0
*(s(N), s(M)) -> s(+(N, +(M, *(N, M))))
gt(0, M) -> False
gt(NzN, 0) -> u4(isNzNat(NzN))
gt(s(N), s(M)) -> gt(N, M)
u4(True) -> True
isNzNat(0) -> False
isNzNat(s(N)) -> True
lt(N, M) -> gt(M, N)
d(0, N) -> N
d(s(N), s(M)) -> d(N, M)
quot(N, NzM) -> u11(isNzNat(NzM), N, NzM)
quot(NzM, NzM) -> u01(isNzNat(NzM))
quot(N, NzM) -> u21(isNzNat(NzM), NzM, N)
u11(True, N, NzM) -> u1(gt(N, NzM), N, NzM)
u1(True, N, NzM) -> s(quot(d(N, NzM), NzM))
u01(True) -> s(0)
u21(True, NzM, N) -> u2(gt(NzM, N))
u2(True) -> 0
gcd(0, N) -> 0
gcd(NzM, NzM) -> u02(isNzNat(NzM), NzM)
gcd(NzN, NzM) -> u31(isNzNat(NzN), isNzNat(NzM), NzN, NzM)
u02(True, NzM) -> NzM
u31(True, True, NzN, NzM) -> u3(gt(NzN, NzM), NzN, NzM)
u3(True, NzN, NzM) -> gcd(d(NzN, NzM), NzM)
innermost