↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
merge3: (b,b,f)
leq2: (b,b)
less2: (b,b)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
merge_3_in_gga3([]_0, X, X) -> merge_3_out_gga3([]_0, X, X)
merge_3_in_gga3(X, []_0, X) -> merge_3_out_gga3(X, []_0, X)
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_in_gg2(X, Y))
leq_2_in_gg2(0_0, 0_0) -> leq_2_out_gg2(0_0, 0_0)
leq_2_in_gg2(0_0, s_11(0_0)) -> leq_2_out_gg2(0_0, s_11(0_0))
leq_2_in_gg2(s_11(X), s_11(Y)) -> if_leq_2_in_1_gg3(X, Y, leq_2_in_gg2(X, Y))
if_leq_2_in_1_gg3(X, Y, leq_2_out_gg2(X, Y)) -> leq_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(Xs, ._22(Y, Ys), Zs))
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_in_gg2(Y, X))
less_2_in_gg2(0_0, s_11(0_0)) -> less_2_out_gg2(0_0, s_11(0_0))
less_2_in_gg2(s_11(X), s_11(Y)) -> if_less_2_in_1_gg3(X, Y, less_2_in_gg2(X, Y))
if_less_2_in_1_gg3(X, Y, less_2_out_gg2(X, Y)) -> less_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(._22(X, Xs), Ys, Zs))
if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(._22(X, Xs), Ys, Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs))
if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(Xs, ._22(Y, Ys), Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
merge_3_in_gga3([]_0, X, X) -> merge_3_out_gga3([]_0, X, X)
merge_3_in_gga3(X, []_0, X) -> merge_3_out_gga3(X, []_0, X)
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_in_gg2(X, Y))
leq_2_in_gg2(0_0, 0_0) -> leq_2_out_gg2(0_0, 0_0)
leq_2_in_gg2(0_0, s_11(0_0)) -> leq_2_out_gg2(0_0, s_11(0_0))
leq_2_in_gg2(s_11(X), s_11(Y)) -> if_leq_2_in_1_gg3(X, Y, leq_2_in_gg2(X, Y))
if_leq_2_in_1_gg3(X, Y, leq_2_out_gg2(X, Y)) -> leq_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(Xs, ._22(Y, Ys), Zs))
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_in_gg2(Y, X))
less_2_in_gg2(0_0, s_11(0_0)) -> less_2_out_gg2(0_0, s_11(0_0))
less_2_in_gg2(s_11(X), s_11(Y)) -> if_less_2_in_1_gg3(X, Y, less_2_in_gg2(X, Y))
if_less_2_in_1_gg3(X, Y, less_2_out_gg2(X, Y)) -> less_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(._22(X, Xs), Ys, Zs))
if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(._22(X, Xs), Ys, Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs))
if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(Xs, ._22(Y, Ys), Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs))
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> IF_MERGE_3_IN_1_GGA6(X, Xs, Y, Ys, Zs, leq_2_in_gg2(X, Y))
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> LEQ_2_IN_GG2(X, Y)
LEQ_2_IN_GG2(s_11(X), s_11(Y)) -> IF_LEQ_2_IN_1_GG3(X, Y, leq_2_in_gg2(X, Y))
LEQ_2_IN_GG2(s_11(X), s_11(Y)) -> LEQ_2_IN_GG2(X, Y)
IF_MERGE_3_IN_1_GGA6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> IF_MERGE_3_IN_2_GGA6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(Xs, ._22(Y, Ys), Zs))
IF_MERGE_3_IN_1_GGA6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> MERGE_3_IN_GGA3(Xs, ._22(Y, Ys), Zs)
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> IF_MERGE_3_IN_3_GGA6(X, Xs, Y, Ys, Zs, less_2_in_gg2(Y, X))
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> LESS_2_IN_GG2(Y, X)
LESS_2_IN_GG2(s_11(X), s_11(Y)) -> IF_LESS_2_IN_1_GG3(X, Y, less_2_in_gg2(X, Y))
LESS_2_IN_GG2(s_11(X), s_11(Y)) -> LESS_2_IN_GG2(X, Y)
IF_MERGE_3_IN_3_GGA6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> IF_MERGE_3_IN_4_GGA6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(._22(X, Xs), Ys, Zs))
IF_MERGE_3_IN_3_GGA6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> MERGE_3_IN_GGA3(._22(X, Xs), Ys, Zs)
merge_3_in_gga3([]_0, X, X) -> merge_3_out_gga3([]_0, X, X)
merge_3_in_gga3(X, []_0, X) -> merge_3_out_gga3(X, []_0, X)
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_in_gg2(X, Y))
leq_2_in_gg2(0_0, 0_0) -> leq_2_out_gg2(0_0, 0_0)
leq_2_in_gg2(0_0, s_11(0_0)) -> leq_2_out_gg2(0_0, s_11(0_0))
leq_2_in_gg2(s_11(X), s_11(Y)) -> if_leq_2_in_1_gg3(X, Y, leq_2_in_gg2(X, Y))
if_leq_2_in_1_gg3(X, Y, leq_2_out_gg2(X, Y)) -> leq_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(Xs, ._22(Y, Ys), Zs))
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_in_gg2(Y, X))
less_2_in_gg2(0_0, s_11(0_0)) -> less_2_out_gg2(0_0, s_11(0_0))
less_2_in_gg2(s_11(X), s_11(Y)) -> if_less_2_in_1_gg3(X, Y, less_2_in_gg2(X, Y))
if_less_2_in_1_gg3(X, Y, less_2_out_gg2(X, Y)) -> less_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(._22(X, Xs), Ys, Zs))
if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(._22(X, Xs), Ys, Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs))
if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(Xs, ._22(Y, Ys), Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> IF_MERGE_3_IN_1_GGA6(X, Xs, Y, Ys, Zs, leq_2_in_gg2(X, Y))
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> LEQ_2_IN_GG2(X, Y)
LEQ_2_IN_GG2(s_11(X), s_11(Y)) -> IF_LEQ_2_IN_1_GG3(X, Y, leq_2_in_gg2(X, Y))
LEQ_2_IN_GG2(s_11(X), s_11(Y)) -> LEQ_2_IN_GG2(X, Y)
IF_MERGE_3_IN_1_GGA6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> IF_MERGE_3_IN_2_GGA6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(Xs, ._22(Y, Ys), Zs))
IF_MERGE_3_IN_1_GGA6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> MERGE_3_IN_GGA3(Xs, ._22(Y, Ys), Zs)
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> IF_MERGE_3_IN_3_GGA6(X, Xs, Y, Ys, Zs, less_2_in_gg2(Y, X))
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> LESS_2_IN_GG2(Y, X)
LESS_2_IN_GG2(s_11(X), s_11(Y)) -> IF_LESS_2_IN_1_GG3(X, Y, less_2_in_gg2(X, Y))
LESS_2_IN_GG2(s_11(X), s_11(Y)) -> LESS_2_IN_GG2(X, Y)
IF_MERGE_3_IN_3_GGA6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> IF_MERGE_3_IN_4_GGA6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(._22(X, Xs), Ys, Zs))
IF_MERGE_3_IN_3_GGA6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> MERGE_3_IN_GGA3(._22(X, Xs), Ys, Zs)
merge_3_in_gga3([]_0, X, X) -> merge_3_out_gga3([]_0, X, X)
merge_3_in_gga3(X, []_0, X) -> merge_3_out_gga3(X, []_0, X)
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_in_gg2(X, Y))
leq_2_in_gg2(0_0, 0_0) -> leq_2_out_gg2(0_0, 0_0)
leq_2_in_gg2(0_0, s_11(0_0)) -> leq_2_out_gg2(0_0, s_11(0_0))
leq_2_in_gg2(s_11(X), s_11(Y)) -> if_leq_2_in_1_gg3(X, Y, leq_2_in_gg2(X, Y))
if_leq_2_in_1_gg3(X, Y, leq_2_out_gg2(X, Y)) -> leq_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(Xs, ._22(Y, Ys), Zs))
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_in_gg2(Y, X))
less_2_in_gg2(0_0, s_11(0_0)) -> less_2_out_gg2(0_0, s_11(0_0))
less_2_in_gg2(s_11(X), s_11(Y)) -> if_less_2_in_1_gg3(X, Y, less_2_in_gg2(X, Y))
if_less_2_in_1_gg3(X, Y, less_2_out_gg2(X, Y)) -> less_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(._22(X, Xs), Ys, Zs))
if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(._22(X, Xs), Ys, Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs))
if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(Xs, ._22(Y, Ys), Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
LESS_2_IN_GG2(s_11(X), s_11(Y)) -> LESS_2_IN_GG2(X, Y)
merge_3_in_gga3([]_0, X, X) -> merge_3_out_gga3([]_0, X, X)
merge_3_in_gga3(X, []_0, X) -> merge_3_out_gga3(X, []_0, X)
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_in_gg2(X, Y))
leq_2_in_gg2(0_0, 0_0) -> leq_2_out_gg2(0_0, 0_0)
leq_2_in_gg2(0_0, s_11(0_0)) -> leq_2_out_gg2(0_0, s_11(0_0))
leq_2_in_gg2(s_11(X), s_11(Y)) -> if_leq_2_in_1_gg3(X, Y, leq_2_in_gg2(X, Y))
if_leq_2_in_1_gg3(X, Y, leq_2_out_gg2(X, Y)) -> leq_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(Xs, ._22(Y, Ys), Zs))
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_in_gg2(Y, X))
less_2_in_gg2(0_0, s_11(0_0)) -> less_2_out_gg2(0_0, s_11(0_0))
less_2_in_gg2(s_11(X), s_11(Y)) -> if_less_2_in_1_gg3(X, Y, less_2_in_gg2(X, Y))
if_less_2_in_1_gg3(X, Y, less_2_out_gg2(X, Y)) -> less_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(._22(X, Xs), Ys, Zs))
if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(._22(X, Xs), Ys, Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs))
if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(Xs, ._22(Y, Ys), Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
LESS_2_IN_GG2(s_11(X), s_11(Y)) -> LESS_2_IN_GG2(X, Y)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
LESS_2_IN_GG2(s_11(X), s_11(Y)) -> LESS_2_IN_GG2(X, Y)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
LEQ_2_IN_GG2(s_11(X), s_11(Y)) -> LEQ_2_IN_GG2(X, Y)
merge_3_in_gga3([]_0, X, X) -> merge_3_out_gga3([]_0, X, X)
merge_3_in_gga3(X, []_0, X) -> merge_3_out_gga3(X, []_0, X)
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_in_gg2(X, Y))
leq_2_in_gg2(0_0, 0_0) -> leq_2_out_gg2(0_0, 0_0)
leq_2_in_gg2(0_0, s_11(0_0)) -> leq_2_out_gg2(0_0, s_11(0_0))
leq_2_in_gg2(s_11(X), s_11(Y)) -> if_leq_2_in_1_gg3(X, Y, leq_2_in_gg2(X, Y))
if_leq_2_in_1_gg3(X, Y, leq_2_out_gg2(X, Y)) -> leq_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(Xs, ._22(Y, Ys), Zs))
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_in_gg2(Y, X))
less_2_in_gg2(0_0, s_11(0_0)) -> less_2_out_gg2(0_0, s_11(0_0))
less_2_in_gg2(s_11(X), s_11(Y)) -> if_less_2_in_1_gg3(X, Y, less_2_in_gg2(X, Y))
if_less_2_in_1_gg3(X, Y, less_2_out_gg2(X, Y)) -> less_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(._22(X, Xs), Ys, Zs))
if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(._22(X, Xs), Ys, Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs))
if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(Xs, ._22(Y, Ys), Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
LEQ_2_IN_GG2(s_11(X), s_11(Y)) -> LEQ_2_IN_GG2(X, Y)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
LEQ_2_IN_GG2(s_11(X), s_11(Y)) -> LEQ_2_IN_GG2(X, Y)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
IF_MERGE_3_IN_1_GGA6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> MERGE_3_IN_GGA3(Xs, ._22(Y, Ys), Zs)
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> IF_MERGE_3_IN_1_GGA6(X, Xs, Y, Ys, Zs, leq_2_in_gg2(X, Y))
IF_MERGE_3_IN_3_GGA6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> MERGE_3_IN_GGA3(._22(X, Xs), Ys, Zs)
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> IF_MERGE_3_IN_3_GGA6(X, Xs, Y, Ys, Zs, less_2_in_gg2(Y, X))
merge_3_in_gga3([]_0, X, X) -> merge_3_out_gga3([]_0, X, X)
merge_3_in_gga3(X, []_0, X) -> merge_3_out_gga3(X, []_0, X)
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_in_gg2(X, Y))
leq_2_in_gg2(0_0, 0_0) -> leq_2_out_gg2(0_0, 0_0)
leq_2_in_gg2(0_0, s_11(0_0)) -> leq_2_out_gg2(0_0, s_11(0_0))
leq_2_in_gg2(s_11(X), s_11(Y)) -> if_leq_2_in_1_gg3(X, Y, leq_2_in_gg2(X, Y))
if_leq_2_in_1_gg3(X, Y, leq_2_out_gg2(X, Y)) -> leq_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_1_gga6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(Xs, ._22(Y, Ys), Zs))
merge_3_in_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_in_gg2(Y, X))
less_2_in_gg2(0_0, s_11(0_0)) -> less_2_out_gg2(0_0, s_11(0_0))
less_2_in_gg2(s_11(X), s_11(Y)) -> if_less_2_in_1_gg3(X, Y, less_2_in_gg2(X, Y))
if_less_2_in_1_gg3(X, Y, less_2_out_gg2(X, Y)) -> less_2_out_gg2(s_11(X), s_11(Y))
if_merge_3_in_3_gga6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_in_gga3(._22(X, Xs), Ys, Zs))
if_merge_3_in_4_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(._22(X, Xs), Ys, Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs))
if_merge_3_in_2_gga6(X, Xs, Y, Ys, Zs, merge_3_out_gga3(Xs, ._22(Y, Ys), Zs)) -> merge_3_out_gga3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
IF_MERGE_3_IN_1_GGA6(X, Xs, Y, Ys, Zs, leq_2_out_gg2(X, Y)) -> MERGE_3_IN_GGA3(Xs, ._22(Y, Ys), Zs)
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(X, Zs)) -> IF_MERGE_3_IN_1_GGA6(X, Xs, Y, Ys, Zs, leq_2_in_gg2(X, Y))
IF_MERGE_3_IN_3_GGA6(X, Xs, Y, Ys, Zs, less_2_out_gg2(Y, X)) -> MERGE_3_IN_GGA3(._22(X, Xs), Ys, Zs)
MERGE_3_IN_GGA3(._22(X, Xs), ._22(Y, Ys), ._22(Y, Zs)) -> IF_MERGE_3_IN_3_GGA6(X, Xs, Y, Ys, Zs, less_2_in_gg2(Y, X))
leq_2_in_gg2(0_0, 0_0) -> leq_2_out_gg2(0_0, 0_0)
leq_2_in_gg2(0_0, s_11(0_0)) -> leq_2_out_gg2(0_0, s_11(0_0))
leq_2_in_gg2(s_11(X), s_11(Y)) -> if_leq_2_in_1_gg3(X, Y, leq_2_in_gg2(X, Y))
less_2_in_gg2(0_0, s_11(0_0)) -> less_2_out_gg2(0_0, s_11(0_0))
less_2_in_gg2(s_11(X), s_11(Y)) -> if_less_2_in_1_gg3(X, Y, less_2_in_gg2(X, Y))
if_leq_2_in_1_gg3(X, Y, leq_2_out_gg2(X, Y)) -> leq_2_out_gg2(s_11(X), s_11(Y))
if_less_2_in_1_gg3(X, Y, less_2_out_gg2(X, Y)) -> less_2_out_gg2(s_11(X), s_11(Y))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPPoloProof
IF_MERGE_3_IN_1_GGA5(X, Xs, Y, Ys, leq_2_out_gg) -> MERGE_3_IN_GGA2(Xs, ._22(Y, Ys))
MERGE_3_IN_GGA2(._22(X, Xs), ._22(Y, Ys)) -> IF_MERGE_3_IN_1_GGA5(X, Xs, Y, Ys, leq_2_in_gg2(X, Y))
IF_MERGE_3_IN_3_GGA5(X, Xs, Y, Ys, less_2_out_gg) -> MERGE_3_IN_GGA2(._22(X, Xs), Ys)
MERGE_3_IN_GGA2(._22(X, Xs), ._22(Y, Ys)) -> IF_MERGE_3_IN_3_GGA5(X, Xs, Y, Ys, less_2_in_gg2(Y, X))
leq_2_in_gg2(0_0, 0_0) -> leq_2_out_gg
leq_2_in_gg2(0_0, s_11(0_0)) -> leq_2_out_gg
leq_2_in_gg2(s_11(X), s_11(Y)) -> if_leq_2_in_1_gg1(leq_2_in_gg2(X, Y))
less_2_in_gg2(0_0, s_11(0_0)) -> less_2_out_gg
less_2_in_gg2(s_11(X), s_11(Y)) -> if_less_2_in_1_gg1(less_2_in_gg2(X, Y))
if_leq_2_in_1_gg1(leq_2_out_gg) -> leq_2_out_gg
if_less_2_in_1_gg1(less_2_out_gg) -> less_2_out_gg
leq_2_in_gg2(x0, x1)
less_2_in_gg2(x0, x1)
if_leq_2_in_1_gg1(x0)
if_less_2_in_1_gg1(x0)
The remaining Dependency Pairs were at least non-strictly be oriented.
MERGE_3_IN_GGA2(._22(X, Xs), ._22(Y, Ys)) -> IF_MERGE_3_IN_1_GGA5(X, Xs, Y, Ys, leq_2_in_gg2(X, Y))
With the implicit AFS there is no usable rule.
IF_MERGE_3_IN_1_GGA5(X, Xs, Y, Ys, leq_2_out_gg) -> MERGE_3_IN_GGA2(Xs, ._22(Y, Ys))
IF_MERGE_3_IN_3_GGA5(X, Xs, Y, Ys, less_2_out_gg) -> MERGE_3_IN_GGA2(._22(X, Xs), Ys)
MERGE_3_IN_GGA2(._22(X, Xs), ._22(Y, Ys)) -> IF_MERGE_3_IN_3_GGA5(X, Xs, Y, Ys, less_2_in_gg2(Y, X))
Used ordering: POLO with Polynomial interpretation:
POL(if_leq_2_in_1_gg1(x1)) = 0
POL(less_2_out_gg) = 0
POL(0_0) = 0
POL(MERGE_3_IN_GGA2(x1, x2)) = x1
POL(._22(x1, x2)) = 1 + x2
POL(IF_MERGE_3_IN_1_GGA5(x1, x2, x3, x4, x5)) = x2
POL(if_less_2_in_1_gg1(x1)) = 0
POL(leq_2_out_gg) = 0
POL(leq_2_in_gg2(x1, x2)) = 0
POL(s_11(x1)) = 0
POL(IF_MERGE_3_IN_3_GGA5(x1, x2, x3, x4, x5)) = 1 + x2
POL(less_2_in_gg2(x1, x2)) = 0
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPPoloProof
↳ QDP
↳ DependencyGraphProof
IF_MERGE_3_IN_1_GGA5(X, Xs, Y, Ys, leq_2_out_gg) -> MERGE_3_IN_GGA2(Xs, ._22(Y, Ys))
IF_MERGE_3_IN_3_GGA5(X, Xs, Y, Ys, less_2_out_gg) -> MERGE_3_IN_GGA2(._22(X, Xs), Ys)
MERGE_3_IN_GGA2(._22(X, Xs), ._22(Y, Ys)) -> IF_MERGE_3_IN_3_GGA5(X, Xs, Y, Ys, less_2_in_gg2(Y, X))
leq_2_in_gg2(0_0, 0_0) -> leq_2_out_gg
leq_2_in_gg2(0_0, s_11(0_0)) -> leq_2_out_gg
leq_2_in_gg2(s_11(X), s_11(Y)) -> if_leq_2_in_1_gg1(leq_2_in_gg2(X, Y))
less_2_in_gg2(0_0, s_11(0_0)) -> less_2_out_gg
less_2_in_gg2(s_11(X), s_11(Y)) -> if_less_2_in_1_gg1(less_2_in_gg2(X, Y))
if_leq_2_in_1_gg1(leq_2_out_gg) -> leq_2_out_gg
if_less_2_in_1_gg1(less_2_out_gg) -> less_2_out_gg
leq_2_in_gg2(x0, x1)
less_2_in_gg2(x0, x1)
if_leq_2_in_1_gg1(x0)
if_less_2_in_1_gg1(x0)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPPoloProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPSizeChangeProof
MERGE_3_IN_GGA2(._22(X, Xs), ._22(Y, Ys)) -> IF_MERGE_3_IN_3_GGA5(X, Xs, Y, Ys, less_2_in_gg2(Y, X))
IF_MERGE_3_IN_3_GGA5(X, Xs, Y, Ys, less_2_out_gg) -> MERGE_3_IN_GGA2(._22(X, Xs), Ys)
leq_2_in_gg2(0_0, 0_0) -> leq_2_out_gg
leq_2_in_gg2(0_0, s_11(0_0)) -> leq_2_out_gg
leq_2_in_gg2(s_11(X), s_11(Y)) -> if_leq_2_in_1_gg1(leq_2_in_gg2(X, Y))
less_2_in_gg2(0_0, s_11(0_0)) -> less_2_out_gg
less_2_in_gg2(s_11(X), s_11(Y)) -> if_less_2_in_1_gg1(less_2_in_gg2(X, Y))
if_leq_2_in_1_gg1(leq_2_out_gg) -> leq_2_out_gg
if_less_2_in_1_gg1(less_2_out_gg) -> less_2_out_gg
leq_2_in_gg2(x0, x1)
less_2_in_gg2(x0, x1)
if_leq_2_in_1_gg1(x0)
if_less_2_in_1_gg1(x0)
From the DPs we obtained the following set of size-change graphs: