I would like to find the canonical cover or minimum number of functional dependencies in a database.
For example:
If you have: Table = (A,B,C) <-- these are columns: A,B,C
And dependencies:
A → BC
B → C
A → B
AB → C
The canonical cover (or minimum number of dependencies) is:
A → B
B → C
Is there a program that can accomplish this? If not, any code/pseudocode to help me write one would be appreciated. Prefer in Python or Java.