(meta-info (comment "Example 23 Winkler et al. 2018")) (meta-info (comment "Modified and corrected example")) (format LCTRS :logic QF_LIA) (fun f 2 :sort (Int Int Int)) (fun g 2 :sort (Int Int Int)) (fun h 1 :sort (Int Int)) (rule (f x y) (+ (f z y) 1) :guard (and (>= x 1) (= z (- x 1)))) (rule (g 0 y) y :guard (<= x 0)) (rule (f x 0) (g 1 x) :guard (<= x 1)) (rule (g 1 1) (+ (g 1 0) 1)) (rule (h x) (+ (g 1 x) 1) :guard (<= x 1)) (rule (h x) (+ (+ (f z 0) 1) 1) :guard (and (> x 1) (= z (- x 1))))