Utility.ShannonExpansion
Back to table
/*
Logic-Function-Analysis
Utility.ShannonExpansion
[LogicFunction() g]=Utility.ShannonExpansion(LogicFunction F1, LogicFunction F2);
F1 : a logic function as a target.
F2 : a logic function as a factor.
g : two logic function (g1,g2) are returned.
Compute the Shannon expansion of $F_1$, where $F_1=g_1 \cdot F2 + g_2 \cdot \not{F_2}$ .
*/
//-------------------------------------------------------------------
// examples
f = AndOr()
{
1;
2;
3;
}
h=And(-1,2);
g=Utility.ShannonExpansion(f,h);
Print(f,h,g);
[r]=Or( And(h,List.Get(g,1)), And(Not(h),List.Get(g,2)) );
Print(r,And(Not(r),f));
//-------------------------------------------------------------------
// result
MatchLogicFunction IsPositiveUnateFunctionTo IsSelfAntiDualFunction IsSymmetricFunctionTo IsUnateFunctionTo And BDD Binary List PureBinary bool() ToNotFunction ToROBDD ToVariableInvertedFunction Eq MostSignificantDigit PositiveIntegerToMantissa One To2LayerNor SOP To2LayerNand SAT Sequential Backwardly ToDigitalSystem ROBDD StateTransition AdjustLogicVariableCount Xor Zero