(* To define exponential over relative number, we simply do 
   a case analysis on the sign of the number *)
 
Definition powerRZ (e : R) (n : BinInt.Z) :=
  match n with
  | BinInt.Z0 => 1%R
  | BinInt.Zpos p => (e ^ BinPos.nat_of_P p)%R
  | BinInt.Zneg p => (/ e ^ BinPos.nat_of_P p)%R
  end.

Theorem Rpow_eq_inv : forall (r : R) (p q : BinInt.Z), r <> 0%R -> Rabs r <> 1%R -> powerRZ r p = powerRZ r q -> p = q.