(meta-info (comment "Example 7 (left LCTRS) from Kop et al. 2014")) (format LCTRS :logic QF_LIA) (fun fact 1 :sort (Int Int)) (fun u1 3 :sort (Int Int Int Int)) (fun u2 3 :sort (Int Int Int Int)) (fun u3 3 :sort (Int Int Int Int)) (fun return 1 :sort (Int Int)) (rule (fact x) (u1 x i z)) (rule (u1 x i z) (u2 x 1 1)) (rule (u2 x i z) (u2 x (+ i 1) (* z i)) :guard (<= i x)) (rule (u2 x i z) (u3 x i z) :guard (not (<= i x))) (rule (u3 x i z) (return z))