theorem
EuclidGeom.Triangle.ext
{P : Type u_1}
:
∀ {inst : EuclidGeom.EuclideanPlane P} (x y : EuclidGeom.Triangle P),
x.point₁ = y.point₁ → x.point₂ = y.point₂ → x.point₃ = y.point₃ → x = y
theorem
EuclidGeom.Triangle.ext_iff
{P : Type u_1}
:
∀ {inst : EuclidGeom.EuclideanPlane P} (x y : EuclidGeom.Triangle P),
x = y ↔ x.point₁ = y.point₁ ∧ x.point₂ = y.point₂ ∧ x.point₃ = y.point₃
- point₁ : P
- point₂ : P
- point₃ : P
Instances For
def
EuclidGeom.Triangle.edge₁
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
Equations
- tr.edge₁ = { source := tr.point₂, target := tr.point₃ }
Instances For
def
EuclidGeom.Triangle.edge₂
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
Equations
- tr.edge₂ = { source := tr.point₃, target := tr.point₁ }
Instances For
def
EuclidGeom.Triangle.edge₃
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
Equations
- tr.edge₃ = { source := tr.point₁, target := tr.point₂ }
Instances For
def
EuclidGeom.Triangle.oarea
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
Equations
- tr.oarea = EuclidGeom.oarea tr.point₁ tr.point₂ tr.point₃
Instances For
def
EuclidGeom.Triangle.area
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
Equations
- tr.area = |tr.oarea|
Instances For
def
EuclidGeom.Triangle.IsND
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
Equations
- tr.IsND = ¬EuclidGeom.Collinear tr.point₁ tr.point₂ tr.point₃
Instances For
Equations
- EuclidGeom.TriangleND P = { tr : EuclidGeom.Triangle P // tr.IsND }
Instances For
@[inline, reducible]
abbrev
EuclidGeom.TriangleND.point₁
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
P
Equations
- tr_nd.point₁ = (↑tr_nd).point₁
Instances For
@[inline, reducible]
abbrev
EuclidGeom.TriangleND.point₂
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
P
Equations
- tr_nd.point₂ = (↑tr_nd).point₂
Instances For
@[inline, reducible]
abbrev
EuclidGeom.TriangleND.point₃
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
P
Equations
- tr_nd.point₃ = (↑tr_nd).point₃
Instances For
instance
EuclidGeom.TriangleND.nontriv₁
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
EuclidGeom.PtNe tr_nd.point₃ tr_nd.point₂
Equations
- (_ : EuclidGeom.PtNe tr_nd.point₃ tr_nd.point₂) = (_ : Fact (tr_nd.point₃ ≠ tr_nd.point₂))
instance
EuclidGeom.TriangleND.nontriv₂
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
EuclidGeom.PtNe tr_nd.point₁ tr_nd.point₃
Equations
- (_ : EuclidGeom.PtNe tr_nd.point₁ tr_nd.point₃) = (_ : Fact (tr_nd.point₁ ≠ tr_nd.point₃))
instance
EuclidGeom.TriangleND.nontriv₃
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
EuclidGeom.PtNe tr_nd.point₂ tr_nd.point₁
Equations
- (_ : EuclidGeom.PtNe tr_nd.point₂ tr_nd.point₁) = (_ : Fact (tr_nd.point₂ ≠ tr_nd.point₁))
@[inline, reducible]
abbrev
EuclidGeom.TriangleND.edge₁
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
- tr_nd.edge₁ = (↑tr_nd).edge₁
Instances For
@[inline, reducible]
abbrev
EuclidGeom.TriangleND.edge₂
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
- tr_nd.edge₂ = (↑tr_nd).edge₂
Instances For
@[inline, reducible]
abbrev
EuclidGeom.TriangleND.edge₃
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
- tr_nd.edge₃ = (↑tr_nd).edge₃
Instances For
def
EuclidGeom.TriangleND.edgeND₁
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Instances For
def
EuclidGeom.TriangleND.edgeND₂
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Instances For
def
EuclidGeom.TriangleND.edgeND₃
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Instances For
@[inline, reducible]
abbrev
EuclidGeom.TriangleND.oarea
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
- tr_nd.oarea = (↑tr_nd).oarea
Instances For
@[inline, reducible]
abbrev
EuclidGeom.TriangleND.area
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
- tr_nd.area = (↑tr_nd).area
Instances For
def
EuclidGeom.TriangleND.is_cclock
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Instances For
def
EuclidGeom.TriangleND.angle₁
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
Instances For
def
EuclidGeom.TriangleND.angle₂
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
Instances For
def
EuclidGeom.TriangleND.angle₃
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
Instances For
def
EuclidGeom.Triangle.IsInt
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(A : P)
(tr : EuclidGeom.Triangle P)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
EuclidGeom.Triangle.IsOn
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(A : P)
(tr : EuclidGeom.Triangle P)
:
Equations
- EuclidGeom.Triangle.IsOn A tr = (EuclidGeom.Triangle.IsInt A tr ∨ EuclidGeom.lies_on A tr.edge₁ ∨ EuclidGeom.lies_on A tr.edge₂ ∨ EuclidGeom.lies_on A tr.edge₃)
Instances For
def
EuclidGeom.Triangle.carrier
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
Set P
Equations
- EuclidGeom.Triangle.carrier tr = {p : P | EuclidGeom.Triangle.IsOn p tr}
Instances For
def
EuclidGeom.Triangle.interior
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
Set P
Equations
- EuclidGeom.Triangle.interior tr = {p : P | EuclidGeom.Triangle.IsInt p tr}
Instances For
Equations
- EuclidGeom.Triangle.instInteriorTriangle = { interior := EuclidGeom.Triangle.interior }
def
EuclidGeom.TriangleND.IsInt
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(A : P)
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
EuclidGeom.TriangleND.IsOn
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(A : P)
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
- EuclidGeom.TriangleND.IsOn A tr_nd = (EuclidGeom.TriangleND.IsInt A tr_nd ∨ EuclidGeom.lies_on A tr_nd.edge₁ ∨ EuclidGeom.lies_on A tr_nd.edge₂ ∨ EuclidGeom.lies_on A tr_nd.edge₃)
Instances For
def
EuclidGeom.TriangleND.carrier
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.Triangle P)
:
Set P
Equations
- EuclidGeom.TriangleND.carrier tr_nd = {p : P | EuclidGeom.Triangle.IsOn p tr_nd}
Instances For
def
EuclidGeom.TriangleND.interior
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.Triangle P)
:
Set P
Equations
- EuclidGeom.TriangleND.interior tr_nd = {p : P | EuclidGeom.Triangle.IsInt p tr_nd}
Instances For
def
EuclidGeom.Triangle.perm_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
Equations
- tr.perm_vertices = { point₁ := tr.point₂, point₂ := tr.point₃, point₃ := tr.point₁ }
Instances For
theorem
EuclidGeom.Triangle.eq_self_of_perm_vertices_three_times
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
tr.perm_vertices.perm_vertices.perm_vertices = tr
def
EuclidGeom.Triangle.flip_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
Equations
- tr.flip_vertices = { point₁ := tr.point₁, point₂ := tr.point₃, point₃ := tr.point₂ }
Instances For
theorem
EuclidGeom.Triangle.eq_self_of_flip_vertices_twice
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
tr.flip_vertices.flip_vertices = tr
theorem
EuclidGeom.Triangle.eq_flip_of_perm_twice_of_perm_flip_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
tr.flip_vertices.perm_vertices.perm_vertices = tr.perm_vertices.flip_vertices
theorem
EuclidGeom.Triangle.is_inside_of_is_inside_perm_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
(p : P)
(inside : EuclidGeom.lies_int p tr)
:
EuclidGeom.lies_int p tr.perm_vertices
theorem
EuclidGeom.Triangle.is_inside_of_is_inside_flip_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
(p : P)
(inside : EuclidGeom.lies_int p tr)
:
EuclidGeom.lies_int p tr.flip_vertices
def
EuclidGeom.TriangleND.perm_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
EuclidGeom.TriangleND.flip_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
EuclidGeom.TriangleND.eq_self_of_perm_vertices_three_times
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
theorem
EuclidGeom.TriangleND.eq_self_of_flip_vertices_twice
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
theorem
EuclidGeom.TriangleND.eq_flip_of_perm_twice_of_perm_flip_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
theorem
EuclidGeom.TriangleND.same_orient_of_perm_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
tr_nd.is_cclock = (EuclidGeom.TriangleND.perm_vertices tr_nd).is_cclock
theorem
EuclidGeom.TriangleND.reverse_orient_of_flip_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
tr_nd.is_cclock = ¬(EuclidGeom.TriangleND.flip_vertices tr_nd).is_cclock
theorem
EuclidGeom.TriangleND.is_inside_of_is_inside_perm_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.Triangle P)
(p : P)
(inside : EuclidGeom.lies_int p tr_nd)
:
EuclidGeom.lies_int p tr_nd.perm_vertices
theorem
EuclidGeom.TriangleND.is_inside_of_is_inside_flip_vertices
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.Triangle P)
(p : P)
(inside : EuclidGeom.lies_int p tr_nd)
:
EuclidGeom.lies_int p tr_nd.flip_vertices
def
EuclidGeom.TriangleND.mk
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(A : P)
(B : P)
(C : P)
(h : ¬EuclidGeom.Collinear A B C)
:
Equations
- EuclidGeom.TriangleND.mk A B C h = { val := { point₁ := A, point₂ := B, point₃ := C }, property := h }
Instances For
Equations
- EuclidGeom.termTRI = Lean.ParserDescr.node `EuclidGeom.termTRI 1024 (Lean.ParserDescr.symbol "TRI")
Instances For
Equations
- EuclidGeom.«term▵» = Lean.ParserDescr.node `EuclidGeom.term▵ 1024 (Lean.ParserDescr.symbol "▵")
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
EuclidGeom.Triangle.triangle_ineq
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
theorem
EuclidGeom.Triangle.trivial_of_edge_sum_eq_edge
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
theorem
EuclidGeom.Triangle.triangle_ineq'
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
(nontriv : tr.IsND)
:
theorem
EuclidGeom.Triangle.edge_sum_eq_edge_iff_collinear
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr : EuclidGeom.Triangle P)
:
theorem
EuclidGeom.TriangleND.angle₁_pos_iff_cclock
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
tr_nd.is_cclock ↔ tr_nd.angle₁.value.IsPos
theorem
EuclidGeom.TriangleND.angle₂_pos_iff_cclock
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
tr_nd.is_cclock ↔ tr_nd.angle₂.value.IsPos
theorem
EuclidGeom.TriangleND.angle₃_pos_iff_cclock
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
tr_nd.is_cclock ↔ tr_nd.angle₃.value.IsPos
theorem
EuclidGeom.TriangleND.angle₁_neg_iff_not_cclock
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
theorem
EuclidGeom.TriangleND.angle₂_neg_iff_not_cclock
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
theorem
EuclidGeom.TriangleND.angle₃_neg_iff_not_cclock
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
theorem
EuclidGeom.TriangleND.pos_pos_or_neg_neg_of_iff_cclock
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
{tr_nd₁ : EuclidGeom.TriangleND P}
{tr_nd₂ : EuclidGeom.TriangleND P}
:
theorem
EuclidGeom.TriangleND.angle_sum_eq_pi_of_cclock
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
(cclock : tr_nd.is_cclock)
:
theorem
EuclidGeom.TriangleND.angle_sum_eq_neg_pi_of_clock
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
(clock : ¬tr_nd.is_cclock)
:
theorem
EuclidGeom.TriangleND.triangle_ineq'
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr_nd : EuclidGeom.TriangleND P)
:
theorem
EuclidGeom.TriangleND.sum_of_other_angle_same_if_one_angle_same
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr₁ : EuclidGeom.TriangleND P)
(tr₂ : EuclidGeom.TriangleND P)
(a : tr₁.angle₁.value = tr₂.angle₁.value)
:
theorem
EuclidGeom.TriangleND.sum_of_other_angle_same_neg_if_one_angle_same_neg
{P : Type u_2}
[EuclidGeom.EuclideanPlane P]
(tr₁ : EuclidGeom.TriangleND P)
(tr₂ : EuclidGeom.TriangleND P)
(a : tr₁.angle₁.value = -tr₂.angle₁.value)
: