+
    ÖÇÜhd  ã                   ó6  € R t ^ RIHtHt ^ RIHt ^ RIHtHtH	t	H
t
HtHtHtHtHtHtHtHtHtHt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 tR t RR lt!R t"]#R8X  d
   ]"! 4        R# R# )z8
Module for a tableau-based First Order theorem prover.
)ÚBaseProverCommandÚProver)ÚCounter)ÚAbstractVariableExpressionÚAllExpressionÚAndExpressionÚApplicationExpressionÚEqualityExpressionÚExistsExpressionÚ
ExpressionÚFunctionVariableExpressionÚIffExpressionÚImpExpressionÚLambdaExpressionÚNegatedExpressionÚOrExpressionÚVariableÚVariableExpressionÚunique_variablec                   ó   € ] tR t^%tRtR# )ÚProverParseError© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ú8/usr/lib/python3/dist-packages/nltk/inference/tableau.pyr   r   %   s   † Ûr   r   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R tR tR tR tR tR tR tR tR tR tR tR tR t]R 4       tRtV tR# )ÚTableauProverFNc                óê  € V'       g   . pR p \        4       pV'       d   VP                  V) 4       VP                  V4       \        V4      pV P	                  V\        4       \        4       V4      pTRP                  XP                  4      3#   \         dY   pT P                  '       d(   \        T4      P                  R4      '       d   Rp R p?LaT'       d   \        T4        R p?LyThR p?ii ; i)Nz maximum recursion depth exceededFÚ
)ÚAgendaÚputÚput_allÚDebugÚ_attempt_proofÚsetÚRuntimeErrorÚ_assume_falseÚstrÚ
startswithÚprintÚjoinÚlines)ÚselfÚgoalÚassumptionsÚverboseÚresultÚagendaÚdebuggerÚes   &&&&    r   Ú_proveÚTableauProver._prove,   sÄ   € ßØˆKàˆð	Ü“XˆFßØ—
‘
˜D˜5Ô!Ø�N‰N˜;Ô'Ü˜W“~ˆHØ×(Ñ(¨´³¼»¸xÓHˆFð ˜Ÿ	™	 (§.¡.Ó1Ð2Ð2øô ô 		Ø×!×!Ð!¤c¨!£f×&7Ñ&7Ø2÷'ò 'ð •çÜ˜!—H‘Hà�Gûð		ús*   ŽA$B ÂC2Â4C-ÃC-ÃC-Ã+C-Ã-C2c           	     ó  € VP                  4       w  w  rVpV'       g   VP                  R 4       R# / \        P                  V P                  b\        P
                  V P                  b\        P                  V P                  b\        P                  V P                  b\        P                  V P                  b\        P                  V P                  b\        P                  V P                   b\        P"                  V P$                  b\        P&                  V P(                  b\        P*                  V P,                  b\        P.                  V P0                  b\        P2                  V P4                  b\        P6                  V P8                  b\        P:                  V P<                  b\        P>                  V P@                  b\        PB                  V PD                  b\        PF                  V PH                  b\        PJ                  V PL                  \        PN                  V PP                  \        PR                  V PT                  \        PV                  V PX                  /CV,          pVP                  WV34       V! WVWW44      # )zAGENDA EMPTYF)-Ú	pop_firstÚlineÚ
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)	r0   r5   Úaccessible_varsÚatomsÚdebugÚcurrentÚcontextÚcategoryÚproof_methods	   &&&&&    r   r'   ÚTableauProver._attempt_proofD   s&  € Ø'-×'7Ñ'7Ó'9Ñ$Ñˆ˜H÷ Ø�J‰J�~Ô&Ùð
Ü�O‰O˜T×5Ñ5ð
ä�O‰O˜T×5Ñ5ð
ô ×Ñ˜t×9Ñ9ð
ô ×Ñ˜t×9Ñ9ð	
ô
 �N‰N˜D×3Ñ3ð
ô ×Ñ˜d×7Ñ7ð
ô �O‰O˜T×5Ñ5ð
ô ×Ñ˜d×7Ñ7ð
ô ×Ñ˜d×7Ñ7ð
ô ×Ñ ×!;Ñ!;ð
ô �N‰N˜D×3Ñ3ð
ô �O‰O˜T×5Ñ5ð
ô ×Ñ˜d×7Ñ7ð
ô �M‰M˜4×1Ñ1ð
ô �N‰N˜D×3Ñ3ð
ô  ×Ñ˜d×7Ñ7ð!
ô" �N‰N˜D×3Ñ3ð#
ô$ ×Ñ˜d×7Ñ7Ü�M‰M˜4×1Ñ1Ü×Ñ˜t×7Ñ7Ü�N‰N˜D×3Ñ3ñ+
ð, õ-ˆð0 	�
‰
�GÐ%Ô&Ù˜G¨fÀuÓTÐTr   c                óÄ  € VR 3V9   d   VP                  R^4       R # V'       do   \        VP                  \        4      '       d   VP	                  4       pVP                  V! V4      P                  4       4       V P                  W4WV^,           4      # VP                  4        V P                  VV\        VP                  4      ,          WQR30,          V^,           4      # ©TÚCLOSEDF)r<   Ú
isinstanceÚtermr   Únegater$   Úsimplifyr'   Úmark_alls_freshr(   Úargs©r0   rk   rl   r5   rh   ri   rj   s   &&&&&&&r   r?   Ú!TableauProver._attempt_proof_atomg   s½   € ð �Tˆ?˜eÔ#Ø�J‰J�x Ô#ÙçÜ˜'Ÿ,™,Ô(9×:Ò:Ø!Ÿ.™.Ó*�Ø�J‰J‘w˜wÓ'×0Ñ0Ó2Ô3Ø×&Ñ& vÀÈqÅyÓQÐQð ×"Ñ"Ô$Ø×&Ñ&ØØ¤# g§l¡lÓ"3Õ3Ø 5Ð)Ð*Õ*Ø˜•	ó	ð r   c                ó   € VP                   R 3V9   d   VP                  R^4       R# V'       do   \        VP                   \        4      '       d   VP	                  4       pVP                  V! V4      P                  4       4       V P                  W4WV^,           4      # VP                  4        V P                  VV\        VP                   P                  4      ,          WQP                   R30,          V^,           4      # ©Frr   T)rt   r<   rs   r   ru   r$   rv   r'   rw   r(   rx   ry   s   &&&&&&&r   rC   Ú#TableauProver._attempt_proof_n_atom~   sÌ   € ð �L‰L˜%Ð  EÔ)Ø�J‰J�x Ô#ÙçÜ˜'Ÿ,™,Ô(9×:Ò:Ø!Ÿ.™.Ó*�Ø�J‰J‘w˜wÓ'×0Ñ0Ó2Ô3Ø×&Ñ& vÀÈqÅyÓQÐQð ×"Ñ"Ô$Ø×&Ñ&ØØ¤# g§l¡l×&7Ñ&7Ó"8Õ8ØŸ,™,¨Ð-Ð.Õ.Ø˜•	ó	ð r   c                ó¢   € VR 3V9   d   VP                  R^4       R # VP                  4        V P                  W4WQR30,          V^,           4      # rq   )r<   rw   r'   ry   s   &&&&&&&r   rA   Ú!TableauProver._attempt_proof_prop•   sX   € ð �Tˆ?˜eÔ#Ø�J‰J�x Ô#Ùð 	×ÑÔ Ø×"Ñ"Ø U¸Ð.>Ð-?Õ%?ÀÈÅó
ð 	
r   c                óÊ   € VP                   R 3V9   d   VP                  R^4       R# VP                  4        V P                  W4WQP                   R30,          V^,           4      # r|   )rt   r<   rw   r'   ry   s   &&&&&&&r   rE   Ú#TableauProver._attempt_proof_n_prop£   sa   € ð �L‰L˜%Ð  EÔ)Ø�J‰J�x Ô#Ùð 	×ÑÔ Ø×"Ñ"Ø U¯|©|¸TÐ.BÐ-CÕ%CÀUÈQÅYó
ð 	
r   c                óö  € VP                  4       w  rx\        V4       FÎ  w  rš\        P                  V
4      '       d   K"  Tp\	        R \
        P                  4       ,          4      p\        V4       F$  w  rÞW�8X  d   V! \        V4      4      MV! V4      pK&  	  V'       d   V! V4      P                  4       p\        WË4      pVP                  W«4       V P                  W4WV^,           4      u # 	  \        R4      h©zX%sz=If this method is called, there must be a non-atomic argument)ÚuncurryÚ	enumerater    Úis_atomr   Ú_counterÚgetr   rv   r   r$   r'   Ú	Exception©r0   rk   rl   r5   rh   ri   rj   Úfrx   ÚiÚargÚctxÚnvÚjÚas   &&&&&&&        r   rG   Ú TableauProver._attempt_proof_app±   sÈ   € ð —/‘/Ó#‰ˆÜ –o‰FˆAÜ ×(Ñ(¨×-Ô-Ø�Ü˜e¤h§l¡l£nÕ4Ó5�Ü% džO‘D�AØ9:¼™#Ô0°Ó4Ô5ÁSÈÃV’Cñ ,çÙ! #›,×/Ñ/Ó1�CÜ& rÓ/�Ø—
‘
˜3Ô$Ø×*Ñ*¨6ÀEÐSTÍ9ÓUÒUñ &ô ÐWÓXÐXr   c                ó  € VP                   P                  4       w  rx\        V4       FÑ  w  rš\        P	                  V
4      '       d   K"  Tp\        R \        P                  4       ,          4      p\        V4       F$  w  rÞW�8X  d   V! \        V4      4      MV! V4      pK&  	  V'       d   V! V4      P                  4       p\        WË) 4      pVP                  V
) V4       V P                  W4WV^,           4      u # 	  \        R4      hrƒ   )rt   r„   r…   r    r†   r   r‡   rˆ   r   rv   r   r$   r'   r‰   rŠ   s   &&&&&&&        r   rI   Ú"TableauProver._attempt_proof_n_appÂ   sÔ   € ð —,‘,×&Ñ&Ó(‰ˆÜ –o‰FˆAÜ ×(Ñ(¨×-Ô-Ø�Ü˜e¤h§l¡l£nÕ4Ó5�Ü% džO‘D�AØ9:¼™#Ô0°Ó4Ô5ÁSÈÃV’Cñ ,çá! #›,×/Ñ/Ó1�CÜ& r¨4Ó0�Ø—
‘
˜C˜4 Ô%Ø×*Ñ*¨6ÀEÐSTÍ9ÓUÒUñ &ô ÐWÓXÐXr   c                óz  € VP                   P                  VP                   P                  8X  d   VP                  R ^4       R# V\        P
                  ,          P                  W34       RVn        V P                  VWAP                   P                  VP                   P                  0,          VV^,           4      # )rr   T)	rt   ÚfirstÚsecondr<   r=   rJ   ÚaddÚ
_exhaustedr'   ry   s   &&&&&&&r   rK   Ú!TableauProver._attempt_proof_n_eqÔ   s’   € ð �<‰<×Ñ §¡×!4Ñ!4Ô4Ø�J‰J�x Ô#ÙàŒz�‰Õ×#Ñ# WÐ$6Ô7Ø!ˆÔØ×"Ñ"ØØŸ|™|×1Ñ1°7·<±<×3FÑ3FÐGÕGØØ�A�Ió	
ð 	
r   c                ó€   € VP                  VP                  P                  V4       V P                  W4WV^,           4      # ©é   )r$   rt   r'   ry   s   &&&&&&&r   rM   Ú"TableauProver._attempt_proof_d_negç   s3   € ð 	�
‰
�7—<‘<×$Ñ$ gÔ.Ø×"Ñ" 6¸EÈ1Å9ÓMÐMr   c                óê   € V\         P                  ,          P                  \        VP                  P
                  VP                  P                  ) 4      V34       V P                  W4WV^,           4      # rœ   )r=   rd   r˜   r
   rt   Úvariabler'   ry   s   &&&&&&&r   rO   Ú"TableauProver._attempt_proof_n_allí   s\   € ð 	Œz× Ñ Õ!×%Ñ%Ü˜gŸl™l×3Ñ3°g·l±l×6GÑ6GÐ5GÓHÈ'ÐRô	
ð ×"Ñ" 6¸EÈ1Å9ÓMÐMr   c                óê   € V\         P                  ,          P                  \        VP                  P
                  VP                  P                  ) 4      V34       V P                  W4WV^,           4      # rœ   )r=   rf   r˜   r   rt   r    r'   ry   s   &&&&&&&r   rQ   Ú#TableauProver._attempt_proof_n_someõ   sZ   € ð 	Œz�~‰~Õ×"Ñ"Ü˜7Ÿ<™<×0Ñ0°7·<±<×3DÑ3DÐ2DÓEÀwÐOô	
ð ×"Ñ" 6¸EÈ1Å9ÓMÐMr   c                ó¤   € VP                  VP                  V4       VP                  VP                  V4       V P                  W4WV^,           4      # rœ   )r$   r–   r—   r'   ry   s   &&&&&&&r   rS   Ú TableauProver._attempt_proof_andý   s?   € ð 	�
‰
�7—=‘= 'Ô*Ø�
‰
�7—>‘> 7Ô+Ø×"Ñ" 6¸EÈ1Å9ÓMÐMr   c                óÐ   € VP                  VP                  P                  ) V4       VP                  VP                  P                  ) V4       V P	                  W4WV^,           4      # rœ   ©r$   rt   r–   r—   r'   ry   s   &&&&&&&r   rU   Ú!TableauProver._attempt_proof_n_or  sQ   € ð 	�
‰
�G—L‘L×&Ñ&Ð&¨Ô0Ø�
‰
�G—L‘L×'Ñ'Ð'¨Ô1Ø×"Ñ" 6¸EÈ1Å9ÓMÐMr   c                óÎ   € VP                  VP                  P                  V4       VP                  VP                  P                  ) V4       V P	                  W4WV^,           4      # rœ   r§   ry   s   &&&&&&&r   rW   Ú"TableauProver._attempt_proof_n_imp  sN   € ð 	�
‰
�7—<‘<×%Ñ% wÔ/Ø�
‰
�G—L‘L×'Ñ'Ð'¨Ô1Ø×"Ñ" 6¸EÈ1Å9ÓMÐMr   c                ó  € VP                  4       pVP                  VP                  V4       VP                  VP                  V4       V P	                  W4WV^,           4      ;'       d    V P	                  WtWV^,           4      # rœ   ©Úcloner$   r–   r—   r'   ©r0   rk   rl   r5   rh   ri   rj   Ú
new_agendas   &&&&&&& r   rY   ÚTableauProver._attempt_proof_or  sp   € ð —\‘\“^ˆ
Ø�
‰
�7—=‘= 'Ô*Ø�‰�w—~‘~ wÔ/Ø×"Ñ"Ø U°A­Ió
÷ Qð Qà×!Ñ! *¸uÈaÅiÓPð	Qr   c                ó  € VP                  4       pVP                  VP                  ) V4       VP                  VP                  V4       V P	                  W4WV^,           4      ;'       d    V P	                  WtWV^,           4      # rœ   r¬   r®   s   &&&&&&& r   r[   Ú TableauProver._attempt_proof_imp  sr   € ð —\‘\“^ˆ
Ø�
‰
�G—M‘M�> 7Ô+Ø�‰�w—~‘~ wÔ/Ø×"Ñ"Ø U°A­Ió
÷ Qð Qà×!Ñ! *¸uÈaÅiÓPð	Qr   c                ó2  € VP                  4       pVP                  VP                  P                  ) V4       VP                  VP                  P                  ) V4       V P                  W4WV^,           4      ;'       d    V P                  WtWV^,           4      # rœ   ©r­   r$   rt   r–   r—   r'   r®   s   &&&&&&& r   r]   Ú"TableauProver._attempt_proof_n_and&  s‚   € ð —\‘\“^ˆ
Ø�
‰
�G—L‘L×&Ñ&Ð&¨Ô0Ø�‰˜Ÿ™×+Ñ+Ð+¨WÔ5Ø×"Ñ"Ø U°A­Ió
÷ Qð Qà×!Ñ! *¸uÈaÅiÓPð	Qr   c                óz  € VP                  4       pVP                  VP                  V4       VP                  VP                  V4       VP                  VP                  ) V4       VP                  VP                  ) V4       V P	                  W4WV^,           4      ;'       d    V P	                  WtWV^,           4      # rœ   r¬   r®   s   &&&&&&& r   r_   Ú TableauProver._attempt_proof_iff0  s˜   € ð —\‘\“^ˆ
Ø�
‰
�7—=‘= 'Ô*Ø�
‰
�7—>‘> 7Ô+Ø�‰˜Ÿ™�~ wÔ/Ø�‰˜Ÿ™�¨Ô0Ø×"Ñ"Ø U°A­Ió
÷ Qð Qà×!Ñ! *¸uÈaÅiÓPð	Qr   c                óÊ  € VP                  4       pVP                  VP                  P                  V4       VP                  VP                  P                  ) V4       VP                  VP                  P                  ) V4       VP                  VP                  P                  V4       V P                  W4WV^,           4      ;'       d    V P                  WtWV^,           4      # rœ   r´   r®   s   &&&&&&& r   ra   Ú"TableauProver._attempt_proof_n_iff<  s²   € ð —\‘\“^ˆ
Ø�
‰
�7—<‘<×%Ñ% wÔ/Ø�
‰
�G—L‘L×'Ñ'Ð'¨Ô1Ø�‰˜Ÿ™×*Ñ*Ð*¨GÔ4Ø�‰�w—|‘|×*Ñ*¨GÔ4Ø×"Ñ"Ø U°A­Ió
÷ Qð Qà×!Ñ! *¸uÈaÅiÓPð	Qr   c                ó
  € VP                  V4       VP                  VP                  VP                  4       VP	                  VP                  4       VP                  4        V P                  W4\        4       V^,           4      # rœ   )Ú	put_atomsÚreplace_allr–   r—   ÚdiscardÚmark_neqs_freshr'   r(   ry   s   &&&&&&&r   rc   ÚTableauProver._attempt_proof_eqH  sc   € ð 	×Ñ˜ÔØ×Ñ˜7Ÿ=™=¨'¯.©.Ô9Ø×Ñ §¡Ô.Ø×ÑÔ Ø×"Ñ" 6¼C»EÀ5È1Å9ÓMÐMr   c                óö   € \        \        4       4      pVP                  VP                  P	                  VP
                  V4      V4       VP                  4        V P                  W4V0,          WV^,           4      # rœ   )r   r   r$   rt   Úreplacer    rw   r'   )r0   rk   rl   r5   rh   ri   rj   Únew_unique_variables   &&&&&&& r   re   Ú!TableauProver._attempt_proof_someU  sj   € ô 1´Ó1BÓCÐØ�
‰
�7—<‘<×'Ñ'¨×(8Ñ(8Ð:MÓNÐPWÔXØ×ÑÔ Ø×"Ñ"ØÐ':Ð&;Õ;¸UÈAÅIó
ð 	
r   c                ót  €  VP                    V'       Ed/   WAP                   ,
          pV'       d¼   \        V4      ^ ,          pVP	                  RV,          ^4       V;P                   V0,          un         VP                  VP                  P                  VP                  V4      V4       V\        P                  ,          P                  W34       V P                  W4WV^,           4      # VP	                  R^4       RVn        V\        P                  ,          P                  W34       V P                  W4WV^,           4      # \        \        4       4      p	VP	                  RV	,          ^4       V;P                   V	0,          un         VP                  VP                  P                  VP                  V	4      V4       V\        P                  ,          P                  W34       VP!                  4        V P                  W4V	0,          WV^,           4      #   \         d    \        4       Tn          EL(i ; i)é    z--> Using '%s'z--> Variables ExhaustedT)Ú
_used_varsÚAttributeErrorr(   Úlistr<   r$   rt   rÁ   r    r=   rf   r˜   r'   r™   r   r   rw   )
r0   rk   rl   r5   rh   ri   rj   Úbv_availableÚvariable_to_userÂ   s
   &&&&&&&   r   rg   Ú TableauProver._attempt_proof_all_  sÓ  € ð	'Ø×Ò÷
 ˆ?à*×-?Ñ-?Õ?ˆLçÜ"& |Ó"4°QÕ"7�Ø—
‘
Ð+¨oÕ=¸qÔAØ×"Ò" Ð&7Õ7Õ"Ø—
‘
Ø—L‘L×(Ñ(¨×)9Ñ)9¸?ÓKÈWôð ”z—~‘~Õ&×*Ñ*¨GÐ+=Ô>Ø×*Ñ*¨6ÀEÐSTÍ9ÓUÐUð —
‘
Ð4°aÔ8Ø%)�Ô"Ø”z—~‘~Õ&×*Ñ*¨GÐ+=Ô>Ø×*Ñ*¨6ÀEÐSTÍ9ÓUÐUô #5´_Ó5FÓ"GÐØ�J‰JÐ'Ð*=Õ=¸qÔAØ×ÒÐ#6Ð"7Õ7ÕØ�J‰JØ—‘×$Ñ$ W×%5Ñ%5Ð7JÓKÈWôð ”:—>‘>Õ"×&Ñ&¨Ð'9Ô:Ø×"Ñ"Ô$Ø×&Ñ&ØÐ+>Ð*?Õ?ÀÐPQÍ	óð øôE ô 	'Ü!$£ˆG×ð	'ús   ‚H ÈH7È6H7c                ó8  € \        V \        4      '       d   V P                  p \        V \        4      '       d4   V P                   F!  p\
        P                  V4      '       d   K    R # 	  R# \        V \        4      '       g   \        V \        4      '       d   R# R # )FT)	rs   r   rt   r   rx   r    r†   r   r   )r7   r�   s   & r   r†   ÚTableauProver.is_atomŠ  sv   € ä�aÔ*×+Ò+Ø—‘ˆAä�aÔ.×/Ò/Ø—v”v�Ü$×,Ñ,¨S×1Ô1Ú ñ ñ Ü˜Ô5×6Ò6¼*ØÔ÷;
ò ;
ñ ár   r   )NNF) r   r   r   r   r*   r8   r'   r?   rC   rA   rE   rG   rI   rK   rM   rO   rQ   rS   rU   rW   rY   r[   r]   r_   ra   rc   re   rg   Ústaticmethodr†   r   Ú__classdictcell__©Ú__classdict__s   @r   r    r    )   s¢   ø‡ € Ø€Mô3ò0!UòFò.ò.
ò
òYò"Yò$
ò&NòNòNòNòNòNòQòQòQò
Qò
QòNò
ò)ðV ñó ör   r    c                   ó*   a € ] tR tRt o RR ltRtV tR# )ÚTableauProverCommandiœ  Nc                ó‚   € Ve   \        V\        4      '       g   Q hM
\        4       p\        P                  ! WW4       R# )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)rs   r    r   Ú__init__)r0   r1   r2   Úprovers   &&&&r   rÕ   ÚTableauProverCommand.__init__�  s4   € ð ÒÜ˜f¤m×4Ò4Ð4Ñ4ä"“_ˆFä×"Ò" 4°ÖCr   r   )NNN)r   r   r   r   rÕ   r   rÏ   rÐ   s   @r   rÓ   rÓ   œ  s   ø‡ € ÷Dò Dr   rÓ   c                   ól   a € ] tR tRt o R tR t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#   i­  c                óš   € \         ;QJ d$    . R  \        ^4       4       F  NK  	  5V n        R# ! R  \        ^4       4       4      V n        R# )c              3   ó6   "  € T F  p\        4       x € K  	  R # 5i©N)r(   )Ú.0rŒ   s   & r   Ú	<genexpr>Ú"Agenda.__init__.<locals>.<genexpr>¯  s   é € Ð3© Aœ#Ÿ%˜%«ùs   ‚N)ÚtupleÚrangeÚsets)r0   s   &r   rÕ   ÚAgenda.__init__®  s.   € ß”EÑ3¬¨r¬Ó3—EˆŽ	�EÑ3¬¨r¬Ó3Ó3ˆŽ	r   c                ó¬  € \        4       pV P                   Uu. uF  q"P                  4       NK  	  pp\        4       pV\        P
                  ,           FY  w  rV\        VP                  VP                  4      p VP                   Uu0 uF  qˆkK  	  upVn	        VP                  VR 34       K[  	  WC\        P
                  &   V\        P                  ,           U	U
u0 uF  w  rš\        V	P                  4      V
3kK  	  up
p	V\        P                  &   \        V4      Vn        V# u upi u upi   \         d    \        4       Tn	         L²i ; iu up
p	i rÛ   )r#   rá   Úcopyr(   r=   rf   r   r    rt   rÆ   rÇ   r˜   rJ   r   rß   )r0   r¯   ÚsÚset_listÚ
new_allExsÚallExÚ_Ú	new_allExÚusedÚn_eqrŽ   s   &          r   r­   ÚAgenda.clone±  s  € Ü“Xˆ
Ø&*§i¢iÓ0¡i —F‘F–H¡iˆÐ0ä“Uˆ
Ø ¤§¡×0Ð0‰HˆEÜ% e§n¡n°e·j±jÓAˆIð-Ø9>×9IÒ9IÓ'JÑ9I°ªÑ9IÑ'J�	Ô$ð �N‰N˜I tÐ,Ö-ñ 1ð $.”—‘Ñ ð  (¬
¯©Ö8ô%
á8‘�ô ˜tŸy™yÓ)¨3Ó/Ù8ò%
ˆ”—‘Ñ!ô
   ›/ˆ
ŒØÐùò% 1ùò (KøÜ!ô -Ü'*£u�	Ö$ð-üó
%
s/   ™D&Á:D0Â
D+ÂD0Ã"EÄ+D0Ä0EÅEc                ó(   € V P                   V,          # rÛ   ©rá   )r0   Úindexs   &&r   Ú__getitem__ÚAgenda.__getitem__Ç  s   € Ø�y‰y˜ÕÐr   Nc                óh  € \        V\        4      '       dC   \        VP                  VP                  4      p VP                   Uu0 uF  qDkK  	  upVn        MTpV P                  V P                  V4      ,          P                  W234       R # u upi   \
         d    \        4       Tn         LUi ; irÛ   )
rs   r   r    rt   rÆ   rÇ   r(   rá   Ú_categorize_expressionr˜   )r0   Ú
expressionrl   Ú	ex_to_addrë   s   &&&  r   r$   Ú
Agenda.putÊ  s”   € Ü�j¤-×0Ò0Ü% j×&9Ñ&9¸:¿?¹?ÓKˆIð-Ø9C×9NÒ9NÓ'OÑ9N°ªÑ9NÑ'O�	Õ$ð #ˆIØ�	‰	�$×-Ñ-¨iÓ8Õ9×=Ñ=¸yÐ>RÖSùò (PøÜ!ô -Ü'*£u�	Ö$ð-ús#   ¸B Á
BÁB ÂB ÂB1Â0B1c                ó:   € V F  pV P                  V4       K  	  R # rÛ   )r$   )r0   Úexpressionsrõ   s   && r   r%   ÚAgenda.put_allÕ  s   € Û%ˆJØ�H‰H�ZÖ ó &r   c                óÒ   € V F`  w  r#V'       d,   V \         P                  ,          P                  V) R 34       K8  V \         P                  ,          P                  VR 34       Kb  	  R # rÛ   )r=   rB   r˜   r>   )r0   ri   ÚatomÚnegs   &&  r   r»   ÚAgenda.put_atomsÙ  sK   € Û‰IˆDßØ”Z×&Ñ&Õ'×+Ñ+¨d¨U°D¨MÖ:à”Z—_‘_Õ%×)Ñ)¨4°¨,Ö7ó	 r   c                ó�  € \        V P                  4       Fƒ  w  rV'       g   K  V\        P                  \        P                  39   d>   V F5  p V^ ,          P
                  '       g   VP                  V4       W13u u # K7  	  Kq  VP                  4       V3u # 	  R#   \         d    TP                  T4       Y13u u u # i ; i)z3Pop the first expression that appears in the agenda))NNN)	r…   rá   r=   rJ   rf   r™   ÚremoverÇ   Úpop)r0   rŒ   rå   Úexs   &   r   r;   ÚAgenda.pop_firstà  s¤   € ä˜dŸi™iÖ(‰DˆAß‰qØœŸ™¬*¯.©.Ð9Ô9Û˜ð+Ø#% a¥5×#3×#3Ð#3Ø !§¡¨¤Ø(* w¤ñ $4ó  ð ŸE™E›G Q˜<Ò'ñ )ð $Ð#øô  .ô +ØŸH™H RœLØ$& 7žNð+ús   Á,BÂCÃCc                ó¾   € V P                    FL  pV FC  w  rEVP                  VP                  V4       Vf   K'  VP                  VP                  V4       KE  	  KN  	  R # rÛ   )rá   rÁ   r    )r0   ÚoldÚnewrå   r  rŽ   s   &&&   r   r¼   ÚAgenda.replace_allñ  sE   € Ø—”ˆAÛ‘�Ø—
‘
˜3Ÿ<™<¨Ô-Ø”?Ø—K‘K §¡¨cÖ2ó ó r   c                óh   € V P                   \        P                  ,           F  w  rR Vn        K  	  R# ©FN)rá   r=   rf   r™   )r0   Úuré   s   &  r   rw   ÚAgenda.mark_alls_freshø  s%   € Ø—I‘IœjŸn™n×-Ð-‰DˆAØ ˆAŽLó .r   c                óh   € V P                   \        P                  ,           F  w  rR Vn        K  	  R# r	  )rá   r=   rJ   r™   )r0   Úneqré   s   &  r   r¾   ÚAgenda.mark_neqs_freshü  s%   € Ø—i‘i¤
§¡×0Ð0‰FˆCØ"ˆCŽNó 1r   c                óž  € \        V\        4      '       d   V P                  V4      # \        V\        4      '       d   \        P
                  # \        P                  V4      '       d   \        P                  # \        V\        4      '       d   \        P                  # \        V\        4      '       d   \        P                  # \        V\        4      '       d   \        P                  # \        V\        4      '       d   \        P                   # \        V\"        4      '       d   \        P$                  # \        V\&        4      '       d   \        P(                  # \        V\*        4      '       d   \        P,                  # \        V\.        4      '       d   \        P0                  # \3        R VP4                  P6                  ,          4      h©zcannot categorize %s)rs   r   Ú_categorize_NegatedExpressionr   r=   r@   r    r†   r>   r   rf   r   rR   r   rX   r   rZ   r   r^   r	   rb   r
   rd   r   rF   r   Ú	__class__r   )r0   rk   s   &&r   rô   ÚAgenda._categorize_expression   s.  € Ü�gÔ0×1Ò1Ø×5Ñ5°gÓ>Ð>Ü˜Ô!;×<Ò<Ü—?‘?Ð"Ü×"Ñ" 7×+Ò+Ü—?‘?Ð"Ü˜¤×/Ò/Ü—>‘>Ð!Ü˜¤×/Ò/Ü—>‘>Ð!Ü˜¤×.Ò.Ü—=‘=Ð Ü˜¤×/Ò/Ü—>‘>Ð!Ü˜¤×/Ò/Ü—>‘>Ð!Ü˜Ô!3×4Ò4Ü—=‘=Ð Ü˜Ô!1×2Ò2Ü×$Ñ$Ð$Ü˜Ô!6×7Ò7Ü—>‘>Ð!ä"Ð#9¸G×<MÑ<M×<VÑ<VÕ#VÓWÐWr   c                ó´  € VP                   p\        V\        4      '       d   \        P                  # \        V\
        4      '       d   \        P                  # \        P                  V4      '       d   \        P                  # \        V\        4      '       d   \        P                  # \        V\        4      '       d   \        P                  # \        V\        4      '       d   \        P                  # \        V\         4      '       d   \        P"                  # \        V\$        4      '       d   \        P&                  # \        V\(        4      '       d   \        P*                  # \        V\,        4      '       d   \        P.                  # \        V\0        4      '       d   \        P2                  # \5        R VP6                  P8                  ,          4      hr  )rt   rs   r   r=   rL   r   rD   r    r†   rB   r   rN   r   r\   r   rT   r   rV   r   r`   r	   rJ   r
   rP   r   rH   r   r  r   )r0   rk   Únegateds   && r   r  Ú$Agenda._categorize_NegatedExpression  s@  € Ø—,‘,ˆä�gÔ0×1Ò1Ü×#Ñ#Ð#Ü˜Ô!;×<Ò<Ü×$Ñ$Ð$Ü×"Ñ" 7×+Ò+Ü×$Ñ$Ð$Ü˜¤×/Ò/Ü×#Ñ#Ð#Ü˜¤×/Ò/Ü×#Ñ#Ð#Ü˜¤×.Ò.Ü—?‘?Ð"Ü˜¤×/Ò/Ü×#Ñ#Ð#Ü˜¤×/Ò/Ü×#Ñ#Ð#Ü˜Ô!3×4Ò4Ü—?‘?Ð"Ü˜Ô!1×2Ò2Ü×&Ñ&Ð&Ü˜Ô!6×7Ò7Ü×#Ñ#Ð#ä"Ð#9¸G×<MÑ<M×<VÑ<VÕ#VÓWÐWr   rï   rÛ   )r   r   r   r   rÕ   r­   rñ   r$   r%   r»   r;   r¼   rw   r¾   rô   r  r   rÏ   rÐ   s   @r   r#   r#   ­  sJ   ø‡ € ò4òò, ô	Tò!ò8ò$ò"3ò!ò#òX÷4Xð Xr   r#   c                   ó:   a € ] tR tRt o RR ltR tRR ltRtV tR# )	r&   i7  Nc                ó>   € Wn         W n        V'       g   . pW0n        R # rÛ   )r3   Úindentr/   )r0   r3   r  r/   s   &&&&r   rÕ   ÚDebug.__init__8  s   € ØŒØŒçØˆEØŽ
r   c                óf   € \        V P                  V P                  ^,           V P                  4      # rœ   )r&   r3   r  r/   )r0   Ú	increments   &&r   Ú__add__ÚDebug.__add__@  s!   € Ü�T—\‘\ 4§;¡;°¥?°D·J±JÓ?Ð?r   c                ó  € \        V\        4      '       dn   Vw  r4V'       d	   V R V 2pM	RV,          p\        V\        4      '       d;    RRP                  R VP                   4       4      ,          pVRV,          ,          pRP                  RV P                  V,           ,          V4      pV P                  P                  V4       V P                  '       d   \        V4       R	# R	#   \
         d    TR,          p L|i ; i)
ú, ú%sz[%s]Ú,c              3   ó\   "  € T F"  pR VP                   P                  ,          x € K$  	  R# 5i)r!  N)r    Úname)rÜ   Úves   & r   rÝ   ÚDebug.line.<locals>.<genexpr>N  s"   é € Ð QÁ=¸R ¨¯©×(8Ñ(8×!8Ò!8Ã=ùs   ‚*,z:   %sz:   []z{}{}z   N)rs   rß   r   r.   rÆ   rÇ   Úformatr  r/   Úappendr3   r-   )r0   Údatar  r  rŽ   Ú	used_varsÚnewlines   &&&    r   r<   Ú
Debug.lineC  sÖ   € Ü�dœE×"Ò"Ø‰GˆBßØ˜˜R ˜u�~‘à˜b•y�ä˜"œm×,Ò,ð%Ø &ØŸ™Ñ QÀ2Ç=Â=Ó QÓQõ!�Ið ˜H yÕ0Õ0�Dð —-‘- ¨¯©°vÕ)=Õ >ÀÓEˆØ�
‰
×Ñ˜'Ô"à�<�<ˆ<Ü�'ŽNñ øô &ô %Ø˜HÕ$’Dð%ús   Á9C* Ã*DÄ D)r  r/   r3   )rÅ   N)rÅ   )	r   r   r   r   rÕ   r  r<   r   rÏ   rÐ   s   @r   r&   r&   7  s   ø‡ € ôò@÷ò r   r&   c                   ój   € ] tR tRt^ t^t^t^t^t^t	^t
^t^t^	t^
t^t^t^t^t^t^t^t^t^t^tRtR# )r=   i[  r   N)r   r   r   r   r>   r@   rB   rD   rF   rH   rJ   rL   rN   rP   rR   rT   rV   rX   rZ   r\   r^   r`   rb   rd   rf   r   r   r   r   r=   r=   [  sk   † Ø€DØ€DØ€FØ€FØ
€CØ€EØ€DØ€EØ€EØ€HØ
€CØ€DØ€EØ	€BØ
€CØ€EØ
€CØ€EØ	€BØ€FØ
„Cr   r=   c                  óH  € \        R 4       \        R4       \        RRR.4       \        R4       \        R4       \        R4       \        R4       \        R	4       \        R4       \        R4       \        R	4       \        R4       \        R
4       \        R4       \        R4       \        R4       \        R4       Rp RpRp\        W V.4       Rp RpRp\        W V.4       RpRp\        W#.4       RpRp\        W#.4       RpRp\        W#.4       Rp\        V4       R# )z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))))N©Útableau_test)Úp1Úp2ÚcÚps       r   ÚtestTableauProverr7  s  s   € Ü�ÔÜ�ÔÜ��s˜JÐ'Ô(Ü�ÔÜÐ%Ô&ÜÐ'Ô(ÜÐ(Ô)ÜÐ&Ô'ÜÐ%Ô&ÜÐ(Ô)ÜÐ&Ô'ÜÐ%Ô&ÜÐ&Ô'ÜÐ(Ô)Ü�Ô ÜÐ3Ô4ÜÐEÔFð 
'€BØ	€BØ€AÜ�˜�HÔà	%€BØ	€BØ€AÜ�˜�HÔà€AØ€AÜ��CÔà)€AØ€AÜ��CÔà?€AØ€AÜ��CÔð 	J€AÜ�†Or   c                  ó¼   € \        R R.4       \        RR.4       \        RR.4       \        RR.4       \        RR.4       \        R	R.4       \        R
R.4       R# )z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))Nr1  r   r   r   ÚtestHigherOrderTableauProverr9  §  sq   € ÜÐ&Ð)JÐ(KÔLÜÐ0Ð3GÐ2HÔIÜØ˜x˜jôô Ø'Ø	FÐGôô Ð'Ð*GÐ)HÔIäÐ0Ð3RÐ2SÔTÜÐ2Ð5VÐ4WÖXr   Nc                 ó,  € \         P                  ! V 4      pV'       d'   V Uu. uF  p\         P                  ! V4      NK  	  upM. pV'       g   . p\        R P                  V4      : RV: R\	        4       P                  W5VR7      : 24       R# u upi )r   z |- z: )r3   N)r   Ú
fromstringr-   r.   r    Úprove)r5  Úpsr3   Úpcr6  Úppss   &&&   r   r2  r2  ·  sq   € Ü	×	Ò	˜qÓ	!€Bß46©RÓ
0©R¨Œ:× Ò  Ö#©RÒ
0¸B€CßØˆÜ	à�9‰9�RŽ=›"œm›o×3Ñ3°BÀWÐ3ÕMð	Oöùò 1s   £Bc                  ó.   € \        4        \        4        R # rÛ   )r7  r9  r   r   r   ÚdemorA  Â  s   € ÜÔÜ Ö"r   Ú__main__)NF)$Ú__doc__Ú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&   r=   r7  r9  r2  rA  r   r   r   r   Ú<module>rG     s¬   ðñ÷ 9Ý "÷÷ ÷ ÷ ó ñ& ‹9€ô	�yô 	ôp�Fô pôfDÐ,ô D÷"GXñ GX÷T!ñ !÷Hñ ò0,òhYô ò#ð
 ˆzÔÙ†Fñ r   