Changeset 40 for vis_dev/vis-2.3/src/debug/debug.c
- Timestamp:
- Jan 8, 2012, 5:12:00 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vis_dev/vis-2.3/src/debug/debug.c
r38 r40 296 296 return 1; 297 297 } 298 298 299 /* 299 300 We need the bdd when building the transition relation of the automaton … … 308 309 } 309 310 } 310 311 Dbg_Abnormal_t * abn = Dbg_NetworkReadAbnormal(network); 312 printf("abnormal %d \n",array_n(Dbg_ReadAbn(abn))); 311 313 /* 312 314 * Read the formula … … 394 396 int l; 395 397 // return the clause number 396 int noLoopIndex = BmcGenerateCnfForLtl(network, ltlFormula, 0, k, -1, cnfClauses);398 int noLoopIndex = BmcGenerateCnfForLtl(network, ltlFormula, 0, k, k, cnfClauses); 397 399 398 400 int leftValue = checkIndex(noLoopIndex, cnfClauses); 399 401 printf("noLoopIndex %d , leftValue %d \n", noLoopIndex,leftValue); 400 int rightValue,loop,andIndex; 401 array_t *orClause = NIL(array_t); 402 array_t *loopClause, *tmpclause; 403 404 if (leftValue != 1) { 405 orClause = array_alloc(int, 0); 406 if (leftValue == -1){ 407 array_insert_last(int, orClause, noLoopIndex); 408 } 409 loopClause = array_alloc(int, k+1); 410 for(l=0; l<=k; l++){ 411 int loopIndex = BmcGenerateCnfForLtl(network, ltlFormula, 0, k, l, cnfClauses); 412 rightValue = checkIndex(loopIndex, cnfClauses); 413 if (rightValue == 0){ 414 break; 415 } 416 if (rightValue !=0){ 417 loop = cnfClauses->cnfGlobalIndex++; 418 BmcCnfGenerateClausesFromStateToState(network, k, l, cnfClauses, 419 nodeToMvfAigTable, CoiTable, loop); 420 array_insert(int, loopClause, l, loop); 421 if(rightValue == -1){ 422 423 andIndex = cnfClauses->cnfGlobalIndex++; 424 tmpclause = array_alloc(int, 2); 425 array_insert(int, tmpclause, 0, loop); 426 array_insert(int, tmpclause, 1, -andIndex); 427 BmcCnfInsertClause(cnfClauses, tmpclause); 428 429 array_insert(int, tmpclause, 0, loopIndex); 430 array_insert(int, tmpclause, 1, -andIndex); 431 BmcCnfInsertClause(cnfClauses, tmpclause); 432 array_free(tmpclause); 433 array_insert_last(int, orClause, andIndex); 434 } 435 else { 436 array_insert_last(int, orClause, loop); 437 } 438 }} // for l loop 439 } 440 BmcCnfInsertClause(cnfClauses, orClause); 441 array_free(orClause); 442 443 402 array_t *objClause = NIL(array_t); 403 objClause = array_alloc(int, 0); 404 array_insert_last(int, objClause, noLoopIndex); 405 BmcCnfInsertClause(cnfClauses, objClause); 406 array_free(objClause); 407 408 409 //TODO Add abnormal formula 444 410 445 411
Note: See TracChangeset
for help on using the changeset viewer.