{M : Type u_9} →
  {N : Type u_10} →
    [inst : Mul M] →
      [inst_1 : Mul N] →
        (toFun : M → N) →
          (invFun : N → M) →
            autoParam (Function.LeftInverse invFun toFun) Equiv.left_inv._autoParam →
              autoParam (Function.RightInverse invFun toFun) Equiv.right_inv._autoParam →
                (∀ (x y : M), toFun (x * y) = toFun x * toFun y) → M ≃* N