Built with Alectryon, running Coq+SerAPI v8.10.0+0.7.0. Coq sources are in this panel; goals and messages will appear in the other. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus.
(************************************************************************)
(*         *   The Coq Proof Assistant / The Coq Development Team       *)
(*  v      *   INRIA, CNRS and contributors - Copyright 1999-2018       *)
(* <O___,, *       (see CREDITS file for the list of authors)           *)
(*   \VV/  **************************************************************)
(*    //   *    This file is distributed under the terms of the         *)
(*         *     GNU Lesser General Public License Version 2.1          *)
(*         *     (see LICENSE file for the text of the license)         *)
(************************************************************************)

Require Import Rbase.
Require Import Rfunctions.
Require Import PartSum.
Local Open Scope R_scope.

Definition C (n p:nat) : R :=
  INR (fact n) / (INR (fact p) * INR (fact (n - p))).


forall n i : nat, (i <= n)%nat -> C n i = C n (n - i)

forall n i : nat, (i <= n)%nat -> C n i = C n (n - i)
n, i:nat
H:(i <= n)%nat

INR (fact n) / (INR (fact i) * INR (fact (n - i))) = INR (fact n) / (INR (fact (n - i)) * INR (fact i))
n, i:nat
H:(i <= n)%nat
i = (n - (n - i))%nat
n, i:nat
H:(i <= n)%nat

INR (fact n) / (INR (fact (n - i)) * INR (fact i)) = INR (fact n) / (INR (fact (n - i)) * INR (fact i))
n, i:nat
H:(i <= n)%nat
i = (n - (n - i))%nat
n, i:nat
H:(i <= n)%nat

i = (n - (n - i))%nat
apply plus_minus; rewrite plus_comm; apply le_plus_minus; assumption. Qed.

forall n i : nat, (i <= n)%nat -> C (S n) i = INR (S n) / INR (S n - i) * C n i

forall n i : nat, (i <= n)%nat -> C (S n) i = INR (S n) / INR (S n - i) * C n i
n, i:nat
H:(i <= n)%nat

INR (fact (S n)) / (INR (fact i) * INR (fact (S (n - i)))) = INR (S n) / INR (S (n - i)) * (INR (fact n) / (INR (fact i) * INR (fact (n - i))))
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat

(forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat) -> INR (fact (S n)) / (INR (fact i) * INR (fact (S (n - i)))) = INR (S n) / INR (S (n - i)) * (INR (fact n) / (INR (fact i) * INR (fact (n - i))))
n, i:nat
H:(i <= n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

INR (S n * fact n) / (INR (fact i) * INR (S (n - i) * fact (n - i))) = INR (S n) / INR (S (n - i)) * (INR (fact n) / (INR (fact i) * INR (fact (n - i))))
n, i:nat
H:(i <= n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

INR (S n) * INR (fact n) * (/ INR (fact i) * (/ INR (S (n - i)) * / INR (fact (n - i)))) = INR (S n) * / INR (S (n - i)) * (INR (fact n) * (/ INR (fact i) * / INR (fact (n - i))))
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact i) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (S (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact i) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (S (n - i)) * INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

INR (fact i) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (S (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact i) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (S (n - i)) * INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (S (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact i) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (S (n - i)) * INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

INR (S (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact i) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (S (n - i)) * INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact i) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (S (n - i)) * INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

INR (fact i) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (S (n - i)) * INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

INR (S (n - i)) * INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

INR (S (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

INR (fact (n - i)) <> 0
n, i:nat
H:(i <= n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat

forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i <= n)%nat
S (n - i) = (S n - i)%nat
n, i:nat
H:(i <= n)%nat

S (n - i) = (S n - i)%nat
apply minus_Sn_m; assumption. Qed.

forall n i : nat, (i < n)%nat -> C n (S i) = INR (n - i) / INR (S i) * C n i

forall n i : nat, (i < n)%nat -> C n (S i) = INR (n - i) / INR (S i) * C n i
n, i:nat
H:(i < n)%nat

INR (fact n) / (INR (fact (S i)) * INR (fact (n - S i))) = INR (n - i) / INR (S i) * (INR (fact n) / (INR (fact i) * INR (fact (n - i))))
n, i:nat
H:(i < n)%nat

(forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat) -> INR (fact n) / (INR (fact (S i)) * INR (fact (n - S i))) = INR (n - i) / INR (S i) * (INR (fact n) / (INR (fact i) * INR (fact (n - i))))
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

INR (fact n) / (INR (fact (S i)) * INR (fact (n - S i))) = INR (n - i) / INR (S i) * (INR (fact n) / (INR (fact i) * INR (fact (n - i))))
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

(n - i)%nat = S (n - S i) -> INR (fact n) / (INR (fact (S i)) * INR (fact (n - S i))) = INR (n - i) / INR (S i) * (INR (fact n) / (INR (fact i) * INR (fact (n - i))))
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (fact n) / (INR (fact (S i)) * INR (fact (n - S i))) = INR (n - i) / INR (S i) * (INR (fact n) / (INR (fact i) * INR (fact (n - i))))
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (fact n) / (INR (fact (S i)) * INR (fact (n - S i))) = INR (n - i) / INR (S i) * (INR (fact n) / (INR (fact i) * INR (fact (S (n - S i)))))
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (fact n) * (/ INR (S i) * / INR (fact i) * / INR (fact (n - S i))) = INR (n - i) * / INR (S i) * (INR (fact n) * (/ INR (fact i) * (/ INR (S (n - S i)) * / INR (fact (n - S i)))))
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S (n - S i)) * INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) * INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (fact n) * (/ INR (S i) * (/ INR (fact i) * / INR (fact (n - S i)))) = / INR (S i) * (INR (fact n) * (/ INR (fact i) * (/ INR (fact (n - S i)) * 1)))
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (n - i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S (n - S i)) * INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) * INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (n - i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S (n - S i)) * INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) * INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (S (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S (n - S i)) * INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) * INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S (n - S i)) * INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) * INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S (n - S i)) * INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) * INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (S (n - S i)) * INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) * INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (S i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) * INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (S i) * INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (S i) * INR (fact i) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)
INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
H1:(n - i)%nat = S (n - S i)

INR (fact (n - S i)) <> 0
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

(n - i)%nat = S (n - S i)
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

(n - i)%nat = (S n - S i)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
(S i <= n)%nat
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat
H0:forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat

(S i <= n)%nat
n, i:nat
H:(i < n)%nat
forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
n, i:nat
H:(i < n)%nat

forall n0 : nat, fact (S n0) = (S n0 * fact n0)%nat
intro; reflexivity. Qed. (**********)

forall n i : nat, (i < n)%nat -> C n i + C n (S i) = C (S n) (S i)

forall n i : nat, (i < n)%nat -> C n i + C n (S i) = C (S n) (S i)
n, i:nat
H:(i < n)%nat

C n i + C n (S i) = C (S n) (S i)
n, i:nat
H:(i < n)%nat

C n i + INR (n - i) / INR (S i) * C n i = C (S n) (S i)
n, i:nat
H:(i < n)%nat

C n i * (1 + INR (n - i) / INR (S i)) = C (S n) (S i)
n, i:nat
H:(i < n)%nat

C n i * (INR (S n) / INR (S i)) = C (S n) (S i)
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

C n (n - i) * (INR (S n) / INR (S i)) = C (S n) (S i)
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

INR (S n) / INR (S n - (n - i)) * C n (n - i) = C (S n) (S n - (n - i))
n, i:nat
H:(i < n)%nat
(S n - (n - i))%nat = S i
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

C (S n) (n - i) = C (S n) (S n - (n - i))
n, i:nat
H:(i < n)%nat
(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(S n - (n - i))%nat = S i
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(n - i <= S n)%nat
n, i:nat
H:(i < n)%nat
(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(S n - (n - i))%nat = S i
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(n <= S n)%nat
n, i:nat
H:(i < n)%nat
(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(S n - (n - i))%nat = S i
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(i <= n)%nat
n, i:nat
H:(i < n)%nat
(n <= S n)%nat
n, i:nat
H:(i < n)%nat
(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(S n - (n - i))%nat = S i
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(n <= S n)%nat
n, i:nat
H:(i < n)%nat
(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(S n - (n - i))%nat = S i
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(S n - (n - i))%nat = S i
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(i <= n)%nat
n, i:nat
H:(i < n)%nat
(S n - (n - i))%nat = S i
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(S n - (n - i))%nat = S i
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

S (n - (n - i)) = S i
n, i:nat
H:(i < n)%nat
(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(n - (n - i))%nat = i -> S (n - (n - i)) = S i
n, i:nat
H:(i < n)%nat
(n - (n - i))%nat = i
n, i:nat
H:(i < n)%nat
(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(n - (n - i))%nat = i
n, i:nat
H:(i < n)%nat
(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

n = (n - i + i)%nat
n, i:nat
H:(i < n)%nat
(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

n = n
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(i <= n)%nat
n, i:nat
H:(i < n)%nat
(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(n - i <= n)%nat
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

(i <= n)%nat
n, i:nat
H:(i < n)%nat
INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

INR (S n) / INR (S i) = 1 + INR (n - i) / INR (S i)
n, i:nat
H:(i < n)%nat

INR (S n) * / INR (S i) = 1 + INR (n - i) * / INR (S i)
n, i:nat
H:(i < n)%nat

(INR n + 1) * / (INR i + 1) = 1 + INR (n - i) * / (INR i + 1)
n, i:nat
H:(i < n)%nat

(INR n + 1) * / (INR i + 1) = 1 + (INR n - INR i) * / (INR i + 1)
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat

INR i + 1 <> 0 -> (INR n + 1) * / (INR i + 1) = 1 + (INR n - INR i) * / (INR i + 1)
n, i:nat
H:(i < n)%nat
INR i + 1 <> 0
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
H0:INR i + 1 <> 0

(INR n + 1) * / (INR i + 1) = 1 + (INR n - INR i) * / (INR i + 1)
n, i:nat
H:(i < n)%nat
INR i + 1 <> 0
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
H0:INR i + 1 <> 0

(INR i + 1) * ((INR n + 1) * / (INR i + 1)) = (INR i + 1) * (1 + (INR n - INR i) * / (INR i + 1))
n, i:nat
H:(i < n)%nat
INR i + 1 <> 0
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
H0:INR i + 1 <> 0

(INR i + 1) * ((INR n + 1) * / (INR i + 1)) = (INR i + 1) * 1 + (INR i + 1) * ((INR n - INR i) * / (INR i + 1))
n, i:nat
H:(i < n)%nat
INR i + 1 <> 0
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
H0:INR i + 1 <> 0

(INR i + 1) * ((INR n + 1) * / (INR i + 1)) = INR i + 1 + (INR i + 1) * ((INR n - INR i) * / (INR i + 1))
n, i:nat
H:(i < n)%nat
INR i + 1 <> 0
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
H0:INR i + 1 <> 0

(INR n + 1) * / (INR i + 1) * (INR i + 1) = INR i + 1 + (INR n - INR i) * / (INR i + 1) * (INR i + 1)
n, i:nat
H:(i < n)%nat
INR i + 1 <> 0
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
H0:INR i + 1 <> 0

(INR n + 1) * (/ (INR i + 1) * (INR i + 1)) = INR i + 1 + (INR n - INR i) * (/ (INR i + 1) * (INR i + 1))
n, i:nat
H:(i < n)%nat
INR i + 1 <> 0
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat
H0:INR i + 1 <> 0

(INR n + 1) * 1 = INR i + 1 + (INR n - INR i) * 1
n, i:nat
H:(i < n)%nat
INR i + 1 <> 0
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat

INR i + 1 <> 0
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat

INR (S i) <> 0
n, i:nat
H:(i < n)%nat
(i <= n)%nat
n, i:nat
H:(i < n)%nat

(i <= n)%nat
apply lt_le_weak; assumption. Qed. (*********************) (*********************)

forall (x y : R) (n : nat), (x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n

forall (x y : R) (n : nat), (x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
x, y:R

(x + y) ^ 0 = sum_f_R0 (fun i : nat => C 0 i * x ^ i * y ^ (0 - i)) 0
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n

(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n

(x + y) ^ (n + 1) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n

sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) ^ 1 = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n

sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n

sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + C (S n) (S n) * x ^ S n * y ^ (S n - S n)
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n

(forall p : nat, C p p = 1) -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + C (S n) (S n) * x ^ S n * y ^ (S n - S n)
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n

(forall p : nat, C p 0 = 1) -> (forall p : nat, C p p = 1) -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + C (S n) (S n) * x ^ S n * y ^ (S n - S n)
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1

sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n * y ^ 0
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1

sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
Hrecn:(x + y) ^ 0 = sum_f_R0 (fun i : nat => C 0 i * x ^ i * y ^ (0 - i)) 0
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1

sum_f_R0 (fun i : nat => C 0 i * x ^ i * y ^ (0 - i)) 0 * (x + y) = sum_f_R0 (fun i : nat => C 1 i * x ^ i * y ^ (1 - i)) 0 + x ^ 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n) * (x + y) = sum_f_R0 (fun i : nat => C (S (S n)) i * x ^ i * y ^ (S (S n) - i)) (S n) + x ^ S (S n)
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n

sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n) * (x + y) = sum_f_R0 (fun i : nat => C (S (S n)) i * x ^ i * y ^ (S (S n) - i)) (S n) + x ^ S (S n)
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
(* N >= 1 *)
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * (x + y) = sum_f_R0 (fun i : nat => C (S N) i * x ^ i * y ^ (S N - i)) N + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y = sum_f_R0 (fun i : nat => C (S N) i * x ^ i * y ^ (S N - i)) N + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y = sum_f_R0 (fun i : nat => C (S N) i * x ^ i * y ^ (S N - i)) N + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C (S N) i * x ^ i * y ^ (S N - i)) N + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = C (S N) 0 * x ^ 0 * y ^ (S N - 0) + sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) (Init.Nat.pred N) + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = 1 * 1 * y ^ (S N - 0) + sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) (Init.Nat.pred N) + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ (S N - 0) + sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) (Init.Nat.pred N) + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ S N + sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) (Init.Nat.pred N) + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R

sum_f_R0 An N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ S N + sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) (Init.Nat.pred N) + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

sum_f_R0 An N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ S N + sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) (Init.Nat.pred N) + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

sum_f_R0 An N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ S N + sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

sum_f_R0 An N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ S N + sum_f_R0 (fun i : nat => An i + Bn i) n + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

sum_f_R0 An N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ S N + (sum_f_R0 An n + sum_f_R0 Bn n) + x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

sum_f_R0 An N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ S N + (sum_f_R0 An n + sum_f_R0 Bn n) + An (S n)
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

sum_f_R0 An N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ S N + (sum_f_R0 Bn n + sum_f_R0 An n) + An (S n)
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

sum_f_R0 An N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ S N + (sum_f_R0 Bn n + (sum_f_R0 An n + An (S n)))
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

sum_f_R0 An N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ S N + (sum_f_R0 Bn n + sum_f_R0 An (S n))
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

sum_f_R0 An N + sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = y ^ S N + (sum_f_R0 Bn n + sum_f_R0 An N)
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R

sum_f_R0 An N + sum_f_R0 Cn N = y ^ S N + (sum_f_R0 Bn n + sum_f_R0 An N)
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R

(forall i : nat, (i < N)%nat -> Cn (S i) = Bn i) -> sum_f_R0 An N + sum_f_R0 Cn N = y ^ S N + (sum_f_R0 Bn n + sum_f_R0 An N)
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i

sum_f_R0 An N + sum_f_R0 Cn N = y ^ S N + (sum_f_R0 (fun i : nat => Cn (S i)) n + sum_f_R0 An N)
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
sum_f_R0 (fun i : nat => Cn (S i)) n = sum_f_R0 Bn n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i

sum_f_R0 An N + sum_f_R0 Cn N = Cn 0%nat + (sum_f_R0 (fun i : nat => Cn (S i)) n + sum_f_R0 An N)
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
Cn 0%nat = y ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
sum_f_R0 (fun i : nat => Cn (S i)) n = sum_f_R0 Bn n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i

sum_f_R0 An N + (Cn 0%nat + sum_f_R0 (fun i : nat => Cn (S i)) (Init.Nat.pred N)) = Cn 0%nat + sum_f_R0 (fun i : nat => Cn (S i)) n + sum_f_R0 An N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
Cn 0%nat = y ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
sum_f_R0 (fun i : nat => Cn (S i)) n = sum_f_R0 Bn n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i

sum_f_R0 An N + (Cn 0%nat + sum_f_R0 (fun i : nat => Cn (S i)) n) = Cn 0%nat + sum_f_R0 (fun i : nat => Cn (S i)) n + sum_f_R0 An N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
Cn 0%nat = y ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
sum_f_R0 (fun i : nat => Cn (S i)) n = sum_f_R0 Bn n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i

n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
Cn 0%nat = y ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
sum_f_R0 (fun i : nat => Cn (S i)) n = sum_f_R0 Bn n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i

(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
Cn 0%nat = y ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
sum_f_R0 (fun i : nat => Cn (S i)) n = sum_f_R0 Bn n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i

Cn 0%nat = y ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
sum_f_R0 (fun i : nat => Cn (S i)) n = sum_f_R0 Bn n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i

sum_f_R0 (fun i : nat => Cn (S i)) n = sum_f_R0 Bn n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
H1:forall i : nat, (i < N)%nat -> Cn (S i) = Bn i

forall i : nat, (i <= n)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n -> sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n * (x + y) = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) n + x ^ S n
N:=S n:nat
An:=fun i0 : nat => C N i0 * x ^ S i0 * y ^ (N - i0):nat -> R
Bn:=fun i0 : nat => C N (S i0) * x ^ S i0 * y ^ (N - i0):nat -> R
Cn:=fun i0 : nat => C N i0 * x ^ i0 * y ^ (S N - i0):nat -> R
H1:forall i0 : nat, (i0 < N)%nat -> Cn (S i0) = Bn i0
i:nat
H2:(i <= n)%nat

(i < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R
forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
Cn:=fun i : nat => C N i * x ^ i * y ^ (S N - i):nat -> R

forall i : nat, (i < N)%nat -> Cn (S i) = Bn i
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

An (S n) = x ^ S N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

sum_f_R0 (fun i : nat => An i + Bn i) n = sum_f_R0 (fun i : nat => C (S N) (S i) * x ^ S i * y ^ (S N - S i)) n
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

forall i : nat, (i <= n)%nat -> An i + Bn i = C (S N) (S i) * x ^ S i * y ^ (S N - S i)
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n -> sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n * (x + y) = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) n + x ^ S n
N:=S n:nat
An:=fun i0 : nat => C N i0 * x ^ S i0 * y ^ (N - i0):nat -> R
Bn:=fun i0 : nat => C N (S i0) * x ^ S i0 * y ^ (N - i0):nat -> R
i:nat
H1:(i <= n)%nat

C N i * x ^ S i * y ^ (N - i) + C N (S i) * x ^ S i * y ^ (N - i) = C (S N) (S i) * x ^ S i * y ^ (S N - S i)
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n -> sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n * (x + y) = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) n + x ^ S n
N:=S n:nat
An:=fun i0 : nat => C N i0 * x ^ S i0 * y ^ (N - i0):nat -> R
Bn:=fun i0 : nat => C N (S i0) * x ^ S i0 * y ^ (N - i0):nat -> R
i:nat
H1:(i <= n)%nat

C N i * x ^ S i * y ^ (N - i) + C N (S i) * x ^ S i * y ^ (N - i) = C (S N) (S i) * x ^ S i * y ^ (N - i)
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R
n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
An:=fun i : nat => C N i * x ^ S i * y ^ (N - i):nat -> R
Bn:=fun i : nat => C N (S i) * x ^ S i * y ^ (N - i):nat -> R

n = Init.Nat.pred N
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

(0 < N)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (S N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

forall i : nat, (i <= N)%nat -> C N i * x ^ i * y ^ (S N - i) = C N i * x ^ i * y ^ (N - i) * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n -> sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n * (x + y) = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) n + x ^ S n
N:=S n:nat
i:nat
H1:(i <= N)%nat

C N i * x ^ i * y ^ S (N - i) = C N i * x ^ i * y ^ (N - i) * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n -> sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n * (x + y) = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) n + x ^ S n
N:=S n:nat
i:nat
H1:(i <= N)%nat
S (N - i) = (S N - i)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n -> sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n * (x + y) = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) n + x ^ S n
N:=S n:nat
i:nat
H1:(i <= N)%nat

C N i * x ^ i * y ^ (N - i + 1) = C N i * x ^ i * y ^ (N - i) * y
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n -> sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n * (x + y) = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) n + x ^ S n
N:=S n:nat
i:nat
H1:(i <= N)%nat
S (N - i) = (S N - i)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n -> sum_f_R0 (fun i0 : nat => C n i0 * x ^ i0 * y ^ (n - i0)) n * (x + y) = sum_f_R0 (fun i0 : nat => C (S n) i0 * x ^ i0 * y ^ (S n - i0)) n + x ^ S n
N:=S n:nat
i:nat
H1:(i <= N)%nat

S (N - i) = (S N - i)%nat
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat
sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

sum_f_R0 (fun i : nat => C N i * x ^ S i * y ^ (N - i)) N = sum_f_R0 (fun i : nat => C N i * x ^ i * y ^ (N - i)) N * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ S n = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) (S n)
H:forall p : nat, C p 0 = 1
H0:forall p : nat, C p p = 1
Hrecn0:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n -> sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n * (x + y) = sum_f_R0 (fun i : nat => C (S n) i * x ^ i * y ^ (S n - i)) n + x ^ S n
N:=S n:nat

forall i : nat, (i <= N)%nat -> C N i * x ^ S i * y ^ (N - i) = C N i * x ^ i * y ^ (N - i) * x
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n

forall p : nat, C p 0 = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
p:nat

INR (fact p) / (INR (fact 0) * INR (fact (p - 0))) = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
p:nat

INR (fact p) / (1 * INR (fact (p - 0))) = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
p:nat

INR (fact p) / (1 * INR (fact p)) = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n

forall p : nat, C p p = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
p:nat

INR (fact p) / (INR (fact p) * INR (fact (p - p))) = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
p:nat

INR (fact p) / (INR (fact p) * INR (fact 0)) = 1
x, y:R
n:nat
Hrecn:(x + y) ^ n = sum_f_R0 (fun i : nat => C n i * x ^ i * y ^ (n - i)) n
p:nat

INR (fact p) / (INR (fact p) * 1) = 1
rewrite Rmult_1_r; unfold Rdiv; rewrite <- Rinv_r_sym; [ reflexivity | apply INR_fact_neq_0 ]. Qed.