↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
times3: (b,b,f)
mult4: (b,b,b,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
times_3_in_gga3(X, Y, Z) -> if_times_3_in_1_gga4(X, Y, Z, mult_4_in_ggga4(X, Y, 0_0, Z))
mult_4_in_ggga4(0_0, Y, 0_0, 0_0) -> mult_4_out_ggga4(0_0, Y, 0_0, 0_0)
mult_4_in_ggga4(s_11(U), Y, 0_0, Z) -> if_mult_4_in_1_ggga4(U, Y, Z, mult_4_in_ggga4(U, Y, Y, Z))
mult_4_in_ggga4(X, Y, s_11(W), s_11(Z)) -> if_mult_4_in_2_ggga5(X, Y, W, Z, mult_4_in_ggga4(X, Y, W, Z))
if_mult_4_in_2_ggga5(X, Y, W, Z, mult_4_out_ggga4(X, Y, W, Z)) -> mult_4_out_ggga4(X, Y, s_11(W), s_11(Z))
if_mult_4_in_1_ggga4(U, Y, Z, mult_4_out_ggga4(U, Y, Y, Z)) -> mult_4_out_ggga4(s_11(U), Y, 0_0, Z)
if_times_3_in_1_gga4(X, Y, Z, mult_4_out_ggga4(X, Y, 0_0, Z)) -> times_3_out_gga3(X, Y, Z)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
times_3_in_gga3(X, Y, Z) -> if_times_3_in_1_gga4(X, Y, Z, mult_4_in_ggga4(X, Y, 0_0, Z))
mult_4_in_ggga4(0_0, Y, 0_0, 0_0) -> mult_4_out_ggga4(0_0, Y, 0_0, 0_0)
mult_4_in_ggga4(s_11(U), Y, 0_0, Z) -> if_mult_4_in_1_ggga4(U, Y, Z, mult_4_in_ggga4(U, Y, Y, Z))
mult_4_in_ggga4(X, Y, s_11(W), s_11(Z)) -> if_mult_4_in_2_ggga5(X, Y, W, Z, mult_4_in_ggga4(X, Y, W, Z))
if_mult_4_in_2_ggga5(X, Y, W, Z, mult_4_out_ggga4(X, Y, W, Z)) -> mult_4_out_ggga4(X, Y, s_11(W), s_11(Z))
if_mult_4_in_1_ggga4(U, Y, Z, mult_4_out_ggga4(U, Y, Y, Z)) -> mult_4_out_ggga4(s_11(U), Y, 0_0, Z)
if_times_3_in_1_gga4(X, Y, Z, mult_4_out_ggga4(X, Y, 0_0, Z)) -> times_3_out_gga3(X, Y, Z)
TIMES_3_IN_GGA3(X, Y, Z) -> IF_TIMES_3_IN_1_GGA4(X, Y, Z, mult_4_in_ggga4(X, Y, 0_0, Z))
TIMES_3_IN_GGA3(X, Y, Z) -> MULT_4_IN_GGGA4(X, Y, 0_0, Z)
MULT_4_IN_GGGA4(s_11(U), Y, 0_0, Z) -> IF_MULT_4_IN_1_GGGA4(U, Y, Z, mult_4_in_ggga4(U, Y, Y, Z))
MULT_4_IN_GGGA4(s_11(U), Y, 0_0, Z) -> MULT_4_IN_GGGA4(U, Y, Y, Z)
MULT_4_IN_GGGA4(X, Y, s_11(W), s_11(Z)) -> IF_MULT_4_IN_2_GGGA5(X, Y, W, Z, mult_4_in_ggga4(X, Y, W, Z))
MULT_4_IN_GGGA4(X, Y, s_11(W), s_11(Z)) -> MULT_4_IN_GGGA4(X, Y, W, Z)
times_3_in_gga3(X, Y, Z) -> if_times_3_in_1_gga4(X, Y, Z, mult_4_in_ggga4(X, Y, 0_0, Z))
mult_4_in_ggga4(0_0, Y, 0_0, 0_0) -> mult_4_out_ggga4(0_0, Y, 0_0, 0_0)
mult_4_in_ggga4(s_11(U), Y, 0_0, Z) -> if_mult_4_in_1_ggga4(U, Y, Z, mult_4_in_ggga4(U, Y, Y, Z))
mult_4_in_ggga4(X, Y, s_11(W), s_11(Z)) -> if_mult_4_in_2_ggga5(X, Y, W, Z, mult_4_in_ggga4(X, Y, W, Z))
if_mult_4_in_2_ggga5(X, Y, W, Z, mult_4_out_ggga4(X, Y, W, Z)) -> mult_4_out_ggga4(X, Y, s_11(W), s_11(Z))
if_mult_4_in_1_ggga4(U, Y, Z, mult_4_out_ggga4(U, Y, Y, Z)) -> mult_4_out_ggga4(s_11(U), Y, 0_0, Z)
if_times_3_in_1_gga4(X, Y, Z, mult_4_out_ggga4(X, Y, 0_0, Z)) -> times_3_out_gga3(X, Y, Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
TIMES_3_IN_GGA3(X, Y, Z) -> IF_TIMES_3_IN_1_GGA4(X, Y, Z, mult_4_in_ggga4(X, Y, 0_0, Z))
TIMES_3_IN_GGA3(X, Y, Z) -> MULT_4_IN_GGGA4(X, Y, 0_0, Z)
MULT_4_IN_GGGA4(s_11(U), Y, 0_0, Z) -> IF_MULT_4_IN_1_GGGA4(U, Y, Z, mult_4_in_ggga4(U, Y, Y, Z))
MULT_4_IN_GGGA4(s_11(U), Y, 0_0, Z) -> MULT_4_IN_GGGA4(U, Y, Y, Z)
MULT_4_IN_GGGA4(X, Y, s_11(W), s_11(Z)) -> IF_MULT_4_IN_2_GGGA5(X, Y, W, Z, mult_4_in_ggga4(X, Y, W, Z))
MULT_4_IN_GGGA4(X, Y, s_11(W), s_11(Z)) -> MULT_4_IN_GGGA4(X, Y, W, Z)
times_3_in_gga3(X, Y, Z) -> if_times_3_in_1_gga4(X, Y, Z, mult_4_in_ggga4(X, Y, 0_0, Z))
mult_4_in_ggga4(0_0, Y, 0_0, 0_0) -> mult_4_out_ggga4(0_0, Y, 0_0, 0_0)
mult_4_in_ggga4(s_11(U), Y, 0_0, Z) -> if_mult_4_in_1_ggga4(U, Y, Z, mult_4_in_ggga4(U, Y, Y, Z))
mult_4_in_ggga4(X, Y, s_11(W), s_11(Z)) -> if_mult_4_in_2_ggga5(X, Y, W, Z, mult_4_in_ggga4(X, Y, W, Z))
if_mult_4_in_2_ggga5(X, Y, W, Z, mult_4_out_ggga4(X, Y, W, Z)) -> mult_4_out_ggga4(X, Y, s_11(W), s_11(Z))
if_mult_4_in_1_ggga4(U, Y, Z, mult_4_out_ggga4(U, Y, Y, Z)) -> mult_4_out_ggga4(s_11(U), Y, 0_0, Z)
if_times_3_in_1_gga4(X, Y, Z, mult_4_out_ggga4(X, Y, 0_0, Z)) -> times_3_out_gga3(X, Y, Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
MULT_4_IN_GGGA4(s_11(U), Y, 0_0, Z) -> MULT_4_IN_GGGA4(U, Y, Y, Z)
MULT_4_IN_GGGA4(X, Y, s_11(W), s_11(Z)) -> MULT_4_IN_GGGA4(X, Y, W, Z)
times_3_in_gga3(X, Y, Z) -> if_times_3_in_1_gga4(X, Y, Z, mult_4_in_ggga4(X, Y, 0_0, Z))
mult_4_in_ggga4(0_0, Y, 0_0, 0_0) -> mult_4_out_ggga4(0_0, Y, 0_0, 0_0)
mult_4_in_ggga4(s_11(U), Y, 0_0, Z) -> if_mult_4_in_1_ggga4(U, Y, Z, mult_4_in_ggga4(U, Y, Y, Z))
mult_4_in_ggga4(X, Y, s_11(W), s_11(Z)) -> if_mult_4_in_2_ggga5(X, Y, W, Z, mult_4_in_ggga4(X, Y, W, Z))
if_mult_4_in_2_ggga5(X, Y, W, Z, mult_4_out_ggga4(X, Y, W, Z)) -> mult_4_out_ggga4(X, Y, s_11(W), s_11(Z))
if_mult_4_in_1_ggga4(U, Y, Z, mult_4_out_ggga4(U, Y, Y, Z)) -> mult_4_out_ggga4(s_11(U), Y, 0_0, Z)
if_times_3_in_1_gga4(X, Y, Z, mult_4_out_ggga4(X, Y, 0_0, Z)) -> times_3_out_gga3(X, Y, Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
MULT_4_IN_GGGA4(s_11(U), Y, 0_0, Z) -> MULT_4_IN_GGGA4(U, Y, Y, Z)
MULT_4_IN_GGGA4(X, Y, s_11(W), s_11(Z)) -> MULT_4_IN_GGGA4(X, Y, W, Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
MULT_4_IN_GGGA3(s_11(U), Y, 0_0) -> MULT_4_IN_GGGA3(U, Y, Y)
MULT_4_IN_GGGA3(X, Y, s_11(W)) -> MULT_4_IN_GGGA3(X, Y, W)
From the DPs we obtained the following set of size-change graphs: