(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)

Q is empty.

(1) QTRS Reverse (EQUIVALENT transformation)

We applied the QTRS Reverse Processor [REVERSE].

(2) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

a'(f(f(active(x)))) → a'(f(g(f(mark(x)))))
f(mark(x)) → mark(f(active(x)))
a'(mark(x)) → a'(active(x))
g(mark(x)) → g(active(x))
mark(f(x)) → f(x)
active(f(x)) → f(x)
mark(g(x)) → g(x)
active(g(x)) → g(x)

Q is empty.

(3) QTRS Reverse (EQUIVALENT transformation)

We applied the QTRS Reverse Processor [REVERSE].

(4) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

a'(f(f(active(x)))) → a'(f(g(f(mark(x)))))
f(mark(x)) → mark(f(active(x)))
a'(mark(x)) → a'(active(x))
g(mark(x)) → g(active(x))
mark(f(x)) → f(x)
active(f(x)) → f(x)
mark(g(x)) → g(x)
active(g(x)) → g(x)

Q is empty.

(5) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

(6) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(f(f(a))) → MARK(f(g(f(a))))
ACTIVE(f(f(a))) → F(g(f(a)))
ACTIVE(f(f(a))) → G(f(a))
MARK(f(X)) → ACTIVE(f(mark(X)))
MARK(f(X)) → F(mark(X))
MARK(f(X)) → MARK(X)
MARK(a) → ACTIVE(a)
MARK(g(X)) → ACTIVE(g(X))
F(mark(X)) → F(X)
F(active(X)) → F(X)
G(mark(X)) → G(X)
G(active(X)) → G(X)

The TRS R consists of the following rules:

active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 4 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

Q DP problem:
The TRS P consists of the following rules:

G(active(X)) → G(X)
G(mark(X)) → G(X)

The TRS R consists of the following rules:

active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(10) UsableRulesProof (EQUIVALENT transformation)

We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.

(11) Obligation:

Q DP problem:
The TRS P consists of the following rules:

G(active(X)) → G(X)
G(mark(X)) → G(X)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(12) UsableRulesReductionPairsProof (EQUIVALENT transformation)

By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

The following dependency pairs can be deleted:

G(active(X)) → G(X)
G(mark(X)) → G(X)
No rules are removed from R.

Used ordering: POLO with Polynomial interpretation [POLO]:

POL(G(x1)) = 2·x1   
POL(active(x1)) = 2·x1   
POL(mark(x1)) = 2·x1   

(13) Obligation:

Q DP problem:
P is empty.
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(14) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(15) TRUE

(16) UsableRulesProof (EQUIVALENT transformation)

We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.

(17) Obligation:

Q DP problem:
The TRS P consists of the following rules:

G(active(X)) → G(X)
G(mark(X)) → G(X)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

F(active(X)) → F(X)
F(mark(X)) → F(X)

The TRS R consists of the following rules:

active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(19) UsableRulesProof (EQUIVALENT transformation)

We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

F(active(X)) → F(X)
F(mark(X)) → F(X)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(21) UsableRulesReductionPairsProof (EQUIVALENT transformation)

By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

The following dependency pairs can be deleted:

F(active(X)) → F(X)
F(mark(X)) → F(X)
No rules are removed from R.

Used ordering: POLO with Polynomial interpretation [POLO]:

POL(F(x1)) = 2·x1   
POL(active(x1)) = 2·x1   
POL(mark(x1)) = 2·x1   

(22) Obligation:

Q DP problem:
P is empty.
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(23) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(24) TRUE

(25) UsableRulesProof (EQUIVALENT transformation)

We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.

(26) Obligation:

Q DP problem:
The TRS P consists of the following rules:

F(active(X)) → F(X)
F(mark(X)) → F(X)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(27) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MARK(f(X)) → ACTIVE(f(mark(X)))
ACTIVE(f(f(a))) → MARK(f(g(f(a))))
MARK(f(X)) → MARK(X)
MARK(g(X)) → ACTIVE(g(X))

The TRS R consists of the following rules:

active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(28) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

MARK(f(X)) → MARK(X)


Used ordering: Polynomial interpretation [POLO]:

POL(ACTIVE(x1)) = x1   
POL(MARK(x1)) = x1   
POL(a) = 0   
POL(active(x1)) = x1   
POL(f(x1)) = 1 + x1   
POL(g(x1)) = x1   
POL(mark(x1)) = x1   

(29) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MARK(f(X)) → ACTIVE(f(mark(X)))
ACTIVE(f(f(a))) → MARK(f(g(f(a))))
MARK(g(X)) → ACTIVE(g(X))

The TRS R consists of the following rules:

active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(30) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(31) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(f(f(a))) → MARK(f(g(f(a))))
MARK(f(X)) → ACTIVE(f(mark(X)))

The TRS R consists of the following rules:

active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(32) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule MARK(f(X)) → ACTIVE(f(mark(X))) we obtained the following new rules [LPAR04]:

MARK(f(g(f(a)))) → ACTIVE(f(mark(g(f(a)))))

(33) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(f(f(a))) → MARK(f(g(f(a))))
MARK(f(g(f(a)))) → ACTIVE(f(mark(g(f(a)))))

The TRS R consists of the following rules:

active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(34) RFCMatchBoundsDPProof (EQUIVALENT transformation)

Finiteness of the DP problem can be shown by a matchbound of 2.
As the DP problem is minimal we only have to initialize the certificate graph by the rules of P:

ACTIVE(f(f(a))) → MARK(f(g(f(a))))
MARK(f(g(f(a)))) → ACTIVE(f(mark(g(f(a)))))

To find matches we regarded all rules of R and P:

active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
ACTIVE(f(f(a))) → MARK(f(g(f(a))))
MARK(f(g(f(a)))) → ACTIVE(f(mark(g(f(a)))))

The certificate found is represented by the following graph.

The certificate consists of the following enumerated nodes:

1946978, 1946979, 1946982, 1946983, 1946980, 1946981, 1946984, 1946986, 1946987, 1946985, 1946988, 1946989, 1946990, 1946991, 1946994, 1946992, 1946993, 1946995

Node 1946978 is start node and node 1946979 is final node.

Those nodes are connect through the following edges:

  • 1946978 to 1946980 labelled MARK_1(0)
  • 1946978 to 1946984 labelled ACTIVE_1(0)
  • 1946978 to 1946990 labelled ACTIVE_1(1)
  • 1946979 to 1946979 labelled #_1(0)
  • 1946982 to 1946983 labelled f_1(0)
  • 1946983 to 1946979 labelled a(0)
  • 1946980 to 1946981 labelled f_1(0)
  • 1946981 to 1946982 labelled g_1(0)
  • 1946984 to 1946985 labelled f_1(0)
  • 1946984 to 1946986 labelled f_1(1)
  • 1946984 to 1946989 labelled f_1(1)
  • 1946986 to 1946987 labelled g_1(0)
  • 1946987 to 1946988 labelled f_1(0)
  • 1946985 to 1946986 labelled mark_1(0)
  • 1946985 to 1946989 labelled active_1(1)
  • 1946988 to 1946979 labelled a(0)
  • 1946989 to 1946987 labelled g_1(1)
  • 1946990 to 1946991 labelled f_1(1)
  • 1946990 to 1946992 labelled f_1(2)
  • 1946990 to 1946995 labelled f_1(2)
  • 1946991 to 1946992 labelled mark_1(1)
  • 1946991 to 1946995 labelled active_1(2)
  • 1946994 to 1946979 labelled a(1)
  • 1946992 to 1946993 labelled g_1(1)
  • 1946993 to 1946994 labelled f_1(1)
  • 1946995 to 1946993 labelled g_1(2)

(35) TRUE