O = Point(yAxis)
B_1 = Point(xAxis)
c = Circle(O, B_1)
C_1 = Point(c)
D = Point(c)
a = Ray(O, D)
b = Ray(O, C_1)
B = Point(b)
A = Point(a)
A'_1 = Mirror(O, A)
F' = Mirror(A, A'_1)
A''_1 = Mirror(A'_1, F')
D' = Mirror(D, A''_1)
A'''_1 = Mirror(A''_1, D')
D'' = Mirror(D', A'''_1)
A' = Mirror(O, B)
E' = Mirror(B, A')
A'' = Mirror(A', E')
E'' = Mirror(E', A'')
A''' = Mirror(A'', E'')
G = Mirror(A''', E'')
H = Mirror(A''', E'')
E''' = Mirror(E'', A''')
I = Mirror(A''', E''')
J = Mirror(E''', I)
I' = Mirror(I, J)
J' = Mirror(J, I')
J''_1 = Mirror(J', I')
J''_2 = Mirror(J', I')
I'' = Mirror(I', J')
F_B = Mirror(J', I'')
d = Segment(F_B, A)
abstandAE = Distance(O, B)
TextAE: "\overline{" + (Name[O]) + (Name[B]) + "} \, = \, " + abstandAE
abstandAJ'' = Distance(O, F_B)
TextAJ'': "\overline{" + (Name[O]) + (Name[F_B]) + "} \, = \, " + abstandAJ''
F'' = Mirror(F', A''_1)
K = Mirror(A''_1, F'')
F_A = Mirror(F'', K)
e = Segment(B, F_A)
f = Segment(F_B, F_A)
C = Intersect(d, e)
O' = Mirror(O, C)
C' = Mirror(C, O')
O'' = Mirror(O', C')
F_C = Mirror(C', O'')
g = Segment(O, F_C)
h = Segment(O, F_A)
i = Segment(F_B, O)