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.

(* Specifications: *)
Lemma arity_Plusl ar el :
andl (fun e => arity e = ok_arity ar) el ->
arity (Plusl_e ar el) = ok_arity ar.
Lemma rec_bounded_Plusl ar el :
andl rec_bounded el -> rec_bounded (Plusl_e ar el).
Lemma Plusl_correct : forall ar el l,
length (Sem (Plusl_e ar el) l) = plusl (map (fun e => length (Sem e l)) el).