(** * Zero  - with any arities (n, s) *)
Definition zero_e (n s:nat) : BC :=
comp n s zero nil nil.
Global Opaque succ_e.
(** * Zero predicate  - arities: (1,0) *)
Definition is_zero_e : BC :=
rec (one_e 0 0) (proj 1 1 1) (zero_e 1 1).
Global Opaque is_zero_e.
(** * Predecessor  - arities: (1,0) *)
Definition pred_pos_e : BC :=
rec (zero_e 0 0)
(comp 1 1 (succ true) nil [proj 1 1 1])
(comp 1 1 (succ false) nil [proj 1 1 0]).

Lemma pred_pos_correct n :
bs2nat n <> 0 ->
bs2nat (sem pred_pos_e [n] nil) = Peano.pred (bs2nat n).