0 Prolog
↳1 PrologToPrologProblemTransformerProof (⇐)
↳2 Prolog
↳3 PrologToPiTRSProof (⇐)
↳4 PiTRS
↳5 DependencyPairsProof (⇔)
↳6 PiDP
↳7 DependencyGraphProof (⇔)
↳8 AND
↳9 PiDP
↳10 UsableRulesProof (⇔)
↳11 PiDP
↳12 PiDPToQDPProof (⇐)
↳13 QDP
↳14 NonTerminationProof (⇔)
↳15 NO
↳16 PiDP
↳17 UsableRulesProof (⇔)
↳18 PiDP
↳19 PiDPToQDPProof (⇐)
↳20 QDP
↳21 UsableRulesReductionPairsProof (⇔)
↳22 QDP
↳23 NonTerminationProof (⇔)
↳24 NO
↳25 PrologToPiTRSProof (⇐)
↳26 PiTRS
↳27 DependencyPairsProof (⇔)
↳28 PiDP
↳29 DependencyGraphProof (⇔)
↳30 AND
↳31 PiDP
↳32 UsableRulesProof (⇔)
↳33 PiDP
↳34 PiDPToQDPProof (⇐)
↳35 QDP
↳36 NonTerminationProof (⇔)
↳37 NO
↳38 PiDP
↳39 UsableRulesProof (⇔)
↳40 PiDP
↳41 PiDPToQDPProof (⇐)
↳42 QDP
↳43 UsableRulesReductionPairsProof (⇔)
↳44 QDP
↳45 NonTerminationProof (⇔)
↳46 NO
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
FLAT1_IN_AG(.([], .([], T11)), []) → U2_AG(T11, flat16_in_a(T11))
FLAT1_IN_AG(.([], .([], T11)), []) → FLAT16_IN_A(T11)
FLAT16_IN_A(.([], T17)) → U1_A(T17, flat16_in_a(T17))
FLAT16_IN_A(.([], T17)) → FLAT16_IN_A(T17)
FLAT1_IN_AG(.([], .([], T45)), T44) → U3_AG(T45, T44, flat1_in_ag(T45, T44))
FLAT1_IN_AG(.([], .([], T45)), T44) → FLAT1_IN_AG(T45, T44)
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_AG(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → FLAT1_IN_AG(.(T66, T67), T65)
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → U5_AG(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → FLAT1_IN_AG(.(T82, T83), T81)
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → U6_AG(T90, T106, T105, flat1_in_ag(T106, T105))
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → FLAT1_IN_AG(T106, T105)
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_AG(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → FLAT1_IN_AG(.(T119, T120), T118)
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
FLAT1_IN_AG(.([], .([], T11)), []) → U2_AG(T11, flat16_in_a(T11))
FLAT1_IN_AG(.([], .([], T11)), []) → FLAT16_IN_A(T11)
FLAT16_IN_A(.([], T17)) → U1_A(T17, flat16_in_a(T17))
FLAT16_IN_A(.([], T17)) → FLAT16_IN_A(T17)
FLAT1_IN_AG(.([], .([], T45)), T44) → U3_AG(T45, T44, flat1_in_ag(T45, T44))
FLAT1_IN_AG(.([], .([], T45)), T44) → FLAT1_IN_AG(T45, T44)
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_AG(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → FLAT1_IN_AG(.(T66, T67), T65)
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → U5_AG(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → FLAT1_IN_AG(.(T82, T83), T81)
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → U6_AG(T90, T106, T105, flat1_in_ag(T106, T105))
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → FLAT1_IN_AG(T106, T105)
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_AG(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → FLAT1_IN_AG(.(T119, T120), T118)
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
FLAT16_IN_A(.([], T17)) → FLAT16_IN_A(T17)
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
FLAT16_IN_A(.([], T17)) → FLAT16_IN_A(T17)
FLAT16_IN_A → FLAT16_IN_A
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → FLAT1_IN_AG(.(T66, T67), T65)
FLAT1_IN_AG(.([], .([], T45)), T44) → FLAT1_IN_AG(T45, T44)
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → FLAT1_IN_AG(.(T82, T83), T81)
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → FLAT1_IN_AG(T106, T105)
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → FLAT1_IN_AG(.(T119, T120), T118)
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → FLAT1_IN_AG(.(T66, T67), T65)
FLAT1_IN_AG(.([], .([], T45)), T44) → FLAT1_IN_AG(T45, T44)
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → FLAT1_IN_AG(.(T82, T83), T81)
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → FLAT1_IN_AG(T106, T105)
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → FLAT1_IN_AG(.(T119, T120), T118)
FLAT1_IN_AG(.(T62, T65)) → FLAT1_IN_AG(T65)
FLAT1_IN_AG(T44) → FLAT1_IN_AG(T44)
FLAT1_IN_AG(.(T90, .(T115, T118))) → FLAT1_IN_AG(T118)
No rules are removed from R.
FLAT1_IN_AG(.(T62, T65)) → FLAT1_IN_AG(T65)
FLAT1_IN_AG(.(T90, .(T115, T118))) → FLAT1_IN_AG(T118)
POL(.(x1, x2)) = x1 + 2·x2
POL(FLAT1_IN_AG(x1)) = 2·x1
FLAT1_IN_AG(T44) → FLAT1_IN_AG(T44)
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
FLAT1_IN_AG(.([], .([], T11)), []) → U2_AG(T11, flat16_in_a(T11))
FLAT1_IN_AG(.([], .([], T11)), []) → FLAT16_IN_A(T11)
FLAT16_IN_A(.([], T17)) → U1_A(T17, flat16_in_a(T17))
FLAT16_IN_A(.([], T17)) → FLAT16_IN_A(T17)
FLAT1_IN_AG(.([], .([], T45)), T44) → U3_AG(T45, T44, flat1_in_ag(T45, T44))
FLAT1_IN_AG(.([], .([], T45)), T44) → FLAT1_IN_AG(T45, T44)
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_AG(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → FLAT1_IN_AG(.(T66, T67), T65)
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → U5_AG(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → FLAT1_IN_AG(.(T82, T83), T81)
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → U6_AG(T90, T106, T105, flat1_in_ag(T106, T105))
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → FLAT1_IN_AG(T106, T105)
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_AG(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → FLAT1_IN_AG(.(T119, T120), T118)
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
FLAT1_IN_AG(.([], .([], T11)), []) → U2_AG(T11, flat16_in_a(T11))
FLAT1_IN_AG(.([], .([], T11)), []) → FLAT16_IN_A(T11)
FLAT16_IN_A(.([], T17)) → U1_A(T17, flat16_in_a(T17))
FLAT16_IN_A(.([], T17)) → FLAT16_IN_A(T17)
FLAT1_IN_AG(.([], .([], T45)), T44) → U3_AG(T45, T44, flat1_in_ag(T45, T44))
FLAT1_IN_AG(.([], .([], T45)), T44) → FLAT1_IN_AG(T45, T44)
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_AG(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → FLAT1_IN_AG(.(T66, T67), T65)
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → U5_AG(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → FLAT1_IN_AG(.(T82, T83), T81)
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → U6_AG(T90, T106, T105, flat1_in_ag(T106, T105))
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → FLAT1_IN_AG(T106, T105)
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_AG(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → FLAT1_IN_AG(.(T119, T120), T118)
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
FLAT16_IN_A(.([], T17)) → FLAT16_IN_A(T17)
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
FLAT16_IN_A(.([], T17)) → FLAT16_IN_A(T17)
FLAT16_IN_A → FLAT16_IN_A
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → FLAT1_IN_AG(.(T66, T67), T65)
FLAT1_IN_AG(.([], .([], T45)), T44) → FLAT1_IN_AG(T45, T44)
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → FLAT1_IN_AG(.(T82, T83), T81)
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → FLAT1_IN_AG(T106, T105)
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → FLAT1_IN_AG(.(T119, T120), T118)
flat1_in_ag([], []) → flat1_out_ag([], [])
flat1_in_ag(.([], []), []) → flat1_out_ag(.([], []), [])
flat1_in_ag(.([], .([], T11)), []) → U2_ag(T11, flat16_in_a(T11))
flat16_in_a([]) → flat16_out_a([])
flat16_in_a(.([], T17)) → U1_a(T17, flat16_in_a(T17))
U1_a(T17, flat16_out_a(T17)) → flat16_out_a(.([], T17))
U2_ag(T11, flat16_out_a(T11)) → flat1_out_ag(.([], .([], T11)), [])
flat1_in_ag(.([], .([], T45)), T44) → U3_ag(T45, T44, flat1_in_ag(T45, T44))
flat1_in_ag(.([], .(.(T62, T66), T67)), .(T62, T65)) → U4_ag(T62, T66, T67, T65, flat1_in_ag(.(T66, T67), T65))
flat1_in_ag(.(.(T78, T82), T83), .(T78, T81)) → U5_ag(T78, T82, T83, T81, flat1_in_ag(.(T82, T83), T81))
flat1_in_ag(.(.(T90, []), T106), .(T90, T105)) → U6_ag(T90, T106, T105, flat1_in_ag(T106, T105))
flat1_in_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → U7_ag(T90, T115, T119, T120, T118, flat1_in_ag(.(T119, T120), T118))
U7_ag(T90, T115, T119, T120, T118, flat1_out_ag(.(T119, T120), T118)) → flat1_out_ag(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118)))
U6_ag(T90, T106, T105, flat1_out_ag(T106, T105)) → flat1_out_ag(.(.(T90, []), T106), .(T90, T105))
U5_ag(T78, T82, T83, T81, flat1_out_ag(.(T82, T83), T81)) → flat1_out_ag(.(.(T78, T82), T83), .(T78, T81))
U4_ag(T62, T66, T67, T65, flat1_out_ag(.(T66, T67), T65)) → flat1_out_ag(.([], .(.(T62, T66), T67)), .(T62, T65))
U3_ag(T45, T44, flat1_out_ag(T45, T44)) → flat1_out_ag(.([], .([], T45)), T44)
FLAT1_IN_AG(.([], .(.(T62, T66), T67)), .(T62, T65)) → FLAT1_IN_AG(.(T66, T67), T65)
FLAT1_IN_AG(.([], .([], T45)), T44) → FLAT1_IN_AG(T45, T44)
FLAT1_IN_AG(.(.(T78, T82), T83), .(T78, T81)) → FLAT1_IN_AG(.(T82, T83), T81)
FLAT1_IN_AG(.(.(T90, []), T106), .(T90, T105)) → FLAT1_IN_AG(T106, T105)
FLAT1_IN_AG(.(.(T90, .(T115, T119)), T120), .(T90, .(T115, T118))) → FLAT1_IN_AG(.(T119, T120), T118)
FLAT1_IN_AG(.(T62, T65)) → FLAT1_IN_AG(T65)
FLAT1_IN_AG(T44) → FLAT1_IN_AG(T44)
FLAT1_IN_AG(.(T90, .(T115, T118))) → FLAT1_IN_AG(T118)
No rules are removed from R.
FLAT1_IN_AG(.(T62, T65)) → FLAT1_IN_AG(T65)
FLAT1_IN_AG(.(T90, .(T115, T118))) → FLAT1_IN_AG(T118)
POL(.(x1, x2)) = x1 + 2·x2
POL(FLAT1_IN_AG(x1)) = 2·x1
FLAT1_IN_AG(T44) → FLAT1_IN_AG(T44)