This python program was created for educational purposes. (Is an old code and is not meant to be optimized) It is able to read a bool expression, generate a truth table from that, and finaly reduce the input expression in the smallests expressions (one or more). You can also indicate how much variable exist and say also what are the solution to set at one.
The boolean expression is first splitted in fundamental parts (adding implicited multiplication) and after converted in a dictionary that il builded following the priority of brakets and of the multiplication
The expression converted to a dict, passed with the inputs into a function, generate the result. With this the program can generate the truth table.
Look Quine–McCluskey algorithm and Petrick's method. The algorithms are based on these principles and permitts the minimization of the expressions.
Remember to use my library TerminalMenu.py for the User Interface, download it and save it in the cloned repository