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



PROLOG
  ↳ PrologToPiTRSProof

e2(L, T) :- t2(L, T).
e2(L, T) :- t2(L, .2(plus0, C)), e2(C, T).
t2(L, T) :- n2(L, T).
t2(L, T) :- n2(L, .2(star0, C)), t2(C, T).
n2(.2(L, T), T) :- z1(L).
n2(.2(lbrace0, A), B) :- e2(A, .2(rbrace0, B)).
z1(a0).
z1(b0).
z1(c0).


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


e_2_in_ga2(L, T) -> if_e_2_in_1_ga3(L, T, t_2_in_ga2(L, T))
t_2_in_ga2(L, T) -> if_t_2_in_1_ga3(L, T, n_2_in_ga2(L, T))
n_2_in_ga2(._22(L, T), T) -> if_n_2_in_1_ga3(L, T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g1(a_0)
z_1_in_g1(b_0) -> z_1_out_g1(b_0)
z_1_in_g1(c_0) -> z_1_out_g1(c_0)
if_n_2_in_1_ga3(L, T, z_1_out_g1(L)) -> n_2_out_ga2(._22(L, T), T)
n_2_in_ga2(._22(lbrace_0, A), B) -> if_n_2_in_2_ga3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
e_2_in_ga2(L, T) -> if_e_2_in_2_ga3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
t_2_in_ga2(L, T) -> if_t_2_in_2_ga3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
if_t_2_in_2_ga3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> if_t_2_in_3_ga4(L, T, C, t_2_in_ga2(C, T))
if_t_2_in_3_ga4(L, T, C, t_2_out_ga2(C, T)) -> t_2_out_ga2(L, T)
if_e_2_in_2_ga3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> if_e_2_in_3_ga4(L, T, C, e_2_in_ga2(C, T))
if_e_2_in_3_ga4(L, T, C, e_2_out_ga2(C, T)) -> e_2_out_ga2(L, T)
if_n_2_in_2_ga3(A, B, e_2_out_ga2(A, ._22(rbrace_0, B))) -> n_2_out_ga2(._22(lbrace_0, A), B)
if_t_2_in_1_ga3(L, T, n_2_out_ga2(L, T)) -> t_2_out_ga2(L, T)
if_e_2_in_1_ga3(L, T, t_2_out_ga2(L, T)) -> e_2_out_ga2(L, T)

The argument filtering Pi contains the following mapping:
e_2_in_ga2(x1, x2)  =  e_2_in_ga1(x1)
._22(x1, x2)  =  ._22(x1, x2)
plus_0  =  plus_0
star_0  =  star_0
lbrace_0  =  lbrace_0
rbrace_0  =  rbrace_0
a_0  =  a_0
b_0  =  b_0
c_0  =  c_0
if_e_2_in_1_ga3(x1, x2, x3)  =  if_e_2_in_1_ga1(x3)
t_2_in_ga2(x1, x2)  =  t_2_in_ga1(x1)
if_t_2_in_1_ga3(x1, x2, x3)  =  if_t_2_in_1_ga1(x3)
n_2_in_ga2(x1, x2)  =  n_2_in_ga1(x1)
if_n_2_in_1_ga3(x1, x2, x3)  =  if_n_2_in_1_ga2(x2, x3)
z_1_in_g1(x1)  =  z_1_in_g1(x1)
z_1_out_g1(x1)  =  z_1_out_g
n_2_out_ga2(x1, x2)  =  n_2_out_ga1(x2)
if_n_2_in_2_ga3(x1, x2, x3)  =  if_n_2_in_2_ga1(x3)
if_e_2_in_2_ga3(x1, x2, x3)  =  if_e_2_in_2_ga1(x3)
if_t_2_in_2_ga3(x1, x2, x3)  =  if_t_2_in_2_ga1(x3)
if_t_2_in_3_ga4(x1, x2, x3, x4)  =  if_t_2_in_3_ga1(x4)
t_2_out_ga2(x1, x2)  =  t_2_out_ga1(x2)
if_e_2_in_3_ga4(x1, x2, x3, x4)  =  if_e_2_in_3_ga1(x4)
e_2_out_ga2(x1, x2)  =  e_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:

e_2_in_ga2(L, T) -> if_e_2_in_1_ga3(L, T, t_2_in_ga2(L, T))
t_2_in_ga2(L, T) -> if_t_2_in_1_ga3(L, T, n_2_in_ga2(L, T))
n_2_in_ga2(._22(L, T), T) -> if_n_2_in_1_ga3(L, T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g1(a_0)
z_1_in_g1(b_0) -> z_1_out_g1(b_0)
z_1_in_g1(c_0) -> z_1_out_g1(c_0)
if_n_2_in_1_ga3(L, T, z_1_out_g1(L)) -> n_2_out_ga2(._22(L, T), T)
n_2_in_ga2(._22(lbrace_0, A), B) -> if_n_2_in_2_ga3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
e_2_in_ga2(L, T) -> if_e_2_in_2_ga3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
t_2_in_ga2(L, T) -> if_t_2_in_2_ga3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
if_t_2_in_2_ga3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> if_t_2_in_3_ga4(L, T, C, t_2_in_ga2(C, T))
if_t_2_in_3_ga4(L, T, C, t_2_out_ga2(C, T)) -> t_2_out_ga2(L, T)
if_e_2_in_2_ga3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> if_e_2_in_3_ga4(L, T, C, e_2_in_ga2(C, T))
if_e_2_in_3_ga4(L, T, C, e_2_out_ga2(C, T)) -> e_2_out_ga2(L, T)
if_n_2_in_2_ga3(A, B, e_2_out_ga2(A, ._22(rbrace_0, B))) -> n_2_out_ga2(._22(lbrace_0, A), B)
if_t_2_in_1_ga3(L, T, n_2_out_ga2(L, T)) -> t_2_out_ga2(L, T)
if_e_2_in_1_ga3(L, T, t_2_out_ga2(L, T)) -> e_2_out_ga2(L, T)

The argument filtering Pi contains the following mapping:
e_2_in_ga2(x1, x2)  =  e_2_in_ga1(x1)
._22(x1, x2)  =  ._22(x1, x2)
plus_0  =  plus_0
star_0  =  star_0
lbrace_0  =  lbrace_0
rbrace_0  =  rbrace_0
a_0  =  a_0
b_0  =  b_0
c_0  =  c_0
if_e_2_in_1_ga3(x1, x2, x3)  =  if_e_2_in_1_ga1(x3)
t_2_in_ga2(x1, x2)  =  t_2_in_ga1(x1)
if_t_2_in_1_ga3(x1, x2, x3)  =  if_t_2_in_1_ga1(x3)
n_2_in_ga2(x1, x2)  =  n_2_in_ga1(x1)
if_n_2_in_1_ga3(x1, x2, x3)  =  if_n_2_in_1_ga2(x2, x3)
z_1_in_g1(x1)  =  z_1_in_g1(x1)
z_1_out_g1(x1)  =  z_1_out_g
n_2_out_ga2(x1, x2)  =  n_2_out_ga1(x2)
if_n_2_in_2_ga3(x1, x2, x3)  =  if_n_2_in_2_ga1(x3)
if_e_2_in_2_ga3(x1, x2, x3)  =  if_e_2_in_2_ga1(x3)
if_t_2_in_2_ga3(x1, x2, x3)  =  if_t_2_in_2_ga1(x3)
if_t_2_in_3_ga4(x1, x2, x3, x4)  =  if_t_2_in_3_ga1(x4)
t_2_out_ga2(x1, x2)  =  t_2_out_ga1(x2)
if_e_2_in_3_ga4(x1, x2, x3, x4)  =  if_e_2_in_3_ga1(x4)
e_2_out_ga2(x1, x2)  =  e_2_out_ga1(x2)


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

E_2_IN_GA2(L, T) -> IF_E_2_IN_1_GA3(L, T, t_2_in_ga2(L, T))
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, T)
T_2_IN_GA2(L, T) -> IF_T_2_IN_1_GA3(L, T, n_2_in_ga2(L, T))
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, T)
N_2_IN_GA2(._22(L, T), T) -> IF_N_2_IN_1_GA3(L, T, z_1_in_g1(L))
N_2_IN_GA2(._22(L, T), T) -> Z_1_IN_G1(L)
N_2_IN_GA2(._22(lbrace_0, A), B) -> IF_N_2_IN_2_GA3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
N_2_IN_GA2(._22(lbrace_0, A), B) -> E_2_IN_GA2(A, ._22(rbrace_0, B))
E_2_IN_GA2(L, T) -> IF_E_2_IN_2_GA3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, ._22(plus_0, C))
T_2_IN_GA2(L, T) -> IF_T_2_IN_2_GA3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, ._22(star_0, C))
IF_T_2_IN_2_GA3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> IF_T_2_IN_3_GA4(L, T, C, t_2_in_ga2(C, T))
IF_T_2_IN_2_GA3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> T_2_IN_GA2(C, T)
IF_E_2_IN_2_GA3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> IF_E_2_IN_3_GA4(L, T, C, e_2_in_ga2(C, T))
IF_E_2_IN_2_GA3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> E_2_IN_GA2(C, T)

The TRS R consists of the following rules:

e_2_in_ga2(L, T) -> if_e_2_in_1_ga3(L, T, t_2_in_ga2(L, T))
t_2_in_ga2(L, T) -> if_t_2_in_1_ga3(L, T, n_2_in_ga2(L, T))
n_2_in_ga2(._22(L, T), T) -> if_n_2_in_1_ga3(L, T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g1(a_0)
z_1_in_g1(b_0) -> z_1_out_g1(b_0)
z_1_in_g1(c_0) -> z_1_out_g1(c_0)
if_n_2_in_1_ga3(L, T, z_1_out_g1(L)) -> n_2_out_ga2(._22(L, T), T)
n_2_in_ga2(._22(lbrace_0, A), B) -> if_n_2_in_2_ga3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
e_2_in_ga2(L, T) -> if_e_2_in_2_ga3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
t_2_in_ga2(L, T) -> if_t_2_in_2_ga3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
if_t_2_in_2_ga3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> if_t_2_in_3_ga4(L, T, C, t_2_in_ga2(C, T))
if_t_2_in_3_ga4(L, T, C, t_2_out_ga2(C, T)) -> t_2_out_ga2(L, T)
if_e_2_in_2_ga3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> if_e_2_in_3_ga4(L, T, C, e_2_in_ga2(C, T))
if_e_2_in_3_ga4(L, T, C, e_2_out_ga2(C, T)) -> e_2_out_ga2(L, T)
if_n_2_in_2_ga3(A, B, e_2_out_ga2(A, ._22(rbrace_0, B))) -> n_2_out_ga2(._22(lbrace_0, A), B)
if_t_2_in_1_ga3(L, T, n_2_out_ga2(L, T)) -> t_2_out_ga2(L, T)
if_e_2_in_1_ga3(L, T, t_2_out_ga2(L, T)) -> e_2_out_ga2(L, T)

The argument filtering Pi contains the following mapping:
e_2_in_ga2(x1, x2)  =  e_2_in_ga1(x1)
._22(x1, x2)  =  ._22(x1, x2)
plus_0  =  plus_0
star_0  =  star_0
lbrace_0  =  lbrace_0
rbrace_0  =  rbrace_0
a_0  =  a_0
b_0  =  b_0
c_0  =  c_0
if_e_2_in_1_ga3(x1, x2, x3)  =  if_e_2_in_1_ga1(x3)
t_2_in_ga2(x1, x2)  =  t_2_in_ga1(x1)
if_t_2_in_1_ga3(x1, x2, x3)  =  if_t_2_in_1_ga1(x3)
n_2_in_ga2(x1, x2)  =  n_2_in_ga1(x1)
if_n_2_in_1_ga3(x1, x2, x3)  =  if_n_2_in_1_ga2(x2, x3)
z_1_in_g1(x1)  =  z_1_in_g1(x1)
z_1_out_g1(x1)  =  z_1_out_g
n_2_out_ga2(x1, x2)  =  n_2_out_ga1(x2)
if_n_2_in_2_ga3(x1, x2, x3)  =  if_n_2_in_2_ga1(x3)
if_e_2_in_2_ga3(x1, x2, x3)  =  if_e_2_in_2_ga1(x3)
if_t_2_in_2_ga3(x1, x2, x3)  =  if_t_2_in_2_ga1(x3)
if_t_2_in_3_ga4(x1, x2, x3, x4)  =  if_t_2_in_3_ga1(x4)
t_2_out_ga2(x1, x2)  =  t_2_out_ga1(x2)
if_e_2_in_3_ga4(x1, x2, x3, x4)  =  if_e_2_in_3_ga1(x4)
e_2_out_ga2(x1, x2)  =  e_2_out_ga1(x2)
IF_T_2_IN_2_GA3(x1, x2, x3)  =  IF_T_2_IN_2_GA1(x3)
IF_E_2_IN_2_GA3(x1, x2, x3)  =  IF_E_2_IN_2_GA1(x3)
IF_N_2_IN_1_GA3(x1, x2, x3)  =  IF_N_2_IN_1_GA2(x2, x3)
N_2_IN_GA2(x1, x2)  =  N_2_IN_GA1(x1)
IF_E_2_IN_1_GA3(x1, x2, x3)  =  IF_E_2_IN_1_GA1(x3)
T_2_IN_GA2(x1, x2)  =  T_2_IN_GA1(x1)
Z_1_IN_G1(x1)  =  Z_1_IN_G1(x1)
IF_N_2_IN_2_GA3(x1, x2, x3)  =  IF_N_2_IN_2_GA1(x3)
IF_T_2_IN_3_GA4(x1, x2, x3, x4)  =  IF_T_2_IN_3_GA1(x4)
E_2_IN_GA2(x1, x2)  =  E_2_IN_GA1(x1)
IF_E_2_IN_3_GA4(x1, x2, x3, x4)  =  IF_E_2_IN_3_GA1(x4)
IF_T_2_IN_1_GA3(x1, x2, x3)  =  IF_T_2_IN_1_GA1(x3)

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:

E_2_IN_GA2(L, T) -> IF_E_2_IN_1_GA3(L, T, t_2_in_ga2(L, T))
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, T)
T_2_IN_GA2(L, T) -> IF_T_2_IN_1_GA3(L, T, n_2_in_ga2(L, T))
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, T)
N_2_IN_GA2(._22(L, T), T) -> IF_N_2_IN_1_GA3(L, T, z_1_in_g1(L))
N_2_IN_GA2(._22(L, T), T) -> Z_1_IN_G1(L)
N_2_IN_GA2(._22(lbrace_0, A), B) -> IF_N_2_IN_2_GA3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
N_2_IN_GA2(._22(lbrace_0, A), B) -> E_2_IN_GA2(A, ._22(rbrace_0, B))
E_2_IN_GA2(L, T) -> IF_E_2_IN_2_GA3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, ._22(plus_0, C))
T_2_IN_GA2(L, T) -> IF_T_2_IN_2_GA3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, ._22(star_0, C))
IF_T_2_IN_2_GA3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> IF_T_2_IN_3_GA4(L, T, C, t_2_in_ga2(C, T))
IF_T_2_IN_2_GA3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> T_2_IN_GA2(C, T)
IF_E_2_IN_2_GA3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> IF_E_2_IN_3_GA4(L, T, C, e_2_in_ga2(C, T))
IF_E_2_IN_2_GA3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> E_2_IN_GA2(C, T)

The TRS R consists of the following rules:

e_2_in_ga2(L, T) -> if_e_2_in_1_ga3(L, T, t_2_in_ga2(L, T))
t_2_in_ga2(L, T) -> if_t_2_in_1_ga3(L, T, n_2_in_ga2(L, T))
n_2_in_ga2(._22(L, T), T) -> if_n_2_in_1_ga3(L, T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g1(a_0)
z_1_in_g1(b_0) -> z_1_out_g1(b_0)
z_1_in_g1(c_0) -> z_1_out_g1(c_0)
if_n_2_in_1_ga3(L, T, z_1_out_g1(L)) -> n_2_out_ga2(._22(L, T), T)
n_2_in_ga2(._22(lbrace_0, A), B) -> if_n_2_in_2_ga3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
e_2_in_ga2(L, T) -> if_e_2_in_2_ga3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
t_2_in_ga2(L, T) -> if_t_2_in_2_ga3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
if_t_2_in_2_ga3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> if_t_2_in_3_ga4(L, T, C, t_2_in_ga2(C, T))
if_t_2_in_3_ga4(L, T, C, t_2_out_ga2(C, T)) -> t_2_out_ga2(L, T)
if_e_2_in_2_ga3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> if_e_2_in_3_ga4(L, T, C, e_2_in_ga2(C, T))
if_e_2_in_3_ga4(L, T, C, e_2_out_ga2(C, T)) -> e_2_out_ga2(L, T)
if_n_2_in_2_ga3(A, B, e_2_out_ga2(A, ._22(rbrace_0, B))) -> n_2_out_ga2(._22(lbrace_0, A), B)
if_t_2_in_1_ga3(L, T, n_2_out_ga2(L, T)) -> t_2_out_ga2(L, T)
if_e_2_in_1_ga3(L, T, t_2_out_ga2(L, T)) -> e_2_out_ga2(L, T)

The argument filtering Pi contains the following mapping:
e_2_in_ga2(x1, x2)  =  e_2_in_ga1(x1)
._22(x1, x2)  =  ._22(x1, x2)
plus_0  =  plus_0
star_0  =  star_0
lbrace_0  =  lbrace_0
rbrace_0  =  rbrace_0
a_0  =  a_0
b_0  =  b_0
c_0  =  c_0
if_e_2_in_1_ga3(x1, x2, x3)  =  if_e_2_in_1_ga1(x3)
t_2_in_ga2(x1, x2)  =  t_2_in_ga1(x1)
if_t_2_in_1_ga3(x1, x2, x3)  =  if_t_2_in_1_ga1(x3)
n_2_in_ga2(x1, x2)  =  n_2_in_ga1(x1)
if_n_2_in_1_ga3(x1, x2, x3)  =  if_n_2_in_1_ga2(x2, x3)
z_1_in_g1(x1)  =  z_1_in_g1(x1)
z_1_out_g1(x1)  =  z_1_out_g
n_2_out_ga2(x1, x2)  =  n_2_out_ga1(x2)
if_n_2_in_2_ga3(x1, x2, x3)  =  if_n_2_in_2_ga1(x3)
if_e_2_in_2_ga3(x1, x2, x3)  =  if_e_2_in_2_ga1(x3)
if_t_2_in_2_ga3(x1, x2, x3)  =  if_t_2_in_2_ga1(x3)
if_t_2_in_3_ga4(x1, x2, x3, x4)  =  if_t_2_in_3_ga1(x4)
t_2_out_ga2(x1, x2)  =  t_2_out_ga1(x2)
if_e_2_in_3_ga4(x1, x2, x3, x4)  =  if_e_2_in_3_ga1(x4)
e_2_out_ga2(x1, x2)  =  e_2_out_ga1(x2)
IF_T_2_IN_2_GA3(x1, x2, x3)  =  IF_T_2_IN_2_GA1(x3)
IF_E_2_IN_2_GA3(x1, x2, x3)  =  IF_E_2_IN_2_GA1(x3)
IF_N_2_IN_1_GA3(x1, x2, x3)  =  IF_N_2_IN_1_GA2(x2, x3)
N_2_IN_GA2(x1, x2)  =  N_2_IN_GA1(x1)
IF_E_2_IN_1_GA3(x1, x2, x3)  =  IF_E_2_IN_1_GA1(x3)
T_2_IN_GA2(x1, x2)  =  T_2_IN_GA1(x1)
Z_1_IN_G1(x1)  =  Z_1_IN_G1(x1)
IF_N_2_IN_2_GA3(x1, x2, x3)  =  IF_N_2_IN_2_GA1(x3)
IF_T_2_IN_3_GA4(x1, x2, x3, x4)  =  IF_T_2_IN_3_GA1(x4)
E_2_IN_GA2(x1, x2)  =  E_2_IN_GA1(x1)
IF_E_2_IN_3_GA4(x1, x2, x3, x4)  =  IF_E_2_IN_3_GA1(x4)
IF_T_2_IN_1_GA3(x1, x2, x3)  =  IF_T_2_IN_1_GA1(x3)

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

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

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

E_2_IN_GA2(L, T) -> IF_E_2_IN_2_GA3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, T)
N_2_IN_GA2(._22(lbrace_0, A), B) -> E_2_IN_GA2(A, ._22(rbrace_0, B))
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, ._22(star_0, C))
T_2_IN_GA2(L, T) -> IF_T_2_IN_2_GA3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
IF_E_2_IN_2_GA3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> E_2_IN_GA2(C, T)
T_2_IN_GA2(L, T) -> N_2_IN_GA2(L, T)
E_2_IN_GA2(L, T) -> T_2_IN_GA2(L, ._22(plus_0, C))
IF_T_2_IN_2_GA3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> T_2_IN_GA2(C, T)

The TRS R consists of the following rules:

e_2_in_ga2(L, T) -> if_e_2_in_1_ga3(L, T, t_2_in_ga2(L, T))
t_2_in_ga2(L, T) -> if_t_2_in_1_ga3(L, T, n_2_in_ga2(L, T))
n_2_in_ga2(._22(L, T), T) -> if_n_2_in_1_ga3(L, T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g1(a_0)
z_1_in_g1(b_0) -> z_1_out_g1(b_0)
z_1_in_g1(c_0) -> z_1_out_g1(c_0)
if_n_2_in_1_ga3(L, T, z_1_out_g1(L)) -> n_2_out_ga2(._22(L, T), T)
n_2_in_ga2(._22(lbrace_0, A), B) -> if_n_2_in_2_ga3(A, B, e_2_in_ga2(A, ._22(rbrace_0, B)))
e_2_in_ga2(L, T) -> if_e_2_in_2_ga3(L, T, t_2_in_ga2(L, ._22(plus_0, C)))
t_2_in_ga2(L, T) -> if_t_2_in_2_ga3(L, T, n_2_in_ga2(L, ._22(star_0, C)))
if_t_2_in_2_ga3(L, T, n_2_out_ga2(L, ._22(star_0, C))) -> if_t_2_in_3_ga4(L, T, C, t_2_in_ga2(C, T))
if_t_2_in_3_ga4(L, T, C, t_2_out_ga2(C, T)) -> t_2_out_ga2(L, T)
if_e_2_in_2_ga3(L, T, t_2_out_ga2(L, ._22(plus_0, C))) -> if_e_2_in_3_ga4(L, T, C, e_2_in_ga2(C, T))
if_e_2_in_3_ga4(L, T, C, e_2_out_ga2(C, T)) -> e_2_out_ga2(L, T)
if_n_2_in_2_ga3(A, B, e_2_out_ga2(A, ._22(rbrace_0, B))) -> n_2_out_ga2(._22(lbrace_0, A), B)
if_t_2_in_1_ga3(L, T, n_2_out_ga2(L, T)) -> t_2_out_ga2(L, T)
if_e_2_in_1_ga3(L, T, t_2_out_ga2(L, T)) -> e_2_out_ga2(L, T)

The argument filtering Pi contains the following mapping:
e_2_in_ga2(x1, x2)  =  e_2_in_ga1(x1)
._22(x1, x2)  =  ._22(x1, x2)
plus_0  =  plus_0
star_0  =  star_0
lbrace_0  =  lbrace_0
rbrace_0  =  rbrace_0
a_0  =  a_0
b_0  =  b_0
c_0  =  c_0
if_e_2_in_1_ga3(x1, x2, x3)  =  if_e_2_in_1_ga1(x3)
t_2_in_ga2(x1, x2)  =  t_2_in_ga1(x1)
if_t_2_in_1_ga3(x1, x2, x3)  =  if_t_2_in_1_ga1(x3)
n_2_in_ga2(x1, x2)  =  n_2_in_ga1(x1)
if_n_2_in_1_ga3(x1, x2, x3)  =  if_n_2_in_1_ga2(x2, x3)
z_1_in_g1(x1)  =  z_1_in_g1(x1)
z_1_out_g1(x1)  =  z_1_out_g
n_2_out_ga2(x1, x2)  =  n_2_out_ga1(x2)
if_n_2_in_2_ga3(x1, x2, x3)  =  if_n_2_in_2_ga1(x3)
if_e_2_in_2_ga3(x1, x2, x3)  =  if_e_2_in_2_ga1(x3)
if_t_2_in_2_ga3(x1, x2, x3)  =  if_t_2_in_2_ga1(x3)
if_t_2_in_3_ga4(x1, x2, x3, x4)  =  if_t_2_in_3_ga1(x4)
t_2_out_ga2(x1, x2)  =  t_2_out_ga1(x2)
if_e_2_in_3_ga4(x1, x2, x3, x4)  =  if_e_2_in_3_ga1(x4)
e_2_out_ga2(x1, x2)  =  e_2_out_ga1(x2)
IF_T_2_IN_2_GA3(x1, x2, x3)  =  IF_T_2_IN_2_GA1(x3)
IF_E_2_IN_2_GA3(x1, x2, x3)  =  IF_E_2_IN_2_GA1(x3)
N_2_IN_GA2(x1, x2)  =  N_2_IN_GA1(x1)
T_2_IN_GA2(x1, x2)  =  T_2_IN_GA1(x1)
E_2_IN_GA2(x1, x2)  =  E_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
            ↳ PiDP
              ↳ PiDPToQDPProof
QDP
                  ↳ QDPSizeChangeProof

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

E_2_IN_GA1(L) -> IF_E_2_IN_2_GA1(t_2_in_ga1(L))
E_2_IN_GA1(L) -> T_2_IN_GA1(L)
N_2_IN_GA1(._22(lbrace_0, A)) -> E_2_IN_GA1(A)
T_2_IN_GA1(L) -> N_2_IN_GA1(L)
T_2_IN_GA1(L) -> IF_T_2_IN_2_GA1(n_2_in_ga1(L))
IF_E_2_IN_2_GA1(t_2_out_ga1(._22(plus_0, C))) -> E_2_IN_GA1(C)
IF_T_2_IN_2_GA1(n_2_out_ga1(._22(star_0, C))) -> T_2_IN_GA1(C)

The TRS R consists of the following rules:

e_2_in_ga1(L) -> if_e_2_in_1_ga1(t_2_in_ga1(L))
t_2_in_ga1(L) -> if_t_2_in_1_ga1(n_2_in_ga1(L))
n_2_in_ga1(._22(L, T)) -> if_n_2_in_1_ga2(T, z_1_in_g1(L))
z_1_in_g1(a_0) -> z_1_out_g
z_1_in_g1(b_0) -> z_1_out_g
z_1_in_g1(c_0) -> z_1_out_g
if_n_2_in_1_ga2(T, z_1_out_g) -> n_2_out_ga1(T)
n_2_in_ga1(._22(lbrace_0, A)) -> if_n_2_in_2_ga1(e_2_in_ga1(A))
e_2_in_ga1(L) -> if_e_2_in_2_ga1(t_2_in_ga1(L))
t_2_in_ga1(L) -> if_t_2_in_2_ga1(n_2_in_ga1(L))
if_t_2_in_2_ga1(n_2_out_ga1(._22(star_0, C))) -> if_t_2_in_3_ga1(t_2_in_ga1(C))
if_t_2_in_3_ga1(t_2_out_ga1(T)) -> t_2_out_ga1(T)
if_e_2_in_2_ga1(t_2_out_ga1(._22(plus_0, C))) -> if_e_2_in_3_ga1(e_2_in_ga1(C))
if_e_2_in_3_ga1(e_2_out_ga1(T)) -> e_2_out_ga1(T)
if_n_2_in_2_ga1(e_2_out_ga1(._22(rbrace_0, B))) -> n_2_out_ga1(B)
if_t_2_in_1_ga1(n_2_out_ga1(T)) -> t_2_out_ga1(T)
if_e_2_in_1_ga1(t_2_out_ga1(T)) -> e_2_out_ga1(T)

The set Q consists of the following terms:

e_2_in_ga1(x0)
t_2_in_ga1(x0)
n_2_in_ga1(x0)
z_1_in_g1(x0)
if_n_2_in_1_ga2(x0, x1)
if_t_2_in_2_ga1(x0)
if_t_2_in_3_ga1(x0)
if_e_2_in_2_ga1(x0)
if_e_2_in_3_ga1(x0)
if_n_2_in_2_ga1(x0)
if_t_2_in_1_ga1(x0)
if_e_2_in_1_ga1(x0)

We have to consider all (P,Q,R)-chains.
The head symbols of this DP problem are {IF_E_2_IN_2_GA1, E_2_IN_GA1, T_2_IN_GA1, N_2_IN_GA1, IF_T_2_IN_2_GA1}.
We used the following order together with the size-change analysis to show that there are no infinite chains for this DP problem.

Order:Polynomial interpretation:


POL(a_0) = 0   
POL(rbrace_0) = 0   
POL(c_0) = 0   
POL(n_2_out_ga1(x1)) = x1   
POL(star_0) = 1   
POL(e_2_in_ga1(x1)) = x1   
POL(if_t_2_in_2_ga1(x1)) = x1   
POL(if_e_2_in_3_ga1(x1)) = x1   
POL(plus_0) = 1   
POL(t_2_in_ga1(x1)) = x1   
POL(if_n_2_in_1_ga2(x1, x2)) = x1   
POL(._22(x1, x2)) = 1 + x2   
POL(n_2_in_ga1(x1)) = x1   
POL(z_1_in_g1(x1)) = 0   
POL(t_2_out_ga1(x1)) = x1   
POL(if_e_2_in_1_ga1(x1)) = x1   
POL(if_n_2_in_2_ga1(x1)) = x1   
POL(if_e_2_in_2_ga1(x1)) = x1   
POL(if_t_2_in_1_ga1(x1)) = x1   
POL(e_2_out_ga1(x1)) = x1   
POL(if_t_2_in_3_ga1(x1)) = x1   
POL(b_0) = 0   
POL(z_1_out_g) = 0   
POL(lbrace_0) = 1   

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

We oriented the following set of usable rules.


t_2_in_ga1(L) -> if_t_2_in_2_ga1(n_2_in_ga1(L))
t_2_in_ga1(L) -> if_t_2_in_1_ga1(n_2_in_ga1(L))
n_2_in_ga1(._22(L, T)) -> if_n_2_in_1_ga2(T, z_1_in_g1(L))
n_2_in_ga1(._22(lbrace_0, A)) -> if_n_2_in_2_ga1(e_2_in_ga1(A))
if_t_2_in_3_ga1(t_2_out_ga1(T)) -> t_2_out_ga1(T)
if_t_2_in_2_ga1(n_2_out_ga1(._22(star_0, C))) -> if_t_2_in_3_ga1(t_2_in_ga1(C))
if_t_2_in_1_ga1(n_2_out_ga1(T)) -> t_2_out_ga1(T)
if_n_2_in_2_ga1(e_2_out_ga1(._22(rbrace_0, B))) -> n_2_out_ga1(B)
if_n_2_in_1_ga2(T, z_1_out_g) -> n_2_out_ga1(T)
if_e_2_in_3_ga1(e_2_out_ga1(T)) -> e_2_out_ga1(T)
if_e_2_in_2_ga1(t_2_out_ga1(._22(plus_0, C))) -> if_e_2_in_3_ga1(e_2_in_ga1(C))
if_e_2_in_1_ga1(t_2_out_ga1(T)) -> e_2_out_ga1(T)
e_2_in_ga1(L) -> if_e_2_in_2_ga1(t_2_in_ga1(L))
e_2_in_ga1(L) -> if_e_2_in_1_ga1(t_2_in_ga1(L))