Left Termination of the query pattern normal(b,f) w.r.t. the given Prolog program could successfully be proven:



PROLOG
  ↳ PrologToPiTRSProof

normal2(F, N) :- rewrite2(F, F1), normal2(F1, N).
normal2(F, F).
rewrite2(op2(op2(A, B), C), op2(A, op2(B, C))).
rewrite2(op2(A, op2(B, C)), op2(A, L)) :- rewrite2(op2(B, C), L).


With regard to the inferred argument filtering the predicates were used in the following modes:
normal2: (b,f)
rewrite2: (b,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:


normal_2_in_ga2(F, N) -> if_normal_2_in_1_ga3(F, N, rewrite_2_in_ga2(F, F1))
rewrite_2_in_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C))) -> rewrite_2_out_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C)))
rewrite_2_in_ga2(op_22(A, op_22(B, C)), op_22(A, L)) -> if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_in_ga2(op_22(B, C), L))
if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_out_ga2(op_22(B, C), L)) -> rewrite_2_out_ga2(op_22(A, op_22(B, C)), op_22(A, L))
if_normal_2_in_1_ga3(F, N, rewrite_2_out_ga2(F, F1)) -> if_normal_2_in_2_ga4(F, N, F1, normal_2_in_ga2(F1, N))
normal_2_in_ga2(F, F) -> normal_2_out_ga2(F, F)
if_normal_2_in_2_ga4(F, N, F1, normal_2_out_ga2(F1, N)) -> normal_2_out_ga2(F, N)

The argument filtering Pi contains the following mapping:
normal_2_in_ga2(x1, x2)  =  normal_2_in_ga1(x1)
op_22(x1, x2)  =  op_22(x1, x2)
if_normal_2_in_1_ga3(x1, x2, x3)  =  if_normal_2_in_1_ga1(x3)
rewrite_2_in_ga2(x1, x2)  =  rewrite_2_in_ga1(x1)
rewrite_2_out_ga2(x1, x2)  =  rewrite_2_out_ga1(x2)
if_rewrite_2_in_1_ga5(x1, x2, x3, x4, x5)  =  if_rewrite_2_in_1_ga2(x1, x5)
if_normal_2_in_2_ga4(x1, x2, x3, x4)  =  if_normal_2_in_2_ga1(x4)
normal_2_out_ga2(x1, x2)  =  normal_2_out_ga1(x2)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG



↳ PROLOG
  ↳ PrologToPiTRSProof
PiTRS
      ↳ DependencyPairsProof

Pi-finite rewrite system:
The TRS R consists of the following rules:

normal_2_in_ga2(F, N) -> if_normal_2_in_1_ga3(F, N, rewrite_2_in_ga2(F, F1))
rewrite_2_in_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C))) -> rewrite_2_out_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C)))
rewrite_2_in_ga2(op_22(A, op_22(B, C)), op_22(A, L)) -> if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_in_ga2(op_22(B, C), L))
if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_out_ga2(op_22(B, C), L)) -> rewrite_2_out_ga2(op_22(A, op_22(B, C)), op_22(A, L))
if_normal_2_in_1_ga3(F, N, rewrite_2_out_ga2(F, F1)) -> if_normal_2_in_2_ga4(F, N, F1, normal_2_in_ga2(F1, N))
normal_2_in_ga2(F, F) -> normal_2_out_ga2(F, F)
if_normal_2_in_2_ga4(F, N, F1, normal_2_out_ga2(F1, N)) -> normal_2_out_ga2(F, N)

The argument filtering Pi contains the following mapping:
normal_2_in_ga2(x1, x2)  =  normal_2_in_ga1(x1)
op_22(x1, x2)  =  op_22(x1, x2)
if_normal_2_in_1_ga3(x1, x2, x3)  =  if_normal_2_in_1_ga1(x3)
rewrite_2_in_ga2(x1, x2)  =  rewrite_2_in_ga1(x1)
rewrite_2_out_ga2(x1, x2)  =  rewrite_2_out_ga1(x2)
if_rewrite_2_in_1_ga5(x1, x2, x3, x4, x5)  =  if_rewrite_2_in_1_ga2(x1, x5)
if_normal_2_in_2_ga4(x1, x2, x3, x4)  =  if_normal_2_in_2_ga1(x4)
normal_2_out_ga2(x1, x2)  =  normal_2_out_ga1(x2)


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

NORMAL_2_IN_GA2(F, N) -> IF_NORMAL_2_IN_1_GA3(F, N, rewrite_2_in_ga2(F, F1))
NORMAL_2_IN_GA2(F, N) -> REWRITE_2_IN_GA2(F, F1)
REWRITE_2_IN_GA2(op_22(A, op_22(B, C)), op_22(A, L)) -> IF_REWRITE_2_IN_1_GA5(A, B, C, L, rewrite_2_in_ga2(op_22(B, C), L))
REWRITE_2_IN_GA2(op_22(A, op_22(B, C)), op_22(A, L)) -> REWRITE_2_IN_GA2(op_22(B, C), L)
IF_NORMAL_2_IN_1_GA3(F, N, rewrite_2_out_ga2(F, F1)) -> IF_NORMAL_2_IN_2_GA4(F, N, F1, normal_2_in_ga2(F1, N))
IF_NORMAL_2_IN_1_GA3(F, N, rewrite_2_out_ga2(F, F1)) -> NORMAL_2_IN_GA2(F1, N)

The TRS R consists of the following rules:

normal_2_in_ga2(F, N) -> if_normal_2_in_1_ga3(F, N, rewrite_2_in_ga2(F, F1))
rewrite_2_in_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C))) -> rewrite_2_out_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C)))
rewrite_2_in_ga2(op_22(A, op_22(B, C)), op_22(A, L)) -> if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_in_ga2(op_22(B, C), L))
if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_out_ga2(op_22(B, C), L)) -> rewrite_2_out_ga2(op_22(A, op_22(B, C)), op_22(A, L))
if_normal_2_in_1_ga3(F, N, rewrite_2_out_ga2(F, F1)) -> if_normal_2_in_2_ga4(F, N, F1, normal_2_in_ga2(F1, N))
normal_2_in_ga2(F, F) -> normal_2_out_ga2(F, F)
if_normal_2_in_2_ga4(F, N, F1, normal_2_out_ga2(F1, N)) -> normal_2_out_ga2(F, N)

The argument filtering Pi contains the following mapping:
normal_2_in_ga2(x1, x2)  =  normal_2_in_ga1(x1)
op_22(x1, x2)  =  op_22(x1, x2)
if_normal_2_in_1_ga3(x1, x2, x3)  =  if_normal_2_in_1_ga1(x3)
rewrite_2_in_ga2(x1, x2)  =  rewrite_2_in_ga1(x1)
rewrite_2_out_ga2(x1, x2)  =  rewrite_2_out_ga1(x2)
if_rewrite_2_in_1_ga5(x1, x2, x3, x4, x5)  =  if_rewrite_2_in_1_ga2(x1, x5)
if_normal_2_in_2_ga4(x1, x2, x3, x4)  =  if_normal_2_in_2_ga1(x4)
normal_2_out_ga2(x1, x2)  =  normal_2_out_ga1(x2)
IF_REWRITE_2_IN_1_GA5(x1, x2, x3, x4, x5)  =  IF_REWRITE_2_IN_1_GA2(x1, x5)
REWRITE_2_IN_GA2(x1, x2)  =  REWRITE_2_IN_GA1(x1)
IF_NORMAL_2_IN_1_GA3(x1, x2, x3)  =  IF_NORMAL_2_IN_1_GA1(x3)
IF_NORMAL_2_IN_2_GA4(x1, x2, x3, x4)  =  IF_NORMAL_2_IN_2_GA1(x4)
NORMAL_2_IN_GA2(x1, x2)  =  NORMAL_2_IN_GA1(x1)

We have to consider all (P,R,Pi)-chains

↳ PROLOG
  ↳ PrologToPiTRSProof
    ↳ PiTRS
      ↳ DependencyPairsProof
PiDP
          ↳ DependencyGraphProof

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

NORMAL_2_IN_GA2(F, N) -> IF_NORMAL_2_IN_1_GA3(F, N, rewrite_2_in_ga2(F, F1))
NORMAL_2_IN_GA2(F, N) -> REWRITE_2_IN_GA2(F, F1)
REWRITE_2_IN_GA2(op_22(A, op_22(B, C)), op_22(A, L)) -> IF_REWRITE_2_IN_1_GA5(A, B, C, L, rewrite_2_in_ga2(op_22(B, C), L))
REWRITE_2_IN_GA2(op_22(A, op_22(B, C)), op_22(A, L)) -> REWRITE_2_IN_GA2(op_22(B, C), L)
IF_NORMAL_2_IN_1_GA3(F, N, rewrite_2_out_ga2(F, F1)) -> IF_NORMAL_2_IN_2_GA4(F, N, F1, normal_2_in_ga2(F1, N))
IF_NORMAL_2_IN_1_GA3(F, N, rewrite_2_out_ga2(F, F1)) -> NORMAL_2_IN_GA2(F1, N)

The TRS R consists of the following rules:

normal_2_in_ga2(F, N) -> if_normal_2_in_1_ga3(F, N, rewrite_2_in_ga2(F, F1))
rewrite_2_in_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C))) -> rewrite_2_out_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C)))
rewrite_2_in_ga2(op_22(A, op_22(B, C)), op_22(A, L)) -> if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_in_ga2(op_22(B, C), L))
if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_out_ga2(op_22(B, C), L)) -> rewrite_2_out_ga2(op_22(A, op_22(B, C)), op_22(A, L))
if_normal_2_in_1_ga3(F, N, rewrite_2_out_ga2(F, F1)) -> if_normal_2_in_2_ga4(F, N, F1, normal_2_in_ga2(F1, N))
normal_2_in_ga2(F, F) -> normal_2_out_ga2(F, F)
if_normal_2_in_2_ga4(F, N, F1, normal_2_out_ga2(F1, N)) -> normal_2_out_ga2(F, N)

The argument filtering Pi contains the following mapping:
normal_2_in_ga2(x1, x2)  =  normal_2_in_ga1(x1)
op_22(x1, x2)  =  op_22(x1, x2)
if_normal_2_in_1_ga3(x1, x2, x3)  =  if_normal_2_in_1_ga1(x3)
rewrite_2_in_ga2(x1, x2)  =  rewrite_2_in_ga1(x1)
rewrite_2_out_ga2(x1, x2)  =  rewrite_2_out_ga1(x2)
if_rewrite_2_in_1_ga5(x1, x2, x3, x4, x5)  =  if_rewrite_2_in_1_ga2(x1, x5)
if_normal_2_in_2_ga4(x1, x2, x3, x4)  =  if_normal_2_in_2_ga1(x4)
normal_2_out_ga2(x1, x2)  =  normal_2_out_ga1(x2)
IF_REWRITE_2_IN_1_GA5(x1, x2, x3, x4, x5)  =  IF_REWRITE_2_IN_1_GA2(x1, x5)
REWRITE_2_IN_GA2(x1, x2)  =  REWRITE_2_IN_GA1(x1)
IF_NORMAL_2_IN_1_GA3(x1, x2, x3)  =  IF_NORMAL_2_IN_1_GA1(x3)
IF_NORMAL_2_IN_2_GA4(x1, x2, x3, x4)  =  IF_NORMAL_2_IN_2_GA1(x4)
NORMAL_2_IN_GA2(x1, x2)  =  NORMAL_2_IN_GA1(x1)

We have to consider all (P,R,Pi)-chains
The approximation of the Dependency Graph contains 2 SCCs with 3 less nodes.

↳ PROLOG
  ↳ PrologToPiTRSProof
    ↳ PiTRS
      ↳ DependencyPairsProof
        ↳ PiDP
          ↳ DependencyGraphProof
            ↳ AND
PiDP
                ↳ UsableRulesProof
              ↳ PiDP

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

REWRITE_2_IN_GA2(op_22(A, op_22(B, C)), op_22(A, L)) -> REWRITE_2_IN_GA2(op_22(B, C), L)

The TRS R consists of the following rules:

normal_2_in_ga2(F, N) -> if_normal_2_in_1_ga3(F, N, rewrite_2_in_ga2(F, F1))
rewrite_2_in_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C))) -> rewrite_2_out_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C)))
rewrite_2_in_ga2(op_22(A, op_22(B, C)), op_22(A, L)) -> if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_in_ga2(op_22(B, C), L))
if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_out_ga2(op_22(B, C), L)) -> rewrite_2_out_ga2(op_22(A, op_22(B, C)), op_22(A, L))
if_normal_2_in_1_ga3(F, N, rewrite_2_out_ga2(F, F1)) -> if_normal_2_in_2_ga4(F, N, F1, normal_2_in_ga2(F1, N))
normal_2_in_ga2(F, F) -> normal_2_out_ga2(F, F)
if_normal_2_in_2_ga4(F, N, F1, normal_2_out_ga2(F1, N)) -> normal_2_out_ga2(F, N)

The argument filtering Pi contains the following mapping:
normal_2_in_ga2(x1, x2)  =  normal_2_in_ga1(x1)
op_22(x1, x2)  =  op_22(x1, x2)
if_normal_2_in_1_ga3(x1, x2, x3)  =  if_normal_2_in_1_ga1(x3)
rewrite_2_in_ga2(x1, x2)  =  rewrite_2_in_ga1(x1)
rewrite_2_out_ga2(x1, x2)  =  rewrite_2_out_ga1(x2)
if_rewrite_2_in_1_ga5(x1, x2, x3, x4, x5)  =  if_rewrite_2_in_1_ga2(x1, x5)
if_normal_2_in_2_ga4(x1, x2, x3, x4)  =  if_normal_2_in_2_ga1(x4)
normal_2_out_ga2(x1, x2)  =  normal_2_out_ga1(x2)
REWRITE_2_IN_GA2(x1, x2)  =  REWRITE_2_IN_GA1(x1)

We have to consider all (P,R,Pi)-chains
For (infinitary) constructor rewriting we can delete all non-usable rules from R.

↳ PROLOG
  ↳ PrologToPiTRSProof
    ↳ PiTRS
      ↳ DependencyPairsProof
        ↳ PiDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ PiDP
                ↳ UsableRulesProof
PiDP
                    ↳ PiDPToQDPProof
              ↳ PiDP

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

REWRITE_2_IN_GA2(op_22(A, op_22(B, C)), op_22(A, L)) -> REWRITE_2_IN_GA2(op_22(B, C), L)

R is empty.
The argument filtering Pi contains the following mapping:
op_22(x1, x2)  =  op_22(x1, x2)
REWRITE_2_IN_GA2(x1, x2)  =  REWRITE_2_IN_GA1(x1)

We have to consider all (P,R,Pi)-chains
Transforming (infinitary) constructor rewriting Pi-DP problem into ordinary QDP problem by application of Pi.

↳ PROLOG
  ↳ PrologToPiTRSProof
    ↳ PiTRS
      ↳ DependencyPairsProof
        ↳ PiDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ PiDP
                ↳ UsableRulesProof
                  ↳ PiDP
                    ↳ PiDPToQDPProof
QDP
                        ↳ QDPSizeChangeProof
              ↳ PiDP

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

REWRITE_2_IN_GA1(op_22(A, op_22(B, C))) -> REWRITE_2_IN_GA1(op_22(B, C))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
The head symbols of this DP problem are {REWRITE_2_IN_GA1}.
By using the subterm criterion together with the size-change analysis we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ PROLOG
  ↳ PrologToPiTRSProof
    ↳ PiTRS
      ↳ DependencyPairsProof
        ↳ PiDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ PiDP
PiDP
                ↳ UsableRulesProof

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

NORMAL_2_IN_GA2(F, N) -> IF_NORMAL_2_IN_1_GA3(F, N, rewrite_2_in_ga2(F, F1))
IF_NORMAL_2_IN_1_GA3(F, N, rewrite_2_out_ga2(F, F1)) -> NORMAL_2_IN_GA2(F1, N)

The TRS R consists of the following rules:

normal_2_in_ga2(F, N) -> if_normal_2_in_1_ga3(F, N, rewrite_2_in_ga2(F, F1))
rewrite_2_in_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C))) -> rewrite_2_out_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C)))
rewrite_2_in_ga2(op_22(A, op_22(B, C)), op_22(A, L)) -> if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_in_ga2(op_22(B, C), L))
if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_out_ga2(op_22(B, C), L)) -> rewrite_2_out_ga2(op_22(A, op_22(B, C)), op_22(A, L))
if_normal_2_in_1_ga3(F, N, rewrite_2_out_ga2(F, F1)) -> if_normal_2_in_2_ga4(F, N, F1, normal_2_in_ga2(F1, N))
normal_2_in_ga2(F, F) -> normal_2_out_ga2(F, F)
if_normal_2_in_2_ga4(F, N, F1, normal_2_out_ga2(F1, N)) -> normal_2_out_ga2(F, N)

The argument filtering Pi contains the following mapping:
normal_2_in_ga2(x1, x2)  =  normal_2_in_ga1(x1)
op_22(x1, x2)  =  op_22(x1, x2)
if_normal_2_in_1_ga3(x1, x2, x3)  =  if_normal_2_in_1_ga1(x3)
rewrite_2_in_ga2(x1, x2)  =  rewrite_2_in_ga1(x1)
rewrite_2_out_ga2(x1, x2)  =  rewrite_2_out_ga1(x2)
if_rewrite_2_in_1_ga5(x1, x2, x3, x4, x5)  =  if_rewrite_2_in_1_ga2(x1, x5)
if_normal_2_in_2_ga4(x1, x2, x3, x4)  =  if_normal_2_in_2_ga1(x4)
normal_2_out_ga2(x1, x2)  =  normal_2_out_ga1(x2)
IF_NORMAL_2_IN_1_GA3(x1, x2, x3)  =  IF_NORMAL_2_IN_1_GA1(x3)
NORMAL_2_IN_GA2(x1, x2)  =  NORMAL_2_IN_GA1(x1)

We have to consider all (P,R,Pi)-chains
For (infinitary) constructor rewriting we can delete all non-usable rules from R.

↳ PROLOG
  ↳ PrologToPiTRSProof
    ↳ PiTRS
      ↳ DependencyPairsProof
        ↳ PiDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ PiDP
              ↳ PiDP
                ↳ UsableRulesProof
PiDP
                    ↳ PiDPToQDPProof

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

NORMAL_2_IN_GA2(F, N) -> IF_NORMAL_2_IN_1_GA3(F, N, rewrite_2_in_ga2(F, F1))
IF_NORMAL_2_IN_1_GA3(F, N, rewrite_2_out_ga2(F, F1)) -> NORMAL_2_IN_GA2(F1, N)

The TRS R consists of the following rules:

rewrite_2_in_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C))) -> rewrite_2_out_ga2(op_22(op_22(A, B), C), op_22(A, op_22(B, C)))
rewrite_2_in_ga2(op_22(A, op_22(B, C)), op_22(A, L)) -> if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_in_ga2(op_22(B, C), L))
if_rewrite_2_in_1_ga5(A, B, C, L, rewrite_2_out_ga2(op_22(B, C), L)) -> rewrite_2_out_ga2(op_22(A, op_22(B, C)), op_22(A, L))

The argument filtering Pi contains the following mapping:
op_22(x1, x2)  =  op_22(x1, x2)
rewrite_2_in_ga2(x1, x2)  =  rewrite_2_in_ga1(x1)
rewrite_2_out_ga2(x1, x2)  =  rewrite_2_out_ga1(x2)
if_rewrite_2_in_1_ga5(x1, x2, x3, x4, x5)  =  if_rewrite_2_in_1_ga2(x1, x5)
IF_NORMAL_2_IN_1_GA3(x1, x2, x3)  =  IF_NORMAL_2_IN_1_GA1(x3)
NORMAL_2_IN_GA2(x1, x2)  =  NORMAL_2_IN_GA1(x1)

We have to consider all (P,R,Pi)-chains
Transforming (infinitary) constructor rewriting Pi-DP problem into ordinary QDP problem by application of Pi.

↳ PROLOG
  ↳ PrologToPiTRSProof
    ↳ PiTRS
      ↳ DependencyPairsProof
        ↳ PiDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ PiDP
              ↳ PiDP
                ↳ UsableRulesProof
                  ↳ PiDP
                    ↳ PiDPToQDPProof
QDP
                        ↳ RuleRemovalProof

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

NORMAL_2_IN_GA1(F) -> IF_NORMAL_2_IN_1_GA1(rewrite_2_in_ga1(F))
IF_NORMAL_2_IN_1_GA1(rewrite_2_out_ga1(F1)) -> NORMAL_2_IN_GA1(F1)

The TRS R consists of the following rules:

rewrite_2_in_ga1(op_22(op_22(A, B), C)) -> rewrite_2_out_ga1(op_22(A, op_22(B, C)))
rewrite_2_in_ga1(op_22(A, op_22(B, C))) -> if_rewrite_2_in_1_ga2(A, rewrite_2_in_ga1(op_22(B, C)))
if_rewrite_2_in_1_ga2(A, rewrite_2_out_ga1(L)) -> rewrite_2_out_ga1(op_22(A, L))

The set Q consists of the following terms:

rewrite_2_in_ga1(x0)
if_rewrite_2_in_1_ga2(x0, x1)

We have to consider all (P,Q,R)-chains.
The head symbols of this DP problem are {IF_NORMAL_2_IN_1_GA1, NORMAL_2_IN_GA1}.
By using a polynomial ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

IF_NORMAL_2_IN_1_GA1(rewrite_2_out_ga1(F1)) -> NORMAL_2_IN_GA1(F1)

Strictly oriented rules of the TRS R:

rewrite_2_in_ga1(op_22(op_22(A, B), C)) -> rewrite_2_out_ga1(op_22(A, op_22(B, C)))

Used ordering: POLO with Polynomial interpretation:

POL(IF_NORMAL_2_IN_1_GA1(x1)) = x1   
POL(if_rewrite_2_in_1_ga2(x1, x2)) = 2 + 2·x1 + x2   
POL(op_22(x1, x2)) = 2 + 2·x1 + x2   
POL(rewrite_2_out_ga1(x1)) = 1 + x1   
POL(rewrite_2_in_ga1(x1)) = x1   
POL(NORMAL_2_IN_GA1(x1)) = x1   



↳ PROLOG
  ↳ PrologToPiTRSProof
    ↳ PiTRS
      ↳ DependencyPairsProof
        ↳ PiDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ PiDP
              ↳ PiDP
                ↳ UsableRulesProof
                  ↳ PiDP
                    ↳ PiDPToQDPProof
                      ↳ QDP
                        ↳ RuleRemovalProof
QDP
                            ↳ RuleRemovalProof

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

NORMAL_2_IN_GA1(F) -> IF_NORMAL_2_IN_1_GA1(rewrite_2_in_ga1(F))

The TRS R consists of the following rules:

rewrite_2_in_ga1(op_22(A, op_22(B, C))) -> if_rewrite_2_in_1_ga2(A, rewrite_2_in_ga1(op_22(B, C)))
if_rewrite_2_in_1_ga2(A, rewrite_2_out_ga1(L)) -> rewrite_2_out_ga1(op_22(A, L))

The set Q consists of the following terms:

rewrite_2_in_ga1(x0)
if_rewrite_2_in_1_ga2(x0, x1)

We have to consider all (P,Q,R)-chains.
The head symbols of this DP problem are {IF_NORMAL_2_IN_1_GA1, NORMAL_2_IN_GA1}.
By using a polynomial ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.

Strictly oriented rules of the TRS R:

rewrite_2_in_ga1(op_22(A, op_22(B, C))) -> if_rewrite_2_in_1_ga2(A, rewrite_2_in_ga1(op_22(B, C)))

Used ordering: POLO with Polynomial interpretation:

POL(IF_NORMAL_2_IN_1_GA1(x1)) = x1   
POL(if_rewrite_2_in_1_ga2(x1, x2)) = 1 + x1 + x2   
POL(op_22(x1, x2)) = 1 + x1 + x2   
POL(rewrite_2_out_ga1(x1)) = x1   
POL(rewrite_2_in_ga1(x1)) = 1 + 2·x1   
POL(NORMAL_2_IN_GA1(x1)) = 1 + 2·x1   



↳ PROLOG
  ↳ PrologToPiTRSProof
    ↳ PiTRS
      ↳ DependencyPairsProof
        ↳ PiDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ PiDP
              ↳ PiDP
                ↳ UsableRulesProof
                  ↳ PiDP
                    ↳ PiDPToQDPProof
                      ↳ QDP
                        ↳ RuleRemovalProof
                          ↳ QDP
                            ↳ RuleRemovalProof
QDP
                                ↳ DependencyGraphProof

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

NORMAL_2_IN_GA1(F) -> IF_NORMAL_2_IN_1_GA1(rewrite_2_in_ga1(F))

The TRS R consists of the following rules:

if_rewrite_2_in_1_ga2(A, rewrite_2_out_ga1(L)) -> rewrite_2_out_ga1(op_22(A, L))

The set Q consists of the following terms:

rewrite_2_in_ga1(x0)
if_rewrite_2_in_1_ga2(x0, x1)

We have to consider all (P,Q,R)-chains.
The head symbols of this DP problem are {IF_NORMAL_2_IN_1_GA1, NORMAL_2_IN_GA1}.
The approximation of the Dependency Graph contains 0 SCCs with 1 less node.