(*									*)
(*  INCLUSION  								*)
(*    On definit le predicat (inclus E F) par (dans x E)->(dans x F).	*)
(*    On montre ensuite facilement les resultats suivants :		*)
(*    -- inclus empty A							*)
(*    -- inclus A A							*)
(*    -- (inclus a b)->(inclus c d)					*)
(*		->(inclus (prodcart a c) (prodcart b d)			*)
(*									*)

Definition inclus (A B : Ensf) : Prop := forall x : Elt, dans x A -> dans x B.

(* Specifications: *)
Lemma empty_inclus : forall x : Ensf, inclus empty x.
Lemma refl_inclus : forall x : Ensf, inclus x x.
Lemma inclus_trans : forall a b c : Ensf, inclus a b -> inclus b c -> inclus a c.
Lemma cart_inclus : forall a b c d : Ensf, inclus a b -> inclus c d -> inclus (prodcart a c) (prodcart b d).
Lemma inclus_add : forall (a b : Ensf) (y : Elt), inclus a b -> inclus a (add y b).
Lemma singl_inclus_add : forall (e : Elt) (a : Ensf), inclus (singleton e) (add e a).
Lemma inclus_singl : forall (e : Elt) (a : Ensf), inclus (singleton e) a -> dans e a.
Lemma add_inclus : forall (x : Elt) (a b : Ensf), dans x b -> inclus a b -> inclus (add x a) b.
Lemma dans_trans : forall (x : Elt) (a b : Ensf), dans x a -> inclus a b -> dans x b.
Lemma union_inclus : forall a b c : Ensf, inclus a c -> inclus b c -> inclus (union a b) c.
Lemma inclus_g : forall a b : Ensf, inclus a (union a b).
Lemma inclus_d : forall a b : Ensf, inclus b (union a b).
Lemma inclus_g2 : forall A B C : Ensf, inclus A B -> inclus A (union B C).
Lemma inclus_d2 : forall A B C : Ensf, inclus A C -> inclus A (union B C).