Executable Specification
[View trans_tst.sig]
[View trans_tst.mod]
sig trans_tst.
accum_sig trans. [View trans.sig]
type term tm -> o.
type term' tm' -> o.
type fvars_tst (tm -> list tm) -> o.
module trans_tst.
accumulate trans. [View trans.mod]
term (app (fix (f\ n\
ifz n n (plus n (app f (pred n)))))
(nat (s (s (s z))))).
term' (open' (clos'
(abs' (p\ let' (fst' p) (z\ let' (snd' p) (e\
plus' (plus' z (fst' e)) (fst' (snd' e))))))
(pair' (nat' (s (s z)))
(pair' (nat' (s (s (s z)))) unit')))
(f\ e\ app' f (pair' (nat' (s z)) e))).
term
(app
(let (nat (s (s z))) (x\ let (nat (s (s (s z)))) (y\
fix (f\z\ plus (plus z x) y))))
(nat (s z))).
term (app
(let (nat (s (s z))) (x\ let (nat (s (s (s z)))) (y\
fix (f\z\ plus z (app (fix (f\x\ plus x y)) x)))))
(nat (s z))).
term (let (nat (s (s z))) (x\ let (nat (s (s (s z)))) (y\
fix (f\z\ plus (plus z x) y)))).
fvars_tst FVs :-
pi y\ pi z\ fvars (let (nat z) (x\ fix (f\ z\ plus (plus z x) y)))
(y :: nil)
(FVs y).