(* SUPPRESSION OF ALL OCCURRENCES of z: *)

Fixpoint Ds(s:set)(z:dart){struct s}:set:=
  match s with
     Vs => Vs
   | Is s0 x =>
       if eq_dart_dec x z then (Ds s0 z)
       else Is (Ds s0 z) x
  end.

(* Specifications: *)
Lemma not_exds_Ds:forall(s:set)(z:dart), ~exds (Ds s z) z.
Lemma exds_Ds:forall(s:set)(x z:dart), x <> z -> (exds s z <-> exds (Ds s x) z).
Lemma exds_Ds_diff:forall(s:set)(x z:dart), exds (Ds s x) z -> x <> z.
Lemma Ds_s:forall(s:set)(z:dart), ~exds s z <-> Ds s z = s.
Lemma not_exds_Ds_bis:forall(s:set)(x z:dart), ~exds s z -> ~exds (Ds s x) z.
Lemma exds_Ds_exds:forall(s:set)(x z:dart), exds (Ds s x) z -> exds s z.