(0) Obligation:

Clauses:

rotate(X, Y) :- ','(append2(A, B, X), append1(B, A, Y)).
append1(.(X, Xs), Ys, .(X, Zs)) :- append1(Xs, Ys, Zs).
append1([], Ys, Ys).
append2(.(X, Xs), Ys, .(X, Zs)) :- append2(Xs, Ys, Zs).
append2([], Ys, Ys).

Query: rotate(g,a)

(1) PrologToPiTRSViaGraphTransformerProof (SOUND transformation)

Transformed Prolog program to (Pi-)TRS.

(2) Obligation:

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

rotateA_in_ga(.(T16, T17), T7) → U1_ga(T16, T17, T7, pB_in_aagga(X40, X41, T17, T16, T7))
pB_in_aagga(T20, T21, T17, T16, T7) → U6_aagga(T20, T21, T17, T16, T7, append2D_in_aag(T20, T21, T17))
append2D_in_aag(.(T32, X89), X90, .(T32, T33)) → U3_aag(T32, X89, X90, T33, append2D_in_aag(X89, X90, T33))
append2D_in_aag([], T38, T38) → append2D_out_aag([], T38, T38)
U3_aag(T32, X89, X90, T33, append2D_out_aag(X89, X90, T33)) → append2D_out_aag(.(T32, X89), X90, .(T32, T33))
U6_aagga(T20, T21, T17, T16, T7, append2D_out_aag(T20, T21, T17)) → U7_aagga(T20, T21, T17, T16, T7, append1E_in_ggga(T21, T16, T20, T7))
append1E_in_ggga(.(T64, T65), T66, T67, .(T64, T69)) → U4_ggga(T64, T65, T66, T67, T69, append1E_in_ggga(T65, T66, T67, T69))
append1E_in_ggga([], T79, T80, .(T79, T80)) → append1E_out_ggga([], T79, T80, .(T79, T80))
U4_ggga(T64, T65, T66, T67, T69, append1E_out_ggga(T65, T66, T67, T69)) → append1E_out_ggga(.(T64, T65), T66, T67, .(T64, T69))
U7_aagga(T20, T21, T17, T16, T7, append1E_out_ggga(T21, T16, T20, T7)) → pB_out_aagga(T20, T21, T17, T16, T7)
U1_ga(T16, T17, T7, pB_out_aagga(X40, X41, T17, T16, T7)) → rotateA_out_ga(.(T16, T17), T7)
rotateA_in_ga(T86, T7) → U2_ga(T86, T7, append1C_in_ga(T86, T7))
append1C_in_ga(.(T102, T103), .(T102, T105)) → U5_ga(T102, T103, T105, append1C_in_ga(T103, T105))
append1C_in_ga([], []) → append1C_out_ga([], [])
U5_ga(T102, T103, T105, append1C_out_ga(T103, T105)) → append1C_out_ga(.(T102, T103), .(T102, T105))
U2_ga(T86, T7, append1C_out_ga(T86, T7)) → rotateA_out_ga(T86, T7)

The argument filtering Pi contains the following mapping:
rotateA_in_ga(x1, x2)  =  rotateA_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x1, x2, x4)
pB_in_aagga(x1, x2, x3, x4, x5)  =  pB_in_aagga(x3, x4)
U6_aagga(x1, x2, x3, x4, x5, x6)  =  U6_aagga(x3, x4, x6)
append2D_in_aag(x1, x2, x3)  =  append2D_in_aag(x3)
U3_aag(x1, x2, x3, x4, x5)  =  U3_aag(x1, x4, x5)
append2D_out_aag(x1, x2, x3)  =  append2D_out_aag(x1, x2, x3)
U7_aagga(x1, x2, x3, x4, x5, x6)  =  U7_aagga(x1, x2, x3, x4, x6)
append1E_in_ggga(x1, x2, x3, x4)  =  append1E_in_ggga(x1, x2, x3)
U4_ggga(x1, x2, x3, x4, x5, x6)  =  U4_ggga(x1, x2, x3, x4, x6)
[]  =  []
append1E_out_ggga(x1, x2, x3, x4)  =  append1E_out_ggga(x1, x2, x3, x4)
pB_out_aagga(x1, x2, x3, x4, x5)  =  pB_out_aagga(x1, x2, x3, x4, x5)
rotateA_out_ga(x1, x2)  =  rotateA_out_ga(x1, x2)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x1, x2, x4)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x1, x2)

(3) DependencyPairsProof (EQUIVALENT transformation)

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

ROTATEA_IN_GA(.(T16, T17), T7) → U1_GA(T16, T17, T7, pB_in_aagga(X40, X41, T17, T16, T7))
ROTATEA_IN_GA(.(T16, T17), T7) → PB_IN_AAGGA(X40, X41, T17, T16, T7)
PB_IN_AAGGA(T20, T21, T17, T16, T7) → U6_AAGGA(T20, T21, T17, T16, T7, append2D_in_aag(T20, T21, T17))
PB_IN_AAGGA(T20, T21, T17, T16, T7) → APPEND2D_IN_AAG(T20, T21, T17)
APPEND2D_IN_AAG(.(T32, X89), X90, .(T32, T33)) → U3_AAG(T32, X89, X90, T33, append2D_in_aag(X89, X90, T33))
APPEND2D_IN_AAG(.(T32, X89), X90, .(T32, T33)) → APPEND2D_IN_AAG(X89, X90, T33)
U6_AAGGA(T20, T21, T17, T16, T7, append2D_out_aag(T20, T21, T17)) → U7_AAGGA(T20, T21, T17, T16, T7, append1E_in_ggga(T21, T16, T20, T7))
U6_AAGGA(T20, T21, T17, T16, T7, append2D_out_aag(T20, T21, T17)) → APPEND1E_IN_GGGA(T21, T16, T20, T7)
APPEND1E_IN_GGGA(.(T64, T65), T66, T67, .(T64, T69)) → U4_GGGA(T64, T65, T66, T67, T69, append1E_in_ggga(T65, T66, T67, T69))
APPEND1E_IN_GGGA(.(T64, T65), T66, T67, .(T64, T69)) → APPEND1E_IN_GGGA(T65, T66, T67, T69)
ROTATEA_IN_GA(T86, T7) → U2_GA(T86, T7, append1C_in_ga(T86, T7))
ROTATEA_IN_GA(T86, T7) → APPEND1C_IN_GA(T86, T7)
APPEND1C_IN_GA(.(T102, T103), .(T102, T105)) → U5_GA(T102, T103, T105, append1C_in_ga(T103, T105))
APPEND1C_IN_GA(.(T102, T103), .(T102, T105)) → APPEND1C_IN_GA(T103, T105)

The TRS R consists of the following rules:

rotateA_in_ga(.(T16, T17), T7) → U1_ga(T16, T17, T7, pB_in_aagga(X40, X41, T17, T16, T7))
pB_in_aagga(T20, T21, T17, T16, T7) → U6_aagga(T20, T21, T17, T16, T7, append2D_in_aag(T20, T21, T17))
append2D_in_aag(.(T32, X89), X90, .(T32, T33)) → U3_aag(T32, X89, X90, T33, append2D_in_aag(X89, X90, T33))
append2D_in_aag([], T38, T38) → append2D_out_aag([], T38, T38)
U3_aag(T32, X89, X90, T33, append2D_out_aag(X89, X90, T33)) → append2D_out_aag(.(T32, X89), X90, .(T32, T33))
U6_aagga(T20, T21, T17, T16, T7, append2D_out_aag(T20, T21, T17)) → U7_aagga(T20, T21, T17, T16, T7, append1E_in_ggga(T21, T16, T20, T7))
append1E_in_ggga(.(T64, T65), T66, T67, .(T64, T69)) → U4_ggga(T64, T65, T66, T67, T69, append1E_in_ggga(T65, T66, T67, T69))
append1E_in_ggga([], T79, T80, .(T79, T80)) → append1E_out_ggga([], T79, T80, .(T79, T80))
U4_ggga(T64, T65, T66, T67, T69, append1E_out_ggga(T65, T66, T67, T69)) → append1E_out_ggga(.(T64, T65), T66, T67, .(T64, T69))
U7_aagga(T20, T21, T17, T16, T7, append1E_out_ggga(T21, T16, T20, T7)) → pB_out_aagga(T20, T21, T17, T16, T7)
U1_ga(T16, T17, T7, pB_out_aagga(X40, X41, T17, T16, T7)) → rotateA_out_ga(.(T16, T17), T7)
rotateA_in_ga(T86, T7) → U2_ga(T86, T7, append1C_in_ga(T86, T7))
append1C_in_ga(.(T102, T103), .(T102, T105)) → U5_ga(T102, T103, T105, append1C_in_ga(T103, T105))
append1C_in_ga([], []) → append1C_out_ga([], [])
U5_ga(T102, T103, T105, append1C_out_ga(T103, T105)) → append1C_out_ga(.(T102, T103), .(T102, T105))
U2_ga(T86, T7, append1C_out_ga(T86, T7)) → rotateA_out_ga(T86, T7)

The argument filtering Pi contains the following mapping:
rotateA_in_ga(x1, x2)  =  rotateA_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x1, x2, x4)
pB_in_aagga(x1, x2, x3, x4, x5)  =  pB_in_aagga(x3, x4)
U6_aagga(x1, x2, x3, x4, x5, x6)  =  U6_aagga(x3, x4, x6)
append2D_in_aag(x1, x2, x3)  =  append2D_in_aag(x3)
U3_aag(x1, x2, x3, x4, x5)  =  U3_aag(x1, x4, x5)
append2D_out_aag(x1, x2, x3)  =  append2D_out_aag(x1, x2, x3)
U7_aagga(x1, x2, x3, x4, x5, x6)  =  U7_aagga(x1, x2, x3, x4, x6)
append1E_in_ggga(x1, x2, x3, x4)  =  append1E_in_ggga(x1, x2, x3)
U4_ggga(x1, x2, x3, x4, x5, x6)  =  U4_ggga(x1, x2, x3, x4, x6)
[]  =  []
append1E_out_ggga(x1, x2, x3, x4)  =  append1E_out_ggga(x1, x2, x3, x4)
pB_out_aagga(x1, x2, x3, x4, x5)  =  pB_out_aagga(x1, x2, x3, x4, x5)
rotateA_out_ga(x1, x2)  =  rotateA_out_ga(x1, x2)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x1, x2, x4)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x1, x2)
ROTATEA_IN_GA(x1, x2)  =  ROTATEA_IN_GA(x1)
U1_GA(x1, x2, x3, x4)  =  U1_GA(x1, x2, x4)
PB_IN_AAGGA(x1, x2, x3, x4, x5)  =  PB_IN_AAGGA(x3, x4)
U6_AAGGA(x1, x2, x3, x4, x5, x6)  =  U6_AAGGA(x3, x4, x6)
APPEND2D_IN_AAG(x1, x2, x3)  =  APPEND2D_IN_AAG(x3)
U3_AAG(x1, x2, x3, x4, x5)  =  U3_AAG(x1, x4, x5)
U7_AAGGA(x1, x2, x3, x4, x5, x6)  =  U7_AAGGA(x1, x2, x3, x4, x6)
APPEND1E_IN_GGGA(x1, x2, x3, x4)  =  APPEND1E_IN_GGGA(x1, x2, x3)
U4_GGGA(x1, x2, x3, x4, x5, x6)  =  U4_GGGA(x1, x2, x3, x4, x6)
U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)
APPEND1C_IN_GA(x1, x2)  =  APPEND1C_IN_GA(x1)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x1, x2, x4)

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

(4) Obligation:

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

ROTATEA_IN_GA(.(T16, T17), T7) → U1_GA(T16, T17, T7, pB_in_aagga(X40, X41, T17, T16, T7))
ROTATEA_IN_GA(.(T16, T17), T7) → PB_IN_AAGGA(X40, X41, T17, T16, T7)
PB_IN_AAGGA(T20, T21, T17, T16, T7) → U6_AAGGA(T20, T21, T17, T16, T7, append2D_in_aag(T20, T21, T17))
PB_IN_AAGGA(T20, T21, T17, T16, T7) → APPEND2D_IN_AAG(T20, T21, T17)
APPEND2D_IN_AAG(.(T32, X89), X90, .(T32, T33)) → U3_AAG(T32, X89, X90, T33, append2D_in_aag(X89, X90, T33))
APPEND2D_IN_AAG(.(T32, X89), X90, .(T32, T33)) → APPEND2D_IN_AAG(X89, X90, T33)
U6_AAGGA(T20, T21, T17, T16, T7, append2D_out_aag(T20, T21, T17)) → U7_AAGGA(T20, T21, T17, T16, T7, append1E_in_ggga(T21, T16, T20, T7))
U6_AAGGA(T20, T21, T17, T16, T7, append2D_out_aag(T20, T21, T17)) → APPEND1E_IN_GGGA(T21, T16, T20, T7)
APPEND1E_IN_GGGA(.(T64, T65), T66, T67, .(T64, T69)) → U4_GGGA(T64, T65, T66, T67, T69, append1E_in_ggga(T65, T66, T67, T69))
APPEND1E_IN_GGGA(.(T64, T65), T66, T67, .(T64, T69)) → APPEND1E_IN_GGGA(T65, T66, T67, T69)
ROTATEA_IN_GA(T86, T7) → U2_GA(T86, T7, append1C_in_ga(T86, T7))
ROTATEA_IN_GA(T86, T7) → APPEND1C_IN_GA(T86, T7)
APPEND1C_IN_GA(.(T102, T103), .(T102, T105)) → U5_GA(T102, T103, T105, append1C_in_ga(T103, T105))
APPEND1C_IN_GA(.(T102, T103), .(T102, T105)) → APPEND1C_IN_GA(T103, T105)

The TRS R consists of the following rules:

rotateA_in_ga(.(T16, T17), T7) → U1_ga(T16, T17, T7, pB_in_aagga(X40, X41, T17, T16, T7))
pB_in_aagga(T20, T21, T17, T16, T7) → U6_aagga(T20, T21, T17, T16, T7, append2D_in_aag(T20, T21, T17))
append2D_in_aag(.(T32, X89), X90, .(T32, T33)) → U3_aag(T32, X89, X90, T33, append2D_in_aag(X89, X90, T33))
append2D_in_aag([], T38, T38) → append2D_out_aag([], T38, T38)
U3_aag(T32, X89, X90, T33, append2D_out_aag(X89, X90, T33)) → append2D_out_aag(.(T32, X89), X90, .(T32, T33))
U6_aagga(T20, T21, T17, T16, T7, append2D_out_aag(T20, T21, T17)) → U7_aagga(T20, T21, T17, T16, T7, append1E_in_ggga(T21, T16, T20, T7))
append1E_in_ggga(.(T64, T65), T66, T67, .(T64, T69)) → U4_ggga(T64, T65, T66, T67, T69, append1E_in_ggga(T65, T66, T67, T69))
append1E_in_ggga([], T79, T80, .(T79, T80)) → append1E_out_ggga([], T79, T80, .(T79, T80))
U4_ggga(T64, T65, T66, T67, T69, append1E_out_ggga(T65, T66, T67, T69)) → append1E_out_ggga(.(T64, T65), T66, T67, .(T64, T69))
U7_aagga(T20, T21, T17, T16, T7, append1E_out_ggga(T21, T16, T20, T7)) → pB_out_aagga(T20, T21, T17, T16, T7)
U1_ga(T16, T17, T7, pB_out_aagga(X40, X41, T17, T16, T7)) → rotateA_out_ga(.(T16, T17), T7)
rotateA_in_ga(T86, T7) → U2_ga(T86, T7, append1C_in_ga(T86, T7))
append1C_in_ga(.(T102, T103), .(T102, T105)) → U5_ga(T102, T103, T105, append1C_in_ga(T103, T105))
append1C_in_ga([], []) → append1C_out_ga([], [])
U5_ga(T102, T103, T105, append1C_out_ga(T103, T105)) → append1C_out_ga(.(T102, T103), .(T102, T105))
U2_ga(T86, T7, append1C_out_ga(T86, T7)) → rotateA_out_ga(T86, T7)

The argument filtering Pi contains the following mapping:
rotateA_in_ga(x1, x2)  =  rotateA_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x1, x2, x4)
pB_in_aagga(x1, x2, x3, x4, x5)  =  pB_in_aagga(x3, x4)
U6_aagga(x1, x2, x3, x4, x5, x6)  =  U6_aagga(x3, x4, x6)
append2D_in_aag(x1, x2, x3)  =  append2D_in_aag(x3)
U3_aag(x1, x2, x3, x4, x5)  =  U3_aag(x1, x4, x5)
append2D_out_aag(x1, x2, x3)  =  append2D_out_aag(x1, x2, x3)
U7_aagga(x1, x2, x3, x4, x5, x6)  =  U7_aagga(x1, x2, x3, x4, x6)
append1E_in_ggga(x1, x2, x3, x4)  =  append1E_in_ggga(x1, x2, x3)
U4_ggga(x1, x2, x3, x4, x5, x6)  =  U4_ggga(x1, x2, x3, x4, x6)
[]  =  []
append1E_out_ggga(x1, x2, x3, x4)  =  append1E_out_ggga(x1, x2, x3, x4)
pB_out_aagga(x1, x2, x3, x4, x5)  =  pB_out_aagga(x1, x2, x3, x4, x5)
rotateA_out_ga(x1, x2)  =  rotateA_out_ga(x1, x2)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x1, x2, x4)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x1, x2)
ROTATEA_IN_GA(x1, x2)  =  ROTATEA_IN_GA(x1)
U1_GA(x1, x2, x3, x4)  =  U1_GA(x1, x2, x4)
PB_IN_AAGGA(x1, x2, x3, x4, x5)  =  PB_IN_AAGGA(x3, x4)
U6_AAGGA(x1, x2, x3, x4, x5, x6)  =  U6_AAGGA(x3, x4, x6)
APPEND2D_IN_AAG(x1, x2, x3)  =  APPEND2D_IN_AAG(x3)
U3_AAG(x1, x2, x3, x4, x5)  =  U3_AAG(x1, x4, x5)
U7_AAGGA(x1, x2, x3, x4, x5, x6)  =  U7_AAGGA(x1, x2, x3, x4, x6)
APPEND1E_IN_GGGA(x1, x2, x3, x4)  =  APPEND1E_IN_GGGA(x1, x2, x3)
U4_GGGA(x1, x2, x3, x4, x5, x6)  =  U4_GGGA(x1, x2, x3, x4, x6)
U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)
APPEND1C_IN_GA(x1, x2)  =  APPEND1C_IN_GA(x1)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x1, x2, x4)

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

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 11 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

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

APPEND1C_IN_GA(.(T102, T103), .(T102, T105)) → APPEND1C_IN_GA(T103, T105)

The TRS R consists of the following rules:

rotateA_in_ga(.(T16, T17), T7) → U1_ga(T16, T17, T7, pB_in_aagga(X40, X41, T17, T16, T7))
pB_in_aagga(T20, T21, T17, T16, T7) → U6_aagga(T20, T21, T17, T16, T7, append2D_in_aag(T20, T21, T17))
append2D_in_aag(.(T32, X89), X90, .(T32, T33)) → U3_aag(T32, X89, X90, T33, append2D_in_aag(X89, X90, T33))
append2D_in_aag([], T38, T38) → append2D_out_aag([], T38, T38)
U3_aag(T32, X89, X90, T33, append2D_out_aag(X89, X90, T33)) → append2D_out_aag(.(T32, X89), X90, .(T32, T33))
U6_aagga(T20, T21, T17, T16, T7, append2D_out_aag(T20, T21, T17)) → U7_aagga(T20, T21, T17, T16, T7, append1E_in_ggga(T21, T16, T20, T7))
append1E_in_ggga(.(T64, T65), T66, T67, .(T64, T69)) → U4_ggga(T64, T65, T66, T67, T69, append1E_in_ggga(T65, T66, T67, T69))
append1E_in_ggga([], T79, T80, .(T79, T80)) → append1E_out_ggga([], T79, T80, .(T79, T80))
U4_ggga(T64, T65, T66, T67, T69, append1E_out_ggga(T65, T66, T67, T69)) → append1E_out_ggga(.(T64, T65), T66, T67, .(T64, T69))
U7_aagga(T20, T21, T17, T16, T7, append1E_out_ggga(T21, T16, T20, T7)) → pB_out_aagga(T20, T21, T17, T16, T7)
U1_ga(T16, T17, T7, pB_out_aagga(X40, X41, T17, T16, T7)) → rotateA_out_ga(.(T16, T17), T7)
rotateA_in_ga(T86, T7) → U2_ga(T86, T7, append1C_in_ga(T86, T7))
append1C_in_ga(.(T102, T103), .(T102, T105)) → U5_ga(T102, T103, T105, append1C_in_ga(T103, T105))
append1C_in_ga([], []) → append1C_out_ga([], [])
U5_ga(T102, T103, T105, append1C_out_ga(T103, T105)) → append1C_out_ga(.(T102, T103), .(T102, T105))
U2_ga(T86, T7, append1C_out_ga(T86, T7)) → rotateA_out_ga(T86, T7)

The argument filtering Pi contains the following mapping:
rotateA_in_ga(x1, x2)  =  rotateA_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x1, x2, x4)
pB_in_aagga(x1, x2, x3, x4, x5)  =  pB_in_aagga(x3, x4)
U6_aagga(x1, x2, x3, x4, x5, x6)  =  U6_aagga(x3, x4, x6)
append2D_in_aag(x1, x2, x3)  =  append2D_in_aag(x3)
U3_aag(x1, x2, x3, x4, x5)  =  U3_aag(x1, x4, x5)
append2D_out_aag(x1, x2, x3)  =  append2D_out_aag(x1, x2, x3)
U7_aagga(x1, x2, x3, x4, x5, x6)  =  U7_aagga(x1, x2, x3, x4, x6)
append1E_in_ggga(x1, x2, x3, x4)  =  append1E_in_ggga(x1, x2, x3)
U4_ggga(x1, x2, x3, x4, x5, x6)  =  U4_ggga(x1, x2, x3, x4, x6)
[]  =  []
append1E_out_ggga(x1, x2, x3, x4)  =  append1E_out_ggga(x1, x2, x3, x4)
pB_out_aagga(x1, x2, x3, x4, x5)  =  pB_out_aagga(x1, x2, x3, x4, x5)
rotateA_out_ga(x1, x2)  =  rotateA_out_ga(x1, x2)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x1, x2, x4)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x1, x2)
APPEND1C_IN_GA(x1, x2)  =  APPEND1C_IN_GA(x1)

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

(8) UsableRulesProof (EQUIVALENT transformation)

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

(9) Obligation:

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

APPEND1C_IN_GA(.(T102, T103), .(T102, T105)) → APPEND1C_IN_GA(T103, T105)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APPEND1C_IN_GA(x1, x2)  =  APPEND1C_IN_GA(x1)

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

(10) PiDPToQDPProof (SOUND transformation)

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

(11) Obligation:

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

APPEND1C_IN_GA(.(T102, T103)) → APPEND1C_IN_GA(T103)

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

(12) QDPSizeChangeProof (EQUIVALENT transformation)

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

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

  • APPEND1C_IN_GA(.(T102, T103)) → APPEND1C_IN_GA(T103)
    The graph contains the following edges 1 > 1

(13) YES

(14) Obligation:

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

APPEND1E_IN_GGGA(.(T64, T65), T66, T67, .(T64, T69)) → APPEND1E_IN_GGGA(T65, T66, T67, T69)

The TRS R consists of the following rules:

rotateA_in_ga(.(T16, T17), T7) → U1_ga(T16, T17, T7, pB_in_aagga(X40, X41, T17, T16, T7))
pB_in_aagga(T20, T21, T17, T16, T7) → U6_aagga(T20, T21, T17, T16, T7, append2D_in_aag(T20, T21, T17))
append2D_in_aag(.(T32, X89), X90, .(T32, T33)) → U3_aag(T32, X89, X90, T33, append2D_in_aag(X89, X90, T33))
append2D_in_aag([], T38, T38) → append2D_out_aag([], T38, T38)
U3_aag(T32, X89, X90, T33, append2D_out_aag(X89, X90, T33)) → append2D_out_aag(.(T32, X89), X90, .(T32, T33))
U6_aagga(T20, T21, T17, T16, T7, append2D_out_aag(T20, T21, T17)) → U7_aagga(T20, T21, T17, T16, T7, append1E_in_ggga(T21, T16, T20, T7))
append1E_in_ggga(.(T64, T65), T66, T67, .(T64, T69)) → U4_ggga(T64, T65, T66, T67, T69, append1E_in_ggga(T65, T66, T67, T69))
append1E_in_ggga([], T79, T80, .(T79, T80)) → append1E_out_ggga([], T79, T80, .(T79, T80))
U4_ggga(T64, T65, T66, T67, T69, append1E_out_ggga(T65, T66, T67, T69)) → append1E_out_ggga(.(T64, T65), T66, T67, .(T64, T69))
U7_aagga(T20, T21, T17, T16, T7, append1E_out_ggga(T21, T16, T20, T7)) → pB_out_aagga(T20, T21, T17, T16, T7)
U1_ga(T16, T17, T7, pB_out_aagga(X40, X41, T17, T16, T7)) → rotateA_out_ga(.(T16, T17), T7)
rotateA_in_ga(T86, T7) → U2_ga(T86, T7, append1C_in_ga(T86, T7))
append1C_in_ga(.(T102, T103), .(T102, T105)) → U5_ga(T102, T103, T105, append1C_in_ga(T103, T105))
append1C_in_ga([], []) → append1C_out_ga([], [])
U5_ga(T102, T103, T105, append1C_out_ga(T103, T105)) → append1C_out_ga(.(T102, T103), .(T102, T105))
U2_ga(T86, T7, append1C_out_ga(T86, T7)) → rotateA_out_ga(T86, T7)

The argument filtering Pi contains the following mapping:
rotateA_in_ga(x1, x2)  =  rotateA_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x1, x2, x4)
pB_in_aagga(x1, x2, x3, x4, x5)  =  pB_in_aagga(x3, x4)
U6_aagga(x1, x2, x3, x4, x5, x6)  =  U6_aagga(x3, x4, x6)
append2D_in_aag(x1, x2, x3)  =  append2D_in_aag(x3)
U3_aag(x1, x2, x3, x4, x5)  =  U3_aag(x1, x4, x5)
append2D_out_aag(x1, x2, x3)  =  append2D_out_aag(x1, x2, x3)
U7_aagga(x1, x2, x3, x4, x5, x6)  =  U7_aagga(x1, x2, x3, x4, x6)
append1E_in_ggga(x1, x2, x3, x4)  =  append1E_in_ggga(x1, x2, x3)
U4_ggga(x1, x2, x3, x4, x5, x6)  =  U4_ggga(x1, x2, x3, x4, x6)
[]  =  []
append1E_out_ggga(x1, x2, x3, x4)  =  append1E_out_ggga(x1, x2, x3, x4)
pB_out_aagga(x1, x2, x3, x4, x5)  =  pB_out_aagga(x1, x2, x3, x4, x5)
rotateA_out_ga(x1, x2)  =  rotateA_out_ga(x1, x2)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x1, x2, x4)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x1, x2)
APPEND1E_IN_GGGA(x1, x2, x3, x4)  =  APPEND1E_IN_GGGA(x1, x2, x3)

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

(15) UsableRulesProof (EQUIVALENT transformation)

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

(16) Obligation:

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

APPEND1E_IN_GGGA(.(T64, T65), T66, T67, .(T64, T69)) → APPEND1E_IN_GGGA(T65, T66, T67, T69)

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

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

(17) PiDPToQDPProof (SOUND transformation)

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

(18) Obligation:

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

APPEND1E_IN_GGGA(.(T64, T65), T66, T67) → APPEND1E_IN_GGGA(T65, T66, T67)

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

(19) QDPSizeChangeProof (EQUIVALENT transformation)

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

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

  • APPEND1E_IN_GGGA(.(T64, T65), T66, T67) → APPEND1E_IN_GGGA(T65, T66, T67)
    The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3

(20) YES

(21) Obligation:

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

APPEND2D_IN_AAG(.(T32, X89), X90, .(T32, T33)) → APPEND2D_IN_AAG(X89, X90, T33)

The TRS R consists of the following rules:

rotateA_in_ga(.(T16, T17), T7) → U1_ga(T16, T17, T7, pB_in_aagga(X40, X41, T17, T16, T7))
pB_in_aagga(T20, T21, T17, T16, T7) → U6_aagga(T20, T21, T17, T16, T7, append2D_in_aag(T20, T21, T17))
append2D_in_aag(.(T32, X89), X90, .(T32, T33)) → U3_aag(T32, X89, X90, T33, append2D_in_aag(X89, X90, T33))
append2D_in_aag([], T38, T38) → append2D_out_aag([], T38, T38)
U3_aag(T32, X89, X90, T33, append2D_out_aag(X89, X90, T33)) → append2D_out_aag(.(T32, X89), X90, .(T32, T33))
U6_aagga(T20, T21, T17, T16, T7, append2D_out_aag(T20, T21, T17)) → U7_aagga(T20, T21, T17, T16, T7, append1E_in_ggga(T21, T16, T20, T7))
append1E_in_ggga(.(T64, T65), T66, T67, .(T64, T69)) → U4_ggga(T64, T65, T66, T67, T69, append1E_in_ggga(T65, T66, T67, T69))
append1E_in_ggga([], T79, T80, .(T79, T80)) → append1E_out_ggga([], T79, T80, .(T79, T80))
U4_ggga(T64, T65, T66, T67, T69, append1E_out_ggga(T65, T66, T67, T69)) → append1E_out_ggga(.(T64, T65), T66, T67, .(T64, T69))
U7_aagga(T20, T21, T17, T16, T7, append1E_out_ggga(T21, T16, T20, T7)) → pB_out_aagga(T20, T21, T17, T16, T7)
U1_ga(T16, T17, T7, pB_out_aagga(X40, X41, T17, T16, T7)) → rotateA_out_ga(.(T16, T17), T7)
rotateA_in_ga(T86, T7) → U2_ga(T86, T7, append1C_in_ga(T86, T7))
append1C_in_ga(.(T102, T103), .(T102, T105)) → U5_ga(T102, T103, T105, append1C_in_ga(T103, T105))
append1C_in_ga([], []) → append1C_out_ga([], [])
U5_ga(T102, T103, T105, append1C_out_ga(T103, T105)) → append1C_out_ga(.(T102, T103), .(T102, T105))
U2_ga(T86, T7, append1C_out_ga(T86, T7)) → rotateA_out_ga(T86, T7)

The argument filtering Pi contains the following mapping:
rotateA_in_ga(x1, x2)  =  rotateA_in_ga(x1)
.(x1, x2)  =  .(x1, x2)
U1_ga(x1, x2, x3, x4)  =  U1_ga(x1, x2, x4)
pB_in_aagga(x1, x2, x3, x4, x5)  =  pB_in_aagga(x3, x4)
U6_aagga(x1, x2, x3, x4, x5, x6)  =  U6_aagga(x3, x4, x6)
append2D_in_aag(x1, x2, x3)  =  append2D_in_aag(x3)
U3_aag(x1, x2, x3, x4, x5)  =  U3_aag(x1, x4, x5)
append2D_out_aag(x1, x2, x3)  =  append2D_out_aag(x1, x2, x3)
U7_aagga(x1, x2, x3, x4, x5, x6)  =  U7_aagga(x1, x2, x3, x4, x6)
append1E_in_ggga(x1, x2, x3, x4)  =  append1E_in_ggga(x1, x2, x3)
U4_ggga(x1, x2, x3, x4, x5, x6)  =  U4_ggga(x1, x2, x3, x4, x6)
[]  =  []
append1E_out_ggga(x1, x2, x3, x4)  =  append1E_out_ggga(x1, x2, x3, x4)
pB_out_aagga(x1, x2, x3, x4, x5)  =  pB_out_aagga(x1, x2, x3, x4, x5)
rotateA_out_ga(x1, x2)  =  rotateA_out_ga(x1, x2)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
append1C_in_ga(x1, x2)  =  append1C_in_ga(x1)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x1, x2, x4)
append1C_out_ga(x1, x2)  =  append1C_out_ga(x1, x2)
APPEND2D_IN_AAG(x1, x2, x3)  =  APPEND2D_IN_AAG(x3)

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

(22) UsableRulesProof (EQUIVALENT transformation)

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

(23) Obligation:

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

APPEND2D_IN_AAG(.(T32, X89), X90, .(T32, T33)) → APPEND2D_IN_AAG(X89, X90, T33)

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

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

(24) PiDPToQDPProof (SOUND transformation)

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

(25) Obligation:

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

APPEND2D_IN_AAG(.(T32, T33)) → APPEND2D_IN_AAG(T33)

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

(26) QDPSizeChangeProof (EQUIVALENT transformation)

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

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

  • APPEND2D_IN_AAG(.(T32, T33)) → APPEND2D_IN_AAG(T33)
    The graph contains the following edges 1 > 1

(27) YES