A = (4.96, -0.98)
B = Point(Circle[A, 4])
f = segment(A, B)
g = LineBisector(f)
C = Intersect(g, f)
c = Circle(C, sqrt(2))
D, E = Intersect(c, g)
q1, e, b, d, a = Polygon(E, B, D, A)
E' = Mirror(E, e)
B' = Mirror(B, e)
D' = Mirror(D, e)
A' = Mirror(A, e)
q1', e', b', d', a' = Polygon(E', B', D', A')
E'' = Mirror(E', d')
B'' = Mirror(B', d')
D'' = Mirror(D', d')
A'' = Mirror(A', d')
q1'', e'', b'', d'', a'' = Polygon(E'', B'', D'', A'')
E'_{1} = Mirror(E, d)
B'_{1} = Mirror(B, d)
D'_{1} = Mirror(D, d)
A'_{1} = Mirror(A, d)
q1'_{1}, e'_{1}, b'_{1}, d'_{1}, a'_{1} = Polygon(E'_{1}, B'_{1}, D'_{1}, A'_{1})
F = Mirror(E'_{1}, e'_{1})
G = Mirror(B'_{1}, e'_{1})
H = Mirror(D'_{1}, e'_{1})
I = Mirror(A'_{1}, e'_{1})
q2, f_1, g_1, h, i = Polygon(F, G, H, I)
E'_{2} = Mirror(E, a)
B'_{2} = Mirror(B, a)
D'_{2} = Mirror(D, a)
A'_{2} = Mirror(A, a)
q1'_{2}, e'_{2}, b'_{2}, d'_{2}, a'_{2} = Polygon(E'_{2}, B'_{2}, D'_{2}, A'_{2})
J = Mirror(E'_{2}, b'_{2})
K = Mirror(B'_{2}, b'_{2})
L = Mirror(D'_{2}, b'_{2})
M = Mirror(A'_{2}, b'_{2})
q3, j, k, l, m = Polygon(J, K, L, M)
N = Mirror(E'_{2}, d'_{2})
O = Mirror(B'_{2}, d'_{2})
P = Mirror(D'_{2}, d'_{2})
Q = Mirror(A'_{2}, d'_{2})
q4, n, o, p, q = Polygon(N, O, P, Q)
E'_{3} = Mirror(E, b)
B'_{3} = Mirror(B, b)
D'_{3} = Mirror(D, b)
A'_{3} = Mirror(A, b)
q1'_{3}, e'_{3}, b'_{3}, d'_{3}, a'_{3} = Polygon(E'_{3}, B'_{3}, D'_{3}, A'_{3})
R = Mirror(E'_{3}, e'_{3})
S = Mirror(B'_{3}, e'_{3})
T = Mirror(D'_{3}, e'_{3})
U = Mirror(A'_{3}, e'_{3})
q5, r, s, t, u = Polygon(R, S, T, U)
V = Mirror(E'_{3}, a'_{3})
W = Mirror(B'_{3}, a'_{3})
Z = Mirror(D'_{3}, a'_{3})
A_1 = Mirror(A'_{3}, a'_{3})
q6, v, w, z_1, a_1 = Polygon(V, W, Z, A_1)
V' = Mirror(V, w)
W' = Mirror(W, w)
Z' = Mirror(Z, w)
B_1 = Mirror(A_1, w)
q6', v', w', z', b_1 = Polygon(V', W', Z', B_1)
h_1 = segment2(B'_{2}, D'_{2})
i_1 = segment2(A, D'_{2})
j_1 = segment2(A, E)
k_1 = segment2(E, B)
l_1 = segment2(B, D)
m_1 = segment2(D, A)
n_1 = segment2(A', D')
p_1 = segment2(E'_{1}, B'_{1})
q_1 = segment2(A'_{3}, E'_{3})
r_1 = segment2(E'_{3}, B)
s_1 = segment2(W, Z)
C_1, D_1, E_1, F_1, G_1, H_1, I_1, J_1, K_1, L_1, M_1, c_1, t_1, d_1, e_1, f_2, g_2 = Languette1(M, J)
N_1, O_1, P_1, Q_1, R_1, S_1, T_1, U_1, V_1, W_1, Z_1, c_2, h_2, i_2, j_2, k_2, l_2 = Languette1(J, B'_{2})
A_2, B_2, C_2, D_2, E_2, F_2, G_2, H_2, I_2, J_2, K_2, d_2, m_2, n_2, p_2, q_2, r_2 = Languette1(E'', B'')
L_2, M_2, N_2, O_2, P_2, Q_2, R_2, S_2, T_2, U_2, V_2, e_2, s_2, t_2, a_2, b_2, f_3 = Languette1(B'', D')
W_2, Z_2, A_3, B_3, C_3, D_3, E_3, F_3, G_3, H_3, I_3, c_3, g_3, h_3, i_3, j_3, k_3 = Languette1(D', B)
J_3, K_3, L_3, M_3, N_3, O_3, P_3, Q_3, R_3, S_3, T_3, d_3, l_3, m_3, n_3, p_3, q_3 = Languette1(Z, A'_{3})
U_3, V_3, W_3, Z_3, A_4, B_4, C_4, D_4, E_4, F_4, G_4, e_3, r_3, s_3, t_3, a_3, b_3 = Languette1(H, I)
H_4, I_4, J_4, K_4, L_4, M_4, N_4, O_4, P_4, Q_4, R_4, c_4, f_4, g_4, h_4, i_4, j_4 = Languette1(I, E'_{1})
d_4, e_4, k_4, l_4, m_4, n_4, p_4, q_4, r_4 = languette(O, D'_{2})
S_4, T_4, U_4, V_4, W_4, Z_4, A_5, B_5, C_5, D_5, E_5, s_4, t_4, a_4, b_4, f_5, g_5 = Languette1(E'_{1}, A)
h_5, i_5, j_5, k_5, l_5, m_5 = languette2(A, N)
c_5, d_5, n_5, p_5, q_5, r_5, s_5, t_5, a_5 = languette(B'_{2}, E)
e_5, c_6, b_5, f_6, g_6, h_6, i_6, j_6, k_6 = languette(U, E'_{3})
d_6, e_6, l_6, m_6, n_6, p_6, q_6, r_6, s_6 = languette(A'_{3}, D)
t_6, a_6, b_6, f_7, g_7, h_7 = languette2(W, V')
i_7, j_7, k_7, l_7, m_7, n_7 = languette2(V', B_1)
p_7, q_7, r_7, s_7, t_7, a_7 = languette2(B_1, Z)
b_7, c_7, d_7, e_7, f_8, g_8 = languette2(B, T)
h_8, i_8, j_8, k_8, l_8, m_8 = languette2(T, U)
n_8, p_8, q_8, r_8, s_8, t_8 = languette2(A', E'')
a_8, b_8, c_8, d_8, e_8, f_9 = languette2(B'_{1}, H)
g_9, h_9, i_9, j_9, k_9, l_9 = languette2(N, O)
m_9 = ouverture(E, A')
n_9 = ouverture(M, D'_{2})
F_5 = Point(n_9)
p_9 = segment2(F_5, M)
G_5 = Point(n_9)
q_9 = segment2(G_5, D'_{2})
H_5 = Point(m_9)
r_9 = segment2(H_5, A')
I_5 = Point(m_9)
s_9 = segment2(I_5, E)
J_5 = Intersect(n_4, m_4)
t_9 = segment(M, J_5)
K_5 = Intersect(d_4, m_4, 1)
a_9 = segment(D'_{2}, K_5)
L_5 = Intersect(c_5, q_5, 1)
b_9 = segment(E, L_5)
M_5 = Intersect(r_5, q_5)
c_9 = segment(A', M_5)
d_9 = ouverture(B'_{1}, D)
e_9 = ouverture(E'_{3}, W)
N_5 = Point(d_9)
f_{10} = segment2(N_5, B'_{1})
O_5 = Point(d_9)
g_{10} = segment2(O_5, D)
P_5 = Point(e_9)
h_{10} = segment2(P_5, E'_{3})
Q_5 = Point(e_9)
i_{10} = segment2(Q_5, W)
R_5 = Intersect(d_6, n_6, 1)
j_{10} = segment(D, R_5)
S_5 = Point(n_6)
k_{10} = segment(S_5, B'_{1})
T_5 = Intersect(h_6, g_6)
l_{10} = segment(W, T_5)
U_5 = Intersect(e_5, g_6, 1)
m_{10} = segment(U_5, E'_{3})

Tool: segment-trait-plein (command segment)
segment[ <Point>, <Point> ]
Input: F, G
Output: g

g = Segment(F, G)

Tool: languette-ronde-1pour2 (command Languette1)
deux points
Input: A, B
Output: C, D, D', E, E', F, F', G, G', H, I, c, f, h, g, k, l

C = Midpoint(A, B)
D = Midpoint(A, C)
E = Midpoint(D, C)
F = Midpoint(D, E)
G = Midpoint(D, F)
D' = Mirror(D, C)
E' = Mirror(E, C)
F' = Mirror(F, C)
G' = Mirror(G, C)
c = Semicircle(D, D')
f = segment(G, G')
g = segment(G, A)
h = segment(G', B)
i = OrthogonalLine(G, g)
j = OrthogonalLine(G', h)
H = Intersect(c, i, 1)
I = Intersect(c, j, 1)
k = segment(H, G)
l = segment(I, G')

Tool: languette-trapeze-2pour1 (command languette2)
deux points [créés ou non]
Input: A, B
Output: i, j, k, l, m, n

poly1, f, g, h, C = Polygon(A, B, 3)
D = Midpoint(C, B)
E = Midpoint(B, D)
H = Midpoint(C, A)
I = Midpoint(H, A)
L = Midpoint(A, B)
M = Midpoint(L, B)
N = Midpoint(L, A)
l = segment(N, M)
m = segment(A, N)
n = segment(M, B)
i = segment(A, I)
j = segment(I, E)
k = segment(E, B)

Tool: languette-triangle-4pour3 (command languette3)
deux points [créés ou non]
Input: A, B
Output: h, j, l, i, k

B' = Rotate(B, 18°, A)
f = Ray(A, B')
A' = Rotate(A, -18°, B)
g = Ray(B, A')
C = Intersect(f, g)
D = Midpoint(A, B)
E = Midpoint(A, D)
F = Midpoint(D, B)
h = segment(A, C)
i = segment(C, B)
j = segment(B, F)
k = segment(F, E)
l = segment(E, A)

Tool: languette-triangle-arrondi-3pour4 (command languette)
deux points [créés ou non]
Input: A, B
Output: c_1, d, t, s, r, q, a, b, f_1

f, g, h, i, j = languette3(A, B)
C, D, E, F, G, H, I, J, K, L, M, c, k, l, m, n, p = Languette1(A, B)
N = Intersect(c, f, 1)
O = Intersect(c, i, 1)
P = Intersect(f, i)
Q = Intersect(f, n)
R = Intersect(i, p)
T = Intersect(n, m)
U = Intersect(p, l)
V = Intersect(c, m, 1)
Z = Midpoint(A, B)
d = CircleArc(Z, N, V)
q = segment(N, P)
r = segment(P, O)
s = segment(T, Q)
t = segment(U, R)
a = segment(A, J)
b = segment(K, B)
f_1 = segment(J, K)
c_1 = CircleArc(C, E, O)

Tool: languettes-ronde-trapeze (command languettes)
deux points (créés ou non]
Input: A, B
Output: c, f, g, h, i, j, k, l, m, n, p, q

C = Midpoint(A, B)
D, E, F, G, H, I, J, K, L, M, N, c, f, g, h, i, j = Languette1(A, C)
k, l, m, n, p, q = languette2(C, B)

Tool: ouverture-pour-languettes-1et3 (command ouverture)
ouverture[ <Point>, <Point> ]
Input: A, B
Output: f

C = Midpoint(A, B)
D = Midpoint(A, C)
E = Midpoint(C, B)
f = segment(D, E)

Tool: segment-pointillé (command segment2)
segment2[ <Point>, <Point> ]
Input: H, I
Output: h

h = segment(H, I)

Tool: languette-trapeze-colle (command languette5)
Input: J, K
Output: i, j, k, p

i, j, k, l, m, n = languette2(J, K)
p = segment(J, K)

Tool: languette-triangle-colle (command languette6)
Input: P, Q
Output: b, e, g_1

b, c, d, e, f_1 = languette3(P, Q)
g_1 = segment(P, Q)