(meta-info (comment "Example 3 from Kop et al. 2013"))
(format LCTRS :logic QF_LIA)
(fun sum 1 :sort (Int Int))
(fun sum2 2 :sort (Bool Int Int))
(fun geq 2 :sort (Int Int Bool))
(fun plus 2 :sort (Int Int Int))

(rule (sum x) (sum2 (geq 0 x) x))
(rule (sum2 true x) 0)
(rule (sum2 false x) (plus x (sum (plus x (- 1)))))
(rule (plus n m) k :guard (= (+ n m) k))
(rule (geq n m) true :guard (>= n m))
(rule (geq n m) false :guard (< n m))
