Edit File: KanExtension.cpython-37.pyc
B �]�R � @ sX G d d� d�Z G dd� d�ZG dd� d�ZG dd� d�ZG dd � d �ZG d d� d�ZdS ) c @ s| e Zd Zdd� Zdd� Zdd� Zdd� Zd d � Zdd� Zd d� Z dd� Z dd� Zdd� Zdd� Z dd� Zdd� Zdd� ZdS )�LeftKanExtensionc C sh || _ |j| _| j�|� | j�|� | j�||� || _|| _dd� |D �| _|| _|| _| � � d S )Nc S s g | ]\}}t |�t |�f�qS � )�tuple)�.0�g�hr r �I/opt/alt/python37/lib64/python3.7/site-packages/guppy/etc/KanExtension.py� <listcomp> s z-LeftKanExtension.__init__.<locals>.<listcomp>) �mod�CatZcheck_graphZcheck_rules�A�B�R�X�F�general_procedure)�selfr r r r r r r r r �__init__ s zLeftKanExtension.__init__c C s$ | � � | �� | �� | �� d S )N)�initialize_tables�make_confluent_system�make_automaton�make_natural_transformation)r r r r r $ s z"LeftKanExtension.general_procedurec C s i | _ i | _| �� d S )N)�obj_to_str_table�str_to_obj_table�make_initial_rules)r r r r r * s z"LeftKanExtension.initialize_tablesc sV g � � �fdd�}�x�j jD �]}�j �|�}�j �|�}�j�|�}�j�|�}t�j�|��}�j�|�}�j�|�} |r�|} x>|D ]6}�j �|�}|| kr�t d||| f ���j �|�} q�W | | kr�t d|| | f ��n|| kr�t d|| f ��x*|D ]"} ||| ff| ||| �ff� q�W qW �fdd��jD �}� �_|�_ � | �_d S )Nc s. �� | �}�� |�}||kr*� �||f� d S )N)� make_word�append)�a�bZawZbw)�Rer r r �add_rule5 s z5LeftKanExtension.make_initial_rules.<locals>.add_rulez9Arrow [%s] with source %s does not compose with target %sz0Arrow %s with target %s does not compose with %sz"Source %s does not match target %sc s$ g | ]\}}� � |�� � |�f�qS r )r )r �x�y)r r r r U s z7LeftKanExtension.make_initial_rules.<locals>.<listcomp>)r �arrows�source�targetr �fo�far r r � ValueErrorr r �Rk�Rinit)r r r �srca�tgta�XA�XaZFaZFsrcaZFtgta�tr �srcbr r( r )r r r r / s<