Definition spec_q (a b c d e f g h : Z) (q1 q2 : Q) : Q :=
  Qmult
    (Qplus (Qplus (Qplus (Qmult (Qmult a q1) q2) (Qmult b q1)) (Qmult c q2))
       d)
    (Qinv
       (Qplus
          (Qplus (Qplus (Qmult (Qmult e q1) q2) (Qmult f q1)) (Qmult g q2)) h)).Definition spec_Qquadratic_Qpositive_to_Q (a b c d e f g h : Z)
  (p1 p2 : Qpositive) : Q :=
  Qmult
    (Qplus
       (Qplus
          (Qplus (Qmult (Qmult a (Qpos p1)) (Qpos p2)) (Qmult b (Qpos p1)))
          (Qmult c (Qpos p2))) d)
    (Qinv
       (Qplus
          (Qplus
             (Qplus (Qmult (Qmult e (Qpos p1)) (Qpos p2)) (Qmult f (Qpos p1)))
             (Qmult g (Qpos p2))) h)).(* Here we should expect that ap1p2+bp1+cp2+d > 0 and ep1p1+fp1+gp2+h > 0, this follow - hopefully - from quadraticAcc *)
Definition spec_Qquadratic_Qpositive_to_Qpositive2 
  (a b c d e f g h : Z) (p1 p2 : Qpositive) : Qpositive :=
  Qpositive_mult
    (Q_tail
       (Qplus
          (Qplus
             (Qplus (Qmult (Qmult a (Qpos p1)) (Qpos p2)) (Qmult b (Qpos p1)))
             (Qmult c (Qpos p2))) d))
    (Qpositive_inv
       (Q_tail
          (Qplus
             (Qplus
                (Qplus (Qmult (Qmult e (Qpos p1)) (Qpos p2))
                   (Qmult f (Qpos p1))) (Qmult g (Qpos p2))) h))).

Lemma spec_Qquadratic_Qpositive_to_Qpositive2_dL_dL : forall (a b c d e f g h : Z) (p1 p2 : Qpositive), Qplus (Qplus (Qplus (Qmult (Qmult (Qplus (Qplus (Qplus a b) c) d) (Qpos p1)) (Qpos p2)) (Qmult (Qplus b d) (Qpos p1))) (Qmult (Qplus c d) (Qpos p2))) d <> Zero -> Qplus (Qplus (Qplus (Qmult (Qmult (Qplus (Qplus (Qplus e f) g) h) (Qpos p1)) (Qpos p2)) (Qmult (Qplus f h) (Qpos p1))) (Qmult (Qplus g h) (Qpos p2))) h <> Zero -> spec_Qquadratic_Qpositive_to_Qpositive2 a b c d e f g h (dL p1) (dL p2) = spec_Qquadratic_Qpositive_to_Qpositive2 (a + b + c + d) (b + d) (c + d) d (e + f + g + h) (f + h) (g + h) h p1 p2.