↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
average3: (b,b,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
average_3_in_gga3(0_0, 0_0, 0_0) -> average_3_out_gga3(0_0, 0_0, 0_0)
average_3_in_gga3(0_0, s_11(0_0), 0_0) -> average_3_out_gga3(0_0, s_11(0_0), 0_0)
average_3_in_gga3(0_0, s_11(s_11(0_0)), s_11(0_0)) -> average_3_out_gga3(0_0, s_11(s_11(0_0)), s_11(0_0))
average_3_in_gga3(s_11(X), Y, Z) -> if_average_3_in_1_gga4(X, Y, Z, average_3_in_gga3(X, s_11(Y), Z))
average_3_in_gga3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> if_average_3_in_2_gga4(X, Y, Z, average_3_in_gga3(s_11(X), Y, Z))
if_average_3_in_2_gga4(X, Y, Z, average_3_out_gga3(s_11(X), Y, Z)) -> average_3_out_gga3(X, s_11(s_11(s_11(Y))), s_11(Z))
if_average_3_in_1_gga4(X, Y, Z, average_3_out_gga3(X, s_11(Y), Z)) -> average_3_out_gga3(s_11(X), Y, Z)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
average_3_in_gga3(0_0, 0_0, 0_0) -> average_3_out_gga3(0_0, 0_0, 0_0)
average_3_in_gga3(0_0, s_11(0_0), 0_0) -> average_3_out_gga3(0_0, s_11(0_0), 0_0)
average_3_in_gga3(0_0, s_11(s_11(0_0)), s_11(0_0)) -> average_3_out_gga3(0_0, s_11(s_11(0_0)), s_11(0_0))
average_3_in_gga3(s_11(X), Y, Z) -> if_average_3_in_1_gga4(X, Y, Z, average_3_in_gga3(X, s_11(Y), Z))
average_3_in_gga3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> if_average_3_in_2_gga4(X, Y, Z, average_3_in_gga3(s_11(X), Y, Z))
if_average_3_in_2_gga4(X, Y, Z, average_3_out_gga3(s_11(X), Y, Z)) -> average_3_out_gga3(X, s_11(s_11(s_11(Y))), s_11(Z))
if_average_3_in_1_gga4(X, Y, Z, average_3_out_gga3(X, s_11(Y), Z)) -> average_3_out_gga3(s_11(X), Y, Z)
AVERAGE_3_IN_GGA3(s_11(X), Y, Z) -> IF_AVERAGE_3_IN_1_GGA4(X, Y, Z, average_3_in_gga3(X, s_11(Y), Z))
AVERAGE_3_IN_GGA3(s_11(X), Y, Z) -> AVERAGE_3_IN_GGA3(X, s_11(Y), Z)
AVERAGE_3_IN_GGA3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> IF_AVERAGE_3_IN_2_GGA4(X, Y, Z, average_3_in_gga3(s_11(X), Y, Z))
AVERAGE_3_IN_GGA3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> AVERAGE_3_IN_GGA3(s_11(X), Y, Z)
average_3_in_gga3(0_0, 0_0, 0_0) -> average_3_out_gga3(0_0, 0_0, 0_0)
average_3_in_gga3(0_0, s_11(0_0), 0_0) -> average_3_out_gga3(0_0, s_11(0_0), 0_0)
average_3_in_gga3(0_0, s_11(s_11(0_0)), s_11(0_0)) -> average_3_out_gga3(0_0, s_11(s_11(0_0)), s_11(0_0))
average_3_in_gga3(s_11(X), Y, Z) -> if_average_3_in_1_gga4(X, Y, Z, average_3_in_gga3(X, s_11(Y), Z))
average_3_in_gga3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> if_average_3_in_2_gga4(X, Y, Z, average_3_in_gga3(s_11(X), Y, Z))
if_average_3_in_2_gga4(X, Y, Z, average_3_out_gga3(s_11(X), Y, Z)) -> average_3_out_gga3(X, s_11(s_11(s_11(Y))), s_11(Z))
if_average_3_in_1_gga4(X, Y, Z, average_3_out_gga3(X, s_11(Y), Z)) -> average_3_out_gga3(s_11(X), Y, Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
AVERAGE_3_IN_GGA3(s_11(X), Y, Z) -> IF_AVERAGE_3_IN_1_GGA4(X, Y, Z, average_3_in_gga3(X, s_11(Y), Z))
AVERAGE_3_IN_GGA3(s_11(X), Y, Z) -> AVERAGE_3_IN_GGA3(X, s_11(Y), Z)
AVERAGE_3_IN_GGA3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> IF_AVERAGE_3_IN_2_GGA4(X, Y, Z, average_3_in_gga3(s_11(X), Y, Z))
AVERAGE_3_IN_GGA3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> AVERAGE_3_IN_GGA3(s_11(X), Y, Z)
average_3_in_gga3(0_0, 0_0, 0_0) -> average_3_out_gga3(0_0, 0_0, 0_0)
average_3_in_gga3(0_0, s_11(0_0), 0_0) -> average_3_out_gga3(0_0, s_11(0_0), 0_0)
average_3_in_gga3(0_0, s_11(s_11(0_0)), s_11(0_0)) -> average_3_out_gga3(0_0, s_11(s_11(0_0)), s_11(0_0))
average_3_in_gga3(s_11(X), Y, Z) -> if_average_3_in_1_gga4(X, Y, Z, average_3_in_gga3(X, s_11(Y), Z))
average_3_in_gga3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> if_average_3_in_2_gga4(X, Y, Z, average_3_in_gga3(s_11(X), Y, Z))
if_average_3_in_2_gga4(X, Y, Z, average_3_out_gga3(s_11(X), Y, Z)) -> average_3_out_gga3(X, s_11(s_11(s_11(Y))), s_11(Z))
if_average_3_in_1_gga4(X, Y, Z, average_3_out_gga3(X, s_11(Y), Z)) -> average_3_out_gga3(s_11(X), Y, Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
AVERAGE_3_IN_GGA3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> AVERAGE_3_IN_GGA3(s_11(X), Y, Z)
AVERAGE_3_IN_GGA3(s_11(X), Y, Z) -> AVERAGE_3_IN_GGA3(X, s_11(Y), Z)
average_3_in_gga3(0_0, 0_0, 0_0) -> average_3_out_gga3(0_0, 0_0, 0_0)
average_3_in_gga3(0_0, s_11(0_0), 0_0) -> average_3_out_gga3(0_0, s_11(0_0), 0_0)
average_3_in_gga3(0_0, s_11(s_11(0_0)), s_11(0_0)) -> average_3_out_gga3(0_0, s_11(s_11(0_0)), s_11(0_0))
average_3_in_gga3(s_11(X), Y, Z) -> if_average_3_in_1_gga4(X, Y, Z, average_3_in_gga3(X, s_11(Y), Z))
average_3_in_gga3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> if_average_3_in_2_gga4(X, Y, Z, average_3_in_gga3(s_11(X), Y, Z))
if_average_3_in_2_gga4(X, Y, Z, average_3_out_gga3(s_11(X), Y, Z)) -> average_3_out_gga3(X, s_11(s_11(s_11(Y))), s_11(Z))
if_average_3_in_1_gga4(X, Y, Z, average_3_out_gga3(X, s_11(Y), Z)) -> average_3_out_gga3(s_11(X), Y, Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
AVERAGE_3_IN_GGA3(X, s_11(s_11(s_11(Y))), s_11(Z)) -> AVERAGE_3_IN_GGA3(s_11(X), Y, Z)
AVERAGE_3_IN_GGA3(s_11(X), Y, Z) -> AVERAGE_3_IN_GGA3(X, s_11(Y), Z)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
AVERAGE_3_IN_GGA2(X, s_11(s_11(s_11(Y)))) -> AVERAGE_3_IN_GGA2(s_11(X), Y)
AVERAGE_3_IN_GGA2(s_11(X), Y) -> AVERAGE_3_IN_GGA2(X, s_11(Y))
AVERAGE_3_IN_GGA2(X, s_11(s_11(s_11(Y)))) -> AVERAGE_3_IN_GGA2(s_11(X), Y)
POL(s_11(x1)) = 1 + x1
POL(AVERAGE_3_IN_GGA2(x1, x2)) = 1 + x1 + x2
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPSizeChangeProof
AVERAGE_3_IN_GGA2(s_11(X), Y) -> AVERAGE_3_IN_GGA2(X, s_11(Y))
From the DPs we obtained the following set of size-change graphs: