(* ---------------------------------------------------------------------- *)
(** **** Properties of concatenation *)

(* Specifications: *)
(** Concatenation admits empty as neutral element, and is associative. *)
Axiom concat_empty_r : forall A (E : gen_env A),
E & (@empty A) = E.
Axiom concat_empty_l : forall A (E : gen_env A),
(@empty A) & E = E.
Axiom concat_assoc : forall A (E F G : gen_env A),
E & (F & G) = (E & F) & G.