↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
transpose2: (b,b)
transpose_aux3: (b,b,b)
row2col4: (b,b,f,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
transpose_2_in_gg2(A, B) -> if_transpose_2_in_1_gg3(A, B, transpose_aux_3_in_ggg3(A, []_0, B))
transpose_aux_3_in_ggg3(._22(R, Rs), underscore, ._22(C, Cs)) -> if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_in_ggaa4(R, ._22(C, Cs), Cols1, Accm))
row2col_4_in_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_in_ggaa4(Xs, Cols, Cols1, As))
row2col_4_in_ggaa4([]_0, []_0, []_0, []_0) -> row2col_4_out_ggaa4([]_0, []_0, []_0, []_0)
if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_out_ggaa4(Xs, Cols, Cols1, As)) -> row2col_4_out_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As))
if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_in_ggg3(Rs, Accm, Cols1))
transpose_aux_3_in_ggg3([]_0, X, X) -> transpose_aux_3_out_ggg3([]_0, X, X)
if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_out_ggg3(Rs, Accm, Cols1)) -> transpose_aux_3_out_ggg3(._22(R, Rs), underscore, ._22(C, Cs))
if_transpose_2_in_1_gg3(A, B, transpose_aux_3_out_ggg3(A, []_0, B)) -> transpose_2_out_gg2(A, B)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
transpose_2_in_gg2(A, B) -> if_transpose_2_in_1_gg3(A, B, transpose_aux_3_in_ggg3(A, []_0, B))
transpose_aux_3_in_ggg3(._22(R, Rs), underscore, ._22(C, Cs)) -> if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_in_ggaa4(R, ._22(C, Cs), Cols1, Accm))
row2col_4_in_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_in_ggaa4(Xs, Cols, Cols1, As))
row2col_4_in_ggaa4([]_0, []_0, []_0, []_0) -> row2col_4_out_ggaa4([]_0, []_0, []_0, []_0)
if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_out_ggaa4(Xs, Cols, Cols1, As)) -> row2col_4_out_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As))
if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_in_ggg3(Rs, Accm, Cols1))
transpose_aux_3_in_ggg3([]_0, X, X) -> transpose_aux_3_out_ggg3([]_0, X, X)
if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_out_ggg3(Rs, Accm, Cols1)) -> transpose_aux_3_out_ggg3(._22(R, Rs), underscore, ._22(C, Cs))
if_transpose_2_in_1_gg3(A, B, transpose_aux_3_out_ggg3(A, []_0, B)) -> transpose_2_out_gg2(A, B)
TRANSPOSE_2_IN_GG2(A, B) -> IF_TRANSPOSE_2_IN_1_GG3(A, B, transpose_aux_3_in_ggg3(A, []_0, B))
TRANSPOSE_2_IN_GG2(A, B) -> TRANSPOSE_AUX_3_IN_GGG3(A, []_0, B)
TRANSPOSE_AUX_3_IN_GGG3(._22(R, Rs), underscore, ._22(C, Cs)) -> IF_TRANSPOSE_AUX_3_IN_1_GGG6(R, Rs, underscore, C, Cs, row2col_4_in_ggaa4(R, ._22(C, Cs), Cols1, Accm))
TRANSPOSE_AUX_3_IN_GGG3(._22(R, Rs), underscore, ._22(C, Cs)) -> ROW2COL_4_IN_GGAA4(R, ._22(C, Cs), Cols1, Accm)
ROW2COL_4_IN_GGAA4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> IF_ROW2COL_4_IN_1_GGAA7(X, Xs, Ys, Cols, Cols1, As, row2col_4_in_ggaa4(Xs, Cols, Cols1, As))
ROW2COL_4_IN_GGAA4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> ROW2COL_4_IN_GGAA4(Xs, Cols, Cols1, As)
IF_TRANSPOSE_AUX_3_IN_1_GGG6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> IF_TRANSPOSE_AUX_3_IN_2_GGG8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_in_ggg3(Rs, Accm, Cols1))
IF_TRANSPOSE_AUX_3_IN_1_GGG6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> TRANSPOSE_AUX_3_IN_GGG3(Rs, Accm, Cols1)
transpose_2_in_gg2(A, B) -> if_transpose_2_in_1_gg3(A, B, transpose_aux_3_in_ggg3(A, []_0, B))
transpose_aux_3_in_ggg3(._22(R, Rs), underscore, ._22(C, Cs)) -> if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_in_ggaa4(R, ._22(C, Cs), Cols1, Accm))
row2col_4_in_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_in_ggaa4(Xs, Cols, Cols1, As))
row2col_4_in_ggaa4([]_0, []_0, []_0, []_0) -> row2col_4_out_ggaa4([]_0, []_0, []_0, []_0)
if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_out_ggaa4(Xs, Cols, Cols1, As)) -> row2col_4_out_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As))
if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_in_ggg3(Rs, Accm, Cols1))
transpose_aux_3_in_ggg3([]_0, X, X) -> transpose_aux_3_out_ggg3([]_0, X, X)
if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_out_ggg3(Rs, Accm, Cols1)) -> transpose_aux_3_out_ggg3(._22(R, Rs), underscore, ._22(C, Cs))
if_transpose_2_in_1_gg3(A, B, transpose_aux_3_out_ggg3(A, []_0, B)) -> transpose_2_out_gg2(A, B)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
TRANSPOSE_2_IN_GG2(A, B) -> IF_TRANSPOSE_2_IN_1_GG3(A, B, transpose_aux_3_in_ggg3(A, []_0, B))
TRANSPOSE_2_IN_GG2(A, B) -> TRANSPOSE_AUX_3_IN_GGG3(A, []_0, B)
TRANSPOSE_AUX_3_IN_GGG3(._22(R, Rs), underscore, ._22(C, Cs)) -> IF_TRANSPOSE_AUX_3_IN_1_GGG6(R, Rs, underscore, C, Cs, row2col_4_in_ggaa4(R, ._22(C, Cs), Cols1, Accm))
TRANSPOSE_AUX_3_IN_GGG3(._22(R, Rs), underscore, ._22(C, Cs)) -> ROW2COL_4_IN_GGAA4(R, ._22(C, Cs), Cols1, Accm)
ROW2COL_4_IN_GGAA4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> IF_ROW2COL_4_IN_1_GGAA7(X, Xs, Ys, Cols, Cols1, As, row2col_4_in_ggaa4(Xs, Cols, Cols1, As))
ROW2COL_4_IN_GGAA4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> ROW2COL_4_IN_GGAA4(Xs, Cols, Cols1, As)
IF_TRANSPOSE_AUX_3_IN_1_GGG6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> IF_TRANSPOSE_AUX_3_IN_2_GGG8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_in_ggg3(Rs, Accm, Cols1))
IF_TRANSPOSE_AUX_3_IN_1_GGG6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> TRANSPOSE_AUX_3_IN_GGG3(Rs, Accm, Cols1)
transpose_2_in_gg2(A, B) -> if_transpose_2_in_1_gg3(A, B, transpose_aux_3_in_ggg3(A, []_0, B))
transpose_aux_3_in_ggg3(._22(R, Rs), underscore, ._22(C, Cs)) -> if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_in_ggaa4(R, ._22(C, Cs), Cols1, Accm))
row2col_4_in_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_in_ggaa4(Xs, Cols, Cols1, As))
row2col_4_in_ggaa4([]_0, []_0, []_0, []_0) -> row2col_4_out_ggaa4([]_0, []_0, []_0, []_0)
if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_out_ggaa4(Xs, Cols, Cols1, As)) -> row2col_4_out_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As))
if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_in_ggg3(Rs, Accm, Cols1))
transpose_aux_3_in_ggg3([]_0, X, X) -> transpose_aux_3_out_ggg3([]_0, X, X)
if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_out_ggg3(Rs, Accm, Cols1)) -> transpose_aux_3_out_ggg3(._22(R, Rs), underscore, ._22(C, Cs))
if_transpose_2_in_1_gg3(A, B, transpose_aux_3_out_ggg3(A, []_0, B)) -> transpose_2_out_gg2(A, B)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
ROW2COL_4_IN_GGAA4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> ROW2COL_4_IN_GGAA4(Xs, Cols, Cols1, As)
transpose_2_in_gg2(A, B) -> if_transpose_2_in_1_gg3(A, B, transpose_aux_3_in_ggg3(A, []_0, B))
transpose_aux_3_in_ggg3(._22(R, Rs), underscore, ._22(C, Cs)) -> if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_in_ggaa4(R, ._22(C, Cs), Cols1, Accm))
row2col_4_in_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_in_ggaa4(Xs, Cols, Cols1, As))
row2col_4_in_ggaa4([]_0, []_0, []_0, []_0) -> row2col_4_out_ggaa4([]_0, []_0, []_0, []_0)
if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_out_ggaa4(Xs, Cols, Cols1, As)) -> row2col_4_out_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As))
if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_in_ggg3(Rs, Accm, Cols1))
transpose_aux_3_in_ggg3([]_0, X, X) -> transpose_aux_3_out_ggg3([]_0, X, X)
if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_out_ggg3(Rs, Accm, Cols1)) -> transpose_aux_3_out_ggg3(._22(R, Rs), underscore, ._22(C, Cs))
if_transpose_2_in_1_gg3(A, B, transpose_aux_3_out_ggg3(A, []_0, B)) -> transpose_2_out_gg2(A, B)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
ROW2COL_4_IN_GGAA4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> ROW2COL_4_IN_GGAA4(Xs, Cols, Cols1, As)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
ROW2COL_4_IN_GGAA2(._22(X, Xs), ._22(._22(X, Ys), Cols)) -> ROW2COL_4_IN_GGAA2(Xs, Cols)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
TRANSPOSE_AUX_3_IN_GGG3(._22(R, Rs), underscore, ._22(C, Cs)) -> IF_TRANSPOSE_AUX_3_IN_1_GGG6(R, Rs, underscore, C, Cs, row2col_4_in_ggaa4(R, ._22(C, Cs), Cols1, Accm))
IF_TRANSPOSE_AUX_3_IN_1_GGG6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> TRANSPOSE_AUX_3_IN_GGG3(Rs, Accm, Cols1)
transpose_2_in_gg2(A, B) -> if_transpose_2_in_1_gg3(A, B, transpose_aux_3_in_ggg3(A, []_0, B))
transpose_aux_3_in_ggg3(._22(R, Rs), underscore, ._22(C, Cs)) -> if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_in_ggaa4(R, ._22(C, Cs), Cols1, Accm))
row2col_4_in_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_in_ggaa4(Xs, Cols, Cols1, As))
row2col_4_in_ggaa4([]_0, []_0, []_0, []_0) -> row2col_4_out_ggaa4([]_0, []_0, []_0, []_0)
if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_out_ggaa4(Xs, Cols, Cols1, As)) -> row2col_4_out_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As))
if_transpose_aux_3_in_1_ggg6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_in_ggg3(Rs, Accm, Cols1))
transpose_aux_3_in_ggg3([]_0, X, X) -> transpose_aux_3_out_ggg3([]_0, X, X)
if_transpose_aux_3_in_2_ggg8(R, Rs, underscore, C, Cs, Cols1, Accm, transpose_aux_3_out_ggg3(Rs, Accm, Cols1)) -> transpose_aux_3_out_ggg3(._22(R, Rs), underscore, ._22(C, Cs))
if_transpose_2_in_1_gg3(A, B, transpose_aux_3_out_ggg3(A, []_0, B)) -> transpose_2_out_gg2(A, B)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
TRANSPOSE_AUX_3_IN_GGG3(._22(R, Rs), underscore, ._22(C, Cs)) -> IF_TRANSPOSE_AUX_3_IN_1_GGG6(R, Rs, underscore, C, Cs, row2col_4_in_ggaa4(R, ._22(C, Cs), Cols1, Accm))
IF_TRANSPOSE_AUX_3_IN_1_GGG6(R, Rs, underscore, C, Cs, row2col_4_out_ggaa4(R, ._22(C, Cs), Cols1, Accm)) -> TRANSPOSE_AUX_3_IN_GGG3(Rs, Accm, Cols1)
row2col_4_in_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As)) -> if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_in_ggaa4(Xs, Cols, Cols1, As))
if_row2col_4_in_1_ggaa7(X, Xs, Ys, Cols, Cols1, As, row2col_4_out_ggaa4(Xs, Cols, Cols1, As)) -> row2col_4_out_ggaa4(._22(X, Xs), ._22(._22(X, Ys), Cols), ._22(Ys, Cols1), ._22([]_0, As))
row2col_4_in_ggaa4([]_0, []_0, []_0, []_0) -> row2col_4_out_ggaa4([]_0, []_0, []_0, []_0)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
TRANSPOSE_AUX_3_IN_GGG3(._22(R, Rs), underscore, ._22(C, Cs)) -> IF_TRANSPOSE_AUX_3_IN_1_GGG2(Rs, row2col_4_in_ggaa2(R, ._22(C, Cs)))
IF_TRANSPOSE_AUX_3_IN_1_GGG2(Rs, row2col_4_out_ggaa2(Cols1, Accm)) -> TRANSPOSE_AUX_3_IN_GGG3(Rs, Accm, Cols1)
row2col_4_in_ggaa2(._22(X, Xs), ._22(._22(X, Ys), Cols)) -> if_row2col_4_in_1_ggaa2(Ys, row2col_4_in_ggaa2(Xs, Cols))
if_row2col_4_in_1_ggaa2(Ys, row2col_4_out_ggaa2(Cols1, As)) -> row2col_4_out_ggaa2(._22(Ys, Cols1), ._22([]_0, As))
row2col_4_in_ggaa2([]_0, []_0) -> row2col_4_out_ggaa2([]_0, []_0)
row2col_4_in_ggaa2(x0, x1)
if_row2col_4_in_1_ggaa2(x0, x1)
From the DPs we obtained the following set of size-change graphs: