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 IsInverse IsLinearFunction IsPositiveUnateFunctionTo IsZeroFunction BDD binary() ToBinary PureBinary binaryioset ToSOP ToTruthTable ToXORP Email Load long() Minus MostSignificantDigit RadixFromIndex object() One OrAnd To2LayerAndOr To2LayerAndXor Sequential StateTransitionBasedly ShannonTree FastVerificationData ShrinkLogicFunction Zero