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).