+
    i                         ^ RI HtHt ^ RIt ! R R]4      t ! R R]4      t ! R R]4      t ! R	 R
]4      t]! 4       t]! 4       t	R# )    )BasicIntegerNc                   b   a  ] tR t^t o RtR t]R 4       t]R 4       tR t	R t
R tR tR	tV tR
# )
OmegaPowerz
Represents ordinal exponential and multiplication terms one of the
building blocks of the :class:`Ordinal` class.
In ``OmegaPower(a, b)``, ``a`` represents exponent and ``b`` represents multiplicity.
c                   \        V\        4      '       d   \        V4      p\        V\        4      '       d   V^ 8:  d   \        R4      h\        V\        4      '       g   \        P                  V4      p\        P                  ! WV4      # )r   z'multiplicity must be a positive integer)
isinstanceintr   	TypeErrorOrdinalconvertr   __new__)clsabs   &&&Q/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/sets/ordinals.pyr   OmegaPower.__new__   sc    a
A!W%%aEFF!W%%"A}}SQ''    c                (    V P                   ^ ,          # r   argsselfs   &r   expOmegaPower.exp       yy|r   c                (    V P                   ^,          #    r   r   s   &r   multOmegaPower.mult   r   r   c                    V P                   VP                   8X  d   V! V P                  VP                  4      # V! V P                   VP                   4      # N)r   r    )r   otherops   &&&r   _compare_termOmegaPower._compare_term   s<    88uyy dii,,dhh		**r   c                    \        V\        4      '       g    \        ^ V4      pV P                  VP                  8H  #   \         d
    \        u # i ; ir   )r   r   r
   NotImplementedr   r   r$   s   &&r   __eq__OmegaPower.__eq__$   sL    %,,&"1e, yyEJJ&&  &%%&s   = AAc                .    \         P                  ! V 4      # r#   )r   __hash__r   s   &r   r.   OmegaPower.__hash__,   s    ~~d##r   c                    \        V\        4      '       g    \        ^ V4      pV P	                  V\
        P                  4      #   \         d
    \        u # i ; ir   )r   r   r
   r)   r&   operatorltr*   s   &&r   __lt__OmegaPower.__lt__/   sP    %,,&"1e, !!%55  &%%&s   A AA N)__name__
__module____qualname____firstlineno____doc__r   propertyr   r    r&   r+   r.   r3   __static_attributes____classdictcell____classdict__s   @r   r   r      sP     
	(    +'$6 6r   r   c                      a a ] tR t^8t oRtV 3R lt]R 4       t]R 4       t]R 4       t	]R 4       t
]R 4       t]R 4       t]R	 4       tR
 tR tR tR tR tR tR t]tR tR tR tR tR tRtVtV ;t# )r   a  
Represents ordinals in Cantor normal form.

Internally, this class is just a list of instances of OmegaPower.

Examples
========
>>> from sympy import Ordinal, OmegaPower
>>> from sympy.sets.ordinals import omega
>>> w = omega
>>> w.is_limit_ordinal
True
>>> Ordinal(OmegaPower(w + 1, 1), OmegaPower(3, 2))
w**(w + 1) + w**3*2
>>> 3 + w
w
>>> (w + 1) * w
w**2

References
==========

.. [1] https://en.wikipedia.org/wiki/Ordinal_arithmetic
c                |  <a \         SV `  ! V .VO5!  pVP                   Uu. uF  q3P                  NK  	  upo\        ;QJ d8    V3R  l\        \        S4      ^,
          4       4       F  '       d   K   RM-	  RM)! V3R  l\        \        S4      ^,
          4       4       4      '       g   \        R4      hV# u upi )c              3   X   <"   T F  pSV,          SV^,           ,          8  x  K!  	  R# 5i)r   Nr5   ).0ipowerss   & r   	<genexpr>"Ordinal.__new__.<locals>.<genexpr>T   s$     L5K6!9qs+5Ks   '*FTz"powers must be in decreasing order)superr   r   r   allrangelen
ValueError)r   termsobjrD   rE   	__class__s   &*  @r   r   Ordinal.__new__Q   s    goc*E*!$*A%%*sLU3v;?5KLsssLU3v;?5KLLLABB
 +s   B9c                    V P                   # r#   r   r   s   &r   rM   Ordinal.termsX   s    yyr   c                T    V \         8X  d   \        R 4      hV P                  ^ ,          # )z ordinal zero has no leading termord0rL   rM   r   s   &r   leading_termOrdinal.leading_term\   s#    4<?@@zz!}r   c                T    V \         8X  d   \        R 4      hV P                  R,          # )z!ordinal zero has no trailing termrT   r   s   &r   trailing_termOrdinal.trailing_termb   s#    4<@AAzz"~r   c                b     V P                   P                  \        8H  #   \         d     R # i ; iFrZ   r   rU   rL   r   s   &r   is_successor_ordinalOrdinal.is_successor_ordinalh   s0    	%%))T11 		s    ..c                d     V P                   P                  \        8X  * #   \         d     R # i ; ir]   r^   r   s   &r   is_limit_ordinalOrdinal.is_limit_ordinalo   s0    	))--55 		s     //c                .    V P                   P                  # r#   )rV   r   r   s   &r   degreeOrdinal.degreev   s      $$$r   c                F    V^ 8X  d   \         # \        \        ^ V4      4      # r   )rU   r   r   )r   integer_values   &&r   r   Ordinal.convertz   s!    AKz!]344r   c                    \        V\        4      '       g    \        P                  V4      pV P
                  VP
                  8H  #   \         d
    \        u # i ; ir#   )r   r   r   r
   r)   rM   r*   s   &&r   r+   Ordinal.__eq__   sN    %))&. zzU[[((  &%%&s   A AAc                ,    \        V P                  4      # r#   )hashr   r   s   &r   r.   Ordinal.__hash__   s    DIIr   c                H   \        V\        4      '       g    \        P                  V4      p\        V P                  VP                  4       F  w  r#W#8w  g   K  W#8  u # 	  \        V P                  4      \        VP                  4      8  #   \         d
    \        u # i ; ir#   )r   r   r   r
   r)   ziprM   rK   )r   r$   	term_self
term_others   &&  r   r3   Ordinal.__lt__   s    %))&. &)U[[%A!I& -- &B 4::U[[!111  &%%&s   B B! B!c                "    W8H  ;'       g    W8  # r#   r5   r*   s   &&r   __le__Ordinal.__le__   s    --.r   c                    W8:  * # r#   r5   r*   s   &&r   __gt__Ordinal.__gt__   s      r   c                    W8  * # r#   r5   r*   s   &&r   __ge__Ordinal.__ge__   s    r   c                   R p^ pV \         8X  d   R# V P                   EF   pV'       d
   VR,          pVP                  \         8X  d   V\        VP                  4      ,          pMVP                  ^8X  d   VR,          pMu\        VP                  P                  4      ^8  g   VP                  P                  '       d   VRVP                  ,          ,          pMVRVP                  ,          ,          pVP                  ^8X  g0   VP                  \         8X  g   VRVP                  ,          ,          pV^,          pEK#  	  V# ) rU   z + wzw**(%s)zw**%sz*%s)rU   rM   r   strr    rK   rb   )r   net_str
plus_countrD   s   &   r   __str__Ordinal.__str__   s    
4<A5 uu}3qvv;&!3QUU[[!A%)?)?)?9QUU?*7155=(66Q;quu}5<'!OJ! " r   c                   \        V\        4      '       g    \        P                  V4      pV\
        8X  d   V # \        V P                  4      p\        VP                  4      p\        V4      ^,
          pVP                  pV^ 8  d#   W$,          P                  V8  d   V^,          pK)  V^ 8  d   TpM}W$,          P                  V8X  dT   \        WRV,          P                  VP                  P                  ,           4      pVRV V.,           VR,          ,           pMVRV^,            V,           p\        V!  #   \         d
    \        u # i ; i)r   Nr   NN)r   r   r   r
   r)   rU   listrM   rK   re   r   r   r    rV   )r   r$   a_termsb_termsrb_exprM   sum_terms   &&      r   __add__Ordinal.__add__   s   %))&. D=Ktzz"u{{#L11f%/FAq5EZ^^u$!%5;M;M;R;R)RSHBQK8*,wr{:EDQqSMG+E#  &%%&s   D; ;EEc                    \        V\        4      '       g    \        P                  V4      pW,           # W,           #   \         d
    \        u # i ; ir#   r   r   r   r
   r)   r*   s   &&r   __radd__Ordinal.__radd__   J    %))&. |u|  &%%&   = AAc                   \        V\        4      '       g    \        P                  V4      p\
        W39   d   \
        # V P                  pV P                  P                  p. pVP                  '       dJ   VP                   F8  pVP                  \        W%P                  ,           VP                  4      4       K:  	  MVP                  R R  F8  pVP                  \        W%P                  ,           VP                  4      4       K:  	  VP                  P                  pVP                  \        W#V,          4      4       V\        V P                  R,          4      ,          p\        V!  #   \         d
    \        u # i ; i)Nr   rY   )r   r   r   r
   r)   rU   re   rV   r    rb   rM   appendr   r   rZ   r   )r   r$   a_expa_mult	summationargb_mults   &&     r   __mul__Ordinal.__mul__   s"   %))&. D= K""''	!!!{{  EGGOSXX!FG # {{3B'  EGGOSXX!FG (((--FZf}=>djjn--I	""#  &%%&s   E, ,F ?F c                    \        V\        4      '       g    \        P                  V4      pW,          # W,          #   \         d
    \        u # i ; ir#   r   r*   s   &&r   __rmul__Ordinal.__rmul__   r   r   c                N    V \         8X  g   \        # \        \        V^4      4      # r   )omegar)   r   r   r*   s   &&r   __pow__Ordinal.__pow__   s!    u}!!z%+,,r   r5   )r6   r7   r8   r9   r:   r   r;   rM   rV   rZ   r_   rb   re   classmethodr   r+   r.   r3   ru   rx   r{   r   __repr__r   r   r   r   r   r<   r=   __classcell__)rO   r?   s   @@r   r   r   8   s     0    
  
     % % 5 5
)	2/! 0 H.#.- -r   r   c                       ] tR t^tRtRtR# )OrdinalZeroz<The ordinal zero.

OrdinalZero can be imported as ``ord0``.
r5   N)r6   r7   r8   r9   r:   r<   r5   r   r   r   r      s     	r   r   c                   :   a  ] tR tRt o RtR t]R 4       tRtV t	R# )OrdinalOmegai  zThe ordinal omega which forms the base of all ordinals in cantor normal form.

OrdinalOmega can be imported as ``omega``.

Examples
========

>>> from sympy.sets.ordinals import omega
>>> omega + omega
w*2
c                ,    \         P                  V 4      # r#   )r   r   )r   s   &r   r   OrdinalOmega.__new__  s    s##r   c                    \        ^^4      3# r   )r   r   s   &r   rM   OrdinalOmega.terms  s    1a ""r   r5   N)
r6   r7   r8   r9   r:   r   r;   rM   r<   r=   r>   s   @r   r   r     s#     
$ # #r   r   )

sympy.corer   r   r1   r   r   r   r   rU   r   r5   r   r   <module>r      sO    % 06 06fB-e B-J	' 	#7 #( }r   