(def-language packet-trajectory-language (base-types ifaces datagrams netstates) (constants (iface%out%to%in "[ifaces,datagrams,netstates -> ifaces]") (iface%in%to%out "[ifaces,datagrams,netstates -> ifaces]")))
(def-theory packet-trajectory-theory (component-theories h-o-real-arithmetic) (language packet-trajectory-language))
(def-translation generic-theory-1-to-packet-trajectory (source generic-theory-1) (target packet-trajectory-theory) (fixed-theories h-o-real-arithmetic) (sort-pairs (ind_1 ifaces)) (theory-interpretation-check using-simplification))
(def-transported-symbols (biiterate iterate) (renamer gt1-to-sn-renamer) (translation generic-theory-1-to-packet-trajectory))
(def-constant trans%out%in "lambda(d:datagrams, x:netstates, lambda(i:ifaces,iface%out%to%in(i,d,x)))" (theory packet-trajectory-theory))
(def-constant trans%in%out "lambda(d:datagrams, x:netstates, lambda(i:ifaces,iface%in%to%out(i,d,x)))" (theory packet-trajectory-theory))
(def-constant trajectory "lambda(d:datagrams, x:netstates, i:ifaces, lambda(n:zz, dgrm%biiterate(trans%in%out(d,x),trans%out%in(d,x),i)(n)))" (theory packet-trajectory-theory))