↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
sameleaves2: (b,b)
getleave4: (b,b,f,f) (b,b,b,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
sameleaves_2_in_gg2(leaf_11(L), leaf_11(L)) -> sameleaves_2_out_gg2(leaf_11(L), leaf_11(L))
sameleaves_2_in_gg2(tree_22(T1, T2), tree_22(S1, S2)) -> if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_in_ggaa4(T1, T2, L, T))
getleave_4_in_ggaa4(leaf_11(A), C, A, C) -> getleave_4_out_ggaa4(leaf_11(A), C, A, C)
getleave_4_in_ggaa4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_in_ggaa4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_out_ggaa4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggaa4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_in_ggga4(S1, S2, L, S))
getleave_4_in_ggga4(leaf_11(A), C, A, C) -> getleave_4_out_ggga4(leaf_11(A), C, A, C)
getleave_4_in_ggga4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_in_ggga4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_out_ggga4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggga4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_in_gg2(T, S))
if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_out_gg2(T, S)) -> sameleaves_2_out_gg2(tree_22(T1, T2), tree_22(S1, S2))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
sameleaves_2_in_gg2(leaf_11(L), leaf_11(L)) -> sameleaves_2_out_gg2(leaf_11(L), leaf_11(L))
sameleaves_2_in_gg2(tree_22(T1, T2), tree_22(S1, S2)) -> if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_in_ggaa4(T1, T2, L, T))
getleave_4_in_ggaa4(leaf_11(A), C, A, C) -> getleave_4_out_ggaa4(leaf_11(A), C, A, C)
getleave_4_in_ggaa4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_in_ggaa4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_out_ggaa4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggaa4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_in_ggga4(S1, S2, L, S))
getleave_4_in_ggga4(leaf_11(A), C, A, C) -> getleave_4_out_ggga4(leaf_11(A), C, A, C)
getleave_4_in_ggga4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_in_ggga4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_out_ggga4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggga4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_in_gg2(T, S))
if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_out_gg2(T, S)) -> sameleaves_2_out_gg2(tree_22(T1, T2), tree_22(S1, S2))
SAMELEAVES_2_IN_GG2(tree_22(T1, T2), tree_22(S1, S2)) -> IF_SAMELEAVES_2_IN_1_GG5(T1, T2, S1, S2, getleave_4_in_ggaa4(T1, T2, L, T))
SAMELEAVES_2_IN_GG2(tree_22(T1, T2), tree_22(S1, S2)) -> GETLEAVE_4_IN_GGAA4(T1, T2, L, T)
GETLEAVE_4_IN_GGAA4(tree_22(A, B), C, L, O) -> IF_GETLEAVE_4_IN_1_GGAA6(A, B, C, L, O, getleave_4_in_ggaa4(A, tree_22(B, C), L, O))
GETLEAVE_4_IN_GGAA4(tree_22(A, B), C, L, O) -> GETLEAVE_4_IN_GGAA4(A, tree_22(B, C), L, O)
IF_SAMELEAVES_2_IN_1_GG5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> IF_SAMELEAVES_2_IN_2_GG7(T1, T2, S1, S2, L, T, getleave_4_in_ggga4(S1, S2, L, S))
IF_SAMELEAVES_2_IN_1_GG5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> GETLEAVE_4_IN_GGGA4(S1, S2, L, S)
GETLEAVE_4_IN_GGGA4(tree_22(A, B), C, L, O) -> IF_GETLEAVE_4_IN_1_GGGA6(A, B, C, L, O, getleave_4_in_ggga4(A, tree_22(B, C), L, O))
GETLEAVE_4_IN_GGGA4(tree_22(A, B), C, L, O) -> GETLEAVE_4_IN_GGGA4(A, tree_22(B, C), L, O)
IF_SAMELEAVES_2_IN_2_GG7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> IF_SAMELEAVES_2_IN_3_GG7(T1, T2, S1, S2, T, S, sameleaves_2_in_gg2(T, S))
IF_SAMELEAVES_2_IN_2_GG7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> SAMELEAVES_2_IN_GG2(T, S)
sameleaves_2_in_gg2(leaf_11(L), leaf_11(L)) -> sameleaves_2_out_gg2(leaf_11(L), leaf_11(L))
sameleaves_2_in_gg2(tree_22(T1, T2), tree_22(S1, S2)) -> if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_in_ggaa4(T1, T2, L, T))
getleave_4_in_ggaa4(leaf_11(A), C, A, C) -> getleave_4_out_ggaa4(leaf_11(A), C, A, C)
getleave_4_in_ggaa4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_in_ggaa4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_out_ggaa4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggaa4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_in_ggga4(S1, S2, L, S))
getleave_4_in_ggga4(leaf_11(A), C, A, C) -> getleave_4_out_ggga4(leaf_11(A), C, A, C)
getleave_4_in_ggga4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_in_ggga4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_out_ggga4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggga4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_in_gg2(T, S))
if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_out_gg2(T, S)) -> sameleaves_2_out_gg2(tree_22(T1, T2), tree_22(S1, S2))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
SAMELEAVES_2_IN_GG2(tree_22(T1, T2), tree_22(S1, S2)) -> IF_SAMELEAVES_2_IN_1_GG5(T1, T2, S1, S2, getleave_4_in_ggaa4(T1, T2, L, T))
SAMELEAVES_2_IN_GG2(tree_22(T1, T2), tree_22(S1, S2)) -> GETLEAVE_4_IN_GGAA4(T1, T2, L, T)
GETLEAVE_4_IN_GGAA4(tree_22(A, B), C, L, O) -> IF_GETLEAVE_4_IN_1_GGAA6(A, B, C, L, O, getleave_4_in_ggaa4(A, tree_22(B, C), L, O))
GETLEAVE_4_IN_GGAA4(tree_22(A, B), C, L, O) -> GETLEAVE_4_IN_GGAA4(A, tree_22(B, C), L, O)
IF_SAMELEAVES_2_IN_1_GG5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> IF_SAMELEAVES_2_IN_2_GG7(T1, T2, S1, S2, L, T, getleave_4_in_ggga4(S1, S2, L, S))
IF_SAMELEAVES_2_IN_1_GG5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> GETLEAVE_4_IN_GGGA4(S1, S2, L, S)
GETLEAVE_4_IN_GGGA4(tree_22(A, B), C, L, O) -> IF_GETLEAVE_4_IN_1_GGGA6(A, B, C, L, O, getleave_4_in_ggga4(A, tree_22(B, C), L, O))
GETLEAVE_4_IN_GGGA4(tree_22(A, B), C, L, O) -> GETLEAVE_4_IN_GGGA4(A, tree_22(B, C), L, O)
IF_SAMELEAVES_2_IN_2_GG7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> IF_SAMELEAVES_2_IN_3_GG7(T1, T2, S1, S2, T, S, sameleaves_2_in_gg2(T, S))
IF_SAMELEAVES_2_IN_2_GG7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> SAMELEAVES_2_IN_GG2(T, S)
sameleaves_2_in_gg2(leaf_11(L), leaf_11(L)) -> sameleaves_2_out_gg2(leaf_11(L), leaf_11(L))
sameleaves_2_in_gg2(tree_22(T1, T2), tree_22(S1, S2)) -> if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_in_ggaa4(T1, T2, L, T))
getleave_4_in_ggaa4(leaf_11(A), C, A, C) -> getleave_4_out_ggaa4(leaf_11(A), C, A, C)
getleave_4_in_ggaa4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_in_ggaa4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_out_ggaa4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggaa4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_in_ggga4(S1, S2, L, S))
getleave_4_in_ggga4(leaf_11(A), C, A, C) -> getleave_4_out_ggga4(leaf_11(A), C, A, C)
getleave_4_in_ggga4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_in_ggga4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_out_ggga4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggga4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_in_gg2(T, S))
if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_out_gg2(T, S)) -> sameleaves_2_out_gg2(tree_22(T1, T2), tree_22(S1, S2))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
GETLEAVE_4_IN_GGGA4(tree_22(A, B), C, L, O) -> GETLEAVE_4_IN_GGGA4(A, tree_22(B, C), L, O)
sameleaves_2_in_gg2(leaf_11(L), leaf_11(L)) -> sameleaves_2_out_gg2(leaf_11(L), leaf_11(L))
sameleaves_2_in_gg2(tree_22(T1, T2), tree_22(S1, S2)) -> if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_in_ggaa4(T1, T2, L, T))
getleave_4_in_ggaa4(leaf_11(A), C, A, C) -> getleave_4_out_ggaa4(leaf_11(A), C, A, C)
getleave_4_in_ggaa4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_in_ggaa4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_out_ggaa4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggaa4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_in_ggga4(S1, S2, L, S))
getleave_4_in_ggga4(leaf_11(A), C, A, C) -> getleave_4_out_ggga4(leaf_11(A), C, A, C)
getleave_4_in_ggga4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_in_ggga4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_out_ggga4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggga4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_in_gg2(T, S))
if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_out_gg2(T, S)) -> sameleaves_2_out_gg2(tree_22(T1, T2), tree_22(S1, S2))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
GETLEAVE_4_IN_GGGA4(tree_22(A, B), C, L, O) -> GETLEAVE_4_IN_GGGA4(A, tree_22(B, C), L, O)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
GETLEAVE_4_IN_GGGA3(tree_22(A, B), C, L) -> GETLEAVE_4_IN_GGGA3(A, tree_22(B, C), L)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
GETLEAVE_4_IN_GGAA4(tree_22(A, B), C, L, O) -> GETLEAVE_4_IN_GGAA4(A, tree_22(B, C), L, O)
sameleaves_2_in_gg2(leaf_11(L), leaf_11(L)) -> sameleaves_2_out_gg2(leaf_11(L), leaf_11(L))
sameleaves_2_in_gg2(tree_22(T1, T2), tree_22(S1, S2)) -> if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_in_ggaa4(T1, T2, L, T))
getleave_4_in_ggaa4(leaf_11(A), C, A, C) -> getleave_4_out_ggaa4(leaf_11(A), C, A, C)
getleave_4_in_ggaa4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_in_ggaa4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_out_ggaa4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggaa4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_in_ggga4(S1, S2, L, S))
getleave_4_in_ggga4(leaf_11(A), C, A, C) -> getleave_4_out_ggga4(leaf_11(A), C, A, C)
getleave_4_in_ggga4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_in_ggga4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_out_ggga4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggga4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_in_gg2(T, S))
if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_out_gg2(T, S)) -> sameleaves_2_out_gg2(tree_22(T1, T2), tree_22(S1, S2))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
GETLEAVE_4_IN_GGAA4(tree_22(A, B), C, L, O) -> GETLEAVE_4_IN_GGAA4(A, tree_22(B, C), L, O)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
GETLEAVE_4_IN_GGAA2(tree_22(A, B), C) -> GETLEAVE_4_IN_GGAA2(A, tree_22(B, C))
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
IF_SAMELEAVES_2_IN_1_GG5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> IF_SAMELEAVES_2_IN_2_GG7(T1, T2, S1, S2, L, T, getleave_4_in_ggga4(S1, S2, L, S))
SAMELEAVES_2_IN_GG2(tree_22(T1, T2), tree_22(S1, S2)) -> IF_SAMELEAVES_2_IN_1_GG5(T1, T2, S1, S2, getleave_4_in_ggaa4(T1, T2, L, T))
IF_SAMELEAVES_2_IN_2_GG7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> SAMELEAVES_2_IN_GG2(T, S)
sameleaves_2_in_gg2(leaf_11(L), leaf_11(L)) -> sameleaves_2_out_gg2(leaf_11(L), leaf_11(L))
sameleaves_2_in_gg2(tree_22(T1, T2), tree_22(S1, S2)) -> if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_in_ggaa4(T1, T2, L, T))
getleave_4_in_ggaa4(leaf_11(A), C, A, C) -> getleave_4_out_ggaa4(leaf_11(A), C, A, C)
getleave_4_in_ggaa4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_in_ggaa4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_out_ggaa4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggaa4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_1_gg5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_in_ggga4(S1, S2, L, S))
getleave_4_in_ggga4(leaf_11(A), C, A, C) -> getleave_4_out_ggga4(leaf_11(A), C, A, C)
getleave_4_in_ggga4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_in_ggga4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_out_ggga4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggga4(tree_22(A, B), C, L, O)
if_sameleaves_2_in_2_gg7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_in_gg2(T, S))
if_sameleaves_2_in_3_gg7(T1, T2, S1, S2, T, S, sameleaves_2_out_gg2(T, S)) -> sameleaves_2_out_gg2(tree_22(T1, T2), tree_22(S1, S2))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
IF_SAMELEAVES_2_IN_1_GG5(T1, T2, S1, S2, getleave_4_out_ggaa4(T1, T2, L, T)) -> IF_SAMELEAVES_2_IN_2_GG7(T1, T2, S1, S2, L, T, getleave_4_in_ggga4(S1, S2, L, S))
SAMELEAVES_2_IN_GG2(tree_22(T1, T2), tree_22(S1, S2)) -> IF_SAMELEAVES_2_IN_1_GG5(T1, T2, S1, S2, getleave_4_in_ggaa4(T1, T2, L, T))
IF_SAMELEAVES_2_IN_2_GG7(T1, T2, S1, S2, L, T, getleave_4_out_ggga4(S1, S2, L, S)) -> SAMELEAVES_2_IN_GG2(T, S)
getleave_4_in_ggga4(leaf_11(A), C, A, C) -> getleave_4_out_ggga4(leaf_11(A), C, A, C)
getleave_4_in_ggga4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_in_ggga4(A, tree_22(B, C), L, O))
getleave_4_in_ggaa4(leaf_11(A), C, A, C) -> getleave_4_out_ggaa4(leaf_11(A), C, A, C)
getleave_4_in_ggaa4(tree_22(A, B), C, L, O) -> if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_in_ggaa4(A, tree_22(B, C), L, O))
if_getleave_4_in_1_ggga6(A, B, C, L, O, getleave_4_out_ggga4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggga4(tree_22(A, B), C, L, O)
if_getleave_4_in_1_ggaa6(A, B, C, L, O, getleave_4_out_ggaa4(A, tree_22(B, C), L, O)) -> getleave_4_out_ggaa4(tree_22(A, B), C, L, O)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPPoloProof
IF_SAMELEAVES_2_IN_1_GG3(S1, S2, getleave_4_out_ggaa2(L, T)) -> IF_SAMELEAVES_2_IN_2_GG2(T, getleave_4_in_ggga3(S1, S2, L))
SAMELEAVES_2_IN_GG2(tree_22(T1, T2), tree_22(S1, S2)) -> IF_SAMELEAVES_2_IN_1_GG3(S1, S2, getleave_4_in_ggaa2(T1, T2))
IF_SAMELEAVES_2_IN_2_GG2(T, getleave_4_out_ggga1(S)) -> SAMELEAVES_2_IN_GG2(T, S)
getleave_4_in_ggga3(leaf_11(A), C, A) -> getleave_4_out_ggga1(C)
getleave_4_in_ggga3(tree_22(A, B), C, L) -> if_getleave_4_in_1_ggga1(getleave_4_in_ggga3(A, tree_22(B, C), L))
getleave_4_in_ggaa2(leaf_11(A), C) -> getleave_4_out_ggaa2(A, C)
getleave_4_in_ggaa2(tree_22(A, B), C) -> if_getleave_4_in_1_ggaa1(getleave_4_in_ggaa2(A, tree_22(B, C)))
if_getleave_4_in_1_ggga1(getleave_4_out_ggga1(O)) -> getleave_4_out_ggga1(O)
if_getleave_4_in_1_ggaa1(getleave_4_out_ggaa2(L, O)) -> getleave_4_out_ggaa2(L, O)
getleave_4_in_ggga3(x0, x1, x2)
getleave_4_in_ggaa2(x0, x1)
if_getleave_4_in_1_ggga1(x0)
if_getleave_4_in_1_ggaa1(x0)
The remaining Dependency Pairs were at least non-strictly be oriented.
IF_SAMELEAVES_2_IN_1_GG3(S1, S2, getleave_4_out_ggaa2(L, T)) -> IF_SAMELEAVES_2_IN_2_GG2(T, getleave_4_in_ggga3(S1, S2, L))
With the implicit AFS we had to orient the following set of usable rules non-strictly.
SAMELEAVES_2_IN_GG2(tree_22(T1, T2), tree_22(S1, S2)) -> IF_SAMELEAVES_2_IN_1_GG3(S1, S2, getleave_4_in_ggaa2(T1, T2))
IF_SAMELEAVES_2_IN_2_GG2(T, getleave_4_out_ggga1(S)) -> SAMELEAVES_2_IN_GG2(T, S)
Used ordering: POLO with Polynomial interpretation:
getleave_4_in_ggaa2(tree_22(A, B), C) -> if_getleave_4_in_1_ggaa1(getleave_4_in_ggaa2(A, tree_22(B, C)))
getleave_4_in_ggaa2(leaf_11(A), C) -> getleave_4_out_ggaa2(A, C)
if_getleave_4_in_1_ggaa1(getleave_4_out_ggaa2(L, O)) -> getleave_4_out_ggaa2(L, O)
POL(leaf_11(x1)) = 1
POL(getleave_4_out_ggaa2(x1, x2)) = 1 + x2
POL(getleave_4_in_ggaa2(x1, x2)) = x1 + x2
POL(if_getleave_4_in_1_ggga1(x1)) = 0
POL(tree_22(x1, x2)) = x1 + x2
POL(IF_SAMELEAVES_2_IN_2_GG2(x1, x2)) = x1
POL(if_getleave_4_in_1_ggaa1(x1)) = x1
POL(getleave_4_in_ggga3(x1, x2, x3)) = 0
POL(getleave_4_out_ggga1(x1)) = 0
POL(IF_SAMELEAVES_2_IN_1_GG3(x1, x2, x3)) = x3
POL(SAMELEAVES_2_IN_GG2(x1, x2)) = x1
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPPoloProof
↳ QDP
↳ DependencyGraphProof
SAMELEAVES_2_IN_GG2(tree_22(T1, T2), tree_22(S1, S2)) -> IF_SAMELEAVES_2_IN_1_GG3(S1, S2, getleave_4_in_ggaa2(T1, T2))
IF_SAMELEAVES_2_IN_2_GG2(T, getleave_4_out_ggga1(S)) -> SAMELEAVES_2_IN_GG2(T, S)
getleave_4_in_ggga3(leaf_11(A), C, A) -> getleave_4_out_ggga1(C)
getleave_4_in_ggga3(tree_22(A, B), C, L) -> if_getleave_4_in_1_ggga1(getleave_4_in_ggga3(A, tree_22(B, C), L))
getleave_4_in_ggaa2(leaf_11(A), C) -> getleave_4_out_ggaa2(A, C)
getleave_4_in_ggaa2(tree_22(A, B), C) -> if_getleave_4_in_1_ggaa1(getleave_4_in_ggaa2(A, tree_22(B, C)))
if_getleave_4_in_1_ggga1(getleave_4_out_ggga1(O)) -> getleave_4_out_ggga1(O)
if_getleave_4_in_1_ggaa1(getleave_4_out_ggaa2(L, O)) -> getleave_4_out_ggaa2(L, O)
getleave_4_in_ggga3(x0, x1, x2)
getleave_4_in_ggaa2(x0, x1)
if_getleave_4_in_1_ggga1(x0)
if_getleave_4_in_1_ggaa1(x0)