Add Parametric Morphism : Cat with
signature re_eq ==> re_eq ==> re_eq as Cat_mor.
(** ** [Empty] *)
(** [Empty] corresponds to 0 in Kleene algebra. *)

(* Specifications: *)
Lemma Cat_left_zero_s : forall s r, (Empty ++ r) ~= s = false.
Theorem Cat_left_zero : forall r, Empty ++ r =R= Empty.
Lemma Cat_right_zero_s : forall s r, (r ++ Empty) ~= s = false.
Theorem Cat_right_zero : forall r, r ++ Empty =R= Empty.
(** ** [Cat] matches concatination of strings. *)
Lemma matches_Cat : forall s s' r r',
r ~==s -> r' ~== s' -> (r ++ r') ~== (s ++ s')%string.