(** Here we expand the fixpoint equations of "Qquadratic_Qpositive_to_Qpositive" function *)

(* Specifications: *)
Lemma Qquadratic_Qpositive_to_Qpositive_0 :
forall (a b c d e f g h : Z) (p1 p2 : Qpositive)
(hyp : quadraticAcc a b c d e f g h p1 p2),
p1 = One ->
forall hyp_ni : homographicAcc (a + c) (b + d) (e + g) (f + h) p2,
Qquadratic_Qpositive_to_Qpositive a b c d e f g h p1 p2 hyp =
Qhomographic_Qpositive_to_Qpositive (a + c) (b + d)
(e + g) (f + h) p2 hyp_ni.
Lemma Qquadratic_Qpositive_to_Qpositive_0' :
forall (a b c d e f g h : Z) (p1 p2 : Qpositive)
(hyp : quadraticAcc a b c d e f g h p1 p2),
p1 <> One ->
p2 = One ->
forall hyp_ni : homographicAcc (a + b) (c + d) (e + f) (g + h) p1,
Qquadratic_Qpositive_to_Qpositive a b c d e f g h p1 p2 hyp =
Qhomographic_Qpositive_to_Qpositive (a + b) (c + d)
(e + f) (g + h) p1 hyp_ni.
Lemma Qquadratic_Qpositive_to_Qpositive_1 :
forall (a b c d e f g h : Z) (p1 p2 : Qpositive)
(hyp : quadraticAcc a b c d e f g h p1 p2),
p1 <> One ->
p2 <> One ->
quadratic_top_more a b c d e f g h ->
forall hyp_rec : quadraticAcc (a - e) (b - f) (c - g) (d - h) e f g h p1 p2,
Qquadratic_Qpositive_to_Qpositive a b c d e f g h p1 p2 hyp =
nR
(Qquadratic_Qpositive_to_Qpositive (a - e) (b - f)
(c - g) (d - h) e f g h p1 p2 hyp_rec).
Lemma Qquadratic_Qpositive_to_Qpositive_2 :
forall (a b c d e f g h : Z) (p1 p2 : Qpositive)
(hyp : quadraticAcc a b c d e f g h p1 p2),
p1 <> One ->
p2 <> One ->
~ quadratic_top_more a b c d e f g h ->
quadratic_top_more e f g h a b c d ->
forall hyp_rec : quadraticAcc a b c d (e - a) (f - b) (g - c) (h - d) p1 p2,
Qquadratic_Qpositive_to_Qpositive a b c d e f g h p1 p2 hyp =
dL
(Qquadratic_Qpositive_to_Qpositive a b c d (e - a)
(f - b) (g - c) (h - d) p1 p2 hyp_rec).
Lemma Qquadratic_Qpositive_to_Qpositive_3_II :
forall (a b c d e f g h : Z) (p1 p2 : Qpositive)
(hyp : quadraticAcc a b c d e f g h p1 p2),
~ quadratic_top_more a b c d e f g h ->
~ quadratic_top_more e f g h a b c d ->
forall xs : Qpositive,
p1 = nR xs ->
forall ys : Qpositive,
p2 = nR ys ->
forall
hyp_rec : quadraticAcc a (a + b) (a + c) (a + b + c + d) e
(e + f) (e + g) (e + f + g + h) xs ys,
Qquadratic_Qpositive_to_Qpositive a b c d e f g h p1 p2 hyp =
Qquadratic_Qpositive_to_Qpositive a (a + b) (a + c)
(a + b + c + d) e (e + f) (e + g) (e + f + g + h) xs ys hyp_rec.
Lemma Qquadratic_Qpositive_to_Qpositive_3_IO :
forall (a b c d e f g h : Z) (p1 p2 : Qpositive)
(hyp : quadraticAcc a b c d e f g h p1 p2),
~ quadratic_top_more a b c d e f g h ->
~ quadratic_top_more e f g h a b c d ->
forall xs : Qpositive,
p1 = nR xs ->
forall ys : Qpositive,
p2 = dL ys ->
forall
hyp_rec : quadraticAcc (a + b) b (a + b + c + d)
(b + d) (e + f) f (e + f + g + h) (f + h) xs ys,
Qquadratic_Qpositive_to_Qpositive a b c d e f g h p1 p2 hyp =
Qquadratic_Qpositive_to_Qpositive (a + b) b (a + b + c + d)
(b + d) (e + f) f (e + f + g + h) (f + h) xs ys hyp_rec.
Lemma Qquadratic_Qpositive_to_Qpositive_3_OI :
forall (a b c d e f g h : Z) (p1 p2 : Qpositive)
(hyp : quadraticAcc a b c d e f g h p1 p2),
~ quadratic_top_more a b c d e f g h ->
~ quadratic_top_more e f g h a b c d ->
forall xs : Qpositive,
p1 = dL xs ->
forall ys : Qpositive,
p2 = nR ys ->
forall
hyp_rec : quadraticAcc (a + c) (a + b + c + d) c
(c + d) (e + g) (e + f + g + h) g (g + h) xs ys,
Qquadratic_Qpositive_to_Qpositive a b c d e f g h p1 p2 hyp =
Qquadratic_Qpositive_to_Qpositive (a + c) (a + b + c + d) c
(c + d) (e + g) (e + f + g + h) g (g + h) xs ys hyp_rec.
Lemma Qquadratic_Qpositive_to_Qpositive_3_OO :
forall (a b c d e f g h : Z) (p1 p2 : Qpositive)
(hyp : quadraticAcc a b c d e f g h p1 p2),
~ quadratic_top_more a b c d e f g h ->
~ quadratic_top_more e f g h a b c d ->
forall xs : Qpositive,
p1 = dL xs ->
forall ys : Qpositive,
p2 = dL ys ->
forall
hyp_rec : quadraticAcc (a + b + c + d) (b + d) (c + d) d
(e + f + g + h) (f + h) (g + h) h xs ys,
Qquadratic_Qpositive_to_Qpositive a b c d e f g h p1 p2 hyp =
Qquadratic_Qpositive_to_Qpositive (a + b + c + d)
(b + d) (c + d) d (e + f + g + h) (f + h) (g + h) h xs ys hyp_rec.