(GOAL COMPLEXITY)
(STARTTERM CONSTRUCTOR-BASED)
(STRATEGY INNERMOST)
(STRATEGY
    INNERMOST)

(VAR
    x y)
(DATATYPES
    A = µX.< 1, 0, s(X), zero, true, false >)
(SIGNATURES
    times :: [A x A] -> A
    plus :: [A x A] -> A
    id :: [A] -> A
    if :: [A x A x A] -> A
    not :: [A] -> A
    gt :: [A x A] -> A)
(RULES
    times(x,plus(y,1())) ->
      plus(times(x
                ,plus(y,times(1(),0())))
          ,x)
    times(x,1()) -> x
    times(x,0()) -> 0()
    plus(s(x),s(y)) ->
      s(s(plus(if(gt(x,y),x,y)
              ,if(not(gt(x,y)),id(x),id(y)))))
    plus(s(x),x) -> plus(if(gt(x,x)
                           ,id(x)
                           ,id(x))
                        ,s(x))
    plus(zero(),y) -> y
    plus(id(x),s(y)) -> s(plus(x
                              ,if(gt(s(y),y),y,s(y))))
    id(x) -> x
    if(true(),x,y) -> x
    if(false(),x,y) -> y
    not(x) -> if(x,false(),true())
    gt(s(x),zero()) -> true()
    gt(zero(),y) -> false()
    gt(s(x),s(y)) -> gt(x,y))