End FSubsetOrder.
Section MapSubsetExtra.
Variables A B : Type.

(* Specifications: *)
Lemma MapSubset_Dom_1 :
forall (m:Map A) (m':Map B),
MapSubset A B m m' -> MapSubset unit unit (MapDom A m) (MapDom B m').
Lemma MapSubset_Dom_2 :
forall (m:Map A) (m':Map B),
MapSubset unit unit (MapDom A m) (MapDom B m') -> MapSubset A B m m'.
Lemma MapSubset_1_Dom :
forall (m:Map A) (m':Map B),
MapSubset_1 A B m m' = MapSubset_1 unit unit (MapDom A m) (MapDom B m').
Lemma MapSubset_Put :
forall (m:Map A) (a:ad) (y:A), MapSubset A A m (MapPut A m a y).
Lemma MapSubset_Put_mono :
forall (m:Map A) (m':Map B) (a:ad) (y:A) (y':B),
MapSubset A B m m' -> MapSubset A B (MapPut A m a y) (MapPut B m' a y').
Lemma MapSubset_Put_behind :
forall (m:Map A) (a:ad) (y:A), MapSubset A A m (MapPut_behind A m a y).
Lemma MapSubset_Put_behind_mono :
forall (m:Map A) (m':Map B) (a:ad) (y:A) (y':B),
MapSubset A B m m' ->
MapSubset A B (MapPut_behind A m a y) (MapPut_behind B m' a y').
Lemma MapSubset_Remove :
forall (m:Map A) (a:ad), MapSubset A A (MapRemove A m a) m.
Lemma MapSubset_Remove_mono :
forall (m:Map A) (m':Map B) (a:ad),
MapSubset A B m m' -> MapSubset A B (MapRemove A m a) (MapRemove B m' a).
Lemma MapSubset_Merge_l :
forall m m':Map A, MapSubset A A m (MapMerge A m m').
Lemma MapSubset_Merge_r :
forall m m':Map A, MapSubset A A m' (MapMerge A m m').
Lemma MapSubset_Merge_mono :
forall (m m':Map A) (m'' m''':Map B),
MapSubset A B m m'' ->
MapSubset A B m' m''' ->
MapSubset A B (MapMerge A m m') (MapMerge B m'' m''').
Lemma MapSubset_DomRestrTo_l :
forall (m:Map A) (m':Map B), MapSubset A A (MapDomRestrTo A B m m') m.
Lemma MapSubset_DomRestrTo_r :
forall (m:Map A) (m':Map B), MapSubset A B (MapDomRestrTo A B m m') m'.
Lemma MapSubset_ext :
forall (m0 m1:Map A) (m2 m3:Map B),
eqmap A m0 m1 ->
eqmap B m2 m3 -> MapSubset A B m0 m2 -> MapSubset A B m1 m3.