Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

baking the infinite #6

Open
JeffreySarnoff opened this issue Feb 11, 2021 · 4 comments
Open

baking the infinite #6

JeffreySarnoff opened this issue Feb 11, 2021 · 4 comments

Comments

@JeffreySarnoff
Copy link
Member

JeffreySarnoff commented Feb 11, 2021

We seem to be discussing these six flavors of Infiinity


  • infinity as the limit (or bounds) of real magnitude: ∞
  • two signed infinities of affine extension: -∞, +∞
  • projective infinity, complex infinity : ⧞. ⧝
  • small "natural-ly" infinites: ℵ₀, ℵ₁

notes on symbol choices

projective infinity is pointlike yet approached from both orientations along a "circle"
the choice of symbol is of a smbol for infinity where orientation mirrors

The symbol used for ComplexInfinity resembles they way ComplexInfinity often is drawn.
. . . . . . . . . . . ⧝
. . . . . . . . . . . image

The symbol for NotANumber ( ꝋ ) is of the form assigned to symbolize the empty set ( ∅ ).
Also, it may be read like a sign saying "not even zero".


It is good practice to have keyboard-easy names for exported unicode symbolics.
(exports are separated conceptually, for ease of presentation)

export NegativeInfinity, ( -∞ ), PositiveInfinity, (+∞ ), 
export RealInfinity, ( s∞ ),  
export ProjectiveInfinity, ( ⧞ ), ComplexInfinity, (  ⧝ )
export Aleph0, ( ℵ₀ ), Aleph1, ( ℵ₁ )
export NotANumber, ( ꝋ )

one thought

abstract type AbstractInfinity end

abstract type InfinityOrder <: AbstractInfinity end 
struct Aleph0 <: InfinityOrder end
struct Aleph1 <: InfinityOrder end

abstract type InfiniteMagnitude <: AbstractInfinity end
struct RealInfinity             <: InfiniteMagnitude end
struct ProjectiveInfinity       <: InfiniteMagnitude end

abstract OrientedInfinity <: AbstractInfinity end
struct NegativeInfinity   <: OrientedInfinity end
struct PositiveInfinity   <: OrientedInfinity end
@JeffreySarnoff JeffreySarnoff changed the title taking infinities seriously baking infinities Feb 11, 2021
@JeffreySarnoff JeffreySarnoff changed the title baking infinities baking the infinite Feb 11, 2021
@dlfivefifty
Copy link
Member

No we cannot use AbstractInfinity as we need to work with dispatch on Real, Integer, etc. InfiniteCardinal <: Integer is absolutely essential to InfiniteArrays.jl

@JeffreySarnoff
Copy link
Member Author

JeffreySarnoff commented Feb 11, 2021

Of course.

triage recently determined to introduce AbstractComplex (non-breaking).
With InfiniteCardinal, the Numeric type-levels become:

Number
  AbstractComplex
    Complex
    Real
      Irrational
      Rational

      AbstractFloat
        Float16, .. Float64, BigFloat

      Integer
        InfiniteCardinal
          ℵ₀ ,  ℵ₁ 
        Signed
          Int8 .. Int128, BigInt
        Unsigned
          UInt8 .. UInt128
        Bool

(I do not know how they are be used)
and if the first two InfiniteOrdinals are of beneifit

    Integer
       InfiniteOrdinal
          ω¹, ω²
       InfiniteCardinal
          ℵ₀ ,  ℵ₁ 

the remaining infinities could fit this way

Number
  AbstractComplex
    ProjectiveInfinity
    Complex
      ComplexInfinity

  Real
    RealInfinity
    SignedInfinity
       PositiveInfinity, NegativeInfinity
    
    Irrational
    Rational

    AbstractFloat
      Float16, .. Float64, BigFloat

    Integer
      InfiniteCardinal
           ℵ₀ ,  ℵ₁ 
      Signed
          Int8 .. Int128, BigInt
      Unsigned
          UInt8 .. UInt128
      Bool

@dlfivefifty
Copy link
Member

Yes looks good.

We could make InfiniteCardinal <: Unsigned. I vaguely remember trying that and running into some problems though...but we can always try.

@JeffreySarnoff
Copy link
Member Author

JeffreySarnoff commented Feb 12, 2021

These pages are posted here for reference
(while other software and other's mathematical perspecitves
may approach this differently, the algebra appears reasonable)

from functions.wolfram.com
on Infinity
on ComplexInfinity

from reference.wolfram.com
on Infinity
on ComplexInfinity
on Indeterminate (NotANumber)


Fredrik Johansson in Fungrim works this way:

This formal symbol [∞] represents a quantity larger than any real number [magnitude-like].
We define +∞=∞
Multiplication of ∞ by a nonzero complex number represents an infinite limit with the given direction in the complex plane. In particular, −∞, i∞ and −i∞ are frequently used.

This formal symbol [⧝] represents a quantity with infinite magnitude and undefined sign.
It is typically used to represent the value of meromorphic functions at poles.
The set {ℂ ⋃ ⧝} represents the complex Riemann sphere.


Fredrik has helped me with Arblib, and I respect the work that I am about to use as a foil --
to elucidate a subtlety in my design of the modification to the abstracting concretion above.

"define +∞=∞" is not the same as, say,
imagine/derive/construct ς to be the limit magnitude (akin to ℵ₁ as limit ordinal)
define +∞ as +|ς| and -∞ as -|ς|

"define ComplexInfinity as ProjectiveInfinity." and compose that with a signed imaginary units to obtain ... one of two oriented ?projections? of the unsigned ComplexInfinity. This is similar to the RealInfinity construction. They each postulate a convienient definens for intial utilization rules. This post axiomatic approach seems an unneccesary sidestep.

The provision of a perdurant signedless entity allows the same work with greater symmetry.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants