129 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			129 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Truth Tables | |||
|  | --- | |||
|  | ## Truth Tables
 | |||
|  | 
 | |||
|  | A truth table is a mathematical tool used in Boolean Algebra. It consists of a column each for the function variables. A final column holds the functional value evaluated for the corresponding values of the variables. For a boolean function of n variables, its truth table expansion will have 2^n rows. This is beacuse each variable has two possible states – true & false. | |||
|  | 
 | |||
|  | ### AND
 | |||
|  | Let us explore the truth table for the AND operator: | |||
|  | 
 | |||
|  | | x | y | x AND y  | | |||
|  | |---|---|---| | |||
|  | | F  | F  | F  | | |||
|  | | F  | T  | F  | | |||
|  | | T  | F  | F  | | |||
|  | | T  | T  | T  | | |||
|  | 
 | |||
|  | AND is binary operator. It operates on two variables, say `x`, `y`.  | |||
|  | 
 | |||
|  | Thus we have 2^2 = 4 columns in our truth table! | |||
|  | 
 | |||
|  | The last column is the functional value – x AND y.The logic for AND operation is that if values of x and y are both True only then the output would have the value True else it would be False.  | |||
|  | 
 | |||
|  | Similarly truth tables for other logical operators - | |||
|  | 
 | |||
|  | ### NOT
 | |||
|  | 
 | |||
|  | | x | NOT X | | |||
|  | |---|---| | |||
|  | | F  | T  | | |||
|  | | T  | F  | | |||
|  | 
 | |||
|  | ### OR
 | |||
|  | 
 | |||
|  | | x | y | x OR y  | | |||
|  | |---|---|---| | |||
|  | | F  | F  | F  | | |||
|  | | F  | T  | T  | | |||
|  | | T  | F  | T  | | |||
|  | | T  | T  | T  | | |||
|  | 
 | |||
|  | ### XOR
 | |||
|  | 
 | |||
|  | | x | y | x XOR y  | | |||
|  | |---|---|---| | |||
|  | | F  | F  | F  | | |||
|  | | F  | T  | T  | | |||
|  | | T  | F  | T  | | |||
|  | | T  | T  | F  | | |||
|  | 
 | |||
|  | OR operator: | |||
|  | 
 | |||
|  | | x | y | x OR y  | | |||
|  | |---|---|---| | |||
|  | | F  | F  | F  | | |||
|  | | F  | T  | T  | | |||
|  | | T  | F  | T  | | |||
|  | | T  | T  | T  | | |||
|  | 
 | |||
|  | NOT operator: | |||
|  | 
 | |||
|  | | x | NOT x | | |||
|  | |---|---| | |||
|  | | F  | T  | | |||
|  | | T  | F  | | |||
|  | 
 | |||
|  | Implication operator: | |||
|  | 
 | |||
|  | | x | y | x IMPLY y  | | |||
|  | |---|---|---| | |||
|  | | F  | F  | T  | | |||
|  | | F  | T  | T  | | |||
|  | | T  | F  | F  | | |||
|  | | T  | T  | T  | | |||
|  | 
 | |||
|  | The implication operator can often be confusing to some. It is useful to relate real world examples to aid understanding for this operator. For example, consider:  | |||
|  | If it is raining then I use an umbrella.  | |||
|  | Here, assuming it is raining, then I use an umbrella (statement holds) | |||
|  | But if it is raining, and I don't use an umbrella, then the statement fails to hold. | |||
|  | Despite that, if it is not raining, and I still use an umbrella, then the statement also holds (it doesn't really matter if the umbrella is used or not, since it's not raining. Although it would look rather strange). | |||
|  | 
 | |||
|  | However, the implication operator can be puzzling for propositions involved that are false in the real world. Consider: | |||
|  | If the sun is made out of water then 1 + 1 = 3. | |||
|  | According to the implication truth table this propositional formula is true. | |||
|  | 
 | |||
|  | P implies Q can also be thought as an abbreviation for NOT(P) OR Q. | |||
|  | 
 | |||
|  | Double implication operator: | |||
|  | 
 | |||
|  | | x | y | x <-> y  | | |||
|  | |---|---|---| | |||
|  | | F  | F  | T  | | |||
|  | | F  | T  | F  | | |||
|  | | T  | F  | F  | | |||
|  | | T  | T  | T  | | |||
|  | 
 | |||
|  | 
 | |||
|  | Truth tables are a powerful tool. They can be used to express and evaluate simple boolean functions and operations, complex combinational circuits, and sequential logic circuits! | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | Here is the truth table for the OR operator | |||
|  | 
 | |||
|  | 
 | |||
|  | | x | y | x OR y  | | |||
|  | |---|---|---| | |||
|  | | F  | F  | F  | | |||
|  | | F  | T  | T  | | |||
|  | | T  | F  | T  | | |||
|  | | T  | T  | F  | | |||
|  | 
 | |||
|  | Just like above the OR operator operates on two variables, notice that the only time the OR operator evaluates to True is when `x` & `y` negate eachother. | |||
|  | 
 | |||
|  | Let's do one more, let's do the table for the Negation, this operates on one value instead of two | |||
|  | 
 | |||
|  | 
 | |||
|  | | x | NOT x  | | |||
|  | |---|---| | |||
|  | | T  | F  | | |||
|  | | F  | T  | | |||
|  | 
 | |||
|  | This rule is simpler and it simply negates the original value of `x` | |||
|  | 
 | |||
|  | #### More Information:
 | |||
|  | 
 | |||
|  | - <a href='http://hyperphysics.phy-astr.gsu.edu/hbase/Electronic/truth.html' target='_blank' rel='nofollow'>Hyperphysics - Georgia State University</a> | |||
|  | - <a href='https://en.wikipedia.org/wiki/Truth_table' target='_blank' rel='nofollow'>Wikipedia</a> | |||
|  | 
 |