Inductive Qquadratic_sg_denom_nonzero :
Z -> Z -> Z -> Z -> Qpositive -> Qpositive -> Prop :=
| Qquadratic_signok0 :
forall (e f g h : Z) (p1 p2 : Qpositive),
p2 = One ->
Qhomographic_sg_denom_nonzero (e + f) (g + h) p1 ->
Qquadratic_sg_denom_nonzero e f g h p1 p2
| Qquadratic_signok0' :
forall (e f g h : Z) (p1 p2 : Qpositive),
p1 = One ->
Qhomographic_sg_denom_nonzero (e + g) (f + h) p2 ->
Qquadratic_sg_denom_nonzero e f g h p1 p2
| Qquadratic_signok1 :
forall (e f g h : Z) (p1 p2 : Qpositive),
Qquadratic_sg_denom_nonzero e (e + f)%Z (e + g)%Z
(e + f + g + h)%Z p1 p2 ->
Qquadratic_sg_denom_nonzero e f g h (nR p1) (nR p2)
| Qquadratic_signok2 :
forall (e f g h : Z) (p1 p2 : Qpositive),
Qquadratic_sg_denom_nonzero (e + f)%Z f (e + f + g + h)%Z
(f + h)%Z p1 p2 ->
Qquadratic_sg_denom_nonzero e f g h (nR p1) (dL p2)
| Qquadratic_signok3 :
forall (e f g h : Z) (p1 p2 : Qpositive),
Qquadratic_sg_denom_nonzero (e + g)%Z (e + f + g + h)%Z g
(g + h)%Z p1 p2 ->
Qquadratic_sg_denom_nonzero e f g h (dL p1) (nR p2)
| Qquadratic_signok4 :
forall (e f g h : Z) (p1 p2 : Qpositive),
Qquadratic_sg_denom_nonzero (e + f + g + h)%Z
(f + h)%Z (g + h)%Z h p1 p2 ->
Qquadratic_sg_denom_nonzero e f g h (dL p1) (dL p2).

(* Specifications: *)
Lemma Qquadratic_signok_0 :
forall (e f g h : Z) (p2 : Qpositive),
Qquadratic_sg_denom_nonzero e f g h One p2 ->
Qhomographic_sg_denom_nonzero (e + g) (f + h) p2.
Lemma Qquadratic_sign_equal_strong :
forall (a1 a2 b1 b2 c1 c2 d1 d2 e1 e2 f1 f2 g1 g2 h1 h2 : Z)
(x1 x2 y1 y2 : Qpositive)
(H_ok_1 : Qquadratic_sg_denom_nonzero e1 f1 g1 h1 x1 y1)
(H_ok_2 : Qquadratic_sg_denom_nonzero e2 f2 g2 h2 x2 y2),
a1 = a2 ->
b1 = b2 ->
c1 = c2 ->
d1 = d2 ->
e1 = e2 ->
f1 = f2 ->
g1 = g2 ->
h1 = h2 ->
x1 = x2 ->
y1 = y2 ->
Qquadratic_sign a1 b1 c1 d1 e1 f1 g1 h1 x1 y1 H_ok_1 =
Qquadratic_sign a2 b2 c2 d2 e2 f2 g2 h2 x2 y2 H_ok_2.
Lemma Qquadratic_sign_One_y :
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)
(l1 na nb nc nd : Z) (l3 : Qpositive)
(H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero
(e + g) (f + h) p2),
(l1, (na, (nb, (nc, nd)), l3)) =
Qhomographic_sign (a + c) (b + d) (e + g) (f + h) p2
H_Qhomographic_sg_denom_nonzero ->
p1 = One ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
(l1, (0%Z, (0%Z, (na, nb)), (0%Z, (0%Z, (nc, nd))), (One, l3))).
Lemma Qquadratic_sign_nRdL_One :
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)
(l1 na nb nc nd : Z) (l3 : Qpositive)
(H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero
(e + f) (g + h) p1),
(l1, (na, (nb, (nc, nd)), l3)) =
Qhomographic_sign (a + b) (c + d) (e + f) (g + h) p1
H_Qhomographic_sg_denom_nonzero ->
p1 <> One ->
p2 = One ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
(l1, (0%Z, (na, (0%Z, nb)), (0%Z, (nc, (0%Z, nd))), (l3, One))).
Lemma Qquadratic_sign_nR_One_1 :
forall (a b c d e f g h : Z) (p1 xs p2 : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(l1 na nb nc nd : Z) (l3 : Qpositive)
(H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero
(e + f) (g + h) p1),
(l1, (na, (nb, (nc, nd)), l3)) =
Qhomographic_sign (a + b) (c + d) (e + f) (g + h) p1
H_Qhomographic_sg_denom_nonzero ->
p1 = nR xs ->
p2 = One ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
(l1, (0%Z, (na, (0%Z, nb)), (0%Z, (nc, (0%Z, nd))), (l3, One))).
Lemma Qquadratic_sign_nR_One_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
(nR p1) p2) (l1 na nb nc nd : Z)
(l3 : Qpositive)
(H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero
(e + f) (g + h)
(nR p1)),
(l1, (na, (nb, (nc, nd)), l3)) =
Qhomographic_sign (a + b) (c + d) (e + f) (g + h)
(nR p1) H_Qhomographic_sg_denom_nonzero ->
p2 = One ->
Qquadratic_sign a b c d e f g h (nR p1) p2 H_Qquadratic_sg_denom_nonzero =
(l1, (0%Z, (na, (0%Z, nb)), (0%Z, (nc, (0%Z, nd))), (l3, One))).
Lemma Qquadratic_sign_dL_One_1 :
forall (a b c d e f g h : Z) (p1 xs p2 : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(l1 na nb nc nd : Z) (l3 : Qpositive)
(H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero
(e + f) (g + h) p1),
(l1, (na, (nb, (nc, nd)), l3)) =
Qhomographic_sign (a + b) (c + d) (e + f) (g + h) p1
H_Qhomographic_sg_denom_nonzero ->
p1 = dL xs ->
p2 = One ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
(l1, (0%Z, (na, (0%Z, nb)), (0%Z, (nc, (0%Z, nd))), (l3, One))).
Lemma Qquadratic_sign_dL_One_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
(dL p1) p2) (l1 na nb nc nd : Z)
(l3 : Qpositive)
(H_Qhomographic_sg_denom_nonzero : Qhomographic_sg_denom_nonzero
(e + f) (g + h)
(dL p1)),
(l1, (na, (nb, (nc, nd)), l3)) =
Qhomographic_sign (a + b) (c + d) (e + f) (g + h)
(dL p1) H_Qhomographic_sg_denom_nonzero ->
p2 = One ->
Qquadratic_sign a b c d e f g h (dL p1) p2 H_Qquadratic_sg_denom_nonzero =
(l1, (0%Z, (na, (0%Z, nb)), (0%Z, (nc, (0%Z, nd))), (l3, One))).
Lemma Qquadratic_sign_nRdL_nRdL_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),
p1 <> One ->
p2 <> One ->
b = 0%Z /\ c = 0%Z /\ d = 0%Z ->
f = 0%Z /\ g = 0%Z /\ h = 0%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
((Z.sgn a * Z.sgn e)%Z, (a, (b, (c, d)), (e, (f, (g, h))), (p1, p2))).
Lemma Qquadratic_sign_nRdL_nRdL_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),
p1 <> One ->
p2 <> One ->
b = 0%Z /\ c = 0%Z /\ d = 0%Z ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
(2 < outside_square e f g h)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
(Z.sgn a, (a, (b, (c, d)), (e, (f, (g, h))), (p1, p2))).
Lemma Qquadratic_sign_nRdL_nRdL_3 :
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),
p1 <> One ->
p2 <> One ->
b = 0%Z /\ c = 0%Z /\ d = 0%Z ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
~ (2 < outside_square e f g h)%Z ->
(outside_square e f g h < -2)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
((- Z.sgn a)%Z, (a, (b, (c, d)), (e, (f, (g, h))), (p1, p2))).
Lemma Qquadratic_sign_nR_nR_4 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_II : Qquadratic_sg_denom_nonzero e
(e + f) (e + g)
(e + f + g + h) xs ys),
p1 = nR xs ->
p2 = nR ys ->
b = 0%Z /\ c = 0%Z /\ d = 0%Z ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
~ (2 < outside_square e f g h)%Z ->
~ (outside_square e f g h < -2)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign a (a + b) (a + c) (a + b + c + d) e
(e + f) (e + g) (e + f + g + h) xs ys H_Qquadratic_sg_denom_nonzero_II.
Lemma Qquadratic_sign_nR_dL_4 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_IO : Qquadratic_sg_denom_nonzero
(e + f) f
(e + f + g + h)
(f + h) xs ys),
p1 = nR xs ->
p2 = dL ys ->
b = 0%Z /\ c = 0%Z /\ d = 0%Z ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
~ (2 < outside_square e f g h)%Z ->
~ (outside_square e f g h < -2)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign (a + b) b (a + b + c + d) (b + d)
(e + f) f (e + f + g + h) (f + h) xs ys H_Qquadratic_sg_denom_nonzero_IO.
Lemma Qquadratic_sign_dL_nR_4 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_OI : Qquadratic_sg_denom_nonzero
(e + g) (e + f + g + h) g
(g + h) xs ys),
p1 = dL xs ->
p2 = nR ys ->
b = 0%Z /\ c = 0%Z /\ d = 0%Z ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
~ (2 < outside_square e f g h)%Z ->
~ (outside_square e f g h < -2)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign (a + c) (a + b + c + d) c (c + d)
(e + g) (e + f + g + h) g (g + h) xs ys H_Qquadratic_sg_denom_nonzero_OI.
Lemma Qquadratic_sign_dL_dL_4 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_OO : Qquadratic_sg_denom_nonzero
(e + f + g + h)
(f + h) (g + h) h xs ys),
p1 = dL xs ->
p2 = dL ys ->
b = 0%Z /\ c = 0%Z /\ d = 0%Z ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
~ (2 < outside_square e f g h)%Z ->
~ (outside_square e f g h < -2)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign (a + b + c + d) (b + d) (c + d) d
(e + f + g + h) (f + h) (g + h) h xs ys H_Qquadratic_sg_denom_nonzero_OO.
Lemma Qquadratic_sign_nRdL_nRdL_5 :
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),
p1 <> One ->
p2 <> One ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
f = 0%Z /\ g = 0%Z /\ h = 0%Z ->
(2 < outside_square a b c d)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
(Z.sgn e, (a, (b, (c, d)), (e, (f, (g, h))), (p1, p2))).
Lemma Qquadratic_sign_nRdL_nRdL_6 :
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),
p1 <> One ->
p2 <> One ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
f = 0%Z /\ g = 0%Z /\ h = 0%Z ->
~ (2 < outside_square a b c d)%Z ->
(outside_square a b c d < -2)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
((- Z.sgn e)%Z, (a, (b, (c, d)), (e, (f, (g, h))), (p1, p2))).
Lemma Qquadratic_sign_nR_nR_7 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_II : Qquadratic_sg_denom_nonzero e
(e + f) (e + g)
(e + f + g + h) xs ys),
p1 = nR xs ->
p2 = nR ys ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
f = 0%Z /\ g = 0%Z /\ h = 0%Z ->
~ (2 < outside_square a b c d)%Z ->
~ (outside_square a b c d < -2)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign a (a + b) (a + c) (a + b + c + d) e
(e + f) (e + g) (e + f + g + h) xs ys H_Qquadratic_sg_denom_nonzero_II.
Lemma Qquadratic_sign_nR_dL_7 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_IO : Qquadratic_sg_denom_nonzero
(e + f) f
(e + f + g + h)
(f + h) xs ys),
p1 = nR xs ->
p2 = dL ys ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
f = 0%Z /\ g = 0%Z /\ h = 0%Z ->
~ (2 < outside_square a b c d)%Z ->
~ (outside_square a b c d < -2)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign (a + b) b (a + b + c + d) (b + d)
(e + f) f (e + f + g + h) (f + h) xs ys H_Qquadratic_sg_denom_nonzero_IO.
Lemma Qquadratic_sign_dL_nR_7 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_OI : Qquadratic_sg_denom_nonzero
(e + g) (e + f + g + h) g
(g + h) xs ys),
p1 = dL xs ->
p2 = nR ys ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
f = 0%Z /\ g = 0%Z /\ h = 0%Z ->
~ (2 < outside_square a b c d)%Z ->
~ (outside_square a b c d < -2)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign (a + c) (a + b + c + d) c (c + d)
(e + g) (e + f + g + h) g (g + h) xs ys H_Qquadratic_sg_denom_nonzero_OI.
Lemma Qquadratic_sign_dL_dL_7 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_OO : Qquadratic_sg_denom_nonzero
(e + f + g + h)
(f + h) (g + h) h xs ys),
p1 = dL xs ->
p2 = dL ys ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
f = 0%Z /\ g = 0%Z /\ h = 0%Z ->
~ (2 < outside_square a b c d)%Z ->
~ (outside_square a b c d < -2)%Z ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign (a + b + c + d) (b + d) (c + d) d
(e + f + g + h) (f + h) (g + h) h xs ys H_Qquadratic_sg_denom_nonzero_OO.
Lemma Qquadratic_sign_nRdL_nRdL_8 :
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),
p1 <> One ->
p2 <> One ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
inside_square_1 (outside_square a b c d) (outside_square e f g h) ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
(1%Z, (a, (b, (c, d)), (e, (f, (g, h))), (p1, p2))).
Lemma Qquadratic_sign_nRdL_nRdL_9 :
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),
p1 <> One ->
p2 <> One ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
~ inside_square_1 (outside_square a b c d) (outside_square e f g h) ->
inside_square_2 (outside_square a b c d) (outside_square e f g h) ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
((-1)%Z, (a, (b, (c, d)), (e, (f, (g, h))), (p1, p2))).
Lemma Qquadratic_sign_nR_nR_10 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_II : Qquadratic_sg_denom_nonzero e
(e + f) (e + g)
(e + f + g + h) xs ys),
p1 = nR xs ->
p2 = nR ys ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
~ inside_square_1 (outside_square a b c d) (outside_square e f g h) ->
~ inside_square_2 (outside_square a b c d) (outside_square e f g h) ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign a (a + b) (a + c) (a + b + c + d) e
(e + f) (e + g) (e + f + g + h) xs ys H_Qquadratic_sg_denom_nonzero_II.
Lemma Qquadratic_sign_nR_dL_10 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_IO : Qquadratic_sg_denom_nonzero
(e + f) f
(e + f + g + h)
(f + h) xs ys),
p1 = nR xs ->
p2 = dL ys ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
~ inside_square_1 (outside_square a b c d) (outside_square e f g h) ->
~ inside_square_2 (outside_square a b c d) (outside_square e f g h) ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign (a + b) b (a + b + c + d) (b + d)
(e + f) f (e + f + g + h) (f + h) xs ys H_Qquadratic_sg_denom_nonzero_IO.
Lemma Qquadratic_sign_dL_nR_10 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_OI : Qquadratic_sg_denom_nonzero
(e + g) (e + f + g + h) g
(g + h) xs ys),
p1 = dL xs ->
p2 = nR ys ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
~ inside_square_1 (outside_square a b c d) (outside_square e f g h) ->
~ inside_square_2 (outside_square a b c d) (outside_square e f g h) ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign (a + c) (a + b + c + d) c (c + d)
(e + g) (e + f + g + h) g (g + h) xs ys H_Qquadratic_sg_denom_nonzero_OI.
Lemma Qquadratic_sign_dL_dL_10 :
forall (a b c d e f g h : Z) (p1 xs p2 ys : Qpositive)
(H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2)
(H_Qquadratic_sg_denom_nonzero_OO : Qquadratic_sg_denom_nonzero
(e + f + g + h)
(f + h) (g + h) h xs ys),
p1 = dL xs ->
p2 = dL ys ->
~ (b = 0%Z /\ c = 0%Z /\ d = 0%Z) ->
~ (f = 0%Z /\ g = 0%Z /\ h = 0%Z) ->
~ inside_square_1 (outside_square a b c d) (outside_square e f g h) ->
~ inside_square_2 (outside_square a b c d) (outside_square e f g h) ->
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero =
Qquadratic_sign (a + b + c + d) (b + d) (c + d) d
(e + f + g + h) (f + h) (g + h) h xs ys H_Qquadratic_sg_denom_nonzero_OO.
Lemma Qquadratic_sign_sign :
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),
let (l1, L2) :=
Qquadratic_sign a b c d e f g h p1 p2 H_Qquadratic_sg_denom_nonzero in
{l1 = 0%Z} + {l1 = 1%Z} + {l1 = (-1)%Z}.