(*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.

Lemma Ddmin_assoc : forall dd dd' dd'' : option D, Ddmin (Ddmin dd dd') dd'' = Ddmin dd (Ddmin dd' dd'').