Definition Succ_e : Cobham :=
Comp 1 (Succ true) [Proj 1 0].
Opaque Succ_e.
Fixpoint Nat_e (n:nat) : Cobham :=
match n with
| 0 => Zero
| S n' => Comp 0 Succ_e [Nat_e n']
end.
Notation Plus_e := App_e.
Notation arity_Plus := arity_App.
Notation rec_bounded_Plus := rec_bounded_App.
Opaque Plus_e.
Fixpoint Plusl_e (ar:nat)(el:list Cobham) : Cobham :=
match el with
| nil => Zero_e ar
| e' :: el' => Comp ar Plus_e [e'; Plusl_e ar el']
end.

Lemma Plusl_correct : forall ar el l,
length (Sem (Plusl_e ar el) l) = plusl (map (fun e => length (Sem e l)) el).