PROOFCCT(3)

NAME
proofCct - checks the equivalence of two circuits

SYNOPSYS
#include "logmmm.h"
int proofCct(pC1,pC2)
pCircuit pC1;
pCircuit pC2;

PARAMETERS

pC1 first circuit to proof

pC2 second circuit to proof

DESCRIPTION
proofCct() checks the logical equivalence of pC1 and pC2. In order to correctly compare the two description, the circuits must contains the same primary inputs, primary outputs and association order of the primary inputs with the indexes (You can use for example the cpOrderCct() function).

EXAMPLE
#include "mutnnn.h"		/* mbk utilities */
#include "logmmm.h"
pCircuit pC1,pC2;
chain_list *expr;
initializeBdd(SMALL_BDD);
pC1 = initializeCct("circuit 1",10,10);
pC2= initializeCct("circuit 2",10,10);
	/* let's suppose that pC1 and pC2 are set */
proofCct(pC1,pC2)
/* it will display
************* PROOF between circuit 1 & circuit 2 **********
OUTPUT = s1 is equal
OUTPUT = s2 is different
s2 = (AND a b)
s2 = (AND (OR a b) c)
*********************** END OF PROOF ***********************
*/
destroyCct(pC1);
destroyCct(pC2);
destroyBdd(1);

SEE ALSO
log(1), bdd(1), cpOrderCct(3), gcNodeCct(3).