proposition: Lemma Sin_triple_angle : forall x, (Sin(Three[*]x)[=]Three[*]Sin x[-]Four[*]Sin x[^]3).
proof: Proof. intros x. assert (H:Three[*]x[=]x[+]x[+]x) by rational. csetoid_rewrite H. csetoid_rewrite (Sin_plus (x[+]x) x). csetoid_rewrite (Sin_plus x x). csetoid_rewrite (Cos_plus x x). set (sx:=Sin x). set (cx:=Cos x). rstepl ((cx[^]2)[*](Three[*]sx)[-]sx[^]3). unfold cg_minus. csetoid_replace (cx[^]2) ([1][-]sx[^]2). rational. apply cg_inv_unique_2. rstepl ((cx[^]2[+]sx[^]2)[-][1]). apply x_minus_x. apply FFT. Qed.
imports: CoRN.algebra.RSetoid CoRN.metric2.Metric CoRN.metric2.UniformContinuity CoRN.model.totalorder.QMinMax CoRN.reals.fast.CRAlternatingSum CoRN.reals.fast.CRAlternatingSum_alg CoRN.reals.fast.CRstreams CoRN.reals.fast.CRexp CoRN.reals.fast.CRpi CoRN.reals.fast.CRArith CoRN.reals.fast.CRIR Coq.QArith.Qpower Coq.QArith.Qabs CoRN.model.ordfields.Qordfield Coq.QArith.Qround CoRN.transc.Pi CoRN.reals.fast.ModulusDerivative CoRN.reals.fast.ContinuousCorrect CoRN.model.metric2.Qmetric CoRN.transc.PowerSeries CoRN.transc.SinCos Coq.NArith.Ndigits CoRN.reals.fast.Compress CoRN.reals.fast.PowerBound CoRN.tactics.CornTac MathClasses.interfaces.abstract_algebra CoRN.util.Qdlog Coq(Lia)