Skip to content

+oo and -oo are members of RR and CC #2220

Open

Description

@Rafael-SOWNet

+oo and -oo are members of RR and CC, but infinity is neither a real nor a complex number.

2.6.0 and master b21f383
"+oo in RR".ToEntity().Evaled True
"-oo in RR".ToEntity().Evaled True
"+oo in CC".ToEntity().Evaled True
"+oo + i in CC".ToEntity().Evaled True
"+oo in ZZ".ToEntity().Evaled False
"+oo in [0; +oo)".ToEntity().Evaled False

+oo and -oo parse to Real.PositiveInfinity and Real.NegativeInfinity. Reals.MayContain is entity is Real, and Complexes.MayContain is entity is Complex, so both admit an infinite value. ZZ and the open interval already exclude it.

Bare oo is a variable, so oo in RR is left as written.

🤖 Generated with Claude Code

Activity

  1. added this to the 2.7.0 milestone on Oct 30, 2026
  2. Happypig375 commented on Oct 30, 2026

    @Happypig375
    Member

    In v3 we will have more number systems that accommodate infinities. should oo mean +oo here and +oo normalize to oo?

  3. Rafael-SOWNet commented on Oct 30, 2026

    @Rafael-SOWNet
    MemberAuthor

    Yes. #1019 §15 records it, from #1648:

    • oo is +∞ in the default and in RRbar.
    • Under RRhat and CChat, oo and -oo both name the one point at infinity.
    • Under RR and CC, neither is a member.

    So in the default, +oo normalizes to oo, and -oo stays as it is.

    Today bare oo is a variable; only +oo and -oo are read as infinities. That is a trap. Measured on 2.6.0:

    oo +oo
    limit(1/x, x, oo) 1 / oo 0
    integral(e^(-x), x, 0, oo) an expression in a variable oo 1

    Reading oo as +oo could ship before v3. It is v3's meaning in the default, and it breaks only a variable named oo. Printing +oo as oo would change every printed infinity, so I would leave that to v3. Shall I make oo read as +oo in 2.7.0?

    On this issue: §15 also says a minor cannot carry "the membership of every infinity", which I missed when filing. The fix is ready, and it gives v3's answer: +oo in RR and +oo in CC are False. Should it ship in 2.7.0, or move to 3.0 with §15? I'm holding it until you say.

    🤖 Generated with Claude Code

  4. Happypig375 commented on Oct 30, 2026

    @Happypig375
    Member

    Probably belongs with v3 alongside all the other refactors, since RR and CC are not defined correctly in v2 at all, they are more like "valid EDecimal" / "valid Complex type"

  5. modified the milestones: 2.7.0, 3.0 on Oct 30, 2026
  6. Rafael-SOWNet commented on Oct 30, 2026

    @Rafael-SOWNet
    MemberAuthor

    Moved to 3.0, with #1019 §15. The fix stays unpushed.

    The same goes for reading bare oo as +oo: it waits for v3 with the rest.

    §15's "what is true today" said RR treats the two infinities differently. That was a misreading: +oo and -oo are both members, and only bare oo is undecided, being a variable. It is corrected there and links here.

    The compiled membership from #2223 follows today's evaluation: an infinity is in RR and CC. It will move with this.

    🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions