↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
int3: (b,b,f)
intlist2: (b,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
int_3_in_gga3(0_0, 0_0, ._22(0_0, []_0)) -> int_3_out_gga3(0_0, 0_0, ._22(0_0, []_0))
int_3_in_gga3(0_0, s_11(Y), ._22(0_0, XS)) -> if_int_3_in_1_gga3(Y, XS, int_3_in_gga3(s_11(0_0), s_11(Y), XS))
int_3_in_gga3(s_11(X), 0_0, []_0) -> int_3_out_gga3(s_11(X), 0_0, []_0)
int_3_in_gga3(s_11(X), s_11(Y), XS) -> if_int_3_in_2_gga4(X, Y, XS, int_3_in_gga3(X, Y, ZS))
if_int_3_in_2_gga4(X, Y, XS, int_3_out_gga3(X, Y, ZS)) -> if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_in_ga2(ZS, XS))
intlist_2_in_ga2([]_0, []_0) -> intlist_2_out_ga2([]_0, []_0)
intlist_2_in_ga2(._22(X, XS), ._22(s_11(X), YS)) -> if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_in_ga2(XS, YS))
if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_out_ga2(XS, YS)) -> intlist_2_out_ga2(._22(X, XS), ._22(s_11(X), YS))
if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_out_ga2(ZS, XS)) -> int_3_out_gga3(s_11(X), s_11(Y), XS)
if_int_3_in_1_gga3(Y, XS, int_3_out_gga3(s_11(0_0), s_11(Y), XS)) -> int_3_out_gga3(0_0, s_11(Y), ._22(0_0, XS))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
int_3_in_gga3(0_0, 0_0, ._22(0_0, []_0)) -> int_3_out_gga3(0_0, 0_0, ._22(0_0, []_0))
int_3_in_gga3(0_0, s_11(Y), ._22(0_0, XS)) -> if_int_3_in_1_gga3(Y, XS, int_3_in_gga3(s_11(0_0), s_11(Y), XS))
int_3_in_gga3(s_11(X), 0_0, []_0) -> int_3_out_gga3(s_11(X), 0_0, []_0)
int_3_in_gga3(s_11(X), s_11(Y), XS) -> if_int_3_in_2_gga4(X, Y, XS, int_3_in_gga3(X, Y, ZS))
if_int_3_in_2_gga4(X, Y, XS, int_3_out_gga3(X, Y, ZS)) -> if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_in_ga2(ZS, XS))
intlist_2_in_ga2([]_0, []_0) -> intlist_2_out_ga2([]_0, []_0)
intlist_2_in_ga2(._22(X, XS), ._22(s_11(X), YS)) -> if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_in_ga2(XS, YS))
if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_out_ga2(XS, YS)) -> intlist_2_out_ga2(._22(X, XS), ._22(s_11(X), YS))
if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_out_ga2(ZS, XS)) -> int_3_out_gga3(s_11(X), s_11(Y), XS)
if_int_3_in_1_gga3(Y, XS, int_3_out_gga3(s_11(0_0), s_11(Y), XS)) -> int_3_out_gga3(0_0, s_11(Y), ._22(0_0, XS))
INT_3_IN_GGA3(0_0, s_11(Y), ._22(0_0, XS)) -> IF_INT_3_IN_1_GGA3(Y, XS, int_3_in_gga3(s_11(0_0), s_11(Y), XS))
INT_3_IN_GGA3(0_0, s_11(Y), ._22(0_0, XS)) -> INT_3_IN_GGA3(s_11(0_0), s_11(Y), XS)
INT_3_IN_GGA3(s_11(X), s_11(Y), XS) -> IF_INT_3_IN_2_GGA4(X, Y, XS, int_3_in_gga3(X, Y, ZS))
INT_3_IN_GGA3(s_11(X), s_11(Y), XS) -> INT_3_IN_GGA3(X, Y, ZS)
IF_INT_3_IN_2_GGA4(X, Y, XS, int_3_out_gga3(X, Y, ZS)) -> IF_INT_3_IN_3_GGA5(X, Y, XS, ZS, intlist_2_in_ga2(ZS, XS))
IF_INT_3_IN_2_GGA4(X, Y, XS, int_3_out_gga3(X, Y, ZS)) -> INTLIST_2_IN_GA2(ZS, XS)
INTLIST_2_IN_GA2(._22(X, XS), ._22(s_11(X), YS)) -> IF_INTLIST_2_IN_1_GA4(X, XS, YS, intlist_2_in_ga2(XS, YS))
INTLIST_2_IN_GA2(._22(X, XS), ._22(s_11(X), YS)) -> INTLIST_2_IN_GA2(XS, YS)
int_3_in_gga3(0_0, 0_0, ._22(0_0, []_0)) -> int_3_out_gga3(0_0, 0_0, ._22(0_0, []_0))
int_3_in_gga3(0_0, s_11(Y), ._22(0_0, XS)) -> if_int_3_in_1_gga3(Y, XS, int_3_in_gga3(s_11(0_0), s_11(Y), XS))
int_3_in_gga3(s_11(X), 0_0, []_0) -> int_3_out_gga3(s_11(X), 0_0, []_0)
int_3_in_gga3(s_11(X), s_11(Y), XS) -> if_int_3_in_2_gga4(X, Y, XS, int_3_in_gga3(X, Y, ZS))
if_int_3_in_2_gga4(X, Y, XS, int_3_out_gga3(X, Y, ZS)) -> if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_in_ga2(ZS, XS))
intlist_2_in_ga2([]_0, []_0) -> intlist_2_out_ga2([]_0, []_0)
intlist_2_in_ga2(._22(X, XS), ._22(s_11(X), YS)) -> if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_in_ga2(XS, YS))
if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_out_ga2(XS, YS)) -> intlist_2_out_ga2(._22(X, XS), ._22(s_11(X), YS))
if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_out_ga2(ZS, XS)) -> int_3_out_gga3(s_11(X), s_11(Y), XS)
if_int_3_in_1_gga3(Y, XS, int_3_out_gga3(s_11(0_0), s_11(Y), XS)) -> int_3_out_gga3(0_0, s_11(Y), ._22(0_0, XS))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
INT_3_IN_GGA3(0_0, s_11(Y), ._22(0_0, XS)) -> IF_INT_3_IN_1_GGA3(Y, XS, int_3_in_gga3(s_11(0_0), s_11(Y), XS))
INT_3_IN_GGA3(0_0, s_11(Y), ._22(0_0, XS)) -> INT_3_IN_GGA3(s_11(0_0), s_11(Y), XS)
INT_3_IN_GGA3(s_11(X), s_11(Y), XS) -> IF_INT_3_IN_2_GGA4(X, Y, XS, int_3_in_gga3(X, Y, ZS))
INT_3_IN_GGA3(s_11(X), s_11(Y), XS) -> INT_3_IN_GGA3(X, Y, ZS)
IF_INT_3_IN_2_GGA4(X, Y, XS, int_3_out_gga3(X, Y, ZS)) -> IF_INT_3_IN_3_GGA5(X, Y, XS, ZS, intlist_2_in_ga2(ZS, XS))
IF_INT_3_IN_2_GGA4(X, Y, XS, int_3_out_gga3(X, Y, ZS)) -> INTLIST_2_IN_GA2(ZS, XS)
INTLIST_2_IN_GA2(._22(X, XS), ._22(s_11(X), YS)) -> IF_INTLIST_2_IN_1_GA4(X, XS, YS, intlist_2_in_ga2(XS, YS))
INTLIST_2_IN_GA2(._22(X, XS), ._22(s_11(X), YS)) -> INTLIST_2_IN_GA2(XS, YS)
int_3_in_gga3(0_0, 0_0, ._22(0_0, []_0)) -> int_3_out_gga3(0_0, 0_0, ._22(0_0, []_0))
int_3_in_gga3(0_0, s_11(Y), ._22(0_0, XS)) -> if_int_3_in_1_gga3(Y, XS, int_3_in_gga3(s_11(0_0), s_11(Y), XS))
int_3_in_gga3(s_11(X), 0_0, []_0) -> int_3_out_gga3(s_11(X), 0_0, []_0)
int_3_in_gga3(s_11(X), s_11(Y), XS) -> if_int_3_in_2_gga4(X, Y, XS, int_3_in_gga3(X, Y, ZS))
if_int_3_in_2_gga4(X, Y, XS, int_3_out_gga3(X, Y, ZS)) -> if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_in_ga2(ZS, XS))
intlist_2_in_ga2([]_0, []_0) -> intlist_2_out_ga2([]_0, []_0)
intlist_2_in_ga2(._22(X, XS), ._22(s_11(X), YS)) -> if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_in_ga2(XS, YS))
if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_out_ga2(XS, YS)) -> intlist_2_out_ga2(._22(X, XS), ._22(s_11(X), YS))
if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_out_ga2(ZS, XS)) -> int_3_out_gga3(s_11(X), s_11(Y), XS)
if_int_3_in_1_gga3(Y, XS, int_3_out_gga3(s_11(0_0), s_11(Y), XS)) -> int_3_out_gga3(0_0, s_11(Y), ._22(0_0, XS))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
INTLIST_2_IN_GA2(._22(X, XS), ._22(s_11(X), YS)) -> INTLIST_2_IN_GA2(XS, YS)
int_3_in_gga3(0_0, 0_0, ._22(0_0, []_0)) -> int_3_out_gga3(0_0, 0_0, ._22(0_0, []_0))
int_3_in_gga3(0_0, s_11(Y), ._22(0_0, XS)) -> if_int_3_in_1_gga3(Y, XS, int_3_in_gga3(s_11(0_0), s_11(Y), XS))
int_3_in_gga3(s_11(X), 0_0, []_0) -> int_3_out_gga3(s_11(X), 0_0, []_0)
int_3_in_gga3(s_11(X), s_11(Y), XS) -> if_int_3_in_2_gga4(X, Y, XS, int_3_in_gga3(X, Y, ZS))
if_int_3_in_2_gga4(X, Y, XS, int_3_out_gga3(X, Y, ZS)) -> if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_in_ga2(ZS, XS))
intlist_2_in_ga2([]_0, []_0) -> intlist_2_out_ga2([]_0, []_0)
intlist_2_in_ga2(._22(X, XS), ._22(s_11(X), YS)) -> if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_in_ga2(XS, YS))
if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_out_ga2(XS, YS)) -> intlist_2_out_ga2(._22(X, XS), ._22(s_11(X), YS))
if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_out_ga2(ZS, XS)) -> int_3_out_gga3(s_11(X), s_11(Y), XS)
if_int_3_in_1_gga3(Y, XS, int_3_out_gga3(s_11(0_0), s_11(Y), XS)) -> int_3_out_gga3(0_0, s_11(Y), ._22(0_0, XS))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
INTLIST_2_IN_GA2(._22(X, XS), ._22(s_11(X), YS)) -> INTLIST_2_IN_GA2(XS, YS)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
INTLIST_2_IN_GA1(._22(X, XS)) -> INTLIST_2_IN_GA1(XS)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
INT_3_IN_GGA3(s_11(X), s_11(Y), XS) -> INT_3_IN_GGA3(X, Y, ZS)
INT_3_IN_GGA3(0_0, s_11(Y), ._22(0_0, XS)) -> INT_3_IN_GGA3(s_11(0_0), s_11(Y), XS)
int_3_in_gga3(0_0, 0_0, ._22(0_0, []_0)) -> int_3_out_gga3(0_0, 0_0, ._22(0_0, []_0))
int_3_in_gga3(0_0, s_11(Y), ._22(0_0, XS)) -> if_int_3_in_1_gga3(Y, XS, int_3_in_gga3(s_11(0_0), s_11(Y), XS))
int_3_in_gga3(s_11(X), 0_0, []_0) -> int_3_out_gga3(s_11(X), 0_0, []_0)
int_3_in_gga3(s_11(X), s_11(Y), XS) -> if_int_3_in_2_gga4(X, Y, XS, int_3_in_gga3(X, Y, ZS))
if_int_3_in_2_gga4(X, Y, XS, int_3_out_gga3(X, Y, ZS)) -> if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_in_ga2(ZS, XS))
intlist_2_in_ga2([]_0, []_0) -> intlist_2_out_ga2([]_0, []_0)
intlist_2_in_ga2(._22(X, XS), ._22(s_11(X), YS)) -> if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_in_ga2(XS, YS))
if_intlist_2_in_1_ga4(X, XS, YS, intlist_2_out_ga2(XS, YS)) -> intlist_2_out_ga2(._22(X, XS), ._22(s_11(X), YS))
if_int_3_in_3_gga5(X, Y, XS, ZS, intlist_2_out_ga2(ZS, XS)) -> int_3_out_gga3(s_11(X), s_11(Y), XS)
if_int_3_in_1_gga3(Y, XS, int_3_out_gga3(s_11(0_0), s_11(Y), XS)) -> int_3_out_gga3(0_0, s_11(Y), ._22(0_0, XS))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
INT_3_IN_GGA3(s_11(X), s_11(Y), XS) -> INT_3_IN_GGA3(X, Y, ZS)
INT_3_IN_GGA3(0_0, s_11(Y), ._22(0_0, XS)) -> INT_3_IN_GGA3(s_11(0_0), s_11(Y), XS)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
INT_3_IN_GGA2(s_11(X), s_11(Y)) -> INT_3_IN_GGA2(X, Y)
INT_3_IN_GGA2(0_0, s_11(Y)) -> INT_3_IN_GGA2(s_11(0_0), s_11(Y))
From the DPs we obtained the following set of size-change graphs: