YES (VAR X Z Y X1 X2) (RULES from(X) -> cons(X,n__from(n__s(X))) first(0,Z) -> nil first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z))) sel(0,cons(X,Z)) -> X sel(s(X),cons(Y,Z)) -> sel(X,activate(Z)) from(X) -> n__from(X) s(X) -> n__s(X) first(X1,X2) -> n__first(X1,X2) activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(n__first(X1,X2)) -> first(activate(X1),activate(X2)) activate(X) -> X ) Proving termination of rewriting for Ex1_Luc02b_FR: -> Dependency pairs: nF_first(s(X),cons(Y,Z)) -> nF_activate(Z) nF_sel(s(X),cons(Y,Z)) -> nF_sel(X,activate(Z)) nF_sel(s(X),cons(Y,Z)) -> nF_activate(Z) nF_activate(n__from(X)) -> nF_from(activate(X)) nF_activate(n__from(X)) -> nF_activate(X) nF_activate(n__s(X)) -> nF_s(activate(X)) nF_activate(n__s(X)) -> nF_activate(X) nF_activate(n__first(X1,X2)) -> nF_first(activate(X1),activate(X2)) nF_activate(n__first(X1,X2)) -> nF_activate(X1) nF_activate(n__first(X1,X2)) -> nF_activate(X2) -> Proof of termination for Ex1_Luc02b_FR_1_1: -> -> Dependency pairs in cycle: nF_sel(s(X),cons(Y,Z)) -> nF_sel(X,activate(Z)) Termination proved: Cycles verify subterm criterion. -> Proof of termination for Ex1_Luc02b_FR_1_2: -> -> Dependency pairs in cycle: nF_first(s(X),cons(Y,Z)) -> nF_activate(Z) nF_activate(n__first(X1,X2)) -> nF_first(activate(X1),activate(X2)) nF_activate(n__first(X1,X2)) -> nF_activate(X2) nF_activate(n__first(X1,X2)) -> nF_activate(X1) nF_activate(n__s(X)) -> nF_activate(X) nF_activate(n__from(X)) -> nF_activate(X) UsableRules: from(X) -> cons(X,n__from(n__s(X))) first(0,Z) -> nil first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z))) from(X) -> n__from(X) s(X) -> n__s(X) first(X1,X2) -> n__first(X1,X2) activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(n__first(X1,X2)) -> first(activate(X1),activate(X2)) activate(X) -> X Polynomial Interpretation: [from](X) = X + 1 [cons](X1,X2) = X2 [n__from](X) = X + 1 [n__s](X) = X [first](X1,X2) = X1 + X2 [0] = 1 [nil] = 0 [s](X) = X [n__first](X1,X2) = X1 + X2 [activate](X) = X [sel](X1,X2) = 0 [nF_first](X1,X2) = X2 [nF_activate](X) = X TIME: 6.734e-2 -> -> Dependency pairs in cycle: nF_first(s(X),cons(Y,Z)) -> nF_activate(Z) nF_activate(n__first(X1,X2)) -> nF_first(activate(X1),activate(X2)) nF_activate(n__s(X)) -> nF_activate(X) nF_activate(n__first(X1,X2)) -> nF_activate(X1) nF_activate(n__first(X1,X2)) -> nF_activate(X2) UsableRules: from(X) -> cons(X,n__from(n__s(X))) first(0,Z) -> nil first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z))) from(X) -> n__from(X) s(X) -> n__s(X) first(X1,X2) -> n__first(X1,X2) activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(n__first(X1,X2)) -> first(activate(X1),activate(X2)) activate(X) -> X Polynomial Interpretation: [from](X) = 0 [cons](X1,X2) = X2 [n__from](X) = 0 [n__s](X) = X [first](X1,X2) = X1 + X2 + 1 [0] = 1 [nil] = 0 [s](X) = X [n__first](X1,X2) = X1 + X2 + 1 [activate](X) = X [sel](X1,X2) = 0 [nF_first](X1,X2) = X2 [nF_activate](X) = X TIME: 5.7406e-2 -> -> Dependency pairs in cycle: nF_first(s(X),cons(Y,Z)) -> nF_activate(Z) nF_activate(n__first(X1,X2)) -> nF_first(activate(X1),activate(X2)) nF_activate(n__first(X1,X2)) -> nF_activate(X1) nF_activate(n__s(X)) -> nF_activate(X) UsableRules: from(X) -> cons(X,n__from(n__s(X))) first(0,Z) -> nil first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z))) from(X) -> n__from(X) s(X) -> n__s(X) first(X1,X2) -> n__first(X1,X2) activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(n__first(X1,X2)) -> first(activate(X1),activate(X2)) activate(X) -> X Polynomial Interpretation: [from](X) = 0 [cons](X1,X2) = X2 [n__from](X) = 0 [n__s](X) = X + 1 [first](X1,X2) = X1 + X2 [0] = 1 [nil] = 0 [s](X) = X + 1 [n__first](X1,X2) = X1 + X2 [activate](X) = X [sel](X1,X2) = 0 [nF_first](X1,X2) = X2 [nF_activate](X) = X TIME: 5.71e-2 -> -> Dependency pairs in cycle: nF_first(s(X),cons(Y,Z)) -> nF_activate(Z) nF_activate(n__first(X1,X2)) -> nF_first(activate(X1),activate(X2)) nF_activate(n__first(X1,X2)) -> nF_activate(X1) UsableRules: from(X) -> cons(X,n__from(n__s(X))) first(0,Z) -> nil first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z))) from(X) -> n__from(X) s(X) -> n__s(X) first(X1,X2) -> n__first(X1,X2) activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(n__first(X1,X2)) -> first(activate(X1),activate(X2)) activate(X) -> X Polynomial Interpretation: [from](X) = 0 [cons](X1,X2) = X2 [n__from](X) = 0 [n__s](X) = X [first](X1,X2) = X1 + X2 + 1 [0] = 1 [nil] = 0 [s](X) = X [n__first](X1,X2) = X1 + X2 + 1 [activate](X) = X [sel](X1,X2) = 0 [nF_first](X1,X2) = X2 [nF_activate](X) = X TIME: 5.8584e-2 -> -> Dependency pairs in cycle: nF_first(s(X),cons(Y,Z)) -> nF_activate(Z) nF_activate(n__first(X1,X2)) -> nF_first(activate(X1),activate(X2)) UsableRules: from(X) -> cons(X,n__from(n__s(X))) first(0,Z) -> nil first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z))) from(X) -> n__from(X) s(X) -> n__s(X) first(X1,X2) -> n__first(X1,X2) activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(n__first(X1,X2)) -> first(activate(X1),activate(X2)) activate(X) -> X Polynomial Interpretation: [from](X) = 0 [cons](X1,X2) = X2 [n__from](X) = 0 [n__s](X) = X + 1 [first](X1,X2) = X1 + X2 [0] = 0 [nil] = 0 [s](X) = X + 1 [n__first](X1,X2) = X1 + X2 [activate](X) = X [sel](X1,X2) = 0 [nF_first](X1,X2) = X1 + X2 [nF_activate](X) = X + 1 TIME: 6.4614e-2 SETTINGS: Base ordering: Polynomial ordering Proof mode: SCCs in DG + base ordering Upper bound for coeffs: 1 Rationals below 1 for all non-replacing args: No Polynomial interpretation: Linear Coeffs in polynomials: No rationals Delta: automatic Termination was proved succesfully.