Definition new_a (a b c d : Z) (p : Qpositive)
  (H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero c d p) :=
  fst
    (fst (snd (Qhomographic_sign a b c d p H_Qhomographic_sg_denom_nonzero))).Definition new_b (a b c d : Z) (p : Qpositive)
  (H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero c d p) :=
  fst
    (snd
       (fst
          (snd (Qhomographic_sign a b c d p H_Qhomographic_sg_denom_nonzero)))).Definition new_c (a b c d : Z) (p : Qpositive)
  (H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero c d p) :=
  fst
    (snd
       (snd
          (fst
             (snd
                (Qhomographic_sign a b c d p H_Qhomographic_sg_denom_nonzero))))).Definition new_d (a b c d : Z) (p : Qpositive)
  (H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero c d p) :=
  snd
    (snd
       (snd
          (fst
             (snd
                (Qhomographic_sign a b c d p H_Qhomographic_sg_denom_nonzero))))).Definition new_p (a b c d : Z) (p : Qpositive)
  (H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero c d p) :=
  snd (snd (Qhomographic_sign a b c d p H_Qhomographic_sg_denom_nonzero)).

(* Specifications: *)
Lemma Qhomographic_Qpositive_to_Q_homographicAcc_pos_1 : forall (a b c d : Z) (p : Qpositive) (H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero c d p), (a * d)%Z <> (b * c)%Z -> h_sign a b c d p H_Qhomographic_sg_denom_nonzero = 1%Z -> (0 < Z.sgn (new_a a b c d p H_Qhomographic_sg_denom_nonzero + new_b a b c d p H_Qhomographic_sg_denom_nonzero))%Z -> homographicAcc (new_a a b c d p H_Qhomographic_sg_denom_nonzero) (new_b a b c d p H_Qhomographic_sg_denom_nonzero) (new_c a b c d p H_Qhomographic_sg_denom_nonzero) (new_d a b c d p H_Qhomographic_sg_denom_nonzero) (new_p a b c d p H_Qhomographic_sg_denom_nonzero).
Lemma Qhomographic_Qpositive_to_Q_homographicAcc_pos_2 : forall (a b c d : Z) (p : Qpositive) (H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero c d p), (a * d)%Z <> (b * c)%Z -> h_sign a b c d p H_Qhomographic_sg_denom_nonzero = 1%Z -> (Z.sgn (new_a a b c d p H_Qhomographic_sg_denom_nonzero + new_b a b c d p H_Qhomographic_sg_denom_nonzero) <= 0)%Z -> homographicAcc (- new_a a b c d p H_Qhomographic_sg_denom_nonzero) (- new_b a b c d p H_Qhomographic_sg_denom_nonzero) (- new_c a b c d p H_Qhomographic_sg_denom_nonzero) (- new_d a b c d p H_Qhomographic_sg_denom_nonzero) (new_p a b c d p H_Qhomographic_sg_denom_nonzero).
Lemma Qhomographic_Qpositive_to_Q_homographicAcc_neg_1 : forall (a b c d : Z) (p : Qpositive) (H_hsign : Qhomographic_sg_denom_nonzero c d p), (a * d)%Z <> (b * c)%Z -> h_sign a b c d p H_hsign = (-1)%Z -> (Z.sgn (new_a a b c d p H_hsign + new_b a b c d p H_hsign) < 0)%Z -> homographicAcc (- new_a a b c d p H_hsign) (- new_b a b c d p H_hsign) (new_c a b c d p H_hsign) (new_d a b c d p H_hsign) (new_p a b c d p H_hsign).
Lemma Qhomographic_Qpositive_to_Q_homographicAcc_neg_2 : forall (a b c d : Z) (p : Qpositive) (H_hsign : Qhomographic_sg_denom_nonzero c d p), (a * d)%Z <> (b * c)%Z -> h_sign a b c d p H_hsign = (-1)%Z -> (0 <= Z.sgn (new_a a b c d p H_hsign + new_b a b c d p H_hsign))%Z -> homographicAcc (new_a a b c d p H_hsign) (new_b a b c d p H_hsign) (- new_c a b c d p H_hsign) (- new_d a b c d p H_hsign) (new_p a b c d p H_hsign).