What I have :
(A.B.C) + (D.E) + (F.G.H.I)
What I want using distributive law :
(A + D + F).(A + D + G).(A + D + H).(A + D + I).
(A + E + F).(A + E + G).(A + E + H).(A + E + I).
(B + D + F).(B + D + G).(B + D + H).(B + D + I).
(B + E + F).(B + E + G).(B + E + H).(B + E + I).
(C + D + F).(C + D + G).(C + D + H).(C + D + I).
(C + E + F).(C + E + G).(C + E + H).(C + E + I)
Both expressions are equivalent. I used distributive law to get the second one : A + (B . C) ⇔ (A + B) . (A + C)
The expression can be bigger but is always compose of groups of AND separated by OR.
What I'm looking for is a library that would be able to distribute logical expressions. A library like Sympy but applied to logic instead of algebra.