rattac.
inversion H; clear H; subst.
arithNormalize.
rewrite mult_0_r.
rewrite plus_0_r.
f_equal.
f_equal.
rewrite <- mult_assoc.
rewrite <- mult_assoc.
rewrite mult_comm.
simpl.
trivial.
Qed.
(* ratInverse only works correctly when the number is positive *)
Definition ratInverse (r : Rat) :=
match r with
| RatIntro n d =>
match n with
| O => RatIntro d (pos (S O))
| S n' => RatIntro d (pos (S n'))
end
end.

(* Specifications: *)
Lemma ratInverse_prod_1 : forall r,
~ r == 0 ->
(ratInverse r) * r == 1.