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
perm11_in_ga([], []) → perm11_out_ga([], [])
perm11_in_ga(.(T27, T28), .(T27, T29)) → U2_ga(T27, T28, T29, perm11_in_ga(T28, T29))
perm11_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, select20_in_aga(T39, T38, X53))
select20_in_aga(T59, .(T59, T60), T60) → select20_out_aga(T59, .(T59, T60), T60)
select20_in_aga(T70, .(T68, T69), .(T68, X92)) → U1_aga(T70, T68, T69, X92, select20_in_aga(T70, T69, X92))
U1_aga(T70, T68, T69, X92, select20_out_aga(T70, T69, X92)) → select20_out_aga(T70, .(T68, T69), .(T68, X92))
U3_ga(T37, T38, T39, T40, select20_out_aga(T39, T38, X53)) → perm11_out_ga(.(T37, T38), .(T39, T40))
perm11_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, select20_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, perm11_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, perm11_out_ga(.(T37, T45), T46)) → perm11_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T27, T28, T29, perm11_out_ga(T28, T29)) → perm11_out_ga(.(T27, T28), .(T27, T29))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
perm11_in_ga([], []) → perm11_out_ga([], [])
perm11_in_ga(.(T27, T28), .(T27, T29)) → U2_ga(T27, T28, T29, perm11_in_ga(T28, T29))
perm11_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, select20_in_aga(T39, T38, X53))
select20_in_aga(T59, .(T59, T60), T60) → select20_out_aga(T59, .(T59, T60), T60)
select20_in_aga(T70, .(T68, T69), .(T68, X92)) → U1_aga(T70, T68, T69, X92, select20_in_aga(T70, T69, X92))
U1_aga(T70, T68, T69, X92, select20_out_aga(T70, T69, X92)) → select20_out_aga(T70, .(T68, T69), .(T68, X92))
U3_ga(T37, T38, T39, T40, select20_out_aga(T39, T38, X53)) → perm11_out_ga(.(T37, T38), .(T39, T40))
perm11_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, select20_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, perm11_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, perm11_out_ga(.(T37, T45), T46)) → perm11_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T27, T28, T29, perm11_out_ga(T28, T29)) → perm11_out_ga(.(T27, T28), .(T27, T29))
PERM11_IN_GA(.(T27, T28), .(T27, T29)) → U2_GA(T27, T28, T29, perm11_in_ga(T28, T29))
PERM11_IN_GA(.(T27, T28), .(T27, T29)) → PERM11_IN_GA(T28, T29)
PERM11_IN_GA(.(T37, T38), .(T39, T40)) → U3_GA(T37, T38, T39, T40, select20_in_aga(T39, T38, X53))
PERM11_IN_GA(.(T37, T38), .(T39, T40)) → SELECT20_IN_AGA(T39, T38, X53)
SELECT20_IN_AGA(T70, .(T68, T69), .(T68, X92)) → U1_AGA(T70, T68, T69, X92, select20_in_aga(T70, T69, X92))
SELECT20_IN_AGA(T70, .(T68, T69), .(T68, X92)) → SELECT20_IN_AGA(T70, T69, X92)
PERM11_IN_GA(.(T37, T38), .(T39, T46)) → U4_GA(T37, T38, T39, T46, select20_in_aga(T39, T38, T45))
U4_GA(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → U5_GA(T37, T38, T39, T46, perm11_in_ga(.(T37, T45), T46))
U4_GA(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → PERM11_IN_GA(.(T37, T45), T46)
perm11_in_ga([], []) → perm11_out_ga([], [])
perm11_in_ga(.(T27, T28), .(T27, T29)) → U2_ga(T27, T28, T29, perm11_in_ga(T28, T29))
perm11_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, select20_in_aga(T39, T38, X53))
select20_in_aga(T59, .(T59, T60), T60) → select20_out_aga(T59, .(T59, T60), T60)
select20_in_aga(T70, .(T68, T69), .(T68, X92)) → U1_aga(T70, T68, T69, X92, select20_in_aga(T70, T69, X92))
U1_aga(T70, T68, T69, X92, select20_out_aga(T70, T69, X92)) → select20_out_aga(T70, .(T68, T69), .(T68, X92))
U3_ga(T37, T38, T39, T40, select20_out_aga(T39, T38, X53)) → perm11_out_ga(.(T37, T38), .(T39, T40))
perm11_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, select20_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, perm11_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, perm11_out_ga(.(T37, T45), T46)) → perm11_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T27, T28, T29, perm11_out_ga(T28, T29)) → perm11_out_ga(.(T27, T28), .(T27, T29))
PERM11_IN_GA(.(T27, T28), .(T27, T29)) → U2_GA(T27, T28, T29, perm11_in_ga(T28, T29))
PERM11_IN_GA(.(T27, T28), .(T27, T29)) → PERM11_IN_GA(T28, T29)
PERM11_IN_GA(.(T37, T38), .(T39, T40)) → U3_GA(T37, T38, T39, T40, select20_in_aga(T39, T38, X53))
PERM11_IN_GA(.(T37, T38), .(T39, T40)) → SELECT20_IN_AGA(T39, T38, X53)
SELECT20_IN_AGA(T70, .(T68, T69), .(T68, X92)) → U1_AGA(T70, T68, T69, X92, select20_in_aga(T70, T69, X92))
SELECT20_IN_AGA(T70, .(T68, T69), .(T68, X92)) → SELECT20_IN_AGA(T70, T69, X92)
PERM11_IN_GA(.(T37, T38), .(T39, T46)) → U4_GA(T37, T38, T39, T46, select20_in_aga(T39, T38, T45))
U4_GA(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → U5_GA(T37, T38, T39, T46, perm11_in_ga(.(T37, T45), T46))
U4_GA(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → PERM11_IN_GA(.(T37, T45), T46)
perm11_in_ga([], []) → perm11_out_ga([], [])
perm11_in_ga(.(T27, T28), .(T27, T29)) → U2_ga(T27, T28, T29, perm11_in_ga(T28, T29))
perm11_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, select20_in_aga(T39, T38, X53))
select20_in_aga(T59, .(T59, T60), T60) → select20_out_aga(T59, .(T59, T60), T60)
select20_in_aga(T70, .(T68, T69), .(T68, X92)) → U1_aga(T70, T68, T69, X92, select20_in_aga(T70, T69, X92))
U1_aga(T70, T68, T69, X92, select20_out_aga(T70, T69, X92)) → select20_out_aga(T70, .(T68, T69), .(T68, X92))
U3_ga(T37, T38, T39, T40, select20_out_aga(T39, T38, X53)) → perm11_out_ga(.(T37, T38), .(T39, T40))
perm11_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, select20_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, perm11_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, perm11_out_ga(.(T37, T45), T46)) → perm11_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T27, T28, T29, perm11_out_ga(T28, T29)) → perm11_out_ga(.(T27, T28), .(T27, T29))
SELECT20_IN_AGA(T70, .(T68, T69), .(T68, X92)) → SELECT20_IN_AGA(T70, T69, X92)
perm11_in_ga([], []) → perm11_out_ga([], [])
perm11_in_ga(.(T27, T28), .(T27, T29)) → U2_ga(T27, T28, T29, perm11_in_ga(T28, T29))
perm11_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, select20_in_aga(T39, T38, X53))
select20_in_aga(T59, .(T59, T60), T60) → select20_out_aga(T59, .(T59, T60), T60)
select20_in_aga(T70, .(T68, T69), .(T68, X92)) → U1_aga(T70, T68, T69, X92, select20_in_aga(T70, T69, X92))
U1_aga(T70, T68, T69, X92, select20_out_aga(T70, T69, X92)) → select20_out_aga(T70, .(T68, T69), .(T68, X92))
U3_ga(T37, T38, T39, T40, select20_out_aga(T39, T38, X53)) → perm11_out_ga(.(T37, T38), .(T39, T40))
perm11_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, select20_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, perm11_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, perm11_out_ga(.(T37, T45), T46)) → perm11_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T27, T28, T29, perm11_out_ga(T28, T29)) → perm11_out_ga(.(T27, T28), .(T27, T29))
SELECT20_IN_AGA(T70, .(T68, T69), .(T68, X92)) → SELECT20_IN_AGA(T70, T69, X92)
SELECT20_IN_AGA(.(T68, T69)) → SELECT20_IN_AGA(T69)
From the DPs we obtained the following set of size-change graphs:
PERM11_IN_GA(.(T37, T38), .(T39, T46)) → U4_GA(T37, T38, T39, T46, select20_in_aga(T39, T38, T45))
U4_GA(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → PERM11_IN_GA(.(T37, T45), T46)
PERM11_IN_GA(.(T27, T28), .(T27, T29)) → PERM11_IN_GA(T28, T29)
perm11_in_ga([], []) → perm11_out_ga([], [])
perm11_in_ga(.(T27, T28), .(T27, T29)) → U2_ga(T27, T28, T29, perm11_in_ga(T28, T29))
perm11_in_ga(.(T37, T38), .(T39, T40)) → U3_ga(T37, T38, T39, T40, select20_in_aga(T39, T38, X53))
select20_in_aga(T59, .(T59, T60), T60) → select20_out_aga(T59, .(T59, T60), T60)
select20_in_aga(T70, .(T68, T69), .(T68, X92)) → U1_aga(T70, T68, T69, X92, select20_in_aga(T70, T69, X92))
U1_aga(T70, T68, T69, X92, select20_out_aga(T70, T69, X92)) → select20_out_aga(T70, .(T68, T69), .(T68, X92))
U3_ga(T37, T38, T39, T40, select20_out_aga(T39, T38, X53)) → perm11_out_ga(.(T37, T38), .(T39, T40))
perm11_in_ga(.(T37, T38), .(T39, T46)) → U4_ga(T37, T38, T39, T46, select20_in_aga(T39, T38, T45))
U4_ga(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → U5_ga(T37, T38, T39, T46, perm11_in_ga(.(T37, T45), T46))
U5_ga(T37, T38, T39, T46, perm11_out_ga(.(T37, T45), T46)) → perm11_out_ga(.(T37, T38), .(T39, T46))
U2_ga(T27, T28, T29, perm11_out_ga(T28, T29)) → perm11_out_ga(.(T27, T28), .(T27, T29))
PERM11_IN_GA(.(T37, T38), .(T39, T46)) → U4_GA(T37, T38, T39, T46, select20_in_aga(T39, T38, T45))
U4_GA(T37, T38, T39, T46, select20_out_aga(T39, T38, T45)) → PERM11_IN_GA(.(T37, T45), T46)
PERM11_IN_GA(.(T27, T28), .(T27, T29)) → PERM11_IN_GA(T28, T29)
select20_in_aga(T59, .(T59, T60), T60) → select20_out_aga(T59, .(T59, T60), T60)
select20_in_aga(T70, .(T68, T69), .(T68, X92)) → U1_aga(T70, T68, T69, X92, select20_in_aga(T70, T69, X92))
U1_aga(T70, T68, T69, X92, select20_out_aga(T70, T69, X92)) → select20_out_aga(T70, .(T68, T69), .(T68, X92))
PERM11_IN_GA(.(T37, T38)) → U4_GA(T37, select20_in_aga(T38))
U4_GA(T37, select20_out_aga(T39, T45)) → PERM11_IN_GA(.(T37, T45))
PERM11_IN_GA(.(T27, T28)) → PERM11_IN_GA(T28)
select20_in_aga(.(T59, T60)) → select20_out_aga(T59, T60)
select20_in_aga(.(T68, T69)) → U1_aga(T68, select20_in_aga(T69))
U1_aga(T68, select20_out_aga(T70, X92)) → select20_out_aga(T70, .(T68, X92))
select20_in_aga(x0)
U1_aga(x0, x1)
PERM11_IN_GA(.(T37, T38)) → U4_GA(T37, select20_in_aga(T38))
U4_GA(T37, select20_out_aga(T39, T45)) → PERM11_IN_GA(.(T37, T45))
PERM11_IN_GA(.(T27, T28)) → PERM11_IN_GA(T28)
select20_in_aga(.(T59, T60)) → select20_out_aga(T59, T60)
POL(.(x1, x2)) = 3 + x1 + x2
POL(PERM11_IN_GA(x1)) = x1
POL(U1_aga(x1, x2)) = 3 + x1 + x2
POL(U4_GA(x1, x2)) = x1 + x2
POL(select20_in_aga(x1)) = 2 + x1
POL(select20_out_aga(x1, x2)) = 4 + x1 + x2
select20_in_aga(.(T68, T69)) → U1_aga(T68, select20_in_aga(T69))
U1_aga(T68, select20_out_aga(T70, X92)) → select20_out_aga(T70, .(T68, X92))
select20_in_aga(x0)
U1_aga(x0, x1)