O = (0, 0)
X = (3, 0)
u = Vector(O, X)
a = OrthogonalLine(O, u)
Y = Point(a)
D = Point(a)
v = Vector(O, Y)
b = Line(O, X)
E = Point(b)
c = Segment(E, O)
d = Segment(O, D)
F = Point(u)
F' = Mirror(F, d)
e = Semicircle(F', F)
M = Point(e)
f = Segment(M, O)
α = Angle(F, O, M)
g = OrthogonalLine(M, u)
h = OrthogonalLine(M, v)
y_0 = Intersect(h, a)
x_0 = Intersect(g, b)
i = Segment(M, y_0)
j = Segment(M, x_0)
A = Intersect(e, a)