boolean_algebra.imply_gate

An IMPLY Gate is a logic gate in boolean algebra which results to 1 if either input 1 is 0, or if input 1 is 1, then the output is 1 only if input 2 is 1. It is true if input 1 implies input 2.

Following is the truth table of an IMPLY Gate:
Input 1 | Input 2 | Output |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |

Refer - https://en.wikipedia.org/wiki/IMPLY_gate

Functions

imply_gate(→ int)

Calculate IMPLY of the input values

recursive_imply_list(→ int)

Recursively calculates the implication of a list.

Module Contents

boolean_algebra.imply_gate.imply_gate(input_1: int, input_2: int) int

Calculate IMPLY of the input values

>>> imply_gate(0, 0)
1
>>> imply_gate(0, 1)
1
>>> imply_gate(1, 0)
0
>>> imply_gate(1, 1)
1
boolean_algebra.imply_gate.recursive_imply_list(input_list: list[int]) int

Recursively calculates the implication of a list. Strictly the implication is applied consecutively left to right: ( (a -> b) -> c ) -> d …

>>> recursive_imply_list([])
Traceback (most recent call last):
    ...
ValueError: Input list must contain at least two elements
>>> recursive_imply_list([0])
Traceback (most recent call last):
    ...
ValueError: Input list must contain at least two elements
>>> recursive_imply_list([1])
Traceback (most recent call last):
    ...
ValueError: Input list must contain at least two elements
>>> recursive_imply_list([0, 0])
1
>>> recursive_imply_list([0, 1])
1
>>> recursive_imply_list([1, 0])
0
>>> recursive_imply_list([1, 1])
1
>>> recursive_imply_list([0, 0, 0])
0
>>> recursive_imply_list([0, 0, 1])
1
>>> recursive_imply_list([0, 1, 0])
0
>>> recursive_imply_list([0, 1, 1])
1
>>> recursive_imply_list([1, 0, 0])
1
>>> recursive_imply_list([1, 0, 1])
1
>>> recursive_imply_list([1, 1, 0])
0
>>> recursive_imply_list([1, 1, 1])
1