; @author Jonas Schöpf ; Ctrl example from examples/student/sum03.ctrs (format LCTRS :smtlib 2.6) (theory Ints) (sort Result) (fun v (-> Int Int Int Result)) (fun return (-> Int Result)) (fun u (-> Int Int Int Result)) (fun sum1 (-> Int Result)) (rule (v n i a) (return a) :guard (not (<= i n)) :var ((n Int) (i Int) (a Int))) (rule (v n i a) (v n (+ i 1) (+ a i)) :guard (<= i n) :var ((n Int) (i Int) (a Int))) (rule (u n i a) (v n 0 a) :guard (not (<= n 0)) :var ((n Int) (i Int) (a Int))) (rule (u n i a) (return 0) :guard (<= n 0) :var ((n Int) (i Int) (a Int))) (rule (sum1 n) (u n rnd 0) :var ((n Int) (rnd Int)))