let fresh_diseq p =
  let d = Fact.Diseq.Set.choose p.diseq in
    p.diseq <- Fact.Diseq.Set.remove d p.diseq; d