C = Point(Ray[(0.1, 0), Vector[(1, 0)]])
B = Mirror(C, yAxis)
A = Point(y > 0)
f = OrthogonalLine(A, yAxis)
g = Segment(B, C)
O_1 = Point(Ray[A, Vector[(-1, 0)]])
h = Segment(O_1, C)
i = Segment(A, B)
j = Segment(A, C)
L = Intersect(h, i)
k = OrthogonalLine(L, yAxis)
M = Intersect(k, j)
l = Line(B, M)
O_2 = Intersect(f, l)
D = Point(i)
m = OrthogonalLine(D, yAxis)
E = Intersect(m, j)
n = Segment(O_1, O_2)
p = Segment(L, M)
q = Segment(B, O_2)
r = Segment(D, E)