F = Intersect(xAxis, yAxis)
ControlCircunferencia = Point(Ray[F, Vector[(1, 0)]])
c = Circle(F, ControlCircunferencia)
A = Intersect(c, yAxis, 2)
G = Intersect(c, yAxis, 1)
B = Point(c)
C = Mirror(A, Line[B, F])
D = Mirror(B, Line[C, F])
E = Point(Ray[G, Vector[(0, -1)]])
f = Segment(E, A)
g = Segment(E, B)
h = Segment(E, C)
i = Segment(E, D)
j = Segment(F, B)
k = Segment(F, C)
l = Segment(F, D)
m = Segment(G, B)
n = Segment(G, C)
p = Segment(G, D)
q = OrthogonalLine(B, Line[E, C])
r = Line(E, C)
s = OrthogonalLine(B, yAxis)
I = Intersect(s, yAxis)
H = Intersect(q, r)
a = Segment(C, H)
b = Segment(B, I)
t = Segment(B, A)
d = Segment(B, C)
e = Segment(C, D)
f_1 = Segment(H, B)