Term Rewriting System R:
[X, X1, X2, X3]
aa -> ac
aa -> ad
aa -> a
ab -> ac
ab -> ad
ab -> b
ac -> e
ac -> l
ac -> c
ak -> l
ak -> m
ak -> k
ad -> m
ad -> d
aA -> ah(af(aa), af(ab))
aA -> A
ah(X, X) -> ag(mark(X), mark(X), af(ak))
ah(X1, X2) -> h(X1, X2)
ag(d, X, X) -> aA
ag(X1, X2, X3) -> g(X1, X2, X3)
af(X) -> az(mark(X), X)
af(X) -> f(X)
az(e, X) -> mark(X)
az(X1, X2) -> z(X1, X2)
mark(A) -> aA
mark(a) -> aa
mark(b) -> ab
mark(c) -> ac
mark(d) -> ad
mark(k) -> ak
mark(z(X1, X2)) -> az(mark(X1), X2)
mark(f(X)) -> af(mark(X))
mark(h(X1, X2)) -> ah(mark(X1), mark(X2))
mark(g(X1, X2, X3)) -> ag(mark(X1), mark(X2), mark(X3))
mark(e) -> e
mark(l) -> l
mark(m) -> m

Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

AA -> AC
AA -> AD
AB -> AC
AB -> AD
AA' -> AH(af(aa), af(ab))
AA' -> AF(aa)
AA' -> AA
AA' -> AF(ab)
AA' -> AB
AH(X, X) -> AG(mark(X), mark(X), af(ak))
AH(X, X) -> MARK(X)
AH(X, X) -> AF(ak)
AH(X, X) -> AK
AG(d, X, X) -> AA'
AF(X) -> AZ(mark(X), X)
AF(X) -> MARK(X)
AZ(e, X) -> MARK(X)
MARK(A) -> AA'
MARK(a) -> AA
MARK(b) -> AB
MARK(c) -> AC
MARK(d) -> AD
MARK(k) -> AK
MARK(z(X1, X2)) -> AZ(mark(X1), X2)
MARK(z(X1, X2)) -> MARK(X1)
MARK(f(X)) -> AF(mark(X))
MARK(f(X)) -> MARK(X)
MARK(h(X1, X2)) -> AH(mark(X1), mark(X2))
MARK(h(X1, X2)) -> MARK(X1)
MARK(h(X1, X2)) -> MARK(X2)
MARK(g(X1, X2, X3)) -> AG(mark(X1), mark(X2), mark(X3))
MARK(g(X1, X2, X3)) -> MARK(X1)
MARK(g(X1, X2, X3)) -> MARK(X2)
MARK(g(X1, X2, X3)) -> MARK(X3)

Furthermore, R contains one SCC.


   R
DPs
       →DP Problem 1
Narrowing Transformation


Dependency Pairs:

AH(X, X) -> AF(ak)
MARK(g(X1, X2, X3)) -> MARK(X3)
MARK(g(X1, X2, X3)) -> MARK(X2)
MARK(g(X1, X2, X3)) -> MARK(X1)
MARK(g(X1, X2, X3)) -> AG(mark(X1), mark(X2), mark(X3))
MARK(h(X1, X2)) -> MARK(X2)
MARK(h(X1, X2)) -> MARK(X1)
AH(X, X) -> MARK(X)
MARK(h(X1, X2)) -> AH(mark(X1), mark(X2))
MARK(f(X)) -> MARK(X)
MARK(f(X)) -> AF(mark(X))
MARK(z(X1, X2)) -> MARK(X1)
MARK(z(X1, X2)) -> AZ(mark(X1), X2)
AF(X) -> MARK(X)
AA' -> AF(ab)
MARK(A) -> AA'
AZ(e, X) -> MARK(X)
AF(X) -> AZ(mark(X), X)
AA' -> AF(aa)
AG(d, X, X) -> AA'
AH(X, X) -> AG(mark(X), mark(X), af(ak))
AA' -> AH(af(aa), af(ab))


Rules:


aa -> ac
aa -> ad
aa -> a
ab -> ac
ab -> ad
ab -> b
ac -> e
ac -> l
ac -> c
ak -> l
ak -> m
ak -> k
ad -> m
ad -> d
aA -> ah(af(aa), af(ab))
aA -> A
ah(X, X) -> ag(mark(X), mark(X), af(ak))
ah(X1, X2) -> h(X1, X2)
ag(d, X, X) -> aA
ag(X1, X2, X3) -> g(X1, X2, X3)
af(X) -> az(mark(X), X)
af(X) -> f(X)
az(e, X) -> mark(X)
az(X1, X2) -> z(X1, X2)
mark(A) -> aA
mark(a) -> aa
mark(b) -> ab
mark(c) -> ac
mark(d) -> ad
mark(k) -> ak
mark(z(X1, X2)) -> az(mark(X1), X2)
mark(f(X)) -> af(mark(X))
mark(h(X1, X2)) -> ah(mark(X1), mark(X2))
mark(g(X1, X2, X3)) -> ag(mark(X1), mark(X2), mark(X3))
mark(e) -> e
mark(l) -> l
mark(m) -> m





On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

AA' -> AH(af(aa), af(ab))
10 new Dependency Pairs are created:

AA' -> AH(az(mark(aa), aa), af(ab))
AA' -> AH(f(aa), af(ab))
AA' -> AH(af(ac), af(ab))
AA' -> AH(af(ad), af(ab))
AA' -> AH(af(a), af(ab))
AA' -> AH(af(aa), az(mark(ab), ab))
AA' -> AH(af(aa), f(ab))
AA' -> AH(af(aa), af(ac))
AA' -> AH(af(aa), af(ad))
AA' -> AH(af(aa), af(b))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Nar
           →DP Problem 2
Narrowing Transformation


Dependency Pairs:

AA' -> AH(af(aa), af(b))
AA' -> AH(af(aa), af(ad))
AA' -> AH(af(aa), af(ac))
AA' -> AH(af(aa), f(ab))
AA' -> AH(af(aa), az(mark(ab), ab))
AA' -> AH(af(a), af(ab))
AA' -> AH(af(ad), af(ab))
AA' -> AH(af(ac), af(ab))
AA' -> AH(f(aa), af(ab))
MARK(g(X1, X2, X3)) -> MARK(X3)
MARK(g(X1, X2, X3)) -> MARK(X2)
MARK(g(X1, X2, X3)) -> MARK(X1)
MARK(g(X1, X2, X3)) -> AG(mark(X1), mark(X2), mark(X3))
MARK(h(X1, X2)) -> MARK(X2)
MARK(h(X1, X2)) -> MARK(X1)
AH(X, X) -> MARK(X)
AA' -> AH(az(mark(aa), aa), af(ab))
AA' -> AF(ab)
AG(d, X, X) -> AA'
AH(X, X) -> AG(mark(X), mark(X), af(ak))
MARK(h(X1, X2)) -> AH(mark(X1), mark(X2))
MARK(f(X)) -> MARK(X)
MARK(f(X)) -> AF(mark(X))
MARK(z(X1, X2)) -> MARK(X1)
MARK(z(X1, X2)) -> AZ(mark(X1), X2)
AF(X) -> MARK(X)
AA' -> AF(aa)
MARK(A) -> AA'
AZ(e, X) -> MARK(X)
AF(X) -> AZ(mark(X), X)
AH(X, X) -> AF(ak)


Rules:


aa -> ac
aa -> ad
aa -> a
ab -> ac
ab -> ad
ab -> b
ac -> e
ac -> l
ac -> c
ak -> l
ak -> m
ak -> k
ad -> m
ad -> d
aA -> ah(af(aa), af(ab))
aA -> A
ah(X, X) -> ag(mark(X), mark(X), af(ak))
ah(X1, X2) -> h(X1, X2)
ag(d, X, X) -> aA
ag(X1, X2, X3) -> g(X1, X2, X3)
af(X) -> az(mark(X), X)
af(X) -> f(X)
az(e, X) -> mark(X)
az(X1, X2) -> z(X1, X2)
mark(A) -> aA
mark(a) -> aa
mark(b) -> ab
mark(c) -> ac
mark(d) -> ad
mark(k) -> ak
mark(z(X1, X2)) -> az(mark(X1), X2)
mark(f(X)) -> af(mark(X))
mark(h(X1, X2)) -> ah(mark(X1), mark(X2))
mark(g(X1, X2, X3)) -> ag(mark(X1), mark(X2), mark(X3))
mark(e) -> e
mark(l) -> l
mark(m) -> m





On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

MARK(z(X1, X2)) -> AZ(mark(X1), X2)
13 new Dependency Pairs are created:

MARK(z(A, X2)) -> AZ(aA, X2)
MARK(z(a, X2)) -> AZ(aa, X2)
MARK(z(b, X2)) -> AZ(ab, X2)
MARK(z(c, X2)) -> AZ(ac, X2)
MARK(z(d, X2)) -> AZ(ad, X2)
MARK(z(k, X2)) -> AZ(ak, X2)
MARK(z(z(X1'', X2''), X2)) -> AZ(az(mark(X1''), X2''), X2)
MARK(z(f(X'), X2)) -> AZ(af(mark(X')), X2)
MARK(z(h(X1'', X2''), X2)) -> AZ(ah(mark(X1''), mark(X2'')), X2)
MARK(z(g(X1'', X2'', X3'), X2)) -> AZ(ag(mark(X1''), mark(X2''), mark(X3')), X2)
MARK(z(e, X2)) -> AZ(e, X2)
MARK(z(l, X2)) -> AZ(l, X2)
MARK(z(m, X2)) -> AZ(m, X2)

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Nar
           →DP Problem 2
Nar
             ...
               →DP Problem 3
Narrowing Transformation


Dependency Pairs:

AA' -> AH(af(aa), af(ad))
AA' -> AH(af(aa), af(ac))
AA' -> AH(af(aa), f(ab))
AA' -> AH(af(aa), az(mark(ab), ab))
AA' -> AH(af(a), af(ab))
AA' -> AH(af(ad), af(ab))
AA' -> AH(af(ac), af(ab))
AA' -> AH(f(aa), af(ab))
AA' -> AH(az(mark(aa), aa), af(ab))
AH(X, X) -> AF(ak)
MARK(z(e, X2)) -> AZ(e, X2)
MARK(z(g(X1'', X2'', X3'), X2)) -> AZ(ag(mark(X1''), mark(X2''), mark(X3')), X2)
MARK(z(h(X1'', X2''), X2)) -> AZ(ah(mark(X1''), mark(X2'')), X2)
MARK(z(f(X'), X2)) -> AZ(af(mark(X')), X2)
MARK(z(z(X1'', X2''), X2)) -> AZ(az(mark(X1''), X2''), X2)
MARK(z(k, X2)) -> AZ(ak, X2)
MARK(z(d, X2)) -> AZ(ad, X2)
MARK(z(c, X2)) -> AZ(ac, X2)
MARK(z(b, X2)) -> AZ(ab, X2)
MARK(z(a, X2)) -> AZ(aa, X2)
MARK(z(A, X2)) -> AZ(aA, X2)
MARK(g(X1, X2, X3)) -> MARK(X3)
MARK(g(X1, X2, X3)) -> MARK(X2)
MARK(g(X1, X2, X3)) -> MARK(X1)
MARK(g(X1, X2, X3)) -> AG(mark(X1), mark(X2), mark(X3))
MARK(h(X1, X2)) -> MARK(X2)
MARK(h(X1, X2)) -> MARK(X1)
AH(X, X) -> MARK(X)
MARK(h(X1, X2)) -> AH(mark(X1), mark(X2))
MARK(f(X)) -> MARK(X)
MARK(f(X)) -> AF(mark(X))
MARK(z(X1, X2)) -> MARK(X1)
AF(X) -> MARK(X)
AA' -> AF(ab)
MARK(A) -> AA'
AZ(e, X) -> MARK(X)
AF(X) -> AZ(mark(X), X)
AA' -> AF(aa)
AG(d, X, X) -> AA'
AH(X, X) -> AG(mark(X), mark(X), af(ak))
AA' -> AH(af(aa), af(b))


Rules:


aa -> ac
aa -> ad
aa -> a
ab -> ac
ab -> ad
ab -> b
ac -> e
ac -> l
ac -> c
ak -> l
ak -> m
ak -> k
ad -> m
ad -> d
aA -> ah(af(aa), af(ab))
aA -> A
ah(X, X) -> ag(mark(X), mark(X), af(ak))
ah(X1, X2) -> h(X1, X2)
ag(d, X, X) -> aA
ag(X1, X2, X3) -> g(X1, X2, X3)
af(X) -> az(mark(X), X)
af(X) -> f(X)
az(e, X) -> mark(X)
az(X1, X2) -> z(X1, X2)
mark(A) -> aA
mark(a) -> aa
mark(b) -> ab
mark(c) -> ac
mark(d) -> ad
mark(k) -> ak
mark(z(X1, X2)) -> az(mark(X1), X2)
mark(f(X)) -> af(mark(X))
mark(h(X1, X2)) -> ah(mark(X1), mark(X2))
mark(g(X1, X2, X3)) -> ag(mark(X1), mark(X2), mark(X3))
mark(e) -> e
mark(l) -> l
mark(m) -> m





On this DP problem, a Narrowing SCC transformation can be performed.
As a result of transforming the rule

MARK(g(X1, X2, X3)) -> AG(mark(X1), mark(X2), mark(X3))
39 new Dependency Pairs are created:

MARK(g(A, X2, X3)) -> AG(aA, mark(X2), mark(X3))
MARK(g(a, X2, X3)) -> AG(aa, mark(X2), mark(X3))
MARK(g(b, X2, X3)) -> AG(ab, mark(X2), mark(X3))
MARK(g(c, X2, X3)) -> AG(ac, mark(X2), mark(X3))
MARK(g(d, X2, X3)) -> AG(ad, mark(X2), mark(X3))
MARK(g(k, X2, X3)) -> AG(ak, mark(X2), mark(X3))
MARK(g(z(X1'', X2''), X2, X3)) -> AG(az(mark(X1''), X2''), mark(X2), mark(X3))
MARK(g(f(X'), X2, X3)) -> AG(af(mark(X')), mark(X2), mark(X3))
MARK(g(h(X1'', X2''), X2, X3)) -> AG(ah(mark(X1''), mark(X2'')), mark(X2), mark(X3))
MARK(g(g(X1'', X2'', X3''), X2, X3)) -> AG(ag(mark(X1''), mark(X2''), mark(X3'')), mark(X2), mark(X3))
MARK(g(e, X2, X3)) -> AG(e, mark(X2), mark(X3))
MARK(g(l, X2, X3)) -> AG(l, mark(X2), mark(X3))
MARK(g(m, X2, X3)) -> AG(m, mark(X2), mark(X3))
MARK(g(X1, A, X3)) -> AG(mark(X1), aA, mark(X3))
MARK(g(X1, a, X3)) -> AG(mark(X1), aa, mark(X3))
MARK(g(X1, b, X3)) -> AG(mark(X1), ab, mark(X3))
MARK(g(X1, c, X3)) -> AG(mark(X1), ac, mark(X3))
MARK(g(X1, d, X3)) -> AG(mark(X1), ad, mark(X3))
MARK(g(X1, k, X3)) -> AG(mark(X1), ak, mark(X3))
MARK(g(X1, z(X1'', X2''), X3)) -> AG(mark(X1), az(mark(X1''), X2''), mark(X3))
MARK(g(X1, f(X'), X3)) -> AG(mark(X1), af(mark(X')), mark(X3))
MARK(g(X1, h(X1'', X2''), X3)) -> AG(mark(X1), ah(mark(X1''), mark(X2'')), mark(X3))
MARK(g(X1, g(X1'', X2'', X3''), X3)) -> AG(mark(X1), ag(mark(X1''), mark(X2''), mark(X3'')), mark(X3))
MARK(g(X1, e, X3)) -> AG(mark(X1), e, mark(X3))
MARK(g(X1, l, X3)) -> AG(mark(X1), l, mark(X3))
MARK(g(X1, m, X3)) -> AG(mark(X1), m, mark(X3))
MARK(g(X1, X2, A)) -> AG(mark(X1), mark(X2), aA)
MARK(g(X1, X2, a)) -> AG(mark(X1), mark(X2), aa)
MARK(g(X1, X2, b)) -> AG(mark(X1), mark(X2), ab)
MARK(g(X1, X2, c)) -> AG(mark(X1), mark(X2), ac)
MARK(g(X1, X2, d)) -> AG(mark(X1), mark(X2), ad)
MARK(g(X1, X2, k)) -> AG(mark(X1), mark(X2), ak)
MARK(g(X1, X2, z(X1'', X2''))) -> AG(mark(X1), mark(X2), az(mark(X1''), X2''))
MARK(g(X1, X2, f(X'))) -> AG(mark(X1), mark(X2), af(mark(X')))
MARK(g(X1, X2, h(X1'', X2''))) -> AG(mark(X1), mark(X2), ah(mark(X1''), mark(X2'')))
MARK(g(X1, X2, g(X1'', X2'', X3''))) -> AG(mark(X1), mark(X2), ag(mark(X1''), mark(X2''), mark(X3'')))
MARK(g(X1, X2, e)) -> AG(mark(X1), mark(X2), e)
MARK(g(X1, X2, l)) -> AG(mark(X1), mark(X2), l)
MARK(g(X1, X2, m)) -> AG(mark(X1), mark(X2), m)

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Nar
           →DP Problem 2
Nar
             ...
               →DP Problem 4
Polynomial Ordering


Dependency Pairs:

AA' -> AH(af(aa), af(b))
AA' -> AH(af(aa), af(ac))
AA' -> AH(af(aa), f(ab))
AA' -> AH(af(aa), az(mark(ab), ab))
AA' -> AH(af(a), af(ab))
AA' -> AH(af(ad), af(ab))
AA' -> AH(af(ac), af(ab))
AA' -> AH(f(aa), af(ab))
AA' -> AH(az(mark(aa), aa), af(ab))
AH(X, X) -> AF(ak)
MARK(g(X1, X2, m)) -> AG(mark(X1), mark(X2), m)
MARK(g(X1, X2, l)) -> AG(mark(X1), mark(X2), l)
MARK(g(X1, X2, e)) -> AG(mark(X1), mark(X2), e)
MARK(g(X1, X2, g(X1'', X2'', X3''))) -> AG(mark(X1), mark(X2), ag(mark(X1''), mark(X2''), mark(X3'')))
MARK(g(X1, X2, h(X1'', X2''))) -> AG(mark(X1), mark(X2), ah(mark(X1''), mark(X2'')))
MARK(g(X1, X2, f(X'))) -> AG(mark(X1), mark(X2), af(mark(X')))
MARK(g(X1, X2, z(X1'', X2''))) -> AG(mark(X1), mark(X2), az(mark(X1''), X2''))
MARK(g(X1, X2, k)) -> AG(mark(X1), mark(X2), ak)
MARK(g(X1, X2, d)) -> AG(mark(X1), mark(X2), ad)
MARK(g(X1, X2, c)) -> AG(mark(X1), mark(X2), ac)
MARK(g(X1, X2, b)) -> AG(mark(X1), mark(X2), ab)
MARK(g(X1, X2, a)) -> AG(mark(X1), mark(X2), aa)
MARK(g(X1, X2, A)) -> AG(mark(X1), mark(X2), aA)
MARK(g(X1, m, X3)) -> AG(mark(X1), m, mark(X3))
MARK(g(X1, l, X3)) -> AG(mark(X1), l, mark(X3))
MARK(g(X1, e, X3)) -> AG(mark(X1), e, mark(X3))
MARK(g(X1, g(X1'', X2'', X3''), X3)) -> AG(mark(X1), ag(mark(X1''), mark(X2''), mark(X3'')), mark(X3))
MARK(g(X1, h(X1'', X2''), X3)) -> AG(mark(X1), ah(mark(X1''), mark(X2'')), mark(X3))
MARK(g(X1, f(X'), X3)) -> AG(mark(X1), af(mark(X')), mark(X3))
MARK(g(X1, z(X1'', X2''), X3)) -> AG(mark(X1), az(mark(X1''), X2''), mark(X3))
MARK(g(X1, k, X3)) -> AG(mark(X1), ak, mark(X3))
MARK(g(X1, d, X3)) -> AG(mark(X1), ad, mark(X3))
MARK(g(X1, c, X3)) -> AG(mark(X1), ac, mark(X3))
MARK(g(X1, b, X3)) -> AG(mark(X1), ab, mark(X3))
MARK(g(X1, a, X3)) -> AG(mark(X1), aa, mark(X3))
MARK(g(X1, A, X3)) -> AG(mark(X1), aA, mark(X3))
MARK(g(g(X1'', X2'', X3''), X2, X3)) -> AG(ag(mark(X1''), mark(X2''), mark(X3'')), mark(X2), mark(X3))
MARK(g(h(X1'', X2''), X2, X3)) -> AG(ah(mark(X1''), mark(X2'')), mark(X2), mark(X3))
MARK(g(f(X'), X2, X3)) -> AG(af(mark(X')), mark(X2), mark(X3))
MARK(g(z(X1'', X2''), X2, X3)) -> AG(az(mark(X1''), X2''), mark(X2), mark(X3))
MARK(g(k, X2, X3)) -> AG(ak, mark(X2), mark(X3))
MARK(g(d, X2, X3)) -> AG(ad, mark(X2), mark(X3))
MARK(g(c, X2, X3)) -> AG(ac, mark(X2), mark(X3))
MARK(g(b, X2, X3)) -> AG(ab, mark(X2), mark(X3))
MARK(g(a, X2, X3)) -> AG(aa, mark(X2), mark(X3))
MARK(g(A, X2, X3)) -> AG(aA, mark(X2), mark(X3))
MARK(z(e, X2)) -> AZ(e, X2)
MARK(z(g(X1'', X2'', X3'), X2)) -> AZ(ag(mark(X1''), mark(X2''), mark(X3')), X2)
MARK(z(h(X1'', X2''), X2)) -> AZ(ah(mark(X1''), mark(X2'')), X2)
MARK(z(f(X'), X2)) -> AZ(af(mark(X')), X2)
MARK(z(z(X1'', X2''), X2)) -> AZ(az(mark(X1''), X2''), X2)
MARK(z(k, X2)) -> AZ(ak, X2)
MARK(z(d, X2)) -> AZ(ad, X2)
MARK(z(c, X2)) -> AZ(ac, X2)
MARK(z(b, X2)) -> AZ(ab, X2)
MARK(z(a, X2)) -> AZ(aa, X2)
MARK(z(A, X2)) -> AZ(aA, X2)
MARK(g(X1, X2, X3)) -> MARK(X3)
MARK(g(X1, X2, X3)) -> MARK(X2)
MARK(g(X1, X2, X3)) -> MARK(X1)
MARK(h(X1, X2)) -> MARK(X2)
MARK(h(X1, X2)) -> MARK(X1)
AH(X, X) -> MARK(X)
MARK(h(X1, X2)) -> AH(mark(X1), mark(X2))
MARK(f(X)) -> MARK(X)
MARK(f(X)) -> AF(mark(X))
MARK(z(X1, X2)) -> MARK(X1)
AF(X) -> MARK(X)
AA' -> AF(ab)
MARK(A) -> AA'
AZ(e, X) -> MARK(X)
AF(X) -> AZ(mark(X), X)
AA' -> AF(aa)
AG(d, X, X) -> AA'
AH(X, X) -> AG(mark(X), mark(X), af(ak))
AA' -> AH(af(aa), af(ad))


Rules:


aa -> ac
aa -> ad
aa -> a
ab -> ac
ab -> ad
ab -> b
ac -> e
ac -> l
ac -> c
ak -> l
ak -> m
ak -> k
ad -> m
ad -> d
aA -> ah(af(aa), af(ab))
aA -> A
ah(X, X) -> ag(mark(X), mark(X), af(ak))
ah(X1, X2) -> h(X1, X2)
ag(d, X, X) -> aA
ag(X1, X2, X3) -> g(X1, X2, X3)
af(X) -> az(mark(X), X)
af(X) -> f(X)
az(e, X) -> mark(X)
az(X1, X2) -> z(X1, X2)
mark(A) -> aA
mark(a) -> aa
mark(b) -> ab
mark(c) -> ac
mark(d) -> ad
mark(k) -> ak
mark(z(X1, X2)) -> az(mark(X1), X2)
mark(f(X)) -> af(mark(X))
mark(h(X1, X2)) -> ah(mark(X1), mark(X2))
mark(g(X1, X2, X3)) -> ag(mark(X1), mark(X2), mark(X3))
mark(e) -> e
mark(l) -> l
mark(m) -> m





The following dependency pairs can be strictly oriented:

MARK(g(g(X1'', X2'', X3''), X2, X3)) -> AG(ag(mark(X1''), mark(X2''), mark(X3'')), mark(X2), mark(X3))
MARK(g(h(X1'', X2''), X2, X3)) -> AG(ah(mark(X1''), mark(X2'')), mark(X2), mark(X3))
MARK(g(k, X2, X3)) -> AG(ak, mark(X2), mark(X3))
MARK(g(A, X2, X3)) -> AG(aA, mark(X2), mark(X3))
MARK(z(g(X1'', X2'', X3'), X2)) -> AZ(ag(mark(X1''), mark(X2''), mark(X3')), X2)
MARK(z(h(X1'', X2''), X2)) -> AZ(ah(mark(X1''), mark(X2'')), X2)
MARK(z(k, X2)) -> AZ(ak, X2)
MARK(z(A, X2)) -> AZ(aA, X2)


Additionally, the following rules can be oriented:

aa -> ac
aa -> ad
aa -> a
ac -> e
ac -> l
ac -> c
ad -> m
ad -> d
ab -> ac
ab -> ad
ab -> b
ak -> l
ak -> m
ak -> k
aA -> ah(af(aa), af(ab))
aA -> A
ah(X, X) -> ag(mark(X), mark(X), af(ak))
ah(X1, X2) -> h(X1, X2)
af(X) -> az(mark(X), X)
af(X) -> f(X)
ag(d, X, X) -> aA
ag(X1, X2, X3) -> g(X1, X2, X3)
mark(A) -> aA
mark(a) -> aa
mark(b) -> ab
mark(c) -> ac
mark(d) -> ad
mark(k) -> ak
mark(z(X1, X2)) -> az(mark(X1), X2)
mark(f(X)) -> af(mark(X))
mark(h(X1, X2)) -> ah(mark(X1), mark(X2))
mark(g(X1, X2, X3)) -> ag(mark(X1), mark(X2), mark(X3))
mark(e) -> e
mark(l) -> l
mark(m) -> m
az(e, X) -> mark(X)
az(X1, X2) -> z(X1, X2)


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(a__z(x1, x2))=  1  
  POL(mark(x1))=  1  
  POL(f(x1))=  0  
  POL(a__h(x1, x2))=  0  
  POL(c)=  0  
  POL(l)=  0  
  POL(a__k)=  0  
  POL(d)=  1  
  POL(a__b)=  1  
  POL(A__F(x1))=  1  
  POL(A__A')=  1  
  POL(k)=  0  
  POL(a__f(x1))=  1  
  POL(MARK(x1))=  1  
  POL(a__c)=  1  
  POL(e)=  1  
  POL(z(x1, x2))=  0  
  POL(A__H(x1, x2))=  1  
  POL(A__G(x1, x2, x3))=  x1  
  POL(a__A)=  0  
  POL(m)=  0  
  POL(a__g(x1, x2, x3))=  0  
  POL(a__a)=  1  
  POL(a__d)=  1  
  POL(g(x1, x2, x3))=  0  
  POL(b)=  0  
  POL(A__Z(x1, x2))=  x1  
  POL(h(x1, x2))=  0  
  POL(a)=  0  
  POL(A)=  0  

resulting in one new DP problem.



   R
DPs
       →DP Problem 1
Nar
           →DP Problem 2
Nar
             ...
               →DP Problem 5
Polynomial Ordering


Dependency Pairs:

AA' -> AH(af(aa), af(b))
AA' -> AH(af(aa), af(ac))
AA' -> AH(af(aa), f(ab))
AA' -> AH(af(aa), az(mark(ab), ab))
AA' -> AH(af(a), af(ab))
AA' -> AH(af(ad), af(ab))
AA' -> AH(af(ac), af(ab))
AA' -> AH(f(aa), af(ab))
AA' -> AH(az(mark(aa), aa), af(ab))
AH(X, X) -> AF(ak)
MARK(g(X1, X2, m)) -> AG(mark(X1), mark(X2), m)
MARK(g(X1, X2, l)) -> AG(mark(X1), mark(X2), l)
MARK(g(X1, X2, e)) -> AG(mark(X1), mark(X2), e)
MARK(g(X1, X2, g(X1'', X2'', X3''))) -> AG(mark(X1), mark(X2), ag(mark(X1''), mark(X2''), mark(X3'')))
MARK(g(X1, X2, h(X1'', X2''))) -> AG(mark(X1), mark(X2), ah(mark(X1''), mark(X2'')))
MARK(g(X1, X2, f(X'))) -> AG(mark(X1), mark(X2), af(mark(X')))
MARK(g(X1, X2, z(X1'', X2''))) -> AG(mark(X1), mark(X2), az(mark(X1''), X2''))
MARK(g(X1, X2, k)) -> AG(mark(X1), mark(X2), ak)
MARK(g(X1, X2, d)) -> AG(mark(X1), mark(X2), ad)
MARK(g(X1, X2, c)) -> AG(mark(X1), mark(X2), ac)
MARK(g(X1, X2, b)) -> AG(mark(X1), mark(X2), ab)
MARK(g(X1, X2, a)) -> AG(mark(X1), mark(X2), aa)
MARK(g(X1, X2, A)) -> AG(mark(X1), mark(X2), aA)
MARK(g(X1, m, X3)) -> AG(mark(X1), m, mark(X3))
MARK(g(X1, l, X3)) -> AG(mark(X1), l, mark(X3))
MARK(g(X1, e, X3)) -> AG(mark(X1), e, mark(X3))
MARK(g(X1, g(X1'', X2'', X3''), X3)) -> AG(mark(X1), ag(mark(X1''), mark(X2''), mark(X3'')), mark(X3))
MARK(g(X1, h(X1'', X2''), X3)) -> AG(mark(X1), ah(mark(X1''), mark(X2'')), mark(X3))
MARK(g(X1, f(X'), X3)) -> AG(mark(X1), af(mark(X')), mark(X3))
MARK(g(X1, z(X1'', X2''), X3)) -> AG(mark(X1), az(mark(X1''), X2''), mark(X3))
MARK(g(X1, k, X3)) -> AG(mark(X1), ak, mark(X3))
MARK(g(X1, d, X3)) -> AG(mark(X1), ad, mark(X3))
MARK(g(X1, c, X3)) -> AG(mark(X1), ac, mark(X3))
MARK(g(X1, b, X3)) -> AG(mark(X1), ab, mark(X3))
MARK(g(X1, a, X3)) -> AG(mark(X1), aa, mark(X3))
MARK(g(X1, A, X3)) -> AG(mark(X1), aA, mark(X3))
MARK(g(f(X'), X2, X3)) -> AG(af(mark(X')), mark(X2), mark(X3))
MARK(g(z(X1'', X2''), X2, X3)) -> AG(az(mark(X1''), X2''), mark(X2), mark(X3))
MARK(g(d, X2, X3)) -> AG(ad, mark(X2), mark(X3))
MARK(g(c, X2, X3)) -> AG(ac, mark(X2), mark(X3))
MARK(g(b, X2, X3)) -> AG(ab, mark(X2), mark(X3))
MARK(g(a, X2, X3)) -> AG(aa, mark(X2), mark(X3))
MARK(z(e, X2)) -> AZ(e, X2)
MARK(z(f(X'), X2)) -> AZ(af(mark(X')), X2)
MARK(z(z(X1'', X2''), X2)) -> AZ(az(mark(X1''), X2''), X2)
MARK(z(d, X2)) -> AZ(ad, X2)
MARK(z(c, X2)) -> AZ(ac, X2)
MARK(z(b, X2)) -> AZ(ab, X2)
MARK(z(a, X2)) -> AZ(aa, X2)
MARK(g(X1, X2, X3)) -> MARK(X3)
MARK(g(X1, X2, X3)) -> MARK(X2)
MARK(g(X1, X2, X3)) -> MARK(X1)
MARK(h(X1, X2)) -> MARK(X2)
MARK(h(X1, X2)) -> MARK(X1)
AH(X, X) -> MARK(X)
MARK(h(X1, X2)) -> AH(mark(X1), mark(X2))
MARK(f(X)) -> MARK(X)
MARK(f(X)) -> AF(mark(X))
MARK(z(X1, X2)) -> MARK(X1)
AF(X) -> MARK(X)
AA' -> AF(ab)
MARK(A) -> AA'
AZ(e, X) -> MARK(X)
AF(X) -> AZ(mark(X), X)
AA' -> AF(aa)
AG(d, X, X) -> AA'
AH(X, X) -> AG(mark(X), mark(X), af(ak))
AA' -> AH(af(aa), af(ad))


Rules:


aa -> ac
aa -> ad
aa -> a
ab -> ac
ab -> ad
ab -> b
ac -> e
ac -> l
ac -> c
ak -> l
ak -> m
ak -> k
ad -> m
ad -> d
aA -> ah(af(aa), af(ab))
aA -> A
ah(X, X) -> ag(mark(X), mark(X), af(ak))
ah(X1, X2) -> h(X1, X2)
ag(d, X, X) -> aA
ag(X1, X2, X3) -> g(X1, X2, X3)
af(X) -> az(mark(X), X)
af(X) -> f(X)
az(e, X) -> mark(X)
az(X1, X2) -> z(X1, X2)
mark(A) -> aA
mark(a) -> aa
mark(b) -> ab
mark(c) -> ac
mark(d) -> ad
mark(k) -> ak
mark(z(X1, X2)) -> az(mark(X1), X2)
mark(f(X)) -> af(mark(X))
mark(h(X1, X2)) -> ah(mark(X1), mark(X2))
mark(g(X1, X2, X3)) -> ag(mark(X1), mark(X2), mark(X3))
mark(e) -> e
mark(l) -> l
mark(m) -> m





The following dependency pair can be strictly oriented:

MARK(g(c, X2, X3)) -> AG(ac, mark(X2), mark(X3))


Additionally, the following rules can be oriented:

aa -> ac
aa -> ad
aa -> a
ac -> e
ac -> l
ac -> c
ad -> m
ad -> d
ab -> ac
ab -> ad
ab -> b
ak -> l
ak -> m
ak -> k
aA -> ah(af(aa), af(ab))
aA -> A
ah(X, X) -> ag(mark(X), mark(X), af(ak))
ah(X1, X2) -> h(X1, X2)
af(X) -> az(mark(X), X)
af(X) -> f(X)
ag(d, X, X) -> aA
ag(X1, X2, X3) -> g(X1, X2, X3)
mark(A) -> aA
mark(a) -> aa
mark(b) -> ab
mark(c) -> ac
mark(d) -> ad
mark(k) -> ak
mark(z(X1, X2)) -> az(mark(X1), X2)
mark(f(X)) -> af(mark(X))
mark(h(X1, X2)) -> ah(mark(X1), mark(X2))
mark(g(X1, X2, X3)) -> ag(mark(X1), mark(X2), mark(X3))
mark(e) -> e
mark(l) -> l
mark(m) -> m
az(e, X) -> mark(X)
az(X1, X2) -> z(X1, X2)


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(a__z(x1, x2))=  1  
  POL(mark(x1))=  1  
  POL(f(x1))=  0  
  POL(a__h(x1, x2))=  0  
  POL(c)=  0  
  POL(l)=  0  
  POL(a__k)=  0  
  POL(d)=  1  
  POL(a__b)=  1  
  POL(A__F(x1))=  1  
  POL(A__A')=  1  
  POL(k)=  0  
  POL(a__f(x1))=  1  
  POL(MARK(x1))=  1  
  POL(a__c)=  0  
  POL(e)=  0  
  POL(z(x1, x2))=  0  
  POL(A__H(x1, x2))=  1  
  POL(A__G(x1, x2, x3))=  x1  
  POL(a__A)=  0  
  POL(m)=  0  
  POL(a__g(x1, x2, x3))=  0  
  POL(a__a)=  1  
  POL(a__d)=  1  
  POL(g(x1, x2, x3))=  0  
  POL(b)=  0  
  POL(A__Z(x1, x2))=  1  
  POL(h(x1, x2))=  0  
  POL(a)=  0  
  POL(A)=  0  

resulting in one new DP problem.



   R
DPs
       →DP Problem 1
Nar
           →DP Problem 2
Nar
             ...
               →DP Problem 6
Polynomial Ordering


Dependency Pairs:

AA' -> AH(af(aa), af(b))
AA' -> AH(af(aa), af(ac))
AA' -> AH(af(aa), f(ab))
AA' -> AH(af(aa), az(mark(ab), ab))
AA' -> AH(af(a), af(ab))
AA' -> AH(af(ad), af(ab))
AA' -> AH(af(ac), af(ab))
AA' -> AH(f(aa), af(ab))
AA' -> AH(az(mark(aa), aa), af(ab))
AH(X, X) -> AF(ak)
MARK(g(X1, X2, m)) -> AG(mark(X1), mark(X2), m)
MARK(g(X1, X2, l)) -> AG(mark(X1), mark(X2), l)
MARK(g(X1, X2, e)) -> AG(mark(X1), mark(X2), e)
MARK(g(X1, X2, g(X1'', X2'', X3''))) -> AG(mark(X1), mark(X2), ag(mark(X1''), mark(X2''), mark(X3'')))
MARK(g(X1, X2, h(X1'', X2''))) -> AG(mark(X1), mark(X2), ah(mark(X1''), mark(X2'')))
MARK(g(X1, X2, f(X'))) -> AG(mark(X1), mark(X2), af(mark(X')))
MARK(g(X1, X2, z(X1'', X2''))) -> AG(mark(X1), mark(X2), az(mark(X1''), X2''))
MARK(g(X1, X2, k)) -> AG(mark(X1), mark(X2), ak)
MARK(g(X1, X2, d)) -> AG(mark(X1), mark(X2), ad)
MARK(g(X1, X2, c)) -> AG(mark(X1), mark(X2), ac)
MARK(g(X1, X2, b)) -> AG(mark(X1), mark(X2), ab)
MARK(g(X1, X2, a)) -> AG(mark(X1), mark(X2), aa)
MARK(g(X1, X2, A)) -> AG(mark(X1), mark(X2), aA)
MARK(g(X1, m, X3)) -> AG(mark(X1), m, mark(X3))
MARK(g(X1, l, X3)) -> AG(mark(X1), l, mark(X3))
MARK(g(X1, e, X3)) -> AG(mark(X1), e, mark(X3))
MARK(g(X1, g(X1'', X2'', X3''), X3)) -> AG(mark(X1), ag(mark(X1''), mark(X2''), mark(X3'')), mark(X3))
MARK(g(X1, h(X1'', X2''), X3)) -> AG(mark(X1), ah(mark(X1''), mark(X2'')), mark(X3))
MARK(g(X1, f(X'), X3)) -> AG(mark(X1), af(mark(X')), mark(X3))
MARK(g(X1, z(X1'', X2''), X3)) -> AG(mark(X1), az(mark(X1''), X2''), mark(X3))
MARK(g(X1, k, X3)) -> AG(mark(X1), ak, mark(X3))
MARK(g(X1, d, X3)) -> AG(mark(X1), ad, mark(X3))
MARK(g(X1, c, X3)) -> AG(mark(X1), ac, mark(X3))
MARK(g(X1, b, X3)) -> AG(mark(X1), ab, mark(X3))
MARK(g(X1, a, X3)) -> AG(mark(X1), aa, mark(X3))
MARK(g(X1, A, X3)) -> AG(mark(X1), aA, mark(X3))
MARK(g(f(X'), X2, X3)) -> AG(af(mark(X')), mark(X2), mark(X3))
MARK(g(z(X1'', X2''), X2, X3)) -> AG(az(mark(X1''), X2''), mark(X2), mark(X3))
MARK(g(d, X2, X3)) -> AG(ad, mark(X2), mark(X3))
MARK(g(b, X2, X3)) -> AG(ab, mark(X2), mark(X3))
MARK(g(a, X2, X3)) -> AG(aa, mark(X2), mark(X3))
MARK(z(e, X2)) -> AZ(e, X2)
MARK(z(f(X'), X2)) -> AZ(af(mark(X')), X2)
MARK(z(z(X1'', X2''), X2)) -> AZ(az(mark(X1''), X2''), X2)
MARK(z(d, X2)) -> AZ(ad, X2)
MARK(z(c, X2)) -> AZ(ac, X2)
MARK(z(b, X2)) -> AZ(ab, X2)
MARK(z(a, X2)) -> AZ(aa, X2)
MARK(g(X1, X2, X3)) -> MARK(X3)
MARK(g(X1, X2, X3)) -> MARK(X2)
MARK(g(X1, X2, X3)) -> MARK(X1)
MARK(h(X1, X2)) -> MARK(X2)
MARK(h(X1, X2)) -> MARK(X1)
AH(X, X) -> MARK(X)
MARK(h(X1, X2)) -> AH(mark(X1), mark(X2))
MARK(f(X)) -> MARK(X)
MARK(f(X)) -> AF(mark(X))
MARK(z(X1, X2)) -> MARK(X1)
AF(X) -> MARK(X)
AA' -> AF(ab)
MARK(A) -> AA'
AZ(e, X) -> MARK(X)
AF(X) -> AZ(mark(X), X)
AA' -> AF(aa)
AG(d, X, X) -> AA'
AH(X, X) -> AG(mark(X), mark(X), af(ak))
AA' -> AH(af(aa), af(ad))


Rules:


aa -> ac
aa -> ad
aa -> a
ab -> ac
ab -> ad
ab -> b
ac -> e
ac -> l
ac -> c
ak -> l
ak -> m
ak -> k
ad -> m
ad -> d
aA -> ah(af(aa), af(ab))
aA -> A
ah(X, X) -> ag(mark(X), mark(X), af(ak))
ah(X1, X2) -> h(X1, X2)
ag(d, X, X) -> aA
ag(X1, X2, X3) -> g(X1, X2, X3)
af(X) -> az(mark(X), X)
af(X) -> f(X)
az(e, X) -> mark(X)
az(X1, X2) -> z(X1, X2)
mark(A) -> aA
mark(a) -> aa
mark(b) -> ab
mark(c) -> ac
mark(d) -> ad
mark(k) -> ak
mark(z(X1, X2)) -> az(mark(X1), X2)
mark(f(X)) -> af(mark(X))
mark(h(X1, X2)) -> ah(mark(X1), mark(X2))
mark(g(X1, X2, X3)) -> ag(mark(X1), mark(X2), mark(X3))
mark(e) -> e
mark(l) -> l
mark(m) -> m





The following dependency pair can be strictly oriented:

MARK(z(d, X2)) -> AZ(ad, X2)


Additionally, the following rules can be oriented:

aa -> ac
aa -> ad
aa -> a
ac -> e
ac -> l
ac -> c
ad -> m
ad -> d
ab -> ac
ab -> ad
ab -> b
ak -> l
ak -> m
ak -> k
aA -> ah(af(aa), af(ab))
aA -> A
ah(X, X) -> ag(mark(X), mark(X), af(ak))
ah(X1, X2) -> h(X1, X2)
af(X) -> az(mark(X), X)
af(X) -> f(X)
ag(d, X, X) -> aA
ag(X1, X2, X3) -> g(X1, X2, X3)
mark(A) -> aA
mark(a) -> aa
mark(b) -> ab
mark(c) -> ac
mark(d) -> ad
mark(k) -> ak
mark(z(X1, X2)) -> az(mark(X1), X2)
mark(f(X)) -> af(mark(X))
mark(h(X1, X2)) -> ah(mark(X1), mark(X2))
mark(g(X1, X2, X3)) -> ag(mark(X1), mark(X2), mark(X3))
mark(e) -> e
mark(l) -> l
mark(m) -> m
az(e, X) -> mark(X)
az(X1, X2) -> z(X1, X2)


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(a__z(x1, x2))=  1  
  POL(mark(x1))=  1  
  POL(f(x1))=  0  
  POL(a__h(x1, x2))=  0  
  POL(c)=  0  
  POL(l)=  0  
  POL(a__k)=  0  
  POL(d)=  0  
  POL(a__b)=  1  
  POL(A__F(x1))=  1  
  POL(A__A')=  1  
  POL(k)=  0  
  POL(a__f(x1))=  1  
  POL(MARK(x1))=  1  
  POL(a__c)=  1  
  POL(e)=  1  
  POL(z(x1, x2))=  0  
  POL(A__H(x1, x2))=  1  
  POL(A__G(x1, x2, x3))=  1  
  POL(a__A)=  0  
  POL(m)=  0  
  POL(a__g(x1, x2, x3))=  0  
  POL(a__a)=  1  
  POL(a__d)=  0  
  POL(g(x1, x2, x3))=  0  
  POL(b)=  0  
  POL(A__Z(x1, x2))=  x1  
  POL(h(x1, x2))=  0  
  POL(a)=  0  
  POL(A)=  0  

resulting in one new DP problem.



   R
DPs
       →DP Problem 1
Nar
           →DP Problem 2
Nar
             ...
               →DP Problem 7
Remaining Obligation(s)




The following remains to be proven:
Dependency Pairs:

AA' -> AH(af(aa), af(b))
AA' -> AH(af(aa), af(ac))
AA' -> AH(af(aa), f(ab))
AA' -> AH(af(aa), az(mark(ab), ab))
AA' -> AH(af(a), af(ab))
AA' -> AH(af(ad), af(ab))
AA' -> AH(af(ac), af(ab))
AA' -> AH(f(aa), af(ab))
AA' -> AH(az(mark(aa), aa), af(ab))
AH(X, X) -> AF(ak)
MARK(g(X1, X2, m)) -> AG(mark(X1), mark(X2), m)
MARK(g(X1, X2, l)) -> AG(mark(X1), mark(X2), l)
MARK(g(X1, X2, e)) -> AG(mark(X1), mark(X2), e)
MARK(g(X1, X2, g(X1'', X2'', X3''))) -> AG(mark(X1), mark(X2), ag(mark(X1''), mark(X2''), mark(X3'')))
MARK(g(X1, X2, h(X1'', X2''))) -> AG(mark(X1), mark(X2), ah(mark(X1''), mark(X2'')))
MARK(g(X1, X2, f(X'))) -> AG(mark(X1), mark(X2), af(mark(X')))
MARK(g(X1, X2, z(X1'', X2''))) -> AG(mark(X1), mark(X2), az(mark(X1''), X2''))
MARK(g(X1, X2, k)) -> AG(mark(X1), mark(X2), ak)
MARK(g(X1, X2, d)) -> AG(mark(X1), mark(X2), ad)
MARK(g(X1, X2, c)) -> AG(mark(X1), mark(X2), ac)
MARK(g(X1, X2, b)) -> AG(mark(X1), mark(X2), ab)
MARK(g(X1, X2, a)) -> AG(mark(X1), mark(X2), aa)
MARK(g(X1, X2, A)) -> AG(mark(X1), mark(X2), aA)
MARK(g(X1, m, X3)) -> AG(mark(X1), m, mark(X3))
MARK(g(X1, l, X3)) -> AG(mark(X1), l, mark(X3))
MARK(g(X1, e, X3)) -> AG(mark(X1), e, mark(X3))
MARK(g(X1, g(X1'', X2'', X3''), X3)) -> AG(mark(X1), ag(mark(X1''), mark(X2''), mark(X3'')), mark(X3))
MARK(g(X1, h(X1'', X2''), X3)) -> AG(mark(X1), ah(mark(X1''), mark(X2'')), mark(X3))
MARK(g(X1, f(X'), X3)) -> AG(mark(X1), af(mark(X')), mark(X3))
MARK(g(X1, z(X1'', X2''), X3)) -> AG(mark(X1), az(mark(X1''), X2''), mark(X3))
MARK(g(X1, k, X3)) -> AG(mark(X1), ak, mark(X3))
MARK(g(X1, d, X3)) -> AG(mark(X1), ad, mark(X3))
MARK(g(X1, c, X3)) -> AG(mark(X1), ac, mark(X3))
MARK(g(X1, b, X3)) -> AG(mark(X1), ab, mark(X3))
MARK(g(X1, a, X3)) -> AG(mark(X1), aa, mark(X3))
MARK(g(X1, A, X3)) -> AG(mark(X1), aA, mark(X3))
MARK(g(f(X'), X2, X3)) -> AG(af(mark(X')), mark(X2), mark(X3))
MARK(g(z(X1'', X2''), X2, X3)) -> AG(az(mark(X1''), X2''), mark(X2), mark(X3))
MARK(g(d, X2, X3)) -> AG(ad, mark(X2), mark(X3))
MARK(g(b, X2, X3)) -> AG(ab, mark(X2), mark(X3))
MARK(g(a, X2, X3)) -> AG(aa, mark(X2), mark(X3))
MARK(z(e, X2)) -> AZ(e, X2)
MARK(z(f(X'), X2)) -> AZ(af(mark(X')), X2)
MARK(z(z(X1'', X2''), X2)) -> AZ(az(mark(X1''), X2''), X2)
MARK(z(c, X2)) -> AZ(ac, X2)
MARK(z(b, X2)) -> AZ(ab, X2)
MARK(z(a, X2)) -> AZ(aa, X2)
MARK(g(X1, X2, X3)) -> MARK(X3)
MARK(g(X1, X2, X3)) -> MARK(X2)
MARK(g(X1, X2, X3)) -> MARK(X1)
MARK(h(X1, X2)) -> MARK(X2)
MARK(h(X1, X2)) -> MARK(X1)
AH(X, X) -> MARK(X)
MARK(h(X1, X2)) -> AH(mark(X1), mark(X2))
MARK(f(X)) -> MARK(X)
MARK(f(X)) -> AF(mark(X))
MARK(z(X1, X2)) -> MARK(X1)
AF(X) -> MARK(X)
AA' -> AF(ab)
MARK(A) -> AA'
AZ(e, X) -> MARK(X)
AF(X) -> AZ(mark(X), X)
AA' -> AF(aa)
AG(d, X, X) -> AA'
AH(X, X) -> AG(mark(X), mark(X), af(ak))
AA' -> AH(af(aa), af(ad))


Rules:


aa -> ac
aa -> ad
aa -> a
ab -> ac
ab -> ad
ab -> b
ac -> e
ac -> l
ac -> c
ak -> l
ak -> m
ak -> k
ad -> m
ad -> d
aA -> ah(af(aa), af(ab))
aA -> A
ah(X, X) -> ag(mark(X), mark(X), af(ak))
ah(X1, X2) -> h(X1, X2)
ag(d, X, X) -> aA
ag(X1, X2, X3) -> g(X1, X2, X3)
af(X) -> az(mark(X), X)
af(X) -> f(X)
az(e, X) -> mark(X)
az(X1, X2) -> z(X1, X2)
mark(A) -> aA
mark(a) -> aa
mark(b) -> ab
mark(c) -> ac
mark(d) -> ad
mark(k) -> ak
mark(z(X1, X2)) -> az(mark(X1), X2)
mark(f(X)) -> af(mark(X))
mark(h(X1, X2)) -> ah(mark(X1), mark(X2))
mark(g(X1, X2, X3)) -> ag(mark(X1), mark(X2), mark(X3))
mark(e) -> e
mark(l) -> l
mark(m) -> m




Termination of R could not be shown.
Duration:
0:44 minutes