(*s Extending D with an element None representing infinity *)
Definition Ddmin (dd dd' : option D) :=
match dd, dd' with
| None, _ => dd'
| _, None => dd
| Some d, Some d' => Some (Dmin d d')
end.

(* Specifications: *)
Lemma Ddmin_idempotent : forall dd : option D, Ddmin dd dd = dd.
Lemma Ddmin_comm : forall dd dd' : option D, Ddmin dd dd' = Ddmin dd' dd.
Lemma Ddmin_assoc :
forall dd dd' dd'' : option D,
Ddmin (Ddmin dd dd') dd'' = Ddmin dd (Ddmin dd' dd'').