Definition f' : BC :=
rec2 (BC_dummies 0 1 1 (sl - 1) g)
(comp2Ss cond nil [f'_cond; f'_nil; f'_then; f'_else] ).

(* Specifications: *)
Lemma cond_simpl: forall (n s : nat) (fn fc ft ff : BC) (l1 l2 : list bs),
sem (comp n s cond nil [fc; fn; ft; ff]) l1 l2 =
match sem fc l1 l2 with
| nil => sem fn l1 l2
| true :: _ => sem ft l1 l2
| false :: _ => sem ff l1 l2
end.
Lemma f'_inf : arities f' = ok_arities 2 sl.
Definition f : BC :=
comp 1 sl f' [proj 1 0 0; proj 1 0 0]
(map (proj 1 sl) (seq 1 sl)).