(meta-info (comment "Example 15 from Kop et al. 2013")) (format LCTRS :logic QF_LIA) (fun eval1 2 :sort (Int Int Int)) (fun eval2 2 :sort (Int Int Int)) (fun eval3 2 :sort (Int Int Int)) (rule (eval1 x y) (eval2 x y) :guard (and (and (> x 0) (> y 0)) (> x y))) (rule (eval1 x y) (eval3 x y) :guard (and (and (> x 0) (> y 0)) (not (> x y)))) (rule (eval2 x y) (eval2 (+ x (-1)) (+ y 1)) :guard (> x 0)) (rule (eval2 x y) (eval1 x y) :guard (not (> x 0))) (rule (eval3 x y) (eval3 (+ x 1) (+ y (-1))) :guard (> y 0)) (rule (eval3 x y) (eval1 x y) :guard (not (> y 0)))