Equations
- EuclidGeom.Angle.instAddSemigroup = AddSemigroup.mk (_ : ∀ (x x_1 x_2 : EuclidGeom.Angle P), x + x_1 + x_2 = x + x_1 + x_2)
theorem
EuclidGeom.Angle.add_source_eq_source_left
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
theorem
EuclidGeom.Angle.add_source_eq_source_right
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
(h : ang₁.source = ang₂.source)
:
@[simp]
theorem
EuclidGeom.Angle.add_dir₁
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
@[simp]
theorem
EuclidGeom.Angle.add_dir₂
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
@[simp]
theorem
EuclidGeom.Angle.add_proj₁
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
@[simp]
theorem
EuclidGeom.Angle.add_proj₂
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
@[simp]
theorem
EuclidGeom.Angle.add_start_ray
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
theorem
EuclidGeom.Angle.add_end_ray
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
(h : ang₁.source = ang₂.source)
:
@[simp]
theorem
EuclidGeom.Angle.add_start_dirLine
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
theorem
EuclidGeom.Angle.add_end_dirLine
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
(h : ang₁.source = ang₂.source)
:
theorem
EuclidGeom.Angle.add_value_eq_value_add_of_dir_eq
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
(h : ang₁.dir₂ = ang₂.dir₁)
:
theorem
EuclidGeom.Angle.add_dvalue_eq_dvalue_add_of_proj_eq
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
(h : ang₁.proj₂ = ang₂.proj₁)
:
theorem
EuclidGeom.Angle.value_add_eq_add_value
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(O : P)
(A : P)
(B : P)
(C : P)
[EuclidGeom.PtNe A O]
[EuclidGeom.PtNe B O]
[EuclidGeom.PtNe C O]
:
theorem
EuclidGeom.Angle.dvalue_add_eq_add_dvalue
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(O : P)
(A : P)
(B : P)
(C : P)
[EuclidGeom.PtNe A O]
[EuclidGeom.PtNe B O]
[EuclidGeom.PtNe C O]
:
theorem
EuclidGeom.Angle.value_sub_right_eq_sub_value
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(O : P)
(A : P)
(B : P)
(C : P)
[EuclidGeom.PtNe A O]
[EuclidGeom.PtNe B O]
[EuclidGeom.PtNe C O]
:
theorem
EuclidGeom.Angle.dvalue_sub_right_eq_sub_dvalue
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(O : P)
(A : P)
(B : P)
(C : P)
[EuclidGeom.PtNe A O]
[EuclidGeom.PtNe B O]
[EuclidGeom.PtNe C O]
:
theorem
EuclidGeom.Angle.value_sub_left_eq_sub_value
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(O : P)
(A : P)
(B : P)
(C : P)
[EuclidGeom.PtNe A O]
[EuclidGeom.PtNe B O]
[EuclidGeom.PtNe C O]
:
theorem
EuclidGeom.Angle.dvalue_sub_left_eq_sub_dvalue
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(O : P)
(A : P)
(B : P)
(C : P)
[EuclidGeom.PtNe A O]
[EuclidGeom.PtNe B O]
[EuclidGeom.PtNe C O]
:
instance
EuclidGeom.Angle.instSub
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
:
Sub (EuclidGeom.Angle P)
Equations
- EuclidGeom.Angle.instSub = { sub := fun (ang₁ ang₂ : EuclidGeom.Angle P) => { source := ang₁.source, dir₁ := ang₁.dir₁, dir₂ := ang₂.dir₁ } }
theorem
EuclidGeom.Angle.sub_eq_add_rev
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
(ang₁ : EuclidGeom.Angle P)
(ang₂ : EuclidGeom.Angle P)
:
theorem
EuclidGeom.Angle.sub_source_eq_source_left
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
theorem
EuclidGeom.Angle.sub_source_eq_source_right
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
(h : ang₁.source = ang₂.source)
:
@[simp]
theorem
EuclidGeom.Angle.sub_dir₁
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
@[simp]
theorem
EuclidGeom.Angle.sub_dir₂
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
@[simp]
theorem
EuclidGeom.Angle.sub_proj₁
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
@[simp]
theorem
EuclidGeom.Angle.sub_proj₂
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
@[simp]
theorem
EuclidGeom.Angle.sub_start_ray
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
theorem
EuclidGeom.Angle.sub_end_ray
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
(h : ang₁.source = ang₂.source)
:
@[simp]
theorem
EuclidGeom.Angle.sub_start_dirLine
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
:
theorem
EuclidGeom.Angle.sub_end_dirLine
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
(h : ang₁.source = ang₂.source)
:
theorem
EuclidGeom.Angle.sub_value_eq_value_sub_of_dir_eq
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
(h : ang₁.dir₂ = ang₂.dir₂)
:
theorem
EuclidGeom.Angle.sub_dvalue_eq_dvalue_sub_of_proj_eq
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{ang₁ : EuclidGeom.Angle P}
{ang₂ : EuclidGeom.Angle P}
(h : ang₁.proj₂ = ang₂.proj₂)
:
theorem
EuclidGeom.Angle.dvalue_eq_pi_div_two_at_perp_foot
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{A : P}
{O : P}
{B : P}
[_h : EuclidGeom.PtNe A O]
{l : EuclidGeom.Line P}
(ha : EuclidGeom.lies_on A l)
(ho : O = EuclidGeom.perp_foot B l)
(hb : ¬EuclidGeom.lies_on B l)
:
theorem
EuclidGeom.Angle.isRt_at_perp_foot
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{A : P}
{O : P}
{B : P}
[_h : EuclidGeom.PtNe A O]
{l : EuclidGeom.Line P}
(ha : EuclidGeom.lies_on A l)
(ho : O = EuclidGeom.perp_foot B l)
(hb : ¬EuclidGeom.lies_on B l)
:
(ANG A O B).IsRt
theorem
EuclidGeom.Angle.perp_foot_lies_int_start_ray_iff_isAcu
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{A : P}
{O : P}
{B : P}
[EuclidGeom.PtNe A O]
[EuclidGeom.PtNe B O]
:
EuclidGeom.lies_int (EuclidGeom.perp_foot B (LIN O A)) (RAY O A) ↔ (ANG A O B).IsAcu
theorem
EuclidGeom.Angle.perp_foot_eq_source_iff_isRt
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{A : P}
{O : P}
{B : P}
[EuclidGeom.PtNe A O]
[EuclidGeom.PtNe B O]
:
EuclidGeom.perp_foot B (LIN O A) = O ↔ (ANG A O B).IsRt
theorem
EuclidGeom.Angle.perp_foot_lies_int_start_ray_reverse_iff_isObt
{P : Type u_1}
[EuclidGeom.EuclideanPlane P]
{A : P}
{O : P}
{B : P}
[EuclidGeom.PtNe A O]
[EuclidGeom.PtNe B O]
:
EuclidGeom.lies_int (EuclidGeom.perp_foot B (LIN O A)) (RAY O A).reverse ↔ (ANG A O B).IsObt