Z3
Public Member Functions | Protected Member Functions
UserPropagatorBase Class Referenceabstract
+ Inheritance diagram for UserPropagatorBase:

Public Member Functions

 UserPropagatorBase (Context _ctx, Solver _solver)
 
final Context getCtx ()
 
final Solver getSolver ()
 
abstract void push ()
 
abstract void pop (int number)
 
abstract UserPropagatorBase fresh (Context ctx)
 
void created (Expr<?> ast)
 
void fixed (Expr<?> var, Expr<?> value)
 
void eq (Expr<?> x, Expr<?> y)
 
void decide (Expr<?> var, int bit, boolean is_pos)
 
void fin ()
 
final void add (Expr<?> expr)
 
final boolean conflict (Expr<?>[] fixed)
 
final boolean conflict (Expr<?>[] fixed, Expr<?>[] lhs, Expr<?>[] rhs)
 
final boolean consequence (Expr<?>[] fixed, Expr<?>[] lhs, Expr<?>[] rhs, Expr<?> conseq)
 
final boolean nextSplit (Expr<?> e, long idx, Z3_lbool phase)
 

Protected Member Functions

final void pushWrapper ()
 
final void popWrapper (int number)
 
final void finWrapper ()
 
final void eqWrapper (long lx, long ly)
 
final UserPropagatorBase freshWrapper (long lctx)
 
final void createdWrapper (long last)
 
final void fixedWrapper (long lvar, long lvalue)
 
final void decideWrapper (long lvar, int bit, boolean is_pos)
 

Detailed Description

Definition at line 6 of file UserPropagatorBase.java.

Constructor & Destructor Documentation

◆ UserPropagatorBase()

UserPropagatorBase ( Context  _ctx,
Solver  _solver 
)
inline

Definition at line 10 of file UserPropagatorBase.java.

10  {
11  super(_ctx.nCtx(), _solver.getNativeObject());
12  ctx = _ctx;
13  solver = _solver;
14  }

Member Function Documentation

◆ add()

final void add ( Expr<?>  expr)
inline

Definition at line 85 of file UserPropagatorBase.java.

85  {
86  Native.propagateAdd(this, ctx.nCtx(), solver.getNativeObject(), javainfo, expr.getNativeObject());
87  }

Referenced by Solver.__iadd__(), Fixedpoint.__iadd__(), and Optimize.__iadd__().

◆ conflict() [1/2]

final boolean conflict ( Expr<?>[]  fixed)
inline

Definition at line 89 of file UserPropagatorBase.java.

89  {
90  return conflict(fixed, new Expr[0], new Expr[0]);
91  }
final boolean conflict(Expr<?>[] fixed)
void fixed(Expr<?> var, Expr<?> value)

◆ conflict() [2/2]

final boolean conflict ( Expr<?>[]  fixed,
Expr<?>[]  lhs,
Expr<?>[]  rhs 
)
inline

Definition at line 93 of file UserPropagatorBase.java.

93  {
94  return consequence(fixed, lhs, rhs, ctx.mkBool(false));
95  }
BoolExpr mkBool(boolean value)
Definition: Context.java:742
final boolean consequence(Expr<?>[] fixed, Expr<?>[] lhs, Expr<?>[] rhs, Expr<?> conseq)

◆ consequence()

final boolean consequence ( Expr<?>[]  fixed,
Expr<?>[]  lhs,
Expr<?>[]  rhs,
Expr<?>  conseq 
)
inline

Definition at line 97 of file UserPropagatorBase.java.

97  {
98  return Native.propagateConsequence(
99  this, ctx.nCtx(), solver.getNativeObject(), javainfo,
100  fixed.length, AST.arrayToNative(fixed), lhs.length, AST.arrayToNative(lhs), AST.arrayToNative(rhs), conseq.getNativeObject());
101  }

Referenced by UserPropagatorBase.conflict().

◆ created()

void created ( Expr<?>  ast)
inline

◆ createdWrapper()

final void createdWrapper ( long  last)
inlineprotected

Definition at line 52 of file UserPropagatorBase.java.

52  {
53  created(new Expr(ctx, last));
54  }

◆ decide()

void decide ( Expr<?>  var,
int  bit,
boolean  is_pos 
)
inline

Definition at line 81 of file UserPropagatorBase.java.

81 {}

Referenced by UserPropagateBase.add_decide(), and UserPropagatorBase.decideWrapper().

◆ decideWrapper()

final void decideWrapper ( long  lvar,
int  bit,
boolean  is_pos 
)
inlineprotected

Definition at line 64 of file UserPropagatorBase.java.

64  {
65  Expr var = new Expr(ctx, lvar);
66  decide(var, bit, is_pos);
67  }
void decide(Expr<?> var, int bit, boolean is_pos)

◆ eq()

void eq ( Expr<?>  x,
Expr<?>  y 
)
inline

◆ eqWrapper()

final void eqWrapper ( long  lx,
long  ly 
)
inlineprotected

Definition at line 40 of file UserPropagatorBase.java.

40  {
41  Expr x = new Expr(ctx, lx);
42  Expr y = new Expr(ctx, ly);
43  eq(x, y);
44  }

◆ fin()

void fin ( )
inline

Definition at line 83 of file UserPropagatorBase.java.

83 {}

Referenced by UserPropagatorBase.finWrapper().

◆ finWrapper()

final void finWrapper ( )
inlineprotected

Definition at line 35 of file UserPropagatorBase.java.

35  {
36  fin();
37  }

◆ fixed()

void fixed ( Expr<?>  var,
Expr<?>  value 
)
inline

◆ fixedWrapper()

final void fixedWrapper ( long  lvar,
long  lvalue 
)
inlineprotected

Definition at line 57 of file UserPropagatorBase.java.

57  {
58  Expr var = new Expr(ctx, lvar);
59  Expr value = new Expr(ctx, lvalue);
60  fixed(var, value);
61  }

◆ fresh()

abstract UserPropagatorBase fresh ( Context  ctx)
abstract

◆ freshWrapper()

final UserPropagatorBase freshWrapper ( long  lctx)
inlineprotected

Definition at line 47 of file UserPropagatorBase.java.

47  {
48  return fresh(new Context(lctx));
49  }
abstract UserPropagatorBase fresh(Context ctx)

◆ getCtx()

final Context getCtx ( )
inline

Definition at line 16 of file UserPropagatorBase.java.

16  {
17  return ctx;
18  }

◆ getSolver()

final Solver getSolver ( )
inline

Definition at line 20 of file UserPropagatorBase.java.

20  {
21  return solver;
22  }

◆ nextSplit()

final boolean nextSplit ( Expr<?>  e,
long  idx,
Z3_lbool  phase 
)
inline

Definition at line 103 of file UserPropagatorBase.java.

103  {
104  return Native.propagateNextSplit(
105  this, ctx.nCtx(), solver.getNativeObject(), javainfo,
106  e.getNativeObject(), idx, phase.toInt());
107  }

◆ pop()

abstract void pop ( int  number)
abstract

◆ popWrapper()

final void popWrapper ( int  number)
inlineprotected

Definition at line 30 of file UserPropagatorBase.java.

30  {
31  pop(number);
32  }
abstract void pop(int number)

◆ push()

abstract void push ( )
abstract

◆ pushWrapper()

final void pushWrapper ( )
inlineprotected

Definition at line 25 of file UserPropagatorBase.java.

25  {
26  push();
27  }