Functor#
- class discopy.feedback.Functor(ob=None, ar=None, dom=None, cod=None)[source]#
Bases:
discopy.markov.Functor
A feedback functor is a markov one that preserves delay and feedback.
- Parameters:
ob (Mapping[monoidal.Ty, monoidal.Ty]) – Map from
monoidal.Ty
tocod.ob
.cod (Category) – The codomain,
Category(Ty, Diagram)
by default.dom (T) –
Example
>>> x, y, m = [Ty(Ob(n, is_constant=False)) for n in "xym"] >>> f = Box('f', x @ m.d, y @ m) >>> g = Box('g', y.d @ m.d.d, x.d @ m.d) >>> F = Functor({x: y.d, y: x.d, m: m.d}, {f: g})
>>> assert F(f.delay()) == F(f).delay() >>> assert F(f.feedback()) == F(f).feedback() >>> assert F(x.head) == F(x).head and F(x.tail) == F(x).tail >>> assert F(FollowedBy(x)) == FollowedBy(F(x)) >>> assert F(f.head) == F(f).head and F(f.tail) == F(f).tail