A = (9.198514285714277, -4.081295238095248)
B = (1.922380952380949, 1.4708761904761867)
c = DiscodePoincaré(A, B)
C = (14.49716190476189, 3.042723809523807)
D = (15.33379047619046, -10.647561904761922)
d = hreta(c, C, D)
E = (0.5026476190476168, -1.647466666666674)
e = hreta(c, E, D)
α = h_ângulo(c, C, D, E)
f = hreta(c, E, C)
β = h_ângulo(c, D, E, C)
γ = h_ângulo(c, E, C, D)
pol1, c_1, e_1, d_1 = Polygon(E, D, C)
pol2, d_2, c_2, e_2 = Polygon(C, E, D)
δ = Angle(E, C, D)
ε = Angle(C, D, E)
ζ = Angle(D, E, C)
η: α + β + γ
θ: δ + ε + ζ

Tool: Disco de Poincaré (command DiscodePoincaré)
Disco dados centro e um de seus pontos do horizonte
Input: A, B
Output: c

c = Circle(A, B)

Tool: h-reta (command hreta)
Reta hiperbólica dado Disco e dois pontos
Input: c, D, E
Output: e

C = Center(c)
D' = Mirror(D, c)
d = Circle(E, D, D')
F = Intersect(c, d, 1)
G = Intersect(c, d, 2)
α = Angle(E, C, D)
X = If(α ≤ 180°, F, G)
Z = If(α ≤ 180°, G, F)
e = CircumcircleArc(X, D, Z)

Tool: h-reta (pontos do horizonte) (command hretapontosdohorizonte)
Reta hiperbólica com pontos no horizonte dado Disco e dois pontos
Input: c, D, E
Output: e, X, Z

C = Center(c)
D' = Mirror(D, c)
d = Circle(E, D, D')
F = Intersect(c, d, 1)
G = Intersect(c, d, 2)
α = Angle(E, C, D)
X = If(α ≤ 180°, F, G)
Z = If(α ≤ 180°, G, F)
e = CircumcircleArc(X, D, Z)

Tool: h-segmento (command hsegmento)
Segmento hiperbólico dado Disco e dois pontos
Input: c, D, E
Output: f

C = Center(c)
D' = Mirror(D, c)
d = Circle(E, D, D')
F = Intersect(c, d, 1)
G = Intersect(c, d, 2)
α = Angle(E, C, D)
X = If(α ≤ 180°, F, G)
Z = If(α ≤ 180°, G, F)
e = CircumcircleArc(X, D, Z)
H = Midpoint(D, E)
a = Line(C, H)
I, A = Intersect(e, a)
f = CircumcircleArc(D, I, E)

Tool: h-círculo (command hcirculo)
Círculo hiperbólico dado Disco, centro e um ponto do círculo
Input: p, S, T
Output: r

V = Center(p)
q = hreta(p, S, T)
l, a = Tangent(T, q)
j = Ray(V, S)
U = Intersect(l, j)
r = Circle(U, T)

Tool: h-reta perpendicular (command hretaperp)
Determina a reta perppendicular a uma h-reta dado Disco, h-reta e ponto
Input: c, d, F
Output: e, K

F' = Mirror(F, d)
e, G, H = hretapontosdohorizonte(c, F', F)
I, J = Intersect(d, e)
K = If(Defined[I], I, J)

Tool: h-reta perpendicular por ponto na h-reta (command hretapeprnoponto)
Determina reta perpendicular passando por ponto na reta dados Disco, h-reta e ponto na h-reta
Input: c, d, F
Output: f

a, b = Tangent(F, d)
F' = Mirror(F, c)
F'' = Mirror(F', a)
e = Circle(F', F'', F)
G, H = Intersect(c, e)
f = CircumcircleArc(H, F, G)

Tool: h-triângulo (command htriangulo)
Triângulo hiperbólico dado Disco e três pontos
Input: c, C, D, E
Output: d, e, f

d = hsegmento(c, C, D)
e = hsegmento(c, D, E)
f = hsegmento(c, C, E)

Tool: h-triângulo equilátero (command htriequilatero)
Triângulo hiperbólico equilátero dado Disco e dois pontos
Input: c, C, D
Output: f, g, h, E

d = hcirculo(c, C, D)
e = hcirculo(c, D, C)
E = Intersect(d, e, 1)
f = hsegmento(c, C, E)
g = hsegmento(c, E, D)
h = hsegmento(c, C, D)

Tool: h-quadrilátero (command hquadrilatero)
Determina um quadrilátero dado Disco e quatro pontos
Input: c, C, D, E, F
Output: d, e, g, f

d = hsegmento(c, C, D)
e = hsegmento(c, D, E)
f = hsegmento(c, C, F)
g = hsegmento(c, F, E)

Tool: h-soma dos ângulos de um triângulo (command hsomatri)
Determina a soma dos ângulos de um triângulo dado Disco e três pontos
Input: c, C, D, E
Output: texto4, texto3, k, γ, h, texto2, β, texto1, g, α

texto1, g, α = hangulo(c, C, D, E)
texto2, h, β = hangulo(c, D, E, C)
texto3, k, γ = hangulo(c, E, C, D)
a: α + β + γ
texto4: "Soma   " + (Name[C]) + "" + (Name[D]) + "" + (Name[E]) + "  = " + a + "
Ângulo em " + (Name[C]) + " = " + γ + "
Ângulo em " + (Name[D]) + " = " + α + "
Ângulo em " + (Name[E]) + " = " + β + ""

Tool: h-soma dos ângulos de um quadrilátero (command hsomaquad)
Determina a soma dos Ângulos de um quadrilátero convexo dado Disco e quatro pontos
Input: c, C, D, E, F
Output: texto5, texto4, q, texto3, p, k, texto2, texto1, h, α, β, γ, δ

texto1, h, α = hangulo(c, C, F, E)
texto2, k, β = hangulo(c, F, E, D)
texto3, p, γ = hangulo(c, E, D, C)
texto4, q, δ = hangulo(c, D, C, F)
a: α + β + γ + δ
texto5: "Soma " + (Name[C]) + "" + (Name[D]) + "" + (Name[E]) + "" + (Name[F]) + " = " + a + "
Ângulo em " + (Name[C]) + " = " + δ + "
Ângulo em " + (Name[D]) + " = " + γ + "
Ângulo em " + (Name[E]) + " = " + β + "
Ângulo em " + (Name[F]) + " = " + α + "
OBS: O quadrilátero " + (Name[C]) + "" + (Name[D]) + "" + (Name[E]) + "" + (Name[F]) + " deve ser convexo"

Tool: h-comprimento de segmento (command hcompseg)
Determina o comprimento do segmento dado Disco e dois pontos
Input: c, C, D
Output: texto1, g

d, E, F = hretapontosdohorizonte(c, C, D)
a = Segment(C, E)
b = Segment(C, F)
e = Segment(D, E)
f = Segment(D, F)
z: ((b * e)) / ((a * f))
g: abs(log(z))
texto1: "" + (Name[C]) + "" + (Name[D]) + " = " + (LaTeX[g]) + ""

Tool: h-soma de comprimento (command hsomacomp)
Determina a soma do comprimento de dois segmentos não adjacentes, dado Disco e quatro pontos
Input: c, C, D, F, G
Output: texto6, a, i, j

texto1, a = hcompseg(c, C, D)
texto5, i = hcompseg(c, F, G)
j: a + i
texto6: "" + (Name[C]) + "" + (Name[D]) + " + " + (Name[F]) + "" + (Name[G]) + " = " + a + " + " + i + "
" + (Name[C]) + "" + (Name[D]) + " + " + (Name[F]) + "" + (Name[G]) + " = " + j + ""

Tool: h-reflexão de ponto (command hreflexaoponto)
Determina a reflexão de um ponto por h-reta, dado Disco, h-reta e ponto
Input: c, d, E
Output: E'

E' = Mirror(E, d)

Tool: h-semirreta (command hsemirreta)
Determina semirreta dado Disco, ponto de origem e ponto
Input: c, F, G
Output: f

e, H, I = hretapontosdohorizonte(c, F, G)
f = CircumcircleArc(F, G, I)

Tool: h-soma de comprimento em sequência (command hsomaseq)
Determina a soma dos comprimentos de dois segmentos adjcentes, dado Disco e três pontos
Input: c, C, D, E
Output: texto4

texto1, a = hcompseg(c, C, D)
texto2, b = hcompseg(c, D, E)
j: a + b
texto4: "" + (Name[C]) + "" + (Name[D]) + " + " + (Name[D]) + "" + (Name[E]) + " = " + a + " + " + b + "
" + (Name[C]) + "" + (Name[D]) + " + " + (Name[D]) + "" + (Name[E]) + " = " + j + ""

Tool: h-ponto médio (command hpontomedio)
Determina o ponto médio entre dois pontos no disco informando o Disco e dois pontos
Input: c, C, D
Output: F

d = hsegmento(c, C, D)
e = hcirculo(c, C, D)
f = hcirculo(c, D, C)
E = Intersect(e, f, 1)
g, F = hretaperp(c, d, E)

Tool: h_ângulo
círculo, ponto ponto, ponto
Input: c, E, D, C
Output: β

d = hreta(c, C, D)
e = hreta(c, E, D)
a, g = Tangent(D, d)
b, m = Tangent(D, e)
f = OrthogonalLine(C, a)
F = Intersect(a, f)
h = Circle(F, C)
H = Intersect(h, f, 2)
i = OrthogonalLine(E, b)
I = Intersect(b, i)
k = Circle(I, E)
J, K = Intersect(k, i)
j = Segment(H, C)
l = Segment(E, K)
L = Intersect(a, j)
M = Intersect(b, l)
β = Angle(M, D, L)