o
    i]                     @   s8   d Z ddlZddlT dd Zdd Zdd	 Zd
d ZdS )z0
Helper functions for CCG semantics computation
    N)*c                 C   s   t | }|}d }t|tr|}|j}t|tstd}|| v r-t|d}|| v s"tt	||}|d ur<||_n|}t||S )NF)pattern)
copydeepcopy
isinstanceLambdaExpressiontermVariablefreeunique_variableApplicationExpressionFunctionVariableExpression)	semanticssemantics_copycoreparentvar r   I/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/nltk/ccg/logic.pycompute_type_raised_semantics   s    




r   c                 C   s   t | | S )N)r   simplifyfunctionargumentr   r   r   compute_function_semantics%   s   r   c                 C   s6   t |tsJ dt| d t|jt| |j S )N`` must be a lambda expression)r   r   strvariabler   r	   r   r   r   r   r   compute_composition_semantics)   s   r    c                 C   sx   t | trt | jtsJ dt|  d t |ts$J dt| d t|t| j }t| j| }t| j|S )Nr   z.` must be a lambda expression with 2 argumentsr   )r   r   r	   r   r   VariableExpressionr   r   )r   r   new_argumentnew_termr   r   r   compute_substitution_semantics2   s   
r$   )__doc__r   nltk.sem.logicr   r   r    r$   r   r   r   r   <module>   s   	