MAYBE Time: 3.298459 TRS: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} DP: DP: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2), mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# from X -> mark# X, mark# from X -> from# mark X, mark# from X -> active# from mark X, mark# s X -> mark# X, mark# s X -> s# mark X, mark# s X -> active# s mark X, mark# rnil() -> active# rnil(), mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2), mark# 0() -> active# 0(), mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), mark# rcons(X1, X2) -> rcons#(mark X1, mark X2), mark# posrecip X -> mark# X, mark# posrecip X -> active# posrecip mark X, mark# posrecip X -> posrecip# mark X, mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2), mark# negrecip X -> mark# X, mark# negrecip X -> active# negrecip mark X, mark# negrecip X -> negrecip# mark X, mark# pi X -> mark# X, mark# pi X -> active# pi mark X, mark# pi X -> pi# mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# plus(X1, X2) -> plus#(mark X1, mark X2), mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2), mark# times(X1, X2) -> times#(mark X1, mark X2), mark# square X -> mark# X, mark# square X -> active# square mark X, mark# square X -> square# mark X, cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2), from# mark X -> from# X, from# active X -> from# X, s# mark X -> s# X, s# active X -> s# X, active# from X -> mark# cons(X, from s X), active# from X -> cons#(X, from s X), active# from X -> from# s X, active# from X -> s# X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z)), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z), active# 2ndspos(0(), Z) -> mark# rnil(), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y, active# 2ndsneg(0(), Z) -> mark# rnil(), active# pi X -> mark# 2ndspos(X, from 0()), active# pi X -> from# 0(), active# pi X -> 2ndspos#(X, from 0()), active# plus(s X, Y) -> mark# s plus(X, Y), active# plus(s X, Y) -> s# plus(X, Y), active# plus(s X, Y) -> plus#(X, Y), active# plus(0(), Y) -> mark# Y, active# times(s X, Y) -> mark# plus(Y, times(X, Y)), active# times(s X, Y) -> plus#(Y, times(X, Y)), active# times(s X, Y) -> times#(X, Y), active# times(0(), Y) -> mark# 0(), active# square X -> mark# times(X, X), active# square X -> times#(X, X), 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2), 2ndspos#(active X1, X2) -> 2ndspos#(X1, X2), rcons#(X1, mark X2) -> rcons#(X1, X2), rcons#(X1, active X2) -> rcons#(X1, X2), rcons#(mark X1, X2) -> rcons#(X1, X2), rcons#(active X1, X2) -> rcons#(X1, X2), posrecip# mark X -> posrecip# X, posrecip# active X -> posrecip# X, 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2), 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2), 2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2), negrecip# mark X -> negrecip# X, negrecip# active X -> negrecip# X, pi# mark X -> pi# X, pi# active X -> pi# X, plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2), times#(X1, mark X2) -> times#(X1, X2), times#(X1, active X2) -> times#(X1, X2), times#(mark X1, X2) -> times#(X1, X2), times#(active X1, X2) -> times#(X1, X2), square# mark X -> square# X, square# active X -> square# X} TRS: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} UR: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X, a(x, y) -> x, a(x, y) -> y} EDG: { (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z), 2ndspos#(active X1, X2) -> 2ndspos#(X1, X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z), 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2)) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# square X -> times#(X, X)) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# square X -> mark# times(X, X)) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# times(0(), Y) -> mark# 0()) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# times(s X, Y) -> times#(X, Y)) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# plus(0(), Y) -> mark# Y) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# plus(s X, Y) -> plus#(X, Y)) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# plus(s X, Y) -> s# plus(X, Y)) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# pi X -> 2ndspos#(X, from 0())) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# pi X -> from# 0()) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# pi X -> mark# 2ndspos(X, from 0())) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# 2ndspos(0(), Z) -> mark# rnil()) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# from X -> s# X) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# from X -> from# s X) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# from X -> cons#(X, from s X)) (mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), active# from X -> mark# cons(X, from s X)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# square X -> times#(X, X)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# square X -> mark# times(X, X)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# times(0(), Y) -> mark# 0()) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# times(s X, Y) -> times#(X, Y)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(0(), Y) -> mark# Y) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(s X, Y) -> plus#(X, Y)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(s X, Y) -> s# plus(X, Y)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# pi X -> 2ndspos#(X, from 0())) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# pi X -> from# 0()) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# pi X -> mark# 2ndspos(X, from 0())) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# 2ndspos(0(), Z) -> mark# rnil()) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# from X -> s# X) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# from X -> from# s X) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# from X -> cons#(X, from s X)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# from X -> mark# cons(X, from s X)) (active# from X -> mark# cons(X, from s X), mark# square X -> square# mark X) (active# from X -> mark# cons(X, from s X), mark# square X -> active# square mark X) (active# from X -> mark# cons(X, from s X), mark# square X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# times(X1, X2) -> times#(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# times(X1, X2) -> active# times(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# times(X1, X2) -> mark# X2) (active# from X -> mark# cons(X, from s X), mark# times(X1, X2) -> mark# X1) (active# from X -> mark# cons(X, from s X), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# plus(X1, X2) -> mark# X2) (active# from X -> mark# cons(X, from s X), mark# plus(X1, X2) -> mark# X1) (active# from X -> mark# cons(X, from s X), mark# pi X -> pi# mark X) (active# from X -> mark# cons(X, from s X), mark# pi X -> active# pi mark X) (active# from X -> mark# cons(X, from s X), mark# pi X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# negrecip X -> negrecip# mark X) (active# from X -> mark# cons(X, from s X), mark# negrecip X -> active# negrecip mark X) (active# from X -> mark# cons(X, from s X), mark# negrecip X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# 2ndsneg(X1, X2) -> mark# X2) (active# from X -> mark# cons(X, from s X), mark# 2ndsneg(X1, X2) -> mark# X1) (active# from X -> mark# cons(X, from s X), mark# posrecip X -> posrecip# mark X) (active# from X -> mark# cons(X, from s X), mark# posrecip X -> active# posrecip mark X) (active# from X -> mark# cons(X, from s X), mark# posrecip X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# rcons(X1, X2) -> mark# X2) (active# from X -> mark# cons(X, from s X), mark# rcons(X1, X2) -> mark# X1) (active# from X -> mark# cons(X, from s X), mark# 0() -> active# 0()) (active# from X -> mark# cons(X, from s X), mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (active# from X -> mark# cons(X, from s X), mark# 2ndspos(X1, X2) -> mark# X2) (active# from X -> mark# cons(X, from s X), mark# 2ndspos(X1, X2) -> mark# X1) (active# from X -> mark# cons(X, from s X), mark# rnil() -> active# rnil()) (active# from X -> mark# cons(X, from s X), mark# s X -> active# s mark X) (active# from X -> mark# cons(X, from s X), mark# s X -> s# mark X) (active# from X -> mark# cons(X, from s X), mark# s X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# from X -> active# from mark X) (active# from X -> mark# cons(X, from s X), mark# from X -> from# mark X) (active# from X -> mark# cons(X, from s X), mark# from X -> mark# X) (active# from X -> mark# cons(X, from s X), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# from X -> mark# cons(X, from s X), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# from X -> mark# cons(X, from s X), mark# cons(X1, X2) -> mark# X1) (mark# from X -> mark# X, mark# square X -> square# mark X) (mark# from X -> mark# X, mark# square X -> active# square mark X) (mark# from X -> mark# X, mark# square X -> mark# X) (mark# from X -> mark# X, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# from X -> mark# X, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# from X -> mark# X, mark# times(X1, X2) -> mark# X2) (mark# from X -> mark# X, mark# times(X1, X2) -> mark# X1) (mark# from X -> mark# X, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# from X -> mark# X, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# from X -> mark# X, mark# plus(X1, X2) -> mark# X2) (mark# from X -> mark# X, mark# plus(X1, X2) -> mark# X1) (mark# from X -> mark# X, mark# pi X -> pi# mark X) (mark# from X -> mark# X, mark# pi X -> active# pi mark X) (mark# from X -> mark# X, mark# pi X -> mark# X) (mark# from X -> mark# X, mark# negrecip X -> negrecip# mark X) (mark# from X -> mark# X, mark# negrecip X -> active# negrecip mark X) (mark# from X -> mark# X, mark# negrecip X -> mark# X) (mark# from X -> mark# X, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# from X -> mark# X, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# from X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# from X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# from X -> mark# X, mark# posrecip X -> posrecip# mark X) (mark# from X -> mark# X, mark# posrecip X -> active# posrecip mark X) (mark# from X -> mark# X, mark# posrecip X -> mark# X) (mark# from X -> mark# X, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# from X -> mark# X, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# from X -> mark# X, mark# rcons(X1, X2) -> mark# X2) (mark# from X -> mark# X, mark# rcons(X1, X2) -> mark# X1) (mark# from X -> mark# X, mark# 0() -> active# 0()) (mark# from X -> mark# X, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# from X -> mark# X, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# from X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X2) (mark# from X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X1) (mark# from X -> mark# X, mark# rnil() -> active# rnil()) (mark# from X -> mark# X, mark# s X -> active# s mark X) (mark# from X -> mark# X, mark# s X -> s# mark X) (mark# from X -> mark# X, mark# s X -> mark# X) (mark# from X -> mark# X, mark# from X -> active# from mark X) (mark# from X -> mark# X, mark# from X -> from# mark X) (mark# from X -> mark# X, mark# from X -> mark# X) (mark# from X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# from X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# from X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# posrecip X -> mark# X, mark# square X -> square# mark X) (mark# posrecip X -> mark# X, mark# square X -> active# square mark X) (mark# posrecip X -> mark# X, mark# square X -> mark# X) (mark# posrecip X -> mark# X, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# posrecip X -> mark# X, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# posrecip X -> mark# X, mark# times(X1, X2) -> mark# X2) (mark# posrecip X -> mark# X, mark# times(X1, X2) -> mark# X1) (mark# posrecip X -> mark# X, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# posrecip X -> mark# X, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# posrecip X -> mark# X, mark# plus(X1, X2) -> mark# X2) (mark# posrecip X -> mark# X, mark# plus(X1, X2) -> mark# X1) (mark# posrecip X -> mark# X, mark# pi X -> pi# mark X) (mark# posrecip X -> mark# X, mark# pi X -> active# pi mark X) (mark# posrecip X -> mark# X, mark# pi X -> mark# X) (mark# posrecip X -> mark# X, mark# negrecip X -> negrecip# mark X) (mark# posrecip X -> mark# X, mark# negrecip X -> active# negrecip mark X) (mark# posrecip X -> mark# X, mark# negrecip X -> mark# X) (mark# posrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# posrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# posrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# posrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# posrecip X -> mark# X, mark# posrecip X -> posrecip# mark X) (mark# posrecip X -> mark# X, mark# posrecip X -> active# posrecip mark X) (mark# posrecip X -> mark# X, mark# posrecip X -> mark# X) (mark# posrecip X -> mark# X, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# posrecip X -> mark# X, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# posrecip X -> mark# X, mark# rcons(X1, X2) -> mark# X2) (mark# posrecip X -> mark# X, mark# rcons(X1, X2) -> mark# X1) (mark# posrecip X -> mark# X, mark# 0() -> active# 0()) (mark# posrecip X -> mark# X, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# posrecip X -> mark# X, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# posrecip X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X2) (mark# posrecip X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X1) (mark# posrecip X -> mark# X, mark# rnil() -> active# rnil()) (mark# posrecip X -> mark# X, mark# s X -> active# s mark X) (mark# posrecip X -> mark# X, mark# s X -> s# mark X) (mark# posrecip X -> mark# X, mark# s X -> mark# X) (mark# posrecip X -> mark# X, mark# from X -> active# from mark X) (mark# posrecip X -> mark# X, mark# from X -> from# mark X) (mark# posrecip X -> mark# X, mark# from X -> mark# X) (mark# posrecip X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# posrecip X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# posrecip X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# pi X -> mark# X, mark# square X -> square# mark X) (mark# pi X -> mark# X, mark# square X -> active# square mark X) (mark# pi X -> mark# X, mark# square X -> mark# X) (mark# pi X -> mark# X, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# pi X -> mark# X, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# pi X -> mark# X, mark# times(X1, X2) -> mark# X2) (mark# pi X -> mark# X, mark# times(X1, X2) -> mark# X1) (mark# pi X -> mark# X, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# pi X -> mark# X, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# pi X -> mark# X, mark# plus(X1, X2) -> mark# X2) (mark# pi X -> mark# X, mark# plus(X1, X2) -> mark# X1) (mark# pi X -> mark# X, mark# pi X -> pi# mark X) (mark# pi X -> mark# X, mark# pi X -> active# pi mark X) (mark# pi X -> mark# X, mark# pi X -> mark# X) (mark# pi X -> mark# X, mark# negrecip X -> negrecip# mark X) (mark# pi X -> mark# X, mark# negrecip X -> active# negrecip mark X) (mark# pi X -> mark# X, mark# negrecip X -> mark# X) (mark# pi X -> mark# X, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# pi X -> mark# X, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# pi X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# pi X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# pi X -> mark# X, mark# posrecip X -> posrecip# mark X) (mark# pi X -> mark# X, mark# posrecip X -> active# posrecip mark X) (mark# pi X -> mark# X, mark# posrecip X -> mark# X) (mark# pi X -> mark# X, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# pi X -> mark# X, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# pi X -> mark# X, mark# rcons(X1, X2) -> mark# X2) (mark# pi X -> mark# X, mark# rcons(X1, X2) -> mark# X1) (mark# pi X -> mark# X, mark# 0() -> active# 0()) (mark# pi X -> mark# X, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# pi X -> mark# X, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# pi X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X2) (mark# pi X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X1) (mark# pi X -> mark# X, mark# rnil() -> active# rnil()) (mark# pi X -> mark# X, mark# s X -> active# s mark X) (mark# pi X -> mark# X, mark# s X -> s# mark X) (mark# pi X -> mark# X, mark# s X -> mark# X) (mark# pi X -> mark# X, mark# from X -> active# from mark X) (mark# pi X -> mark# X, mark# from X -> from# mark X) (mark# pi X -> mark# X, mark# from X -> mark# X) (mark# pi X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# pi X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# pi X -> mark# X, mark# cons(X1, X2) -> mark# X1) (from# mark X -> from# X, from# active X -> from# X) (from# mark X -> from# X, from# mark X -> from# X) (s# mark X -> s# X, s# active X -> s# X) (s# mark X -> s# X, s# mark X -> s# X) (active# from X -> s# X, s# active X -> s# X) (active# from X -> s# X, s# mark X -> s# X) (posrecip# active X -> posrecip# X, posrecip# active X -> posrecip# X) (posrecip# active X -> posrecip# X, posrecip# mark X -> posrecip# X) (negrecip# active X -> negrecip# X, negrecip# active X -> negrecip# X) (negrecip# active X -> negrecip# X, negrecip# mark X -> negrecip# X) (pi# active X -> pi# X, pi# active X -> pi# X) (pi# active X -> pi# X, pi# mark X -> pi# X) (square# active X -> square# X, square# active X -> square# X) (square# active X -> square# X, square# mark X -> square# X) (active# pi X -> 2ndspos#(X, from 0()), 2ndspos#(active X1, X2) -> 2ndspos#(X1, X2)) (active# pi X -> 2ndspos#(X, from 0()), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y, posrecip# active X -> posrecip# X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y, posrecip# mark X -> posrecip# X) (active# plus(0(), Y) -> mark# Y, mark# square X -> square# mark X) (active# plus(0(), Y) -> mark# Y, mark# square X -> active# square mark X) (active# plus(0(), Y) -> mark# Y, mark# square X -> mark# X) (active# plus(0(), Y) -> mark# Y, mark# times(X1, X2) -> times#(mark X1, mark X2)) (active# plus(0(), Y) -> mark# Y, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (active# plus(0(), Y) -> mark# Y, mark# times(X1, X2) -> mark# X2) (active# plus(0(), Y) -> mark# Y, mark# times(X1, X2) -> mark# X1) (active# plus(0(), Y) -> mark# Y, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# plus(0(), Y) -> mark# Y, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# plus(0(), Y) -> mark# Y, mark# plus(X1, X2) -> mark# X2) (active# plus(0(), Y) -> mark# Y, mark# plus(X1, X2) -> mark# X1) (active# plus(0(), Y) -> mark# Y, mark# pi X -> pi# mark X) (active# plus(0(), Y) -> mark# Y, mark# pi X -> active# pi mark X) (active# plus(0(), Y) -> mark# Y, mark# pi X -> mark# X) (active# plus(0(), Y) -> mark# Y, mark# negrecip X -> negrecip# mark X) (active# plus(0(), Y) -> mark# Y, mark# negrecip X -> active# negrecip mark X) (active# plus(0(), Y) -> mark# Y, mark# negrecip X -> mark# X) (active# plus(0(), Y) -> mark# Y, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (active# plus(0(), Y) -> mark# Y, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (active# plus(0(), Y) -> mark# Y, mark# 2ndsneg(X1, X2) -> mark# X2) (active# plus(0(), Y) -> mark# Y, mark# 2ndsneg(X1, X2) -> mark# X1) (active# plus(0(), Y) -> mark# Y, mark# posrecip X -> posrecip# mark X) (active# plus(0(), Y) -> mark# Y, mark# posrecip X -> active# posrecip mark X) (active# plus(0(), Y) -> mark# Y, mark# posrecip X -> mark# X) (active# plus(0(), Y) -> mark# Y, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (active# plus(0(), Y) -> mark# Y, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (active# plus(0(), Y) -> mark# Y, mark# rcons(X1, X2) -> mark# X2) (active# plus(0(), Y) -> mark# Y, mark# rcons(X1, X2) -> mark# X1) (active# plus(0(), Y) -> mark# Y, mark# 0() -> active# 0()) (active# plus(0(), Y) -> mark# Y, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (active# plus(0(), Y) -> mark# Y, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (active# plus(0(), Y) -> mark# Y, mark# 2ndspos(X1, X2) -> mark# X2) (active# plus(0(), Y) -> mark# Y, mark# 2ndspos(X1, X2) -> mark# X1) (active# plus(0(), Y) -> mark# Y, mark# rnil() -> active# rnil()) (active# plus(0(), Y) -> mark# Y, mark# s X -> active# s mark X) (active# plus(0(), Y) -> mark# Y, mark# s X -> s# mark X) (active# plus(0(), Y) -> mark# Y, mark# s X -> mark# X) (active# plus(0(), Y) -> mark# Y, mark# from X -> active# from mark X) (active# plus(0(), Y) -> mark# Y, mark# from X -> from# mark X) (active# plus(0(), Y) -> mark# Y, mark# from X -> mark# X) (active# plus(0(), Y) -> mark# Y, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# plus(0(), Y) -> mark# Y, mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# plus(0(), Y) -> mark# Y, mark# cons(X1, X2) -> mark# X1) (cons#(X1, active X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (2ndspos#(X1, active X2) -> 2ndspos#(X1, X2), 2ndspos#(active X1, X2) -> 2ndspos#(X1, X2)) (2ndspos#(X1, active X2) -> 2ndspos#(X1, X2), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2)) (2ndspos#(X1, active X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2)) (2ndspos#(X1, active X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2)) (2ndspos#(active X1, X2) -> 2ndspos#(X1, X2), 2ndspos#(active X1, X2) -> 2ndspos#(X1, X2)) (2ndspos#(active X1, X2) -> 2ndspos#(X1, X2), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2)) (2ndspos#(active X1, X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2)) (2ndspos#(active X1, X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2)) (rcons#(X1, active X2) -> rcons#(X1, X2), rcons#(active X1, X2) -> rcons#(X1, X2)) (rcons#(X1, active X2) -> rcons#(X1, X2), rcons#(mark X1, X2) -> rcons#(X1, X2)) (rcons#(X1, active X2) -> rcons#(X1, X2), rcons#(X1, active X2) -> rcons#(X1, X2)) (rcons#(X1, active X2) -> rcons#(X1, X2), rcons#(X1, mark X2) -> rcons#(X1, X2)) (rcons#(active X1, X2) -> rcons#(X1, X2), rcons#(active X1, X2) -> rcons#(X1, X2)) (rcons#(active X1, X2) -> rcons#(X1, X2), rcons#(mark X1, X2) -> rcons#(X1, X2)) (rcons#(active X1, X2) -> rcons#(X1, X2), rcons#(X1, active X2) -> rcons#(X1, X2)) (rcons#(active X1, X2) -> rcons#(X1, X2), rcons#(X1, mark X2) -> rcons#(X1, X2)) (2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2), 2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2), 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2), 2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2), 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2)) (plus#(X1, active X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)) (plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (plus#(X1, active X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)) (plus#(X1, active X2) -> plus#(X1, X2), plus#(X1, mark X2) -> plus#(X1, X2)) (plus#(active X1, X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)) (plus#(active X1, X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (plus#(active X1, X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)) (plus#(active X1, X2) -> plus#(X1, X2), plus#(X1, mark X2) -> plus#(X1, X2)) (times#(X1, active X2) -> times#(X1, X2), times#(active X1, X2) -> times#(X1, X2)) (times#(X1, active X2) -> times#(X1, X2), times#(mark X1, X2) -> times#(X1, X2)) (times#(X1, active X2) -> times#(X1, X2), times#(X1, active X2) -> times#(X1, X2)) (times#(X1, active X2) -> times#(X1, X2), times#(X1, mark X2) -> times#(X1, X2)) (times#(active X1, X2) -> times#(X1, X2), times#(active X1, X2) -> times#(X1, X2)) (times#(active X1, X2) -> times#(X1, X2), times#(mark X1, X2) -> times#(X1, X2)) (times#(active X1, X2) -> times#(X1, X2), times#(X1, active X2) -> times#(X1, X2)) (times#(active X1, X2) -> times#(X1, X2), times#(X1, mark X2) -> times#(X1, X2)) (active# plus(s X, Y) -> s# plus(X, Y), s# active X -> s# X) (active# plus(s X, Y) -> s# plus(X, Y), s# mark X -> s# X) (mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2), 2ndspos#(active X1, X2) -> 2ndspos#(X1, X2)) (mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2)) (mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2)) (mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2), 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2)) (mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2), 2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2)) (mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2), 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2)) (mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2)) (mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2), 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2)) (mark# times(X1, X2) -> times#(mark X1, mark X2), times#(active X1, X2) -> times#(X1, X2)) (mark# times(X1, X2) -> times#(mark X1, mark X2), times#(mark X1, X2) -> times#(X1, X2)) (mark# times(X1, X2) -> times#(mark X1, mark X2), times#(X1, active X2) -> times#(X1, X2)) (mark# times(X1, X2) -> times#(mark X1, mark X2), times#(X1, mark X2) -> times#(X1, X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# square X -> square# mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# square X -> active# square mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# square X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2) (mark# 2ndspos(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X1) (mark# 2ndspos(X1, X2) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# 2ndspos(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# 2ndspos(X1, X2) -> mark# X1, mark# pi X -> pi# mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# pi X -> active# pi mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# pi X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# negrecip X -> negrecip# mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# negrecip X -> active# negrecip mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# negrecip X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# 2ndspos(X1, X2) -> mark# X1, mark# posrecip X -> posrecip# mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# posrecip X -> active# posrecip mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# posrecip X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2) (mark# 2ndspos(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X1) (mark# 2ndspos(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2) (mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X1) (mark# 2ndspos(X1, X2) -> mark# X1, mark# rnil() -> active# rnil()) (mark# 2ndspos(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# from X -> active# from mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# from X -> from# mark X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# from X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# 2ndspos(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# square X -> square# mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# square X -> active# square mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# square X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# pi X -> pi# mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# pi X -> active# pi mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# pi X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# negrecip X -> negrecip# mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# negrecip X -> active# negrecip mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# negrecip X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# posrecip X -> posrecip# mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# posrecip X -> active# posrecip mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# posrecip X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# rnil() -> active# rnil()) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# from X -> active# from mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# from X -> from# mark X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# from X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# 2ndsneg(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X1, mark# square X -> square# mark X) (mark# times(X1, X2) -> mark# X1, mark# square X -> active# square mark X) (mark# times(X1, X2) -> mark# X1, mark# square X -> mark# X) (mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2) (mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# times(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X1, mark# pi X -> pi# mark X) (mark# times(X1, X2) -> mark# X1, mark# pi X -> active# pi mark X) (mark# times(X1, X2) -> mark# X1, mark# pi X -> mark# X) (mark# times(X1, X2) -> mark# X1, mark# negrecip X -> negrecip# mark X) (mark# times(X1, X2) -> mark# X1, mark# negrecip X -> active# negrecip mark X) (mark# times(X1, X2) -> mark# X1, mark# negrecip X -> mark# X) (mark# times(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# times(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X1, mark# posrecip X -> posrecip# mark X) (mark# times(X1, X2) -> mark# X1, mark# posrecip X -> active# posrecip mark X) (mark# times(X1, X2) -> mark# X1, mark# posrecip X -> mark# X) (mark# times(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2) (mark# times(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# times(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2) (mark# times(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X1, mark# rnil() -> active# rnil()) (mark# times(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# times(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# times(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# times(X1, X2) -> mark# X1, mark# from X -> active# from mark X) (mark# times(X1, X2) -> mark# X1, mark# from X -> from# mark X) (mark# times(X1, X2) -> mark# X1, mark# from X -> mark# X) (mark# times(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# times(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# times(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# s X -> active# s mark X, active# square X -> times#(X, X)) (mark# s X -> active# s mark X, active# square X -> mark# times(X, X)) (mark# s X -> active# s mark X, active# times(0(), Y) -> mark# 0()) (mark# s X -> active# s mark X, active# times(s X, Y) -> times#(X, Y)) (mark# s X -> active# s mark X, active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# s X -> active# s mark X, active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# s X -> active# s mark X, active# plus(0(), Y) -> mark# Y) (mark# s X -> active# s mark X, active# plus(s X, Y) -> plus#(X, Y)) (mark# s X -> active# s mark X, active# plus(s X, Y) -> s# plus(X, Y)) (mark# s X -> active# s mark X, active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# s X -> active# s mark X, active# pi X -> 2ndspos#(X, from 0())) (mark# s X -> active# s mark X, active# pi X -> from# 0()) (mark# s X -> active# s mark X, active# pi X -> mark# 2ndspos(X, from 0())) (mark# s X -> active# s mark X, active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# s X -> active# s mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# s X -> active# s mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# s X -> active# s mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# s X -> active# s mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# s X -> active# s mark X, active# 2ndspos(0(), Z) -> mark# rnil()) (mark# s X -> active# s mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# s X -> active# s mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# s X -> active# s mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# s X -> active# s mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# s X -> active# s mark X, active# from X -> s# X) (mark# s X -> active# s mark X, active# from X -> from# s X) (mark# s X -> active# s mark X, active# from X -> cons#(X, from s X)) (mark# s X -> active# s mark X, active# from X -> mark# cons(X, from s X)) (mark# negrecip X -> active# negrecip mark X, active# square X -> times#(X, X)) (mark# negrecip X -> active# negrecip mark X, active# square X -> mark# times(X, X)) (mark# negrecip X -> active# negrecip mark X, active# times(0(), Y) -> mark# 0()) (mark# negrecip X -> active# negrecip mark X, active# times(s X, Y) -> times#(X, Y)) (mark# negrecip X -> active# negrecip mark X, active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# negrecip X -> active# negrecip mark X, active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# negrecip X -> active# negrecip mark X, active# plus(0(), Y) -> mark# Y) (mark# negrecip X -> active# negrecip mark X, active# plus(s X, Y) -> plus#(X, Y)) (mark# negrecip X -> active# negrecip mark X, active# plus(s X, Y) -> s# plus(X, Y)) (mark# negrecip X -> active# negrecip mark X, active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# negrecip X -> active# negrecip mark X, active# pi X -> 2ndspos#(X, from 0())) (mark# negrecip X -> active# negrecip mark X, active# pi X -> from# 0()) (mark# negrecip X -> active# negrecip mark X, active# pi X -> mark# 2ndspos(X, from 0())) (mark# negrecip X -> active# negrecip mark X, active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# negrecip X -> active# negrecip mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# negrecip X -> active# negrecip mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# negrecip X -> active# negrecip mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# negrecip X -> active# negrecip mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# negrecip X -> active# negrecip mark X, active# 2ndspos(0(), Z) -> mark# rnil()) (mark# negrecip X -> active# negrecip mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# negrecip X -> active# negrecip mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# negrecip X -> active# negrecip mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# negrecip X -> active# negrecip mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# negrecip X -> active# negrecip mark X, active# from X -> s# X) (mark# negrecip X -> active# negrecip mark X, active# from X -> from# s X) (mark# negrecip X -> active# negrecip mark X, active# from X -> cons#(X, from s X)) (mark# negrecip X -> active# negrecip mark X, active# from X -> mark# cons(X, from s X)) (mark# square X -> active# square mark X, active# square X -> times#(X, X)) (mark# square X -> active# square mark X, active# square X -> mark# times(X, X)) (mark# square X -> active# square mark X, active# times(0(), Y) -> mark# 0()) (mark# square X -> active# square mark X, active# times(s X, Y) -> times#(X, Y)) (mark# square X -> active# square mark X, active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# square X -> active# square mark X, active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# square X -> active# square mark X, active# plus(0(), Y) -> mark# Y) (mark# square X -> active# square mark X, active# plus(s X, Y) -> plus#(X, Y)) (mark# square X -> active# square mark X, active# plus(s X, Y) -> s# plus(X, Y)) (mark# square X -> active# square mark X, active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# square X -> active# square mark X, active# pi X -> 2ndspos#(X, from 0())) (mark# square X -> active# square mark X, active# pi X -> from# 0()) (mark# square X -> active# square mark X, active# pi X -> mark# 2ndspos(X, from 0())) (mark# square X -> active# square mark X, active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# square X -> active# square mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# square X -> active# square mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# square X -> active# square mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# square X -> active# square mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# square X -> active# square mark X, active# 2ndspos(0(), Z) -> mark# rnil()) (mark# square X -> active# square mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# square X -> active# square mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# square X -> active# square mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# square X -> active# square mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# square X -> active# square mark X, active# from X -> s# X) (mark# square X -> active# square mark X, active# from X -> from# s X) (mark# square X -> active# square mark X, active# from X -> cons#(X, from s X)) (mark# square X -> active# square mark X, active# from X -> mark# cons(X, from s X)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# square X -> square# mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# square X -> active# square mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# square X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# times(X1, X2) -> mark# X2) (mark# 2ndspos(X1, X2) -> mark# X2, mark# times(X1, X2) -> mark# X1) (mark# 2ndspos(X1, X2) -> mark# X2, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X2) (mark# 2ndspos(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X1) (mark# 2ndspos(X1, X2) -> mark# X2, mark# pi X -> pi# mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# pi X -> active# pi mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# pi X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# negrecip X -> negrecip# mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# negrecip X -> active# negrecip mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# negrecip X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# 2ndspos(X1, X2) -> mark# X2, mark# posrecip X -> posrecip# mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# posrecip X -> active# posrecip mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# posrecip X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> mark# X2) (mark# 2ndspos(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> mark# X1) (mark# 2ndspos(X1, X2) -> mark# X2, mark# 0() -> active# 0()) (mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> mark# X2) (mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> mark# X1) (mark# 2ndspos(X1, X2) -> mark# X2, mark# rnil() -> active# rnil()) (mark# 2ndspos(X1, X2) -> mark# X2, mark# s X -> active# s mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# s X -> s# mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# from X -> active# from mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# from X -> from# mark X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# from X -> mark# X) (mark# 2ndspos(X1, X2) -> mark# X2, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# 2ndspos(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# square X -> square# mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# square X -> active# square mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# square X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# times(X1, X2) -> mark# X2) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# times(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X2) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# pi X -> pi# mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# pi X -> active# pi mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# pi X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# negrecip X -> negrecip# mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# negrecip X -> active# negrecip mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# negrecip X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# posrecip X -> posrecip# mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# posrecip X -> active# posrecip mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# posrecip X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> mark# X2) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# 0() -> active# 0()) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> mark# X2) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> mark# X1) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# rnil() -> active# rnil()) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# s X -> active# s mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# s X -> s# mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# from X -> active# from mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# from X -> from# mark X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# from X -> mark# X) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# 2ndsneg(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X2, mark# square X -> square# mark X) (mark# times(X1, X2) -> mark# X2, mark# square X -> active# square mark X) (mark# times(X1, X2) -> mark# X2, mark# square X -> mark# X) (mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> mark# X2) (mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X2, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X2) (mark# times(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X2, mark# pi X -> pi# mark X) (mark# times(X1, X2) -> mark# X2, mark# pi X -> active# pi mark X) (mark# times(X1, X2) -> mark# X2, mark# pi X -> mark# X) (mark# times(X1, X2) -> mark# X2, mark# negrecip X -> negrecip# mark X) (mark# times(X1, X2) -> mark# X2, mark# negrecip X -> active# negrecip mark X) (mark# times(X1, X2) -> mark# X2, mark# negrecip X -> mark# X) (mark# times(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# times(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X2, mark# posrecip X -> posrecip# mark X) (mark# times(X1, X2) -> mark# X2, mark# posrecip X -> active# posrecip mark X) (mark# times(X1, X2) -> mark# X2, mark# posrecip X -> mark# X) (mark# times(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> mark# X2) (mark# times(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X2, mark# 0() -> active# 0()) (mark# times(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# times(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> mark# X2) (mark# times(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> mark# X1) (mark# times(X1, X2) -> mark# X2, mark# rnil() -> active# rnil()) (mark# times(X1, X2) -> mark# X2, mark# s X -> active# s mark X) (mark# times(X1, X2) -> mark# X2, mark# s X -> s# mark X) (mark# times(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# times(X1, X2) -> mark# X2, mark# from X -> active# from mark X) (mark# times(X1, X2) -> mark# X2, mark# from X -> from# mark X) (mark# times(X1, X2) -> mark# X2, mark# from X -> mark# X) (mark# times(X1, X2) -> mark# X2, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# times(X1, X2) -> mark# X2, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# times(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (active# times(s X, Y) -> times#(X, Y), times#(active X1, X2) -> times#(X1, X2)) (active# times(s X, Y) -> times#(X, Y), times#(mark X1, X2) -> times#(X1, X2)) (active# times(s X, Y) -> times#(X, Y), times#(X1, active X2) -> times#(X1, X2)) (active# times(s X, Y) -> times#(X, Y), times#(X1, mark X2) -> times#(X1, X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z)), rcons#(active X1, X2) -> rcons#(X1, X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z)), rcons#(mark X1, X2) -> rcons#(X1, X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z)), rcons#(X1, active X2) -> rcons#(X1, X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z)), rcons#(X1, mark X2) -> rcons#(X1, X2)) (active# square X -> times#(X, X), times#(active X1, X2) -> times#(X1, X2)) (active# square X -> times#(X, X), times#(mark X1, X2) -> times#(X1, X2)) (active# square X -> times#(X, X), times#(X1, active X2) -> times#(X1, X2)) (active# square X -> times#(X, X), times#(X1, mark X2) -> times#(X1, X2)) (active# 2ndsneg(0(), Z) -> mark# rnil(), mark# rnil() -> active# rnil()) (active# times(0(), Y) -> mark# 0(), mark# 0() -> active# 0()) (mark# s X -> s# mark X, s# active X -> s# X) (mark# s X -> s# mark X, s# mark X -> s# X) (mark# negrecip X -> negrecip# mark X, negrecip# active X -> negrecip# X) (mark# negrecip X -> negrecip# mark X, negrecip# mark X -> negrecip# X) (mark# square X -> square# mark X, square# active X -> square# X) (mark# square X -> square# mark X, square# mark X -> square# X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# square X -> square# mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# square X -> active# square mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# square X -> mark# X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# times(X1, X2) -> times#(mark X1, mark X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# times(X1, X2) -> active# times(mark X1, mark X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# times(X1, X2) -> mark# X2) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# times(X1, X2) -> mark# X1) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# plus(X1, X2) -> mark# X2) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# plus(X1, X2) -> mark# X1) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# pi X -> pi# mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# pi X -> active# pi mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# pi X -> mark# X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# negrecip X -> negrecip# mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# negrecip X -> active# negrecip mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# negrecip X -> mark# X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# 2ndsneg(X1, X2) -> mark# X2) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# 2ndsneg(X1, X2) -> mark# X1) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# posrecip X -> posrecip# mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# posrecip X -> active# posrecip mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# posrecip X -> mark# X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# rcons(X1, X2) -> mark# X2) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# rcons(X1, X2) -> mark# X1) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# 0() -> active# 0()) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# 2ndspos(X1, X2) -> mark# X2) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# 2ndspos(X1, X2) -> mark# X1) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# rnil() -> active# rnil()) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# s X -> active# s mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# s X -> s# mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# s X -> mark# X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# from X -> active# from mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# from X -> from# mark X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# from X -> mark# X) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), mark# cons(X1, X2) -> mark# X1) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# square X -> square# mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# square X -> active# square mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# square X -> mark# X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# times(X1, X2) -> times#(mark X1, mark X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# times(X1, X2) -> active# times(mark X1, mark X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# times(X1, X2) -> mark# X2) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# times(X1, X2) -> mark# X1) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# plus(X1, X2) -> mark# X2) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# plus(X1, X2) -> mark# X1) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# pi X -> pi# mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# pi X -> active# pi mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# pi X -> mark# X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# negrecip X -> negrecip# mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# negrecip X -> active# negrecip mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# negrecip X -> mark# X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# 2ndsneg(X1, X2) -> mark# X2) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# 2ndsneg(X1, X2) -> mark# X1) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# posrecip X -> posrecip# mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# posrecip X -> active# posrecip mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# posrecip X -> mark# X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# rcons(X1, X2) -> mark# X2) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# rcons(X1, X2) -> mark# X1) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# 0() -> active# 0()) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# 2ndspos(X1, X2) -> mark# X2) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# 2ndspos(X1, X2) -> mark# X1) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# rnil() -> active# rnil()) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# s X -> active# s mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# s X -> s# mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# s X -> mark# X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# from X -> active# from mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# from X -> from# mark X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# from X -> mark# X) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# times(s X, Y) -> mark# plus(Y, times(X, Y)), mark# cons(X1, X2) -> mark# X1) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# cons(X1, X2) -> mark# X1) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# from X -> mark# X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# from X -> from# mark X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# from X -> active# from mark X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# s X -> mark# X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# s X -> s# mark X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# s X -> active# s mark X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# rnil() -> active# rnil()) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# 2ndspos(X1, X2) -> mark# X1) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# 2ndspos(X1, X2) -> mark# X2) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# 0() -> active# 0()) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# rcons(X1, X2) -> mark# X1) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# rcons(X1, X2) -> mark# X2) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# posrecip X -> mark# X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# posrecip X -> active# posrecip mark X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# posrecip X -> posrecip# mark X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# 2ndsneg(X1, X2) -> mark# X1) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# 2ndsneg(X1, X2) -> mark# X2) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# negrecip X -> mark# X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# negrecip X -> active# negrecip mark X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# negrecip X -> negrecip# mark X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# pi X -> mark# X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# pi X -> active# pi mark X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# pi X -> pi# mark X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# plus(X1, X2) -> mark# X1) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# plus(X1, X2) -> mark# X2) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# times(X1, X2) -> mark# X1) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# times(X1, X2) -> mark# X2) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# times(X1, X2) -> active# times(mark X1, mark X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# times(X1, X2) -> times#(mark X1, mark X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# square X -> mark# X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# square X -> active# square mark X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), mark# square X -> square# mark X) (active# from X -> from# s X, from# mark X -> from# X) (active# from X -> from# s X, from# active X -> from# X) (mark# pi X -> pi# mark X, pi# mark X -> pi# X) (mark# pi X -> pi# mark X, pi# active X -> pi# X) (mark# posrecip X -> posrecip# mark X, posrecip# mark X -> posrecip# X) (mark# posrecip X -> posrecip# mark X, posrecip# active X -> posrecip# X) (mark# from X -> from# mark X, from# mark X -> from# X) (mark# from X -> from# mark X, from# active X -> from# X) (active# 2ndspos(0(), Z) -> mark# rnil(), mark# rnil() -> active# rnil()) (active# times(s X, Y) -> plus#(Y, times(X, Y)), plus#(X1, mark X2) -> plus#(X1, X2)) (active# times(s X, Y) -> plus#(Y, times(X, Y)), plus#(X1, active X2) -> plus#(X1, X2)) (active# times(s X, Y) -> plus#(Y, times(X, Y)), plus#(mark X1, X2) -> plus#(X1, X2)) (active# times(s X, Y) -> plus#(Y, times(X, Y)), plus#(active X1, X2) -> plus#(X1, X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z)), rcons#(X1, mark X2) -> rcons#(X1, X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z)), rcons#(X1, active X2) -> rcons#(X1, X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z)), rcons#(mark X1, X2) -> rcons#(X1, X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z)), rcons#(active X1, X2) -> rcons#(X1, X2)) (active# plus(s X, Y) -> plus#(X, Y), plus#(X1, mark X2) -> plus#(X1, X2)) (active# plus(s X, Y) -> plus#(X, Y), plus#(X1, active X2) -> plus#(X1, X2)) (active# plus(s X, Y) -> plus#(X, Y), plus#(mark X1, X2) -> plus#(X1, X2)) (active# plus(s X, Y) -> plus#(X, Y), plus#(active X1, X2) -> plus#(X1, X2)) (mark# plus(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# plus(X1, X2) -> mark# X2, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# plus(X1, X2) -> mark# X2, mark# from X -> mark# X) (mark# plus(X1, X2) -> mark# X2, mark# from X -> from# mark X) (mark# plus(X1, X2) -> mark# X2, mark# from X -> active# from mark X) (mark# plus(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# plus(X1, X2) -> mark# X2, mark# s X -> s# mark X) (mark# plus(X1, X2) -> mark# X2, mark# s X -> active# s mark X) (mark# plus(X1, X2) -> mark# X2, mark# rnil() -> active# rnil()) (mark# plus(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# 0() -> active# 0()) (mark# plus(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# posrecip X -> mark# X) (mark# plus(X1, X2) -> mark# X2, mark# posrecip X -> active# posrecip mark X) (mark# plus(X1, X2) -> mark# X2, mark# posrecip X -> posrecip# mark X) (mark# plus(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# negrecip X -> mark# X) (mark# plus(X1, X2) -> mark# X2, mark# negrecip X -> active# negrecip mark X) (mark# plus(X1, X2) -> mark# X2, mark# negrecip X -> negrecip# mark X) (mark# plus(X1, X2) -> mark# X2, mark# pi X -> mark# X) (mark# plus(X1, X2) -> mark# X2, mark# pi X -> active# pi mark X) (mark# plus(X1, X2) -> mark# X2, mark# pi X -> pi# mark X) (mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# times(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# times(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# square X -> mark# X) (mark# plus(X1, X2) -> mark# X2, mark# square X -> active# square mark X) (mark# plus(X1, X2) -> mark# X2, mark# square X -> square# mark X) (mark# rcons(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X2, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# rcons(X1, X2) -> mark# X2, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# rcons(X1, X2) -> mark# X2, mark# from X -> mark# X) (mark# rcons(X1, X2) -> mark# X2, mark# from X -> from# mark X) (mark# rcons(X1, X2) -> mark# X2, mark# from X -> active# from mark X) (mark# rcons(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# rcons(X1, X2) -> mark# X2, mark# s X -> s# mark X) (mark# rcons(X1, X2) -> mark# X2, mark# s X -> active# s mark X) (mark# rcons(X1, X2) -> mark# X2, mark# rnil() -> active# rnil()) (mark# rcons(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> mark# X2) (mark# rcons(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X2, mark# 0() -> active# 0()) (mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> mark# X2) (mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X2, mark# posrecip X -> mark# X) (mark# rcons(X1, X2) -> mark# X2, mark# posrecip X -> active# posrecip mark X) (mark# rcons(X1, X2) -> mark# X2, mark# posrecip X -> posrecip# mark X) (mark# rcons(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# rcons(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X2, mark# negrecip X -> mark# X) (mark# rcons(X1, X2) -> mark# X2, mark# negrecip X -> active# negrecip mark X) (mark# rcons(X1, X2) -> mark# X2, mark# negrecip X -> negrecip# mark X) (mark# rcons(X1, X2) -> mark# X2, mark# pi X -> mark# X) (mark# rcons(X1, X2) -> mark# X2, mark# pi X -> active# pi mark X) (mark# rcons(X1, X2) -> mark# X2, mark# pi X -> pi# mark X) (mark# rcons(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X2) (mark# rcons(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X2, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X2, mark# times(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X2, mark# times(X1, X2) -> mark# X2) (mark# rcons(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X2, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X2, mark# square X -> mark# X) (mark# rcons(X1, X2) -> mark# X2, mark# square X -> active# square mark X) (mark# rcons(X1, X2) -> mark# X2, mark# square X -> square# mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# cons(X1, X2) -> mark# X1) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# from X -> mark# X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# from X -> from# mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# from X -> active# from mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# s X -> mark# X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# s X -> s# mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# s X -> active# s mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# rnil() -> active# rnil()) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# 2ndspos(X1, X2) -> mark# X1) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# 2ndspos(X1, X2) -> mark# X2) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# 0() -> active# 0()) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# rcons(X1, X2) -> mark# X1) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# rcons(X1, X2) -> mark# X2) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# posrecip X -> mark# X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# posrecip X -> active# posrecip mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# posrecip X -> posrecip# mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# 2ndsneg(X1, X2) -> mark# X1) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# 2ndsneg(X1, X2) -> mark# X2) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# negrecip X -> mark# X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# negrecip X -> active# negrecip mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# negrecip X -> negrecip# mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# pi X -> mark# X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# pi X -> active# pi mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# pi X -> pi# mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# plus(X1, X2) -> mark# X1) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# plus(X1, X2) -> mark# X2) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# times(X1, X2) -> mark# X1) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# times(X1, X2) -> mark# X2) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# times(X1, X2) -> active# times(mark X1, mark X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# times(X1, X2) -> times#(mark X1, mark X2)) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# square X -> mark# X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# square X -> active# square mark X) (active# plus(s X, Y) -> mark# s plus(X, Y), mark# square X -> square# mark X) (mark# pi X -> active# pi mark X, active# from X -> mark# cons(X, from s X)) (mark# pi X -> active# pi mark X, active# from X -> cons#(X, from s X)) (mark# pi X -> active# pi mark X, active# from X -> from# s X) (mark# pi X -> active# pi mark X, active# from X -> s# X) (mark# pi X -> active# pi mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# pi X -> active# pi mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# pi X -> active# pi mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# pi X -> active# pi mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# pi X -> active# pi mark X, active# 2ndspos(0(), Z) -> mark# rnil()) (mark# pi X -> active# pi mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# pi X -> active# pi mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# pi X -> active# pi mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# pi X -> active# pi mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# pi X -> active# pi mark X, active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# pi X -> active# pi mark X, active# pi X -> mark# 2ndspos(X, from 0())) (mark# pi X -> active# pi mark X, active# pi X -> from# 0()) (mark# pi X -> active# pi mark X, active# pi X -> 2ndspos#(X, from 0())) (mark# pi X -> active# pi mark X, active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# pi X -> active# pi mark X, active# plus(s X, Y) -> s# plus(X, Y)) (mark# pi X -> active# pi mark X, active# plus(s X, Y) -> plus#(X, Y)) (mark# pi X -> active# pi mark X, active# plus(0(), Y) -> mark# Y) (mark# pi X -> active# pi mark X, active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# pi X -> active# pi mark X, active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# pi X -> active# pi mark X, active# times(s X, Y) -> times#(X, Y)) (mark# pi X -> active# pi mark X, active# times(0(), Y) -> mark# 0()) (mark# pi X -> active# pi mark X, active# square X -> mark# times(X, X)) (mark# pi X -> active# pi mark X, active# square X -> times#(X, X)) (mark# posrecip X -> active# posrecip mark X, active# from X -> mark# cons(X, from s X)) (mark# posrecip X -> active# posrecip mark X, active# from X -> cons#(X, from s X)) (mark# posrecip X -> active# posrecip mark X, active# from X -> from# s X) (mark# posrecip X -> active# posrecip mark X, active# from X -> s# X) (mark# posrecip X -> active# posrecip mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# posrecip X -> active# posrecip mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# posrecip X -> active# posrecip mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# posrecip X -> active# posrecip mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# posrecip X -> active# posrecip mark X, active# 2ndspos(0(), Z) -> mark# rnil()) (mark# posrecip X -> active# posrecip mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# posrecip X -> active# posrecip mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# posrecip X -> active# posrecip mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# posrecip X -> active# posrecip mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# posrecip X -> active# posrecip mark X, active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# posrecip X -> active# posrecip mark X, active# pi X -> mark# 2ndspos(X, from 0())) (mark# posrecip X -> active# posrecip mark X, active# pi X -> from# 0()) (mark# posrecip X -> active# posrecip mark X, active# pi X -> 2ndspos#(X, from 0())) (mark# posrecip X -> active# posrecip mark X, active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# posrecip X -> active# posrecip mark X, active# plus(s X, Y) -> s# plus(X, Y)) (mark# posrecip X -> active# posrecip mark X, active# plus(s X, Y) -> plus#(X, Y)) (mark# posrecip X -> active# posrecip mark X, active# plus(0(), Y) -> mark# Y) (mark# posrecip X -> active# posrecip mark X, active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# posrecip X -> active# posrecip mark X, active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# posrecip X -> active# posrecip mark X, active# times(s X, Y) -> times#(X, Y)) (mark# posrecip X -> active# posrecip mark X, active# times(0(), Y) -> mark# 0()) (mark# posrecip X -> active# posrecip mark X, active# square X -> mark# times(X, X)) (mark# posrecip X -> active# posrecip mark X, active# square X -> times#(X, X)) (mark# from X -> active# from mark X, active# from X -> mark# cons(X, from s X)) (mark# from X -> active# from mark X, active# from X -> cons#(X, from s X)) (mark# from X -> active# from mark X, active# from X -> from# s X) (mark# from X -> active# from mark X, active# from X -> s# X) (mark# from X -> active# from mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# from X -> active# from mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# from X -> active# from mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# from X -> active# from mark X, active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# from X -> active# from mark X, active# 2ndspos(0(), Z) -> mark# rnil()) (mark# from X -> active# from mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# from X -> active# from mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# from X -> active# from mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# from X -> active# from mark X, active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# from X -> active# from mark X, active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# from X -> active# from mark X, active# pi X -> mark# 2ndspos(X, from 0())) (mark# from X -> active# from mark X, active# pi X -> from# 0()) (mark# from X -> active# from mark X, active# pi X -> 2ndspos#(X, from 0())) (mark# from X -> active# from mark X, active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# from X -> active# from mark X, active# plus(s X, Y) -> s# plus(X, Y)) (mark# from X -> active# from mark X, active# plus(s X, Y) -> plus#(X, Y)) (mark# from X -> active# from mark X, active# plus(0(), Y) -> mark# Y) (mark# from X -> active# from mark X, active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# from X -> active# from mark X, active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# from X -> active# from mark X, active# times(s X, Y) -> times#(X, Y)) (mark# from X -> active# from mark X, active# times(0(), Y) -> mark# 0()) (mark# from X -> active# from mark X, active# square X -> mark# times(X, X)) (mark# from X -> active# from mark X, active# square X -> times#(X, X)) (mark# plus(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# plus(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# plus(X1, X2) -> mark# X1, mark# from X -> mark# X) (mark# plus(X1, X2) -> mark# X1, mark# from X -> from# mark X) (mark# plus(X1, X2) -> mark# X1, mark# from X -> active# from mark X) (mark# plus(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# plus(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# plus(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# plus(X1, X2) -> mark# X1, mark# rnil() -> active# rnil()) (mark# plus(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# plus(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# posrecip X -> mark# X) (mark# plus(X1, X2) -> mark# X1, mark# posrecip X -> active# posrecip mark X) (mark# plus(X1, X2) -> mark# X1, mark# posrecip X -> posrecip# mark X) (mark# plus(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# negrecip X -> mark# X) (mark# plus(X1, X2) -> mark# X1, mark# negrecip X -> active# negrecip mark X) (mark# plus(X1, X2) -> mark# X1, mark# negrecip X -> negrecip# mark X) (mark# plus(X1, X2) -> mark# X1, mark# pi X -> mark# X) (mark# plus(X1, X2) -> mark# X1, mark# pi X -> active# pi mark X) (mark# plus(X1, X2) -> mark# X1, mark# pi X -> pi# mark X) (mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X1, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# square X -> mark# X) (mark# plus(X1, X2) -> mark# X1, mark# square X -> active# square mark X) (mark# plus(X1, X2) -> mark# X1, mark# square X -> square# mark X) (mark# rcons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# rcons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# rcons(X1, X2) -> mark# X1, mark# from X -> mark# X) (mark# rcons(X1, X2) -> mark# X1, mark# from X -> from# mark X) (mark# rcons(X1, X2) -> mark# X1, mark# from X -> active# from mark X) (mark# rcons(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# rcons(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# rcons(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# rcons(X1, X2) -> mark# X1, mark# rnil() -> active# rnil()) (mark# rcons(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2) (mark# rcons(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2) (mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X1, mark# posrecip X -> mark# X) (mark# rcons(X1, X2) -> mark# X1, mark# posrecip X -> active# posrecip mark X) (mark# rcons(X1, X2) -> mark# X1, mark# posrecip X -> posrecip# mark X) (mark# rcons(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# rcons(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X1, mark# negrecip X -> mark# X) (mark# rcons(X1, X2) -> mark# X1, mark# negrecip X -> active# negrecip mark X) (mark# rcons(X1, X2) -> mark# X1, mark# negrecip X -> negrecip# mark X) (mark# rcons(X1, X2) -> mark# X1, mark# pi X -> mark# X) (mark# rcons(X1, X2) -> mark# X1, mark# pi X -> active# pi mark X) (mark# rcons(X1, X2) -> mark# X1, mark# pi X -> pi# mark X) (mark# rcons(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# rcons(X1, X2) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X1) (mark# rcons(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2) (mark# rcons(X1, X2) -> mark# X1, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X1, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# rcons(X1, X2) -> mark# X1, mark# square X -> mark# X) (mark# rcons(X1, X2) -> mark# X1, mark# square X -> active# square mark X) (mark# rcons(X1, X2) -> mark# X1, mark# square X -> square# mark X) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# from X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# from X -> from# mark X) (mark# cons(X1, X2) -> mark# X1, mark# from X -> active# from mark X) (mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# cons(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# cons(X1, X2) -> mark# X1, mark# rnil() -> active# rnil()) (mark# cons(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# cons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# posrecip X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# posrecip X -> active# posrecip mark X) (mark# cons(X1, X2) -> mark# X1, mark# posrecip X -> posrecip# mark X) (mark# cons(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# negrecip X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# negrecip X -> active# negrecip mark X) (mark# cons(X1, X2) -> mark# X1, mark# negrecip X -> negrecip# mark X) (mark# cons(X1, X2) -> mark# X1, mark# pi X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# pi X -> active# pi mark X) (mark# cons(X1, X2) -> mark# X1, mark# pi X -> pi# mark X) (mark# cons(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# square X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# square X -> active# square mark X) (mark# cons(X1, X2) -> mark# X1, mark# square X -> square# mark X) (mark# plus(X1, X2) -> plus#(mark X1, mark X2), plus#(X1, mark X2) -> plus#(X1, X2)) (mark# plus(X1, X2) -> plus#(mark X1, mark X2), plus#(X1, active X2) -> plus#(X1, X2)) (mark# plus(X1, X2) -> plus#(mark X1, mark X2), plus#(mark X1, X2) -> plus#(X1, X2)) (mark# plus(X1, X2) -> plus#(mark X1, mark X2), plus#(active X1, X2) -> plus#(X1, X2)) (mark# rcons(X1, X2) -> rcons#(mark X1, mark X2), rcons#(X1, mark X2) -> rcons#(X1, X2)) (mark# rcons(X1, X2) -> rcons#(mark X1, mark X2), rcons#(X1, active X2) -> rcons#(X1, X2)) (mark# rcons(X1, X2) -> rcons#(mark X1, mark X2), rcons#(mark X1, X2) -> rcons#(X1, X2)) (mark# rcons(X1, X2) -> rcons#(mark X1, mark X2), rcons#(active X1, X2) -> rcons#(X1, X2)) (active# square X -> mark# times(X, X), mark# cons(X1, X2) -> mark# X1) (active# square X -> mark# times(X, X), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# square X -> mark# times(X, X), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# square X -> mark# times(X, X), mark# from X -> mark# X) (active# square X -> mark# times(X, X), mark# from X -> from# mark X) (active# square X -> mark# times(X, X), mark# from X -> active# from mark X) (active# square X -> mark# times(X, X), mark# s X -> mark# X) (active# square X -> mark# times(X, X), mark# s X -> s# mark X) (active# square X -> mark# times(X, X), mark# s X -> active# s mark X) (active# square X -> mark# times(X, X), mark# rnil() -> active# rnil()) (active# square X -> mark# times(X, X), mark# 2ndspos(X1, X2) -> mark# X1) (active# square X -> mark# times(X, X), mark# 2ndspos(X1, X2) -> mark# X2) (active# square X -> mark# times(X, X), mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (active# square X -> mark# times(X, X), mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (active# square X -> mark# times(X, X), mark# 0() -> active# 0()) (active# square X -> mark# times(X, X), mark# rcons(X1, X2) -> mark# X1) (active# square X -> mark# times(X, X), mark# rcons(X1, X2) -> mark# X2) (active# square X -> mark# times(X, X), mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (active# square X -> mark# times(X, X), mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (active# square X -> mark# times(X, X), mark# posrecip X -> mark# X) (active# square X -> mark# times(X, X), mark# posrecip X -> active# posrecip mark X) (active# square X -> mark# times(X, X), mark# posrecip X -> posrecip# mark X) (active# square X -> mark# times(X, X), mark# 2ndsneg(X1, X2) -> mark# X1) (active# square X -> mark# times(X, X), mark# 2ndsneg(X1, X2) -> mark# X2) (active# square X -> mark# times(X, X), mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (active# square X -> mark# times(X, X), mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (active# square X -> mark# times(X, X), mark# negrecip X -> mark# X) (active# square X -> mark# times(X, X), mark# negrecip X -> active# negrecip mark X) (active# square X -> mark# times(X, X), mark# negrecip X -> negrecip# mark X) (active# square X -> mark# times(X, X), mark# pi X -> mark# X) (active# square X -> mark# times(X, X), mark# pi X -> active# pi mark X) (active# square X -> mark# times(X, X), mark# pi X -> pi# mark X) (active# square X -> mark# times(X, X), mark# plus(X1, X2) -> mark# X1) (active# square X -> mark# times(X, X), mark# plus(X1, X2) -> mark# X2) (active# square X -> mark# times(X, X), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# square X -> mark# times(X, X), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# square X -> mark# times(X, X), mark# times(X1, X2) -> mark# X1) (active# square X -> mark# times(X, X), mark# times(X1, X2) -> mark# X2) (active# square X -> mark# times(X, X), mark# times(X1, X2) -> active# times(mark X1, mark X2)) (active# square X -> mark# times(X, X), mark# times(X1, X2) -> times#(mark X1, mark X2)) (active# square X -> mark# times(X, X), mark# square X -> mark# X) (active# square X -> mark# times(X, X), mark# square X -> active# square mark X) (active# square X -> mark# times(X, X), mark# square X -> square# mark X) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# from X -> mark# cons(X, from s X)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# from X -> cons#(X, from s X)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# from X -> from# s X) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# from X -> s# X) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# 2ndspos(0(), Z) -> mark# rnil()) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# pi X -> mark# 2ndspos(X, from 0())) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# pi X -> from# 0()) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# pi X -> 2ndspos#(X, from 0())) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# plus(s X, Y) -> s# plus(X, Y)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# plus(s X, Y) -> plus#(X, Y)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# plus(0(), Y) -> mark# Y) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# times(s X, Y) -> times#(X, Y)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# times(0(), Y) -> mark# 0()) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# square X -> mark# times(X, X)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# square X -> times#(X, X)) (times#(mark X1, X2) -> times#(X1, X2), times#(X1, mark X2) -> times#(X1, X2)) (times#(mark X1, X2) -> times#(X1, X2), times#(X1, active X2) -> times#(X1, X2)) (times#(mark X1, X2) -> times#(X1, X2), times#(mark X1, X2) -> times#(X1, X2)) (times#(mark X1, X2) -> times#(X1, X2), times#(active X1, X2) -> times#(X1, X2)) (times#(X1, mark X2) -> times#(X1, X2), times#(X1, mark X2) -> times#(X1, X2)) (times#(X1, mark X2) -> times#(X1, X2), times#(X1, active X2) -> times#(X1, X2)) (times#(X1, mark X2) -> times#(X1, X2), times#(mark X1, X2) -> times#(X1, X2)) (times#(X1, mark X2) -> times#(X1, X2), times#(active X1, X2) -> times#(X1, X2)) (plus#(mark X1, X2) -> plus#(X1, X2), plus#(X1, mark X2) -> plus#(X1, X2)) (plus#(mark X1, X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)) (plus#(mark X1, X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (plus#(mark X1, X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)) (plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, mark X2) -> plus#(X1, X2)) (plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)) (plus#(X1, mark X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (plus#(X1, mark X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)) (2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2), 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2), 2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2), 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2)) (2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2), 2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2)) (rcons#(mark X1, X2) -> rcons#(X1, X2), rcons#(X1, mark X2) -> rcons#(X1, X2)) (rcons#(mark X1, X2) -> rcons#(X1, X2), rcons#(X1, active X2) -> rcons#(X1, X2)) (rcons#(mark X1, X2) -> rcons#(X1, X2), rcons#(mark X1, X2) -> rcons#(X1, X2)) (rcons#(mark X1, X2) -> rcons#(X1, X2), rcons#(active X1, X2) -> rcons#(X1, X2)) (rcons#(X1, mark X2) -> rcons#(X1, X2), rcons#(X1, mark X2) -> rcons#(X1, X2)) (rcons#(X1, mark X2) -> rcons#(X1, X2), rcons#(X1, active X2) -> rcons#(X1, X2)) (rcons#(X1, mark X2) -> rcons#(X1, X2), rcons#(mark X1, X2) -> rcons#(X1, X2)) (rcons#(X1, mark X2) -> rcons#(X1, X2), rcons#(active X1, X2) -> rcons#(X1, X2)) (2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2)) (2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2)) (2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2)) (2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2), 2ndspos#(active X1, X2) -> 2ndspos#(X1, X2)) (2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2)) (2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2)) (2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2)) (2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2), 2ndspos#(active X1, X2) -> 2ndspos#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y, negrecip# mark X -> negrecip# X) (active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y, negrecip# active X -> negrecip# X) (mark# cons(X1, X2) -> cons#(mark X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (mark# cons(X1, X2) -> cons#(mark X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (mark# cons(X1, X2) -> cons#(mark X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (mark# cons(X1, X2) -> cons#(mark X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (active# from X -> cons#(X, from s X), cons#(X1, mark X2) -> cons#(X1, X2)) (active# from X -> cons#(X, from s X), cons#(X1, active X2) -> cons#(X1, X2)) (active# from X -> cons#(X, from s X), cons#(mark X1, X2) -> cons#(X1, X2)) (active# from X -> cons#(X, from s X), cons#(active X1, X2) -> cons#(X1, X2)) (square# mark X -> square# X, square# mark X -> square# X) (square# mark X -> square# X, square# active X -> square# X) (pi# mark X -> pi# X, pi# mark X -> pi# X) (pi# mark X -> pi# X, pi# active X -> pi# X) (negrecip# mark X -> negrecip# X, negrecip# mark X -> negrecip# X) (negrecip# mark X -> negrecip# X, negrecip# active X -> negrecip# X) (posrecip# mark X -> posrecip# X, posrecip# mark X -> posrecip# X) (posrecip# mark X -> posrecip# X, posrecip# active X -> posrecip# X) (s# active X -> s# X, s# mark X -> s# X) (s# active X -> s# X, s# active X -> s# X) (from# active X -> from# X, from# mark X -> from# X) (from# active X -> from# X, from# active X -> from# X) (mark# square X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# square X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# square X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# square X -> mark# X, mark# from X -> mark# X) (mark# square X -> mark# X, mark# from X -> from# mark X) (mark# square X -> mark# X, mark# from X -> active# from mark X) (mark# square X -> mark# X, mark# s X -> mark# X) (mark# square X -> mark# X, mark# s X -> s# mark X) (mark# square X -> mark# X, mark# s X -> active# s mark X) (mark# square X -> mark# X, mark# rnil() -> active# rnil()) (mark# square X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X1) (mark# square X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X2) (mark# square X -> mark# X, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# square X -> mark# X, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# square X -> mark# X, mark# 0() -> active# 0()) (mark# square X -> mark# X, mark# rcons(X1, X2) -> mark# X1) (mark# square X -> mark# X, mark# rcons(X1, X2) -> mark# X2) (mark# square X -> mark# X, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# square X -> mark# X, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# square X -> mark# X, mark# posrecip X -> mark# X) (mark# square X -> mark# X, mark# posrecip X -> active# posrecip mark X) (mark# square X -> mark# X, mark# posrecip X -> posrecip# mark X) (mark# square X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# square X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# square X -> mark# X, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# square X -> mark# X, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# square X -> mark# X, mark# negrecip X -> mark# X) (mark# square X -> mark# X, mark# negrecip X -> active# negrecip mark X) (mark# square X -> mark# X, mark# negrecip X -> negrecip# mark X) (mark# square X -> mark# X, mark# pi X -> mark# X) (mark# square X -> mark# X, mark# pi X -> active# pi mark X) (mark# square X -> mark# X, mark# pi X -> pi# mark X) (mark# square X -> mark# X, mark# plus(X1, X2) -> mark# X1) (mark# square X -> mark# X, mark# plus(X1, X2) -> mark# X2) (mark# square X -> mark# X, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# square X -> mark# X, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# square X -> mark# X, mark# times(X1, X2) -> mark# X1) (mark# square X -> mark# X, mark# times(X1, X2) -> mark# X2) (mark# square X -> mark# X, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# square X -> mark# X, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# square X -> mark# X, mark# square X -> mark# X) (mark# square X -> mark# X, mark# square X -> active# square mark X) (mark# square X -> mark# X, mark# square X -> square# mark X) (mark# negrecip X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# negrecip X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# negrecip X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# negrecip X -> mark# X, mark# from X -> mark# X) (mark# negrecip X -> mark# X, mark# from X -> from# mark X) (mark# negrecip X -> mark# X, mark# from X -> active# from mark X) (mark# negrecip X -> mark# X, mark# s X -> mark# X) (mark# negrecip X -> mark# X, mark# s X -> s# mark X) (mark# negrecip X -> mark# X, mark# s X -> active# s mark X) (mark# negrecip X -> mark# X, mark# rnil() -> active# rnil()) (mark# negrecip X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X1) (mark# negrecip X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X2) (mark# negrecip X -> mark# X, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# negrecip X -> mark# X, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# negrecip X -> mark# X, mark# 0() -> active# 0()) (mark# negrecip X -> mark# X, mark# rcons(X1, X2) -> mark# X1) (mark# negrecip X -> mark# X, mark# rcons(X1, X2) -> mark# X2) (mark# negrecip X -> mark# X, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# negrecip X -> mark# X, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# negrecip X -> mark# X, mark# posrecip X -> mark# X) (mark# negrecip X -> mark# X, mark# posrecip X -> active# posrecip mark X) (mark# negrecip X -> mark# X, mark# posrecip X -> posrecip# mark X) (mark# negrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# negrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# negrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# negrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# negrecip X -> mark# X, mark# negrecip X -> mark# X) (mark# negrecip X -> mark# X, mark# negrecip X -> active# negrecip mark X) (mark# negrecip X -> mark# X, mark# negrecip X -> negrecip# mark X) (mark# negrecip X -> mark# X, mark# pi X -> mark# X) (mark# negrecip X -> mark# X, mark# pi X -> active# pi mark X) (mark# negrecip X -> mark# X, mark# pi X -> pi# mark X) (mark# negrecip X -> mark# X, mark# plus(X1, X2) -> mark# X1) (mark# negrecip X -> mark# X, mark# plus(X1, X2) -> mark# X2) (mark# negrecip X -> mark# X, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# negrecip X -> mark# X, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# negrecip X -> mark# X, mark# times(X1, X2) -> mark# X1) (mark# negrecip X -> mark# X, mark# times(X1, X2) -> mark# X2) (mark# negrecip X -> mark# X, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# negrecip X -> mark# X, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# negrecip X -> mark# X, mark# square X -> mark# X) (mark# negrecip X -> mark# X, mark# square X -> active# square mark X) (mark# negrecip X -> mark# X, mark# square X -> square# mark X) (mark# s X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# s X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# s X -> mark# X, mark# from X -> mark# X) (mark# s X -> mark# X, mark# from X -> from# mark X) (mark# s X -> mark# X, mark# from X -> active# from mark X) (mark# s X -> mark# X, mark# s X -> mark# X) (mark# s X -> mark# X, mark# s X -> s# mark X) (mark# s X -> mark# X, mark# s X -> active# s mark X) (mark# s X -> mark# X, mark# rnil() -> active# rnil()) (mark# s X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (mark# s X -> mark# X, mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (mark# s X -> mark# X, mark# 0() -> active# 0()) (mark# s X -> mark# X, mark# rcons(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# rcons(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (mark# s X -> mark# X, mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (mark# s X -> mark# X, mark# posrecip X -> mark# X) (mark# s X -> mark# X, mark# posrecip X -> active# posrecip mark X) (mark# s X -> mark# X, mark# posrecip X -> posrecip# mark X) (mark# s X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (mark# s X -> mark# X, mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (mark# s X -> mark# X, mark# negrecip X -> mark# X) (mark# s X -> mark# X, mark# negrecip X -> active# negrecip mark X) (mark# s X -> mark# X, mark# negrecip X -> negrecip# mark X) (mark# s X -> mark# X, mark# pi X -> mark# X) (mark# s X -> mark# X, mark# pi X -> active# pi mark X) (mark# s X -> mark# X, mark# pi X -> pi# mark X) (mark# s X -> mark# X, mark# plus(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# plus(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# s X -> mark# X, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# s X -> mark# X, mark# times(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# times(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# times(X1, X2) -> active# times(mark X1, mark X2)) (mark# s X -> mark# X, mark# times(X1, X2) -> times#(mark X1, mark X2)) (mark# s X -> mark# X, mark# square X -> mark# X) (mark# s X -> mark# X, mark# square X -> active# square mark X) (mark# s X -> mark# X, mark# square X -> square# mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# cons(X1, X2) -> mark# X1) (active# pi X -> mark# 2ndspos(X, from 0()), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# from X -> mark# X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# from X -> from# mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# from X -> active# from mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# s X -> mark# X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# s X -> s# mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# s X -> active# s mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# rnil() -> active# rnil()) (active# pi X -> mark# 2ndspos(X, from 0()), mark# 2ndspos(X1, X2) -> mark# X1) (active# pi X -> mark# 2ndspos(X, from 0()), mark# 2ndspos(X1, X2) -> mark# X2) (active# pi X -> mark# 2ndspos(X, from 0()), mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# 2ndspos(X1, X2) -> 2ndspos#(mark X1, mark X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# 0() -> active# 0()) (active# pi X -> mark# 2ndspos(X, from 0()), mark# rcons(X1, X2) -> mark# X1) (active# pi X -> mark# 2ndspos(X, from 0()), mark# rcons(X1, X2) -> mark# X2) (active# pi X -> mark# 2ndspos(X, from 0()), mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# rcons(X1, X2) -> rcons#(mark X1, mark X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# posrecip X -> mark# X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# posrecip X -> active# posrecip mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# posrecip X -> posrecip# mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# 2ndsneg(X1, X2) -> mark# X1) (active# pi X -> mark# 2ndspos(X, from 0()), mark# 2ndsneg(X1, X2) -> mark# X2) (active# pi X -> mark# 2ndspos(X, from 0()), mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# 2ndsneg(X1, X2) -> 2ndsneg#(mark X1, mark X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# negrecip X -> mark# X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# negrecip X -> active# negrecip mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# negrecip X -> negrecip# mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# pi X -> mark# X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# pi X -> active# pi mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# pi X -> pi# mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# plus(X1, X2) -> mark# X1) (active# pi X -> mark# 2ndspos(X, from 0()), mark# plus(X1, X2) -> mark# X2) (active# pi X -> mark# 2ndspos(X, from 0()), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# times(X1, X2) -> mark# X1) (active# pi X -> mark# 2ndspos(X, from 0()), mark# times(X1, X2) -> mark# X2) (active# pi X -> mark# 2ndspos(X, from 0()), mark# times(X1, X2) -> active# times(mark X1, mark X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# times(X1, X2) -> times#(mark X1, mark X2)) (active# pi X -> mark# 2ndspos(X, from 0()), mark# square X -> mark# X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# square X -> active# square mark X) (active# pi X -> mark# 2ndspos(X, from 0()), mark# square X -> square# mark X) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# from X -> mark# cons(X, from s X)) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# from X -> cons#(X, from s X)) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# from X -> from# s X) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# from X -> s# X) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# 2ndspos(0(), Z) -> mark# rnil()) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# pi X -> mark# 2ndspos(X, from 0())) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# pi X -> from# 0()) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# pi X -> 2ndspos#(X, from 0())) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# plus(s X, Y) -> s# plus(X, Y)) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# plus(s X, Y) -> plus#(X, Y)) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# plus(0(), Y) -> mark# Y) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# times(s X, Y) -> times#(X, Y)) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# times(0(), Y) -> mark# 0()) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# square X -> mark# times(X, X)) (mark# times(X1, X2) -> active# times(mark X1, mark X2), active# square X -> times#(X, X)) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# from X -> mark# cons(X, from s X)) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# from X -> cons#(X, from s X)) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# from X -> from# s X) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# from X -> s# X) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# 2ndspos(0(), Z) -> mark# rnil()) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# pi X -> mark# 2ndspos(X, from 0())) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# pi X -> from# 0()) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# pi X -> 2ndspos#(X, from 0())) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# plus(s X, Y) -> s# plus(X, Y)) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# plus(s X, Y) -> plus#(X, Y)) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# plus(0(), Y) -> mark# Y) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# times(s X, Y) -> times#(X, Y)) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# times(0(), Y) -> mark# 0()) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# square X -> mark# times(X, X)) (mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), active# square X -> times#(X, X)) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# from X -> mark# cons(X, from s X)) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# from X -> cons#(X, from s X)) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# from X -> from# s X) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# from X -> s# X) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z))) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> rcons#(posrecip Y, 2ndsneg(N, Z))) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> posrecip# Y) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z)) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# 2ndspos(0(), Z) -> mark# rnil()) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z))) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> 2ndspos#(N, Z)) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> rcons#(negrecip Y, 2ndspos(N, Z))) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> negrecip# Y) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# 2ndsneg(0(), Z) -> mark# rnil()) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# pi X -> mark# 2ndspos(X, from 0())) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# pi X -> from# 0()) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# pi X -> 2ndspos#(X, from 0())) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# plus(s X, Y) -> mark# s plus(X, Y)) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# plus(s X, Y) -> s# plus(X, Y)) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# plus(s X, Y) -> plus#(X, Y)) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# plus(0(), Y) -> mark# Y) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# times(s X, Y) -> mark# plus(Y, times(X, Y))) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# times(s X, Y) -> plus#(Y, times(X, Y))) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# times(s X, Y) -> times#(X, Y)) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# times(0(), Y) -> mark# 0()) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# square X -> mark# times(X, X)) (mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), active# square X -> times#(X, X)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z), 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z), 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2)) (active# 2ndspos(s N, cons(X, cons(Y, Z))) -> 2ndsneg#(N, Z), 2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2)) } STATUS: arrows: 0.857067 SCCS (13): Scc: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# from X -> mark# X, mark# from X -> active# from mark X, mark# s X -> mark# X, mark# s X -> active# s mark X, mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), mark# posrecip X -> mark# X, mark# posrecip X -> active# posrecip mark X, mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), mark# negrecip X -> mark# X, mark# negrecip X -> active# negrecip mark X, mark# pi X -> mark# X, mark# pi X -> active# pi mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2), mark# square X -> mark# X, mark# square X -> active# square mark X, active# from X -> mark# cons(X, from s X), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), active# pi X -> mark# 2ndspos(X, from 0()), active# plus(s X, Y) -> mark# s plus(X, Y), active# plus(0(), Y) -> mark# Y, active# times(s X, Y) -> mark# plus(Y, times(X, Y)), active# square X -> mark# times(X, X)} Scc: { square# mark X -> square# X, square# active X -> square# X} Scc: { pi# mark X -> pi# X, pi# active X -> pi# X} Scc: { times#(X1, mark X2) -> times#(X1, X2), times#(X1, active X2) -> times#(X1, X2), times#(mark X1, X2) -> times#(X1, X2), times#(active X1, X2) -> times#(X1, X2)} Scc: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)} Scc: { negrecip# mark X -> negrecip# X, negrecip# active X -> negrecip# X} Scc: { posrecip# mark X -> posrecip# X, posrecip# active X -> posrecip# X} Scc: { rcons#(X1, mark X2) -> rcons#(X1, X2), rcons#(X1, active X2) -> rcons#(X1, X2), rcons#(mark X1, X2) -> rcons#(X1, X2), rcons#(active X1, X2) -> rcons#(X1, X2)} Scc: { s# mark X -> s# X, s# active X -> s# X} Scc: { from# mark X -> from# X, from# active X -> from# X} Scc: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)} Scc: { 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2), 2ndspos#(active X1, X2) -> 2ndspos#(X1, X2)} Scc: { 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2), 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2), 2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2)} SCC (37): Strict: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# from X -> mark# X, mark# from X -> active# from mark X, mark# s X -> mark# X, mark# s X -> active# s mark X, mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), mark# posrecip X -> mark# X, mark# posrecip X -> active# posrecip mark X, mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), mark# negrecip X -> mark# X, mark# negrecip X -> active# negrecip mark X, mark# pi X -> mark# X, mark# pi X -> active# pi mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2), mark# square X -> mark# X, mark# square X -> active# square mark X, active# from X -> mark# cons(X, from s X), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), active# pi X -> mark# 2ndspos(X, from 0()), active# plus(s X, Y) -> mark# s plus(X, Y), active# plus(0(), Y) -> mark# Y, active# times(s X, Y) -> mark# plus(Y, times(X, Y)), active# square X -> mark# times(X, X)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 1, [2ndspos](x0, x1) = 1, [rcons](x0, x1) = 1, [2ndsneg](x0, x1) = 1, [plus](x0, x1) = 1, [times](x0, x1) = 1, [mark](x0) = 0, [from](x0) = 1, [s](x0) = 1, [active](x0) = 0, [posrecip](x0) = 1, [negrecip](x0) = 0, [pi](x0) = 1, [square](x0) = 1, [rnil] = 0, [0] = 0, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# square X -> mark# times(X, X) 1 + 0X >= 1 + 0X active# times(s X, Y) -> mark# plus(Y, times(X, Y)) 1 + 0X + 0Y >= 1 + 0X + 0Y active# plus(0(), Y) -> mark# Y 1 + 0Y >= 1 + 0Y active# plus(s X, Y) -> mark# s plus(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active# pi X -> mark# 2ndspos(X, from 0()) 1 + 0X >= 1 + 0X active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 1 + 0Z + 0Y + 0N active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 1 + 0Z + 0Y + 0N active# from X -> mark# cons(X, from s X) 1 + 0X >= 1 + 0X mark# square X -> active# square mark X 1 + 0X >= 1 + 0X mark# square X -> mark# X 1 + 0X >= 1 + 0X mark# times(X1, X2) -> active# times(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# times(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# times(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# plus(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# plus(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# pi X -> active# pi mark X 1 + 0X >= 1 + 0X mark# pi X -> mark# X 1 + 0X >= 1 + 0X mark# negrecip X -> active# negrecip mark X 1 + 0X >= 0 + 0X mark# negrecip X -> mark# X 1 + 0X >= 1 + 0X mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# 2ndsneg(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# 2ndsneg(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# posrecip X -> active# posrecip mark X 1 + 0X >= 1 + 0X mark# posrecip X -> mark# X 1 + 0X >= 1 + 0X mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# rcons(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# rcons(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# 2ndspos(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# 2ndspos(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# s X -> active# s mark X 1 + 0X >= 1 + 0X mark# s X -> mark# X 1 + 0X >= 1 + 0X mark# from X -> active# from mark X 1 + 0X >= 1 + 0X mark# from X -> mark# X 1 + 0X >= 1 + 0X mark# cons(X1, X2) -> active# cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# cons(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 Weak: square active X -> square X 1 + 0X >= 1 + 0X square mark X -> square X 1 + 0X >= 1 + 0X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 pi active X -> pi X 1 + 0X >= 1 + 0X pi mark X -> pi X 1 + 0X >= 1 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 posrecip active X -> posrecip X 1 + 0X >= 1 + 0X posrecip mark X -> posrecip X 1 + 0X >= 1 + 0X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active square X -> mark times(X, X) 0 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 0 + 0Y >= 0 active times(s X, Y) -> mark plus(Y, times(X, Y)) 0 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 0 + 0Y >= 0 + 0Y active plus(s X, Y) -> mark s plus(X, Y) 0 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 0 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 0 + 0Z >= 0 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 0 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 0 + 0Z >= 0 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 0 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 0 + 0X >= 0 + 0X s active X -> s X 1 + 0X >= 1 + 0X s mark X -> s X 1 + 0X >= 1 + 0X from active X -> from X 1 + 0X >= 1 + 0X from mark X -> from X 1 + 0X >= 1 + 0X cons(active X1, X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 0 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 0 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 0 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 0 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark 0() -> active 0() 0 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark rnil() -> active rnil() 0 >= 0 mark s X -> active s mark X 0 + 0X >= 0 + 0X mark from X -> active from mark X 0 + 0X >= 0 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 SCCS (1): Scc: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# from X -> mark# X, mark# from X -> active# from mark X, mark# s X -> mark# X, mark# s X -> active# s mark X, mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), mark# posrecip X -> mark# X, mark# posrecip X -> active# posrecip mark X, mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), mark# negrecip X -> mark# X, mark# pi X -> mark# X, mark# pi X -> active# pi mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2), mark# square X -> mark# X, mark# square X -> active# square mark X, active# from X -> mark# cons(X, from s X), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), active# pi X -> mark# 2ndspos(X, from 0()), active# plus(s X, Y) -> mark# s plus(X, Y), active# plus(0(), Y) -> mark# Y, active# times(s X, Y) -> mark# plus(Y, times(X, Y)), active# square X -> mark# times(X, X)} SCC (36): Strict: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# from X -> mark# X, mark# from X -> active# from mark X, mark# s X -> mark# X, mark# s X -> active# s mark X, mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), mark# posrecip X -> mark# X, mark# posrecip X -> active# posrecip mark X, mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), mark# negrecip X -> mark# X, mark# pi X -> mark# X, mark# pi X -> active# pi mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2), mark# square X -> mark# X, mark# square X -> active# square mark X, active# from X -> mark# cons(X, from s X), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), active# pi X -> mark# 2ndspos(X, from 0()), active# plus(s X, Y) -> mark# s plus(X, Y), active# plus(0(), Y) -> mark# Y, active# times(s X, Y) -> mark# plus(Y, times(X, Y)), active# square X -> mark# times(X, X)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 1, [rcons](x0, x1) = 1, [2ndsneg](x0, x1) = 1, [plus](x0, x1) = 1, [times](x0, x1) = 1, [mark](x0) = 0, [from](x0) = 1, [s](x0) = 1, [active](x0) = 0, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 1, [square](x0) = 1, [rnil] = 0, [0] = 0, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# square X -> mark# times(X, X) 1 + 0X >= 1 + 0X active# times(s X, Y) -> mark# plus(Y, times(X, Y)) 1 + 0X + 0Y >= 1 + 0X + 0Y active# plus(0(), Y) -> mark# Y 1 + 0Y >= 1 + 0Y active# plus(s X, Y) -> mark# s plus(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active# pi X -> mark# 2ndspos(X, from 0()) 1 + 0X >= 1 + 0X active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 1 + 0Z + 0Y + 0N active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 1 + 0Z + 0Y + 0N active# from X -> mark# cons(X, from s X) 1 + 0X >= 1 + 0X mark# square X -> active# square mark X 1 + 0X >= 1 + 0X mark# square X -> mark# X 1 + 0X >= 1 + 0X mark# times(X1, X2) -> active# times(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# times(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# times(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# plus(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# plus(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# pi X -> active# pi mark X 1 + 0X >= 1 + 0X mark# pi X -> mark# X 1 + 0X >= 1 + 0X mark# negrecip X -> mark# X 1 + 0X >= 1 + 0X mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# 2ndsneg(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# 2ndsneg(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# posrecip X -> active# posrecip mark X 1 + 0X >= 0 + 0X mark# posrecip X -> mark# X 1 + 0X >= 1 + 0X mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# rcons(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# rcons(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# 2ndspos(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# 2ndspos(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# s X -> active# s mark X 1 + 0X >= 1 + 0X mark# s X -> mark# X 1 + 0X >= 1 + 0X mark# from X -> active# from mark X 1 + 0X >= 1 + 0X mark# from X -> mark# X 1 + 0X >= 1 + 0X mark# cons(X1, X2) -> active# cons(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# cons(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 Weak: square active X -> square X 1 + 0X >= 1 + 0X square mark X -> square X 1 + 0X >= 1 + 0X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 pi active X -> pi X 1 + 0X >= 1 + 0X pi mark X -> pi X 1 + 0X >= 1 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active square X -> mark times(X, X) 0 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 0 + 0Y >= 0 active times(s X, Y) -> mark plus(Y, times(X, Y)) 0 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 0 + 0Y >= 0 + 0Y active plus(s X, Y) -> mark s plus(X, Y) 0 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 0 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 0 + 0Z >= 0 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 0 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 0 + 0Z >= 0 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 0 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 0 + 0X >= 0 + 0X s active X -> s X 1 + 0X >= 1 + 0X s mark X -> s X 1 + 0X >= 1 + 0X from active X -> from X 1 + 0X >= 1 + 0X from mark X -> from X 1 + 0X >= 1 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 0 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 0 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 0 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 0 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark 0() -> active 0() 0 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark rnil() -> active rnil() 0 >= 0 mark s X -> active s mark X 0 + 0X >= 0 + 0X mark from X -> active from mark X 0 + 0X >= 0 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 SCCS (1): Scc: { mark# cons(X1, X2) -> mark# X1, mark# from X -> mark# X, mark# from X -> active# from mark X, mark# s X -> mark# X, mark# s X -> active# s mark X, mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), mark# posrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), mark# negrecip X -> mark# X, mark# pi X -> mark# X, mark# pi X -> active# pi mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2), mark# square X -> mark# X, mark# square X -> active# square mark X, active# from X -> mark# cons(X, from s X), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), active# pi X -> mark# 2ndspos(X, from 0()), active# plus(s X, Y) -> mark# s plus(X, Y), active# plus(0(), Y) -> mark# Y, active# times(s X, Y) -> mark# plus(Y, times(X, Y)), active# square X -> mark# times(X, X)} SCC (34): Strict: { mark# cons(X1, X2) -> mark# X1, mark# from X -> mark# X, mark# from X -> active# from mark X, mark# s X -> mark# X, mark# s X -> active# s mark X, mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), mark# posrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), mark# negrecip X -> mark# X, mark# pi X -> mark# X, mark# pi X -> active# pi mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2), mark# square X -> mark# X, mark# square X -> active# square mark X, active# from X -> mark# cons(X, from s X), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), active# pi X -> mark# 2ndspos(X, from 0()), active# plus(s X, Y) -> mark# s plus(X, Y), active# plus(0(), Y) -> mark# Y, active# times(s X, Y) -> mark# plus(Y, times(X, Y)), active# square X -> mark# times(X, X)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = 1, [rcons](x0, x1) = 1, [2ndsneg](x0, x1) = 1, [plus](x0, x1) = 1, [times](x0, x1) = 1, [mark](x0) = 0, [from](x0) = 1, [s](x0) = 0, [active](x0) = 1, [posrecip](x0) = x0 + 1, [negrecip](x0) = 0, [pi](x0) = 1, [square](x0) = 1, [rnil] = 0, [0] = 0, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# square X -> mark# times(X, X) 1 + 0X >= 1 + 0X active# times(s X, Y) -> mark# plus(Y, times(X, Y)) 1 + 0X + 0Y >= 1 + 0X + 0Y active# plus(0(), Y) -> mark# Y 1 + 0Y >= 1 + 0Y active# plus(s X, Y) -> mark# s plus(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active# pi X -> mark# 2ndspos(X, from 0()) 1 + 0X >= 1 + 0X active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 1 + 0Z + 0Y + 0N active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 1 + 0Z + 0Y + 0N active# from X -> mark# cons(X, from s X) 1 + 0X >= 1 + 0X mark# square X -> active# square mark X 1 + 0X >= 1 + 0X mark# square X -> mark# X 1 + 0X >= 1 + 0X mark# times(X1, X2) -> active# times(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# times(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# times(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# plus(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# plus(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# pi X -> active# pi mark X 1 + 0X >= 1 + 0X mark# pi X -> mark# X 1 + 0X >= 1 + 0X mark# negrecip X -> mark# X 1 + 0X >= 1 + 0X mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# 2ndsneg(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# 2ndsneg(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# posrecip X -> mark# X 1 + 0X >= 1 + 0X mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# rcons(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# rcons(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# 2ndspos(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# 2ndspos(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# s X -> active# s mark X 1 + 0X >= 0 + 0X mark# s X -> mark# X 1 + 0X >= 1 + 0X mark# from X -> active# from mark X 1 + 0X >= 1 + 0X mark# from X -> mark# X 1 + 0X >= 1 + 0X mark# cons(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 Weak: square active X -> square X 1 + 0X >= 1 + 0X square mark X -> square X 1 + 0X >= 1 + 0X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 pi active X -> pi X 1 + 0X >= 1 + 0X pi mark X -> pi X 1 + 0X >= 1 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 posrecip active X -> posrecip X 2 + 0X >= 1 + 1X posrecip mark X -> posrecip X 1 + 0X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 0 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 0Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 0 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 0 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 1 + 0X >= 1 + 0X from mark X -> from X 1 + 0X >= 1 + 0X cons(active X1, X2) -> cons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 0 >= 1 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 0 >= 1 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { mark# cons(X1, X2) -> mark# X1, mark# from X -> mark# X, mark# from X -> active# from mark X, mark# s X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), mark# posrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), mark# negrecip X -> mark# X, mark# pi X -> mark# X, mark# pi X -> active# pi mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2), mark# square X -> mark# X, mark# square X -> active# square mark X, active# from X -> mark# cons(X, from s X), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), active# pi X -> mark# 2ndspos(X, from 0()), active# plus(s X, Y) -> mark# s plus(X, Y), active# plus(0(), Y) -> mark# Y, active# times(s X, Y) -> mark# plus(Y, times(X, Y)), active# square X -> mark# times(X, X)} SCC (33): Strict: { mark# cons(X1, X2) -> mark# X1, mark# from X -> mark# X, mark# from X -> active# from mark X, mark# s X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2, mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2), mark# posrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), mark# negrecip X -> mark# X, mark# pi X -> mark# X, mark# pi X -> active# pi mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2), mark# square X -> mark# X, mark# square X -> active# square mark X, active# from X -> mark# cons(X, from s X), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), active# pi X -> mark# 2ndspos(X, from 0()), active# plus(s X, Y) -> mark# s plus(X, Y), active# plus(0(), Y) -> mark# Y, active# times(s X, Y) -> mark# plus(Y, times(X, Y)), active# square X -> mark# times(X, X)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + x1 + 1, [2ndspos](x0, x1) = 1, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 1, [plus](x0, x1) = 1, [times](x0, x1) = 1, [mark](x0) = x0 + 1, [from](x0) = 1, [s](x0) = x0 + 1, [active](x0) = 0, [posrecip](x0) = 0, [negrecip](x0) = x0 + 1, [pi](x0) = 1, [square](x0) = 1, [rnil] = 0, [0] = 1, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# square X -> mark# times(X, X) 1 + 0X >= 1 + 0X active# times(s X, Y) -> mark# plus(Y, times(X, Y)) 1 + 0X + 0Y >= 1 + 0X + 0Y active# plus(0(), Y) -> mark# Y 1 + 0Y >= 1 + 0Y active# plus(s X, Y) -> mark# s plus(X, Y) 1 + 0X + 0Y >= 1 + 0X + 0Y active# pi X -> mark# 2ndspos(X, from 0()) 1 + 0X >= 1 + 0X active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 1 + 0Z + 0Y + 0N active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 1 + 0Z + 0Y + 0N active# from X -> mark# cons(X, from s X) 1 + 0X >= 1 + 0X mark# square X -> active# square mark X 1 + 0X >= 1 + 0X mark# square X -> mark# X 1 + 0X >= 1 + 0X mark# times(X1, X2) -> active# times(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# times(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# times(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# plus(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# plus(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# pi X -> active# pi mark X 1 + 0X >= 1 + 0X mark# pi X -> mark# X 1 + 0X >= 1 + 0X mark# negrecip X -> mark# X 1 + 0X >= 1 + 0X mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# 2ndsneg(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# 2ndsneg(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# posrecip X -> mark# X 1 + 0X >= 1 + 0X mark# rcons(X1, X2) -> active# rcons(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# rcons(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# rcons(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# 2ndspos(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# 2ndspos(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# s X -> mark# X 1 + 0X >= 1 + 0X mark# from X -> active# from mark X 1 + 0X >= 1 + 0X mark# from X -> mark# X 1 + 0X >= 1 + 0X mark# cons(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 Weak: square active X -> square X 1 + 0X >= 1 + 0X square mark X -> square X 1 + 0X >= 1 + 0X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 pi active X -> pi X 1 + 0X >= 1 + 0X pi mark X -> pi X 1 + 0X >= 1 + 0X negrecip active X -> negrecip X 1 + 0X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active square X -> mark times(X, X) 0 + 0X >= 2 + 0X active times(0(), Y) -> mark 0() 0 + 0Y >= 2 active times(s X, Y) -> mark plus(Y, times(X, Y)) 0 + 0X + 0Y >= 2 + 0X + 0Y active plus(0(), Y) -> mark Y 0 + 0Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 0 + 0X + 0Y >= 3 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 0 + 0X >= 2 + 0X active 2ndsneg(0(), Z) -> mark rnil() 0 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 0 + 0X + 0Z + 0Y + 0N >= 1 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 0 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 0 + 0X + 0Z + 0Y + 0N >= 1 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 0 + 0X >= 3 + 1X s active X -> s X 1 + 0X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 0X >= 1 + 0X from mark X -> from X 1 + 0X >= 1 + 0X cons(active X1, X2) -> cons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark square X -> active square mark X 2 + 0X >= 0 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark pi X -> active pi mark X 2 + 0X >= 0 + 0X mark negrecip X -> active negrecip mark X 2 + 1X >= 0 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 1 + 0X >= 0 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark 0() -> active 0() 2 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 0 + 0X mark from X -> active from mark X 2 + 0X >= 0 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 0 + 0X1 + 0X2 SCCS (1): Scc: { mark# cons(X1, X2) -> mark# X1, mark# from X -> mark# X, mark# from X -> active# from mark X, mark# s X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2, mark# posrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), mark# negrecip X -> mark# X, mark# pi X -> mark# X, mark# pi X -> active# pi mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2), mark# square X -> mark# X, mark# square X -> active# square mark X, active# from X -> mark# cons(X, from s X), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), active# pi X -> mark# 2ndspos(X, from 0()), active# plus(s X, Y) -> mark# s plus(X, Y), active# plus(0(), Y) -> mark# Y, active# times(s X, Y) -> mark# plus(Y, times(X, Y)), active# square X -> mark# times(X, X)} SCC (32): Strict: { mark# cons(X1, X2) -> mark# X1, mark# from X -> mark# X, mark# from X -> active# from mark X, mark# s X -> mark# X, mark# 2ndspos(X1, X2) -> mark# X1, mark# 2ndspos(X1, X2) -> mark# X2, mark# 2ndspos(X1, X2) -> active# 2ndspos(mark X1, mark X2), mark# rcons(X1, X2) -> mark# X1, mark# rcons(X1, X2) -> mark# X2, mark# posrecip X -> mark# X, mark# 2ndsneg(X1, X2) -> mark# X1, mark# 2ndsneg(X1, X2) -> mark# X2, mark# 2ndsneg(X1, X2) -> active# 2ndsneg(mark X1, mark X2), mark# negrecip X -> mark# X, mark# pi X -> mark# X, mark# pi X -> active# pi mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# times(X1, X2) -> mark# X1, mark# times(X1, X2) -> mark# X2, mark# times(X1, X2) -> active# times(mark X1, mark X2), mark# square X -> mark# X, mark# square X -> active# square mark X, active# from X -> mark# cons(X, from s X), active# 2ndspos(s N, cons(X, cons(Y, Z))) -> mark# rcons(posrecip Y, 2ndsneg(N, Z)), active# 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark# rcons(negrecip Y, 2ndspos(N, Z)), active# pi X -> mark# 2ndspos(X, from 0()), active# plus(s X, Y) -> mark# s plus(X, Y), active# plus(0(), Y) -> mark# Y, active# times(s X, Y) -> mark# plus(Y, times(X, Y)), active# square X -> mark# times(X, X)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} Fail SCC (2): Strict: { square# mark X -> square# X, square# active X -> square# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [square#](x0) = x0 Strict: square# active X -> square# X 1 + 1X >= 0 + 1X square# mark X -> square# X 0 + 1X >= 0 + 1X Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {square# mark X -> square# X} SCC (1): Strict: {square# mark X -> square# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [square#](x0) = x0 Strict: square# mark X -> square# X 1 + 1X >= 0 + 1X Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed SCC (2): Strict: { pi# mark X -> pi# X, pi# active X -> pi# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [pi#](x0) = x0 Strict: pi# active X -> pi# X 1 + 1X >= 0 + 1X pi# mark X -> pi# X 0 + 1X >= 0 + 1X Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {pi# mark X -> pi# X} SCC (1): Strict: {pi# mark X -> pi# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [pi#](x0) = x0 Strict: pi# mark X -> pi# X 1 + 1X >= 0 + 1X Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed SCC (4): Strict: { times#(X1, mark X2) -> times#(X1, X2), times#(X1, active X2) -> times#(X1, X2), times#(mark X1, X2) -> times#(X1, X2), times#(active X1, X2) -> times#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 1, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [times#](x0, x1) = x0 Strict: times#(active X1, X2) -> times#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 times#(mark X1, X2) -> times#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 times#(X1, active X2) -> times#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 times#(X1, mark X2) -> times#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 2 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { times#(X1, mark X2) -> times#(X1, X2), times#(X1, active X2) -> times#(X1, X2), times#(mark X1, X2) -> times#(X1, X2)} SCC (3): Strict: { times#(X1, mark X2) -> times#(X1, X2), times#(X1, active X2) -> times#(X1, X2), times#(mark X1, X2) -> times#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + x1 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = 0, [rnil] = 0, [0] = 0, [times#](x0, x1) = x0 Strict: times#(mark X1, X2) -> times#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 times#(X1, active X2) -> times#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 times#(X1, mark X2) -> times#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 0 + 0X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 4 + 2X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark square X -> active square mark X 1 + 0X >= 0 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { times#(X1, mark X2) -> times#(X1, X2), times#(X1, active X2) -> times#(X1, X2)} SCC (2): Strict: { times#(X1, mark X2) -> times#(X1, X2), times#(X1, active X2) -> times#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [times#](x0, x1) = x0 Strict: times#(X1, active X2) -> times#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 times#(X1, mark X2) -> times#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {times#(X1, mark X2) -> times#(X1, X2)} SCC (1): Strict: {times#(X1, mark X2) -> times#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [times#](x0, x1) = x0 Strict: times#(X1, mark X2) -> times#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed SCC (4): Strict: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 1, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [plus#](x0, x1) = x0 Strict: plus#(active X1, X2) -> plus#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 plus#(mark X1, X2) -> plus#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 plus#(X1, active X2) -> plus#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 plus#(X1, mark X2) -> plus#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 2 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)} SCC (3): Strict: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + x1 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = 0, [rnil] = 0, [0] = 0, [plus#](x0, x1) = x0 Strict: plus#(mark X1, X2) -> plus#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 plus#(X1, active X2) -> plus#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 plus#(X1, mark X2) -> plus#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 0 + 0X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 4 + 2X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark square X -> active square mark X 1 + 0X >= 0 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)} SCC (2): Strict: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [plus#](x0, x1) = x0 Strict: plus#(X1, active X2) -> plus#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 plus#(X1, mark X2) -> plus#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {plus#(X1, mark X2) -> plus#(X1, X2)} SCC (1): Strict: {plus#(X1, mark X2) -> plus#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [plus#](x0, x1) = x0 Strict: plus#(X1, mark X2) -> plus#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed SCC (2): Strict: { negrecip# mark X -> negrecip# X, negrecip# active X -> negrecip# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [negrecip#](x0) = x0 Strict: negrecip# active X -> negrecip# X 1 + 1X >= 0 + 1X negrecip# mark X -> negrecip# X 0 + 1X >= 0 + 1X Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {negrecip# mark X -> negrecip# X} SCC (1): Strict: {negrecip# mark X -> negrecip# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [negrecip#](x0) = x0 Strict: negrecip# mark X -> negrecip# X 1 + 1X >= 0 + 1X Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed SCC (2): Strict: { posrecip# mark X -> posrecip# X, posrecip# active X -> posrecip# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [posrecip#](x0) = x0 Strict: posrecip# active X -> posrecip# X 1 + 1X >= 0 + 1X posrecip# mark X -> posrecip# X 0 + 1X >= 0 + 1X Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {posrecip# mark X -> posrecip# X} SCC (1): Strict: {posrecip# mark X -> posrecip# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [posrecip#](x0) = x0 Strict: posrecip# mark X -> posrecip# X 1 + 1X >= 0 + 1X Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed SCC (4): Strict: { rcons#(X1, mark X2) -> rcons#(X1, X2), rcons#(X1, active X2) -> rcons#(X1, X2), rcons#(mark X1, X2) -> rcons#(X1, X2), rcons#(active X1, X2) -> rcons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 1, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [rcons#](x0, x1) = x0 Strict: rcons#(active X1, X2) -> rcons#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 rcons#(mark X1, X2) -> rcons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 rcons#(X1, active X2) -> rcons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 rcons#(X1, mark X2) -> rcons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 2 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { rcons#(X1, mark X2) -> rcons#(X1, X2), rcons#(X1, active X2) -> rcons#(X1, X2), rcons#(mark X1, X2) -> rcons#(X1, X2)} SCC (3): Strict: { rcons#(X1, mark X2) -> rcons#(X1, X2), rcons#(X1, active X2) -> rcons#(X1, X2), rcons#(mark X1, X2) -> rcons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + x1 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = 0, [rnil] = 0, [0] = 0, [rcons#](x0, x1) = x0 Strict: rcons#(mark X1, X2) -> rcons#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 rcons#(X1, active X2) -> rcons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 rcons#(X1, mark X2) -> rcons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 0 + 0X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 4 + 2X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark square X -> active square mark X 1 + 0X >= 0 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { rcons#(X1, mark X2) -> rcons#(X1, X2), rcons#(X1, active X2) -> rcons#(X1, X2)} SCC (2): Strict: { rcons#(X1, mark X2) -> rcons#(X1, X2), rcons#(X1, active X2) -> rcons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [rcons#](x0, x1) = x0 Strict: rcons#(X1, active X2) -> rcons#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 rcons#(X1, mark X2) -> rcons#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {rcons#(X1, mark X2) -> rcons#(X1, X2)} SCC (1): Strict: {rcons#(X1, mark X2) -> rcons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [rcons#](x0, x1) = x0 Strict: rcons#(X1, mark X2) -> rcons#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed SCC (2): Strict: { s# mark X -> s# X, s# active X -> s# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [s#](x0) = x0 Strict: s# active X -> s# X 1 + 1X >= 0 + 1X s# mark X -> s# X 0 + 1X >= 0 + 1X Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {s# mark X -> s# X} SCC (1): Strict: {s# mark X -> s# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [s#](x0) = x0 Strict: s# mark X -> s# X 1 + 1X >= 0 + 1X Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed SCC (2): Strict: { from# mark X -> from# X, from# active X -> from# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [from#](x0) = x0 Strict: from# active X -> from# X 1 + 1X >= 0 + 1X from# mark X -> from# X 0 + 1X >= 0 + 1X Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {from# mark X -> from# X} SCC (1): Strict: {from# mark X -> from# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [from#](x0) = x0 Strict: from# mark X -> from# X 1 + 1X >= 0 + 1X Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed SCC (4): Strict: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 1, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [cons#](x0, x1) = x0 Strict: cons#(active X1, X2) -> cons#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(mark X1, X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, active X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, mark X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 2 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)} SCC (3): Strict: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + x1 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = 0, [rnil] = 0, [0] = 0, [cons#](x0, x1) = x0 Strict: cons#(mark X1, X2) -> cons#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, active X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, mark X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 0 + 0X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 4 + 2X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark square X -> active square mark X 1 + 0X >= 0 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)} SCC (2): Strict: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [cons#](x0, x1) = x0 Strict: cons#(X1, active X2) -> cons#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 cons#(X1, mark X2) -> cons#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {cons#(X1, mark X2) -> cons#(X1, X2)} SCC (1): Strict: {cons#(X1, mark X2) -> cons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [cons#](x0, x1) = x0 Strict: cons#(X1, mark X2) -> cons#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed SCC (4): Strict: { 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2), 2ndspos#(active X1, X2) -> 2ndspos#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 1, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [2ndspos#](x0, x1) = x0 Strict: 2ndspos#(active X1, X2) -> 2ndspos#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 2 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2)} SCC (3): Strict: { 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2), 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + x1 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = 0, [rnil] = 0, [0] = 0, [2ndspos#](x0, x1) = x0 Strict: 2ndspos#(mark X1, X2) -> 2ndspos#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 0 + 0X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 4 + 2X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark square X -> active square mark X 1 + 0X >= 0 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2)} SCC (2): Strict: { 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2), 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [2ndspos#](x0, x1) = x0 Strict: 2ndspos#(X1, active X2) -> 2ndspos#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2)} SCC (1): Strict: {2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [2ndspos#](x0, x1) = x0 Strict: 2ndspos#(X1, mark X2) -> 2ndspos#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed SCC (4): Strict: { 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2), 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2), 2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 1, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [2ndsneg#](x0, x1) = x0 Strict: 2ndsneg#(active X1, X2) -> 2ndsneg#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 2 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2), 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2)} SCC (3): Strict: { 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2), 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + x1 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = 0, [rnil] = 0, [0] = 0, [2ndsneg#](x0, x1) = x0 Strict: 2ndsneg#(mark X1, X2) -> 2ndsneg#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 0 + 0X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 3 + 1X + 1Z + 1Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 4 + 2X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark square X -> active square mark X 1 + 0X >= 0 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2)} SCC (2): Strict: { 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2), 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = 0, [2ndspos](x0, x1) = 0, [rcons](x0, x1) = 0, [2ndsneg](x0, x1) = 0, [plus](x0, x1) = 0, [times](x0, x1) = 0, [mark](x0) = x0, [from](x0) = 0, [s](x0) = 0, [active](x0) = x0 + 1, [posrecip](x0) = 0, [negrecip](x0) = 0, [pi](x0) = 0, [square](x0) = 0, [rnil] = 1, [0] = 1, [2ndsneg#](x0, x1) = x0 Strict: 2ndsneg#(X1, active X2) -> 2ndsneg#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 0 + 0X >= 0 + 0X square mark X -> square X 0 + 0X >= 0 + 0X times(active X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(mark X1, X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, active X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 times(X1, mark X2) -> times(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 pi active X -> pi X 0 + 0X >= 0 + 0X pi mark X -> pi X 0 + 0X >= 0 + 0X negrecip active X -> negrecip X 0 + 0X >= 0 + 0X negrecip mark X -> negrecip X 0 + 0X >= 0 + 0X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 posrecip active X -> posrecip X 0 + 0X >= 0 + 0X posrecip mark X -> posrecip X 0 + 0X >= 0 + 0X rcons(active X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(mark X1, X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, active X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 rcons(X1, mark X2) -> rcons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active square X -> mark times(X, X) 1 + 0X >= 0 + 0X active times(0(), Y) -> mark 0() 1 + 0Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 0Y >= 0 + 0X + 0Y active plus(0(), Y) -> mark Y 1 + 0Y >= 0 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 0Y >= 0 + 0X + 0Y active pi X -> mark 2ndspos(X, from 0()) 1 + 0X >= 0 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 0Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 1 + 0X + 0Z + 0Y + 0N >= 0 + 0Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X from active X -> from X 0 + 0X >= 0 + 0X from mark X -> from X 0 + 0X >= 0 + 0X cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark square X -> active square mark X 0 + 0X >= 1 + 0X mark times(X1, X2) -> active times(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark pi X -> active pi mark X 0 + 0X >= 1 + 0X mark negrecip X -> active negrecip mark X 0 + 0X >= 1 + 0X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark posrecip X -> active posrecip mark X 0 + 0X >= 1 + 0X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark 0() -> active 0() 1 >= 2 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark rnil() -> active rnil() 1 >= 2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark from X -> active from mark X 0 + 0X >= 1 + 0X mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2)} SCC (1): Strict: {2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark from X -> active from mark X, mark s X -> active s mark X, mark rnil() -> active rnil(), mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2), mark 0() -> active 0(), mark rcons(X1, X2) -> active rcons(mark X1, mark X2), mark posrecip X -> active posrecip mark X, mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2), mark negrecip X -> active negrecip mark X, mark pi X -> active pi mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark times(X1, X2) -> active times(mark X1, mark X2), mark square X -> active square mark X, cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), from mark X -> from X, from active X -> from X, s mark X -> s X, s active X -> s X, active from X -> mark cons(X, from s X), active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)), active 2ndspos(0(), Z) -> mark rnil(), active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)), active 2ndsneg(0(), Z) -> mark rnil(), active pi X -> mark 2ndspos(X, from 0()), active plus(s X, Y) -> mark s plus(X, Y), active plus(0(), Y) -> mark Y, active times(s X, Y) -> mark plus(Y, times(X, Y)), active times(0(), Y) -> mark 0(), active square X -> mark times(X, X), 2ndspos(X1, mark X2) -> 2ndspos(X1, X2), 2ndspos(X1, active X2) -> 2ndspos(X1, X2), 2ndspos(mark X1, X2) -> 2ndspos(X1, X2), 2ndspos(active X1, X2) -> 2ndspos(X1, X2), rcons(X1, mark X2) -> rcons(X1, X2), rcons(X1, active X2) -> rcons(X1, X2), rcons(mark X1, X2) -> rcons(X1, X2), rcons(active X1, X2) -> rcons(X1, X2), posrecip mark X -> posrecip X, posrecip active X -> posrecip X, 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2), 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2), 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2), 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2), negrecip mark X -> negrecip X, negrecip active X -> negrecip X, pi mark X -> pi X, pi active X -> pi X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), times(X1, mark X2) -> times(X1, X2), times(X1, active X2) -> times(X1, X2), times(mark X1, X2) -> times(X1, X2), times(active X1, X2) -> times(X1, X2), square mark X -> square X, square active X -> square X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cons](x0, x1) = x0 + 1, [2ndspos](x0, x1) = x0 + 1, [rcons](x0, x1) = x0 + 1, [2ndsneg](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [times](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [from](x0) = x0 + 1, [s](x0) = x0 + 1, [active](x0) = x0, [posrecip](x0) = x0 + 1, [negrecip](x0) = x0 + 1, [pi](x0) = x0 + 1, [square](x0) = x0 + 1, [rnil] = 0, [0] = 0, [2ndsneg#](x0, x1) = x0 Strict: 2ndsneg#(X1, mark X2) -> 2ndsneg#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: square active X -> square X 1 + 1X >= 1 + 1X square mark X -> square X 2 + 1X >= 1 + 1X times(active X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(mark X1, X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, active X2) -> times(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 times(X1, mark X2) -> times(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 pi active X -> pi X 1 + 1X >= 1 + 1X pi mark X -> pi X 2 + 1X >= 1 + 1X negrecip active X -> negrecip X 1 + 1X >= 1 + 1X negrecip mark X -> negrecip X 2 + 1X >= 1 + 1X 2ndsneg(active X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(mark X1, X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, active X2) -> 2ndsneg(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndsneg(X1, mark X2) -> 2ndsneg(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 posrecip active X -> posrecip X 1 + 1X >= 1 + 1X posrecip mark X -> posrecip X 2 + 1X >= 1 + 1X rcons(active X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(mark X1, X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, active X2) -> rcons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 rcons(X1, mark X2) -> rcons(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(active X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(mark X1, X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, active X2) -> 2ndspos(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 2ndspos(X1, mark X2) -> 2ndspos(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 active square X -> mark times(X, X) 1 + 1X >= 2 + 1X active times(0(), Y) -> mark 0() 1 + 1Y >= 1 active times(s X, Y) -> mark plus(Y, times(X, Y)) 1 + 0X + 1Y >= 3 + 0X + 1Y active plus(0(), Y) -> mark Y 1 + 1Y >= 1 + 1Y active plus(s X, Y) -> mark s plus(X, Y) 1 + 0X + 1Y >= 3 + 0X + 1Y active pi X -> mark 2ndspos(X, from 0()) 1 + 1X >= 3 + 0X active 2ndsneg(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndsneg(s N, cons(X, cons(Y, Z))) -> mark rcons(negrecip Y, 2ndspos(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active 2ndspos(0(), Z) -> mark rnil() 1 + 1Z >= 1 active 2ndspos(s N, cons(X, cons(Y, Z))) -> mark rcons(posrecip Y, 2ndsneg(N, Z)) 2 + 1X + 0Z + 0Y + 0N >= 3 + 1Z + 0Y + 0N active from X -> mark cons(X, from s X) 1 + 1X >= 2 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X from active X -> from X 1 + 1X >= 1 + 1X from mark X -> from X 2 + 1X >= 1 + 1X cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark square X -> active square mark X 2 + 1X >= 2 + 1X mark times(X1, X2) -> active times(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark pi X -> active pi mark X 2 + 1X >= 2 + 1X mark negrecip X -> active negrecip mark X 2 + 1X >= 2 + 1X mark 2ndsneg(X1, X2) -> active 2ndsneg(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark posrecip X -> active posrecip mark X 2 + 1X >= 2 + 1X mark rcons(X1, X2) -> active rcons(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark 0() -> active 0() 1 >= 0 mark 2ndspos(X1, X2) -> active 2ndspos(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark rnil() -> active rnil() 1 >= 0 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark from X -> active from mark X 2 + 1X >= 2 + 1X mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 Qed