Harold Nelson
2023-03-13
Three operations
Three posible values
The traditional basic truth table contains every possible combination
## P Q
## 1 TRUE TRUE
## 2 TRUE FALSE
## 3 FALSE TRUE
## 4 FALSE FALSE
P_and_Q = P & Q
P_or_Q = P | Q
not_P = !P
definitions = cbind(basic,P_and_Q,P_or_Q,not_P)
definitions
## P Q P_and_Q P_or_Q not_P
## 1 TRUE TRUE TRUE TRUE FALSE
## 2 TRUE FALSE FALSE TRUE FALSE
## 3 FALSE TRUE FALSE TRUE TRUE
## 4 FALSE FALSE FALSE FALSE TRUE
How do we extend the basic table to include the possibility of NA?
## P Q
## 1 TRUE TRUE
## 2 TRUE FALSE
## 3 TRUE NA
## 4 FALSE TRUE
## 5 FALSE FALSE
## 6 FALSE NA
## 7 NA TRUE
## 8 NA FALSE
## 9 NA NA
Create a new truth table showing how the basic oerations work with three possible values.
P_and_Q = P & Q
P_or_Q = P | Q
not_P = !P
ext_definitions = data.frame(P,Q,P_and_Q,P_or_Q,not_P)
ext_definitions
## P Q P_and_Q P_or_Q not_P
## 1 TRUE TRUE TRUE TRUE FALSE
## 2 TRUE FALSE FALSE TRUE FALSE
## 3 TRUE NA NA TRUE FALSE
## 4 FALSE TRUE FALSE TRUE TRUE
## 5 FALSE FALSE FALSE FALSE TRUE
## 6 FALSE NA FALSE NA TRUE
## 7 NA TRUE NA TRUE NA
## 8 NA FALSE FALSE NA NA
## 9 NA NA NA NA NA
How can we prove Demorgan’s laws in R? We need to worry about the NA cases.
## exp1 exp2
## 1 FALSE FALSE
## 2 TRUE TRUE
## 3 NA NA
## 4 TRUE TRUE
## 5 TRUE TRUE
## 6 TRUE TRUE
## 7 NA NA
## 8 TRUE TRUE
## 9 NA NA
Could we just ask if exp1 and exp2 are the same?
## [1] TRUE TRUE NA TRUE TRUE TRUE NA TRUE NA
We aren’t sure that the NA values were created by NA values in both. How could we check for this?