ó ;œPc@s/dfd„ƒYZdefd„ƒYZdefd„ƒYZdfd„ƒYZdfd „ƒYZd fd „ƒYZd fd „ƒYZdfd„ƒYZdfd„ƒYZdfd„ƒYZ ddl m Z ddl Z ddl Z de jfd„ƒYZdefd„ƒYZe jedƒdS(tAAcBs#eZd„Zd„Zd„ZRS(cCstd||ƒS(Ntop(tBOAPP(tselftother((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt__mul__scCstd||ƒS(Ntop2(R(RR((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt__add__scCstd||ƒS(Nteq(R(RR((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt__eq__ s(t__name__t __module__RRR (((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRs  tANAMEcBseZd„Zd„ZRS(cCs ||_dS(N(tname(RR ((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt__init__scCs|jS(N(R (R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt__str__s(R R RR(((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR s RcBseZd„Zd„ZRS(cGs||_||_dS(N(tfuncnametargs(RRR((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRs cCs6d|jdjg|jD]}t|ƒ^qƒfS(Ns%s(%s)t,(RtjoinRtstr(Rtx((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRs(R R RR(((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRs tAlgebraicStructurecBseZd„Zd„ZRS(c Os)||_||_g|_xÈt|ƒD]º\}}t|dƒrU|j|krUnit|ƒss||jjkr±i}d|kr–|d|dosRcs0ˆ||ƒs,|jd||fˆfƒStS(Ns not %s in %s(tfailedR.(tenvRR/(texprtf(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyttestfuncss(RR5(tbinoptdRE(tctnames(RCRDsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt gentestfuncis   (R R5tSet(RRItcondtdiR RJ((RHRIsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR7bs  cCs/|j\}}|j|j||ƒd|ƒS(Ns not in %s(targt forall_pairsR(RtatbRBRDR ((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pytc_test_contains|s  (R R R7RR(((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR?as tTernaryAlgebraicStructureFamilycBseZd„Zd„ZRS(cs^i}xˆD]}t|ƒ||R((R(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRFäs%s{( attr('range', set) & attr('arity', equals(2)) & expset('''mapping(range, range, '->', range)''', 'range') )(R]R^texpset(RRFte((RsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_binary_operationãs  cCs|jS(N(trelation(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_binary_relationóscCs |jtƒS(N(tfamilyR?(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_BinaryAlgebraicStructureöscsЇfd†}ˆj}|j||jd|jj|jj@|jj@ƒ|jd|jj|jj@|jj@ƒ@|jd|jjƒ@|jd |jjƒ@|jd |jj ƒ@|jd |jj ƒ@ƒS( Nc st|dkrtd|ƒ}nˆj|ˆjj||d|d|d|ƒˆjj||d|d|d|ƒƒS( Nt~t-tnotslambda x: %s xRR;R<(RsRtRu(R5RhR R!(tsetR=R[R<tid0tid1(R(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pytboolalgús  $R=R[sop0.zeros op1.identitysop1.zeros op0.identity(R=R[(R[R=(sop0.zeros op1.identity(sop1.zeros op0.identity( R]R^R`RRat complementedtmonoidt distributiveRR(RRyRm((RsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_boolean_algebraùs  •cCsd„}|jj|dƒS(NcsIˆj}|j‰|‰ˆj‰|jˆj‡‡‡‡fd†dƒS(Ncsˆjˆ|ˆ|ƒƒˆƒS(N(R(RBR/(R<RDRR;(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@sRz(R=R;R<tforallR(RBRR((R<RDRR;sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pytps    !Rz(R]t predicate(RR((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_complementeds cCs|jddƒS(Ntxysx * y == y * x(Rd(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_commutativescCs |jtƒS(N(RqRV(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt#_get_DistributiveAlgebraicStructurescCs|j|j@S(N(tdistributive_1tdistributive_2(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_distributive"scCs|jddƒS(NRcs x * (y + z) == (x * y) + (x * z)(tDistributiveAlgebraicStructure(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_distributive_1%scCs|jddƒS(NRcs (x + y) * z == (x * z) + (y * z)(Rˆ(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_distributive_2)scsc|j‰|‰dd‡‡fd†ƒY}ˆj|ˆjdˆjjƒˆjdˆjjƒ@ƒS(NtFieldcseZ‡‡fd†ZRS(csx|dkrtd|ƒ}n||_ˆjj|||||ƒ|_ˆjj|ˆj|ƒ|||ƒ|_dS(NRtRsRuslambda x: %s x(RtRsRu(R5RtringR!R_tequalstmulgroup(RRgtaddtmultnegR9R;tone(RRm(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR2s   !(R R R((RRm(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR‹1sRŒRŽ((R]R^R`RRŒt abelian_group(RR‹((RRmsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt _get_field-s  csG‡fd†}d„}ˆj}|j|ˆjˆjj|dƒ@ƒS(Ncs;|dkrtd|ƒ}nˆj||d|d|ƒS(NRtRsRuslambda x: %s xRR9(RtRsRu(R5Rh(RgRR9R(R(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pytmkgroup@s csYy ˆj‰Wntk r-|jdƒnXˆj‰|jˆj‡‡‡fd†ƒS(Nsno invert functioncs4ˆjˆˆ|ƒ|ƒˆ|ˆ|ƒƒˆjƒS(N(RR(RBR(RDtgtinv(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@Ks(R9tAttributeErrorRAR=R~R(RBR–((RDR–R—sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyREs    R_(R]R^R{R€(RR•RRm((RsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt _get_group?s  cCs#ddd„ƒY}|jj|ƒS(Nt RelationSpeccBs#eZd„Zd„Zd„ZRS(cSsH|j|j|jf>|jjjB}|j|jj|jj||ƒS(N( tbooleantPyObjectRRRtcprodt setcastableRotfuop(RRmRF((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_spec_quadrupleYs  cSs.td|jƒtdƒtdƒtdƒfS(NRRtGLBtLUB(R`Rv(RRm((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_spec_structbs  c Ss¼|\}}}}|j|ƒ}|jjj|jj||ffƒ}|jjj||ƒ}|jjj||ƒ}ddd„ƒY}|ƒ}||_||_ ||_ ||_ |S(NtCcBseZRS((R R (((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR¤os(( RfRotpaxat fromuniversaltdefipairRR R!RRR¡R¢( RRmt.2RgRR¡R¢R¤RH((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pytmap_quadruple_to_structis'     (R R R R£R©(((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRšWs ((R]trepcat(RRš((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_latticeformTs!cCs‰|j}d„}|j|jjj|jdƒ|jd|jjjƒ@|jd|jj ƒ@|jd|jj ƒ@|j |dƒ@ƒS(NcsR‡‡fd†}|‡‡fd†ˆjdƒoQ|‡‡fd†ˆjdƒS(Ncs+‡‡‡‡fd†}ˆjˆj|ƒS(Ncs…ˆˆˆƒ‰ˆˆˆƒo*ˆˆˆƒs>|jdˆƒSˆˆˆƒs\ˆˆˆƒr`tS|jˆj‡‡‡‡fd†ƒS(Ns not an %scs,ˆ|ˆƒoˆ|ˆƒ p+ˆ|ˆƒS(N((RBtlb2(tRtlbRR/(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@†s(RAR.R~R(RBRR/(R­tlatR R(R®RR/sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyttestlbs (ROR(R­RR R°(RBR¯(R­R RsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyttest~s csˆjˆj||fƒS(N(tcontainsR(RR/(RBR¯(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@‹ss lower boundcsˆjˆj||fƒS(N(R²R(RR/(RBR¯(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@Œss upper bound(R¡R¢(RBR¯R±((RBR¯sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR}s !RRR¡R¢tlattice( R]t abstractsett latticeformtstructR¦R`Rt partial_orderR¥R R€(RRmR((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt _get_latticezs    QcCs|jj|j|jjƒS(N(R]tLocalEnvt_Specification_t LocalEnvExpr(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_LEšscsPd„}‡fd†}ˆj}|j||jdˆjƒ|j|dƒ@ƒS(Ncs:ˆj}|j‰|‰|jˆj‡‡‡fd†ƒS(Ncs%ˆjˆˆ|ƒˆ|ˆƒ|ƒS(N(R(RBR/(RmRDR(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@¢s(R=RR~R(RBRR((RmRDRsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRžs  csˆj||d|ƒS(NR(Rh(RgRR(R(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pytmkmonoid¤sR=R{(R]R^R`t associativeR€(RRR½Rm((RsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt _get_monoids  csf‡fd†}ˆj}|j||jd|jjƒ|jd|jjƒ@|jd|jjƒ@ƒS(Nc s\|dkrtd|ƒ}nˆj|ˆjj||d|d|ƒˆjj||ƒƒS(NRtRsRuslambda x: %s xRR9(RtRsRu(R5RhR R!(RgRRR‘R;(R(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pytmkring¯s  R=R[(R[R=(R]R^R`RR“t semigroupR|(RRÀRm((RsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt _get_ring®s  +cCs+|jj|jj|jjd|jƒƒS(NR=(R]R^R R!R`R¾(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_semigroup¿scCs |jjS(N(t_parentR](R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt _get_SpecÂscCs |jtƒS(N(RqRS(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_TernaryAlgebraicStructureÅscsDdˆˆjjf‡‡fd†ƒY}ˆj|_ˆjj|ƒS(NR¤cseZ‡‡fd†ZRS(csNˆjjj|||Žy ˆj}Wntk r9nX||||ŽdS(N(R]t SpecFamilyRR˜(t innerselfRR(tini(tFR(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRÊs   (R R R((RÊR(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR¤És(R]RÇR Rq(RRÊR¤((RÊRsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRqÈs( cCs|j|jj||ƒƒS(N(trelpropR]R€(RtsR ((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt relpropredÙscCs|jd„dƒS(Ncs|jˆj‡fd†ƒS(Ncs;|jˆ||fƒo-|jˆ||fƒ p:||kS(N(R²(RBRR/(R­(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@âs1(ROR(RBR­((R­sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@àssantisymmetric wrt '==' op(RÍ(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_antisymmetricÜscCs|j|j@|j@S(N(t reflexivet symmetrict transitive(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_equivalence_relationçs cCs|jd„dƒS(Ncs|jˆj‡fd†ƒS(Ncs|jˆ||fdƒS(Nt irrreflexive(ttest_contains_not(RBR(R­(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@ðs(R~R(RBR­((R­sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@ïs RÏ(RÍ(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_irreflexiveíscCs|j|j@|j@S(N(RÏt antisymmetricRÑ(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_partial_orderôs cCs|j|j@S(N(R·ttotal_relation(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_total_orderúscCs|jd„dƒS(Ncs|jˆj‡fd†ƒS(Ncs.|jˆ||fƒp-|jˆ||fƒS(N(R²(RBRR/(R­(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@s(ROR(RBR­((R­sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@ss+total_relation: xRy or yRx for all x,y in A(RÍ(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_total_relationÿscCs|jd„dƒS(Ncs|jˆj‡fd†ƒS(Ncs|jˆ||fdƒS(NRÏ(t test_contains(RBR(R­(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@s(R~R(RBR­((R­sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@ sRÏ(RÍ(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_reflexive scCs|jd„dƒS(Ncs|jˆ‡fd†ƒS(Ncs%|\}}|jˆ||fdƒS(NRÐ(RÛ(RBt.1RR/(R­(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@s (R~(RBR­((R­sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@sRÐ(RÍ(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_symmetricscCs|jd„dƒS(Ncs|jˆ‡fd†ƒS(Ncs.|\‰‰|jˆj‡‡‡fd†ƒS(Ncs2|jˆˆ|fƒ p1|jˆˆ|fdƒS(NRÑ(R²RÛ(RBRT(R­RR/(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@s(R~R(RBRÝRR/(R­(RR/sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@s  (R~(RBR­((R­sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@sRÑ(RÍ(R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt_get_transitivescCsN|j}|j|jjj|ƒS|j|jj|jd|jj ƒ|@ƒS(NtdomainR(RàR( R]R´RoR¥R¦R^R!R`RR(RRÌRm((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRË%s   (&R R RbReRhRdRnRpRrR}RRƒR„R‡R‰RŠR”R™R«R¸R¼R¿RÂRÃRÅRÆRqRÍRÎRÒRÕR×RÙRÚRÜRÞRßRË(((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR\ÍsH               &               RºcBsYeZdZd„Zddd„ƒYZdd d„ƒYZd„Zdd d„ƒYZRS( s@ Specification of some general algebraic structures c,sÉ|}|j}|j}ddddddgddddddgddddddgddddddgddddddgddddddgg‰|j}|j|j|jf|jjdddf|jjdd f|jjd d d f|j|j f|j t d ff|j |j dƒdff|j t d ff|j t dff|j t d ff|j t dff|jt d ft dfff|jt d ft dfff|jt d ft dfff|jt d ft dfff|jt d ft dfff|jt d ft dfff|jt d ff|jtdff|jt dff|jt d dff|jtdd ff|jt d dff|jt dddff|jt d ddff|jt dddff|j|j@|j ddddddƒ‡fd†d„dff|jt dd ddff|jtdd ddft d d ddft ddddft dd ddft dd ddff|jtdd dd„d dff|jtdd dd„d dff|j|j ttƒdddttft dddddf|jddd|j|jff|j|j ttƒdddttf|j ttƒdddttf|j ttƒdddttf|j ttƒdddttf|j ttƒdddttf|j ttƒdddttffg!}g}xˆ|D]€} | d} t| dƒ} t| tƒr¨|} | jdƒ} x&| D]} t| | ƒ} qŒWn| } |j | | fƒqAW|S(Niiiiiiiÿÿÿÿgð¿gts1234%^sasdf*&(t*t+Rtt|cs ˆ||S(N((RR/(tS3(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@hscSsddddddg|S(Niiiiii((R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@isRscSsd|S(Ngð?((R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@qsgð?cSsd|S(Ng@((R((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR@rstortandRut&t.iÿÿÿÿ(!RRtTypeRvtemptytInttFloattStringtalgebraic_classR tintRRaR¾R|R…R†RÁRR{R_R“RŒtfieldtfloattboolean_algebraR-R.tlistR4tsplittgetattrR#(RttetobjRRRBRêtasexstexRPR texsRRI((RåsN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyt GetExamples6s’      $%'"!!!!!*   R»cBseZdjddƒdURS(swif 1: binary_operation_name equals( '+', '-', '*', '/', '%', '|', '&', '**', '<<', '>>') algebraic_class (setof(Type.Tuple) & attr('new', callable)) relation_class (setof( setof(any*any) | Type.Tuple)) relational_operator_name equals( '<', '<=', '>', '>=', '==', '!=', 'in', 'not in', 'is', 'is not') ss = lambda IS: N(R R treplace(((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR»‘st GlueTypeExprcBseZdjddƒdURS(s’ if 1: abelian_group setof(AA.group) associative setof(AA.binary_operation) binary_operation doc(''' A \emp{binary operation} $*$ on a set $S$ is a function $*: S \cross S \mapsto S$. The element in $S$ assigned to $(x, y)$ is denoted $x*y$. \citemh(p.21) ''') & LE.algebraic_class boolean_algebra LE.algebraic_class commutative LE.algebraic_class distributive setof(cprod(AA.binary_operation, AA.binary_operation)) distributive_1 setof(cprod(AA.binary_operation, AA.binary_operation)) distributive_2 setof(cprod(AA.binary_operation, AA.binary_operation)) field LE.algebraic_class group (LE.algebraic_class & doc(''' ''' )) monoid LE.algebraic_class ring (LE.algebraic_class, attr('new', argnames('S', 'add', 'mul', 'neg', 'zero'))) semigroup LE.algebraic_class ss = lambda IN:N(R R Rý(((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRþ¡sc sÏ|‰ˆj}|j‰ˆjdddƒ}d„}‡fd†}‡fd†}ˆjdfˆj||dƒfˆj||dƒfˆj||dƒfˆj||d ƒfˆj||dƒfˆj||d ƒfˆj||dƒfˆj||d ƒfˆj||d ƒfˆj||d ƒfˆj ||d ƒfˆj ||d ƒfˆj ||dƒfˆj ||d ƒfˆj |||ƒfˆj ||dƒfˆj ||d ƒfˆj |||ƒfˆj jdddd fˆj|td ttƒfˆj|td d tƒfˆj|td td ƒfˆj|td„d d ƒfˆj|td„td ƒfˆj|td„d tƒfˆjjtd ttffg}|S(NiiicSs||@|kS(N((RR/((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pytsubsetofÁscsˆjj||ffS(N(RoR§(RgR(Rm(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pytDÅscsˆjj|fS(N(Rµt quadruple(R(R(sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pytLÈss==t doc('x R x for every x in A', AA.LE.relation_class) symmetric doc('x R y implies y R x, for all x, y in A', AA.LE.relation_class) transitive doc('x R y, y R z implies x R z, for all x, y, z in A', AA.LE.relation_class) irreflexive doc('not (x R y), for all x in A', AA.LE.relation_class) antisymmetric doc('x R y, y R x implies x == y, for all x, y in A', AA.LE.relation_class) total_relation doc('x R y or y R x, for all x, y in A', AA.LE.relation_class) equivalence_relation doc('Reflexive, symmetric and transitive', AA.LE.relation_class) partial_order doc('Reflexive, antisymmetric and transitive', AA.LE.relation_class) total_order doc('Partial order and x R y or y R x, for all x, y in A', AA.LE.relation_class) lattice attr('quadruple', doc('''Tuples (S, R, V, A), where: S: set or convertible to set, i.e. 'setcastable' R: relation operator on S V: binary operator on S A: binary operator on S R, V and A are either operator symbols or functions. (S, R) forms a partial order such that every pair x, y of elements in S have a greatest lower bound GLB and a least upper bound LUB. The GLB is given by V(x, y) or x V y depending on if V is a function or operator symbol. Likewise, ULB is given by A(x, y) or x A y. For example, these are lattice specifications: (int, '<=', min, max) (int, lambda x, y: x & y == x, '&', '|') ''', setof(tupleform( ('S', 'R', 'V', 'A'), attr('S', SPLE.setcastable) & expset('''attr('R', AA.LE.relational_operator_name | boolean<<(S, S)) & attr('V', AA.LE.binary_operation_name | setcast(S)<<(S, S)) & attr('A', AA.LE.binary_operation_name | setcast(S)<<(S, S)) ''', 'S') )))) ss =lambda IN:N(R R Rý(((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRþñs5((((R R t__doc__RüR»Rþ(((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyRº1s  [ 5iÿÿÿÿ(tsupportNtTestCasecBseZRS((R R (((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR +st FirstCasecBseZd„ZRS(cCs5|jj}|jtƒ}|j|jjjƒdS(N(theapyR]t mkTestEnvRºR±tguppytAbstractAlgebra(RR]tTestEnv((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyttest_1/s (R R R(((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyR .si(RR RRR2R?RSRVR\Rºtguppy.heapy.testR tsystunittestR R t run_unittest(((sN/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/AbstractAlgebra.pyts  %!!*ÿe÷