A = (-1.830259857965763, -1.6886402857343543)
B = (-1.8497323710962912, 1.290654223236449)
AB = Segment(A, B)
b = OrthogonalLine(B, AB)
C = Point(b)
c = OrthogonalLine(C, b)
d = OrthogonalLine(A, AB)
D = Intersect(c, d)
G_1 = Midpoint(B, D)
BC = Segment(B, C)
AD = Segment(A, D)
CD = Segment(C, D)
a = OrthogonalLine(C, CD)
z = Point(a)
e = Ray(C, z)
G = Point(AB)
E' = Mirror(G, G_1)
f = Circle(C, E')
E = Intersect(f, e, 1)
CE = Segment(C, E)
h = OrthogonalLine(E, BC)
i = OrthogonalLine(G, AB)
F = Intersect(h, i)
EF = Segment(E, F)
FG = Segment(F, G)