; @author Jonas Schöpf ; Ctrl example from examples/student/fib01.ctrs (format LCTRS :smtlib 2.6) (theory Ints) (sort Unit) (fun return (-> Int Unit)) (fun u (-> Int Int Int Int Unit)) (fun fastfib (-> Int Unit)) (rule (u num f0 f1 f2) (return f1) :guard (not (>= num 2)) :var ((num Int) (f0 Int) (f1 Int) (f2 Int))) (rule (u num f0 f1 f2) (u (- num 1) f1 (+ f1 f0) (+ f1 f0)) :guard (>= num 2) :var ((num Int) (f0 Int) (f1 Int) (f2 Int))) (rule (fastfib num) (u num 1 1 rnd) :var ((num Int) (rnd Int)))