Fixpoint Qquadratic_sign (a b c d e f g h : Z) (p1 p2 : Qpositive) {struct p1} :
  forall (H_Qquadratic_sg_denom_nonzero : Qquadratic_sg_denom_nonzero e f g h p1 p2),
  Z * (Z * (Z * (Z * Z)) * (Z * (Z * (Z * Z))) * (Qpositive * Qpositive)).Scheme Qquadratic_sg_denom_nonzero_inv_dep :=
  Induction for Qquadratic_sg_denom_nonzero Sort Prop.

(* Specifications: *)
Lemma Qquadratic_sign_equal : forall (a b c d e f g h : Z) (p1 p2 : Qpositive) (H1 H2 : Qquadratic_sg_denom_nonzero e f g h p1 p2), Qquadratic_sign a b c d e f g h p1 p2 H1 = Qquadratic_sign a b c d e f g h p1 p2 H2.
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}.