Diagram
Diagram#
- class discopy.grammar.pregroup.Diagram(inside, dom, cod, _scan=True)[source]#
Bases:
discopy.rigid.Diagram
,discopy.symmetric.Diagram
A pregroup diagram is a rigid diagram with
Word
boxes.- Parameters
Example
>>> s, n = Ty('s'), Ty('n') >>> Alice, Bob = Word('Alice', n), Word('Bob', n) >>> loves = Word('loves', n.r @ s @ n.l) >>> grammar = Cup(n, n.r) @ Id(s) @ Cup(n.l, n) >>> sentence = grammar << Alice @ loves @ Bob >>> print(sentence[:4]) Alice >> n @ loves >> n @ n.r @ s @ n.l @ Bob >> Cup(n, n.r) @ s @ n.l @ n >>> from discopy import tensor, rigid >>> ob = {s: 1, n: 2} >>> ar = {Alice: [1, 0], loves: [0, 1, 1, 0], Bob: [0, 1]} >>> F = tensor.Functor(ob, ar, dom=rigid.Category(), dtype=bool) >>> assert F(sentence)