(meta-info (comment "Example 2 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 s 1 :sort (Int Int)) (fun plus 2 :sort (Int Int Int)) (fun p 1 :sort (Int Int)) (fun geq2 4 :sort (Int Int Int Int Bool)) (rule (sum x) (sum2 (geq 0 x) x)) (rule (sum2 true x) 0) (rule (sum2 false (s x)) (plus (s x) (sum x))) (rule (plus (p x) y) (p (plus x y))) (rule (plus (s x) y) (s (plus x y))) (rule (plus 0 y) y) (rule (s (p x)) x) (rule (p (s x)) x) (rule (geq x y) (geq2 x y 0 0)) (rule (geq2 (s x) y z u) (geq2 x y (s z) u)) (rule (geq2 (p x) y z u) (geq2 x y z (s u))) (rule (geq2 0 (s x) y z) (geq2 0 x y (s z))) (rule (geq2 0 (p x) y z) (geq2 0 x (s y) z)) (rule (geq2 0 0 (s x) (s y)) (geq2 0 0 x y)) (rule (geq2 0 0 x 0) true) (rule (geq2 0 0 0 (s x)) false)