(a : Q(ℚ)) →
  (motive : Mathlib.Meta.NormNum.Result q(«$a») → Sort u_1) →
    (r : Mathlib.Meta.NormNum.Result q(«$a»)) →
      ((inst : Q(AddMonoidWithOne ℚ)) →
          (na : Q(ℕ)) →
            (pa : Q(Mathlib.Meta.NormNum.IsNat «$a» «$na»)) → motive (Mathlib.Meta.NormNum.Result'.isNat inst na pa)) →
        ((inst : Q(Ring ℚ)) →
            (na : Q(ℕ)) →
              (pa : Q(Mathlib.Meta.NormNum.IsInt «$a» (Int.negOfNat «$na»))) →
                motive (Mathlib.Meta.NormNum.Result'.isNegNat inst na pa)) →
          ((inst : Q(DivisionSemiring ℚ)) →
              (qa : ℚ) →
                (na da : Q(ℕ)) →
                  (pa : Q(Mathlib.Meta.NormNum.IsNNRat «$a» «$na» «$da»)) →
                    motive (Mathlib.Meta.NormNum.Result'.isNNRat inst qa na da pa)) →
            ((inst : Q(DivisionRing ℚ)) →
                (qa : ℚ) →
                  (na da : Q(ℕ)) →
                    (pa : Q(Mathlib.Meta.NormNum.IsRat «$a» (Int.negOfNat «$na») «$da»)) →
                      motive (Mathlib.Meta.NormNum.Result'.isNegNNRat inst qa na da pa)) →
              ((x : Mathlib.Meta.NormNum.Result q(«$a»)) → motive x) → motive r