theorem
EuclidGeom.Triangle.cosine_rule'
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(A : P)
(B : P)
(C : P)
[hab : EuclidGeom.PtNe B A]
[hac : EuclidGeom.PtNe C A]
:
theorem
EuclidGeom.Triangle.cosine_rule
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
theorem
EuclidGeom.Triangle.cosine_rule''
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
theorem
EuclidGeom.Triangle.sine_rule₁
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
tr_nd.edge₂.length * EuclidGeom.AngValue.sin tr_nd.angle₃.value = tr_nd.edge₃.length * EuclidGeom.AngValue.sin tr_nd.angle₂.value
theorem
EuclidGeom.Triangle.sine_rule₂
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
tr_nd.edge₁.length * EuclidGeom.AngValue.sin tr_nd.angle₃.value = tr_nd.edge₃.length * EuclidGeom.AngValue.sin tr_nd.angle₁.value
theorem
EuclidGeom.Triangle.sine_rule₃
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
tr_nd.edge₂.length * EuclidGeom.AngValue.sin tr_nd.angle₁.value = tr_nd.edge₁.length * EuclidGeom.AngValue.sin tr_nd.angle₂.value
theorem
EuclidGeom.Pythagoras_of_ne_ne_perp
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{A : P}
{B : P}
{C : P}
(hab : B ≠ A)
(hac : C ≠ A)
(h : { val := { source := A, target := B }, property := hab }.toProj.perp = { val := { source := A, target := C }, property := hac }.toProj)
:
theorem
EuclidGeom.Pythagoras_of_perp_foot
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(A : P)
(B : P)
{l : EuclidGeom.Line P}
(h : EuclidGeom.lies_on B l)
:
{ source := A, target := EuclidGeom.perp_foot A l }.length ^ 2 + { source := B, target := EuclidGeom.perp_foot A l }.length ^ 2 = { source := A, target := B }.length ^ 2
theorem
EuclidGeom.Pythagoras_of_right_triangle_non_trivial
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(A : P)
(B : P)
(C : P)
{hnd : ¬EuclidGeom.Collinear A B C}
(right_triangle : ∠ B A C (_ : B ≠ A) (_ : C ≠ A) = ∠[Real.pi / 2])
:
Given ▵ A B C with ∠ B A C = π / 2, A B ^ 2 + A C ^ 2 = B C ^ 2, namely (SEG A B).length ^ 2 + (SEG A C).length ^ 2 = (SEG B C).length ^ 2.