(meta-info (comment "Ctrl example from examples-transformed/student/sumfrom01.ctrs")) (format LCTRS :logic QF_LIA) (fun u3 5 :sort (Int Int Int Int Result2 Int)) (fun return2 1 :sort (Int Result2)) (fun max 2 :sort (Int Int Result2)) (fun return 1 :sort (Int Int)) (fun u2 5 :sort (Int Int Int Int Result1 Int)) (fun return1 1 :sort (Int Result1)) (fun u1 4 :sort (Int Int Int Int Int)) (fun min 2 :sort (Int Int Result1)) (fun sum2 2 :sort (Int Int Int)) (fun hikaku 2 :sort (Int Int Int)) (rule (u3 x y t i (return2 k)) (u3 x y (+ t i) (+ i 1) (max x y)) :guard (not (<= i k)) :vars ((x Int) (y Int) (t Int) (i Int) (k Int))) (rule (u3 x y t i (return2 k)) (return t) :guard (<= i k) :vars ((x Int) (y Int) (t Int) (i Int) (k Int))) (rule (u2 x y t i (return1 k)) (u3 x y t k (max x y)) :vars ((x Int) (y Int) (t Int) (i Int) (k Int))) (rule (u1 x y t i) (u2 x y 0 i (min x y)) :guard (not (> x y)) :vars ((x Int) (y Int) (t Int) (i Int))) (rule (u1 x y t i) (return 0) :guard (> x y) :vars ((x Int) (y Int) (t Int) (i Int))) (rule (sum2 x y) (u1 x y 0 rnd) :vars ((x Int) (y Int) (rnd Int))) (rule (min x y) (return1 y) :guard (not (> y x)) :vars ((x Int) (y Int))) (rule (min x y) (return1 x) :guard (> y x) :vars ((x Int) (y Int))) (rule (max x y) (return2 y) :guard (not (> x y)) :vars ((x Int) (y Int))) (rule (max x y) (return2 x) :guard (> x y) :vars ((x Int) (y Int)))