
    i]                     2    S r SSKrSSK7  S rS rS rS rg)z0
Helper functions for CCG semantics computation
    N)*c                 z   [         R                  " U 5      nUnS n[        U[        5      (       a%  UnUR                  n[        U[        5      (       a  M%  [        S5      nXBR                  5       ;   a  [        US9nXBR                  5       ;   a  M  [        [        U5      U5      nUb  X#l        OUn[        XA5      $ )NF)pattern)
copydeepcopy
isinstanceLambdaExpressiontermVariablefreeunique_variableApplicationExpressionFunctionVariableExpression)	semanticssemantics_copycoreparentvars        H/home/james-whalen/.local/lib/python3.13/site-packages/nltk/ccg/logic.pycompute_type_raised_semanticsr      s    ]]9-NDF
T+
,
,yy T+
,
, 3-C

c* 
 !;C!@$GDC00    c                 4    [        X5      R                  5       $ )N)r   simplifyfunctionarguments     r   compute_function_semanticsr   %   s     4==??r   c                     [        U[        5      (       d   S[        U5      -   S-   5       e[        UR                  [	        XR
                  5      R                  5       5      $ )N`` must be a lambda expression)r	   r
   strvariabler   r   r   r   s     r   compute_composition_semanticsr$   )   s\    h 011 c(m==1 0==IRRT r   c                    [        U [        5      (       a  [        U R                  [        5      (       d   S[        U 5      -   S-   5       e[        U[        5      (       d   S[        U5      -   S-   5       e[	        U[        U R                  5      5      R                  5       n[	        U R                  U5      R                  5       n[        U R                  U5      $ )Nr    z.` must be a lambda expression with 2 argumentsr!   )r	   r
   r   r"   r   VariableExpressionr#   r   )r   r   new_argumentnew_terms       r   compute_substitution_semanticsr)   2   s    h 011j'7 7 Pc(mNNP  h 011 c(m==1 )$X%6%67hj  %X]]LAJJLHH--x88r   )__doc__r   nltk.sem.logicr   r   r$   r)    r   r   <module>r-      s'     1*@9r   