; @author Jonas Schöpf ; Ctrl example from examples/student/fib05.ctrs (format LCTRS :smtlib 2.6) (theory Ints) (sort Unit) (fun v (-> Int Int Int Int Int Unit)) (fun return (-> Int Unit)) (fun u (-> Int Int Int Int Int Unit)) (fun fastfib (-> Int Unit)) (rule (v n a1 a2 sum i) (return sum) :guard (not (< i n)) :var ((n Int) (a1 Int) (a2 Int) (sum Int) (i Int))) (rule (v n a1 a2 sum i) (v n (+ a1 a2) a1 (+ a1 a2) (+ i 1)) :guard (< i n) :var ((n Int) (a1 Int) (a2 Int) (sum Int) (i Int))) (rule (u n a1 a2 sum i) (return sum) :guard (not (and (> n 0) (< n 47))) :var ((n Int) (a1 Int) (a2 Int) (sum Int) (i Int))) (rule (u n a1 a2 sum i) (v n a1 a2 1 1) :guard (and (> n 0) (< n 47)) :var ((n Int) (a1 Int) (a2 Int) (sum Int) (i Int))) (rule (fastfib n) (u n 1 0 0 rnd) :var ((n Int) (rnd Int)))