; @author Jonas Schöpf
; Ctrl example from examples/student/sum11.ctrs
(format LCTRS :smtlib 2.6)
(theory Ints)
(sort Unit)
(fun u (-> Int Int Int Unit))
(fun return (-> Int Unit))
(fun sum1 (-> Int Unit))

(rule (u n s i) (return s) :guard (not (<= i n)) :var ((n Int) (s Int) (i Int)))
(rule (u n s i) (u n (+ s i) (+ i 1)) :guard (<= i n) :var ((n Int) (s Int) (i Int)))
(rule (sum1 n) (u n 0 0) :var ((n Int)))
