(** * Coq codes *)
(** ** Dependencies *)
Require Export Ascii.
Require Export String.
Require Export List.
Require Export Relation_Definitions.
(** ** Equality and equivalence *)
Definition bool_eq (a a':bool) : Prop := a = a'.
Definition ascii_eq (a a':ascii) : Prop := a = a'.
Definition string_eq (a a':string) : Prop := a = a'.
(** ** Lemmas for string *)
Fixpoint str_length (s:string) : nat :=
match s with
| ""%string => O
| String _ s' => S (str_length s')
end.

Lemma str_length_append : forall s s',
str_length (s ++ s')%string = str_length s + str_length s'.