Source: https://www.csie.ntu.edu.tw/~cyy/courses/introCS/21fall/lectures/handouts/lec03_logic_4up.pdf