File tree 1 file changed +15
-6
lines changed
1 file changed +15
-6
lines changed Original file line number Diff line number Diff line change @@ -257,14 +257,23 @@ fn p7(context: &z3::Context, opts: &Options) -> SynthResult<Program> {
257
257
} else {
258
258
Some ( 1 )
259
259
} ) ) ;
260
+ library
261
+ . components
262
+ . push ( component:: const_ ( if opts. synthesize_constants {
263
+ None
264
+ } else {
265
+ Some ( std:: u64:: MAX )
266
+ } ) ) ;
260
267
261
268
let mut builder = ProgramBuilder :: new ( ) ;
262
- let a = builder. var ( ) ;
263
- let b = builder. const_ ( std:: u64:: MAX ) ;
264
- let c = builder. xor ( a, b) ;
265
- let d = builder. const_ ( 1 ) ;
266
- let e = builder. add ( c, d) ;
267
- let _ = builder. and ( c, e) ;
269
+ let x = builder. var ( ) ;
270
+ // o1 = bvnot(x) = xor(x, MAX)
271
+ let a = builder. const_ ( std:: u64:: MAX ) ;
272
+ let o1 = builder. xor ( x, a) ;
273
+ // o2 = bvadd(x, 1)
274
+ let b = builder. const_ ( 1 ) ;
275
+ let o2 = builder. add ( x, b) ;
276
+ let _ = builder. and ( o1, o2) ;
268
277
let spec = builder. finish ( ) ;
269
278
270
279
synthesize ( opts, context, & spec, & library)
You can’t perform that action at this time.
0 commit comments