∀ {M : Type u_1} [inst : Add M] {r : M → M → Prop} {motive : (a a_1 : M) → AddConGen.Rel r a a_1 → Prop},
  (∀ (x y : M) (a : r x y), motive x y ⋯) →
    (∀ (x : M), motive x x ⋯) →
      (∀ {x y : M} (a : AddConGen.Rel r x y), motive x y a → motive y x ⋯) →
        (∀ {x y z : M} (a : AddConGen.Rel r x y) (a_1 : AddConGen.Rel r y z),
            motive x y a → motive y z a_1 → motive x z ⋯) →
          (∀ {w x y z : M} (a : AddConGen.Rel r w x) (a_1 : AddConGen.Rel r y z),
              motive w x a → motive y z a_1 → motive (w + y) (x + z) ⋯) →
            ∀ {a a_1 : M} (t : AddConGen.Rel r a a_1), motive a a_1 t