`k~t) G d d Z G d d Z G d d Z G d d Z G d d Z G d
d ZdS )
c b e Zd Zd Zd Zd Zd Zd Zd Zd Z d Z
d Zd
Zd Z
d Zd
Zd ZdS )LeftKanExtensionc L || _ |j | _ | j | | j | | j || || _ || _ d |D | _ || _ || _ | d S )Nc P g | ]#\ }}t | t | f$S tuple).0ghs j/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib64/python3.11/site-packages/guppy/etc/KanExtension.py
z-LeftKanExtension.__init__.. s- 7776Aq588U1XX&777 )
modCatcheck_graphcheck_rulesABRXFgeneral_procedure)selfr r r r r r s r __init__zLeftKanExtension.__init__ s 7
QQQ""" 77Q777 r c | | | | d S N)initialize_tablesmake_confluent_systemmake_automatonmake_natural_transformationr s r r z"LeftKanExtension.general_procedure$ sP ""$$$((*****r c J i | _ i | _ | d S r )obj_to_str_tablestr_to_obj_tablemake_initial_rulesr! s r r z"LeftKanExtension.initialize_tables* s* " "!!!!!r c
g fd} j j D ]~} j | } j | } j | } j | }t j | } j | } j | } |rx|}
|D ]T} j | }||
k rt d|d|d|
j | }
U|
| k rt d|d|
d| n|| k rt d|d | |D ] }
|||
ff|z | ||
ff ! fd
j D } _ | _
|z _ d S )Nc | } | }||k r ||f d S d S r ) make_wordappend)abawbwRer s r add_rulez5LeftKanExtension.make_initial_rules..add_rule5 sQ ""B""BRxx 2r(##### xr zArrow [z] with source z does not compose with target zArrow z
with target z does not compose with zSource z does not match target c j g | ]/\ }} | | f0S r )r( )r xyr s r r
z7LeftKanExtension.make_initial_rules..U s:
J
J
J!Qt~~a $.."3"34
J
J
Jr )r arrowssourcetargetr fofar r r
ValueErrorr r. RkRinit)r r/ r* srcatgtaXAXaFaFsrcaFtgtatr+ srcbr1 r9 r. s ` @r r% z#LeftKanExtension.make_initial_rules/ s- $ $ $ $ $ $ > >A6==##D6==##D4B1Btvyy||$$BFIIdOOEFIIdOOE
O ) )A6==++Dqyy(j[\[\[\^b^b^bdedefh h h
a((AA::$*NPbbRSRSRSUZUZ[] ] ] E>>$*@EuuMO O O
>
>4)*dBBqEE],<====
> K
J
J
J46
J
J
J"W
r c t | j | j d | _ | j j | _ d S )N.)delim)r KnuthBendixr: rs
reductionsRconfr! s r r z&LeftKanExtension.make_confluent_system[ s0 (&&tz&==W'
r c fdg j j D ]7} j | D ]} ||ff 8t d j j D }t j j D ]%\ }\ }}|| ||f &t fd j
D }i j
D ]G\ }} | }
t dt |
D ]}d|
d | <