Fixpoint str_length (s:string) : nat :=
match s with
| ""%string => O
| String _ s' => S (str_length s')
end.

(* Specifications: *)
Lemma str_length_append : forall s s',
str_length (s ++ s')%string = str_length s + str_length s'.
Lemma string_right_id : forall s, (s ++ "")%string = s.
Definition bneq_empty_string(s:string):bool :=
match (string_dec s ""%string) with
| left _ => false
| right _ => true
end.