(VAR x xs ) (RULES and(tt, tt) -> tt is_nat(0) -> tt is_nat(s(x)) -> is_nat(x) is_natlist(nil) -> tt is_natlist(cons(x, xs)) -> and(is_nat(x), is_natlist(xs)) from(x) -> fromCond(is_natlist(x), x) fromCond(tt, cons(x, xs)) -> from(cons(s(x), cons(x, xs))) )