Infinities.jl
Infinities.jl copied to clipboard
baking the infinite
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.
. . . . . . . . . . . ⧝
. . . . . . . . . . . 
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
No we cannot use AbstractInfinity as we need to work with dispatch on Real, Integer, etc. InfiniteCardinal <: Integer is absolutely essential to InfiniteArrays.jl
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
Yes looks good.
We could make InfiniteCardinal <: Unsigned. I vaguely remember trying that and running into some problems though...but we can always try.
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.