proposition: 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))).
proof: Proof. intros. destruct p1 as [q| q| ]; repeat (apply False_ind; discriminate H0). simpl in |- *. rewrite Qhomographic_sign_equal with (H1 := Qquadratic_signok_0 e f g h p2 H_Qquadratic_sg_denom_nonzero) (H2 := H_Qhomographic_sg_denom_nonzero). rewrite <- H. reflexivity. Qed.
imports: Coq(ZArithRing) QArithSternBrocot(Qhomographic_sign) QArithSternBrocot(Zaux)