Skip to content

Commit 6f032bb

Browse files
committed
Prove Lemma 1.4
1 parent 1c66e5c commit 6f032bb

File tree

1 file changed

+27
-5
lines changed

1 file changed

+27
-5
lines changed

Helpers/PolynomialHelpers.v

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,16 +172,38 @@ Proof.
172172
now rewrite (P.Pmult_comm [a; -C1] [f; -C1]).
173173
Qed.
174174

175+
Lemma Pmult_0_factor : forall (p1 p2 : Polynomial),
176+
(p1 *, p2) ≅ [] -> p1 ≅ [] \/ p2 ≅ [].
177+
Proof.
178+
intros p1 p2 H.
179+
destruct (Peq_0_dec p1), (Peq_0_dec p2); try auto.
180+
destruct (Pmult_neq_0 _ _ n n0); auto.
181+
Qed.
182+
175183
(* Lemma 1.4 *)
176184
Lemma Pfac_cancel_l : forall (d : C) (p1 p2 : Polynomial),
177185
[d; -C1] *, p1 ≅ [d; -C1] *, p2 -> p1 ≅ p2.
178186
Proof.
179187
intros d p1 p2 Hnil.
180-
apply functional_extensionality; intros x.
181-
unfold Peq in Hnil.
182-
simpl in Hnil.
183-
admit.
184-
Admitted.
188+
pose proof (H := Pplus_mor _ _ Hnil ([d; -C1] *, -, p2) _ ltac:(reflexivity)).
189+
rewrite <- P.Pmult_plus_distr_l in H.
190+
unfold Popp in H.
191+
rewrite <- P.Pmult_assoc in H.
192+
rewrite (P.Pmult_comm [d; -C1] [- C1]) in H.
193+
rewrite P.Pmult_assoc in H.
194+
rewrite Pplus_opp_r in H.
195+
destruct (Pmult_0_factor _ _ H).
196+
- apply degree_mor in H0. unfold degree in H0.
197+
unfold compactify in H0.
198+
simpl in H0.
199+
destruct (Ceq_dec (-C1) 0%R) as [H01 | _]; try (inversion H01; lra).
200+
simpl in H0. lia.
201+
- pose proof (H' := Pplus_mor _ _ H0 p2 _ ltac:(reflexivity)).
202+
rewrite P.Pplus_assoc in H'.
203+
setoid_replace ([-C1] *, p2 +, p2) with
204+
([] : Polynomial) in H' by now rewrite Pplus_opp_l.
205+
simpl in H'. now rewrite P.Pplus_0_r in H'.
206+
Qed.
185207

186208
(* Lemma 1.5 *)
187209
Lemma roots_equal_implies_permutation :

0 commit comments

Comments
 (0)