↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
test_snake3: (b,b,b)
s2l2: (b,f)
snake3: (b,b,b)
infinite_snake3: (b,f,f)
produce_snake4: (b,b,f,f)
part_of_snake4: (b,f,f,f)
coil_it2: (b,b)
reverse22: (f,f)
reverse3: (f,b,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
TEST_SNAKE_3_IN_GGG3(Pattern, C, R) -> IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
TEST_SNAKE_3_IN_GGG3(Pattern, C, R) -> S2L_2_IN_GA2(C, Cols)
S2L_2_IN_GA2(s_11(X), cons_22(underscore, Y)) -> IF_S2L_2_IN_1_GA4(X, underscore, Y, s2l_2_in_ga2(X, Y))
S2L_2_IN_GA2(s_11(X), cons_22(underscore, Y)) -> S2L_2_IN_GA2(X, Y)
IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> S2L_2_IN_GA2(R, Rows)
IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> IF_TEST_SNAKE_3_IN_3_GGG6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> SNAKE_3_IN_GGG3(Pattern, Cols, Rows)
SNAKE_3_IN_GGG3(Pattern, Cols, Rows) -> IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
SNAKE_3_IN_GGG3(Pattern, Cols, Rows) -> INFINITE_SNAKE_3_IN_GAA3(Pattern, InfSnake, InfSnake)
INFINITE_SNAKE_3_IN_GAA3(cons_22(A, R), cons_22(A, T), S) -> IF_INFINITE_SNAKE_3_IN_1_GAA5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
INFINITE_SNAKE_3_IN_GAA3(cons_22(A, R), cons_22(A, T), S) -> INFINITE_SNAKE_3_IN_GAA3(R, T, S)
IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> PRODUCE_SNAKE_4_IN_GGAA4(Rows, Cols, InfSnake, Snake)
PRODUCE_SNAKE_4_IN_GGAA4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
PRODUCE_SNAKE_4_IN_GGAA4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> PART_OF_SNAKE_4_IN_GAAA4(Cols, InfSnake, NewInfSnake, Part)
PART_OF_SNAKE_4_IN_GAAA4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> IF_PART_OF_SNAKE_4_IN_1_GAAA7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
PART_OF_SNAKE_4_IN_GAAA4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> PART_OF_SNAKE_4_IN_GAAA4(R, Rings, RestSnake, RestRings)
IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> IF_PRODUCE_SNAKE_4_IN_2_GGAA8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> PRODUCE_SNAKE_4_IN_GGAA4(Rows, Cols, NewInfSnake, Tail)
IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> IF_SNAKE_3_IN_3_GGG5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> COIL_IT_2_IN_GG2(Snake, odd_0)
COIL_IT_2_IN_GG2(cons_22(Line, Lines), odd_0) -> IF_COIL_IT_2_IN_1_GG3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
COIL_IT_2_IN_GG2(cons_22(Line, Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
COIL_IT_2_IN_GG2(cons_22(Line, Lines), even_0) -> IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
COIL_IT_2_IN_GG2(cons_22(Line, Lines), even_0) -> REVERSE2_2_IN_AA2(Line, Line1)
REVERSE2_2_IN_AA2(List, Reversed) -> IF_REVERSE2_2_IN_1_AA3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
REVERSE2_2_IN_AA2(List, Reversed) -> REVERSE_3_IN_AGA3(List, nil_0, Reversed)
REVERSE_3_IN_AGA3(cons_22(Head, Tail), SoFar, Reversed) -> IF_REVERSE_3_IN_1_AGA5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
REVERSE_3_IN_AGA3(cons_22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, cons_22(Head, SoFar), Reversed)
IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> IF_COIL_IT_2_IN_3_GG3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> COIL_IT_2_IN_GG2(Lines, odd_0)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
TEST_SNAKE_3_IN_GGG3(Pattern, C, R) -> IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
TEST_SNAKE_3_IN_GGG3(Pattern, C, R) -> S2L_2_IN_GA2(C, Cols)
S2L_2_IN_GA2(s_11(X), cons_22(underscore, Y)) -> IF_S2L_2_IN_1_GA4(X, underscore, Y, s2l_2_in_ga2(X, Y))
S2L_2_IN_GA2(s_11(X), cons_22(underscore, Y)) -> S2L_2_IN_GA2(X, Y)
IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> S2L_2_IN_GA2(R, Rows)
IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> IF_TEST_SNAKE_3_IN_3_GGG6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> SNAKE_3_IN_GGG3(Pattern, Cols, Rows)
SNAKE_3_IN_GGG3(Pattern, Cols, Rows) -> IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
SNAKE_3_IN_GGG3(Pattern, Cols, Rows) -> INFINITE_SNAKE_3_IN_GAA3(Pattern, InfSnake, InfSnake)
INFINITE_SNAKE_3_IN_GAA3(cons_22(A, R), cons_22(A, T), S) -> IF_INFINITE_SNAKE_3_IN_1_GAA5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
INFINITE_SNAKE_3_IN_GAA3(cons_22(A, R), cons_22(A, T), S) -> INFINITE_SNAKE_3_IN_GAA3(R, T, S)
IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> PRODUCE_SNAKE_4_IN_GGAA4(Rows, Cols, InfSnake, Snake)
PRODUCE_SNAKE_4_IN_GGAA4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
PRODUCE_SNAKE_4_IN_GGAA4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> PART_OF_SNAKE_4_IN_GAAA4(Cols, InfSnake, NewInfSnake, Part)
PART_OF_SNAKE_4_IN_GAAA4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> IF_PART_OF_SNAKE_4_IN_1_GAAA7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
PART_OF_SNAKE_4_IN_GAAA4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> PART_OF_SNAKE_4_IN_GAAA4(R, Rings, RestSnake, RestRings)
IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> IF_PRODUCE_SNAKE_4_IN_2_GGAA8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> PRODUCE_SNAKE_4_IN_GGAA4(Rows, Cols, NewInfSnake, Tail)
IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> IF_SNAKE_3_IN_3_GGG5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> COIL_IT_2_IN_GG2(Snake, odd_0)
COIL_IT_2_IN_GG2(cons_22(Line, Lines), odd_0) -> IF_COIL_IT_2_IN_1_GG3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
COIL_IT_2_IN_GG2(cons_22(Line, Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
COIL_IT_2_IN_GG2(cons_22(Line, Lines), even_0) -> IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
COIL_IT_2_IN_GG2(cons_22(Line, Lines), even_0) -> REVERSE2_2_IN_AA2(Line, Line1)
REVERSE2_2_IN_AA2(List, Reversed) -> IF_REVERSE2_2_IN_1_AA3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
REVERSE2_2_IN_AA2(List, Reversed) -> REVERSE_3_IN_AGA3(List, nil_0, Reversed)
REVERSE_3_IN_AGA3(cons_22(Head, Tail), SoFar, Reversed) -> IF_REVERSE_3_IN_1_AGA5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
REVERSE_3_IN_AGA3(cons_22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, cons_22(Head, SoFar), Reversed)
IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> IF_COIL_IT_2_IN_3_GG3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> COIL_IT_2_IN_GG2(Lines, odd_0)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
REVERSE_3_IN_AGA3(cons_22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, cons_22(Head, SoFar), Reversed)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
REVERSE_3_IN_AGA3(cons_22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, cons_22(Head, SoFar), Reversed)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
REVERSE_3_IN_AGA1(SoFar) -> REVERSE_3_IN_AGA1(cons_21(SoFar))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
COIL_IT_2_IN_GG2(cons_22(Line, Lines), even_0) -> IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
COIL_IT_2_IN_GG2(cons_22(Line, Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> COIL_IT_2_IN_GG2(Lines, odd_0)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
COIL_IT_2_IN_GG2(cons_22(Line, Lines), even_0) -> IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
COIL_IT_2_IN_GG2(cons_22(Line, Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> COIL_IT_2_IN_GG2(Lines, odd_0)
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
COIL_IT_2_IN_GG2(cons_21(Lines), even_0) -> IF_COIL_IT_2_IN_2_GG2(Lines, reverse2_2_in_aa)
COIL_IT_2_IN_GG2(cons_21(Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
IF_COIL_IT_2_IN_2_GG2(Lines, reverse2_2_out_aa2(Line, Line1)) -> COIL_IT_2_IN_GG2(Lines, odd_0)
reverse2_2_in_aa -> if_reverse2_2_in_1_aa1(reverse_3_in_aga1(nil_0))
if_reverse2_2_in_1_aa1(reverse_3_out_aga2(List, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
reverse_3_in_aga1(Reversed) -> reverse_3_out_aga2(nil_0, Reversed)
reverse_3_in_aga1(SoFar) -> if_reverse_3_in_1_aga1(reverse_3_in_aga1(cons_21(SoFar)))
if_reverse_3_in_1_aga1(reverse_3_out_aga2(Tail, Reversed)) -> reverse_3_out_aga2(cons_21(Tail), Reversed)
reverse2_2_in_aa
if_reverse2_2_in_1_aa1(x0)
reverse_3_in_aga1(x0)
if_reverse_3_in_1_aga1(x0)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
PART_OF_SNAKE_4_IN_GAAA4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> PART_OF_SNAKE_4_IN_GAAA4(R, Rings, RestSnake, RestRings)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
PART_OF_SNAKE_4_IN_GAAA4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> PART_OF_SNAKE_4_IN_GAAA4(R, Rings, RestSnake, RestRings)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
PART_OF_SNAKE_4_IN_GAAA1(cons_21(R)) -> PART_OF_SNAKE_4_IN_GAAA1(R)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
PRODUCE_SNAKE_4_IN_GGAA4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> PRODUCE_SNAKE_4_IN_GGAA4(Rows, Cols, NewInfSnake, Tail)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
PRODUCE_SNAKE_4_IN_GGAA4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> PRODUCE_SNAKE_4_IN_GGAA4(Rows, Cols, NewInfSnake, Tail)
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
PRODUCE_SNAKE_4_IN_GGAA2(cons_21(Rows), Cols) -> IF_PRODUCE_SNAKE_4_IN_1_GGAA3(Rows, Cols, part_of_snake_4_in_gaaa1(Cols))
IF_PRODUCE_SNAKE_4_IN_1_GGAA3(Rows, Cols, part_of_snake_4_out_gaaa1(Part)) -> PRODUCE_SNAKE_4_IN_GGAA2(Rows, Cols)
part_of_snake_4_in_gaaa1(nil_0) -> part_of_snake_4_out_gaaa1(nil_0)
part_of_snake_4_in_gaaa1(cons_21(R)) -> if_part_of_snake_4_in_1_gaaa1(part_of_snake_4_in_gaaa1(R))
if_part_of_snake_4_in_1_gaaa1(part_of_snake_4_out_gaaa1(RestRings)) -> part_of_snake_4_out_gaaa1(cons_21(RestRings))
part_of_snake_4_in_gaaa1(x0)
if_part_of_snake_4_in_1_gaaa1(x0)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
INFINITE_SNAKE_3_IN_GAA3(cons_22(A, R), cons_22(A, T), S) -> INFINITE_SNAKE_3_IN_GAA3(R, T, S)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
INFINITE_SNAKE_3_IN_GAA3(cons_22(A, R), cons_22(A, T), S) -> INFINITE_SNAKE_3_IN_GAA3(R, T, S)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PrologToPiTRSProof
INFINITE_SNAKE_3_IN_GAA1(cons_21(R)) -> INFINITE_SNAKE_3_IN_GAA1(R)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
S2L_2_IN_GA2(s_11(X), cons_22(underscore, Y)) -> S2L_2_IN_GA2(X, Y)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
S2L_2_IN_GA2(s_11(X), cons_22(underscore, Y)) -> S2L_2_IN_GA2(X, Y)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PrologToPiTRSProof
S2L_2_IN_GA1(s_11(X)) -> S2L_2_IN_GA1(X)
From the DPs we obtained the following set of size-change graphs:
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
TEST_SNAKE_3_IN_GGG3(Pattern, C, R) -> IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
TEST_SNAKE_3_IN_GGG3(Pattern, C, R) -> S2L_2_IN_GA2(C, Cols)
S2L_2_IN_GA2(s_11(X), cons_22(underscore, Y)) -> IF_S2L_2_IN_1_GA4(X, underscore, Y, s2l_2_in_ga2(X, Y))
S2L_2_IN_GA2(s_11(X), cons_22(underscore, Y)) -> S2L_2_IN_GA2(X, Y)
IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> S2L_2_IN_GA2(R, Rows)
IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> IF_TEST_SNAKE_3_IN_3_GGG6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> SNAKE_3_IN_GGG3(Pattern, Cols, Rows)
SNAKE_3_IN_GGG3(Pattern, Cols, Rows) -> IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
SNAKE_3_IN_GGG3(Pattern, Cols, Rows) -> INFINITE_SNAKE_3_IN_GAA3(Pattern, InfSnake, InfSnake)
INFINITE_SNAKE_3_IN_GAA3(cons_22(A, R), cons_22(A, T), S) -> IF_INFINITE_SNAKE_3_IN_1_GAA5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
INFINITE_SNAKE_3_IN_GAA3(cons_22(A, R), cons_22(A, T), S) -> INFINITE_SNAKE_3_IN_GAA3(R, T, S)
IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> PRODUCE_SNAKE_4_IN_GGAA4(Rows, Cols, InfSnake, Snake)
PRODUCE_SNAKE_4_IN_GGAA4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
PRODUCE_SNAKE_4_IN_GGAA4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> PART_OF_SNAKE_4_IN_GAAA4(Cols, InfSnake, NewInfSnake, Part)
PART_OF_SNAKE_4_IN_GAAA4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> IF_PART_OF_SNAKE_4_IN_1_GAAA7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
PART_OF_SNAKE_4_IN_GAAA4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> PART_OF_SNAKE_4_IN_GAAA4(R, Rings, RestSnake, RestRings)
IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> IF_PRODUCE_SNAKE_4_IN_2_GGAA8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> PRODUCE_SNAKE_4_IN_GGAA4(Rows, Cols, NewInfSnake, Tail)
IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> IF_SNAKE_3_IN_3_GGG5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> COIL_IT_2_IN_GG2(Snake, odd_0)
COIL_IT_2_IN_GG2(cons_22(Line, Lines), odd_0) -> IF_COIL_IT_2_IN_1_GG3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
COIL_IT_2_IN_GG2(cons_22(Line, Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
COIL_IT_2_IN_GG2(cons_22(Line, Lines), even_0) -> IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
COIL_IT_2_IN_GG2(cons_22(Line, Lines), even_0) -> REVERSE2_2_IN_AA2(Line, Line1)
REVERSE2_2_IN_AA2(List, Reversed) -> IF_REVERSE2_2_IN_1_AA3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
REVERSE2_2_IN_AA2(List, Reversed) -> REVERSE_3_IN_AGA3(List, nil_0, Reversed)
REVERSE_3_IN_AGA3(cons_22(Head, Tail), SoFar, Reversed) -> IF_REVERSE_3_IN_1_AGA5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
REVERSE_3_IN_AGA3(cons_22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, cons_22(Head, SoFar), Reversed)
IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> IF_COIL_IT_2_IN_3_GG3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> COIL_IT_2_IN_GG2(Lines, odd_0)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
TEST_SNAKE_3_IN_GGG3(Pattern, C, R) -> IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
TEST_SNAKE_3_IN_GGG3(Pattern, C, R) -> S2L_2_IN_GA2(C, Cols)
S2L_2_IN_GA2(s_11(X), cons_22(underscore, Y)) -> IF_S2L_2_IN_1_GA4(X, underscore, Y, s2l_2_in_ga2(X, Y))
S2L_2_IN_GA2(s_11(X), cons_22(underscore, Y)) -> S2L_2_IN_GA2(X, Y)
IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
IF_TEST_SNAKE_3_IN_1_GGG4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> S2L_2_IN_GA2(R, Rows)
IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> IF_TEST_SNAKE_3_IN_3_GGG6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
IF_TEST_SNAKE_3_IN_2_GGG5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> SNAKE_3_IN_GGG3(Pattern, Cols, Rows)
SNAKE_3_IN_GGG3(Pattern, Cols, Rows) -> IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
SNAKE_3_IN_GGG3(Pattern, Cols, Rows) -> INFINITE_SNAKE_3_IN_GAA3(Pattern, InfSnake, InfSnake)
INFINITE_SNAKE_3_IN_GAA3(cons_22(A, R), cons_22(A, T), S) -> IF_INFINITE_SNAKE_3_IN_1_GAA5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
INFINITE_SNAKE_3_IN_GAA3(cons_22(A, R), cons_22(A, T), S) -> INFINITE_SNAKE_3_IN_GAA3(R, T, S)
IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
IF_SNAKE_3_IN_1_GGG4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> PRODUCE_SNAKE_4_IN_GGAA4(Rows, Cols, InfSnake, Snake)
PRODUCE_SNAKE_4_IN_GGAA4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
PRODUCE_SNAKE_4_IN_GGAA4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> PART_OF_SNAKE_4_IN_GAAA4(Cols, InfSnake, NewInfSnake, Part)
PART_OF_SNAKE_4_IN_GAAA4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> IF_PART_OF_SNAKE_4_IN_1_GAAA7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
PART_OF_SNAKE_4_IN_GAAA4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> PART_OF_SNAKE_4_IN_GAAA4(R, Rings, RestSnake, RestRings)
IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> IF_PRODUCE_SNAKE_4_IN_2_GGAA8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> PRODUCE_SNAKE_4_IN_GGAA4(Rows, Cols, NewInfSnake, Tail)
IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> IF_SNAKE_3_IN_3_GGG5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
IF_SNAKE_3_IN_2_GGG5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> COIL_IT_2_IN_GG2(Snake, odd_0)
COIL_IT_2_IN_GG2(cons_22(Line, Lines), odd_0) -> IF_COIL_IT_2_IN_1_GG3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
COIL_IT_2_IN_GG2(cons_22(Line, Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
COIL_IT_2_IN_GG2(cons_22(Line, Lines), even_0) -> IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
COIL_IT_2_IN_GG2(cons_22(Line, Lines), even_0) -> REVERSE2_2_IN_AA2(Line, Line1)
REVERSE2_2_IN_AA2(List, Reversed) -> IF_REVERSE2_2_IN_1_AA3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
REVERSE2_2_IN_AA2(List, Reversed) -> REVERSE_3_IN_AGA3(List, nil_0, Reversed)
REVERSE_3_IN_AGA3(cons_22(Head, Tail), SoFar, Reversed) -> IF_REVERSE_3_IN_1_AGA5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
REVERSE_3_IN_AGA3(cons_22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, cons_22(Head, SoFar), Reversed)
IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> IF_COIL_IT_2_IN_3_GG3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> COIL_IT_2_IN_GG2(Lines, odd_0)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
REVERSE_3_IN_AGA3(cons_22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, cons_22(Head, SoFar), Reversed)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
COIL_IT_2_IN_GG2(cons_22(Line, Lines), even_0) -> IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
COIL_IT_2_IN_GG2(cons_22(Line, Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> COIL_IT_2_IN_GG2(Lines, odd_0)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
PART_OF_SNAKE_4_IN_GAAA4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> PART_OF_SNAKE_4_IN_GAAA4(R, Rings, RestSnake, RestRings)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
PRODUCE_SNAKE_4_IN_GGAA4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
IF_PRODUCE_SNAKE_4_IN_1_GGAA7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> PRODUCE_SNAKE_4_IN_GGAA4(Rows, Cols, NewInfSnake, Tail)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
INFINITE_SNAKE_3_IN_GAA3(cons_22(A, R), cons_22(A, T), S) -> INFINITE_SNAKE_3_IN_GAA3(R, T, S)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
S2L_2_IN_GA2(s_11(X), cons_22(underscore, Y)) -> S2L_2_IN_GA2(X, Y)
test_snake_3_in_ggg3(Pattern, C, R) -> if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_in_ga2(C, Cols))
s2l_2_in_ga2(0_0, nil_0) -> s2l_2_out_ga2(0_0, nil_0)
s2l_2_in_ga2(s_11(X), cons_22(underscore, Y)) -> if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_in_ga2(X, Y))
if_s2l_2_in_1_ga4(X, underscore, Y, s2l_2_out_ga2(X, Y)) -> s2l_2_out_ga2(s_11(X), cons_22(underscore, Y))
if_test_snake_3_in_1_ggg4(Pattern, C, R, s2l_2_out_ga2(C, Cols)) -> if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_in_ga2(R, Rows))
if_test_snake_3_in_2_ggg5(Pattern, C, R, Cols, s2l_2_out_ga2(R, Rows)) -> if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_in_ggg3(Pattern, Cols, Rows))
snake_3_in_ggg3(Pattern, Cols, Rows) -> if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_in_gaa3(Pattern, InfSnake, InfSnake))
infinite_snake_3_in_gaa3(nil_0, S, S) -> infinite_snake_3_out_gaa3(nil_0, S, S)
infinite_snake_3_in_gaa3(cons_22(A, R), cons_22(A, T), S) -> if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_in_gaa3(R, T, S))
if_infinite_snake_3_in_1_gaa5(A, R, T, S, infinite_snake_3_out_gaa3(R, T, S)) -> infinite_snake_3_out_gaa3(cons_22(A, R), cons_22(A, T), S)
if_snake_3_in_1_ggg4(Pattern, Cols, Rows, infinite_snake_3_out_gaa3(Pattern, InfSnake, InfSnake)) -> if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_in_ggaa4(Rows, Cols, InfSnake, Snake))
produce_snake_4_in_ggaa4(nil_0, underscore1, underscore2, nil_0) -> produce_snake_4_out_ggaa4(nil_0, underscore1, underscore2, nil_0)
produce_snake_4_in_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail)) -> if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_in_gaaa4(Cols, InfSnake, NewInfSnake, Part))
part_of_snake_4_in_gaaa4(nil_0, RestSnake, RestSnake, nil_0) -> part_of_snake_4_out_gaaa4(nil_0, RestSnake, RestSnake, nil_0)
part_of_snake_4_in_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings)) -> if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_in_gaaa4(R, Rings, RestSnake, RestRings))
if_part_of_snake_4_in_1_gaaa7(underscore4, R, Ring, Rings, RestSnake, RestRings, part_of_snake_4_out_gaaa4(R, Rings, RestSnake, RestRings)) -> part_of_snake_4_out_gaaa4(cons_22(underscore4, R), cons_22(Ring, Rings), RestSnake, cons_22(Ring, RestRings))
if_produce_snake_4_in_1_ggaa7(underscore3, Rows, Cols, InfSnake, Part, Tail, part_of_snake_4_out_gaaa4(Cols, InfSnake, NewInfSnake, Part)) -> if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_in_ggaa4(Rows, Cols, NewInfSnake, Tail))
if_produce_snake_4_in_2_ggaa8(underscore3, Rows, Cols, InfSnake, Part, Tail, NewInfSnake, produce_snake_4_out_ggaa4(Rows, Cols, NewInfSnake, Tail)) -> produce_snake_4_out_ggaa4(cons_22(underscore3, Rows), Cols, InfSnake, cons_22(Part, Tail))
if_snake_3_in_2_ggg5(Pattern, Cols, Rows, InfSnake, produce_snake_4_out_ggaa4(Rows, Cols, InfSnake, Snake)) -> if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_in_gg2(Snake, odd_0))
coil_it_2_in_gg2(nil_0, underscore5) -> coil_it_2_out_gg2(nil_0, underscore5)
coil_it_2_in_gg2(cons_22(Line, Lines), odd_0) -> if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_in_gg2(Lines, even_0))
coil_it_2_in_gg2(cons_22(Line, Lines), even_0) -> if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
reverse2_2_in_aa2(List, Reversed) -> if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_in_aga3(List, nil_0, Reversed))
reverse_3_in_aga3(nil_0, Reversed, Reversed) -> reverse_3_out_aga3(nil_0, Reversed, Reversed)
reverse_3_in_aga3(cons_22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, cons_22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, cons_22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(cons_22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, nil_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
if_coil_it_2_in_2_gg3(Line, Lines, reverse2_2_out_aa2(Line, Line1)) -> if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_in_gg2(Lines, odd_0))
if_coil_it_2_in_3_gg3(Line, Lines, coil_it_2_out_gg2(Lines, odd_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), even_0)
if_coil_it_2_in_1_gg3(Line, Lines, coil_it_2_out_gg2(Lines, even_0)) -> coil_it_2_out_gg2(cons_22(Line, Lines), odd_0)
if_snake_3_in_3_ggg5(Pattern, Cols, Rows, Snake, coil_it_2_out_gg2(Snake, odd_0)) -> snake_3_out_ggg3(Pattern, Cols, Rows)
if_test_snake_3_in_3_ggg6(Pattern, C, R, Cols, Rows, snake_3_out_ggg3(Pattern, Cols, Rows)) -> test_snake_3_out_ggg3(Pattern, C, R)