#11506: Fix the infinity ring.
-------------------------------------+-------------------------------------
       Reporter:  vbraun             |        Owner:  AlexGhitza
           Type:  defect             |       Status:  needs_info
       Priority:  blocker            |    Milestone:  sage-6.3
      Component:  algebra            |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Volker Braun       |    Reviewers:  Peter Bruin
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/vbraun/infinity_ring             |  3531287276d95f0a60b762c4dc5475bee4860cba
   Dependencies:  #13125             |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by pbruin):

 Replying to [comment:39 tscrim]:
 > Since there is `oo` in `RIF`, I agree with you, it's actually not a
 field. Although I would say that if we remove `oo`, I would say it is a
 field.
 No, see below.
 > But this is a separate point, because the break is in the addition, not
 the multiplication. So would you say `RIF` is an additive abelian group?
 As Volker pointed out, it isn't, even if we remove infinity.  And since it
 isn't an additive Abelian group, it certainly isn't a field either.
 Moreover, the set of non-zero, non-infinite elements is not a group under
 multiplication.  For example, the interval [-1, 1] has neither an additive
 nor a multiplicative inverse.
 > I also found some strange behavior with `RIF`:
 > {{{
 > sage: oo in RIF
 > True
 > sage: RIF(oo)
 > [+infinity .. +infinity]
 > sage: RIF(oo) / RIF(oo)
 > [.. NaN ..]
 > sage: RIF(oo) / RIF(0)
 > [-infinity .. +infinity]
 > sage: RIF(oo) * RIF(0)
 > 0
 > }}}
 That does look slightly inconsistent, especially the last one, but I don't
 have enough experience with `RIF` to say if this is intended.
 > > I don't understand this.  Addition of `+Infinity` and `-Infinity` is
 undefined in the infinity ring, or is this what you mean by "less
 structure"?
 >
 > Yes (another example would be the tropical semiring).
 I still don't get your point.  The tropical semiring is a semiring, while
 `InfinityRing` is not a semiring.
 > > No, the operation `4 // 2` is defined in `ZZ`, but not after coercion
 to `Zmod(8)`, for example.
 >
 > In this case, division is not a part of the structure of `ZZ`, so
 perhaps I should amend my statement above to when you can ''always'' do
 operation `#` (i.e. it is guaranteed by the category). For `RIF`,
 subtraction is guaranteed to work.
 That depends on what you mean by "work":
 {{{
 sage: RIF(oo) - RIF(oo)
 [.. NaN ..]
 }}}
 Maybe this should return `[-infinity .. +infinity]`, then it would
 cooperate nicely with the future support for "intervals in the infinity
 ring" (comments 29 and 30 above).

--
Ticket URL: <http://trac.sagemath.org/ticket/11506#comment:40>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to