Discrete Mathematics for Computer Science Preliminary Edition