@@ -18,15 +18,6 @@ struct IsingBimod <: Sector
1818 end
1919end
2020
21- isC(x:: IsingBimod ) = (x. row == x. col == 1 )
22- isM(x:: IsingBimod ) = (x. row == 1 && x. col == 2 )
23- isMop(x:: IsingBimod ) = (x. row == 2 && x. col == 1 )
24- isD(x:: IsingBimod ) = (x. row == 2 && x. col == 2 )
25-
26- function ismodulecategory(a:: IsingBimod )
27- return (isM(a) || isMop(a))
28- end
29-
3021const all_isingbimod_objects = (IsingBimod(1 , 1 , 0 ), IsingBimod(1 , 1 , 1 ),
3122 IsingBimod(2 , 1 , 0 ),
3223 IsingBimod(1 , 2 , 0 ), IsingBimod(2 , 2 , 0 ),
@@ -57,7 +48,7 @@ function Base.iterate(iter::IsingBimodIterator, state=0)
5748end
5849
5950function Base. convert(:: Type{IsingAnyon} , a:: IsingBimod ) # identify RepZ2 ⊕ RepZ2 ≅ Ising
60- ismodulecategory(a ) && return IsingAnyon(:σ)
51+ (a . row != a . col ) && return IsingAnyon(:σ)
6152 return IsingAnyon(a. label == 0 ? :I : :ψ)
6253end
6354
@@ -79,37 +70,19 @@ function Fsymbol(a::I, b::I, c::I, d::I, e::I, f::I) where {I<:IsingBimod}
7970end
8071
8172function Base. conj(a:: IsingBimod ) # ℳ ↔ ℳop when conjugating elements within these
82- if isC(a) || isD(a) # self-conjugate within RepZ2
83- return a
84- elseif isM(a)
85- return IsingBimod(2 , 1 , a. label)
86- else
87- return IsingBimod(1 , 2 , a. label)
88- end
73+ return IsingBimod(a. col, a. row, a. label)
8974end
9075
9176function rightone(a:: IsingBimod )
92- if isC(a) || isD(a)
93- return IsingBimod(a. row, a. col, 0 )
94- elseif isM(a) # ℳ as right-𝒟 module category
95- return IsingBimod(2 , 2 , 0 )
96- else
97- return IsingBimod(1 , 1 , 0 )
98- end
77+ return IsingBimod(a. col, a. col, 0 )
9978end
10079
10180function leftone(a:: IsingBimod )
102- if isC(a) || isD(a)
103- return IsingBimod(a. row, a. col, 0 )
104- elseif isM(a) # ℳ as left-𝒞 module category
105- return IsingBimod(1 , 1 , 0 )
106- else
107- return IsingBimod(2 , 2 , 0 )
108- end
81+ return IsingBimod(a. row, a. row, 0 )
10982end
11083
11184function Base. one(a:: IsingBimod )
112- if isC(a) || isD(a)
85+ if a . row == a . col
11386 return IsingBimod(a. row, a. col, 0 )
11487 else
11588 throw(DomainError(" unit of module category ($(a. row) , $(a. col) ) doesn't exist" ))
11992Base. one(:: Type{IsingBimod} ) = throw(ArgumentError(" one of Type IsingBimod doesn't exist" ))
12093
12194function Base. show(io:: IO , :: MIME"text/plain" , a:: IsingBimod )
122- if isC(a )
95+ if (a . row == a . col == 1 )
12396 print(io, " 𝒞[$(a. label) ]" )
124- elseif isM(a )
97+ elseif (a . row == 1 && a . col == 2 )
12598 print(io, " ℳ[$(a. label) ]" )
126- elseif isMop(a )
99+ elseif (a . row == 2 && a . col == 1 )
127100 print(io, " ℳᵒᵖ[$(a. label) ]" )
128- elseif isD(a )
101+ elseif (a . row == a . col == 2 )
129102 print(io, " 𝒟[$(a. label) ]" )
130103 end
131104end
0 commit comments