§
    íóÉjÍl  ã                   ój  — d Z ddlZddlmZmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZ  e¦   «         Z G d„ de¦  «        Z G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Zd„ Z d„ Z!dd„Z"d„ Z#e$dk    r e#¦   «          dS dS )z8
Module for a tableau-based First Order theorem prover.
é    N)ÚBaseProverCommandÚProver)ÚCounter)ÚAbstractVariableExpressionÚAllExpressionÚAndExpressionÚApplicationExpressionÚEqualityExpressionÚExistsExpressionÚ
ExpressionÚFunctionVariableExpressionÚIffExpressionÚImpExpressionÚLambdaExpressionÚNegatedExpressionÚOrExpressionÚVariableÚVariableExpressionÚunique_variablec                   ó   — e Zd ZdS )ÚProverParseErrorN)Ú__name__Ú
__module__Ú__qualname__© ó    úy/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib/python3.11/site-packages/nltk/inference/tableau.pyr   r   '   s   € € € € € Ø€Dr   r   c                   óÀ   — e Zd ZdZdZdZdZdd„Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         ZdS )ÚTableauProverFé<   NéÈ   c                 ó>  — |sg }d }	 t          ¦   «         }|r|                     | ¦  «         |                     |¦  «         t          |¦  «        }| j        rt          j        ¦   «         | j        z   nd | _        |                      |t          ¦   «         t          ¦   «         |¦  «        }nW# t          $ rJ}| j        r%t          |¦  «                             d¦  «        rd}n|rt          |¦  «         n|‚Y d }~nd }~ww xY w|d                     |j        ¦  «        fS )Nz maximum recursion depth exceededFú
)ÚAgendaÚputÚput_allÚDebugÚTIMEOUTÚtimeÚ	monotonicÚ	_deadlineÚ_attempt_proofÚsetÚRuntimeErrorÚ_assume_falseÚstrÚ
startswithÚprintÚjoinÚlines)ÚselfÚgoalÚassumptionsÚverboseÚresultÚagendaÚdebuggerÚes           r   Ú_provezTableauProver._proveA   s.  € Øð 	ØˆKàˆð	Ý‘X”XˆFØð "Ø—
’
˜D˜5Ñ!Ô!Ð!Ø�NŠN˜;Ñ'Ô'Ð'Ý˜W‘~”~ˆHØ@DÄÐV�Tœ^Ñ-Ô-°´Ñ<Ð<ÐRVˆDŒNØ×(Ò(¨µ±´½¹¼¸xÑHÔHˆFˆFøÝð 		ð 		ð 		ØÔ!ð ¥c¨!¡f¤f×&7Ò&7Ø2ñ'ô 'ð ð ��àð Ý˜!‘H”H�H�Hà�Gøøøøøøøøøð		øøøð ˜Ÿ	š	 (¤.Ñ1Ô1Ð2Ð2s   ˆB#B, Â,
D Â6A C;Ã;D c           	      óx  — |j         | j        k    r|                     d¦  «         dS | j        �3t	          j        ¦   «         | j        k    r|                     d¦  «         dS |                     ¦   «         \  \  }}}|s|                     d¦  «         dS i t          j        | j	        “t          j
        | j        “t          j        | j        “t          j        | j        “t          j        | j        “t          j        | j        “t          j        | j        “t          j        | j        “t          j        | j        “t          j        | j        “t          j        | j        “t          j        | j        “t          j         | j!        “t          j"        | j#        “t          j$        | j%        “t          j&        | j'        “t          j(        | j)        “t          j*        | j+        t          j,        | j-        t          j.        | j/        t          j0        | j1        i¥|         }|                     ||f¦  «          |||||||¦  «        S )NzMAX DEPTH REACHEDFzTIMEOUT REACHEDzAGENDA EMPTY)2ÚindentÚMAX_TABLEAU_DEPTHÚliner+   r)   r*   Ú	pop_firstÚ
CategoriesÚATOMÚ_attempt_proof_atomÚPROPÚ_attempt_proof_propÚN_ATOMÚ_attempt_proof_n_atomÚN_PROPÚ_attempt_proof_n_propÚAPPÚ_attempt_proof_appÚN_APPÚ_attempt_proof_n_appÚN_EQÚ_attempt_proof_n_eqÚD_NEGÚ_attempt_proof_d_negÚN_ALLÚ_attempt_proof_n_allÚN_EXISTSÚ_attempt_proof_n_someÚANDÚ_attempt_proof_andÚN_ORÚ_attempt_proof_n_orÚN_IMPÚ_attempt_proof_n_impÚORÚ_attempt_proof_orÚIMPÚ_attempt_proof_impÚN_ANDÚ_attempt_proof_n_andÚIFFÚ_attempt_proof_iffÚN_IFFÚ_attempt_proof_n_iffÚEQÚ_attempt_proof_eqÚEXISTSÚ_attempt_proof_someÚALLÚ_attempt_proof_all)	r5   r:   Úaccessible_varsÚatomsÚdebugÚcurrentÚcontextÚcategoryÚproof_methods	            r   r,   zTableauProver._attempt_proofZ   s=  € ð
 Œ<˜$Ô0Ò0Ð0Ø�JŠJÐ*Ñ+Ô+Ð+Ø�5ð
 Œ>Ð%­$¬.Ñ*:Ô*:¸T¼^Ò*KÐ*KØ�JŠJÐ(Ñ)Ô)Ð)Ø�5à'-×'7Ò'7Ñ'9Ô'9Ñ$Ñˆ�'˜Hð ð 	Ø�JŠJ�~Ñ&Ô&Ð&Ø�5ð
ÝŒO˜TÔ5ð
åŒO˜TÔ5ð
õ Ô˜tÔ9ð
õ Ô˜tÔ9ð	
õ
 ŒN˜DÔ3ð
õ Ô˜dÔ7ð
õ ŒO˜TÔ5ð
õ Ô˜dÔ7ð
õ Ô˜dÔ7ð
õ Ô Ô!;ð
õ ŒN˜DÔ3ð
õ ŒO˜TÔ5ð
õ Ô˜dÔ7ð
õ ŒM˜4Ô1ð
õ ŒN˜DÔ3ð
õ  Ô˜dÔ7ð!
õ" ŒN˜DÔ3ð#
õ$ Ô˜dÔ7ÝŒM˜4Ô1ÝÔ˜tÔ7ÝŒN˜DÔ3ð+
ð 
ð, ô-ˆð0 	�
Š
�G˜WÐ%Ñ&Ô&Ð&Øˆ|˜G W¨f°oÀuÈeÑTÔTÐTr   c                 óÈ  — |df|v r|                      dd¦  «         dS |ryt          |j        t          ¦  «        r|                     ¦   «         }|                      ||¦  «                             ¦   «         ¦  «         |                      ||||dz   ¦  «        S |                     ¦   «          |                      ||t          |j
        ¦  «        z  ||dfhz  |dz   ¦  «        S ©NTÚCLOSEDé   F)rA   Ú
isinstanceÚtermr   Únegater%   Úsimplifyr,   Úmark_alls_freshr-   Úargs©r5   rq   rr   r:   rn   ro   rp   s          r   rE   z!TableauProver._attempt_proof_atomŒ   sö   € ð �Tˆ?˜eÐ#Ð#Ø�JŠJ�x Ñ#Ô#Ð#Ø�4àð 	Ý˜'œ,Õ(9Ñ:Ô:ð +Ø!Ÿ.š.Ñ*Ô*�Ø�JŠJ�w�w˜wÑ'Ô'×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ø×&Ò& v¨ÀÀuÈqÁyÑQÔQÐQð ×"Ò"Ñ$Ô$Ð$Ø×&Ò&ØØ¥# g¤lÑ"3Ô"3Ñ3Ø˜' 5Ð)Ð*Ñ*Ø˜‘	ñ	ô ð r   c                 óæ  — |j         df|v r|                     dd¦  «         dS |ryt          |j         t          ¦  «        r|                     ¦   «         }|                      ||¦  «                             ¦   «         ¦  «         |                      ||||dz   ¦  «        S |                     ¦   «          |                      ||t          |j         j
        ¦  «        z  ||j         dfhz  |dz   ¦  «        S ©NFrw   rx   T)rz   rA   ry   r   r{   r%   r|   r,   r}   r-   r~   r   s          r   rI   z#TableauProver._attempt_proof_n_atom£   sþ   € ð ŒL˜%Ð  EÐ)Ð)Ø�JŠJ�x Ñ#Ô#Ð#Ø�4àð 	Ý˜'œ,Õ(9Ñ:Ô:ð +Ø!Ÿ.š.Ñ*Ô*�Ø�JŠJ�w�w˜wÑ'Ô'×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ø×&Ò& v¨ÀÀuÈqÁyÑQÔQÐQð ×"Ò"Ñ$Ô$Ð$Ø×&Ò&ØØ¥# g¤lÔ&7Ñ"8Ô"8Ñ8Ø˜'œ,¨Ð-Ð.Ñ.Ø˜‘	ñ	ô ð r   c                 ó¨   — |df|v r|                      dd¦  «         dS |                     ¦   «          |                      ||||dfhz  |dz   ¦  «        S rv   )rA   r}   r,   r   s          r   rG   z!TableauProver._attempt_proof_propº   sr   € ð �Tˆ?˜eÐ#Ð#Ø�JŠJ�x Ñ#Ô#Ð#Ø�4ð 	×ÒÑ Ô Ð Ø×"Ò"Ø�O U¨w¸Ð.>Ð-?Ñ%?ÀÈÁñ
ô 
ð 	
r   c                 ó¼   — |j         df|v r|                     dd¦  «         dS |                     ¦   «          |                      ||||j         dfhz  |dz   ¦  «        S r�   )rz   rA   r}   r,   r   s          r   rK   z#TableauProver._attempt_proof_n_propÈ   sw   € ð ŒL˜%Ð  EÐ)Ð)Ø�JŠJ�x Ñ#Ô#Ð#Ø�4ð 	×ÒÑ Ô Ð Ø×"Ò"Ø�O U¨w¬|¸TÐ.BÐ-CÑ%CÀUÈQÁYñ
ô 
ð 	
r   c                 óB  — |                      ¦   «         \  }}t          |¦  «        D ]ê\  }	}
t                               |
¦  «        sË|}t	          dt
                               ¦   «         z  ¦  «        }t          |¦  «        D ].\  }}|	|k    r |t          |¦  «        ¦  «        n
 ||¦  «        }Œ/|r ||¦  «                             ¦   «         }t          ||¦  «        }| 
                    |
|¦  «         |                      ||||dz   ¦  «        c S Œët          d¦  «        ‚©NzX%srx   z=If this method is called, there must be a non-atomic argument)ÚuncurryÚ	enumerater   Úis_atomr   Ú_counterÚgetr   r|   r   r%   r,   Ú	Exception©r5   rq   rr   r:   rn   ro   rp   Úfr~   ÚiÚargÚctxÚnvÚjÚas                  r   rM   z TableauProver._attempt_proof_appÖ   s2  € ð —/’/Ñ#Ô#‰ˆˆ4Ý ‘o”oð 
	Vð 
	V‰FˆAˆsÝ ×(Ò(¨Ñ-Ô-ð 	VØ�Ý˜e¥h§l¢l¡n¤nÑ4Ñ5Ô5�Ý% d™OœOð Lð L‘D�A�qØ9:¸aº¸˜#˜#Õ0°Ñ4Ô4Ñ5Ô5Ð5ÀSÀSÈÁVÄV�C�CØð 2Ø!˜' #™,œ,×/Ò/Ñ1Ô1�CÝ& r¨3Ñ/Ô/�Ø—
’
˜3 Ñ$Ô$Ð$Ø×*Ò*¨6°?ÀEÈ5ÐSTÉ9ÑUÔUÐUÐUÐUð	Võ ÐWÑXÔXÐXr   c                 óP  — |j                              ¦   «         \  }}t          |¦  «        D ]ì\  }	}
t                               |
¦  «        sÍ|}t          dt                               ¦   «         z  ¦  «        }t          |¦  «        D ].\  }}|	|k    r |t          |¦  «        ¦  «        n
 ||¦  «        }Œ/|r ||¦  «         	                    ¦   «         }t          || ¦  «        }|                     |
 |¦  «         |                      ||||dz   ¦  «        c S Œít          d¦  «        ‚r…   )rz   r†   r‡   r   rˆ   r   r‰   rŠ   r   r|   r   r%   r,   r‹   rŒ   s                  r   rO   z"TableauProver._attempt_proof_n_appç   s:  € ð ”,×&Ò&Ñ(Ô(‰ˆˆ4Ý ‘o”oð 	Vð 	V‰FˆAˆsÝ ×(Ò(¨Ñ-Ô-ð 
VØ�Ý˜e¥h§l¢l¡n¤nÑ4Ñ5Ô5�Ý% d™OœOð Lð L‘D�A�qØ9:¸aº¸˜#˜#Õ0°Ñ4Ô4Ñ5Ô5Ð5ÀSÀSÈÁVÄV�C�CØð 2à!˜' #™,œ,×/Ò/Ñ1Ô1�CÝ& r¨C¨4Ñ0Ô0�Ø—
’
˜C˜4 Ñ%Ô%Ð%Ø×*Ò*¨6°?ÀEÈ5ÐSTÉ9ÑUÔUÐUÐUÐUð
Võ ÐWÑXÔXÐXr   c                 ó*  — |j         j        |j         j        k    r|                     dd¦  «         dS |t          j                                      ||f¦  «         d|_        |                      |||j         j        |j         j        hz  ||dz   ¦  «        S )Nrw   rx   T)	rz   ÚfirstÚsecondrA   rC   rP   ÚaddÚ
_exhaustedr,   r   s          r   rQ   z!TableauProver._attempt_proof_n_eqù   s–   € ð Œ<Ô ¤Ô!4Ò4Ð4Ø�JŠJ�x Ñ#Ô#Ð#Ø�4à�zŒÔ×#Ò# W¨gÐ$6Ñ7Ô7Ð7Ø!ˆÔØ×"Ò"ØØ˜wœ|Ô1°7´<Ô3FÐGÑGØØ�A‰Iñ	
ô 
ð 	
r   c                 óx   — |                      |j        j        |¦  «         |                      ||||dz   ¦  «        S ©Nrx   )r%   rz   r,   r   s          r   rS   z"TableauProver._attempt_proof_d_neg  s;   € ð 	�
Š
�7”<Ô$ gÑ.Ô.Ð.Ø×"Ò" 6¨?¸EÀ5È1Á9ÑMÔMÐMr   c                 óÌ   — |t           j                                      t          |j        j        |j        j         ¦  «        |f¦  «         |                      ||||dz   ¦  «        S r›   )rC   rj   r˜   r   rz   Úvariabler,   r   s          r   rU   z"TableauProver._attempt_proof_n_all  sc   € ð 	�zÔ Ô!×%Ò%Ý˜gœlÔ3°g´lÔ6GÐ5GÑHÔHÈ'ÐRñ	
ô 	
ð 	
ð ×"Ò" 6¨?¸EÀ5È1Á9ÑMÔMÐMr   c                 óÌ   — |t           j                                      t          |j        j        |j        j         ¦  «        |f¦  «         |                      ||||dz   ¦  «        S r›   )rC   rl   r˜   r   rz   r�   r,   r   s          r   rW   z#TableauProver._attempt_proof_n_some  sb   € ð 	�zŒ~Ô×"Ò"Ý˜7œ<Ô0°7´<Ô3DÐ2DÑEÔEÀwÐOñ	
ô 	
ð 	
ð ×"Ò" 6¨?¸EÀ5È1Á9ÑMÔMÐMr   c                 ó¤   — |                      |j        |¦  «         |                      |j        |¦  «         |                      ||||dz   ¦  «        S r›   )r%   r–   r—   r,   r   s          r   rY   z TableauProver._attempt_proof_and"  sN   € ð 	�
Š
�7”= 'Ñ*Ô*Ð*Ø�
Š
�7”> 7Ñ+Ô+Ð+Ø×"Ò" 6¨?¸EÀ5È1Á9ÑMÔMÐMr   c                 ó¼   — |                      |j        j         |¦  «         |                      |j        j         |¦  «         |                      ||||dz   ¦  «        S r›   ©r%   rz   r–   r—   r,   r   s          r   r[   z!TableauProver._attempt_proof_n_or)  sZ   € ð 	�
Š
�G”LÔ&Ð&¨Ñ0Ô0Ð0Ø�
Š
�G”LÔ'Ð'¨Ñ1Ô1Ð1Ø×"Ò" 6¨?¸EÀ5È1Á9ÑMÔMÐMr   c                 óº   — |                      |j        j        |¦  «         |                      |j        j         |¦  «         |                      ||||dz   ¦  «        S r›   r¡   r   s          r   r]   z"TableauProver._attempt_proof_n_imp0  sW   € ð 	�
Š
�7”<Ô% wÑ/Ô/Ð/Ø�
Š
�G”LÔ'Ð'¨Ñ1Ô1Ð1Ø×"Ò" 6¨?¸EÀ5È1Á9ÑMÔMÐMr   c                 ó  — |                      ¦   «         }|                     |j        |¦  «         |                     |j        |¦  «         |                      ||||dz   ¦  «        o|                      ||||dz   ¦  «        S r›   ©Úcloner%   r–   r—   r,   ©r5   rq   rr   r:   rn   ro   rp   Ú
new_agendas           r   r_   zTableauProver._attempt_proof_or7  s„   € ð —\’\‘^”^ˆ
Ø�
Š
�7”= 'Ñ*Ô*Ð*Ø�Š�w”~ wÑ/Ô/Ð/Ø×"Ò"Ø�O U¨E°A©Iñ
ô 
ð Qà×!Ò! *¨o¸uÀeÈaÁiÑPÔPð	Qr   c                 ó  — |                      ¦   «         }|                     |j         |¦  «         |                     |j        |¦  «         |                      ||||dz   ¦  «        o|                      ||||dz   ¦  «        S r›   r¤   r¦   s           r   ra   z TableauProver._attempt_proof_impA  s†   € ð —\’\‘^”^ˆ
Ø�
Š
�G”M�> 7Ñ+Ô+Ð+Ø�Š�w”~ wÑ/Ô/Ð/Ø×"Ò"Ø�O U¨E°A©Iñ
ô 
ð Qà×!Ò! *¨o¸uÀeÈaÁiÑPÔPð	Qr   c                 ó  — |                      ¦   «         }|                     |j        j         |¦  «         |                     |j        j         |¦  «         |                      ||||dz   ¦  «        o|                      ||||dz   ¦  «        S r›   ©r¥   r%   rz   r–   r—   r,   r¦   s           r   rc   z"TableauProver._attempt_proof_n_andK  s�   € ð —\’\‘^”^ˆ
Ø�
Š
�G”LÔ&Ð&¨Ñ0Ô0Ð0Ø�Š˜œÔ+Ð+¨WÑ5Ô5Ð5Ø×"Ò"Ø�O U¨E°A©Iñ
ô 
ð Qà×!Ò! *¨o¸uÀeÈaÁiÑPÔPð	Qr   c                 ór  — |                      ¦   «         }|                     |j        |¦  «         |                     |j        |¦  «         |                     |j         |¦  «         |                     |j         |¦  «         |                      ||||dz   ¦  «        o|                      ||||dz   ¦  «        S r›   r¤   r¦   s           r   re   z TableauProver._attempt_proof_iffU  s´   € ð —\’\‘^”^ˆ
Ø�
Š
�7”= 'Ñ*Ô*Ð*Ø�
Š
�7”> 7Ñ+Ô+Ð+Ø�Š˜œ�~ wÑ/Ô/Ð/Ø�Š˜œ�¨Ñ0Ô0Ð0Ø×"Ò"Ø�O U¨E°A©Iñ
ô 
ð Qà×!Ò! *¨o¸uÀeÈaÁiÑPÔPð	Qr   c                 óš  — |                      ¦   «         }|                     |j        j        |¦  «         |                     |j        j         |¦  «         |                     |j        j         |¦  «         |                     |j        j        |¦  «         |                      ||||dz   ¦  «        o|                      ||||dz   ¦  «        S r›   rª   r¦   s           r   rg   z"TableauProver._attempt_proof_n_iffa  sÂ   € ð —\’\‘^”^ˆ
Ø�
Š
�7”<Ô% wÑ/Ô/Ð/Ø�
Š
�G”LÔ'Ð'¨Ñ1Ô1Ð1Ø�Š˜œÔ*Ð*¨GÑ4Ô4Ð4Ø�Š�w”|Ô*¨GÑ4Ô4Ð4Ø×"Ò"Ø�O U¨E°A©Iñ
ô 
ð Qà×!Ò! *¨o¸uÀeÈaÁiÑPÔPð	Qr   c                 ó  — |                      |¦  «         |                     |j        |j        ¦  «         |                     |j        ¦  «         |                     ¦   «          |                      ||t          ¦   «         |dz   ¦  «        S r›   )Ú	put_atomsÚreplace_allr–   r—   ÚdiscardÚmark_neqs_freshr,   r-   r   s          r   ri   zTableauProver._attempt_proof_eqm  s|   € ð 	×Ò˜ÑÔÐØ×Ò˜7œ=¨'¬.Ñ9Ô9Ð9Ø×Ò ¤Ñ.Ô.Ð.Ø×ÒÑ Ô Ð Ø×"Ò" 6¨?½C¹E¼EÀ5È1Á9ÑMÔMÐMr   c                 ó  — t          t          ¦   «         ¦  «        }|                     |j                             |j        |¦  «        |¦  «         |                     ¦   «          |                      |||hz  ||dz   ¦  «        S r›   )r   r   r%   rz   Úreplacer�   r}   r,   )r5   rq   rr   r:   rn   ro   rp   Únew_unique_variables           r   rk   z!TableauProver._attempt_proof_somez  sƒ   € õ 1µÑ1BÔ1BÑCÔCÐØ�
Š
�7”<×'Ò'¨Ô(8Ð:MÑNÔNÐPWÑXÔXÐXØ×ÒÑ Ô Ð Ø×"Ò"Ø�OÐ':Ð&;Ñ;¸UÀEÈAÁIñ
ô 
ð 	
r   c                 óF  — 	 |j          n## t          $ r t          ¦   «         |_         Y nw xY w|�r ||j         z
  }|rµt          |¦  «        d         }|                     d|z  d¦  «         |xj         |hz  c_         |                     |j                             |j        |¦  «        |¦  «         |t          j
                                      ||f¦  «         |                      ||||dz   ¦  «        S |                     dd¦  «         d|_        |t          j
                                      ||f¦  «         |                      ||||dz   ¦  «        S t          t          ¦   «         ¦  «        }	|                     d|	z  d¦  «         |xj         |	hz  c_         |                     |j                             |j        |	¦  «        |¦  «         |t          j
                                      ||f¦  «         |                     ¦   «          |                      |||	hz  ||dz   ¦  «        S )Nr   z--> Using '%s'é   rx   z--> Variables ExhaustedT)Ú
_used_varsÚAttributeErrorr-   ÚlistrA   r%   rz   r³   r�   rC   rl   r˜   r,   r™   r   r   r}   )
r5   rq   rr   r:   rn   ro   rp   Úbv_availableÚvariable_to_user´   s
             r   rm   z TableauProver._attempt_proof_all„  sO  € ð	'ØÔÐÐøÝð 	'ð 	'ð 	'Ý!$¡¤ˆGÔÐÐð	'øøøð ñ  	à*¨WÔ-?Ñ?ˆLàð VÝ"& |Ñ"4Ô"4°QÔ"7�Ø—
’
Ð+¨oÑ=¸qÑAÔAÐAØÐ"Ô" Ð&7Ñ7Ð"Ô"Ø—
’
Ø”L×(Ò(¨Ô)9¸?ÑKÔKÈWñô ð ð •z”~Ô&×*Ò*¨G°WÐ+=Ñ>Ô>Ð>Ø×*Ò*¨6°?ÀEÈ5ÐSTÉ9ÑUÔUÐUð —
’
Ð4°aÑ8Ô8Ð8Ø%)�Ô"Ø•z”~Ô&×*Ò*¨G°WÐ+=Ñ>Ô>Ð>Ø×*Ò*¨6°?ÀEÈ5ÐSTÉ9ÑUÔUÐUõ #5µ_Ñ5FÔ5FÑ"GÔ"GÐØ�JŠJÐ'Ð*=Ñ=¸qÑAÔAÐAØÐÔÐ#6Ð"7Ñ7ÐÔØ�JŠJØ”×$Ò$ WÔ%5Ð7JÑKÔKÈWñô ð ð •:”>Ô"×&Ò&¨°Ð'9Ñ:Ô:Ð:Ø×"Ò"Ñ$Ô$Ð$Ø×&Ò&Ø˜Ð+>Ð*?Ñ?ÀÈÐPQÉ	ñô ð s   ‚
 Š*©*c                 ó  — t          | t          ¦  «        r| j        } t          | t          ¦  «        r)| j        D ]}t
                               |¦  «        s dS Œ dS t          | t          ¦  «        st          | t          ¦  «        rdS dS )NFT)	ry   r   rz   r	   r~   r   rˆ   r   r   )r<   r�   s     r   rˆ   zTableauProver.is_atom¯  s�   € å�aÕ*Ñ+Ô+ð 	Ø”ˆAå�aÕ.Ñ/Ô/ð 
	Ø”vð !ð !�Ý$×,Ò,¨SÑ1Ô1ð !Ø ˜5˜5ð!à�4Ý˜Õ5Ñ6Ô6ð 	½*ØÕñ;
ô ;
ð 	ð �4à�5r   )NNF) r   r   r   r/   r(   r+   r@   r=   r,   rE   rI   rG   rK   rM   rO   rQ   rS   rU   rW   rY   r[   r]   r_   ra   rc   re   rg   ri   rk   rm   Ústaticmethodrˆ   r   r   r   r   r   +   s×  € € € € € Ø€Mð €Gð €Ið Ðð3ð 3ð 3ð 3ð20Uð 0Uð 0Uðdð ð ð.ð ð ð.
ð 
ð 
ð
ð 
ð 
ðYð Yð Yð"Yð Yð Yð$
ð 
ð 
ð&Nð Nð NðNð Nð NðNð Nð NðNð Nð NðNð Nð NðNð Nð NðQð Qð QðQð Qð QðQð Qð Qð
Qð 
Qð 
Qð
Qð 
Qð 
QðNð Nð Nð
ð 
ð 
ð)ð )ð )ðV ðð ñ „\ðð ð r   r   c                   ó   — e Zd Zdd„ZdS )ÚTableauProverCommandNc                 ó„   — |�t          |t          ¦  «        sJ ‚nt          ¦   «         }t          j        | |||¦  «         dS )zé
        :param goal: Input expression to prove
        :type goal: sem.Expression
        :param assumptions: Input expressions to use as assumptions in
            the proof.
        :type assumptions: list(sem.Expression)
        N)ry   r   r   Ú__init__)r5   r6   r7   Úprovers       r   rÁ   zTableauProverCommand.__init__Â  sI   € ð ÐÝ˜f¥mÑ4Ô4Ð4Ð4Ð4Ð4å"‘_”_ˆFåÔ" 4¨°°{ÑCÔCÐCÐCÐCr   )NNN)r   r   r   rÁ   r   r   r   r¿   r¿   Á  s.   € € € € € ðDð Dð Dð Dð Dð Dr   r¿   c                   óX   — e Zd Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ ZdS )r$   c                 ó\   — t          d„ t          d¦  «        D ¦   «         ¦  «        | _        d S )Nc              3   ó2   K  — | ]}t          ¦   «         V — Œd S ©N)r-   )Ú.0rŽ   s     r   ú	<genexpr>z"Agenda.__init__.<locals>.<genexpr>Ô  s&   è è € Ð3Ð3 A�#™%œ%Ð3Ð3Ð3Ð3Ð3Ð3r   é   )ÚtupleÚrangeÚsets)r5   s    r   rÁ   zAgenda.__init__Ó  s*   € ÝÐ3Ð3­¨r©¬Ð3Ñ3Ô3Ñ3Ô3ˆŒ	ˆ	ˆ	r   c                 ó   — t          ¦   «         }d„ | j        D ¦   «         }t          ¦   «         }|t          j                 D ]q\  }}t          |j        |j        ¦  «        }	 d„ |j        D ¦   «         |_        n## t          $ r t          ¦   «         |_        Y nw xY w| 
                    |d f¦  «         Œr||t          j        <   d„ |t          j                 D ¦   «         |t          j        <   t          |¦  «        |_        |S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   )Úcopy)rÇ   Úss     r   ú
<listcomp>z Agenda.clone.<locals>.<listcomp>Ø  s    € Ð0Ð0Ð0 �A—F’F‘H”HÐ0Ð0Ð0r   c                 ó   — h | ]}|’ŒS r   r   ©rÇ   Úuseds     r   ú	<setcomp>zAgenda.clone.<locals>.<setcomp>Þ  s   € Ð'JÐ'JÐ'J°¨Ð'JÐ'JÐ'Jr   c                 ó@   — h | ]\  }}t          |j        ¦  «        |f’ŒS r   )r   rz   )rÇ   Ún_eqr�   s      r   rÕ   zAgenda.clone.<locals>.<setcomp>ä  s;   € ð %
ð %
ð %
á��sõ ˜tœyÑ)Ô)¨3Ð/ð%
ð %
ð %
r   )r$   rÌ   r-   rC   rl   r   r�   rz   r·   r¸   r˜   rP   rÊ   )r5   r§   Úset_listÚ
new_allExsÚallExÚ_Ú	new_allExs          r   r¥   zAgenda.cloneÖ  s  € Ý‘X”Xˆ
Ø0Ð0 d¤iÐ0Ñ0Ô0ˆå‘U”Uˆ
Ø ¥¤Ô0ð 	.ð 	.‰HˆE�1Ý% e¤n°e´jÑAÔAˆIð-Ø'JÐ'J¸Ô9IÐ'JÑ'JÔ'J�	Ô$Ð$øÝ!ð -ð -ð -Ý'*¡u¤u�	Ô$Ð$Ð$ð-øøøà�NŠN˜I tÐ,Ñ-Ô-Ð-Ð-Ø#-ˆ•”Ñ ð%
ð %
à'­
¬Ô8ð%
ñ %
ô %
ˆ•”Ñ!õ
   ™/œ/ˆ
ŒØÐs   Á A7Á7BÂBc                 ó   — | j         |         S rÆ   )rÌ   )r5   Úindexs     r   Ú__getitem__zAgenda.__getitem__ì  s   € ØŒy˜ÔÐr   Nc                 óH  — t          |t          ¦  «        rUt          |j        |j        ¦  «        }	 d„ |j        D ¦   «         |_        n%# t
          $ r t          ¦   «         |_        Y nw xY w|}| j        |                      |¦  «                  	                    ||f¦  «         d S )Nc                 ó   — h | ]}|’ŒS r   r   rÓ   s     r   rÕ   zAgenda.put.<locals>.<setcomp>ó  s   € Ð'OÐ'OÐ'O°¨Ð'OÐ'OÐ'Or   )
ry   r   r�   rz   r·   r¸   r-   rÌ   Ú_categorize_expressionr˜   )r5   Ú
expressionrr   Ú	ex_to_adds       r   r%   z
Agenda.putï  s±   € Ý�j¥-Ñ0Ô0ð 	#Ý% jÔ&9¸:¼?ÑKÔKˆIð-Ø'OÐ'O¸Ô9NÐ'OÑ'OÔ'O�	Ô$Ð$øÝ!ð -ð -ð -Ý'*¡u¤u�	Ô$Ð$Ð$ð-øøøð #ˆIØŒ	�$×-Ò-¨iÑ8Ô8Ô9×=Ò=¸yÈ'Ð>RÑSÔSÐSÐSÐSs   ±A ÁA(Á'A(c                 ó:   — |D ]}|                       |¦  «         Œd S rÆ   )r%   )r5   Úexpressionsrã   s      r   r&   zAgenda.put_allú  s0   € Ø%ð 	!ð 	!ˆJØ�HŠH�ZÑ Ô Ð Ð ð	!ð 	!r   c                 óº   — |D ]W\  }}|r)| t           j                                      | d f¦  «         Œ0| t           j                                      |d f¦  «         ŒXd S rÆ   )rC   rH   r˜   rD   )r5   ro   ÚatomÚnegs       r   r®   zAgenda.put_atomsþ  sn   € Øð 	8ð 	8‰IˆD�#Øð 8Ø•ZÔ&Ô'×+Ò+¨d¨U°D¨MÑ:Ô:Ð:Ð:à•Z”_Ô%×)Ò)¨4°¨,Ñ7Ô7Ð7Ð7ð		8ð 	8r   c                 ó^  — t          | j        ¦  «        D ]—\  }}|r�|t          j        t          j        fv r^|D ]Z}	 |d         j        s|                     |¦  «         ||fc c S Œ.# t          $ r  |                     |¦  «         ||fcY c c S w xY wŒ|                     ¦   «         |fc S Œ˜dS )z3Pop the first expression that appears in the agendar   ))NNN)	r‡   rÌ   rC   rP   rl   r™   Úremover¸   Úpop)r5   rŽ   rÐ   Úexs       r   rB   zAgenda.pop_first  sð   € å˜dœiÑ(Ô(ð 	(ð 	(‰DˆAˆqØð (Ø�œ­*¬.Ð9Ð9Ð9Øð +ð +˜ð+Ø#% a¤5Ô#3ð /Ø !§¢¨¡¤ Ø(*¨A w     ð/øõ  .ð +ð +ð +ØŸHšH R™LœL˜LØ$&¨ 7˜N˜N˜N˜N˜N˜N˜Nð+øøøð+ð ŸEšE™GœG Q˜<Ð'Ð'Ð'ð(ð $Ð#s   »%A&Á&#BÂBc                 óš   — | j         D ]B}|D ]=\  }}|                     |j        |¦  «         |�|                     |j        |¦  «         Œ>ŒCd S rÆ   )rÌ   r³   r�   )r5   ÚoldÚnewrÐ   rí   r�   s         r   r¯   zAgenda.replace_all  sg   € Ø”ð 	3ð 	3ˆAØð 3ð 3‘��CØ—
’
˜3œ<¨Ñ-Ô-Ð-Ø�?Ø—K’K ¤¨cÑ2Ô2Ð2øð3ð	3ð 	3r   c                 óN   — | j         t          j                 D ]\  }}d|_        Œd S ©NF)rÌ   rC   rl   r™   )r5   ÚurÛ   s      r   r}   zAgenda.mark_alls_fresh  s1   € Ø”I�jœnÔ-ð 	!ð 	!‰DˆAˆqØ ˆAŒLˆLð	!ð 	!r   c                 óN   — | j         t          j                 D ]\  }}d|_        Œd S rò   )rÌ   rC   rP   r™   )r5   ÚneqrÛ   s      r   r±   zAgenda.mark_neqs_fresh!  s1   € Ø”i¥
¤Ô0ð 	#ð 	#‰FˆC�Ø"ˆCŒNˆNð	#ð 	#r   c                 ó,  — t          |t          ¦  «        r|                      |¦  «        S t          |t          ¦  «        rt          j        S t                               |¦  «        rt          j        S t          |t          ¦  «        rt          j
        S t          |t          ¦  «        rt          j        S t          |t          ¦  «        rt          j        S t          |t          ¦  «        rt          j        S t          |t"          ¦  «        rt          j        S t          |t&          ¦  «        rt          j        S t          |t*          ¦  «        rt          j        S t          |t.          ¦  «        rt          j        S t3          d|j        j        z  ¦  «        ‚©Nzcannot categorize %s)ry   r   Ú_categorize_NegatedExpressionr   rC   rF   r   rˆ   rD   r   rl   r   rX   r   r^   r   r`   r   rd   r
   rh   r   rj   r	   rL   r   Ú	__class__r   )r5   rq   s     r   râ   zAgenda._categorize_expression%  s[  € Ý�gÕ0Ñ1Ô1ð 	XØ×5Ò5°gÑ>Ô>Ð>Ý˜Õ!;Ñ<Ô<ð 	XÝ”?Ð"Ý×"Ò" 7Ñ+Ô+ð 	XÝ”?Ð"Ý˜¥Ñ/Ô/ð 	XÝ”>Ð!Ý˜¥Ñ/Ô/ð 	XÝ”>Ð!Ý˜¥Ñ.Ô.ð 	XÝ”=Ð Ý˜¥Ñ/Ô/ð 	XÝ”>Ð!Ý˜¥Ñ/Ô/ð 		XÝ”>Ð!Ý˜Õ!3Ñ4Ô4ð 	XÝ”=Ð Ý˜Õ!1Ñ2Ô2ð 	XÝÔ$Ð$Ý˜Õ!6Ñ7Ô7ð 	XÝ”>Ð!å"Ð#9¸GÔ<MÔ<VÑ#VÑWÔWÐWr   c                 ó(  — |j         }t          |t          ¦  «        rt          j        S t          |t
          ¦  «        rt          j        S t                               |¦  «        rt          j	        S t          |t          ¦  «        rt          j        S t          |t          ¦  «        rt          j        S t          |t          ¦  «        rt          j        S t          |t           ¦  «        rt          j        S t          |t$          ¦  «        rt          j        S t          |t(          ¦  «        rt          j        S t          |t,          ¦  «        rt          j        S t          |t0          ¦  «        rt          j        S t5          d|j        j        z  ¦  «        ‚r÷   )rz   ry   r   rC   rR   r   rJ   r   rˆ   rH   r   rT   r   rb   r   rZ   r   r\   r   rf   r
   rP   r   rV   r	   rN   r   rù   r   )r5   rq   Únegateds      r   rø   z$Agenda._categorize_NegatedExpression?  s^  € Ø”,ˆå�gÕ0Ñ1Ô1ð 	XÝÔ#Ð#Ý˜Õ!;Ñ<Ô<ð 	XÝÔ$Ð$Ý×"Ò" 7Ñ+Ô+ð 	XÝÔ$Ð$Ý˜¥Ñ/Ô/ð 	XÝÔ#Ð#Ý˜¥Ñ/Ô/ð 	XÝÔ#Ð#Ý˜¥Ñ.Ô.ð 	XÝ”?Ð"Ý˜¥Ñ/Ô/ð 	XÝÔ#Ð#Ý˜¥Ñ/Ô/ð 		XÝÔ#Ð#Ý˜Õ!3Ñ4Ô4ð 	XÝ”?Ð"Ý˜Õ!1Ñ2Ô2ð 	XÝÔ&Ð&Ý˜Õ!6Ñ7Ô7ð 	XÝÔ#Ð#å"Ð#9¸GÔ<MÔ<VÑ#VÑWÔWÐWr   rÆ   )r   r   r   rÁ   r¥   rß   r%   r&   r®   rB   r¯   r}   r±   râ   rø   r   r   r   r$   r$   Ò  sÙ   € € € € € ð4ð 4ð 4ðð ð ð, ð  ð  ð	Tð 	Tð 	Tð 	Tð!ð !ð !ð8ð 8ð 8ð$ð $ð $ð"3ð 3ð 3ð!ð !ð !ð#ð #ð #ðXð Xð Xð4Xð Xð Xð Xð Xr   r$   c                   ó$   — e Zd Zdd„Zd„ Zdd„ZdS )r'   r   Nc                 ó8   — || _         || _        |sg }|| _        d S rÆ   )r8   r?   r4   )r5   r8   r?   r4   s       r   rÁ   zDebug.__init__]  s(   € ØˆŒØˆŒàð 	ØˆEØˆŒ
ˆ
ˆ
r   c                 óH   — t          | j        | j        dz   | j        ¦  «        S r›   )r'   r8   r?   r4   )r5   Ú	increments     r   Ú__add__zDebug.__add__e  s   € Ý�T”\ 4¤;°¡?°D´JÑ?Ô?Ð?r   c                 ó´  — t          |t          ¦  «        ro|\  }}|r|› d|› �}nd|z  }t          |t          ¦  «        rF	 dd                     d„ |j        D ¦   «         ¦  «        z  }|d|z  z  }n# t
          $ r |dz  }Y nw xY wd                     d	| j        |z   z  |¦  «        }| j         	                    |¦  «         | j
        rt          |¦  «         d S d S )
Nú, ú%sz[%s]ú,c              3   ó4   K  — | ]}d |j         j        z  V — ŒdS )r  N)r�   Úname)rÇ   Úves     r   rÈ   zDebug.line.<locals>.<genexpr>s  s,   è è € Ð QÐ Q¸R ¨¬Ô(8Ñ!8Ð QÐ QÐ QÐ QÐ QÐ Qr   z:   %sz:   []z{}{}z   )ry   rÊ   r   r3   r·   r¸   Úformatr?   r4   Úappendr8   r2   )r5   Údatar?   rí   r�   Ú	used_varsÚnewlines          r   rA   z
Debug.lineh  s  € Ý�d�EÑ"Ô"ð 	%Ø‰GˆB�Øð !Ø�~�~ �~�~��à˜b‘y�å˜"�mÑ,Ô,ð %ð%Ø &ØŸšÐ QÐ QÀ2Ä=Ð QÑ QÔ QÑQÔQñ!�Ið ˜H yÑ0Ñ0�D�DøÝ%ð %ð %ð %Ø˜HÑ$�D�D�Dð%øøøð —-’- ¨¬°vÑ)=Ñ >ÀÑEÔEˆØŒ
×Ò˜'Ñ"Ô"Ð"àŒ<ð 	Ý�'‰NŒNˆNˆNˆNð	ð 	s   Á /A0 Á0BÂB)r   N)r   )r   r   r   rÁ   r   rA   r   r   r   r'   r'   \  sN   € € € € € ðð ð ð ð@ð @ð @ðð ð ð ð ð r   r'   c                   ób   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdS )rC   r   rx   r¶   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   é   é   é   N)r   r   r   rD   rF   rH   rJ   rL   rN   rP   rR   rT   rV   rX   rZ   r\   r^   r`   rb   rd   rf   rh   rj   rl   r   r   r   rC   rC   €  sw   € € € € € Ø€DØ€DØ€FØ€FØ
€CØ€EØ€DØ€EØ€EØ€HØ
€CØ€DØ€EØ	€BØ
€CØ€EØ
€CØ€EØ	€BØ€FØ
€C€C€Cr   rC   c                  ó
  — t          d¦  «         t          d¦  «         t          dddg¦  «         t          d¦  «         t          d¦  «         t          d¦  «         t          d	¦  «         t          d
¦  «         t          d¦  «         t          d	¦  «         t          d
¦  «         t          d¦  «         t          d¦  «         t          d¦  «         t          d¦  «         t          d¦  «         t          d¦  «         d} d}d}t          || |g¦  «         d} d}d}t          || |g¦  «         d}d}t          ||g¦  «         d}d}t          ||g¦  «         d}d}t          ||g¦  «         d}t          |¦  «         d S )NzP | -PzP & -PÚQÚPz(P -> Q)zman(x)z(man(x) -> man(x))z(man(x) -> --man(x))z-(man(x) and -man(x))z(man(x) or -man(x))z(man(x) iff man(x))z-(man(x) iff -man(x))zall x.man(x)z all x.all y.((x = y) -> (y = x))z2all x.all y.all z.(((x = y) & (y = z)) -> (x = z))zall x.(man(x) -> mortal(x))zman(Socrates)zmortal(Socrates)zall x.(man(x) -> walks(x))z	man(John)zsome y.walks(y)z((x = y) & walks(y))zwalks(x)z((x = y) & ((y = z) & (z = w)))z(x = w)z5some e1.some e2.(believe(e1,john,e2) & walk(e2,mary))zsome e0.walk(e0,mary)z(exists x.exists z3.((x = Mary) & ((z3 = John) & sees(z3,x))) <-> exists x.exists z4.((x = John) & ((z4 = Mary) & sees(x,z4))))©Útableau_test)Úp1Úp2ÚcÚps       r   ÚtestTableauProverr)  ˜  s¶  € Ý�ÑÔÐÝ�ÑÔÐÝ��s˜JÐ'Ñ(Ô(Ð(Ý�ÑÔÐÝÐ%Ñ&Ô&Ð&ÝÐ'Ñ(Ô(Ð(ÝÐ(Ñ)Ô)Ð)ÝÐ&Ñ'Ô'Ð'ÝÐ%Ñ&Ô&Ð&ÝÐ(Ñ)Ô)Ð)ÝÐ&Ñ'Ô'Ð'ÝÐ%Ñ&Ô&Ð&ÝÐ&Ñ'Ô'Ð'ÝÐ(Ñ)Ô)Ð)Ý�Ñ Ô Ð ÝÐ3Ñ4Ô4Ð4ÝÐEÑFÔFÐFð 
'€BØ	€BØ€AÝ��R˜�HÑÔÐà	%€BØ	€BØ€AÝ��R˜�HÑÔÐà€AØ€AÝ��Q�CÑÔÐà)€AØ€AÝ��Q�CÑÔÐà?€AØ€AÝ��Q�CÑÔÐð 	J€AÝ��O„O€O€O€Or   c                  óô   — t          ddg¦  «         t          ddg¦  «         t          ddg¦  «         t          ddg¦  «         t          dd	g¦  «         t          d
dg¦  «         t          ddg¦  «         d S )Nzbelieve(j, -lie(b))zbelieve(j, -lie(b) & -cheat(b))zbelieve(j, lie(b) & cheat(b))zbelieve(j, lie(b))zlie(b)zbelieve(j, know(b, cheat(b)))z;believe(j, know(b, lie(b)) & know(b, steals(b) & cheat(b)))zP(Q(y), R(y) & R(z))zP(Q(x) & Q(y), R(y) & R(z))zbelieve(j, cheat(b) & lie(b))zbelieve(j, -cheat(b) & -lie(b))r#  r   r   r   ÚtestHigherOrderTableauProverr+  Ì  s©   € ÝÐ&Ð)JÐ(KÑLÔLÐLÝÐ0Ð3GÐ2HÑIÔIÐIÝØ˜x˜jñô ð õ Ø'Ø	FÐGñô ð õ Ð'Ð*GÐ)HÑIÔIÐIåÐ0Ð3RÐ2SÑTÔTÐTÝÐ2Ð5VÐ4WÑXÔXÐXÐXÐXr   Fc                 óî   — t          j        | ¦  «        }|rd„ |D ¦   «         ng }|sg }t          d                     |¦  «        ›d|›dt	          ¦   «                              |||¬¦  «        ›�¦  «         d S )Nc                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r   )r   Ú
fromstring)rÇ   r(  s     r   rÑ   z tableau_test.<locals>.<listcomp>Þ  s#   € Ð
0Ð
0Ð
0¨�:Ô  Ñ#Ô#Ð
0Ð
0Ð
0r   r  z |- z: )r8   )r   r.  r2   r3   r   Úprove)r'  Úpsr8   ÚpcÚppss        r   r$  r$  Ü  s”   € Ý	Ô	˜qÑ	!Ô	!€BØ46Ð
>Ð
0Ð
0¨RÐ
0Ñ
0Ô
0Ð
0¸B€CØð ØˆÝ	à�9Š9�R‰=Œ=ˆ=ˆ=˜"˜"˜"�m™oœo×3Ò3°B¸ÀWÐ3ÑMÔMÐMð	Oñô ð ð ð r   c                  ó>   — t          ¦   «          t          ¦   «          d S rÆ   )r)  r+  r   r   r   Údemor4  ç  s    € ÝÑÔÐÝ Ñ"Ô"Ð"Ð"Ð"r   Ú__main__rò   )%Ú__doc__r)   Únltk.inference.apir   r   Únltk.internalsr   Únltk.sem.logicr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r‰   r‹   r   r   r¿   r$   r'   rC   r)  r+  r$  r4  r   r   r   r   ú<module>r:     sˆ  ððð ð €€€à 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð& ˆ7‰9Œ9€ð	ð 	ð 	ð 	ð 	�yñ 	ô 	ð 	ðSð Sð Sð Sð S�Fñ Sô Sð SðlDð Dð Dð Dð DÐ,ñ Dô Dð Dð"GXð GXð GXð GXð GXñ GXô GXð GXðT!ð !ð !ð !ð !ñ !ô !ð !ðHð ð ð ð ñ ô ð ð0,ð ,ð ,ðhYð Yð Yð ð ð ð ð#ð #ð #ð
 ˆzÒÐØ€D�F„F€F€F€Fð Ðr   