Hi Kenny,
I was looking at this project and is great but some additional rules are missing.
I am referring to: expansion rule, decomposition rule, pseudo-transitivity rule and product rule.
Union rule:
If X->Y and X->Z, then X->YZ
Decomposition rule:
If X->YZ then X->Y and X->Z
Pseudo-transitivity rule:
If X->Y e WY->Z then WX->Z
Product rule:
Giving the functional dependencies X->Y and W->Z then XW->YZ
It can be useful too during exercises if you can add in the print the rule applied to find the functional dependency.
An example of one line in the output: ('BFH', 'BDH') -> Reflexivity rule
Can you implement those to make it fully complete? We would like to use it during exercises at university. Thanks a lot!