Definition Qhomographic_Qpositive_to_Q (a b c d : Z) 
  (p : Qpositive) (H_hsign : Qhomographic_sg_denom_nonzero c d p) : Q.Inductive Qhomographic_denom_nonzero : Z -> Z -> Q -> Prop :=
  | Qhomographicok0 :
      forall (c d : Z) (s : Q),
      s = Zero -> d <> 0%Z -> Qhomographic_denom_nonzero c d s
  | Qhomographicok1 :
      forall (c d : Z) (s : Q) (p : Qpositive),
      s = Qpos p ->
      Qhomographic_sg_denom_nonzero c d p -> Qhomographic_denom_nonzero c d s
  | Qhomographicok2 :
      forall (c d : Z) (s : Q) (p : Qpositive),
      s = Qneg p ->
      Qhomographic_sg_denom_nonzero (- c) d p ->
      Qhomographic_denom_nonzero c d s.Inductive Qhomographic_denom_nonzero : Z -> Z -> Q -> Prop :=
  | Qhomographicok0 :
      forall (c d : Z) (s : Q),
      s = Zero -> d <> 0%Z -> Qhomographic_denom_nonzero c d s
  | Qhomographicok1 :
      forall (c d : Z) (s : Q) (p : Qpositive),
      s = Qpos p ->
      Qhomographic_sg_denom_nonzero c d p -> Qhomographic_denom_nonzero c d s
  | Qhomographicok2 :
      forall (c d : Z) (s : Q) (p : Qpositive),
      s = Qneg p ->
      Qhomographic_sg_denom_nonzero (- c) d p ->
      Qhomographic_denom_nonzero c d s.Inductive Qhomographic_denom_nonzero : Z -> Z -> Q -> Prop :=
  | Qhomographicok0 :
      forall (c d : Z) (s : Q),
      s = Zero -> d <> 0%Z -> Qhomographic_denom_nonzero c d s
  | Qhomographicok1 :
      forall (c d : Z) (s : Q) (p : Qpositive),
      s = Qpos p ->
      Qhomographic_sg_denom_nonzero c d p -> Qhomographic_denom_nonzero c d s
  | Qhomographicok2 :
      forall (c d : Z) (s : Q) (p : Qpositive),
      s = Qneg p ->
      Qhomographic_sg_denom_nonzero (- c) d p ->
      Qhomographic_denom_nonzero c d s.Inductive Qhomographic_denom_nonzero : Z -> Z -> Q -> Prop :=
  | Qhomographicok0 :
      forall (c d : Z) (s : Q),
      s = Zero -> d <> 0%Z -> Qhomographic_denom_nonzero c d s
  | Qhomographicok1 :
      forall (c d : Z) (s : Q) (p : Qpositive),
      s = Qpos p ->
      Qhomographic_sg_denom_nonzero c d p -> Qhomographic_denom_nonzero c d s
  | Qhomographicok2 :
      forall (c d : Z) (s : Q) (p : Qpositive),
      s = Qneg p ->
      Qhomographic_sg_denom_nonzero (- c) d p ->
      Qhomographic_denom_nonzero c d s.

(* Specifications: *)
Lemma Qhomographic_denom_nonzero_0 : forall c d : Z, Qhomographic_denom_nonzero c d Zero -> d <> 0%Z.
Lemma Qhomographic_denom_nonzero_1 : forall (c d : Z) (p : Qpositive), Qhomographic_denom_nonzero c d (Qpos p) -> Qhomographic_sg_denom_nonzero c d p.
Lemma Qhomographic_denom_nonzero_2 : forall (c d : Z) (p : Qpositive), Qhomographic_denom_nonzero c d (Qneg p) -> Qhomographic_sg_denom_nonzero (- c) d p.