(** * Coq codes *)
(** ** Dependencies *)
Require Export RegExp.Utility.
Require Export RegExp.Definitions.
Require Export RegExp.Boolean.
Require Export RegExp.Concat.
Unset Standard Proposition Elimination Names.
(** ** [Char] *)
Add Parametric Morphism : Char with
signature ascii_eq ==> re_eq as Char_mor.
(** ** String *)
(** For simplicity, there is no [RegExp] constructor for string; however, the conversion is easy. *)
Fixpoint string_to_re (s:string):RegExp :=
match s with
| EmptyString => Eps
| String a s' => (Char a) ++ (string_to_re s')
end.

Lemma string_to_re_false : forall s s':string, s <> s' -> (string_to_re s) ~!= s'.