↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
f3: (b,b,f)
g4: (b,b,b,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
f_3_in_gga3([]_0, RES, RES) -> f_3_out_gga3([]_0, RES, RES)
f_3_in_gga3(._22(Head, Tail), X, RES) -> if_f_3_in_1_gga5(Head, Tail, X, RES, g_4_in_ggga4(Tail, X, ._22(Head, Tail), RES))
g_4_in_ggga4(A, B, C, RES) -> if_g_4_in_1_ggga5(A, B, C, RES, f_3_in_gga3(A, ._22(B, C), RES))
if_g_4_in_1_ggga5(A, B, C, RES, f_3_out_gga3(A, ._22(B, C), RES)) -> g_4_out_ggga4(A, B, C, RES)
if_f_3_in_1_gga5(Head, Tail, X, RES, g_4_out_ggga4(Tail, X, ._22(Head, Tail), RES)) -> f_3_out_gga3(._22(Head, Tail), X, RES)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
f_3_in_gga3([]_0, RES, RES) -> f_3_out_gga3([]_0, RES, RES)
f_3_in_gga3(._22(Head, Tail), X, RES) -> if_f_3_in_1_gga5(Head, Tail, X, RES, g_4_in_ggga4(Tail, X, ._22(Head, Tail), RES))
g_4_in_ggga4(A, B, C, RES) -> if_g_4_in_1_ggga5(A, B, C, RES, f_3_in_gga3(A, ._22(B, C), RES))
if_g_4_in_1_ggga5(A, B, C, RES, f_3_out_gga3(A, ._22(B, C), RES)) -> g_4_out_ggga4(A, B, C, RES)
if_f_3_in_1_gga5(Head, Tail, X, RES, g_4_out_ggga4(Tail, X, ._22(Head, Tail), RES)) -> f_3_out_gga3(._22(Head, Tail), X, RES)
F_3_IN_GGA3(._22(Head, Tail), X, RES) -> IF_F_3_IN_1_GGA5(Head, Tail, X, RES, g_4_in_ggga4(Tail, X, ._22(Head, Tail), RES))
F_3_IN_GGA3(._22(Head, Tail), X, RES) -> G_4_IN_GGGA4(Tail, X, ._22(Head, Tail), RES)
G_4_IN_GGGA4(A, B, C, RES) -> IF_G_4_IN_1_GGGA5(A, B, C, RES, f_3_in_gga3(A, ._22(B, C), RES))
G_4_IN_GGGA4(A, B, C, RES) -> F_3_IN_GGA3(A, ._22(B, C), RES)
f_3_in_gga3([]_0, RES, RES) -> f_3_out_gga3([]_0, RES, RES)
f_3_in_gga3(._22(Head, Tail), X, RES) -> if_f_3_in_1_gga5(Head, Tail, X, RES, g_4_in_ggga4(Tail, X, ._22(Head, Tail), RES))
g_4_in_ggga4(A, B, C, RES) -> if_g_4_in_1_ggga5(A, B, C, RES, f_3_in_gga3(A, ._22(B, C), RES))
if_g_4_in_1_ggga5(A, B, C, RES, f_3_out_gga3(A, ._22(B, C), RES)) -> g_4_out_ggga4(A, B, C, RES)
if_f_3_in_1_gga5(Head, Tail, X, RES, g_4_out_ggga4(Tail, X, ._22(Head, Tail), RES)) -> f_3_out_gga3(._22(Head, Tail), X, RES)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
F_3_IN_GGA3(._22(Head, Tail), X, RES) -> IF_F_3_IN_1_GGA5(Head, Tail, X, RES, g_4_in_ggga4(Tail, X, ._22(Head, Tail), RES))
F_3_IN_GGA3(._22(Head, Tail), X, RES) -> G_4_IN_GGGA4(Tail, X, ._22(Head, Tail), RES)
G_4_IN_GGGA4(A, B, C, RES) -> IF_G_4_IN_1_GGGA5(A, B, C, RES, f_3_in_gga3(A, ._22(B, C), RES))
G_4_IN_GGGA4(A, B, C, RES) -> F_3_IN_GGA3(A, ._22(B, C), RES)
f_3_in_gga3([]_0, RES, RES) -> f_3_out_gga3([]_0, RES, RES)
f_3_in_gga3(._22(Head, Tail), X, RES) -> if_f_3_in_1_gga5(Head, Tail, X, RES, g_4_in_ggga4(Tail, X, ._22(Head, Tail), RES))
g_4_in_ggga4(A, B, C, RES) -> if_g_4_in_1_ggga5(A, B, C, RES, f_3_in_gga3(A, ._22(B, C), RES))
if_g_4_in_1_ggga5(A, B, C, RES, f_3_out_gga3(A, ._22(B, C), RES)) -> g_4_out_ggga4(A, B, C, RES)
if_f_3_in_1_gga5(Head, Tail, X, RES, g_4_out_ggga4(Tail, X, ._22(Head, Tail), RES)) -> f_3_out_gga3(._22(Head, Tail), X, RES)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
F_3_IN_GGA3(._22(Head, Tail), X, RES) -> G_4_IN_GGGA4(Tail, X, ._22(Head, Tail), RES)
G_4_IN_GGGA4(A, B, C, RES) -> F_3_IN_GGA3(A, ._22(B, C), RES)
f_3_in_gga3([]_0, RES, RES) -> f_3_out_gga3([]_0, RES, RES)
f_3_in_gga3(._22(Head, Tail), X, RES) -> if_f_3_in_1_gga5(Head, Tail, X, RES, g_4_in_ggga4(Tail, X, ._22(Head, Tail), RES))
g_4_in_ggga4(A, B, C, RES) -> if_g_4_in_1_ggga5(A, B, C, RES, f_3_in_gga3(A, ._22(B, C), RES))
if_g_4_in_1_ggga5(A, B, C, RES, f_3_out_gga3(A, ._22(B, C), RES)) -> g_4_out_ggga4(A, B, C, RES)
if_f_3_in_1_gga5(Head, Tail, X, RES, g_4_out_ggga4(Tail, X, ._22(Head, Tail), RES)) -> f_3_out_gga3(._22(Head, Tail), X, RES)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
F_3_IN_GGA3(._22(Head, Tail), X, RES) -> G_4_IN_GGGA4(Tail, X, ._22(Head, Tail), RES)
G_4_IN_GGGA4(A, B, C, RES) -> F_3_IN_GGA3(A, ._22(B, C), RES)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
F_3_IN_GGA2(._22(Head, Tail), X) -> G_4_IN_GGGA3(Tail, X, ._22(Head, Tail))
G_4_IN_GGGA3(A, B, C) -> F_3_IN_GGA2(A, ._22(B, C))
From the DPs we obtained the following set of size-change graphs: