let plus_interval r i =
    match r.D.inf , r.D.sup with
      | None , None -> r
      | Some j, None -> {D.inf = Some (plus i j ); D.sup = None}
      | NoneSome k -> {D.inf = None ; D.sup = Some (plus i k)}
      | Some j, Some k -> {D.inf = Some (plus i j );D.sup = Some (plus i k)}