Ty#

class discopy.rigid.Ty(*inside)[source]#

Bases: discopy.closed.Ty

A rigid type is a closed type with rigid objects inside.

Parameters:

inside (tuple[Ob, ...]) – The objects inside the type.

Example

>>> s, n = Ty('s'), Ty('n')
>>> assert n.l.r == n == n.r.l
>>> assert (s @ n).l == n.l @ s.l and (s @ n).r == n.r @ s.r
assert_isadjoint(other)[source]#

Raise AxiomError if two rigid types are not adjoints.

Parameters:

other – The alleged right adjoint.

property l: Ty#

The left adjoint of the type.

property r: Ty#

The right adjoint of the type.

property z: int#

The winding number is only defined for types of length 1.

ob_factory#

alias of Ob

factory#

alias of Ty