Inductive BCI : Set :=
| zeroI  : BCI
| projIn : nat -> BCI
| projIs : nat -> BCI
| succI  : bool -> BCI
| predI  : BCI
| condI  : BCI
| recI   : BCI -> BCI -> BCI -> BCI
| compI  : BCI -> list BCI -> list BCI -> BCI.Inductive BCI : Set :=
| zeroI  : BCI
| projIn : nat -> BCI
| projIs : nat -> BCI
| succI  : bool -> BCI
| predI  : BCI
| condI  : BCI
| recI   : BCI -> BCI -> BCI -> BCI
| compI  : BCI -> list BCI -> list BCI -> BCI.Inductive BCI : Set :=
| zeroI  : BCI
| projIn : nat -> BCI
| projIs : nat -> BCI
| succI  : bool -> BCI
| predI  : BCI
| condI  : BCI
| recI   : BCI -> BCI -> BCI -> BCI
| compI  : BCI -> list BCI -> list BCI -> BCI.Inductive BCI : Set :=
| zeroI  : BCI
| projIn : nat -> BCI
| projIs : nat -> BCI
| succI  : bool -> BCI
| predI  : BCI
| condI  : BCI
| recI   : BCI -> BCI -> BCI -> BCI
| compI  : BCI -> list BCI -> list BCI -> BCI.Inductive BCI : Set :=
| zeroI  : BCI
| projIn : nat -> BCI
| projIs : nat -> BCI
| succI  : bool -> BCI
| predI  : BCI
| condI  : BCI
| recI   : BCI -> BCI -> BCI -> BCI
| compI  : BCI -> list BCI -> list BCI -> BCI.Inductive BCI : Set :=
| zeroI  : BCI
| projIn : nat -> BCI
| projIs : nat -> BCI
| succI  : bool -> BCI
| predI  : BCI
| condI  : BCI
| recI   : BCI -> BCI -> BCI -> BCI
| compI  : BCI -> list BCI -> list BCI -> BCI.Inductive BCI : Set :=
| zeroI  : BCI
| projIn : nat -> BCI
| projIs : nat -> BCI
| succI  : bool -> BCI
| predI  : BCI
| condI  : BCI
| recI   : BCI -> BCI -> BCI -> BCI
| compI  : BCI -> list BCI -> list BCI -> BCI.Inductive BCI : Set :=
| zeroI  : BCI
| projIn : nat -> BCI
| projIs : nat -> BCI
| succI  : bool -> BCI
| predI  : BCI
| condI  : BCI
| recI   : BCI -> BCI -> BCI -> BCI
| compI  : BCI -> list BCI -> list BCI -> BCI.Inductive BCI : Set :=
| zeroI  : BCI
| projIn : nat -> BCI
| projIs : nat -> BCI
| succI  : bool -> BCI
| predI  : BCI
| condI  : BCI
| recI   : BCI -> BCI -> BCI -> BCI
| compI  : BCI -> list BCI -> list BCI -> BCI.

Lemma BCI_ind2' : forall P : BCI -> Prop, forall Q : list BCI -> Prop, Q nil -> (forall e l, P e -> Q l -> Q (e :: l)) -> P zeroI -> (forall i, P (projIn i)) -> (forall i, P (projIs i)) -> (forall b, P (succI b)) -> P predI -> P condI -> (forall g h0 h1, P g -> P h0 -> P h1 -> P (recI g h0 h1)) -> (forall h rl tl, P h -> Q rl -> Q tl -> P (compI h rl tl)) -> forall e, P e.