(** * Less than or equal to predicate  - arities: (1,1) *)
Definition le_e : BC :=
comp 1 1 lt_e (proj 1 0 0 :: nil) (comp 1 1 succ_e nil (proj 1 1 1 :: nil) :: nil).

(* Specifications: *)
Lemma le_correct : forall v1 v2,
bs2bool (sem le_e [v1] [v2]) = true ->
length v1 <= length v2.
Lemma le_correct_conv v1 v2 :
unary v1 = true ->
unary v2 = true ->
bs2bool (sem le_e [v1] [v2]) = false ->
length v2 < length v1.
Lemma le_correct_conv_nil v1 v2 :
unary v1 = true ->
unary v2 = true ->
sem le_e [v1] [v2] = nil ->
S (length v2) <= length v1.