Time: 5.199003
TRS:
 {                f(true(), x, y) -> fNat(and(greatereq_int(x, pos 0()), greatereq_int(y, pos 0())), x, y),
                if(false(), u, v) -> v,
                 if(true(), u, v) -> u,
               fNat(true(), x, y) -> f(greater_int(x, y), x, round plus_int(pos s 0(), y)),
            and(false(), false()) -> false(),
             and(false(), true()) -> false(),
             and(true(), false()) -> false(),
              and(true(), true()) -> true(),
    greatereq_int(pos x, pos 0()) -> true(),
      greatereq_int(pos x, neg y) -> true(),
  greatereq_int(pos 0(), pos s y) -> false(),
  greatereq_int(pos s x, pos s y) -> greatereq_int(pos x, pos y),
    greatereq_int(neg x, pos s y) -> false(),
  greatereq_int(neg 0(), pos 0()) -> true(),
    greatereq_int(neg 0(), neg y) -> true(),
  greatereq_int(neg s x, pos 0()) -> false(),
  greatereq_int(neg s x, neg 0()) -> false(),
  greatereq_int(neg s x, neg s y) -> greatereq_int(neg x, neg y),
    greater_int(pos 0(), pos 0()) -> false(),
    greater_int(pos 0(), pos s y) -> false(),
    greater_int(pos 0(), neg 0()) -> false(),
    greater_int(pos 0(), neg s y) -> true(),
    greater_int(pos s x, pos 0()) -> true(),
    greater_int(pos s x, pos s y) -> greater_int(pos x, pos y),
    greater_int(pos s x, neg 0()) -> true(),
    greater_int(pos s x, neg s y) -> true(),
    greater_int(neg 0(), pos 0()) -> false(),
    greater_int(neg 0(), pos s y) -> false(),
    greater_int(neg 0(), neg 0()) -> false(),
    greater_int(neg 0(), neg s y) -> true(),
    greater_int(neg s x, pos 0()) -> false(),
    greater_int(neg s x, pos s y) -> false(),
    greater_int(neg s x, neg 0()) -> false(),
    greater_int(neg s x, neg s y) -> greater_int(neg x, neg y),
                          round x -> if(equal_int(mod_int(x, pos s s 0()), pos 0()), x, plus_int(pos s 0(), x)),
           plus_int(pos x, pos y) -> pos plus_nat(x, y),
           plus_int(pos x, neg y) -> minus_nat(x, y),
           plus_int(neg x, pos y) -> minus_nat(y, x),
           plus_int(neg x, neg y) -> neg plus_nat(x, y),
      equal_int(pos 0(), pos 0()) -> true(),
      equal_int(pos 0(), pos s y) -> false(),
      equal_int(pos 0(), neg 0()) -> true(),
      equal_int(pos 0(), neg s y) -> false(),
      equal_int(pos s x, pos 0()) -> false(),
      equal_int(pos s x, pos s y) -> equal_int(pos x, pos y),
      equal_int(pos s x, neg 0()) -> false(),
      equal_int(pos s x, neg s y) -> false(),
      equal_int(neg 0(), pos 0()) -> true(),
      equal_int(neg 0(), pos s y) -> false(),
      equal_int(neg 0(), neg 0()) -> true(),
      equal_int(neg 0(), neg s y) -> false(),
      equal_int(neg s x, pos 0()) -> false(),
      equal_int(neg s x, pos s y) -> false(),
      equal_int(neg s x, neg 0()) -> false(),
      equal_int(neg s x, neg s y) -> equal_int(neg x, neg y),
            mod_int(pos x, pos y) -> pos mod_nat(x, y),
            mod_int(pos x, neg y) -> pos mod_nat(x, y),
            mod_int(neg x, pos y) -> neg mod_nat(x, y),
            mod_int(neg x, neg y) -> neg mod_nat(x, y),
              minus_nat(0(), 0()) -> pos 0(),
              minus_nat(0(), s y) -> neg s y,
              minus_nat(s x, 0()) -> pos s x,
              minus_nat(s x, s y) -> minus_nat(x, y),
                 plus_nat(0(), x) -> x,
                 plus_nat(s x, y) -> s plus_nat(x, y),
                mod_nat(0(), s x) -> 0(),
                mod_nat(s x, s y) -> if1(greatereq_int(pos x, pos y), mod_nat(minus_nat_s(x, y), s y), s x),
               if1(false(), x, y) -> y,
                if1(true(), x, y) -> x,
              minus_nat_s(x, 0()) -> x,
            minus_nat_s(0(), s y) -> 0(),
            minus_nat_s(s x, s y) -> minus_nat_s(x, y)}
 SRS: We consider a TRS.
  Trs:
   {                f(true(), x, y) -> fNat(and(greatereq_int(x, pos 0()), greatereq_int(y, pos 0())), x, y),
                  if(false(), u, v) -> v,
                   if(true(), u, v) -> u,
                 fNat(true(), x, y) -> f(greater_int(x, y), x, round plus_int(pos s 0(), y)),
              and(false(), false()) -> false(),
               and(false(), true()) -> false(),
               and(true(), false()) -> false(),
                and(true(), true()) -> true(),
      greatereq_int(pos x, pos 0()) -> true(),
        greatereq_int(pos x, neg y) -> true(),
    greatereq_int(pos 0(), pos s y) -> false(),
    greatereq_int(pos s x, pos s y) -> greatereq_int(pos x, pos y),
      greatereq_int(neg x, pos s y) -> false(),
    greatereq_int(neg 0(), pos 0()) -> true(),
      greatereq_int(neg 0(), neg y) -> true(),
    greatereq_int(neg s x, pos 0()) -> false(),
    greatereq_int(neg s x, neg 0()) -> false(),
    greatereq_int(neg s x, neg s y) -> greatereq_int(neg x, neg y),
      greater_int(pos 0(), pos 0()) -> false(),
      greater_int(pos 0(), pos s y) -> false(),
      greater_int(pos 0(), neg 0()) -> false(),
      greater_int(pos 0(), neg s y) -> true(),
      greater_int(pos s x, pos 0()) -> true(),
      greater_int(pos s x, pos s y) -> greater_int(pos x, pos y),
      greater_int(pos s x, neg 0()) -> true(),
      greater_int(pos s x, neg s y) -> true(),
      greater_int(neg 0(), pos 0()) -> false(),
      greater_int(neg 0(), pos s y) -> false(),
      greater_int(neg 0(), neg 0()) -> false(),
      greater_int(neg 0(), neg s y) -> true(),
      greater_int(neg s x, pos 0()) -> false(),
      greater_int(neg s x, pos s y) -> false(),
      greater_int(neg s x, neg 0()) -> false(),
      greater_int(neg s x, neg s y) -> greater_int(neg x, neg y),
                            round x -> if(equal_int(mod_int(x, pos s s 0()), pos 0()), x, plus_int(pos s 0(), x)),
             plus_int(pos x, pos y) -> pos plus_nat(x, y),
             plus_int(pos x, neg y) -> minus_nat(x, y),
             plus_int(neg x, pos y) -> minus_nat(y, x),
             plus_int(neg x, neg y) -> neg plus_nat(x, y),
        equal_int(pos 0(), pos 0()) -> true(),
        equal_int(pos 0(), pos s y) -> false(),
        equal_int(pos 0(), neg 0()) -> true(),
        equal_int(pos 0(), neg s y) -> false(),
        equal_int(pos s x, pos 0()) -> false(),
        equal_int(pos s x, pos s y) -> equal_int(pos x, pos y),
        equal_int(pos s x, neg 0()) -> false(),
        equal_int(pos s x, neg s y) -> false(),
        equal_int(neg 0(), pos 0()) -> true(),
        equal_int(neg 0(), pos s y) -> false(),
        equal_int(neg 0(), neg 0()) -> true(),
        equal_int(neg 0(), neg s y) -> false(),
        equal_int(neg s x, pos 0()) -> false(),
        equal_int(neg s x, pos s y) -> false(),
        equal_int(neg s x, neg 0()) -> false(),
        equal_int(neg s x, neg s y) -> equal_int(neg x, neg y),
              mod_int(pos x, pos y) -> pos mod_nat(x, y),
              mod_int(pos x, neg y) -> pos mod_nat(x, y),
              mod_int(neg x, pos y) -> neg mod_nat(x, y),
              mod_int(neg x, neg y) -> neg mod_nat(x, y),
                minus_nat(0(), 0()) -> pos 0(),
                minus_nat(0(), s y) -> neg s y,
                minus_nat(s x, 0()) -> pos s x,
                minus_nat(s x, s y) -> minus_nat(x, y),
                   plus_nat(0(), x) -> x,
                   plus_nat(s x, y) -> s plus_nat(x, y),
                  mod_nat(0(), s x) -> 0(),
                  mod_nat(s x, s y) -> if1(greatereq_int(pos x, pos y), mod_nat(minus_nat_s(x, y), s y), s x),
                 if1(false(), x, y) -> y,
                  if1(true(), x, y) -> x,
                minus_nat_s(x, 0()) -> x,
              minus_nat_s(0(), s y) -> 0(),
              minus_nat_s(s x, s y) -> minus_nat_s(x, y)}
  Fail