Documentation

EuclideanGeometry.Foundation.Axiom.Triangle.Congruence

  • intro :: (
    • edge₁ : tr₁.edge₁.length = tr₂.edge₁.length
    • edge₂ : tr₁.edge₂.length = tr₂.edge₂.length
    • edge₃ : tr₁.edge₃.length = tr₂.edge₃.length
    • angle₁ : if h : tr₁.IsND tr₂.IsND then { val := tr₁, property := (_ : tr₁.IsND) }.angle₁.value = { val := tr₂, property := (_ : tr₂.IsND) }.angle₁.value else True
    • angle₂ : if h : tr₁.IsND tr₂.IsND then { val := tr₁, property := (_ : tr₁.IsND) }.angle₂.value = { val := tr₂, property := (_ : tr₂.IsND) }.angle₂.value else True
    • angle₃ : if h : tr₁.IsND tr₂.IsND then { val := tr₁, property := (_ : tr₁.IsND) }.angle₃.value = { val := tr₂, property := (_ : tr₂.IsND) }.angle₃.value else True
  • )
Instances For
    theorem EuclidGeom.Triangle.IsCongr.nd_of_nd {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (h : EuclidGeom.Triangle.IsCongr tr₁ tr₂) (nd : tr₁.IsND) :
    tr₂.IsND
    Equations
    • One or more equations did not get rendered due to their size.
    theorem EuclidGeom.Triangle.IsCongr.perm {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (h : EuclidGeom.Triangle.IsCongr tr₁ tr₂) :
    EuclidGeom.Triangle.IsCongr tr₁.perm_vertices tr₂.perm_vertices
    theorem EuclidGeom.Triangle.IsCongr.oarea {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (h : EuclidGeom.Triangle.IsCongr tr₁ tr₂) :
    tr₁.oarea = tr₂.oarea
    theorem EuclidGeom.Triangle.IsCongr.area {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (h : EuclidGeom.Triangle.IsCongr tr₁ tr₂) :
    tr₁.area = tr₂.area
    • intro :: (
      • edge₁ : tr₁.edge₁.length = tr₂.edge₁.length
      • edge₂ : tr₁.edge₂.length = tr₂.edge₂.length
      • edge₃ : tr₁.edge₃.length = tr₂.edge₃.length
      • angle₁ : if h : tr₁.IsND tr₂.IsND then { val := tr₁, property := (_ : tr₁.IsND) }.angle₁.value = -{ val := tr₂, property := (_ : tr₂.IsND) }.angle₁.value else True
      • angle₂ : if h : tr₁.IsND tr₂.IsND then { val := tr₁, property := (_ : tr₁.IsND) }.angle₂.value = -{ val := tr₂, property := (_ : tr₂.IsND) }.angle₂.value else True
      • angle₃ : if h : tr₁.IsND tr₂.IsND then { val := tr₁, property := (_ : tr₁.IsND) }.angle₃.value = -{ val := tr₂, property := (_ : tr₂.IsND) }.angle₃.value else True
    • )
    Instances For
      theorem EuclidGeom.Triangle.IsACongr.nd_of_nd {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (h : EuclidGeom.Triangle.IsACongr tr₁ tr₂) (nd : tr₁.IsND) :
      tr₂.IsND
      Equations
      • One or more equations did not get rendered due to their size.
      theorem EuclidGeom.Triangle.IsACongr.perm {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (h : EuclidGeom.Triangle.IsACongr tr₁ tr₂) :
      EuclidGeom.Triangle.IsACongr tr₁.perm_vertices tr₂.perm_vertices
      theorem EuclidGeom.Triangle.IsACongr.oarea {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (h : EuclidGeom.Triangle.IsACongr tr₁ tr₂) :
      tr₁.oarea = -tr₂.oarea
      theorem EuclidGeom.Triangle.IsACongr.area {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (h : EuclidGeom.Triangle.IsACongr tr₁ tr₂) :
      tr₁.area = tr₂.area
      • intro :: (
        • edge₁ : tr_nd₁.edge₁.length = tr_nd₂.edge₁.length
        • edge₂ : tr_nd₁.edge₂.length = tr_nd₂.edge₂.length
        • edge₃ : tr_nd₁.edge₃.length = tr_nd₂.edge₃.length
        • angle₁ : tr_nd₁.angle₁.value = tr_nd₂.angle₁.value
        • angle₂ : tr_nd₁.angle₂.value = tr_nd₂.angle₂.value
        • angle₃ : tr_nd₁.angle₃.value = tr_nd₂.angle₃.value
      • )
      Instances For
        theorem EuclidGeom.TriangleND.IsCongr.trans {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} {tr_nd₃ : EuclidGeom.TriangleND P} (h₁ : EuclidGeom.TriangleND.IsCongr tr_nd₁ tr_nd₂) (h₂ : EuclidGeom.TriangleND.IsCongr tr_nd₂ tr_nd₃) :
        Equations
        • One or more equations did not get rendered due to their size.
        theorem EuclidGeom.TriangleND.IsCongr.is_cclock_of_cclock {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (h : EuclidGeom.TriangleND.IsCongr tr_nd₁ tr_nd₂) (cc : tr_nd₁.is_cclock) :
        tr_nd₂.is_cclock
        theorem EuclidGeom.TriangleND.IsCongr.oarea {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (h : EuclidGeom.TriangleND.IsCongr tr_nd₁ tr_nd₂) :
        tr_nd₁.oarea = tr_nd₂.oarea
        theorem EuclidGeom.TriangleND.IsCongr.area {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (h : EuclidGeom.TriangleND.IsCongr tr_nd₁ tr_nd₂) :
        tr_nd₁.area = tr_nd₂.area
        theorem EuclidGeom.TriangleND.IsCongr.unique_of_eq_eq {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (h : EuclidGeom.TriangleND.IsCongr tr_nd₁ tr_nd₂) (p₁ : tr_nd₁.point₁ = tr_nd₂.point₁) (p₂ : tr_nd₁.point₂ = tr_nd₂.point₂) :
        tr_nd₁.point₃ = tr_nd₂.point₃
        • intro :: (
          • edge₁ : tr_nd₁.edge₁.length = tr_nd₂.edge₁.length
          • edge₂ : tr_nd₁.edge₂.length = tr_nd₂.edge₂.length
          • edge₃ : tr_nd₁.edge₃.length = tr_nd₂.edge₃.length
          • angle₁ : tr_nd₁.angle₁.value = -tr_nd₂.angle₁.value
          • angle₂ : tr_nd₁.angle₂.value = -tr_nd₂.angle₂.value
          • angle₃ : tr_nd₁.angle₃.value = -tr_nd₂.angle₃.value
        • )
        Instances For
          theorem EuclidGeom.TriangleND.IsACongr.not_cclock_of_cclock {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (h : EuclidGeom.TriangleND.IsACongr tr_nd₁ tr_nd₂) (cc : tr_nd₁.is_cclock) :
          ¬tr_nd₂.is_cclock
          Equations
          • One or more equations did not get rendered due to their size.
          theorem EuclidGeom.TriangleND.IsACongr.oarea {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (h : EuclidGeom.TriangleND.IsACongr tr_nd₁ tr_nd₂) :
          tr_nd₁.oarea = -tr_nd₂.oarea
          theorem EuclidGeom.TriangleND.IsACongr.area {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (h : EuclidGeom.TriangleND.IsACongr tr_nd₁ tr_nd₂) :
          tr_nd₁.area = tr_nd₂.area
          theorem EuclidGeom.TriangleND.congr_of_congr {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr : EuclidGeom.Triangle P} {tr_nd : EuclidGeom.TriangleND P} (h : EuclidGeom.HasCongr.congr (tr_nd) tr) :
          EuclidGeom.HasCongr.congr tr_nd { val := tr, property := (_ : tr.IsND) }
          theorem EuclidGeom.Triangle.IsCongr.not_nd_of_not_nd {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (h : EuclidGeom.HasCongr.congr tr₁ tr₂) (nnd : ¬tr₁.IsND) :
          ¬tr₂.IsND
          theorem EuclidGeom.Triangle.IsACongr.not_nd_of_not_nd {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (h : EuclidGeom.Triangle.IsACongr tr₁ tr₂) (nnd : ¬tr₁.IsND) :
          ¬tr₂.IsND
          theorem EuclidGeom.TriangleND.cosine_eq_of_SSS {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (e₁ : (tr_nd₁).edge₁.length = (tr_nd₂).edge₁.length) (e₂ : (tr_nd₁).edge₂.length = (tr_nd₂).edge₂.length) (e₃ : (tr_nd₁).edge₃.length = (tr_nd₂).edge₃.length) :
          EuclidGeom.AngValue.cos tr_nd₁.angle₁.value = EuclidGeom.AngValue.cos tr_nd₂.angle₁.value
          theorem EuclidGeom.TriangleND.congr_of_SSS_of_eq_orientation {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (e₁ : tr_nd₁.edge₁.length = tr_nd₂.edge₁.length) (e₂ : tr_nd₁.edge₂.length = tr_nd₂.edge₂.length) (e₃ : tr_nd₁.edge₃.length = tr_nd₂.edge₃.length) (c : tr_nd₁.is_cclock tr_nd₂.is_cclock) :
          EuclidGeom.HasCongr.congr tr_nd₁ tr_nd₂
          theorem EuclidGeom.TriangleND.acongr_of_SSS_of_ne_orientation {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (e₁ : tr_nd₁.edge₁.length = tr_nd₂.edge₁.length) (e₂ : tr_nd₁.edge₂.length = tr_nd₂.edge₂.length) (e₃ : tr_nd₁.edge₃.length = tr_nd₂.edge₃.length) (c : tr_nd₁.is_cclock = ¬tr_nd₂.is_cclock) :
          EuclidGeom.HasACongr.acongr tr_nd₁ tr_nd₂
          theorem EuclidGeom.TriangleND.congr_or_acongr_of_SSS {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (e₁ : tr_nd₁.edge₁.length = tr_nd₂.edge₁.length) (e₂ : tr_nd₁.edge₂.length = tr_nd₂.edge₂.length) (e₃ : tr_nd₁.edge₃.length = tr_nd₂.edge₃.length) :
          EuclidGeom.HasCongr.congr tr_nd₁ tr_nd₂ EuclidGeom.HasACongr.acongr tr_nd₁ tr_nd₂
          theorem EuclidGeom.TriangleND.congr_of_SAS {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (e₂ : tr_nd₁.edge₂.length = tr_nd₂.edge₂.length) (a₁ : tr_nd₁.angle₁.value = tr_nd₂.angle₁.value) (e₃ : tr_nd₁.edge₃.length = tr_nd₂.edge₃.length) :
          EuclidGeom.HasCongr.congr tr_nd₁ tr_nd₂
          theorem EuclidGeom.TriangleND.acongr_of_SAS {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (e₂ : tr_nd₁.edge₂.length = tr_nd₂.edge₂.length) (a₁ : tr_nd₁.angle₁.value = -tr_nd₂.angle₁.value) (e₃ : tr_nd₁.edge₃.length = tr_nd₂.edge₃.length) :
          EuclidGeom.HasACongr.acongr tr_nd₁ tr_nd₂
          theorem EuclidGeom.TriangleND.congr_of_ASA {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (a₂ : tr_nd₁.angle₂.value = tr_nd₂.angle₂.value) (e₁ : tr_nd₁.edge₁.length = tr_nd₂.edge₁.length) (a₃ : tr_nd₁.angle₃.value = tr_nd₂.angle₃.value) :
          EuclidGeom.HasCongr.congr tr_nd₁ tr_nd₂
          theorem EuclidGeom.TriangleND.acongr_of_ASA {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (a₂ : tr_nd₁.angle₂.value = -tr_nd₂.angle₂.value) (e₁ : tr_nd₁.edge₁.length = tr_nd₂.edge₁.length) (a₃ : tr_nd₁.angle₃.value = -tr_nd₂.angle₃.value) :
          EuclidGeom.HasACongr.acongr tr_nd₁ tr_nd₂
          theorem EuclidGeom.TriangleND.congr_of_AAS {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (a₁ : tr_nd₁.angle₁.value = tr_nd₂.angle₁.value) (a₂ : tr_nd₁.angle₂.value = tr_nd₂.angle₂.value) (e₃ : tr_nd₁.edge₁.length = tr_nd₂.edge₁.length) :
          EuclidGeom.HasCongr.congr tr_nd₁ tr_nd₂
          theorem EuclidGeom.TriangleND.acongr_of_AAS {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (a₁ : tr_nd₁.angle₁.value = -tr_nd₂.angle₁.value) (a₂ : tr_nd₁.angle₂.value = -tr_nd₂.angle₂.value) (e₁ : tr_nd₁.edge₁.length = tr_nd₂.edge₁.length) :
          EuclidGeom.HasACongr.acongr tr_nd₁ tr_nd₂
          theorem EuclidGeom.TriangleND.congr_of_HL {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (h₁ : tr_nd₁.angle₁.value = ∠[Real.pi / 2]) (h₂ : tr_nd₂.angle₁.value = ∠[Real.pi / 2]) (e₁ : tr_nd₁.edge₁.length = tr_nd₂.edge₁.length) (e₂ : tr_nd₁.edge₂.length = tr_nd₂.edge₂.length) :
          EuclidGeom.HasCongr.congr tr_nd₁ tr_nd₂
          theorem EuclidGeom.TriangleND.acongr_of_HL {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr_nd₁ : EuclidGeom.TriangleND P} {tr_nd₂ : EuclidGeom.TriangleND P} (h₁ : tr_nd₁.angle₁.value = ∠[Real.pi / 2]) (h₂ : tr_nd₂.angle₁.value = ∠[-Real.pi / 2]) (e₁ : tr_nd₁.edge₁.length = tr_nd₂.edge₁.length) (e₂ : tr_nd₁.edge₂.length = tr_nd₂.edge₂.length) :
          EuclidGeom.HasACongr.acongr tr_nd₁ tr_nd₂
          theorem EuclidGeom.Triangle.congr_of_SSS_of_left_not_nd {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (e₁ : tr₁.edge₁.length = tr₂.edge₁.length) (e₂ : tr₁.edge₂.length = tr₂.edge₂.length) (e₃ : tr₁.edge₃.length = tr₂.edge₃.length) (nnd : ¬tr₁.IsND) :
          theorem EuclidGeom.Triangle.congr_of_SSS_of_right_not_nd {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (e₁ : tr₁.edge₁.length = tr₂.edge₁.length) (e₂ : tr₁.edge₂.length = tr₂.edge₂.length) (e₃ : tr₁.edge₃.length = tr₂.edge₃.length) (nnd : ¬tr₂.IsND) :
          theorem EuclidGeom.Triangle.acongr_of_SSS_of_left_not_nd {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (e₁ : tr₁.edge₁.length = tr₂.edge₁.length) (e₂ : tr₁.edge₂.length = tr₂.edge₂.length) (e₃ : tr₁.edge₃.length = tr₂.edge₃.length) (nnd : ¬tr₁.IsND) :
          theorem EuclidGeom.Triangle.acongr_of_SSS_of_right_not_nd {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (e₁ : tr₁.edge₁.length = tr₂.edge₁.length) (e₂ : tr₁.edge₂.length = tr₂.edge₂.length) (e₃ : tr₁.edge₃.length = tr₂.edge₃.length) (nnd : ¬tr₂.IsND) :
          theorem EuclidGeom.Triangle.congr_or_acongr_of_SSS {P : Type u_1} [EuclidGeom.EuclideanPlane P] {tr₁ : EuclidGeom.Triangle P} {tr₂ : EuclidGeom.Triangle P} (e₁ : tr₁.edge₁.length = tr₂.edge₁.length) (e₂ : tr₁.edge₂.length = tr₂.edge₂.length) (e₃ : tr₁.edge₃.length = tr₂.edge₃.length) :