(0) Obligation:

Clauses:

transpose(A, B) :- transpose_aux(A, [], B).
transpose_aux(.(R, Rs), X1, .(C, Cs)) :- ','(row2col(R, .(C, Cs), Cols1, Accm), transpose_aux(Rs, Accm, Cols1)).
transpose_aux([], X, X).
row2col(.(X, Xs), .(.(X, Ys), Cols), .(Ys, Cols1), .([], As)) :- row2col(Xs, Cols, Cols1, As).
row2col([], [], [], []).

Query: transpose(g,a)

(1) PrologToPiTRSViaGraphTransformerProof (SOUND transformation)

Transformed Prolog program to (Pi-)TRS.

(2) Obligation:

Pi-finite rewrite system:
The TRS R consists of the following rules:

transposeA_in_ga(.(T24, T25), .(T28, T29)) → U1_ga(T24, T25, T28, T29, pB_in_gaaaag(T24, T28, T29, X35, X36, T25))
pB_in_gaaaag(T24, T28, T29, T34, T35, T25) → U5_gaaaag(T24, T28, T29, T34, T35, T25, row2colD_in_gaaaa(T24, T28, T29, T34, T35))
row2colD_in_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92)) → U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_in_gaaa(T57, T60, X91, X92))
row2colC_in_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_in_gaaa(T82, T85, X139, X140))
row2colC_in_gaaa([], [], [], []) → row2colC_out_gaaa([], [], [], [])
U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_out_gaaa(T82, T85, X139, X140)) → row2colC_out_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140))
U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_out_gaaa(T57, T60, X91, X92)) → row2colD_out_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92))
U5_gaaaag(T24, T28, T29, T34, T35, T25, row2colD_out_gaaaa(T24, T28, T29, T34, T35)) → U6_gaaaag(T24, T28, T29, T34, T35, T25, transpose_auxE_in_gga(T25, T35, T34))
transpose_auxE_in_gga(.(T115, T116), T117, .(T120, T121)) → U4_gga(T115, T116, T117, T120, T121, pB_in_gaaaag(T115, T120, T121, X185, X186, T116))
U4_gga(T115, T116, T117, T120, T121, pB_out_gaaaag(T115, T120, T121, X185, X186, T116)) → transpose_auxE_out_gga(.(T115, T116), T117, .(T120, T121))
transpose_auxE_in_gga([], T128, T128) → transpose_auxE_out_gga([], T128, T128)
U6_gaaaag(T24, T28, T29, T34, T35, T25, transpose_auxE_out_gga(T25, T35, T34)) → pB_out_gaaaag(T24, T28, T29, T34, T35, T25)
U1_ga(T24, T25, T28, T29, pB_out_gaaaag(T24, T28, T29, X35, X36, T25)) → transposeA_out_ga(.(T24, T25), .(T28, T29))
transposeA_in_ga([], []) → transposeA_out_ga([], [])

The argument filtering Pi contains the following mapping:
transposeA_in_ga(x1, x2)  =  transposeA_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x1, x2, x5)
pB_in_gaaaag(x1, x2, x3, x4, x5, x6)  =  pB_in_gaaaag(x1, x6)
U5_gaaaag(x1, x2, x3, x4, x5, x6, x7)  =  U5_gaaaag(x1, x6, x7)
row2colD_in_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_in_gaaaa(x1)
U3_gaaaa(x1, x2, x3, x4, x5, x6, x7)  =  U3_gaaaa(x1, x2, x7)
row2colC_in_gaaa(x1, x2, x3, x4)  =  row2colC_in_gaaa(x1)
U2_gaaa(x1, x2, x3, x4, x5, x6, x7)  =  U2_gaaa(x1, x2, x7)
[]  =  []
row2colC_out_gaaa(x1, x2, x3, x4)  =  row2colC_out_gaaa(x1, x4)
row2colD_out_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_out_gaaaa(x1, x5)
U6_gaaaag(x1, x2, x3, x4, x5, x6, x7)  =  U6_gaaaag(x1, x5, x6, x7)
transpose_auxE_in_gga(x1, x2, x3)  =  transpose_auxE_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4, x5, x6)  =  U4_gga(x1, x2, x3, x6)
pB_out_gaaaag(x1, x2, x3, x4, x5, x6)  =  pB_out_gaaaag(x1, x5, x6)
transpose_auxE_out_gga(x1, x2, x3)  =  transpose_auxE_out_gga(x1, x2)
transposeA_out_ga(x1, x2)  =  transposeA_out_ga(x1)

(3) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

TRANSPOSEA_IN_GA(.(T24, T25), .(T28, T29)) → U1_GA(T24, T25, T28, T29, pB_in_gaaaag(T24, T28, T29, X35, X36, T25))
TRANSPOSEA_IN_GA(.(T24, T25), .(T28, T29)) → PB_IN_GAAAAG(T24, T28, T29, X35, X36, T25)
PB_IN_GAAAAG(T24, T28, T29, T34, T35, T25) → U5_GAAAAG(T24, T28, T29, T34, T35, T25, row2colD_in_gaaaa(T24, T28, T29, T34, T35))
PB_IN_GAAAAG(T24, T28, T29, T34, T35, T25) → ROW2COLD_IN_GAAAA(T24, T28, T29, T34, T35)
ROW2COLD_IN_GAAAA(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92)) → U3_GAAAA(T56, T57, T58, T60, X91, X92, row2colC_in_gaaa(T57, T60, X91, X92))
ROW2COLD_IN_GAAAA(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92)) → ROW2COLC_IN_GAAA(T57, T60, X91, X92)
ROW2COLC_IN_GAAA(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → U2_GAAA(T81, T82, T83, T85, X139, X140, row2colC_in_gaaa(T82, T85, X139, X140))
ROW2COLC_IN_GAAA(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → ROW2COLC_IN_GAAA(T82, T85, X139, X140)
U5_GAAAAG(T24, T28, T29, T34, T35, T25, row2colD_out_gaaaa(T24, T28, T29, T34, T35)) → U6_GAAAAG(T24, T28, T29, T34, T35, T25, transpose_auxE_in_gga(T25, T35, T34))
U5_GAAAAG(T24, T28, T29, T34, T35, T25, row2colD_out_gaaaa(T24, T28, T29, T34, T35)) → TRANSPOSE_AUXE_IN_GGA(T25, T35, T34)
TRANSPOSE_AUXE_IN_GGA(.(T115, T116), T117, .(T120, T121)) → U4_GGA(T115, T116, T117, T120, T121, pB_in_gaaaag(T115, T120, T121, X185, X186, T116))
TRANSPOSE_AUXE_IN_GGA(.(T115, T116), T117, .(T120, T121)) → PB_IN_GAAAAG(T115, T120, T121, X185, X186, T116)

The TRS R consists of the following rules:

transposeA_in_ga(.(T24, T25), .(T28, T29)) → U1_ga(T24, T25, T28, T29, pB_in_gaaaag(T24, T28, T29, X35, X36, T25))
pB_in_gaaaag(T24, T28, T29, T34, T35, T25) → U5_gaaaag(T24, T28, T29, T34, T35, T25, row2colD_in_gaaaa(T24, T28, T29, T34, T35))
row2colD_in_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92)) → U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_in_gaaa(T57, T60, X91, X92))
row2colC_in_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_in_gaaa(T82, T85, X139, X140))
row2colC_in_gaaa([], [], [], []) → row2colC_out_gaaa([], [], [], [])
U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_out_gaaa(T82, T85, X139, X140)) → row2colC_out_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140))
U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_out_gaaa(T57, T60, X91, X92)) → row2colD_out_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92))
U5_gaaaag(T24, T28, T29, T34, T35, T25, row2colD_out_gaaaa(T24, T28, T29, T34, T35)) → U6_gaaaag(T24, T28, T29, T34, T35, T25, transpose_auxE_in_gga(T25, T35, T34))
transpose_auxE_in_gga(.(T115, T116), T117, .(T120, T121)) → U4_gga(T115, T116, T117, T120, T121, pB_in_gaaaag(T115, T120, T121, X185, X186, T116))
U4_gga(T115, T116, T117, T120, T121, pB_out_gaaaag(T115, T120, T121, X185, X186, T116)) → transpose_auxE_out_gga(.(T115, T116), T117, .(T120, T121))
transpose_auxE_in_gga([], T128, T128) → transpose_auxE_out_gga([], T128, T128)
U6_gaaaag(T24, T28, T29, T34, T35, T25, transpose_auxE_out_gga(T25, T35, T34)) → pB_out_gaaaag(T24, T28, T29, T34, T35, T25)
U1_ga(T24, T25, T28, T29, pB_out_gaaaag(T24, T28, T29, X35, X36, T25)) → transposeA_out_ga(.(T24, T25), .(T28, T29))
transposeA_in_ga([], []) → transposeA_out_ga([], [])

The argument filtering Pi contains the following mapping:
transposeA_in_ga(x1, x2)  =  transposeA_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x1, x2, x5)
pB_in_gaaaag(x1, x2, x3, x4, x5, x6)  =  pB_in_gaaaag(x1, x6)
U5_gaaaag(x1, x2, x3, x4, x5, x6, x7)  =  U5_gaaaag(x1, x6, x7)
row2colD_in_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_in_gaaaa(x1)
U3_gaaaa(x1, x2, x3, x4, x5, x6, x7)  =  U3_gaaaa(x1, x2, x7)
row2colC_in_gaaa(x1, x2, x3, x4)  =  row2colC_in_gaaa(x1)
U2_gaaa(x1, x2, x3, x4, x5, x6, x7)  =  U2_gaaa(x1, x2, x7)
[]  =  []
row2colC_out_gaaa(x1, x2, x3, x4)  =  row2colC_out_gaaa(x1, x4)
row2colD_out_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_out_gaaaa(x1, x5)
U6_gaaaag(x1, x2, x3, x4, x5, x6, x7)  =  U6_gaaaag(x1, x5, x6, x7)
transpose_auxE_in_gga(x1, x2, x3)  =  transpose_auxE_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4, x5, x6)  =  U4_gga(x1, x2, x3, x6)
pB_out_gaaaag(x1, x2, x3, x4, x5, x6)  =  pB_out_gaaaag(x1, x5, x6)
transpose_auxE_out_gga(x1, x2, x3)  =  transpose_auxE_out_gga(x1, x2)
transposeA_out_ga(x1, x2)  =  transposeA_out_ga(x1)
TRANSPOSEA_IN_GA(x1, x2)  =  TRANSPOSEA_IN_GA(x1)
U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x1, x2, x5)
PB_IN_GAAAAG(x1, x2, x3, x4, x5, x6)  =  PB_IN_GAAAAG(x1, x6)
U5_GAAAAG(x1, x2, x3, x4, x5, x6, x7)  =  U5_GAAAAG(x1, x6, x7)
ROW2COLD_IN_GAAAA(x1, x2, x3, x4, x5)  =  ROW2COLD_IN_GAAAA(x1)
U3_GAAAA(x1, x2, x3, x4, x5, x6, x7)  =  U3_GAAAA(x1, x2, x7)
ROW2COLC_IN_GAAA(x1, x2, x3, x4)  =  ROW2COLC_IN_GAAA(x1)
U2_GAAA(x1, x2, x3, x4, x5, x6, x7)  =  U2_GAAA(x1, x2, x7)
U6_GAAAAG(x1, x2, x3, x4, x5, x6, x7)  =  U6_GAAAAG(x1, x5, x6, x7)
TRANSPOSE_AUXE_IN_GGA(x1, x2, x3)  =  TRANSPOSE_AUXE_IN_GGA(x1, x2)
U4_GGA(x1, x2, x3, x4, x5, x6)  =  U4_GGA(x1, x2, x3, x6)

We have to consider all (P,R,Pi)-chains

(4) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

TRANSPOSEA_IN_GA(.(T24, T25), .(T28, T29)) → U1_GA(T24, T25, T28, T29, pB_in_gaaaag(T24, T28, T29, X35, X36, T25))
TRANSPOSEA_IN_GA(.(T24, T25), .(T28, T29)) → PB_IN_GAAAAG(T24, T28, T29, X35, X36, T25)
PB_IN_GAAAAG(T24, T28, T29, T34, T35, T25) → U5_GAAAAG(T24, T28, T29, T34, T35, T25, row2colD_in_gaaaa(T24, T28, T29, T34, T35))
PB_IN_GAAAAG(T24, T28, T29, T34, T35, T25) → ROW2COLD_IN_GAAAA(T24, T28, T29, T34, T35)
ROW2COLD_IN_GAAAA(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92)) → U3_GAAAA(T56, T57, T58, T60, X91, X92, row2colC_in_gaaa(T57, T60, X91, X92))
ROW2COLD_IN_GAAAA(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92)) → ROW2COLC_IN_GAAA(T57, T60, X91, X92)
ROW2COLC_IN_GAAA(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → U2_GAAA(T81, T82, T83, T85, X139, X140, row2colC_in_gaaa(T82, T85, X139, X140))
ROW2COLC_IN_GAAA(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → ROW2COLC_IN_GAAA(T82, T85, X139, X140)
U5_GAAAAG(T24, T28, T29, T34, T35, T25, row2colD_out_gaaaa(T24, T28, T29, T34, T35)) → U6_GAAAAG(T24, T28, T29, T34, T35, T25, transpose_auxE_in_gga(T25, T35, T34))
U5_GAAAAG(T24, T28, T29, T34, T35, T25, row2colD_out_gaaaa(T24, T28, T29, T34, T35)) → TRANSPOSE_AUXE_IN_GGA(T25, T35, T34)
TRANSPOSE_AUXE_IN_GGA(.(T115, T116), T117, .(T120, T121)) → U4_GGA(T115, T116, T117, T120, T121, pB_in_gaaaag(T115, T120, T121, X185, X186, T116))
TRANSPOSE_AUXE_IN_GGA(.(T115, T116), T117, .(T120, T121)) → PB_IN_GAAAAG(T115, T120, T121, X185, X186, T116)

The TRS R consists of the following rules:

transposeA_in_ga(.(T24, T25), .(T28, T29)) → U1_ga(T24, T25, T28, T29, pB_in_gaaaag(T24, T28, T29, X35, X36, T25))
pB_in_gaaaag(T24, T28, T29, T34, T35, T25) → U5_gaaaag(T24, T28, T29, T34, T35, T25, row2colD_in_gaaaa(T24, T28, T29, T34, T35))
row2colD_in_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92)) → U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_in_gaaa(T57, T60, X91, X92))
row2colC_in_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_in_gaaa(T82, T85, X139, X140))
row2colC_in_gaaa([], [], [], []) → row2colC_out_gaaa([], [], [], [])
U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_out_gaaa(T82, T85, X139, X140)) → row2colC_out_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140))
U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_out_gaaa(T57, T60, X91, X92)) → row2colD_out_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92))
U5_gaaaag(T24, T28, T29, T34, T35, T25, row2colD_out_gaaaa(T24, T28, T29, T34, T35)) → U6_gaaaag(T24, T28, T29, T34, T35, T25, transpose_auxE_in_gga(T25, T35, T34))
transpose_auxE_in_gga(.(T115, T116), T117, .(T120, T121)) → U4_gga(T115, T116, T117, T120, T121, pB_in_gaaaag(T115, T120, T121, X185, X186, T116))
U4_gga(T115, T116, T117, T120, T121, pB_out_gaaaag(T115, T120, T121, X185, X186, T116)) → transpose_auxE_out_gga(.(T115, T116), T117, .(T120, T121))
transpose_auxE_in_gga([], T128, T128) → transpose_auxE_out_gga([], T128, T128)
U6_gaaaag(T24, T28, T29, T34, T35, T25, transpose_auxE_out_gga(T25, T35, T34)) → pB_out_gaaaag(T24, T28, T29, T34, T35, T25)
U1_ga(T24, T25, T28, T29, pB_out_gaaaag(T24, T28, T29, X35, X36, T25)) → transposeA_out_ga(.(T24, T25), .(T28, T29))
transposeA_in_ga([], []) → transposeA_out_ga([], [])

The argument filtering Pi contains the following mapping:
transposeA_in_ga(x1, x2)  =  transposeA_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x1, x2, x5)
pB_in_gaaaag(x1, x2, x3, x4, x5, x6)  =  pB_in_gaaaag(x1, x6)
U5_gaaaag(x1, x2, x3, x4, x5, x6, x7)  =  U5_gaaaag(x1, x6, x7)
row2colD_in_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_in_gaaaa(x1)
U3_gaaaa(x1, x2, x3, x4, x5, x6, x7)  =  U3_gaaaa(x1, x2, x7)
row2colC_in_gaaa(x1, x2, x3, x4)  =  row2colC_in_gaaa(x1)
U2_gaaa(x1, x2, x3, x4, x5, x6, x7)  =  U2_gaaa(x1, x2, x7)
[]  =  []
row2colC_out_gaaa(x1, x2, x3, x4)  =  row2colC_out_gaaa(x1, x4)
row2colD_out_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_out_gaaaa(x1, x5)
U6_gaaaag(x1, x2, x3, x4, x5, x6, x7)  =  U6_gaaaag(x1, x5, x6, x7)
transpose_auxE_in_gga(x1, x2, x3)  =  transpose_auxE_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4, x5, x6)  =  U4_gga(x1, x2, x3, x6)
pB_out_gaaaag(x1, x2, x3, x4, x5, x6)  =  pB_out_gaaaag(x1, x5, x6)
transpose_auxE_out_gga(x1, x2, x3)  =  transpose_auxE_out_gga(x1, x2)
transposeA_out_ga(x1, x2)  =  transposeA_out_ga(x1)
TRANSPOSEA_IN_GA(x1, x2)  =  TRANSPOSEA_IN_GA(x1)
U1_GA(x1, x2, x3, x4, x5)  =  U1_GA(x1, x2, x5)
PB_IN_GAAAAG(x1, x2, x3, x4, x5, x6)  =  PB_IN_GAAAAG(x1, x6)
U5_GAAAAG(x1, x2, x3, x4, x5, x6, x7)  =  U5_GAAAAG(x1, x6, x7)
ROW2COLD_IN_GAAAA(x1, x2, x3, x4, x5)  =  ROW2COLD_IN_GAAAA(x1)
U3_GAAAA(x1, x2, x3, x4, x5, x6, x7)  =  U3_GAAAA(x1, x2, x7)
ROW2COLC_IN_GAAA(x1, x2, x3, x4)  =  ROW2COLC_IN_GAAA(x1)
U2_GAAA(x1, x2, x3, x4, x5, x6, x7)  =  U2_GAAA(x1, x2, x7)
U6_GAAAAG(x1, x2, x3, x4, x5, x6, x7)  =  U6_GAAAAG(x1, x5, x6, x7)
TRANSPOSE_AUXE_IN_GGA(x1, x2, x3)  =  TRANSPOSE_AUXE_IN_GGA(x1, x2)
U4_GGA(x1, x2, x3, x4, x5, x6)  =  U4_GGA(x1, x2, x3, x6)

We have to consider all (P,R,Pi)-chains

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 8 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

ROW2COLC_IN_GAAA(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → ROW2COLC_IN_GAAA(T82, T85, X139, X140)

The TRS R consists of the following rules:

transposeA_in_ga(.(T24, T25), .(T28, T29)) → U1_ga(T24, T25, T28, T29, pB_in_gaaaag(T24, T28, T29, X35, X36, T25))
pB_in_gaaaag(T24, T28, T29, T34, T35, T25) → U5_gaaaag(T24, T28, T29, T34, T35, T25, row2colD_in_gaaaa(T24, T28, T29, T34, T35))
row2colD_in_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92)) → U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_in_gaaa(T57, T60, X91, X92))
row2colC_in_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_in_gaaa(T82, T85, X139, X140))
row2colC_in_gaaa([], [], [], []) → row2colC_out_gaaa([], [], [], [])
U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_out_gaaa(T82, T85, X139, X140)) → row2colC_out_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140))
U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_out_gaaa(T57, T60, X91, X92)) → row2colD_out_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92))
U5_gaaaag(T24, T28, T29, T34, T35, T25, row2colD_out_gaaaa(T24, T28, T29, T34, T35)) → U6_gaaaag(T24, T28, T29, T34, T35, T25, transpose_auxE_in_gga(T25, T35, T34))
transpose_auxE_in_gga(.(T115, T116), T117, .(T120, T121)) → U4_gga(T115, T116, T117, T120, T121, pB_in_gaaaag(T115, T120, T121, X185, X186, T116))
U4_gga(T115, T116, T117, T120, T121, pB_out_gaaaag(T115, T120, T121, X185, X186, T116)) → transpose_auxE_out_gga(.(T115, T116), T117, .(T120, T121))
transpose_auxE_in_gga([], T128, T128) → transpose_auxE_out_gga([], T128, T128)
U6_gaaaag(T24, T28, T29, T34, T35, T25, transpose_auxE_out_gga(T25, T35, T34)) → pB_out_gaaaag(T24, T28, T29, T34, T35, T25)
U1_ga(T24, T25, T28, T29, pB_out_gaaaag(T24, T28, T29, X35, X36, T25)) → transposeA_out_ga(.(T24, T25), .(T28, T29))
transposeA_in_ga([], []) → transposeA_out_ga([], [])

The argument filtering Pi contains the following mapping:
transposeA_in_ga(x1, x2)  =  transposeA_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x1, x2, x5)
pB_in_gaaaag(x1, x2, x3, x4, x5, x6)  =  pB_in_gaaaag(x1, x6)
U5_gaaaag(x1, x2, x3, x4, x5, x6, x7)  =  U5_gaaaag(x1, x6, x7)
row2colD_in_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_in_gaaaa(x1)
U3_gaaaa(x1, x2, x3, x4, x5, x6, x7)  =  U3_gaaaa(x1, x2, x7)
row2colC_in_gaaa(x1, x2, x3, x4)  =  row2colC_in_gaaa(x1)
U2_gaaa(x1, x2, x3, x4, x5, x6, x7)  =  U2_gaaa(x1, x2, x7)
[]  =  []
row2colC_out_gaaa(x1, x2, x3, x4)  =  row2colC_out_gaaa(x1, x4)
row2colD_out_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_out_gaaaa(x1, x5)
U6_gaaaag(x1, x2, x3, x4, x5, x6, x7)  =  U6_gaaaag(x1, x5, x6, x7)
transpose_auxE_in_gga(x1, x2, x3)  =  transpose_auxE_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4, x5, x6)  =  U4_gga(x1, x2, x3, x6)
pB_out_gaaaag(x1, x2, x3, x4, x5, x6)  =  pB_out_gaaaag(x1, x5, x6)
transpose_auxE_out_gga(x1, x2, x3)  =  transpose_auxE_out_gga(x1, x2)
transposeA_out_ga(x1, x2)  =  transposeA_out_ga(x1)
ROW2COLC_IN_GAAA(x1, x2, x3, x4)  =  ROW2COLC_IN_GAAA(x1)

We have to consider all (P,R,Pi)-chains

(8) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

ROW2COLC_IN_GAAA(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → ROW2COLC_IN_GAAA(T82, T85, X139, X140)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
[]  =  []
ROW2COLC_IN_GAAA(x1, x2, x3, x4)  =  ROW2COLC_IN_GAAA(x1)

We have to consider all (P,R,Pi)-chains

(10) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(11) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ROW2COLC_IN_GAAA(.(T81, T82)) → ROW2COLC_IN_GAAA(T82)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(12) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • ROW2COLC_IN_GAAA(.(T81, T82)) → ROW2COLC_IN_GAAA(T82)
    The graph contains the following edges 1 > 1

(13) YES

(14) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

U5_GAAAAG(T24, T28, T29, T34, T35, T25, row2colD_out_gaaaa(T24, T28, T29, T34, T35)) → TRANSPOSE_AUXE_IN_GGA(T25, T35, T34)
TRANSPOSE_AUXE_IN_GGA(.(T115, T116), T117, .(T120, T121)) → PB_IN_GAAAAG(T115, T120, T121, X185, X186, T116)
PB_IN_GAAAAG(T24, T28, T29, T34, T35, T25) → U5_GAAAAG(T24, T28, T29, T34, T35, T25, row2colD_in_gaaaa(T24, T28, T29, T34, T35))

The TRS R consists of the following rules:

transposeA_in_ga(.(T24, T25), .(T28, T29)) → U1_ga(T24, T25, T28, T29, pB_in_gaaaag(T24, T28, T29, X35, X36, T25))
pB_in_gaaaag(T24, T28, T29, T34, T35, T25) → U5_gaaaag(T24, T28, T29, T34, T35, T25, row2colD_in_gaaaa(T24, T28, T29, T34, T35))
row2colD_in_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92)) → U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_in_gaaa(T57, T60, X91, X92))
row2colC_in_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_in_gaaa(T82, T85, X139, X140))
row2colC_in_gaaa([], [], [], []) → row2colC_out_gaaa([], [], [], [])
U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_out_gaaa(T82, T85, X139, X140)) → row2colC_out_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140))
U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_out_gaaa(T57, T60, X91, X92)) → row2colD_out_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92))
U5_gaaaag(T24, T28, T29, T34, T35, T25, row2colD_out_gaaaa(T24, T28, T29, T34, T35)) → U6_gaaaag(T24, T28, T29, T34, T35, T25, transpose_auxE_in_gga(T25, T35, T34))
transpose_auxE_in_gga(.(T115, T116), T117, .(T120, T121)) → U4_gga(T115, T116, T117, T120, T121, pB_in_gaaaag(T115, T120, T121, X185, X186, T116))
U4_gga(T115, T116, T117, T120, T121, pB_out_gaaaag(T115, T120, T121, X185, X186, T116)) → transpose_auxE_out_gga(.(T115, T116), T117, .(T120, T121))
transpose_auxE_in_gga([], T128, T128) → transpose_auxE_out_gga([], T128, T128)
U6_gaaaag(T24, T28, T29, T34, T35, T25, transpose_auxE_out_gga(T25, T35, T34)) → pB_out_gaaaag(T24, T28, T29, T34, T35, T25)
U1_ga(T24, T25, T28, T29, pB_out_gaaaag(T24, T28, T29, X35, X36, T25)) → transposeA_out_ga(.(T24, T25), .(T28, T29))
transposeA_in_ga([], []) → transposeA_out_ga([], [])

The argument filtering Pi contains the following mapping:
transposeA_in_ga(x1, x2)  =  transposeA_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U1_ga(x1, x2, x3, x4, x5)  =  U1_ga(x1, x2, x5)
pB_in_gaaaag(x1, x2, x3, x4, x5, x6)  =  pB_in_gaaaag(x1, x6)
U5_gaaaag(x1, x2, x3, x4, x5, x6, x7)  =  U5_gaaaag(x1, x6, x7)
row2colD_in_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_in_gaaaa(x1)
U3_gaaaa(x1, x2, x3, x4, x5, x6, x7)  =  U3_gaaaa(x1, x2, x7)
row2colC_in_gaaa(x1, x2, x3, x4)  =  row2colC_in_gaaa(x1)
U2_gaaa(x1, x2, x3, x4, x5, x6, x7)  =  U2_gaaa(x1, x2, x7)
[]  =  []
row2colC_out_gaaa(x1, x2, x3, x4)  =  row2colC_out_gaaa(x1, x4)
row2colD_out_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_out_gaaaa(x1, x5)
U6_gaaaag(x1, x2, x3, x4, x5, x6, x7)  =  U6_gaaaag(x1, x5, x6, x7)
transpose_auxE_in_gga(x1, x2, x3)  =  transpose_auxE_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4, x5, x6)  =  U4_gga(x1, x2, x3, x6)
pB_out_gaaaag(x1, x2, x3, x4, x5, x6)  =  pB_out_gaaaag(x1, x5, x6)
transpose_auxE_out_gga(x1, x2, x3)  =  transpose_auxE_out_gga(x1, x2)
transposeA_out_ga(x1, x2)  =  transposeA_out_ga(x1)
PB_IN_GAAAAG(x1, x2, x3, x4, x5, x6)  =  PB_IN_GAAAAG(x1, x6)
U5_GAAAAG(x1, x2, x3, x4, x5, x6, x7)  =  U5_GAAAAG(x1, x6, x7)
TRANSPOSE_AUXE_IN_GGA(x1, x2, x3)  =  TRANSPOSE_AUXE_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(15) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

U5_GAAAAG(T24, T28, T29, T34, T35, T25, row2colD_out_gaaaa(T24, T28, T29, T34, T35)) → TRANSPOSE_AUXE_IN_GGA(T25, T35, T34)
TRANSPOSE_AUXE_IN_GGA(.(T115, T116), T117, .(T120, T121)) → PB_IN_GAAAAG(T115, T120, T121, X185, X186, T116)
PB_IN_GAAAAG(T24, T28, T29, T34, T35, T25) → U5_GAAAAG(T24, T28, T29, T34, T35, T25, row2colD_in_gaaaa(T24, T28, T29, T34, T35))

The TRS R consists of the following rules:

row2colD_in_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92)) → U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_in_gaaa(T57, T60, X91, X92))
U3_gaaaa(T56, T57, T58, T60, X91, X92, row2colC_out_gaaa(T57, T60, X91, X92)) → row2colD_out_gaaaa(.(T56, T57), .(T56, T58), T60, .(T58, X91), .([], X92))
row2colC_in_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140)) → U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_in_gaaa(T82, T85, X139, X140))
row2colC_in_gaaa([], [], [], []) → row2colC_out_gaaa([], [], [], [])
U2_gaaa(T81, T82, T83, T85, X139, X140, row2colC_out_gaaa(T82, T85, X139, X140)) → row2colC_out_gaaa(.(T81, T82), .(.(T81, T83), T85), .(T83, X139), .([], X140))

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
row2colD_in_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_in_gaaaa(x1)
U3_gaaaa(x1, x2, x3, x4, x5, x6, x7)  =  U3_gaaaa(x1, x2, x7)
row2colC_in_gaaa(x1, x2, x3, x4)  =  row2colC_in_gaaa(x1)
U2_gaaa(x1, x2, x3, x4, x5, x6, x7)  =  U2_gaaa(x1, x2, x7)
[]  =  []
row2colC_out_gaaa(x1, x2, x3, x4)  =  row2colC_out_gaaa(x1, x4)
row2colD_out_gaaaa(x1, x2, x3, x4, x5)  =  row2colD_out_gaaaa(x1, x5)
PB_IN_GAAAAG(x1, x2, x3, x4, x5, x6)  =  PB_IN_GAAAAG(x1, x6)
U5_GAAAAG(x1, x2, x3, x4, x5, x6, x7)  =  U5_GAAAAG(x1, x6, x7)
TRANSPOSE_AUXE_IN_GGA(x1, x2, x3)  =  TRANSPOSE_AUXE_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(17) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U5_GAAAAG(T24, T25, row2colD_out_gaaaa(T24, T35)) → TRANSPOSE_AUXE_IN_GGA(T25, T35)
TRANSPOSE_AUXE_IN_GGA(.(T115, T116), T117) → PB_IN_GAAAAG(T115, T116)
PB_IN_GAAAAG(T24, T25) → U5_GAAAAG(T24, T25, row2colD_in_gaaaa(T24))

The TRS R consists of the following rules:

row2colD_in_gaaaa(.(T56, T57)) → U3_gaaaa(T56, T57, row2colC_in_gaaa(T57))
U3_gaaaa(T56, T57, row2colC_out_gaaa(T57, X92)) → row2colD_out_gaaaa(.(T56, T57), .([], X92))
row2colC_in_gaaa(.(T81, T82)) → U2_gaaa(T81, T82, row2colC_in_gaaa(T82))
row2colC_in_gaaa([]) → row2colC_out_gaaa([], [])
U2_gaaa(T81, T82, row2colC_out_gaaa(T82, X140)) → row2colC_out_gaaa(.(T81, T82), .([], X140))

The set Q consists of the following terms:

row2colD_in_gaaaa(x0)
U3_gaaaa(x0, x1, x2)
row2colC_in_gaaa(x0)
U2_gaaa(x0, x1, x2)

We have to consider all (P,Q,R)-chains.

(19) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • TRANSPOSE_AUXE_IN_GGA(.(T115, T116), T117) → PB_IN_GAAAAG(T115, T116)
    The graph contains the following edges 1 > 1, 1 > 2

  • PB_IN_GAAAAG(T24, T25) → U5_GAAAAG(T24, T25, row2colD_in_gaaaa(T24))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • U5_GAAAAG(T24, T25, row2colD_out_gaaaa(T24, T35)) → TRANSPOSE_AUXE_IN_GGA(T25, T35)
    The graph contains the following edges 2 >= 1, 3 > 2

(20) YES