Definition qnew_a (a b c d e f g h : Z) (p1 p2 : Qpositive)
  (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2) :=
  fst
    (fst
       (fst
          (snd
             (Qquadratic_sign a b c d e f g h p1 p2
                H_Qquadratic_sg_denom_nonzero)))).Definition qnew_b (a b c d e f g h : Z) (p1 p2 : Qpositive)
  (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2) :=
  fst
    (snd
       (fst
          (fst
             (snd
                (Qquadratic_sign a b c d e f g h p1 p2
                   H_Qquadratic_sg_denom_nonzero))))).Definition qnew_c (a b c d e f g h : Z) (p1 p2 : Qpositive)
  (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2) :=
  fst
    (snd
       (snd
          (fst
             (fst
                (snd
                   (Qquadratic_sign a b c d e f g h p1 p2
                      H_Qquadratic_sg_denom_nonzero)))))).Definition qnew_d (a b c d e f g h : Z) (p1 p2 : Qpositive)
  (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2) :=
  snd
    (snd
       (snd
          (fst
             (fst
                (snd
                   (Qquadratic_sign a b c d e f g h p1 p2
                      H_Qquadratic_sg_denom_nonzero)))))).Definition qnew_e (a b c d e f g h : Z) (p1 p2 : Qpositive)
  (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2) :=
  fst
    (snd
       (fst
          (snd
             (Qquadratic_sign a b c d e f g h p1 p2
                H_Qquadratic_sg_denom_nonzero)))).Definition qnew_f (a b c d e f g h : Z) (p1 p2 : Qpositive)
  (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2) :=
  fst
    (snd
       (snd
          (fst
             (snd
                (Qquadratic_sign a b c d e f g h p1 p2
                   H_Qquadratic_sg_denom_nonzero))))).Definition qnew_g (a b c d e f g h : Z) (p1 p2 : Qpositive)
  (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2) :=
  fst
    (snd
       (snd
          (snd
             (fst
                (snd
                   (Qquadratic_sign a b c d e f g h p1 p2
                      H_Qquadratic_sg_denom_nonzero)))))).Definition qnew_h (a b c d e f g h : Z) (p1 p2 : Qpositive)
  (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2) :=
  snd
    (snd
       (snd
          (snd
             (fst
                (snd
                   (Qquadratic_sign a b c d e f g h p1 p2
                      H_Qquadratic_sg_denom_nonzero)))))).Definition qnew_p1 (a b c d e f g h : Z) (p1 p2 : Qpositive)
  (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2) :=
  fst
    (snd
       (snd
          (Qquadratic_sign a b c d e f g h p1 p2
             H_Qquadratic_sg_denom_nonzero))).Definition qnew_p2 (a b c d e f g h : Z) (p1 p2 : Qpositive)
  (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2) :=
  snd
    (snd
       (snd
          (Qquadratic_sign a b c d e f g h p1 p2
             H_Qquadratic_sg_denom_nonzero))).

(* Specifications: *)
Lemma Qquadratic_Qpositive_to_Q_quadraticAcc_pos_1 : forall (a b c d e f g h : Z) (p1 p2 : Qpositive) (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2), ~ same_ratio a b c d e f g h -> q_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero = 1%Z -> Z.sgn (qnew_a a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_b a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_c a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_d a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) = 1%Z -> quadraticAcc (qnew_a a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_b a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_c a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_d a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_e a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_f a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_g a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_h a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_p1 a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_p2 a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero).
Lemma Qquadratic_Qpositive_to_Q_quadraticAcc_pos_2 : forall (a b c d e f g h : Z) (p1 p2 : Qpositive) (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2), ~ same_ratio a b c d e f g h -> q_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero = 1%Z -> Z.sgn (qnew_a a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_b a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_c a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_d a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) = (-1)%Z -> quadraticAcc (- qnew_a a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_b a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_c a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_d a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_e a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_f a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_g a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_h a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_p1 a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_p2 a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero).
Lemma Qquadratic_Qpositive_to_Q_quadraticAcc_neg_1 : forall (a b c d e f g h : Z) (p1 p2 : Qpositive) (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2), ~ same_ratio a b c d e f g h -> q_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero = (-1)%Z -> Z.sgn (qnew_a a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_b a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_c a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_d a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) = 1%Z -> quadraticAcc (qnew_a a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_b a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_c a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_d a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_e a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_f a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_g a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_h a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_p1 a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_p2 a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero).
Lemma Qquadratic_Qpositive_to_Q_quadraticAcc_neg_2 : forall (a b c d e f g h : Z) (p1 p2 : Qpositive) (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2), ~ same_ratio a b c d e f g h -> q_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero = (-1)%Z -> Z.sgn (qnew_a a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_b a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_c a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero + qnew_d a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) = (-1)%Z -> quadraticAcc (- qnew_a a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_b a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_c a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (- qnew_d a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_e a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_f a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_g a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_h a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_p1 a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero) (qnew_p2 a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero).