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
IsPositiveUnateFunctionTo IsSelfAntiDualFunction IsSymmetricFunction PureBinary StringToBinaryNumber TwoComplement ToTruthTable ToVariableInvertedFunction Dimacs ExcitationTable Nand MantissaToPositiveDecimal real ShortestInputsForDistinguishTwoStates AutoAssignInputAndStateVariables StateVariables ToFeedbackSystem ToDigitalSystem To2layerOrAnd Compatibility FastVerificationData ROBDD Full string() TruthTable GetSubTable ComputeDONTCARE ComputeFunctionOrder var() Zero