MAYBE
MAYBE
TRS:
 {
                         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(NzN, 0()) -> u_4(is_NzNat(NzN)),
                  gt(s(N), s(M)) -> gt(N, M),
                      gt(0(), M) -> False(),
                     u_4(True()) -> True(),
                  is_NzNat(s(N)) -> True(),
                   is_NzNat(0()) -> False(),
                        lt(N, M) -> gt(M, N),
                   d(s(N), s(M)) -> d(N, M),
                       d(0(), N) -> N,
            u_11(True(), N, NzM) -> u_1(gt(N, NzM), N, NzM),
                    quot(N, NzM) -> u_11(is_NzNat(NzM), N, NzM),
                    quot(N, NzM) -> u_21(is_NzNat(NzM), NzM, N),
                  quot(NzM, NzM) -> u_01(is_NzNat(NzM)),
             u_1(True(), N, NzM) -> s(quot(d(N, NzM), NzM)),
                    u_01(True()) -> s(0()),
            u_21(True(), NzM, N) -> u_2(gt(NzM, N)),
                     u_2(True()) -> 0(),
                   gcd(NzN, NzM) ->
  u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM),
                   gcd(NzM, NzM) -> u_02(is_NzNat(NzM), NzM),
                     gcd(0(), N) -> 0(),
               u_02(True(), NzM) -> NzM,
  u_31(True(), True(), NzN, NzM) -> u_3(gt(NzN, NzM), NzN, NzM),
           u_3(True(), NzN, NzM) -> gcd(d(NzN, NzM), NzM)
 }
 DUP: We consider a duplicating system.
  Trs:
   {
                           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(NzN, 0()) -> u_4(is_NzNat(NzN)),
                    gt(s(N), s(M)) -> gt(N, M),
                        gt(0(), M) -> False(),
                       u_4(True()) -> True(),
                    is_NzNat(s(N)) -> True(),
                     is_NzNat(0()) -> False(),
                          lt(N, M) -> gt(M, N),
                     d(s(N), s(M)) -> d(N, M),
                         d(0(), N) -> N,
              u_11(True(), N, NzM) -> u_1(gt(N, NzM), N, NzM),
                      quot(N, NzM) -> u_11(is_NzNat(NzM), N, NzM),
                      quot(N, NzM) -> u_21(is_NzNat(NzM), NzM, N),
                    quot(NzM, NzM) -> u_01(is_NzNat(NzM)),
               u_1(True(), N, NzM) -> s(quot(d(N, NzM), NzM)),
                      u_01(True()) -> s(0()),
              u_21(True(), NzM, N) -> u_2(gt(NzM, N)),
                       u_2(True()) -> 0(),
                     gcd(NzN, NzM) ->
    u_31(is_NzNat(NzN), is_NzNat(NzM), NzN, NzM),
                     gcd(NzM, NzM) -> u_02(is_NzNat(NzM), NzM),
                       gcd(0(), N) -> 0(),
                 u_02(True(), NzM) -> NzM,
    u_31(True(), True(), NzN, NzM) -> u_3(gt(NzN, NzM), NzN, NzM),
             u_3(True(), NzN, NzM) -> gcd(d(NzN, NzM), NzM)
   }
  Fail