{v : Lean.Level} →
  {M : Q(Type v)} →
    (iM : Q(CommGroupWithZero «$M»)) →
      (r : ℤ) →
        (x : Q(«$M»)) →
          (motive : (e : Q(«$M»)) × Q(Mathlib.Tactic.FieldSimp.zpow' «$x» «$r» = «$e») → Sort u_1) →
            (__discr : (e : Q(«$M»)) × Q(Mathlib.Tactic.FieldSimp.zpow' «$x» «$r» = «$e»)) →
              ((e : Q(«$M»)) → (pf : Q(Mathlib.Tactic.FieldSimp.zpow' «$x» «$r» = «$e»)) → motive ⟨e, pf⟩) →
                motive __discr