↳ 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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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), ._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), ._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(._22(A, R), ._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(._22(A, R), ._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(._22(underscore3, Rows), Cols, InfSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._22(Part, Tail)) -> PART_OF_SNAKE_4_IN_GAAA4(Cols, InfSnake, NewInfSnake, Part)
PART_OF_SNAKE_4_IN_GAAA4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._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(._22(Line, Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
COIL_IT_2_IN_GG2(._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(._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, []_0, Reversed))
REVERSE2_2_IN_AA2(List, Reversed) -> REVERSE_3_IN_AGA3(List, []_0, Reversed)
REVERSE_3_IN_AGA3(._22(Head, Tail), SoFar, Reversed) -> IF_REVERSE_3_IN_1_AGA5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
REVERSE_3_IN_AGA3(._22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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), ._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), ._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(._22(A, R), ._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(._22(A, R), ._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(._22(underscore3, Rows), Cols, InfSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._22(Part, Tail)) -> PART_OF_SNAKE_4_IN_GAAA4(Cols, InfSnake, NewInfSnake, Part)
PART_OF_SNAKE_4_IN_GAAA4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._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(._22(Line, Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
COIL_IT_2_IN_GG2(._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(._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, []_0, Reversed))
REVERSE2_2_IN_AA2(List, Reversed) -> REVERSE_3_IN_AGA3(List, []_0, Reversed)
REVERSE_3_IN_AGA3(._22(Head, Tail), SoFar, Reversed) -> IF_REVERSE_3_IN_1_AGA5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
REVERSE_3_IN_AGA3(._22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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(._22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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(._22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, ._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(._21(SoFar))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
COIL_IT_2_IN_GG2(._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)
COIL_IT_2_IN_GG2(._22(Line, Lines), even_0) -> IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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(._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)
COIL_IT_2_IN_GG2(._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, []_0, Reversed))
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._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(._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)
COIL_IT_2_IN_GG2(._21(Lines), even_0) -> IF_COIL_IT_2_IN_2_GG2(Lines, reverse2_2_in_aa)
reverse2_2_in_aa -> if_reverse2_2_in_1_aa1(reverse_3_in_aga1([]_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([]_0, Reversed)
reverse_3_in_aga1(SoFar) -> if_reverse_3_in_1_aga1(reverse_3_in_aga1(._21(SoFar)))
if_reverse_3_in_1_aga1(reverse_3_out_aga2(Tail, Reversed)) -> reverse_3_out_aga2(._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._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(._22(underscore3, Rows), Cols, InfSnake, ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._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([]_0) -> part_of_snake_4_out_gaaa1([]_0)
part_of_snake_4_in_gaaa1(._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(._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(._22(A, R), ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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(._22(A, R), ._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(._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), ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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), ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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), ._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), ._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(._22(A, R), ._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(._22(A, R), ._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(._22(underscore3, Rows), Cols, InfSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._22(Part, Tail)) -> PART_OF_SNAKE_4_IN_GAAA4(Cols, InfSnake, NewInfSnake, Part)
PART_OF_SNAKE_4_IN_GAAA4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._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(._22(Line, Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
COIL_IT_2_IN_GG2(._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(._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, []_0, Reversed))
REVERSE2_2_IN_AA2(List, Reversed) -> REVERSE_3_IN_AGA3(List, []_0, Reversed)
REVERSE_3_IN_AGA3(._22(Head, Tail), SoFar, Reversed) -> IF_REVERSE_3_IN_1_AGA5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
REVERSE_3_IN_AGA3(._22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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), ._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), ._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(._22(A, R), ._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(._22(A, R), ._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(._22(underscore3, Rows), Cols, InfSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._22(Part, Tail)) -> PART_OF_SNAKE_4_IN_GAAA4(Cols, InfSnake, NewInfSnake, Part)
PART_OF_SNAKE_4_IN_GAAA4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._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(._22(Line, Lines), odd_0) -> COIL_IT_2_IN_GG2(Lines, even_0)
COIL_IT_2_IN_GG2(._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(._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, []_0, Reversed))
REVERSE2_2_IN_AA2(List, Reversed) -> REVERSE_3_IN_AGA3(List, []_0, Reversed)
REVERSE_3_IN_AGA3(._22(Head, Tail), SoFar, Reversed) -> IF_REVERSE_3_IN_1_AGA5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
REVERSE_3_IN_AGA3(._22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
REVERSE_3_IN_AGA3(._22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
REVERSE_3_IN_AGA3(._22(Head, Tail), SoFar, Reversed) -> REVERSE_3_IN_AGA3(Tail, ._22(Head, SoFar), Reversed)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
REVERSE_3_IN_AGA1(SoFar) -> REVERSE_3_IN_AGA1(._21(SoFar))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
COIL_IT_2_IN_GG2(._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)
COIL_IT_2_IN_GG2(._22(Line, Lines), even_0) -> IF_COIL_IT_2_IN_2_GG3(Line, Lines, reverse2_2_in_aa2(Line, Line1))
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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
COIL_IT_2_IN_GG2(._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)
COIL_IT_2_IN_GG2(._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, []_0, Reversed))
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
COIL_IT_2_IN_GG2(._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)
COIL_IT_2_IN_GG2(._21(Lines), even_0) -> IF_COIL_IT_2_IN_2_GG2(Lines, reverse2_2_in_aa)
reverse2_2_in_aa -> if_reverse2_2_in_1_aa1(reverse_3_in_aga1([]_0))
if_reverse2_2_in_1_aa1(reverse_3_out_aga3(List, []_0, Reversed)) -> reverse2_2_out_aa2(List, Reversed)
reverse_3_in_aga1(Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga1(SoFar) -> if_reverse_3_in_1_aga2(SoFar, reverse_3_in_aga1(._21(SoFar)))
if_reverse_3_in_1_aga2(SoFar, reverse_3_out_aga3(Tail, ._21(SoFar), Reversed)) -> reverse_3_out_aga3(._21(Tail), SoFar, Reversed)
reverse2_2_in_aa
if_reverse2_2_in_1_aa1(x0)
reverse_3_in_aga1(x0)
if_reverse_3_in_1_aga2(x0, x1)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PiDP
PART_OF_SNAKE_4_IN_GAAA4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PiDP
PART_OF_SNAKE_4_IN_GAAA4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._22(Ring, RestRings)) -> PART_OF_SNAKE_4_IN_GAAA4(R, Rings, RestSnake, RestRings)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
↳ PiDP
PART_OF_SNAKE_4_IN_GAAA1(._21(R)) -> PART_OF_SNAKE_4_IN_GAAA1(R)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
PRODUCE_SNAKE_4_IN_GGAA4(._22(underscore3, Rows), Cols, InfSnake, ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
PRODUCE_SNAKE_4_IN_GGAA4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._22(Ring, RestRings))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PiDP
PRODUCE_SNAKE_4_IN_GGAA2(._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_gaaa2(Cols, Part)) -> PRODUCE_SNAKE_4_IN_GGAA2(Rows, Cols)
part_of_snake_4_in_gaaa1([]_0) -> part_of_snake_4_out_gaaa2([]_0, []_0)
part_of_snake_4_in_gaaa1(._21(R)) -> if_part_of_snake_4_in_1_gaaa2(R, part_of_snake_4_in_gaaa1(R))
if_part_of_snake_4_in_1_gaaa2(R, part_of_snake_4_out_gaaa2(R, RestRings)) -> part_of_snake_4_out_gaaa2(._21(R), ._21(RestRings))
part_of_snake_4_in_gaaa1(x0)
if_part_of_snake_4_in_1_gaaa2(x0, x1)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
INFINITE_SNAKE_3_IN_GAA3(._22(A, R), ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
INFINITE_SNAKE_3_IN_GAA3(._22(A, R), ._22(A, T), S) -> INFINITE_SNAKE_3_IN_GAA3(R, T, S)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
INFINITE_SNAKE_3_IN_GAA1(._21(R)) -> INFINITE_SNAKE_3_IN_GAA1(R)
From the DPs we obtained the following set of size-change graphs:
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
S2L_2_IN_GA2(s_11(X), ._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, []_0) -> s2l_2_out_ga2(0_0, []_0)
s2l_2_in_ga2(s_11(X), ._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), ._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([]_0, S, S) -> infinite_snake_3_out_gaa3([]_0, S, S)
infinite_snake_3_in_gaa3(._22(A, R), ._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(._22(A, R), ._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([]_0, underscore1, underscore2, []_0) -> produce_snake_4_out_ggaa4([]_0, underscore1, underscore2, []_0)
produce_snake_4_in_ggaa4(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, RestSnake, RestSnake, []_0) -> part_of_snake_4_out_gaaa4([]_0, RestSnake, RestSnake, []_0)
part_of_snake_4_in_gaaa4(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore4, R), ._22(Ring, Rings), RestSnake, ._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(._22(underscore3, Rows), Cols, InfSnake, ._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([]_0, underscore5) -> coil_it_2_out_gg2([]_0, underscore5)
coil_it_2_in_gg2(._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(._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, []_0, Reversed))
reverse_3_in_aga3([]_0, Reversed, Reversed) -> reverse_3_out_aga3([]_0, Reversed, Reversed)
reverse_3_in_aga3(._22(Head, Tail), SoFar, Reversed) -> if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_in_aga3(Tail, ._22(Head, SoFar), Reversed))
if_reverse_3_in_1_aga5(Head, Tail, SoFar, Reversed, reverse_3_out_aga3(Tail, ._22(Head, SoFar), Reversed)) -> reverse_3_out_aga3(._22(Head, Tail), SoFar, Reversed)
if_reverse2_2_in_1_aa3(List, Reversed, reverse_3_out_aga3(List, []_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(._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(._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
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
S2L_2_IN_GA2(s_11(X), ._22(underscore, Y)) -> S2L_2_IN_GA2(X, Y)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
S2L_2_IN_GA1(s_11(X)) -> S2L_2_IN_GA1(X)
From the DPs we obtained the following set of size-change graphs: