Opaque MultOneMinus_e.
(** Def 8 of (Rose) *)
Definition PlusOneMinus'_e : Cobham :=
Comp 2 Cond [
Proj 2 1;
Comp 2 Succ_e [Proj 2 0];
Proj 2 0;
Proj 2 0
].

(* Specifications: *)
Lemma arity_PlusOneMinus' : arity PlusOneMinus'_e = ok_arity 2.
Lemma rec_bounded_PlusOneMinus' :
rec_bounded PlusOneMinus'_e.
Lemma PlusOneMinus'_correct : forall l,
hd nil (tl l) = nil \/ bs2nat (hd nil (tl l)) <> 0 ->
bs2nat (Sem PlusOneMinus'_e l) = bs2nat (hd nil l) + (1 - bs2nat (hd nil (tl l))).
Lemma PlusOneMinus'_length : forall l,
length (Sem PlusOneMinus'_e [nth 0 l nil; Sem Normalize_e [nth 1 l nil]])
<= S (length (hd nil l)).