{α : Type u_1} →
  (motive : FreeMagma α → FreeMagma α → Sort u_2) →
    (x x_1 : FreeMagma α) →
      ((a b : α) → motive (FreeMagma.of a) (FreeMagma.of b)) →
        ((a : α) → (a_1 a_2 : FreeMagma α) → motive (FreeMagma.of a) (a_1.mul a_2)) →
          ((a a_1 : FreeMagma α) → (a_2 : α) → motive (a.mul a_1) (FreeMagma.of a_2)) →
            ((a a_1 b b_1 : FreeMagma α) → motive (a.mul a_1) (b.mul b_1)) → motive x x_1