+
    ÖÇÜhmA  ã                   óX  € ^ RI Ht ^ RIHtHt ]! 4       t ! R R4      t ! R R]4      t ! R R4      t ! R	 R
]4      t	 ! R R]	4      t
 ! R R]	4      t ! R R]4      t ! R R]4      t ! R R4      t ! R R]4      t ! R R]4      t ! R R]4      tR t]R8X  d
   ]! 4        R# R# )é    )ÚCounter)ÚAPPÚLogicParserc                   ó>   € ] tR t^tRtRtRt]].t]].,           tRt	R# )ÚTokensÚ(Ú)z-o© N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚOPENÚCLOSEÚIMPÚPUNCTÚTOKENSÚ__static_attributes__r
   ó    Ú6/usr/lib/python3/dist-packages/nltk/sem/linearlogic.pyr   r      s'   † à€DØ€Eð €Cà�5ˆM€EØ�c�U�]„Fr   r   c                   óN   a € ] tR t^t o RtR tR tR tR tR t	R t
R tR	tV tR
# )ÚLinearLogicParserz!A linear logic expression parser.c                óÀ   € \         P                  ! V 4       \        ^\        P                  ^R^/V n        V ;P                  \        P                  .,          un        R# )é   N)r   Ú__init__r   r   r   Úoperator_precedenceÚright_associated_operations©Úselfs   &r   r   ÚLinearLogicParser.__init__   s@   € Ü×Ò˜TÔ"ä$'¨¬F¯J©J¸¸4ÀÐ#CˆÔ Ø×(Ò(¬V¯Z©Z¨LÕ8×(r   c                ó"   € \         P                  # ©N)r   r   r   s   &r   Úget_all_symbolsÚ!LinearLogicParser.get_all_symbols$   s   € Ü�}‰}Ðr   c                óž   € V\         P                  9  d   V P                  W4      # V\         P                  8X  d   V P	                  W4      # R # r"   )r   r   Úhandle_variabler   Úhandle_open)r   ÚtokÚcontexts   &&&r   ÚhandleÚLinearLogicParser.handle'   sA   € Ø”f—m‘mÔ#Ø×'Ñ'¨Ó5Ð5Ø”F—K‘KÔØ×#Ñ# CÓ1Ð1ñ  r   c                ó<   € V\         P                  8X  d   \        # R # r"   )r   r   ÚImpExpression)r   r(   s   &&r   Úget_BooleanExpression_factoryÚ/LinearLogicParser.get_BooleanExpression_factory-   s   € Ø”&—*‘*ÔÜ Ð ár   c                ó   € V! W#4      # r"   r
   )r   ÚfactoryÚfirstÚseconds   &&&&r   Úmake_BooleanExpressionÚ(LinearLogicParser.make_BooleanExpression3   s   € Ù�uÓ%Ð%r   c                óT  € V P                  \        V4      '       dŒ   V P                  ^ 4      '       du   V P                  ^ 4      \        P
                  8X  dQ   V P                  4        V P                  \        4      pV P                  \        P                  4       \        WR4      pV# )zÐAttempt to make an application expression.  If the next tokens
are an argument in parens, then the argument expression is a
function being applied to the arguments.  Otherwise, return the
argument expression.N)
Úhas_priorityr   ÚinRangeÚtokenr   r   Úprocess_next_expressionÚassertNextTokenr   ÚApplicationExpression)r   Ú
expressionr)   Úarguments   &&& r   Úattempt_ApplicationExpressionÚ/LinearLogicParser.attempt_ApplicationExpression6   st   € ð
 ×ÑœS '×*Ò*Ø�|‰|˜A�Š 4§:¡:¨a£=´F·K±KÔ#?Ø—
‘
”Ø×7Ñ7¼Ó<�Ø×$Ñ$¤V§\¡\Ô2Ü2°:ÈÓN�
ØÐr   c                óh   € V^ ,          P                  4       '       d   \        V4      # \        V4      # )r   )ÚisupperÚVariableExpressionÚConstantExpression)r   Únames   &&r   Úmake_VariableExpressionÚ)LinearLogicParser.make_VariableExpressionC   s)   € Ø��7�?‰?×ÒÜ% dÓ+Ð+ä% dÓ+Ð+r   )r   N)r   r   r   r   Ú__doc__r   r#   r*   r.   r4   r?   rF   r   Ú__classdictcell__©Ú__classdict__s   @r   r   r      s0   ø‡ € Ù+ò9òò2òò&ò÷,ð ,r   r   c                   óT   a € ] tR t^Jt o ]! 4       t]R 4       tRR ltR t	R t
RtV tR# )Ú
Expressionc                ó8   € V P                   P                  V4      # r"   )Ú_linear_logic_parserÚparse)ÚclsÚss   &&r   Ú
fromstringÚExpression.fromstringM   s   € à×'Ñ'×-Ñ-¨aÓ0Ð0r   Nc                ó   € \        WV4      # r"   )r<   )r   ÚotherÚother_indicess   &&&r   ÚapplytoÚExpression.applytoQ   s   € Ü$ T°-Ó@Ð@r   c                ó$   € V P                  V4      # r"   )rX   ©r   rV   s   &&r   Ú__call__ÚExpression.__call__T   s   € Ø�|‰|˜EÓ"Ð"r   c                ó<   € R V P                   P                   RV  R2# )Ú<Ú Ú>)Ú	__class__r   r   s   &r   Ú__repr__ÚExpression.__repr__W   s"   € Ø�4—>‘>×*Ñ*Ð+¨1¨T¨F°!Ð4Ð4r   r
   r"   )r   r   r   r   r   rO   ÚclassmethodrS   rX   r\   rc   r   rI   rJ   s   @r   rM   rM   J   s5   ø‡ € Ù,Ó.Ðàñ1ó ð1ôAò#÷5ð 5r   rM   c                   ó^   a € ] tR t^[t o RR ltRR ltR tR tR tR t	R t
R	 tR
 tRtV tR# )ÚAtomicExpressionNc                ób   € \        V\        4      '       g   Q hWn        V'       g   . pW n        R# )zy
:param name: str for the constant name
:param dependencies: list of int for the indices on which this atom is dependent
N)Ú
isinstanceÚstrrE   Údependencies)r   rE   rk   s   &&&r   r   ÚAtomicExpression.__init__\   s*   € ô
 ˜$¤×$Ò$Ð$Ð$ØŒ	çØˆLØ(Ör   c                ó2   € V'       d   W9   d	   W,          # V # )zÍ
If 'self' is bound by 'bindings', return the atomic to which it is bound.
Otherwise, return self.

:param bindings: ``BindingDict`` A dictionary of bindings used to simplify
:return: ``AtomicExpression``
r
   ©r   Úbindingss   &&r   ÚsimplifyÚAtomicExpression.simplifyh   s   € ÷ ˜Ô(Ø•>Ð!àˆKr   c                ó   € . V n         V . 3# ©a  
From Iddo Lev's PhD Dissertation p108-109

:param index_counter: ``Counter`` for unique indices
:param glueFormulaFactory: ``GlueFormula`` for creating new glue formulas
:return: (``Expression``,set) for the compiled linear logic and any newly created glue formulas
©rk   ©r   Úindex_counterÚglueFormulaFactorys   &&&r   Úcompile_posÚAtomicExpression.compile_posu   ó   € ð ˆÔØ�bˆzÐr   c                ó   € . V n         V . 3# rs   rt   ru   s   &&&r   Úcompile_negÚAtomicExpression.compile_neg€   rz   r   c                ób   € VP                  V P                  P                  4       4      V n        R # r"   )Úinitialize_labelrE   Úlower©r   Úfstructs   &&r   Úinitialize_labelsÚ"AtomicExpression.initialize_labels‹   s   € Ø×,Ñ,¨T¯Y©Y¯_©_Ó->Ó?ˆŽ	r   c                óv   € V P                   VP                   8H  ;'       d    V P                  VP                  8H  # r"   )rb   rE   r[   s   &&r   Ú__eq__ÚAtomicExpression.__eq__Ž   s*   € Ø�~‰~ §¡Ñ0×LÐL°T·Y±YÀ%Ç*Á*Ñ5LÐLr   c                ó   € W8X  * # r"   r
   r[   s   &&r   Ú__ne__ÚAtomicExpression.__ne__‘   ó   € ØÒ Ð r   c                óv   € V P                   pV P                  '       d   VR V P                  ,          ,          pV# ©z%s)rE   rk   )r   Úaccums   & r   Ú__str__ÚAtomicExpression.__str__”   s1   € Ø—	‘	ˆØ××ÐØ�T˜D×-Ñ-Õ-Õ-ˆEØˆr   c                ó,   € \        V P                  4      # r"   )ÚhashrE   r   s   &r   Ú__hash__ÚAtomicExpression.__hash__š   s   € Ü�D—I‘I‹Ðr   )rk   rE   r"   )r   r   r   r   r   rp   rx   r|   rƒ   r†   r‰   r�   r“   r   rI   rJ   s   @r   rg   rg   [   s9   ø‡ € ô
)ôò	ò	ò@òMò!ò÷ð r   rg   c                   ó&   a € ] tR t^žt o R tRtV tR# )rD   c                óÒ   € \        V\        4      '       g   Q h\        V\        4      '       d    V\        W3.4      ,           # W8X  d   V# \        WV4      h  \         d     Li ; i)a®  
If 'other' is a constant, then it must be equal to 'self'.  If 'other' is a variable,
then it must not be bound to anything other than 'self'.

:param other: ``Expression``
:param bindings: ``BindingDict`` A dictionary of all current bindings
:return: ``BindingDict`` A new combined dictionary of of 'bindings' and any new binding
:raise UnificationException: If 'self' and 'other' cannot be unified in the context of 'bindings'
)ri   rM   rC   ÚBindingDictÚVariableBindingExceptionÚUnificationException)r   rV   ro   s   &&&r   ÚunifyÚConstantExpression.unifyŸ   sk   € ô ˜%¤×,Ò,Ð,Ð,Ü�eÔ/×0Ò0ðØ¤+°¨}¨oÓ">Õ>Ð>ð Œ]ØˆOÜ" 4°Ó9Ð9øô	 ,ô Ùðús   °A ÁA&Á%A&r
   N©r   r   r   r   rš   r   rI   rJ   s   @r   rD   rD   ž   s   ø‡ € ÷:ð :r   rD   c                   ó&   a € ] tR t^´t o R tRtV tR# )rC   c                ó¬   € \        V\        4      '       g   Q h W8X  d   V# V\        W3.4      ,           #   \         d   p\	        YT4      ThRp?ii ; i)aX  
'self' must not be bound to anything other than 'other'.

:param other: ``Expression``
:param bindings: ``BindingDict`` A dictionary of all current bindings
:return: ``BindingDict`` A new combined dictionary of of 'bindings' and the new binding
:raise UnificationException: If 'self' and 'other' cannot be unified in the context of 'bindings'
N)ri   rM   r—   r˜   r™   ©r   rV   ro   Úes   &&& r   rš   ÚVariableExpression.unifyµ   s\   € ô ˜%¤×,Ò,Ð,Ð,ð	EØŒ}Ø�à¤+°¨}¨oÓ">Õ>Ð>øÜ'ô 	EÜ& t°HÓ=À1ÐDûð	Eús   š6 ¢6 ¶AÁAÁAr
   Nrœ   rJ   s   @r   rC   rC   ´   s   ø‡ € ÷Eð Er   rC   c                   ó`   a € ] tR t^Èt o R tRR ltR tR tR tR t	R t
R	 tR
 tR tRtV tR# )r-   c                ó~   € \        V\        4      '       g   Q h\        V\        4      '       g   Q hWn        W n        R# )zk
:param antecedent: ``Expression`` for the antecedent
:param consequent: ``Expression`` for the consequent
N)ri   rM   Ú
antecedentÚ
consequent)r   r¤   r¥   s   &&&r   r   ÚImpExpression.__init__É   s4   € ô
 ˜*¤j×1Ò1Ð1Ð1Ü˜*¤j×1Ò1Ð1Ð1Ø$ŒØ$Žr   Nc                óŠ   € V P                  V P                  P                  V4      V P                  P                  V4      4      # r"   )rb   r¤   rp   r¥   rn   s   &&r   rp   ÚImpExpression.simplifyÓ   s6   € Ø�~‰~Ø�O‰O×$Ñ$ XÓ.°·±×0HÑ0HÈÓ0Ró
ð 	
r   c                ó$  € \        V\        4      '       g   Q h VV P                  P                  VP                  V4      ,           V P                  P                  VP                  V4      ,           #   \
         d   p\        YT4      ThRp?ii ; i)ah  
Both the antecedent and consequent of 'self' and 'other' must unify.

:param other: ``ImpExpression``
:param bindings: ``BindingDict`` A dictionary of all current bindings
:return: ``BindingDict`` A new combined dictionary of of 'bindings' and any new bindings
:raise UnificationException: If 'self' and 'other' cannot be unified in the context of 'bindings'
N)ri   r-   r¤   rš   r¥   r˜   r™   rŸ   s   &&& r   rš   ÚImpExpression.unifyØ   sˆ   € ô ˜%¤×/Ò/Ð/Ð/ð	EàØ—/‘/×'Ñ'¨×(8Ñ(8¸(ÓCõDà—/‘/×'Ñ'¨×(8Ñ(8¸(ÓCõDðøô
 (ô 	EÜ& t°HÓ=À1ÐDûð	Eús   šAA2 Á2BÁ=B
Â
Bc                óœ   € V P                   P                  W4      w  r4V P                  P                  W4      w  rV\	        W54      WF,           3# rs   )r¤   r|   r¥   rx   r-   )r   rv   rw   ÚaÚa_newÚcÚc_news   &&&    r   rx   ÚImpExpression.compile_posë   sB   € ð —_‘_×0Ñ0°ÓS‰
ˆØ—_‘_×0Ñ0°ÓS‰
ˆÜ˜aÓ# U¥]Ð3Ð3r   c                ó  € V P                   P                  W4      w  r4V P                  P                  W4      w  rVVP	                  4       pVP
                  P                  V4       V! RV,          W704      pWTV,           V.,           3# )a  
From Iddo Lev's PhD Dissertation p108-109

:param index_counter: ``Counter`` for unique indices
:param glueFormulaFactory: ``GlueFormula`` for creating new glue formulas
:return: (``Expression``,list of ``GlueFormula``) for the compiled linear logic and any newly created glue formulas
zv%s)r¤   rx   r¥   r|   Úgetrk   Úappend)	r   rv   rw   r¬   r­   r®   r¯   Úfresh_indexÚnew_vs	   &&&      r   r|   ÚImpExpression.compile_neg÷   sw   € ð —_‘_×0Ñ0°ÓS‰
ˆØ—_‘_×0Ñ0°ÓS‰
ˆØ#×'Ñ'Ó)ˆØ	�‰×Ñ˜kÔ*Ù" 5¨;Õ#6¸¸=ÓIˆØ˜5•= E 7Õ*Ð+Ð+r   c                ór   € V P                   P                  V4       V P                  P                  V4       R # r"   )r¤   rƒ   r¥   r�   s   &&r   rƒ   ÚImpExpression.initialize_labels  s&   € Ø�‰×)Ñ)¨'Ô2Ø�‰×)Ñ)¨'Ö2r   c                ó¸   € V P                   VP                   8H  ;'       d;    V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r"   )rb   r¤   r¥   r[   s   &&r   r†   ÚImpExpression.__eq__
  sO   € à�N‰N˜eŸo™oÑ-÷ 4ð 4Ø—‘ 5×#3Ñ#3Ñ3÷4ð 4à—‘ 5×#3Ñ#3Ñ3ð	
r   c                ó   € W8X  * # r"   r
   r[   s   &&r   r‰   ÚImpExpression.__ne__  r‹   r   c                ó¨   € R P                  \        P                  V P                  \        P                  V P
                  \        P                  4      # )z{}{} {} {}{})Úformatr   r   r¤   r   r¥   r   r   s   &r   r�   ÚImpExpression.__str__  s8   € Ø×$Ñ$Ü�K‰KØ�O‰OÜ�J‰JØ�O‰OÜ�L‰Ló
ð 	
r   c                óŒ   € \        \        V P                  4       \        P                   \        V P                  4       24      # r"   )r’   r¤   r   r   r¥   r   s   &r   r“   ÚImpExpression.__hash__  s2   € Ü”t˜DŸO™OÓ,Ð-¬f¯j©j¨\¼$¸t¿¹Ó:OÐ9PÐQÓRÐRr   )r¤   r¥   r"   )r   r   r   r   r   rp   rš   rx   r|   rƒ   r†   r‰   r�   r“   r   rI   rJ   s   @r   r-   r-   È   s?   ø‡ € ò%ô
ò
Eò&
4ò,ò3ò
ò!ò
÷Sð Sr   r-   c                   óL   a € ] tR tRt o R
R ltR
R ltR tR tR tR t	R	t
V tR# )r<   i!  Nc           	     óþ  € VP                  4       pVP                  4       p\        V\        4      '       g   Q h\        V\        4      '       g   Q h\	        4       p \        V\
        4      '       d   WaP                  ,          p\        V\
        4      '       d   WbP                  ,          pWdP                  P                  WV4      ,          pT'       do   \        TP                  P                  4      T8  g   \        RT: RT: 24      h\        TP                  P                  4      T8X  d   \        RT: RT: 24      hYn        Y n        Y`n        R#   \         d   p\        RT RT RT 24      ThRp?ii ; i)a1  
:param function: ``Expression`` for the function
:param argument: ``Expression`` for the argument
:param argument_indices: set for the indices of the glue formula from which the argument came
:raise LinearLogicApplicationException: If 'function' cannot be applied to 'argument' given 'argument_indices'.
zCannot apply z to z. NzGDependencies unfulfilled when attempting to apply Linear Logic formula zZDependencies not a proper subset of indices when attempting to apply Linear Logic formula )rp   ri   r-   rM   r—   r<   ro   r¤   rš   r™   ÚLinearLogicApplicationExceptionÚsetrk   Úfunctionr>   )r   rÆ   r>   Úargument_indicesÚfunction_simpÚargument_simpro   r    s   &&&&    r   r   ÚApplicationExpression.__init__"  sU  € ð !×)Ñ)Ó+ˆØ ×)Ñ)Ó+ˆä˜-¬×7Ò7Ð7Ð7Ü˜-¬×4Ò4Ð4Ð4ä“=ˆð		Ü˜(Ô$9×:Ò:Ø×-Ñ-Õ-�Ü˜(Ô$9×:Ò:Ø×-Ñ-Õ-�Ø×0Ñ0×6Ñ6°}ÓOÕOˆH÷ ä�}×/Ñ/×<Ñ<Ó=Ð@PÔPÝ5ã$¢mð5óð ô �=×+Ñ+×8Ñ8Ó9Ð=MÔMÝ5ã$¢mð5óð ð
 !ŒØ ŒØ Žøô+ $ô 	Ü1Ø ˜¨d°=°/ÀÀAÀ3ÐGóàðûð	ús   ÁA1E ÅE<Å"E7Å7E<c                ót   € V'       g   V P                   pV P                  P                  V4      P                  # )a  
Since function is an implication, return its consequent.  There should be
no need to check that the application is valid since the checking is done
by the constructor.

:param bindings: ``BindingDict`` A dictionary of bindings used to simplify
:return: ``Expression``
)ro   rÆ   rp   r¥   rn   s   &&r   rp   ÚApplicationExpression.simplifyN  s+   € ÷ Ø—}‘}ˆHà�}‰}×%Ñ% hÓ/×:Ñ:Ð:r   c                ó¸   € V P                   VP                   8H  ;'       d;    V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r"   )rb   rÆ   r>   r[   s   &&r   r†   ÚApplicationExpression.__eq__\  sK   € à�N‰N˜eŸo™oÑ-÷ 0ð 0Ø—‘ §¡Ñ/÷0ð 0à—‘ §¡Ñ/ð	
r   c                ó   € W8X  * # r"   r
   r[   s   &&r   r‰   ÚApplicationExpression.__ne__c  r‹   r   c                ó¬   € R V P                   ,          \        P                  ,           R V P                  ,          ,           \        P                  ,           # r�   )rÆ   r   r   r>   r   r   s   &r   r�   ÚApplicationExpression.__str__f  s1   € Ø�d—m‘mÕ#¤f§k¡kÕ1°D¸4¿=¹=Õ4HÕHÌ6Ï<É<ÕWÐWr   c                óŒ   € \        \        V P                  4       \        P                   \        V P                  4       24      # r"   )r’   r¤   r   r   r¥   r   s   &r   r“   ÚApplicationExpression.__hash__i  s2   € Ü”t˜DŸO™OÓ,Ð-¬f¯k©k¨]¼4ÀÇÁÓ;PÐ:QÐRÓSÐSr   )r>   ro   rÆ   r"   )r   r   r   r   r   rp   r†   r‰   r�   r“   r   rI   rJ   s   @r   r<   r<   !  s,   ø‡ € ô*!ôX;ò
ò!òX÷Tð Tr   r<   c                   óZ   a € ] tR tRt o RR ltR tR tR tR tR t	R	 t
R
 tR tRtV tR# )r—   im  Nc                ó’   € / V n         \        V\        4      '       d   VP                  4       pV'       d   V F	  w  r#W0V&   K  	  R# R# )z¾
:param bindings:
    list [(``VariableExpression``, ``AtomicExpression``)] to initialize the dictionary
    dict {``VariableExpression``: ``AtomicExpression``} to initialize the dictionary
N)Údri   ÚdictÚitems)r   ro   ÚvÚbs   &&  r   r   ÚBindingDict.__init__n  s?   € ð ˆŒä�h¤×%Ò%Ø—~‘~Ó'ˆHçÛ ‘�Ø�Q“ó !ñ r   c                ó
  € \        V\        4      '       g   Q h\        V\        4      '       g   Q hW8w  g   Q hV P                  P	                  VR4      pV'       d   W#8X  d   W P                  V&   R# \        RV,          4      h)ac  
A binding is consistent with the dict if its variable is not already bound, OR if its
variable is already bound to its argument.

:param variable: ``VariableExpression`` The variable bind
:param binding: ``Expression`` The expression to which 'variable' should be bound
:raise VariableBindingException: If the variable cannot be bound in this dictionary
Nz*Variable %s already bound to another value)ri   rC   rM   r×   r²   r˜   )r   ÚvariableÚbindingÚexistings   &&& r   Ú__setitem__ÚBindingDict.__setitem__}  st   € ô ˜(Ô$6×7Ò7Ð7Ð7Ü˜'¤:×.Ò.Ð.Ð.àÔ"Ð"Ð"à—6‘6—:‘:˜h¨Ó-ˆç˜7Ô.Ø&�F‰F�8Óä*Ø<ÀÕIóð r   c                ó¾   € \        V\        4      '       g   Q hV P                  V,          pV'       d    V P                  V,          pK  R#   \         d    Tu # i ; i)z4
Return the expression to which 'variable' is bound
N)ri   rC   r×   ÚKeyError)r   rÞ   Úintermediates   && r   Ú__getitem__ÚBindingDict.__getitem__”  sX   € ô ˜(Ô$6×7Ò7Ð7Ð7à—v‘v˜hÕ'ˆßð$Ø#Ÿv™v lÕ3’ñ øô ô $Ø#Ò#ð$ús   µA ÁAÁAc                ó   € WP                   9   # r"   ©r×   )r   Úitems   &&r   Ú__contains__ÚBindingDict.__contains__¡  s   € Ø—v‘v‰~Ðr   c                ó
  €  \        4       pV P                   F  pV P                  V,          W#&   K  	  VP                   F  pVP                  V,          W#&   K  	  V#   \         d   p\        RT : RT: 24      ThRp?ii ; i)zø
:param other: ``BindingDict`` The dict with which to combine self
:return: ``BindingDict`` A new dict containing all the elements of both parameters
:raise VariableBindingException: If the parameter dictionaries are not consistent with each other
z;Attempting to add two contradicting VariableBindingsLists: ú, N)r—   r×   r˜   )r   rV   ÚcombinedrÚ   r    s   &&   r   Ú__add__ÚBindingDict.__add__¤  sz   € ð	Ü"“}ˆHØ—V”V�Ø"Ÿf™f Q�i�“ñ à—W”W�Ø#Ÿg™g a�j�“ñ àˆOøÜ'ô 	Ý*ã48º%ðAóð ðûð	ús   ‚AA ÁBÁ)A=Á=Bc                ó   € W8X  * # r"   r
   r[   s   &&r   r‰   ÚBindingDict.__ne__·  r‹   r   c                ól   € \        V\        4      '       g   \        hV P                  VP                  8H  # r"   )ri   r—   Ú	TypeErrorr×   r[   s   &&r   r†   ÚBindingDict.__eq__º  s'   € Ü˜%¤×-Ò-ÜˆOØ�v‰v˜Ÿ™Ñ Ð r   c                ó˜   a € R RP                  V 3R l\        S P                  P                  4       4       4       4      ,           R,           # )Ú{rî   c              3   óR   <"  € T F  q R SP                   V,           2x € K  	  R# 5i)z: Nré   )Ú.0rÚ   r   s   & €r   Ú	<genexpr>Ú&BindingDict.__str__.<locals>.<genexpr>À  s$   øé € ÐRÑ<Q°q  B t§v¡v¨a¥y kÕ2Ó<Qùs   ƒ$'Ú})ÚjoinÚsortedr×   Úkeysr   s   fr   r�   ÚBindingDict.__str__¿  s2   ø€ Ø�T—Y‘YÔR¼FÀ4Ç6Á6Ç;Á;Ã=Ô<QÓRÓRÕRÐUXÕXÐXr   c                ó   € R V ,          # )zBindingDict: %sr
   r   s   &r   rc   ÚBindingDict.__repr__Â  s   € Ø  4Õ'Ð'r   ré   r"   )r   r   r   r   r   rá   ræ   rë   rð   r‰   r†   r�   rc   r   rI   rJ   s   @r   r—   r—   m  s8   ø‡ € ôòò.$òòò&!ò!ò
Y÷(ð (r   r—   c                   ó   € ] tR tRtRtR# )r˜   iÆ  r
   N©r   r   r   r   r   r
   r   r   r˜   r˜   Æ  ó   † Ûr   r˜   c                   ó&   a € ] tR tRt o R tRtV tR# )r™   iÊ  c           	     óD   € \         P                  V R V RV RV 24       R# )zCannot unify z with z given N)Ú	Exceptionr   )r   r¬   rÛ   ro   s   &&&&r   r   ÚUnificationException.__init__Ë  s%   € Ü×Ñ˜4 =°°°6¸!¸¸GÀHÀ:Ð!NÖOr   r
   N)r   r   r   r   r   r   rI   rJ   s   @r   r™   r™   Ê  s   ø‡ € ÷Pð Pr   r™   c                   ó   € ] tR tRtRtR# )rÄ   iÏ  r
   Nr  r
   r   r   rÄ   rÄ   Ï  r  r   rÄ   c                  ó¦  € \         P                  p \        V ! R 4      4       \        V ! R4      4       \        V ! R4      4       \        V ! R4      4       \        V ! R4      P                  4       4       \        V ! R4      P                  4       4       \        V ! R4      P                  4       4       \        V ! R4      P                  4       4       R# )	Úfz(g -o f)z((g -o G) -o G)zg -o h -o fz(g -o f)(g)z(H -o f)(g)z((g -o G) -o G)((g -o f))z(H -o H)((g -o f))N)rM   rS   Úprintrp   )Úlexprs    r   Údemor  Ó  s›   € Ü×!Ñ!€Eä	‰%�‹+ÔÜ	‰%�Ó
ÔÜ	‰%Ð"Ó
#Ô$Ü	‰%�Ó
Ô Ü	‰%�Ó
×
(Ñ
(Ó
*Ô+Ü	‰%�Ó
×
(Ñ
(Ó
*Ô+Ü	‰%Ð,Ó
-×
6Ñ
6Ó
8Ô9Ü	‰%Ð%Ó
&×
/Ñ
/Ó
1Ö2r   Ú__main__N)Únltk.internalsr   Únltk.sem.logicr   r   Ú_counterr   r   rM   rg   rD   rC   r-   r<   r—   r	  r˜   r™   rÄ   r  r   r
   r   r   Ú<module>r     sÎ   ðõ #ß +á‹9€÷	ñ 	ô,,˜ô ,,÷^5ñ 5ô"@�zô @ôF:Ð)ô :ô,EÐ)ô Eô(VS�Jô VSôrIT˜Jô IT÷XV(ñ V(ôr	˜yô 	ôP˜9ô Pô
	 iô 	ò
3ð ˆzÔÙ†Fñ r   