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
log1_in_ga(0, s(0)) → log1_out_ga(0, s(0))
log1_in_ga(s(0), s(s(0))) → log1_out_ga(s(0), s(s(0)))
log1_in_ga(s(s(T10)), s(T7)) → U2_ga(T10, T7, half24_in_ga(T10, X20))
half24_in_ga(0, 0) → half24_out_ga(0, 0)
half24_in_ga(s(0), 0) → half24_out_ga(s(0), 0)
half24_in_ga(s(s(T14)), s(X31)) → U1_ga(T14, X31, half24_in_ga(T14, X31))
U1_ga(T14, X31, half24_out_ga(T14, X31)) → half24_out_ga(s(s(T14)), s(X31))
U2_ga(T10, T7, half24_out_ga(T10, X20)) → log1_out_ga(s(s(T10)), s(T7))
log1_in_ga(s(s(T10)), s(T7)) → U3_ga(T10, T7, half24_in_ga(T10, T11))
U3_ga(T10, T7, half24_out_ga(T10, T11)) → U4_ga(T10, T7, log1_in_ga(s(T11), T7))
U4_ga(T10, T7, log1_out_ga(s(T11), T7)) → log1_out_ga(s(s(T10)), s(T7))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
log1_in_ga(0, s(0)) → log1_out_ga(0, s(0))
log1_in_ga(s(0), s(s(0))) → log1_out_ga(s(0), s(s(0)))
log1_in_ga(s(s(T10)), s(T7)) → U2_ga(T10, T7, half24_in_ga(T10, X20))
half24_in_ga(0, 0) → half24_out_ga(0, 0)
half24_in_ga(s(0), 0) → half24_out_ga(s(0), 0)
half24_in_ga(s(s(T14)), s(X31)) → U1_ga(T14, X31, half24_in_ga(T14, X31))
U1_ga(T14, X31, half24_out_ga(T14, X31)) → half24_out_ga(s(s(T14)), s(X31))
U2_ga(T10, T7, half24_out_ga(T10, X20)) → log1_out_ga(s(s(T10)), s(T7))
log1_in_ga(s(s(T10)), s(T7)) → U3_ga(T10, T7, half24_in_ga(T10, T11))
U3_ga(T10, T7, half24_out_ga(T10, T11)) → U4_ga(T10, T7, log1_in_ga(s(T11), T7))
U4_ga(T10, T7, log1_out_ga(s(T11), T7)) → log1_out_ga(s(s(T10)), s(T7))
LOG1_IN_GA(s(s(T10)), s(T7)) → U2_GA(T10, T7, half24_in_ga(T10, X20))
LOG1_IN_GA(s(s(T10)), s(T7)) → HALF24_IN_GA(T10, X20)
HALF24_IN_GA(s(s(T14)), s(X31)) → U1_GA(T14, X31, half24_in_ga(T14, X31))
HALF24_IN_GA(s(s(T14)), s(X31)) → HALF24_IN_GA(T14, X31)
LOG1_IN_GA(s(s(T10)), s(T7)) → U3_GA(T10, T7, half24_in_ga(T10, T11))
U3_GA(T10, T7, half24_out_ga(T10, T11)) → U4_GA(T10, T7, log1_in_ga(s(T11), T7))
U3_GA(T10, T7, half24_out_ga(T10, T11)) → LOG1_IN_GA(s(T11), T7)
log1_in_ga(0, s(0)) → log1_out_ga(0, s(0))
log1_in_ga(s(0), s(s(0))) → log1_out_ga(s(0), s(s(0)))
log1_in_ga(s(s(T10)), s(T7)) → U2_ga(T10, T7, half24_in_ga(T10, X20))
half24_in_ga(0, 0) → half24_out_ga(0, 0)
half24_in_ga(s(0), 0) → half24_out_ga(s(0), 0)
half24_in_ga(s(s(T14)), s(X31)) → U1_ga(T14, X31, half24_in_ga(T14, X31))
U1_ga(T14, X31, half24_out_ga(T14, X31)) → half24_out_ga(s(s(T14)), s(X31))
U2_ga(T10, T7, half24_out_ga(T10, X20)) → log1_out_ga(s(s(T10)), s(T7))
log1_in_ga(s(s(T10)), s(T7)) → U3_ga(T10, T7, half24_in_ga(T10, T11))
U3_ga(T10, T7, half24_out_ga(T10, T11)) → U4_ga(T10, T7, log1_in_ga(s(T11), T7))
U4_ga(T10, T7, log1_out_ga(s(T11), T7)) → log1_out_ga(s(s(T10)), s(T7))
LOG1_IN_GA(s(s(T10)), s(T7)) → U2_GA(T10, T7, half24_in_ga(T10, X20))
LOG1_IN_GA(s(s(T10)), s(T7)) → HALF24_IN_GA(T10, X20)
HALF24_IN_GA(s(s(T14)), s(X31)) → U1_GA(T14, X31, half24_in_ga(T14, X31))
HALF24_IN_GA(s(s(T14)), s(X31)) → HALF24_IN_GA(T14, X31)
LOG1_IN_GA(s(s(T10)), s(T7)) → U3_GA(T10, T7, half24_in_ga(T10, T11))
U3_GA(T10, T7, half24_out_ga(T10, T11)) → U4_GA(T10, T7, log1_in_ga(s(T11), T7))
U3_GA(T10, T7, half24_out_ga(T10, T11)) → LOG1_IN_GA(s(T11), T7)
log1_in_ga(0, s(0)) → log1_out_ga(0, s(0))
log1_in_ga(s(0), s(s(0))) → log1_out_ga(s(0), s(s(0)))
log1_in_ga(s(s(T10)), s(T7)) → U2_ga(T10, T7, half24_in_ga(T10, X20))
half24_in_ga(0, 0) → half24_out_ga(0, 0)
half24_in_ga(s(0), 0) → half24_out_ga(s(0), 0)
half24_in_ga(s(s(T14)), s(X31)) → U1_ga(T14, X31, half24_in_ga(T14, X31))
U1_ga(T14, X31, half24_out_ga(T14, X31)) → half24_out_ga(s(s(T14)), s(X31))
U2_ga(T10, T7, half24_out_ga(T10, X20)) → log1_out_ga(s(s(T10)), s(T7))
log1_in_ga(s(s(T10)), s(T7)) → U3_ga(T10, T7, half24_in_ga(T10, T11))
U3_ga(T10, T7, half24_out_ga(T10, T11)) → U4_ga(T10, T7, log1_in_ga(s(T11), T7))
U4_ga(T10, T7, log1_out_ga(s(T11), T7)) → log1_out_ga(s(s(T10)), s(T7))
HALF24_IN_GA(s(s(T14)), s(X31)) → HALF24_IN_GA(T14, X31)
log1_in_ga(0, s(0)) → log1_out_ga(0, s(0))
log1_in_ga(s(0), s(s(0))) → log1_out_ga(s(0), s(s(0)))
log1_in_ga(s(s(T10)), s(T7)) → U2_ga(T10, T7, half24_in_ga(T10, X20))
half24_in_ga(0, 0) → half24_out_ga(0, 0)
half24_in_ga(s(0), 0) → half24_out_ga(s(0), 0)
half24_in_ga(s(s(T14)), s(X31)) → U1_ga(T14, X31, half24_in_ga(T14, X31))
U1_ga(T14, X31, half24_out_ga(T14, X31)) → half24_out_ga(s(s(T14)), s(X31))
U2_ga(T10, T7, half24_out_ga(T10, X20)) → log1_out_ga(s(s(T10)), s(T7))
log1_in_ga(s(s(T10)), s(T7)) → U3_ga(T10, T7, half24_in_ga(T10, T11))
U3_ga(T10, T7, half24_out_ga(T10, T11)) → U4_ga(T10, T7, log1_in_ga(s(T11), T7))
U4_ga(T10, T7, log1_out_ga(s(T11), T7)) → log1_out_ga(s(s(T10)), s(T7))
HALF24_IN_GA(s(s(T14)), s(X31)) → HALF24_IN_GA(T14, X31)
HALF24_IN_GA(s(s(T14))) → HALF24_IN_GA(T14)
From the DPs we obtained the following set of size-change graphs:
LOG1_IN_GA(s(s(T10)), s(T7)) → U3_GA(T10, T7, half24_in_ga(T10, T11))
U3_GA(T10, T7, half24_out_ga(T10, T11)) → LOG1_IN_GA(s(T11), T7)
log1_in_ga(0, s(0)) → log1_out_ga(0, s(0))
log1_in_ga(s(0), s(s(0))) → log1_out_ga(s(0), s(s(0)))
log1_in_ga(s(s(T10)), s(T7)) → U2_ga(T10, T7, half24_in_ga(T10, X20))
half24_in_ga(0, 0) → half24_out_ga(0, 0)
half24_in_ga(s(0), 0) → half24_out_ga(s(0), 0)
half24_in_ga(s(s(T14)), s(X31)) → U1_ga(T14, X31, half24_in_ga(T14, X31))
U1_ga(T14, X31, half24_out_ga(T14, X31)) → half24_out_ga(s(s(T14)), s(X31))
U2_ga(T10, T7, half24_out_ga(T10, X20)) → log1_out_ga(s(s(T10)), s(T7))
log1_in_ga(s(s(T10)), s(T7)) → U3_ga(T10, T7, half24_in_ga(T10, T11))
U3_ga(T10, T7, half24_out_ga(T10, T11)) → U4_ga(T10, T7, log1_in_ga(s(T11), T7))
U4_ga(T10, T7, log1_out_ga(s(T11), T7)) → log1_out_ga(s(s(T10)), s(T7))
LOG1_IN_GA(s(s(T10)), s(T7)) → U3_GA(T10, T7, half24_in_ga(T10, T11))
U3_GA(T10, T7, half24_out_ga(T10, T11)) → LOG1_IN_GA(s(T11), T7)
half24_in_ga(0, 0) → half24_out_ga(0, 0)
half24_in_ga(s(0), 0) → half24_out_ga(s(0), 0)
half24_in_ga(s(s(T14)), s(X31)) → U1_ga(T14, X31, half24_in_ga(T14, X31))
U1_ga(T14, X31, half24_out_ga(T14, X31)) → half24_out_ga(s(s(T14)), s(X31))
LOG1_IN_GA(s(s(T10))) → U3_GA(half24_in_ga(T10))
U3_GA(half24_out_ga(T11)) → LOG1_IN_GA(s(T11))
half24_in_ga(0) → half24_out_ga(0)
half24_in_ga(s(0)) → half24_out_ga(0)
half24_in_ga(s(s(T14))) → U1_ga(half24_in_ga(T14))
U1_ga(half24_out_ga(X31)) → half24_out_ga(s(X31))
half24_in_ga(x0)
U1_ga(x0)
LOG1_IN_GA(s(s(T10))) → U3_GA(half24_in_ga(T10))
U3_GA(half24_out_ga(T11)) → LOG1_IN_GA(s(T11))
half24_in_ga(0) → half24_out_ga(0)
half24_in_ga(s(0)) → half24_out_ga(0)
half24_in_ga(s(s(T14))) → U1_ga(half24_in_ga(T14))
U1_ga(half24_out_ga(X31)) → half24_out_ga(s(X31))
POL(0) = 0
POL(LOG1_IN_GA(x1)) = x1
POL(U1_ga(x1)) = 4 + x1
POL(U3_GA(x1)) = 4 + x1
POL(half24_in_ga(x1)) = 1 + x1
POL(half24_out_ga(x1)) = x1
POL(s(x1)) = 3 + x1
half24_in_ga(x0)
U1_ga(x0)