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 QDPSizeChangeProof (⇔)
↳15 YES
↳16 PiDP
↳17 UsableRulesProof (⇔)
↳18 PiDP
↳19 PiDPToQDPProof (⇐)
↳20 QDP
↳21 MRRProof (⇔)
↳22 QDP
↳23 PisEmptyProof (⇔)
↳24 YES
permute1_in_ga([], []) → permute1_out_ga([], [])
permute1_in_ga(.(T21, T22), .(T21, T23)) → U2_ga(T21, T22, T23, permute1_in_ga(T22, T23))
permute1_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, delete15_in_aga(T39, T38, X48))
delete15_in_aga(T59, .(T59, T60), T60) → delete15_out_aga(T59, .(T59, T60), T60)
delete15_in_aga(T70, .(T68, T69), .(T68, X83)) → U1_aga(T70, T68, T69, X83, delete15_in_aga(T70, T69, X83))
U1_aga(T70, T68, T69, X83, delete15_out_aga(T70, T69, X83)) → delete15_out_aga(T70, .(T68, T69), .(T68, X83))
U3_ga(T37, T38, T39, T40, delete15_out_aga(T39, T38, X48)) → permute1_out_ga(.(T37, T38), .(T39, T40))
permute1_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, delete15_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, permute1_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, permute1_out_ga(.(T37, T45), T46)) → permute1_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T21, T22, T23, permute1_out_ga(T22, T23)) → permute1_out_ga(.(T21, T22), .(T21, T23))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
permute1_in_ga([], []) → permute1_out_ga([], [])
permute1_in_ga(.(T21, T22), .(T21, T23)) → U2_ga(T21, T22, T23, permute1_in_ga(T22, T23))
permute1_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, delete15_in_aga(T39, T38, X48))
delete15_in_aga(T59, .(T59, T60), T60) → delete15_out_aga(T59, .(T59, T60), T60)
delete15_in_aga(T70, .(T68, T69), .(T68, X83)) → U1_aga(T70, T68, T69, X83, delete15_in_aga(T70, T69, X83))
U1_aga(T70, T68, T69, X83, delete15_out_aga(T70, T69, X83)) → delete15_out_aga(T70, .(T68, T69), .(T68, X83))
U3_ga(T37, T38, T39, T40, delete15_out_aga(T39, T38, X48)) → permute1_out_ga(.(T37, T38), .(T39, T40))
permute1_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, delete15_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, permute1_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, permute1_out_ga(.(T37, T45), T46)) → permute1_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T21, T22, T23, permute1_out_ga(T22, T23)) → permute1_out_ga(.(T21, T22), .(T21, T23))
PERMUTE1_IN_GA(.(T21, T22), .(T21, T23)) → U2_GA(T21, T22, T23, permute1_in_ga(T22, T23))
PERMUTE1_IN_GA(.(T21, T22), .(T21, T23)) → PERMUTE1_IN_GA(T22, T23)
PERMUTE1_IN_GA(.(T37, T38), .(T39, T40)) → U3_GA(T37, T38, T39, T40, delete15_in_aga(T39, T38, X48))
PERMUTE1_IN_GA(.(T37, T38), .(T39, T40)) → DELETE15_IN_AGA(T39, T38, X48)
DELETE15_IN_AGA(T70, .(T68, T69), .(T68, X83)) → U1_AGA(T70, T68, T69, X83, delete15_in_aga(T70, T69, X83))
DELETE15_IN_AGA(T70, .(T68, T69), .(T68, X83)) → DELETE15_IN_AGA(T70, T69, X83)
PERMUTE1_IN_GA(.(T37, T38), .(T39, T46)) → U4_GA(T37, T38, T39, T46, delete15_in_aga(T39, T38, T45))
U4_GA(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → U5_GA(T37, T38, T39, T46, permute1_in_ga(.(T37, T45), T46))
U4_GA(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → PERMUTE1_IN_GA(.(T37, T45), T46)
permute1_in_ga([], []) → permute1_out_ga([], [])
permute1_in_ga(.(T21, T22), .(T21, T23)) → U2_ga(T21, T22, T23, permute1_in_ga(T22, T23))
permute1_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, delete15_in_aga(T39, T38, X48))
delete15_in_aga(T59, .(T59, T60), T60) → delete15_out_aga(T59, .(T59, T60), T60)
delete15_in_aga(T70, .(T68, T69), .(T68, X83)) → U1_aga(T70, T68, T69, X83, delete15_in_aga(T70, T69, X83))
U1_aga(T70, T68, T69, X83, delete15_out_aga(T70, T69, X83)) → delete15_out_aga(T70, .(T68, T69), .(T68, X83))
U3_ga(T37, T38, T39, T40, delete15_out_aga(T39, T38, X48)) → permute1_out_ga(.(T37, T38), .(T39, T40))
permute1_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, delete15_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, permute1_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, permute1_out_ga(.(T37, T45), T46)) → permute1_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T21, T22, T23, permute1_out_ga(T22, T23)) → permute1_out_ga(.(T21, T22), .(T21, T23))
PERMUTE1_IN_GA(.(T21, T22), .(T21, T23)) → U2_GA(T21, T22, T23, permute1_in_ga(T22, T23))
PERMUTE1_IN_GA(.(T21, T22), .(T21, T23)) → PERMUTE1_IN_GA(T22, T23)
PERMUTE1_IN_GA(.(T37, T38), .(T39, T40)) → U3_GA(T37, T38, T39, T40, delete15_in_aga(T39, T38, X48))
PERMUTE1_IN_GA(.(T37, T38), .(T39, T40)) → DELETE15_IN_AGA(T39, T38, X48)
DELETE15_IN_AGA(T70, .(T68, T69), .(T68, X83)) → U1_AGA(T70, T68, T69, X83, delete15_in_aga(T70, T69, X83))
DELETE15_IN_AGA(T70, .(T68, T69), .(T68, X83)) → DELETE15_IN_AGA(T70, T69, X83)
PERMUTE1_IN_GA(.(T37, T38), .(T39, T46)) → U4_GA(T37, T38, T39, T46, delete15_in_aga(T39, T38, T45))
U4_GA(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → U5_GA(T37, T38, T39, T46, permute1_in_ga(.(T37, T45), T46))
U4_GA(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → PERMUTE1_IN_GA(.(T37, T45), T46)
permute1_in_ga([], []) → permute1_out_ga([], [])
permute1_in_ga(.(T21, T22), .(T21, T23)) → U2_ga(T21, T22, T23, permute1_in_ga(T22, T23))
permute1_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, delete15_in_aga(T39, T38, X48))
delete15_in_aga(T59, .(T59, T60), T60) → delete15_out_aga(T59, .(T59, T60), T60)
delete15_in_aga(T70, .(T68, T69), .(T68, X83)) → U1_aga(T70, T68, T69, X83, delete15_in_aga(T70, T69, X83))
U1_aga(T70, T68, T69, X83, delete15_out_aga(T70, T69, X83)) → delete15_out_aga(T70, .(T68, T69), .(T68, X83))
U3_ga(T37, T38, T39, T40, delete15_out_aga(T39, T38, X48)) → permute1_out_ga(.(T37, T38), .(T39, T40))
permute1_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, delete15_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, permute1_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, permute1_out_ga(.(T37, T45), T46)) → permute1_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T21, T22, T23, permute1_out_ga(T22, T23)) → permute1_out_ga(.(T21, T22), .(T21, T23))
DELETE15_IN_AGA(T70, .(T68, T69), .(T68, X83)) → DELETE15_IN_AGA(T70, T69, X83)
permute1_in_ga([], []) → permute1_out_ga([], [])
permute1_in_ga(.(T21, T22), .(T21, T23)) → U2_ga(T21, T22, T23, permute1_in_ga(T22, T23))
permute1_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, delete15_in_aga(T39, T38, X48))
delete15_in_aga(T59, .(T59, T60), T60) → delete15_out_aga(T59, .(T59, T60), T60)
delete15_in_aga(T70, .(T68, T69), .(T68, X83)) → U1_aga(T70, T68, T69, X83, delete15_in_aga(T70, T69, X83))
U1_aga(T70, T68, T69, X83, delete15_out_aga(T70, T69, X83)) → delete15_out_aga(T70, .(T68, T69), .(T68, X83))
U3_ga(T37, T38, T39, T40, delete15_out_aga(T39, T38, X48)) → permute1_out_ga(.(T37, T38), .(T39, T40))
permute1_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, delete15_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, permute1_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, permute1_out_ga(.(T37, T45), T46)) → permute1_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T21, T22, T23, permute1_out_ga(T22, T23)) → permute1_out_ga(.(T21, T22), .(T21, T23))
DELETE15_IN_AGA(T70, .(T68, T69), .(T68, X83)) → DELETE15_IN_AGA(T70, T69, X83)
DELETE15_IN_AGA(.(T68, T69)) → DELETE15_IN_AGA(T69)
From the DPs we obtained the following set of size-change graphs:
PERMUTE1_IN_GA(.(T37, T38), .(T39, T46)) → U4_GA(T37, T38, T39, T46, delete15_in_aga(T39, T38, T45))
U4_GA(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → PERMUTE1_IN_GA(.(T37, T45), T46)
PERMUTE1_IN_GA(.(T21, T22), .(T21, T23)) → PERMUTE1_IN_GA(T22, T23)
permute1_in_ga([], []) → permute1_out_ga([], [])
permute1_in_ga(.(T21, T22), .(T21, T23)) → U2_ga(T21, T22, T23, permute1_in_ga(T22, T23))
permute1_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, delete15_in_aga(T39, T38, X48))
delete15_in_aga(T59, .(T59, T60), T60) → delete15_out_aga(T59, .(T59, T60), T60)
delete15_in_aga(T70, .(T68, T69), .(T68, X83)) → U1_aga(T70, T68, T69, X83, delete15_in_aga(T70, T69, X83))
U1_aga(T70, T68, T69, X83, delete15_out_aga(T70, T69, X83)) → delete15_out_aga(T70, .(T68, T69), .(T68, X83))
U3_ga(T37, T38, T39, T40, delete15_out_aga(T39, T38, X48)) → permute1_out_ga(.(T37, T38), .(T39, T40))
permute1_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, delete15_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, permute1_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, permute1_out_ga(.(T37, T45), T46)) → permute1_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T21, T22, T23, permute1_out_ga(T22, T23)) → permute1_out_ga(.(T21, T22), .(T21, T23))
PERMUTE1_IN_GA(.(T37, T38), .(T39, T46)) → U4_GA(T37, T38, T39, T46, delete15_in_aga(T39, T38, T45))
U4_GA(T37, T38, T39, T46, delete15_out_aga(T39, T38, T45)) → PERMUTE1_IN_GA(.(T37, T45), T46)
PERMUTE1_IN_GA(.(T21, T22), .(T21, T23)) → PERMUTE1_IN_GA(T22, T23)
delete15_in_aga(T59, .(T59, T60), T60) → delete15_out_aga(T59, .(T59, T60), T60)
delete15_in_aga(T70, .(T68, T69), .(T68, X83)) → U1_aga(T70, T68, T69, X83, delete15_in_aga(T70, T69, X83))
U1_aga(T70, T68, T69, X83, delete15_out_aga(T70, T69, X83)) → delete15_out_aga(T70, .(T68, T69), .(T68, X83))
PERMUTE1_IN_GA(.(T37, T38)) → U4_GA(T37, delete15_in_aga(T38))
U4_GA(T37, delete15_out_aga(T39, T45)) → PERMUTE1_IN_GA(.(T37, T45))
PERMUTE1_IN_GA(.(T21, T22)) → PERMUTE1_IN_GA(T22)
delete15_in_aga(.(T59, T60)) → delete15_out_aga(T59, T60)
delete15_in_aga(.(T68, T69)) → U1_aga(T68, delete15_in_aga(T69))
U1_aga(T68, delete15_out_aga(T70, X83)) → delete15_out_aga(T70, .(T68, X83))
delete15_in_aga(x0)
U1_aga(x0, x1)
PERMUTE1_IN_GA(.(T37, T38)) → U4_GA(T37, delete15_in_aga(T38))
U4_GA(T37, delete15_out_aga(T39, T45)) → PERMUTE1_IN_GA(.(T37, T45))
PERMUTE1_IN_GA(.(T21, T22)) → PERMUTE1_IN_GA(T22)
delete15_in_aga(.(T59, T60)) → delete15_out_aga(T59, T60)
POL(.(x1, x2)) = 3 + x1 + x2
POL(PERMUTE1_IN_GA(x1)) = x1
POL(U1_aga(x1, x2)) = 3 + x1 + x2
POL(U4_GA(x1, x2)) = x1 + x2
POL(delete15_in_aga(x1)) = 2 + x1
POL(delete15_out_aga(x1, x2)) = 4 + x1 + x2
delete15_in_aga(.(T68, T69)) → U1_aga(T68, delete15_in_aga(T69))
U1_aga(T68, delete15_out_aga(T70, X83)) → delete15_out_aga(T70, .(T68, X83))
delete15_in_aga(x0)
U1_aga(x0, x1)