A_{1} = Intersect(yAxis, xAxis)
B_{1} = Point(xAxis)
poli1, f, g, h, i, C_{1}, D_{1} = Polygon(A_{1}, B_{1}, 4)
E = Midpoint(A_{1}, C_{1})
F_{1}: (x(E), y(E), (sqrt(2) / 2 * f))
a_{1}, facciaABF, facciaBCF, facciaCDF, facciaADF, spigoloAF, spigoloBF, spigoloCF, spigoloDF = Pyramid(poli1, F_{1})
G_{1}: (x(F_{1}), y(F_{1}), (-z(F_{1})))
b, facciaABG, facciaBCG, facciaCDG, facciaADG, spigoloAG, spigoloBG, spigoloCG, spigoloDG = Pyramid(poli1, G_{1})
H_{1} = (6.866792937228414, -4.247870773088206, 0)
j = Ray(A_{1}, H_{1})
I_{1} = Point(j)
A' = Mirror(A_{1}, I_{1})
I' = Mirror(I_{1}, A')
k = Segment(I', B_{1})
l = Line(A', k)
J = Intersect(l, f)
m = Line(J, i)
L_{1} = Intersect(m, h)
r = Line(J, spigoloBF)
P = Intersect(r, spigoloAF)
F = Mirror(F_{1}, P)
C = Mirror(C_{1}, L_{1})
B = Mirror(B_{1}, J)
t = Line(L_{1}, spigoloCF)
Q = Intersect(spigoloDF, t)
A = Mirror(F_{1}, Q)
n = Line(A, spigoloAF)
K = Intersect(n, i)
G = Mirror(D_{1}, K)
p = Line(K, f)
q = Line(G, f)
M = Intersect(p, g)
N = Intersect(g, q)
s = Line(C, spigoloDF)
c = Line(L_{1}, spigoloDF)
D = Intersect(c, spigoloCF)
R = Intersect(spigoloCF, s)
d = Line(M, spigoloCF)
e = Line(N, d)
S = Intersect(e, spigoloBF)
T = Intersect(d, spigoloBF)
poli2, p_1, t_1, s_1, j_1, b', f' = Polygon(P, T, S, J, B, F)
poli3, t_2, r_1, o, m_1, n_1, s_2 = Polygon(T, R, D, M, N, S)
poli4, o_1, l_1, c', f'_{2}, q_1, r_2 = Polygon(D, L_{1}, C, A, Q, R)
poli5, q_2, p_2, f_1, d', k_1, g_1 = Polygon(Q, P, F, G, K, A)
poli4' = Mirror(poli4, xOyPlane)
poli5' = Mirror(poli5, xOyPlane)
poli2' = Mirror(poli2, xOyPlane)
poli3' = Mirror(poli3, xOyPlane)
O = Mirror(D, xOyPlane)
R' = Mirror(R, xOyPlane)
Z = Mirror(Q, xOyPlane)
T' = Mirror(T, xOyPlane)
I = Mirror(P, xOyPlane)
H = Mirror(S, xOyPlane)
U = Mirror(A, xOyPlane)
L = Mirror(F, xOyPlane)