o
    rZh                     @   s0   d 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
    )*c                 C   s|   | }d }t |tr|}|j}t |ts	td}|| v r(t|d}|| v stt||}|d ur7||_n|} t|| S )NF)pattern)
isinstanceLambdaExpressiontermVariablefreeZunique_variableApplicationExpressionZFunctionVariableExpression)Z	semanticscoreparentvar r   =/var/www/auris/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
   ZVariableExpressionr   r   )r   r   Znew_argumentZnew_termr   r   r   compute_substitution_semantics/   s   
r   N)__doc__Znltk.sem.logicr   r   r   r   r   r   r   r   <module>   s   	