ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
assign.c File Reference
#include "assign.h"
#include "inline.h"
#include "inlineassign.h"
#include "logging.h"
#include <limits.h>
Include dependency graph for assign.c:

Go to the source code of this file.

Functions

ABC_NAMESPACE_IMPL_START void kissat_assign_unit (kissat *solver, unsigned lit, const char *reason)
 
void kissat_learned_unit (kissat *solver, unsigned lit)
 
void kissat_original_unit (kissat *solver, unsigned lit)
 
void kissat_assign_decision (kissat *solver, unsigned lit)
 
void kissat_assign_binary (kissat *solver, unsigned lit, unsigned other)
 
void kissat_assign_reference (kissat *solver, unsigned lit, reference ref, clause *reason)
 

Function Documentation

◆ kissat_assign_binary()

void kissat_assign_binary ( kissat * solver,
unsigned lit,
unsigned other )

Definition at line 34 of file assign.c.

34 {
35 KISSAT_assert (VALUE (other) < 0);
36 assigned *assigned = solver->assigned;
37 const unsigned other_idx = IDX (other);
38 struct assigned *a = assigned + other_idx;
39 unsigned level = a->level;
40 if (GET_OPTION (jumpreasons) && level && a->binary) {
41 LOGBINARY (lit, other, "jumping %s reason", LOGLIT (lit));
42 INC (jumped_reasons);
43 other = a->reason;
44 }
45 kissat_assign (solver, solver->probing, a->level, true, lit, other);
46 LOGBINARY (lit, other, "assign %s reason", LOGLIT (lit));
47}
#define INC(NAME)
#define KISSAT_assert(ignore)
Definition global.h:13
#define solver
Definition kitten.c:211
#define LOGBINARY(...)
Definition logging.h:442
#define LOGLIT(...)
Definition logging.hpp:99
#define GET_OPTION(N)
Definition options.h:295
int lit
Definition satVec.h:130
#define IDX(LIT)
Definition literal.h:28
bool binary
Definition assign.h:23
unsigned reason
Definition assign.h:28
unsigned level
Definition assign.h:19
#define VALUE(LIT)
Definition value.h:10
Here is the caller graph for this function:

◆ kissat_assign_decision()

void kissat_assign_decision ( kissat * solver,
unsigned lit )

Definition at line 28 of file assign.c.

28 {
29 kissat_assign (solver, solver->probing, solver->level, false, lit,
31 LOG ("assign %s decision", LOGLIT (lit));
32}
#define DECISION_REASON
Definition assign.h:9
#define LOG(...)
Here is the caller graph for this function:

◆ kissat_assign_reference()

void kissat_assign_reference ( kissat * solver,
unsigned lit,
reference ref,
clause * reason )

Definition at line 49 of file assign.c.

50 {
51 KISSAT_assert (reason == kissat_dereference_clause (solver, ref));
52 assigned *assigned = solver->assigned;
53 value *values = solver->values;
54 const unsigned level =
55 kissat_assignment_level (solver, values, assigned, lit, reason);
56 KISSAT_assert (level <= solver->level);
59 kissat_assign (solver, solver->probing, level, false, lit, ref);
60 LOGREF (ref, "assign %s reason", LOGLIT (lit));
61}
#define UNIT_REASON
Definition assign.h:10
ABC_NAMESPACE_IMPL_START typedef signed char value
#define LOGREF(...)
Definition logging.h:433
Here is the caller graph for this function:

◆ kissat_assign_unit()

ABC_NAMESPACE_IMPL_START void kissat_assign_unit ( kissat * solver,
unsigned lit,
const char * reason )

Definition at line 10 of file assign.c.

10 {
11 kissat_assign (solver, solver->probing, 0, false, lit, UNIT_REASON);
12 LOGUNARY (lit, "assign %s %s", LOGLIT (lit), reason);
13#ifndef LOGGING
14 (void) reason;
15#endif
16}
#define LOGUNARY(...)
Definition logging.h:451
Here is the caller graph for this function:

◆ kissat_learned_unit()

void kissat_learned_unit ( kissat * solver,
unsigned lit )

Definition at line 18 of file assign.c.

18 {
19 kissat_assign_unit (solver, lit, "learned reason");
22}
ABC_NAMESPACE_IMPL_START void kissat_assign_unit(kissat *solver, unsigned lit, const char *reason)
Definition assign.c:10
#define CHECK_AND_ADD_UNIT(...)
Definition check.h:155
#define ADD_UNIT_TO_PROOF(...)
Definition proof.h:141
Here is the call graph for this function:
Here is the caller graph for this function:

◆ kissat_original_unit()

void kissat_original_unit ( kissat * solver,
unsigned lit )

Definition at line 24 of file assign.c.

24 {
25 kissat_assign_unit (solver, lit, "original reason");
26}
Here is the call graph for this function:
Here is the caller graph for this function: