O = Intersect(xAxis, yAxis)
T = Point(xAxis)
q = Ray(T, Vector[(0, 1)])
f = OrthogonalLine(T, xAxis)
C = Point(q)
A = Point(q)
B = Mirror(A, yAxis)
D = Mirror(C, yAxis)
g = Segment(C, D)
h = Segment(A, B)
j = Segment(O, B)
k = Segment(O, A)
l = Segment(O, D)
m = Segment(O, C)
α = Angle(B, O, A)
β = Angle(D, O, C)
G = Intersect(g, yAxis)
d = Circle(G, 1)
F = Intersect(yAxis, h)
c = Circle(F, 1)
I, J = Intersect(c, yAxis)
p = Segment(O, I)
E_1, E = Intersect(d, yAxis)
i = Segment(E, O)