(format LCTRS :logic QF_LIA)

(fun ack 2 :sort (Int Int Int))

(rule (ack  0 n) (+  n 1) :guard (>= n 0))
(rule (ack  m 0) (ack  (-  m 1) 1) :guard (> m 0))
(rule (ack  m n) (ack  (-  m 1) (ack  m (-  n 1))) :guard (and (> m 0) (> n 0)))
(rule (ack  m n) 0 :guard (or (< m 0) (< n 0)))
