↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
preorder2: (b,f)
preorder_dl2: (b,b)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
preorder_2_in_ga2(T, Xs) -> if_preorder_2_in_1_ga3(T, Xs, preorder_dl_2_in_gg2(T, -2(Xs, []_0)))
preorder_dl_2_in_gg2(nil_0, -2(X, X)) -> preorder_dl_2_out_gg2(nil_0, -2(X, X))
preorder_dl_2_in_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_in_gg2(L, -2(Xs, Ys)))
if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_in_gg2(R, -2(Ys, Zs)))
if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_out_gg2(R, -2(Ys, Zs))) -> preorder_dl_2_out_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs))
if_preorder_2_in_1_ga3(T, Xs, preorder_dl_2_out_gg2(T, -2(Xs, []_0))) -> preorder_2_out_ga2(T, Xs)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
preorder_2_in_ga2(T, Xs) -> if_preorder_2_in_1_ga3(T, Xs, preorder_dl_2_in_gg2(T, -2(Xs, []_0)))
preorder_dl_2_in_gg2(nil_0, -2(X, X)) -> preorder_dl_2_out_gg2(nil_0, -2(X, X))
preorder_dl_2_in_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_in_gg2(L, -2(Xs, Ys)))
if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_in_gg2(R, -2(Ys, Zs)))
if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_out_gg2(R, -2(Ys, Zs))) -> preorder_dl_2_out_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs))
if_preorder_2_in_1_ga3(T, Xs, preorder_dl_2_out_gg2(T, -2(Xs, []_0))) -> preorder_2_out_ga2(T, Xs)
PREORDER_2_IN_GA2(T, Xs) -> IF_PREORDER_2_IN_1_GA3(T, Xs, preorder_dl_2_in_gg2(T, -2(Xs, []_0)))
PREORDER_2_IN_GA2(T, Xs) -> PREORDER_DL_2_IN_GG2(T, -2(Xs, []_0))
PREORDER_DL_2_IN_GG2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> IF_PREORDER_DL_2_IN_1_GG6(L, X, R, Xs, Zs, preorder_dl_2_in_gg2(L, -2(Xs, Ys)))
PREORDER_DL_2_IN_GG2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> PREORDER_DL_2_IN_GG2(L, -2(Xs, Ys))
IF_PREORDER_DL_2_IN_1_GG6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> IF_PREORDER_DL_2_IN_2_GG7(L, X, R, Xs, Zs, Ys, preorder_dl_2_in_gg2(R, -2(Ys, Zs)))
IF_PREORDER_DL_2_IN_1_GG6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> PREORDER_DL_2_IN_GG2(R, -2(Ys, Zs))
preorder_2_in_ga2(T, Xs) -> if_preorder_2_in_1_ga3(T, Xs, preorder_dl_2_in_gg2(T, -2(Xs, []_0)))
preorder_dl_2_in_gg2(nil_0, -2(X, X)) -> preorder_dl_2_out_gg2(nil_0, -2(X, X))
preorder_dl_2_in_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_in_gg2(L, -2(Xs, Ys)))
if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_in_gg2(R, -2(Ys, Zs)))
if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_out_gg2(R, -2(Ys, Zs))) -> preorder_dl_2_out_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs))
if_preorder_2_in_1_ga3(T, Xs, preorder_dl_2_out_gg2(T, -2(Xs, []_0))) -> preorder_2_out_ga2(T, Xs)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
PREORDER_2_IN_GA2(T, Xs) -> IF_PREORDER_2_IN_1_GA3(T, Xs, preorder_dl_2_in_gg2(T, -2(Xs, []_0)))
PREORDER_2_IN_GA2(T, Xs) -> PREORDER_DL_2_IN_GG2(T, -2(Xs, []_0))
PREORDER_DL_2_IN_GG2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> IF_PREORDER_DL_2_IN_1_GG6(L, X, R, Xs, Zs, preorder_dl_2_in_gg2(L, -2(Xs, Ys)))
PREORDER_DL_2_IN_GG2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> PREORDER_DL_2_IN_GG2(L, -2(Xs, Ys))
IF_PREORDER_DL_2_IN_1_GG6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> IF_PREORDER_DL_2_IN_2_GG7(L, X, R, Xs, Zs, Ys, preorder_dl_2_in_gg2(R, -2(Ys, Zs)))
IF_PREORDER_DL_2_IN_1_GG6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> PREORDER_DL_2_IN_GG2(R, -2(Ys, Zs))
preorder_2_in_ga2(T, Xs) -> if_preorder_2_in_1_ga3(T, Xs, preorder_dl_2_in_gg2(T, -2(Xs, []_0)))
preorder_dl_2_in_gg2(nil_0, -2(X, X)) -> preorder_dl_2_out_gg2(nil_0, -2(X, X))
preorder_dl_2_in_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_in_gg2(L, -2(Xs, Ys)))
if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_in_gg2(R, -2(Ys, Zs)))
if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_out_gg2(R, -2(Ys, Zs))) -> preorder_dl_2_out_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs))
if_preorder_2_in_1_ga3(T, Xs, preorder_dl_2_out_gg2(T, -2(Xs, []_0))) -> preorder_2_out_ga2(T, Xs)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
IF_PREORDER_DL_2_IN_1_GG6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> PREORDER_DL_2_IN_GG2(R, -2(Ys, Zs))
PREORDER_DL_2_IN_GG2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> IF_PREORDER_DL_2_IN_1_GG6(L, X, R, Xs, Zs, preorder_dl_2_in_gg2(L, -2(Xs, Ys)))
PREORDER_DL_2_IN_GG2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> PREORDER_DL_2_IN_GG2(L, -2(Xs, Ys))
preorder_2_in_ga2(T, Xs) -> if_preorder_2_in_1_ga3(T, Xs, preorder_dl_2_in_gg2(T, -2(Xs, []_0)))
preorder_dl_2_in_gg2(nil_0, -2(X, X)) -> preorder_dl_2_out_gg2(nil_0, -2(X, X))
preorder_dl_2_in_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_in_gg2(L, -2(Xs, Ys)))
if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_in_gg2(R, -2(Ys, Zs)))
if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_out_gg2(R, -2(Ys, Zs))) -> preorder_dl_2_out_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs))
if_preorder_2_in_1_ga3(T, Xs, preorder_dl_2_out_gg2(T, -2(Xs, []_0))) -> preorder_2_out_ga2(T, Xs)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
IF_PREORDER_DL_2_IN_1_GG6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> PREORDER_DL_2_IN_GG2(R, -2(Ys, Zs))
PREORDER_DL_2_IN_GG2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> IF_PREORDER_DL_2_IN_1_GG6(L, X, R, Xs, Zs, preorder_dl_2_in_gg2(L, -2(Xs, Ys)))
PREORDER_DL_2_IN_GG2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> PREORDER_DL_2_IN_GG2(L, -2(Xs, Ys))
preorder_dl_2_in_gg2(nil_0, -2(X, X)) -> preorder_dl_2_out_gg2(nil_0, -2(X, X))
preorder_dl_2_in_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs)) -> if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_in_gg2(L, -2(Xs, Ys)))
if_preorder_dl_2_in_1_gg6(L, X, R, Xs, Zs, preorder_dl_2_out_gg2(L, -2(Xs, Ys))) -> if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_in_gg2(R, -2(Ys, Zs)))
if_preorder_dl_2_in_2_gg7(L, X, R, Xs, Zs, Ys, preorder_dl_2_out_gg2(R, -2(Ys, Zs))) -> preorder_dl_2_out_gg2(tree_33(L, X, R), -2(._22(X, Xs), Zs))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
IF_PREORDER_DL_2_IN_1_GG2(R, preorder_dl_2_out_gg) -> PREORDER_DL_2_IN_GG2(R, -)
PREORDER_DL_2_IN_GG2(tree_33(L, X, R), -) -> IF_PREORDER_DL_2_IN_1_GG2(R, preorder_dl_2_in_gg2(L, -))
PREORDER_DL_2_IN_GG2(tree_33(L, X, R), -) -> PREORDER_DL_2_IN_GG2(L, -)
preorder_dl_2_in_gg2(nil_0, -) -> preorder_dl_2_out_gg
preorder_dl_2_in_gg2(tree_33(L, X, R), -) -> if_preorder_dl_2_in_1_gg2(R, preorder_dl_2_in_gg2(L, -))
if_preorder_dl_2_in_1_gg2(R, preorder_dl_2_out_gg) -> if_preorder_dl_2_in_2_gg1(preorder_dl_2_in_gg2(R, -))
if_preorder_dl_2_in_2_gg1(preorder_dl_2_out_gg) -> preorder_dl_2_out_gg
preorder_dl_2_in_gg2(x0, x1)
if_preorder_dl_2_in_1_gg2(x0, x1)
if_preorder_dl_2_in_2_gg1(x0)
From the DPs we obtained the following set of size-change graphs: