proposition: 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.
proof: Proof. intros; generalize H_Qquadratic_sg_denom_nonzero H_Qquadratic_sg_denom_nonzero_IO; rewrite H; rewrite H0; intros; simpl in |- *; case (three_integers_dec_inf b c d); intro Hbcd; [ Falsum | case (three_integers_dec_inf f g h); intro Hfgh; [ Falsum | case (inside_square_1_dec_inf (outside_square a b c d) (outside_square e f g h)); intro H_inside_1; [ Falsum | case (inside_square_2_dec_inf (outside_square a b c d) (outside_square e f g h)); intro H_inside_2; [ Falsum | apply Qquadratic_sign_equal ] ] ] ]. Qed.
imports: Coq(ZArithRing) QArithSternBrocot(Qhomographic_sign) QArithSternBrocot(Zaux)