§
    íóÉj.  ã                   óB   — d Z ddlZddlZddlT d	d„Zd„ Zd„ Zd„ Zd„ ZdS )
z0
Helper functions for CCG semantics computation
é    N)Ú*c                 ó.  — | €dS |€|                       ¦   «         } i }t          | t          ¦  «        �r>t          j        d| j        j        ¦  «        }|r|                     d¦  «        nd}|dv rdg d¢}}n'|dv rd	g d¢}}n|d
v rdddg}}n|dk    rddg}}n||g}}||vrd||<   | j         	                    ¦   «         | j        hz
  }	 ||         }||t          |¦  «        z           }|t          |¦  «        z  }	|› |	dk    r|	nd› �}
t          |
¦  «        }||xx         dz  cc<   ||vrnŒe|                      |¦  «        }|                     |j        t          |j        |¦  «        ¦  «        S t          | t          ¦  «        r6t          t          | j        |¦  «        t          | j        |¦  «        ¦  «        S t          | t$          ¦  «        r<|                      t          | j        |¦  «        t          | j        |¦  «        ¦  «        S t          | t*          ¦  «        r"t+          t          | j        |¦  «        ¦  «        S t          | t,          ¦  «        r<|                      t          | j        |¦  «        t          | j        |¦  «        ¦  «        S | S )zè
    Canonicalizes variables while preserving NLTK's prefix-based typing.
    Ensures alpha-equivalent formulas produce identical strings without capture.
    Draws from standard pools (x,y,z for individuals; F,G for functors).
    Nz^([A-Za-z_]+)é   Úv)ÚxÚyÚzÚwÚind)r   r   r	   )ÚPÚQÚRÚpred)ÚFÚGÚHÚfuncr   r   ÚeÚeventr   TÚ )ÚsimplifyÚ
isinstanceÚVariableBinderExpressionÚreÚmatchÚvariableÚnameÚgroupÚtermÚfreeÚlenÚVariableÚalpha_convertÚ	__class__Úbarendregt_normalizeÚApplicationExpressionÚfunctionÚargumentÚBooleanExpressionÚfirstÚsecondÚNegatedExpressionÚEqualityExpression)ÚexprÚcountersr   ÚbaseÚcategoryÚpoolÚfree_in_bodyÚidxÚpool_varÚsuffixÚnew_nameÚnew_varÚ	safe_exprs                úq/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib/python3.11/site-packages/nltk/ccg/logic.pyr%   r%      sä  € ð €|ØˆtàÐØ�}Š}‰ŒˆØˆå�$Õ0Ñ1Ô1ñ ;
å”Ð)¨4¬=Ô+=Ñ>Ô>ˆØ!&Ð/ˆu�{Š{˜1‰~Œ~ˆ~¨Cˆð Ð'Ð'Ð'Ø" O O O�dˆHˆHØ�_Ð$Ð$Ø# _ _ _�dˆHˆHØ�_Ð$Ð$Ø# c¨3 Z�dˆHˆHØ�SŠ[ˆ[Ø$ s e�dˆHˆHà! D 6�dˆHà˜8Ð#Ð#Ø!"ˆH�XÑà”y—~’~Ñ'Ô'¨4¬=¨/Ñ9ˆð
	Ø˜8Ô$ˆCØ˜C¥# d¡)¤)™OÔ,ˆHØ�C ™IœIÑ%ˆFØ"ÐB¨f°qªj¨j F F¸bÐBÐBˆHÝ˜xÑ(Ô(ˆGØ�XÐÐÔ !Ñ#ÐÐÑð ˜lÐ*Ð*Øð
	ð ×&Ò& wÑ/Ô/ˆ	Ø×"Ò"ØÔÕ 4°Y´^ÀXÑ NÔ Nñ
ô 
ð 	
õ 
�DÕ/Ñ	0Ô	0ð 
Ý$Ý  ¤°Ñ9Ô9Ý  ¤°Ñ9Ô9ñ
ô 
ð 	
õ
 
�DÕ+Ñ	,Ô	,ð 
Ø�~Š~Ý  ¤¨XÑ6Ô6Ý  ¤¨hÑ7Ô7ñ
ô 
ð 	
õ
 
�DÕ+Ñ	,Ô	,ð 
Ý Õ!5°d´iÀÑ!JÔ!JÑKÔKÐKå	�DÕ,Ñ	-Ô	-ð 
Ø�~Š~Ý  ¤¨XÑ6Ô6Ý  ¤¨hÑ7Ô7ñ
ô 
ð 	
ð
 €Kó    c                 óH   — | �|€d S t          t          | |¦  «        ¦  «        S ©N)r%   r&   )r'   r(   s     r:   Úcompute_function_semanticsr>   ]   s+   € ØÐ˜8Ð+ØˆtÝÕ 5°hÀÑ IÔ IÑJÔJÐJr;   c                 óØ   — | €d S t          t          d¦  «        ¬¦  «        }t          t          |t	          t          |¦  «        t          j        | ¦  «        ¦  «        ¦  «        ¦  «        S )Nr   ©Úpattern)Úunique_variabler"   r%   ÚLambdaExpressionr&   ÚVariableExpressionÚcopyÚdeepcopy)Ú	semanticsÚcores     r:   Úcompute_type_raised_semanticsrI   c   se   € ØÐØˆtÝ¥8¨C¡=¤=Ð1Ñ1Ô1€DåÝØÝ!Õ"4°TÑ":Ô":½D¼MÈ)Ñ<TÔ<TÑUÔUñ	
ô 	
ñô ð r;   c                 ó
  — | �|€d S t          |t          ¦  «        sJ d|› d�¦   «         ‚t          |j        ¬¦  «        }t	          t          |t          | t          |t          |¦  «        ¦  «        ¦  «        ¦  «        ¦  «        S )Nú`ú` must be a lambda expressionr@   )r   rC   rB   r   r%   r&   rD   )r'   r(   r   s      r:   Úcompute_composition_semanticsrM   p   s©   € ØÐ˜8Ð+ØˆtÝØÕ"ñô ð 3ð 3à2ˆ8Ð2Ð2Ð2ñ3ô 3ð 3õ
 	 Ô 1Ð2Ñ2Ô2€AÝÝØÝ!ØÕ/°Õ:LÈQÑ:OÔ:OÑPÔPñô ñ	
ô 	
ñô ð r;   c                 óº  — | �|€d S t          | t          ¦  «        rt          | j        t          ¦  «        sJ d| › d�¦   «         ‚t          |t          ¦  «        sJ d|› d�¦   «         ‚t          | j        ¬¦  «        }t          t          |t          t          | t          |¦  «        ¦  «        t          |t          |¦  «        ¦  «        ¦  «        ¦  «        ¦  «        S )NrK   z.` must be a lambda expression with 2 argumentsrL   r@   )r   rC   r   rB   r   r%   r&   rD   )r'   r(   Úx_vars      r:   Úcompute_substitution_semanticsrP   ƒ   s  € ØÐ˜8Ð+ØˆtÝ�hÕ 0Ñ1Ô1ð DµjØŒÕ'ñ7ô 7ð Dð DàCˆ8ÐCÐCÐCñDô Dð Dõ ØÕ"ñô ð 3ð 3à2ˆ8Ð2Ð2Ð2ñ3ô 3ð 3õ
  HÔ$5Ð6Ñ6Ô6€EÝÝØÝ!Ý% hÕ0BÀ5Ñ0IÔ0IÑJÔJÝ% hÕ0BÀ5Ñ0IÔ0IÑJÔJñô ñ	
ô 	
ñô ð r;   r=   )	Ú__doc__rE   r   Únltk.sem.logicr%   r>   rI   rM   rP   © r;   r:   ú<module>rT      s‘   ððð ð €€€Ø 	€	€	€	à Ð Ð Ð ðJð Jð Jð JðZKð Kð Kð
ð 
ð 
ðð ð ð&ð ð ð ð r;   