ó <¿CVc@s}dZddlmZmZddlmZddlmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZmZmZmZddlmZmZeƒZdefd„ƒYZdefd „ƒYZd efd „ƒYZd efd „ƒYZ defd„ƒYZ!defd„ƒYZ"d„Z#d„Z$e%e&d„Z'd„Z(e)dkrye(ƒndS(u8 Module for a tableau-based First Order theorem prover. iÿÿÿÿ(tprint_functiontunicode_literals(tCounter(tVariableExpressiontEqualityExpressiontApplicationExpressiont ExpressiontAbstractVariableExpressiont AllExpressiontNegatedExpressiontExistsExpressiontVariablet ImpExpressiont AndExpressiontunique_variabletLambdaExpressiont IffExpressiont OrExpressiontFunctionVariableExpression(tProvertBaseProverCommandtProverParseErrorcBseZRS((t__name__t __module__(((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRst TableauProvercBsõeZeZdded„Zd„Zd„Zd„Zd„Z d„Z d„Z d„Z d„Z d „Zd „Zd „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zed„ƒZRS(cCsÜ|sg}nd}y[tƒ}|r8|j| ƒn|j|ƒt|ƒ}|j|tƒtƒ|ƒ}WnStk rÅ}|jr©t |ƒj dƒr©t }qÆ|r¼t |ƒqÆ|‚nX|dj |jƒfS(Nu maximum recursion depth exceededu (tNonetAgendatputtput_alltDebugt_attempt_prooftsett RuntimeErrort _assume_falsetstrt startswithtFalsetprinttjointlines(tselftgoalt assumptionstverbosetresulttagendatdebuggerte((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyt_prove"s"    "   c Csv|jƒ\\}}}|s/|jdƒtSi|jtj6|jtj6|jtj 6|j tj 6|j tj 6|jtj6|jtj6|jtj6|jtj6|jtj6|jtj6|jtj6|jtj6|jtj6|j tj!6|j"tj#6|j$tj%6|j&tj'6|j(tj)6|j*tj+6|j,tj-6|}|j||fƒ|||||||ƒS(Nu AGENDA EMPTY(.t pop_firsttlineR$t_attempt_proof_atomt CategoriestATOMt_attempt_proof_proptPROPt_attempt_proof_n_atomtN_ATOMt_attempt_proof_n_proptN_PROPt_attempt_proof_apptAPPt_attempt_proof_n_apptN_APPt_attempt_proof_n_eqtN_EQt_attempt_proof_d_negtD_NEGt_attempt_proof_n_alltN_ALLt_attempt_proof_n_sometN_EXISTSt_attempt_proof_andtANDt_attempt_proof_n_ortN_ORt_attempt_proof_n_imptN_IMPt_attempt_proof_ortORt_attempt_proof_imptIMPt_attempt_proof_n_andtN_ANDt_attempt_proof_ifftIFFt_attempt_proof_n_ifftN_IFFt_attempt_proof_eqtEQt_attempt_proof_sometEXISTSt_attempt_proof_alltALL( R(R-taccessible_varstatomstdebugtcurrenttcontexttcategoryt proof_method((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR8s8                     cCsÈ|tf|kr&|jddƒtS|r€t|jtƒrM|jƒ}n|j||ƒjƒƒ|j||||dƒS|j ƒ|j||t |j ƒB|t |t fgƒB|dƒSdS(NuCLOSEDi( tTrueR2t isinstancettermR tnegateRtsimplifyRtmark_alls_freshRtargsR$(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR3Zs cCsÑ|jtf|kr)|jddƒtS|rƒt|jtƒrP|jƒ}n|j||ƒjƒƒ|j ||||dƒS|j ƒ|j ||t |jj ƒB|t |jtfgƒB|dƒSdS(NuCLOSEDi( RgR$R2ReRfR RhRRiRRjRRk(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR8js cCs]|tf|kr&|jddƒtS|jƒ|j|||t|tfgƒB|dƒS(NuCLOSEDi(ReR2RjRRR$(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR6zs  cCsc|jtf|kr)|jddƒtS|jƒ|j|||t|jtfgƒB|dƒS(NuCLOSEDi(RgR$R2ReRjRR(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR:„s  cCs|jƒ\}}xàt|ƒD]Ò\} } tj| ƒs|} tdtjƒƒ} xDt|ƒD]6\} }| | kr| t| ƒƒn | |ƒ} qcW|r¸|| ƒjƒ} nt | | ƒ} |j | | ƒ|j ||||dƒSqWt dƒ‚dS(NuX%siu=If this method is called, there must be a non-atomic argument( tuncurryt enumerateRtis_atomR t_countertgetRRiRRRt Exception(R(RaRbR-R^R_R`tfRktitargtctxtnvtjta((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR<Žs.cCs |jjƒ\}}xât|ƒD]Ô\} } tj| ƒs"|} tdtjƒƒ} xDt|ƒD]6\} }| | kr| t| ƒƒn | |ƒ} qfW|r»|| ƒj ƒ} nt | | ƒ} |j | | ƒ|j ||||dƒSq"Wt dƒ‚dS(NuX%siu=If this method is called, there must be a non-atomic argument(RgRlRmRRnR RoRpRRiRRRRq(R(RaRbR-R^R_R`RrRkRsRtRuRvRwRx((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR>s.cCs…|jj|jjkr,|jddƒtS|tjj||fƒt|_|j ||t |jj|jjgƒB||dƒS(NuCLOSEDi( RgtfirsttsecondR2ReR4RAtaddt _exhaustedRR(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR@­s  cCs0|j|jj|ƒ|j||||dƒS(Ni(RRgR(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRB¹scCsJ|tjjt|jj|jj ƒ|fƒ|j||||dƒS(Ni(R4R[R{R RgtvariableR(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRD½s0cCsJ|tjjt|jj|jj ƒ|fƒ|j||||dƒS(Ni(R4R]R{RRgR}R(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRFÁs0cCs@|j|j|ƒ|j|j|ƒ|j||||dƒS(Ni(RRyRzR(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRHÅscCsH|j|jj |ƒ|j|jj |ƒ|j||||dƒS(Ni(RRgRyRzR(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRJÊscCsG|j|jj|ƒ|j|jj |ƒ|j||||dƒS(Ni(RRgRyRzR(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRLÏscCsh|jƒ}|j|j|ƒ|j|j|ƒ|j||||dƒog|j||||dƒS(Ni(tcloneRRyRzR(R(RaRbR-R^R_R`t new_agenda((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRNÔs  cCsi|jƒ}|j|j |ƒ|j|j|ƒ|j||||dƒoh|j||||dƒS(Ni(R~RRyRzR(R(RaRbR-R^R_R`R((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRPÛs  cCsp|jƒ}|j|jj |ƒ|j|jj |ƒ|j||||dƒoo|j||||dƒS(Ni(R~RRgRyRzR(R(RaRbR-R^R_R`R((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRRâs  cCs|jƒ}|j|j|ƒ|j|j|ƒ|j|j |ƒ|j|j |ƒ|j||||dƒo|j||||dƒS(Ni(R~RRyRzR(R(RaRbR-R^R_R`R((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRTés cCsœ|jƒ}|j|jj|ƒ|j|jj |ƒ|j|jj |ƒ|j|jj|ƒ|j||||dƒo›|j||||dƒS(Ni(R~RRgRyRzR(R(RaRbR-R^R_R`R((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRVòs cCsZ|j|ƒ|j|j|jƒ|j|jƒ|jƒ|j||tƒ|dƒS(Ni(t put_atomst replace_allRyRztdiscardtmark_neqs_freshRR(R(RaRbR-R^R_R`((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRXûs   cCsbttƒƒ}|j|jj|j|ƒ|ƒ|jƒ|j||t|gƒB||dƒS(Ni( RRRRgtreplaceR}RjRR(R(RaRbR-R^R_R`tnew_unique_variable((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRZs" c CsÒy |jWntk r*tƒ|_nX|r&||j}|rÖt|ƒd}|jd|dƒ|jt|gƒO_|j|jj|j|ƒ|ƒ|t j j ||fƒ|j ||||dƒS|jddƒt |_|t j j ||fƒ|j ||||dƒSn¨ttƒƒ} |jd| dƒ|jt| gƒO_|j|jj|j| ƒ|ƒ|t j j ||fƒ|jƒ|j ||t| gƒB||dƒSdS(Niu--> Using '%s'iiu--> Variables Exhausted(t _used_varstAttributeErrorRtlistR2RRgR„R}R4R]R{RReR|RRRj( R(RaRbR-R^R_R`t bv_availabletvariable_to_useR…((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR\ s0   " " cCst|tƒr|j}nt|tƒrUx$|jD]}tj|ƒs4tSq4WtSt|t ƒsst|t ƒrwtStSdS(N( RfR RgRRkRRnR$ReRR(R/Rt((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRn/s N(RRR$R!RR0RR3R8R6R:R<R>R@RBRDRFRHRJRLRNRPRRRTRVRXRZR\t staticmethodRn(((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRs2 "               #tTableauProverCommandcBseZdddd„ZRS(cCsG|dk r$t|tƒs-t‚n tƒ}tj||||ƒdS(ué :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(RRfRtAssertionErrorRt__init__(R(R)R*tprover((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRŽAs  N(RRRRŽ(((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRŒ@sRcBsweZd„Zd„Zd„Zd d„Zd„Zd„Zd„Z d„Z d„Z d „Z d „Z d „ZRS( cCs#td„tdƒDƒƒ|_dS(Ncss|]}tƒVqdS(N(R(t.0Rs((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pys Ssi(ttupletrangetsets(R(((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRŽRscCsþtƒ}g|jD]}|jƒ^q}tƒ}xƒ|tjD]t\}}t|j|jƒ}y td„|j Dƒƒ|_ Wnt k r¢tƒ|_ nX|j |dfƒqBW||tj]scss*|] \}}t|jƒ|fVqdS(N(R Rg(Rtn_eqRu((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pys cs(RR“tcopyRR4R]RR}RgR†R‡R{RRAR‘(R(Rtstset_listt new_allExstallExt_t new_allEx((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR~Us "     cCs |j|S(N(R“(R(tindex((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyt __getitem__iscCs”t|tƒrgt|j|jƒ}y td„|jDƒƒ|_Wqmtk rctƒ|_qmXn|}|j|j|ƒj ||fƒdS(Ncss|] }|VqdS(N((RR”((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pys ps( RfRR}RgRR†R‡R“t_categorize_expressionR{(R(t expressionRbt ex_to_add((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRls  cCs"x|D]}|j|ƒqWdS(N(R(R(t expressionsR ((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRws cCsYxR|D]J\}}|r7|tjj| dfƒq|tjj|dfƒqWdS(N(R4R9R{RR5(R(R_tatomtneg((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR€{scCs¹x²t|jƒD]¡\}}|r|tjtjgkržxq|D]V}y(|djsn|j|ƒ||fSWqAtk r–|j|ƒ||fSXqAWq±|jƒ|fSqqWdS(u5 Pop the first expression that appears in the agenda iN(NN((NNN( RmR“R4RAR]R|tremoveR‡tpopR(R(RsR—tex((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR1‚s     cCsdx]|jD]R}xI|D]A\}}|j|j|ƒ|dk r|j|j|ƒqqWq WdS(N(R“R„R}R(R(toldtnewR—R§Ru((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR“s  cCs.x'|jtjD]\}}t|_qWdS(N(R“R4R]R$R|(R(tuR›((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRjšscCs.x'|jtjD]\}}t|_qWdS(N(R“R4RAR$R|(R(tneqR›((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRƒžscCst|tƒr|j|ƒSt|tƒr2tjStj|ƒrHtjSt|t ƒr^tj St|t ƒrttj St|t ƒrŠtjSt|tƒr tjSt|tƒr¶tjSt|tƒrÌtjSt|tƒrâtjSt|tƒrøtjStd|jjƒ‚dS(Nucannot categorize %s(RfR t_categorize_NegatedExpressionRR4R7RRnR5RR]R RIRROR RQRRURRYR R[RR=Rt __class__R(R(Ra((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRŸ¢s0 cCs|j}t|tƒrtjSt|tƒr5tjStj|ƒrKtj St|t ƒratj St|t ƒrwtj St|tƒrtjSt|tƒr£tjSt|tƒr¹tjSt|tƒrÏtjSt|tƒråtjSt|tƒrûtjStd|jjƒ‚dS(Nucannot categorize %s(RgRfR R4RCRR;RRnR9RRER RSRRKR RMRRWRRAR RGRR?RR­R(R(Ratnegated((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR¬½s2 N(RRRŽR~RžRRRR€R1RRjRƒRŸR¬(((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRQs          RcBs,eZddd„Zd„Zdd„ZRS(icCs.||_||_|s!g}n||_dS(N(R+tindentR'(R(R+R¯R'((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRŽÜs    cCst|j|jd|jƒS(Ni(RR+R¯R'(R(t increment((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyt__add__ãscCsèt|tƒr£|\}}|r4d||f}n d|}t|tƒr£y2ddjd„|jDƒƒ}|d|7}Wq tk rœ|d7}q Xq£ndd |j||f}|jj|ƒ|j rät |ƒndS( Nu%s, %su%su[%s]u,css|]}d|jjVqdS(u%sN(R}tname(Rtve((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pys ðsu: %su: []u%s%su ( RfR‘RR&R†R‡R¯R'tappendR+R%(R(tdataR¯R§Rut used_varstnewline((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR2æs     N(RRRRŽR±R2(((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyRÛs R4cBs†eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZRS(iiiiiiiiii i i i i iiiiiii(RRR5R7R9R;R=R?RARCRERGRIRKRMRORQRSRURWRYR[R](((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR4üs*cCsetdƒtdƒtdddgƒtdƒtdƒtdƒtd ƒtd ƒtdƒtd ƒtd ƒtdƒtd ƒtd ƒtd ƒtdƒtdƒd}d}d}t|||gƒd}d}d}t|||gƒd}d}t||gƒd}d}t||gƒd}d}t||gƒd}t|ƒdS(NuP | -PuP & -PuQuPu(P -> Q)uman(x)u(man(x) -> man(x))u(man(x) -> --man(x))u-(man(x) and -man(x))u(man(x) or -man(x))u(man(x) iff man(x))u-(man(x) iff -man(x))u all x.man(x)u all x.all y.((x = y) -> (y = x))u2all x.all y.all z.(((x = y) & (y = z)) -> (x = z))uall x.(man(x) -> mortal(x))u man(Socrates)umortal(Socrates)uall x.(man(x) -> walks(x))u man(John)usome y.walks(y)u((x = y) & walks(y))uwalks(x)u((x = y) & ((y = z) & (z = w)))u(x = w)u5some e1.some e2.(believe(e1,john,e2) & walk(e2,mary))usome e0.walk(e0,mary)u(exists x.exists z3.((x = Mary) & ((z3 = John) & sees(z3,x))) <-> exists x.exists z4.((x = John) & ((z4 = Mary) & sees(x,z4))))(t tableau_test(tp1tp2tctp((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyttestTableauProversH                cCsttddgƒtddgƒtddgƒtddgƒtdd gƒtd dgƒtd dgƒdS( Nubelieve(j, -lie(b))ubelieve(j, -lie(b) & -cheat(b))ubelieve(j, lie(b) & cheat(b))ubelieve(j, lie(b))ulie(b)ubelieve(j, know(b, cheat(b)))u;believe(j, know(b, lie(b)) & know(b, steals(b) & cheat(b)))uP(Q(y), R(y) & R(z))uP(Q(x) & Q(y), R(y) & R(z))ubelieve(j, cheat(b) & lie(b))ubelieve(j, -cheat(b) & -lie(b))(R¸(((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyttestHigherOrderTableauProverGsc Cs…tj|ƒ}|r7g|D]}tj|ƒ^qng}|sLg}ntddj|ƒ|tƒj||d|ƒfƒdS(Nu %s |- %s: %su, R+(Rt fromstringR%R&Rtprove(R»tpsR+tpcR¼tpps((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyR¸Rs . cCstƒtƒdS(N(R½R¾(((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pytdemoYsu__main__N(*t__doc__t __future__RRtnltk.internalsRtnltk.sem.logicRRRRRRR R R R R RRRRRtnltk.inference.apiRRRoRqRRRŒtobjectRRR4R½R¾RR$R¸RÄR(((sh/private/var/folders/cc/xm4nqn811x9b50x1q_zpkmvdjlphkp/T/pip-build-FUwmDn/nltk/nltk/inference/tableau.pyt s$j  ÿ"Š! 3