Skip to content

Commit b356359

Browse files
committed
Move cardinalities
1 parent 25e7c51 commit b356359

File tree

2 files changed

+57
-57
lines changed

2 files changed

+57
-57
lines changed

src/Infinities.jl

Lines changed: 1 addition & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -390,61 +390,5 @@ Base.Checked.checked_add(x::RealInfinity, ::Integer) = x
390390

391391
Base.to_index(::Infinity) =
392392

393-
###
394-
# Cardinalities
395-
###
396-
"""
397-
InfiniteCardinal{K}()
398-
399-
represents the k-th cardinal number.
400-
Note that `InfiniteCardinal <: Integer` to support
401-
being treated as a length in array machinier.
402-
"""
403-
struct InfiniteCardinal{N} <: Integer end
404-
405-
isone(::InfiniteCardinal) = false
406-
iszero(::InfiniteCardinal) = false
407-
408-
==(::InfiniteCardinal, ::Int) = false
409-
==(::Int, ::InfiniteCardinal) = false
410-
411-
*(::InfiniteCardinal{N}, ::InfiniteCardinal{N}) where N = InfiniteCardinal{N}()
412-
*(::InfiniteCardinal{N}, ::Infinity) where N = InfiniteCardinal{N}()
413-
*(::Infinity, ::InfiniteCardinal{N}) where N = InfiniteCardinal{N}()
414-
function *(a::Integer, b::InfiniteCardinal)
415-
a > 0 || throw(ArgumentError("$a is negative"))
416-
b
417-
end
418-
419-
*(a::InfiniteCardinal, b::Integer) = b*a
420-
421-
422-
abs(a::InfiniteCardinal) = a
423-
zero(::InfiniteCardinal) = 0
424-
425-
for OP in (:<, :)
426-
@eval begin
427-
$OP(::Real, ::InfiniteCardinal) = true
428-
$OP(::InfiniteCardinal, ::Real) = false
429-
end
430-
end
431-
432-
for OP in (:>, :)
433-
@eval begin
434-
$OP(::Real, ::InfiniteCardinal) = false
435-
$OP(::InfiniteCardinal, ::Real) = true
436-
end
437-
end
438-
439-
const ℵ₀ = InfiniteCardinal{0}()
440-
const ℵ₁ = InfiniteCardinal{1}()
441-
442-
string(::InfiniteCardinal{0}) = "ℵ₀"
443-
string(::InfiniteCardinal{1}) = "ℵ₁"
444-
445-
show(io::IO, F::InfiniteCardinal{0}) where N =
446-
print(io, "ℵ₀")
447-
show(io::IO, F::InfiniteCardinal{1}) where N =
448-
print(io, "ℵ₁")
449-
393+
include("cardinality.jl")
450394
end # module

src/cardinality.jl

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
###
2+
# Cardinalities
3+
###
4+
"""
5+
InfiniteCardinal{K}()
6+
7+
represents the k-th cardinal number.
8+
Note that `InfiniteCardinal <: Integer` to support
9+
being treated as a length in array machinier.
10+
"""
11+
struct InfiniteCardinal{N} <: Integer end
12+
13+
isone(::InfiniteCardinal) = false
14+
iszero(::InfiniteCardinal) = false
15+
16+
==(::InfiniteCardinal, ::Int) = false
17+
==(::Int, ::InfiniteCardinal) = false
18+
19+
*(::InfiniteCardinal{N}, ::InfiniteCardinal{N}) where N = InfiniteCardinal{N}()
20+
*(::InfiniteCardinal{N}, ::Infinity) where N = InfiniteCardinal{N}()
21+
*(::Infinity, ::InfiniteCardinal{N}) where N = InfiniteCardinal{N}()
22+
function *(a::Integer, b::InfiniteCardinal)
23+
a > 0 || throw(ArgumentError("$a is negative"))
24+
b
25+
end
26+
27+
*(a::InfiniteCardinal, b::Integer) = b*a
28+
29+
30+
abs(a::InfiniteCardinal) = a
31+
zero(::InfiniteCardinal) = 0
32+
33+
for OP in (:<, :)
34+
@eval begin
35+
$OP(::Real, ::InfiniteCardinal) = true
36+
$OP(::InfiniteCardinal, ::Real) = false
37+
end
38+
end
39+
40+
for OP in (:>, :)
41+
@eval begin
42+
$OP(::Real, ::InfiniteCardinal) = false
43+
$OP(::InfiniteCardinal, ::Real) = true
44+
end
45+
end
46+
47+
const ℵ₀ = InfiniteCardinal{0}()
48+
const ℵ₁ = InfiniteCardinal{1}()
49+
50+
string(::InfiniteCardinal{0}) = "ℵ₀"
51+
string(::InfiniteCardinal{1}) = "ℵ₁"
52+
53+
show(io::IO, F::InfiniteCardinal{0}) where N =
54+
print(io, "ℵ₀")
55+
show(io::IO, F::InfiniteCardinal{1}) where N =
56+
print(io, "ℵ₁")

0 commit comments

Comments
 (0)