O = Intersect(xAxis, yAxis)
A = Point(xAxis)
B = Mirror(A, O)
AB = Segment(A, B)
C = Point(AB)
O' = Midpoint(A, C)
O'' = Midpoint(C, B)
cAC = Circle(O', C)
cBC = Circle(O'', C)
cAB = Circle(O, B)
ay = OrthogonalLine(A, AB)
oy = OrthogonalLine(O, AB)
by = OrthogonalLine(B, AB)
d = Rotate(A, 90°, O)
i = Mirror(O, d)
c = Circle(i, d)
ii = Line(i, C)
dd = Line(d, C)
po = OrthogonalLine(O, dd)
D = Mirror(d, po)
OD = Segment(O, D)
I = Intersect(ii, OD)
k = Circle(I, D)
e = Mirror(d, i)
Γ = Circle(A, B, e)
n = Rotate(d, 90°, i)
m = Mirror(n, i)
F = Center(Γ)
BF = Segment(B, F)
ee = Line(e, C)
pf = OrthogonalLine(F, ee)
E = Mirror(e, pf)
el = Ellipse(O, F, A)
FB = Segment(F, B)