abc-master
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "misc/vec/vec.h"
#include "misc/vec/vecSet.h"
#include "aig/aig/aig.h"
#include "satTruth.h"
Go to the source code of this file.
Data Structures | |
struct | satset_t |
Macros | |
#define | Proof_ForeachClauseVec(pVec, p, pNode, i) for ( i = 0; (i < Vec_IntSize(pVec)) && ((pNode) = Proof_ClauseRead(p, Vec_IntEntry(pVec,i))); i++ ) |
#define | Proof_ForeachNodeVec(pVec, p, pNode, i) for ( i = 0; (i < Vec_IntSize(pVec)) && ((pNode) = Proof_NodeRead(p, Vec_IntEntry(pVec,i))); i++ ) |
#define | Proof_ForeachNodeVec1(pVec, p, pNode, i) for ( i = 1; (i < Vec_IntSize(pVec)) && ((pNode) = Proof_NodeRead(p, Vec_IntEntry(pVec,i))); i++ ) |
#define | Proof_NodeForeachFanin(pProof, pNode, pFanin, i) for ( i = 0; (i < (int)pNode->nEnts) && (((pFanin) = (pNode->pEnts[i] & 1) ? NULL : Proof_NodeRead(pProof, pNode->pEnts[i] >> 2)), 1); i++ ) |
Typedefs | |
typedef typedefABC_NAMESPACE_IMPL_START struct satset_t | satset |
Functions | |
static satset * | Proof_NodeRead (Vec_Set_t *p, int h) |
DECLARATIONS ///. More... | |
static int | Proof_NodeWordNum (int nEnts) |
void | Proof_ClauseSetEnts (Vec_Set_t *p, int h, int nEnts) |
void | Proof_CleanCollected (Vec_Set_t *vProof, Vec_Int_t *vUsed) |
FUNCTION DEFINITIONS ///. More... | |
void | Proof_CollectUsed_iter (Vec_Set_t *vProof, int hNode, Vec_Int_t *vUsed, Vec_Int_t *vStack) |
Vec_Int_t * | Proof_CollectUsedIter (Vec_Set_t *vProof, Vec_Int_t *vRoots, int fSort) |
void | Proof_CollectUsed_rec (Vec_Set_t *vProof, int hNode, Vec_Int_t *vUsed) |
Vec_Int_t * | Proof_CollectUsedRec (Vec_Set_t *vProof, Vec_Int_t *vRoots) |
int | Proof_MarkUsed_rec (Vec_Set_t *vProof, int hNode) |
int | Proof_MarkUsedRec (Vec_Set_t *vProof, Vec_Int_t *vRoots) |
void | Sat_ProofCheck0 (Vec_Set_t *vProof) |
int | Sat_ProofReduce (Vec_Set_t *vProof, void *pRoots, int hProofPivot) |
Vec_Int_t * | Sat_ProofCollectCore (Vec_Set_t *vProof, Vec_Int_t *vUsed) |
void * | Proof_DeriveCore (Vec_Set_t *vProof, int hRoot) |
#define Proof_ForeachClauseVec | ( | pVec, | |
p, | |||
pNode, | |||
i | |||
) | for ( i = 0; (i < Vec_IntSize(pVec)) && ((pNode) = Proof_ClauseRead(p, Vec_IntEntry(pVec,i))); i++ ) |
Definition at line 64 of file satProof.c.
#define Proof_ForeachNodeVec | ( | pVec, | |
p, | |||
pNode, | |||
i | |||
) | for ( i = 0; (i < Vec_IntSize(pVec)) && ((pNode) = Proof_NodeRead(p, Vec_IntEntry(pVec,i))); i++ ) |
Definition at line 66 of file satProof.c.
#define Proof_ForeachNodeVec1 | ( | pVec, | |
p, | |||
pNode, | |||
i | |||
) | for ( i = 1; (i < Vec_IntSize(pVec)) && ((pNode) = Proof_NodeRead(p, Vec_IntEntry(pVec,i))); i++ ) |
Definition at line 68 of file satProof.c.
#define Proof_NodeForeachFanin | ( | pProof, | |
pNode, | |||
pFanin, | |||
i | |||
) | for ( i = 0; (i < (int)pNode->nEnts) && (((pFanin) = (pNode->pEnts[i] & 1) ? NULL : Proof_NodeRead(pProof, pNode->pEnts[i] >> 2)), 1); i++ ) |
Definition at line 72 of file satProof.c.
CFile****************************************************************
FileName [satProof.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [SAT solver.]
Synopsis [Proof manipulation procedures.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
]
Definition at line 41 of file satProof.c.
void Proof_ClauseSetEnts | ( | Vec_Set_t * | p, |
int | h, | ||
int | nEnts | ||
) |
Definition at line 61 of file satProof.c.
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Cleans collected resultion nodes belonging to the proof.]
Description []
SideEffects []
SeeAlso []
Definition at line 96 of file satProof.c.
void Proof_CollectUsed_iter | ( | Vec_Set_t * | vProof, |
int | hNode, | ||
Vec_Int_t * | vUsed, | ||
Vec_Int_t * | vStack | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 115 of file satProof.c.
Function*************************************************************
Synopsis [Recursively collects useful proof nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 187 of file satProof.c.
Definition at line 145 of file satProof.c.
Definition at line 199 of file satProof.c.
void* Proof_DeriveCore | ( | Vec_Set_t * | vProof, |
int | hRoot | ||
) |
Function*************************************************************
Synopsis [Computes UNSAT core.]
Description [The result is the array of root clause indexes.]
SideEffects []
SeeAlso []
Definition at line 913 of file satProof.c.
int Proof_MarkUsed_rec | ( | Vec_Set_t * | vProof, |
int | hNode | ||
) |
Function*************************************************************
Synopsis [Recursively visits useful proof nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 221 of file satProof.c.
Definition at line 233 of file satProof.c.
|
inlinestatic |
Definition at line 59 of file satProof.c.
void Sat_ProofCheck0 | ( | Vec_Set_t * | vProof | ) |
Function*************************************************************
Synopsis [Checks the validity of the check point.]
Description []
SideEffects []
SeeAlso [] Function*************************************************************
Synopsis [Reduces the proof to contain only roots and their children.]
Description [The result is updated proof and updated roots.]
SideEffects []
SeeAlso []
Definition at line 371 of file satProof.c.
Function*************************************************************
Synopsis [Collects nodes belonging to the UNSAT core.]
Description [The resulting array contains 1-based IDs of root clauses.]
SideEffects []
SeeAlso []
Definition at line 607 of file satProof.c.
int Sat_ProofReduce | ( | Vec_Set_t * | vProof, |
void * | pRoots, | ||
int | hProofPivot | ||
) |
Definition at line 383 of file satProof.c.