Section BR_BR.
(* Lemma 12 *)
Definition add_add_br_add_br: forall `{Ring R} (n: nat)
(c1 c2: R) (f1 f2: nat -> R),
({{c1, plus, f1 }} # n) + ({{c2, plus, f2}} # n) =
({{ (c1 + c2), plus, (fun n => f1 n + f2 n) }}) # n.
Definition mulCRFn `{Ring R} (c1 c2: R)
(f1 f2: nat -> R)
(n: nat): R:=
(((f2 # n) * {{c1, plus, f1}} # (n - 1))  +
((f1 # n) * {{c2, plus, f2}} # (n - 1))  +
(f1 # n) * (f2 # n)).
Hint Resolve mul_add_br_add_br : Recurrence.
Hint Rewrite @mul_add_br_add_br : Recurrence.

(* Lemma 14 *)
Lemma mul_mul_br_mul_br: forall `{Ring R} (n: nat)
(r1 r2: R) (f1 f2: nat -> R),
({{r1, mult, f1}} # n) * ({{r2, mult, f2}} # n) =
((mkBR (r1 * r2) mult (fun n => (f1 n * f2 n))) # n).