(* This program is free software; you can redistribute it and/or      *)
(* modify it under the terms of the GNU Lesser General Public License *)
(* as published by the Free Software Foundation; either version 2.1   *)
(* of the License, or (at your option) any later version.             *)
(*                                                                    *)
(* This program is distributed in the hope that it will be useful,    *)
(* but WITHOUT ANY WARRANTY; without even the implied warranty of     *)
(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      *)
(* GNU General Public License for more details.                       *)
(*                                                                    *)
(* You should have received a copy of the GNU Lesser General Public   *)
(* License along with this program; if not, write to the Free         *)
(* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *)
(* 02110-1301 USA                                                     *)
Require Export Qhomographic_sign.
Require Export Qquadratic_sign.
Require Export Qhomographic_sign_properties.
Definition same_ratio (a b c d e f g h : Z) :=
(a * f)%Z = (b * e)%Z /\
(b * g)%Z = (c * f)%Z /\
(c * h)%Z = (d * g)%Z /\
(a * g)%Z = (c * e)%Z /\ (a * h)%Z = (d * e)%Z /\ (b * h)%Z = (d * f)%Z.

(* Specifications: *)
Lemma same_ratio_dec_inf :
forall a b c d e f g h : Z,
{same_ratio a b c d e f g h} + {~ same_ratio a b c d e f g h}.
Lemma Qquadratic_sign_tuple_equal :
forall (l1 a1 b1 c1 d1 e1 f1 g1 h1 : Z) (x1 y1 : Qpositive)
(l2 a2 b2 c2 d2 e2 f2 g2 h2 : Z) (x2 y2 : Qpositive),
(l1, (a1, (b1, (c1, d1)), (e1, (f1, (g1, h1))), (x1, y1))) =
(l2, (a2, (b2, (c2, d2)), (e2, (f2, (g2, h2))), (x2, y2))) ->
l1 = l2 /\
(a1 = a2 /\
b1 = b2 /\ c1 = c2 /\ d1 = d2 /\ e1 = e2 /\ f1 = f2 /\ g1 = g2 /\ h1 = h2) /\
x1 = x2 /\ y1 = y2.