(* Applying a transformation [f] pointwise to two environments preserves environment subsumption, provided [f] preserves [sub]. *)

Lemma subsume_map:
forall f,
(forall a1 a2, sub a1 a2 -> sub (f a1) (f a2)) ->
forall e1 e2,
subsume e1 e2 ->
subsume (map f e1) (map f e2).