Documentation

EuclideanGeometry.Foundation.Axiom.Position.Orientation

def EuclidGeom.wedge {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) :
Equations
Instances For
    def EuclidGeom.oarea {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) :
    Equations
    Instances For
      theorem EuclidGeom.wedge213 {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) :
      theorem EuclidGeom.wedge132 {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) :
      theorem EuclidGeom.wedge231 {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) :
      theorem EuclidGeom.wedge312 {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) :
      theorem EuclidGeom.wedge321 {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) :
      theorem EuclidGeom.wedge_eq_length_mul_length_mul_sin {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) [bnea : EuclidGeom.PtNe B A] [cnea : EuclidGeom.PtNe C A] :
      EuclidGeom.wedge A B C = { source := A, target := B }.length * { source := A, target := C }.length * EuclidGeom.AngValue.sin (ANG B A C).value
      theorem EuclidGeom.wedge_pos_iff_angle_pos {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) (nd : ¬EuclidGeom.Collinear A B C) :
      0 < EuclidGeom.wedge A B C (ANG B A C (_ : B A) (_ : C A)).value.IsPos
      Equations
      Instances For
        theorem EuclidGeom.odist'_eq_zero_iff_exist_real_vec_eq_smul {P : Type u_1} [EuclidGeom.EuclideanPlane P] {A : P} {ray : EuclidGeom.Ray P} :
        EuclidGeom.odist' A ray = 0 ∃ (t : ), EuclidGeom.Vec.mkPtPt ray.source A = t ray.toDir.unitVec
        theorem EuclidGeom.odist'_eq_length_mul_sin {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (ray : EuclidGeom.Ray P) [h : EuclidGeom.PtNe A ray.source] :
        EuclidGeom.odist' A ray = { source := ray.source, target := A }.length * EuclidGeom.AngValue.sin (EuclidGeom.Angle.mk_ray_pt ray A (_ : A ray.source)).value
        theorem EuclidGeom.wedge_eq_length_mul_odist' {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) [bnea : EuclidGeom.PtNe B A] :
        EuclidGeom.wedge A B C = { source := A, target := B }.length * EuclidGeom.odist' C (RAY A B)
        def EuclidGeom.odist {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.DirFig α P] (A : P) (l : α) :
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem EuclidGeom.wedge_eq_wedge_iff_odist_eq_odist_of_ne {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) (D : P) [bnea : EuclidGeom.PtNe B A] :
          EuclidGeom.odist C (SEG_nd A B) = EuclidGeom.odist D (SEG_nd A B) EuclidGeom.wedge A B C = EuclidGeom.wedge A B D
          def EuclidGeom.odist_sign {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.DirFig α P] (A : P) (df : α) :
          Equations
          Instances For
            def EuclidGeom.IsOnLeftSide {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.DirFig α P] (A : P) (df : α) :
            Equations
            Instances For
              def EuclidGeom.IsOnRightSide {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.DirFig α P] (A : P) (df : α) :
              Equations
              Instances For
                def EuclidGeom.OnLine {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.DirFig α P] (A : P) (df : α) :
                Equations
                Instances For
                  def EuclidGeom.OffLine {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.DirFig α P] (A : P) (df : α) :
                  Equations
                  Instances For
                    theorem EuclidGeom.oarea_eq_length_mul_odist_div_two {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) [bnea : EuclidGeom.PtNe B A] :
                    EuclidGeom.oarea A B C = { source := A, target := B }.length * EuclidGeom.odist C (SEG_nd A B) / 2
                    theorem EuclidGeom.oarea_eq_oarea_iff_odist_eq_odist_of_ne {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) (D : P) [bnea : EuclidGeom.PtNe B A] :
                    EuclidGeom.odist C (SEG_nd A B) = EuclidGeom.odist D (SEG_nd A B) EuclidGeom.oarea A B C = EuclidGeom.oarea A B D
                    theorem EuclidGeom.oarea_eq_sin_mul_length_mul_length_div_two {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) [bnea : EuclidGeom.PtNe B A] [cnea : EuclidGeom.PtNe C A] :
                    EuclidGeom.oarea A B C = { source := A, target := B }.length * { source := A, target := C }.length * EuclidGeom.AngValue.sin (ANG B A C).value / 2
                    theorem EuclidGeom.oarea_tri_nd_ne_zero {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) (trind : ¬EuclidGeom.Collinear A B C) :
                    theorem EuclidGeom.odist_eq_odist_of_parallel' {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (ray : EuclidGeom.Ray P) [bnea : EuclidGeom.PtNe B A] (para : EuclidGeom.Parallel (SEG_nd A B) ray) :
                    theorem EuclidGeom.odist_eq_odist_iff_parallel_ne {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.DirFig α P] (A : P) (B : P) (df : α) [bnea : EuclidGeom.PtNe B A] :
                    theorem EuclidGeom.wedge_eq_wedge_iff_parallel_of_ne_ne {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) (D : P) [bnea : EuclidGeom.PtNe B A] [dnec : EuclidGeom.PtNe D C] :
                    EuclidGeom.Parallel (SEG_nd A B) (SEG_nd C D) EuclidGeom.wedge A B C = EuclidGeom.wedge A B D
                    theorem EuclidGeom.oarea_eq_oarea_iff_parallel_ne {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) (D : P) [bnea : EuclidGeom.PtNe B A] [dnec : EuclidGeom.PtNe D C] :
                    EuclidGeom.Parallel (SEG_nd A B) (SEG_nd C D) EuclidGeom.oarea A B C = EuclidGeom.oarea A B D
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        theorem EuclidGeom.LiesOnLeft_of_ang_pos {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (ray : EuclidGeom.Ray P) [ne : EuclidGeom.PtNe A ray.source] (h : { source := ray.source, dir₁ := ray.toDir, dir₂ := (RAY ray.source A).toDir }.IsPos) :
                        theorem EuclidGeom.SB_class {a : } {b : } (apos : a > 0) (bneg : b < 0) :
                        a * b < 0
                        theorem EuclidGeom.LiesOnRight_of_ang_neg {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (ray : EuclidGeom.Ray P) [ne : EuclidGeom.PtNe A ray.source] (h : { source := ray.source, dir₁ := ray.toDir, dir₂ := (RAY ray.source A).toDir }.IsNeg) :
                        theorem EuclidGeom.LiesOnSameSide'_of_toLine_eq_toLine' {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (ray : EuclidGeom.Ray P) (ray' : EuclidGeom.Ray P) (h : ray.toLine = ray'.toLine) :
                        theorem EuclidGeom.LiesOnSameSide'_of_toLine_eq_toLine {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (ray : EuclidGeom.Ray P) (ray' : EuclidGeom.Ray P) (h : ray.toLine = ray'.toLine) :
                        theorem EuclidGeom.LiesOnOppositeSide'_of_toLine_eq_toLine' {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (ray : EuclidGeom.Ray P) (ray' : EuclidGeom.Ray P) (h : ray.toLine = ray'.toLine) :
                        theorem EuclidGeom.LiesOnOppositeSide'_of_toLine_eq_toLine {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (ray : EuclidGeom.Ray P) (ray' : EuclidGeom.Ray P) (h : ray.toLine = ray'.toLine) :
                        def EuclidGeom.IsOnSameSide {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.ProjFig α P] (A : P) (B : P) (l : α) :
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          def EuclidGeom.IsOnOppositeSide {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.ProjFig α P] (A : P) (B : P) (l : α) :
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            theorem EuclidGeom.IsOnSameSide_trans {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.ProjFig α P] (A : P) (B : P) (C : P) (l : α) (h₁ : EuclidGeom.IsOnSameSide A B l) (h₂ : EuclidGeom.IsOnSameSide B C l) :
                            theorem EuclidGeom.not_collinear_of_IsOnSameSide {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) (D : P) [bnea : EuclidGeom.PtNe B A] (h : EuclidGeom.IsOnSameSide C D (RAY A B)) :
                            theorem EuclidGeom.ne_of_not_lies_on {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.ProjFig α P] {A : P} {B : P} (l : α) (ha : EuclidGeom.lies_on A l) (hb : ¬EuclidGeom.lies_on B l) :
                            B A
                            theorem EuclidGeom.same_side_of_line_passing_source {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) (l : EuclidGeom.Line P) (ha : EuclidGeom.lies_on A l) (hb : ¬EuclidGeom.lies_on B l) (hc : EuclidGeom.lies_int C (RAY A B (_ : B A))) :
                            theorem EuclidGeom.L_of_vertices_LL {P : Type u_1} [EuclidGeom.EuclideanPlane P] {ray : EuclidGeom.Ray P} {A : P} {B : P} {C : P} (al : EuclidGeom.IsOnLeftSide A ray) (bl : EuclidGeom.IsOnLeftSide B ray) (c_on : EuclidGeom.lies_on C { source := A, target := B }) :
                            theorem EuclidGeom.IsOnSameSide_of_vertices_SameSide' {P : Type u_1} [EuclidGeom.EuclideanPlane P] {A : P} {B : P} {C : P} {l : EuclidGeom.Line P} (h : EuclidGeom.IsOnSameSide A B l) (c_on : EuclidGeom.lies_on C { source := A, target := B }) :
                            theorem EuclidGeom.IsOnSameSide_of_vertices_SameSide {P : Type u_1} [EuclidGeom.EuclideanPlane P] {α : Type u_2} [EuclidGeom.ProjFig α P] {A : P} {B : P} {C : P} {l : α} (h : EuclidGeom.IsOnSameSide A B l) (c_on : EuclidGeom.lies_on C { source := A, target := B }) :
                            theorem EuclidGeom.not_IsOnSameSide_of_exist_inx {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (C : P) (l : EuclidGeom.Line P) (h : EuclidGeom.is_inx C { source := A, target := B } l) :
                            theorem EuclidGeom.exist_inx_int_of_IsOnOppositeSide {P : Type u_1} [EuclidGeom.EuclideanPlane P] (A : P) (B : P) (l : EuclidGeom.Line P) (h : EuclidGeom.IsOnOppositeSide A B l) :
                            ∃ (C : P), EuclidGeom.is_inx C { source := A, target := B } l EuclidGeom.lies_int C { source := A, target := B }
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                theorem EuclidGeom.intersect_of_ray_on_left_iff {P : Type u_1} [EuclidGeom.EuclideanPlane P] (ray₁ : EuclidGeom.Ray P) (ray₂ : EuclidGeom.Ray P) (h : ray₂.source ray₁.source) :
                                let ray₀ := RAY ray₁.source ray₂.source h; 0 < (EuclidGeom.Angle.mk_two_ray_of_eq_source ray₀ ray₁ (_ : ray₀.source = ray₀.source)).value.toReal (EuclidGeom.Angle.mk_two_ray_of_eq_source ray₀ ray₁ (_ : ray₀.source = ray₀.source)).value.toReal < (EuclidGeom.Angle.mk_two_ray_of_eq_source ray₀ ray₂ (_ : ray₀.source = ray₂.source)).value.toReal (EuclidGeom.Angle.mk_two_ray_of_eq_source ray₀ ray₂ (_ : ray₀.source = ray₂.source)).value.toReal < Real.pi ∃ (A : P), EuclidGeom.lies_on A ray₁ EuclidGeom.lies_on A ray₂ EuclidGeom.IsOnLeftSide A ray₀
                                theorem EuclidGeom.SB_simp (a : ) (b : ) (h : b 0) :
                                a + -a / b * b = 0
                                theorem EuclidGeom.exist_inx_ray_ray_of_ang_pos_pos_gt {P : Type u_1} [EuclidGeom.EuclideanPlane P] (ray₁ : EuclidGeom.Ray P) (ray₂ : EuclidGeom.Ray P) [ne : EuclidGeom.PtNe ray₁.source ray₂.source] (h₁ : { source := ray₁.source, dir₁ := (SEG_nd ray₁.source ray₂.source).toDir, dir₂ := ray₁.toDir }.IsPos) (h₂ : { source := ray₂.source, dir₁ := (SEG_nd ray₁.source ray₂.source).toDir, dir₂ := ray₂.toDir }.IsPos) (gt : ({ source := ray₂.source, dir₁ := (SEG_nd ray₁.source ray₂.source).toDir, dir₂ := ray₂.toDir }.value - { source := ray₁.source, dir₁ := (SEG_nd ray₁.source ray₂.source).toDir, dir₂ := ray₁.toDir }.value).IsPos) :
                                ∃ (C : P), EuclidGeom.is_inx C ray₁ ray₂
                                theorem EuclidGeom.exist_inx_ray_ray_of_ang_neg_neg_lt {P : Type u_1} [EuclidGeom.EuclideanPlane P] (ray₁ : EuclidGeom.Ray P) (ray₂ : EuclidGeom.Ray P) [ne : EuclidGeom.PtNe ray₁.source ray₂.source] (h₁ : { source := ray₁.source, dir₁ := (SEG_nd ray₁.source ray₂.source).toDir, dir₂ := ray₁.toDir }.IsNeg) (h₂ : { source := ray₂.source, dir₁ := (SEG_nd ray₁.source ray₂.source).toDir, dir₂ := ray₂.toDir }.IsNeg) (lt : ({ source := ray₂.source, dir₁ := (SEG_nd ray₁.source ray₂.source).toDir, dir₂ := ray₂.toDir }.value - { source := ray₁.source, dir₁ := (SEG_nd ray₁.source ray₂.source).toDir, dir₂ := ray₁.toDir }.value).IsNeg) :
                                ∃ (C : P), EuclidGeom.is_inx C ray₁ ray₂