let minus m1 m2 =
     match m1,m2 with
       | T.SpareT.Spare -> bottom
       | T.SpareT.Cav d2 -> if D.is_bottom d2 then m1 else bottom
       | T.Cav _, T.Spare -> m1 (* even if [D.is_bottom d1] because m1 = bot *)
       | T.Cav d1, T.Cav d2 -> mk_mark (D.minus d1 d2)