
℉_{min} = ℉ // Initialization /* ===================================================== Prepare to find minimal RHS We find a mininal RHS by "dropping dependencies" ====================================================== */ For each FD X → A_{1}A_{2}...A_{N} ∈ ℉_{min} do { replace X → A_{1}A_{2}...A_{N} by: X → A_{1} X → A_{2} ... X → A_{N} } /* ============================================================ Find the minimal LHS's ============================================================ */ For each FD X → A ∈ ℉_{min} do: { // Remove one attribute from LHS at a time..... For each attribute B ∈ X do: { /* ========================================= Check if attribute B ∈ X is neccesary ========================================= */ Compute (X  B)^{+} using FDs in ℉_{min}; if ( A ∈ (X  B)^{+} ) { replace X → A by (XB) → A in ℉_{min} // B was not neccessary } } /* ============================================================ Find the minimal RHS's ============================================================ */ For each FD X → A ∈ ℉_{min} do: { // Remove 1 RHS at a time..... /* ========================================= Check if X → A is neccesary ========================================= */ compute X^{+} using ℉_{min}  {X → A} if ( A ∈ X^{+} ) { remove X → A from ℉_{min} // X → A was not necessary } } /* ========================================= Finalize.... ========================================= */ Group the FDs with common LHS into one single FD. 
Relation R = (A, B, C, D, E, F) ℉_{1} = { A → C AC → D E → ADF } 
℉_{min} = ℉_{1} = { A → C AC → D E → ADF } 
Before: ℉_{min} = ℉_{1} = { A → C AC → D E → ADF } 
For each FD X → A ∈ ℉_{min} do: { // Remove one attribute from LHS at a time..... For each attribute B ∈ X do: { /* ========================================= Check if attribute B ∈ X is neccesary ========================================= */ Compute (X  B)^{+} using FDs in ℉_{min}; if ( A ∈ (X  B)^{+} ) { replace X → A_{i} by (XB) → A_{i} in ℉_{min} // B was not neccessary } } 
NOTE:

Execution:
℉_{min} = { A → C AC → D < Consider this FD E → A E → D E → F } 
Result:
Before: ℉_{min} = { A → C AC → D E → A E → D E → F } 
Note:

Initially: ℉_{min} = { A → C A → D E → A E → D E → F } 
Result:
℉_{min} = { A → C A → D E → A E → F } 
Final Result: minimal cover
℉_{min} = { A → CD E → AF } 
The resulting set of functional dependencies is a minimal cover of the original set of functional dependencies
The minimal cover is equivalent to the original set of functional dependencies but may have a fewer number of functional dependencies