GCC Code Coverage Report
Directory: . Exec Total Coverage
File: test/unit/theory/theory_quantifiers_bv_inverter_white.cpp Lines: 927 943 98.3 %
Date: 2021-08-14 Branches: 636 1432 44.4 %

Line Exec Source
1
/******************************************************************************
2
 * Top contributors (to current version):
3
 *   Aina Niemetz, Mathias Preiner, Andrew Reynolds
4
 *
5
 * This file is part of the cvc5 project.
6
 *
7
 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
8
 * in the top-level source directory and their institutional affiliations.
9
 * All rights reserved.  See the file COPYING in the top-level source
10
 * directory for licensing information.
11
 * ****************************************************************************
12
 *
13
 * Unit tests for BV inverter.
14
 */
15
16
#include "expr/node.h"
17
#include "test_smt.h"
18
#include "theory/bv/theory_bv_utils.h"
19
#include "theory/quantifiers/bv_inverter_utils.h"
20
#include "util/result.h"
21
22
namespace cvc5 {
23
24
using namespace kind;
25
using namespace theory;
26
using namespace theory::quantifiers;
27
using namespace theory::quantifiers::utils;
28
29
namespace test {
30
31
1024
class TestTheoryWhiteQuantifiersBvInverter : public TestSmtNoFinishInit
32
{
33
 protected:
34
512
  void SetUp() override
35
  {
36
512
    TestSmtNoFinishInit::SetUp();
37
512
    d_smtEngine->setOption("cegqi-full", "true");
38
512
    d_smtEngine->setOption("produce-models", "true");
39
512
    d_smtEngine->finishInit();
40
41
512
    d_s = d_nodeManager->mkVar("s", d_nodeManager->mkBitVectorType(4));
42
512
    d_t = d_nodeManager->mkVar("t", d_nodeManager->mkBitVectorType(4));
43
512
    d_sk = d_skolemManager->mkDummySkolem("sk", d_t.getType());
44
512
    d_x = d_nodeManager->mkBoundVar(d_t.getType());
45
512
    d_bvarlist = d_nodeManager->mkNode(BOUND_VAR_LIST, {d_x});
46
512
  }
47
48
112
  void runTestPred(bool pol,
49
                   Kind k,
50
                   Node x,
51
                   Node (*getic)(bool, Kind, Node, Node))
52
  {
53
112
    ASSERT_TRUE(k == BITVECTOR_ULT || k == BITVECTOR_SLT || k == EQUAL
54
112
                || k == BITVECTOR_UGT || k == BITVECTOR_SGT);
55
112
    ASSERT_TRUE(k != EQUAL || pol == false);
56
57
224
    Node sc = getic(pol, k, d_sk, d_t);
58
112
    Kind ksc = sc.getKind();
59
112
    ASSERT_TRUE((k == BITVECTOR_ULT && pol == false)
60
                || (k == BITVECTOR_SLT && pol == false)
61
                || (k == BITVECTOR_UGT && pol == false)
62
112
                || (k == BITVECTOR_SGT && pol == false) || ksc == IMPLIES);
63
224
    Node scl = ksc == IMPLIES ? sc[0] : bv::utils::mkTrue();
64
112
    if (!pol)
65
    {
66
56
      if (k == BITVECTOR_ULT)
67
      {
68
14
        k = BITVECTOR_UGE;
69
      }
70
42
      else if (k == BITVECTOR_UGT)
71
      {
72
14
        k = BITVECTOR_ULE;
73
      }
74
28
      else if (k == BITVECTOR_SLT)
75
      {
76
14
        k = BITVECTOR_SGE;
77
      }
78
14
      else if (k == BITVECTOR_SGT)
79
      {
80
14
        k = BITVECTOR_ULE;
81
      }
82
      else
83
      {
84
        ASSERT_TRUE(k == EQUAL);
85
        k = DISTINCT;
86
      }
87
    }
88
224
    Node body = d_nodeManager->mkNode(k, x, d_t);
89
224
    Node scr = d_nodeManager->mkNode(EXISTS, d_bvarlist, body);
90
224
    Node a = d_nodeManager->mkNode(DISTINCT, scl, scr);
91
224
    Result res = d_smtEngine->checkSat(a);
92
112
    ASSERT_EQ(res.d_sat, Result::UNSAT);
93
  }
94
95
320
  void runTest(bool pol,
96
               Kind litk,
97
               Kind k,
98
               unsigned idx,
99
               Node (*getsc)(bool, Kind, Kind, unsigned, Node, Node, Node))
100
  {
101
320
    ASSERT_TRUE(k == BITVECTOR_MULT || k == BITVECTOR_UREM
102
                || k == BITVECTOR_UDIV || k == BITVECTOR_AND
103
                || k == BITVECTOR_OR || k == BITVECTOR_LSHR
104
320
                || k == BITVECTOR_ASHR || k == BITVECTOR_SHL);
105
106
640
    Node sc = getsc(pol, litk, k, idx, d_sk, d_s, d_t);
107
320
    ASSERT_FALSE(sc.isNull());
108
320
    Kind ksc = sc.getKind();
109
320
    ASSERT_TRUE((k == BITVECTOR_UDIV && idx == 1 && pol == false)
110
                || (k == BITVECTOR_ASHR && idx == 0 && pol == false)
111
320
                || ksc == IMPLIES);
112
640
    Node scl = ksc == IMPLIES ? sc[0] : bv::utils::mkTrue();
113
    Node body = idx == 0 ? d_nodeManager->mkNode(
114
480
                    litk, d_nodeManager->mkNode(k, d_x, d_s), d_t)
115
                         : d_nodeManager->mkNode(
116
1120
                             litk, d_nodeManager->mkNode(k, d_s, d_x), d_t);
117
    Node scr =
118
640
        d_nodeManager->mkNode(EXISTS, d_bvarlist, pol ? body : body.notNode());
119
640
    Node a = d_nodeManager->mkNode(DISTINCT, scl, scr);
120
640
    Result res = d_smtEngine->checkSat(a);
121
320
    if (res.d_sat == Result::SAT)
122
    {
123
      std::cout << std::endl;
124
      std::cout << "s " << d_smtEngine->getValue(d_s) << std::endl;
125
      std::cout << "t " << d_smtEngine->getValue(d_t) << std::endl;
126
      std::cout << "x " << d_smtEngine->getValue(d_x) << std::endl;
127
    }
128
320
    ASSERT_EQ(res.d_sat, Result::UNSAT);
129
  }
130
131
60
  void runTestConcat(bool pol, Kind litk, unsigned idx)
132
  {
133
120
    Node s1, s2, sv_t;
134
120
    Node x, t, sk;
135
120
    Node sc;
136
137
60
    if (idx == 0)
138
    {
139
20
      s2 = d_nodeManager->mkVar("s2", d_nodeManager->mkBitVectorType(4));
140
20
      x = d_nodeManager->mkBoundVar(s2.getType());
141
20
      sk = d_skolemManager->mkDummySkolem("sk", s2.getType());
142
20
      t = d_nodeManager->mkVar("t", d_nodeManager->mkBitVectorType(8));
143
20
      sv_t = d_nodeManager->mkNode(BITVECTOR_CONCAT, x, s2);
144
20
      sc = getICBvConcat(pol, litk, 0, sk, sv_t, t);
145
    }
146
40
    else if (idx == 1)
147
    {
148
20
      s1 = d_nodeManager->mkVar("s1", d_nodeManager->mkBitVectorType(4));
149
20
      x = d_nodeManager->mkBoundVar(s1.getType());
150
20
      sk = d_skolemManager->mkDummySkolem("sk", s1.getType());
151
20
      t = d_nodeManager->mkVar("t", d_nodeManager->mkBitVectorType(8));
152
20
      sv_t = d_nodeManager->mkNode(BITVECTOR_CONCAT, s1, x);
153
20
      sc = getICBvConcat(pol, litk, 1, sk, sv_t, t);
154
    }
155
    else
156
    {
157
20
      ASSERT_TRUE(idx == 2);
158
20
      s1 = d_nodeManager->mkVar("s1", d_nodeManager->mkBitVectorType(4));
159
20
      s2 = d_nodeManager->mkVar("s2", d_nodeManager->mkBitVectorType(4));
160
20
      x = d_nodeManager->mkBoundVar(s2.getType());
161
20
      sk = d_skolemManager->mkDummySkolem("sk", s1.getType());
162
20
      t = d_nodeManager->mkVar("t", d_nodeManager->mkBitVectorType(12));
163
20
      sv_t = d_nodeManager->mkNode(BITVECTOR_CONCAT, s1, x, s2);
164
20
      sc = getICBvConcat(pol, litk, 1, sk, sv_t, t);
165
    }
166
167
60
    ASSERT_FALSE(sc.isNull());
168
60
    Kind ksc = sc.getKind();
169
60
    ASSERT_TRUE((litk == kind::EQUAL && pol == false) || ksc == IMPLIES);
170
120
    Node scl = ksc == IMPLIES ? sc[0] : bv::utils::mkTrue();
171
120
    Node body = d_nodeManager->mkNode(litk, sv_t, t);
172
120
    Node bvarlist = d_nodeManager->mkNode(BOUND_VAR_LIST, {x});
173
    Node scr =
174
120
        d_nodeManager->mkNode(EXISTS, bvarlist, pol ? body : body.notNode());
175
120
    Node a = d_nodeManager->mkNode(DISTINCT, scl, scr);
176
120
    Result res = d_smtEngine->checkSat(a);
177
60
    if (res.d_sat == Result::SAT)
178
    {
179
      std::cout << std::endl;
180
      if (!s1.isNull())
181
        std::cout << "s1 " << d_smtEngine->getValue(s1) << std::endl;
182
      if (!s2.isNull())
183
        std::cout << "s2 " << d_smtEngine->getValue(s2) << std::endl;
184
      std::cout << "t " << d_smtEngine->getValue(t) << std::endl;
185
      std::cout << "x " << d_smtEngine->getValue(x) << std::endl;
186
    }
187
60
    ASSERT_TRUE(res.d_sat == Result::UNSAT);
188
  }
189
190
20
  void runTestSext(bool pol, Kind litk)
191
  {
192
20
    unsigned ws = 3;
193
20
    unsigned wx = 5;
194
20
    unsigned w = 8;
195
196
40
    Node x = d_nodeManager->mkVar("x", d_nodeManager->mkBitVectorType(wx));
197
40
    Node sk = d_skolemManager->mkDummySkolem("sk", x.getType());
198
20
    x = d_nodeManager->mkBoundVar(x.getType());
199
200
40
    Node t = d_nodeManager->mkVar("t", d_nodeManager->mkBitVectorType(w));
201
40
    Node sv_t = bv::utils::mkSignExtend(x, ws);
202
40
    Node sc = getICBvSext(pol, litk, 0, sk, sv_t, t);
203
204
20
    ASSERT_FALSE(sc.isNull());
205
20
    Kind ksc = sc.getKind();
206
20
    ASSERT_TRUE((litk == kind::EQUAL && pol == false)
207
                || (litk == kind::BITVECTOR_ULT && pol == false)
208
                || (litk == kind::BITVECTOR_UGT && pol == false)
209
20
                || ksc == IMPLIES);
210
40
    Node scl = ksc == IMPLIES ? sc[0] : bv::utils::mkTrue();
211
40
    Node body = d_nodeManager->mkNode(litk, sv_t, t);
212
40
    Node bvarlist = d_nodeManager->mkNode(BOUND_VAR_LIST, {x});
213
    Node scr =
214
40
        d_nodeManager->mkNode(EXISTS, bvarlist, pol ? body : body.notNode());
215
40
    Node a = d_nodeManager->mkNode(DISTINCT, scl, scr);
216
40
    Result res = d_smtEngine->checkSat(a);
217
20
    if (res.d_sat == Result::SAT)
218
    {
219
      std::cout << std::endl;
220
      std::cout << "t " << d_smtEngine->getValue(t) << std::endl;
221
      std::cout << "x " << d_smtEngine->getValue(x) << std::endl;
222
    }
223
20
    ASSERT_TRUE(res.d_sat == Result::UNSAT);
224
  }
225
226
  Node d_s;
227
  Node d_t;
228
  Node d_sk;
229
  Node d_x;
230
  Node d_bvarlist;
231
};
232
233
/* Generic invertibility conditions for LT ---------------------------------  */
234
235
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ult_true)
236
{
237
2
  runTestPred(true, BITVECTOR_ULT, d_x, getICBvUltUgt);
238
2
}
239
240
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ult_false)
241
{
242
2
  runTestPred(false, BITVECTOR_ULT, d_x, getICBvUltUgt);
243
2
}
244
245
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ugt_true)
246
{
247
2
  runTestPred(true, BITVECTOR_UGT, d_x, getICBvUltUgt);
248
2
}
249
250
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ugt_false)
251
{
252
2
  runTestPred(false, BITVECTOR_UGT, d_x, getICBvUltUgt);
253
2
}
254
255
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_slt_true)
256
{
257
2
  runTestPred(true, BITVECTOR_SLT, d_x, getICBvSltSgt);
258
2
}
259
260
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_slt_false)
261
{
262
2
  runTestPred(false, BITVECTOR_SLT, d_x, getICBvSltSgt);
263
2
}
264
265
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_sgt_true)
266
{
267
2
  runTestPred(true, BITVECTOR_SGT, d_x, getICBvSltSgt);
268
2
}
269
270
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, test_getIC_bv_sgt_false)
271
{
272
2
  runTestPred(false, BITVECTOR_SGT, d_x, getICBvSltSgt);
273
2
}
274
275
/* Equality and Disequality   ----------------------------------------------  */
276
277
/* Mult */
278
279
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_eq_true0)
280
{
281
2
  runTest(true, EQUAL, BITVECTOR_MULT, 0, getICBvMult);
282
2
}
283
284
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_eq_trueu)
285
{
286
2
  runTest(true, EQUAL, BITVECTOR_MULT, 1, getICBvMult);
287
2
}
288
289
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_eq_false0)
290
{
291
2
  runTest(false, EQUAL, BITVECTOR_MULT, 0, getICBvMult);
292
2
}
293
294
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_eq_false1)
295
{
296
2
  runTest(false, EQUAL, BITVECTOR_MULT, 1, getICBvMult);
297
2
}
298
299
/* Urem */
300
301
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_eq_true0)
302
{
303
2
  runTest(true, EQUAL, BITVECTOR_UREM, 0, getICBvUrem);
304
2
}
305
306
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_eq_true1)
307
{
308
2
  runTest(true, EQUAL, BITVECTOR_UREM, 1, getICBvUrem);
309
2
}
310
311
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_eq_false0)
312
{
313
2
  runTest(false, EQUAL, BITVECTOR_UREM, 0, getICBvUrem);
314
2
}
315
316
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_eq_false1)
317
{
318
2
  runTest(false, EQUAL, BITVECTOR_UREM, 1, getICBvUrem);
319
2
}
320
321
/* Udiv */
322
323
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_eq_true0)
324
{
325
2
  runTest(true, EQUAL, BITVECTOR_UDIV, 0, getICBvUdiv);
326
2
}
327
328
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_eq_true1)
329
{
330
2
  runTest(true, EQUAL, BITVECTOR_UDIV, 1, getICBvUdiv);
331
2
}
332
333
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_eq_false0)
334
{
335
2
  runTest(false, EQUAL, BITVECTOR_UDIV, 0, getICBvUdiv);
336
2
}
337
338
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_eq_false1)
339
{
340
2
  runTest(false, EQUAL, BITVECTOR_UDIV, 1, getICBvUdiv);
341
2
}
342
343
/* And */
344
345
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_eq_true0)
346
{
347
2
  runTest(true, EQUAL, BITVECTOR_AND, 0, getICBvAndOr);
348
2
}
349
350
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_eq_true1)
351
{
352
2
  runTest(true, EQUAL, BITVECTOR_AND, 1, getICBvAndOr);
353
2
}
354
355
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_eq_false0)
356
{
357
2
  runTest(false, EQUAL, BITVECTOR_AND, 0, getICBvAndOr);
358
2
}
359
360
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_eq_false1)
361
{
362
2
  runTest(false, EQUAL, BITVECTOR_AND, 1, getICBvAndOr);
363
2
}
364
365
/* Or */
366
367
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_eq_true0)
368
{
369
2
  runTest(true, EQUAL, BITVECTOR_OR, 0, getICBvAndOr);
370
2
}
371
372
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_eq_true1)
373
{
374
2
  runTest(true, EQUAL, BITVECTOR_OR, 1, getICBvAndOr);
375
2
}
376
377
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_eq_false0)
378
{
379
2
  runTest(false, EQUAL, BITVECTOR_OR, 0, getICBvAndOr);
380
2
}
381
382
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_eq_false1)
383
{
384
2
  runTest(false, EQUAL, BITVECTOR_OR, 1, getICBvAndOr);
385
2
}
386
387
/* Lshr */
388
389
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_eq_true0)
390
{
391
2
  runTest(true, EQUAL, BITVECTOR_LSHR, 0, getICBvLshr);
392
2
}
393
394
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_eq_true1)
395
{
396
2
  runTest(true, EQUAL, BITVECTOR_LSHR, 1, getICBvLshr);
397
2
}
398
399
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_eq_false0)
400
{
401
2
  runTest(false, EQUAL, BITVECTOR_LSHR, 0, getICBvLshr);
402
2
}
403
404
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_eq_false1)
405
{
406
2
  runTest(false, EQUAL, BITVECTOR_LSHR, 1, getICBvLshr);
407
2
}
408
409
/* Ashr */
410
411
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_eq_true0)
412
{
413
2
  runTest(true, EQUAL, BITVECTOR_ASHR, 0, getICBvAshr);
414
2
}
415
416
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_eq_true1)
417
{
418
2
  runTest(true, EQUAL, BITVECTOR_ASHR, 1, getICBvAshr);
419
2
}
420
421
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_eq_false0)
422
{
423
2
  runTest(false, EQUAL, BITVECTOR_ASHR, 0, getICBvAshr);
424
2
}
425
426
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_eq_false1)
427
{
428
2
  runTest(false, EQUAL, BITVECTOR_ASHR, 1, getICBvAshr);
429
2
}
430
431
/* Shl */
432
433
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_eq_true0)
434
{
435
2
  runTest(true, EQUAL, BITVECTOR_SHL, 0, getICBvShl);
436
2
}
437
438
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_eq_true1)
439
{
440
2
  runTest(true, EQUAL, BITVECTOR_SHL, 1, getICBvShl);
441
2
}
442
443
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_eq_false0)
444
{
445
2
  runTest(false, EQUAL, BITVECTOR_SHL, 0, getICBvShl);
446
2
}
447
448
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_eq_false1)
449
{
450
2
  runTest(false, EQUAL, BITVECTOR_SHL, 1, getICBvShl);
451
2
}
452
453
/* Concat */
454
455
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_eq_true0)
456
{
457
2
  runTestConcat(true, EQUAL, 0);
458
2
}
459
460
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_eq_true1)
461
{
462
2
  runTestConcat(true, EQUAL, 1);
463
2
}
464
465
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_eq_true2)
466
{
467
2
  runTestConcat(true, EQUAL, 2);
468
2
}
469
470
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_eq_false0)
471
{
472
2
  runTestConcat(false, EQUAL, 0);
473
2
}
474
475
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_eq_false1)
476
{
477
2
  runTestConcat(false, EQUAL, 1);
478
2
}
479
480
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_eq_false2)
481
{
482
2
  runTestConcat(false, EQUAL, 2);
483
2
}
484
485
/* Sext */
486
487
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_sext_eq_true)
488
{
489
2
  runTestSext(true, EQUAL);
490
2
}
491
492
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_sext_eq_false)
493
{
494
2
  runTestSext(false, EQUAL);
495
2
}
496
497
/* Inequality --------------------------------------------------------------  */
498
499
/* Not */
500
501
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_ult_true0)
502
{
503
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
504
2
  runTestPred(true, BITVECTOR_ULT, x, getICBvUltUgt);
505
2
}
506
507
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_ult_true1)
508
{
509
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
510
2
  runTestPred(true, BITVECTOR_ULT, x, getICBvUltUgt);
511
2
}
512
513
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_ult_false0)
514
{
515
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
516
2
  runTestPred(false, BITVECTOR_ULT, x, getICBvUltUgt);
517
2
}
518
519
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_ult_false1)
520
{
521
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
522
2
  runTestPred(false, BITVECTOR_ULT, x, getICBvUltUgt);
523
2
}
524
525
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_ugt_true0)
526
{
527
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
528
2
  runTestPred(true, BITVECTOR_UGT, x, getICBvUltUgt);
529
2
}
530
531
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_ugt_true1)
532
{
533
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
534
2
  runTestPred(true, BITVECTOR_UGT, x, getICBvUltUgt);
535
2
}
536
537
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_ugt_false0)
538
{
539
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
540
2
  runTestPred(false, BITVECTOR_UGT, x, getICBvUltUgt);
541
2
}
542
543
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_ugt_false1)
544
{
545
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
546
2
  runTestPred(false, BITVECTOR_UGT, x, getICBvUltUgt);
547
2
}
548
549
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_slt_true0)
550
{
551
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
552
2
  runTestPred(true, BITVECTOR_SLT, x, getICBvSltSgt);
553
2
}
554
555
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_slt_true1)
556
{
557
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
558
2
  runTestPred(true, BITVECTOR_SLT, x, getICBvSltSgt);
559
2
}
560
561
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_slt_false0)
562
{
563
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
564
2
  runTestPred(false, BITVECTOR_SLT, x, getICBvSltSgt);
565
2
}
566
567
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_slt_false1)
568
{
569
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
570
2
  runTestPred(false, BITVECTOR_SLT, x, getICBvSltSgt);
571
2
}
572
573
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_sgt_true0)
574
{
575
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
576
2
  runTestPred(true, BITVECTOR_SGT, x, getICBvSltSgt);
577
2
}
578
579
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_sgt_true1)
580
{
581
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
582
2
  runTestPred(true, BITVECTOR_SGT, x, getICBvSltSgt);
583
2
}
584
585
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_sgt_false0)
586
{
587
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
588
2
  runTestPred(false, BITVECTOR_SGT, x, getICBvSltSgt);
589
2
}
590
591
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_not_sgt_false1)
592
{
593
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NOT, d_x);
594
2
  runTestPred(false, BITVECTOR_SGT, x, getICBvSltSgt);
595
2
}
596
597
/* Neg */
598
599
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_ult_true0)
600
{
601
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
602
2
  runTestPred(true, BITVECTOR_ULT, x, getICBvUltUgt);
603
2
}
604
605
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_ult_true1)
606
{
607
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
608
2
  runTestPred(true, BITVECTOR_ULT, x, getICBvUltUgt);
609
2
}
610
611
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_ult_false0)
612
{
613
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
614
2
  runTestPred(false, BITVECTOR_ULT, x, getICBvUltUgt);
615
2
}
616
617
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_ult_false1)
618
{
619
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
620
2
  runTestPred(false, BITVECTOR_ULT, x, getICBvUltUgt);
621
2
}
622
623
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_ugt_true0)
624
{
625
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
626
2
  runTestPred(true, BITVECTOR_UGT, x, getICBvUltUgt);
627
2
}
628
629
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_ugt_true1)
630
{
631
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
632
2
  runTestPred(true, BITVECTOR_UGT, x, getICBvUltUgt);
633
2
}
634
635
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_ugt_false0)
636
{
637
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
638
2
  runTestPred(false, BITVECTOR_UGT, x, getICBvUltUgt);
639
2
}
640
641
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_ugt_false1)
642
{
643
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
644
2
  runTestPred(false, BITVECTOR_UGT, x, getICBvUltUgt);
645
2
}
646
647
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_slt_true0)
648
{
649
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
650
2
  runTestPred(true, BITVECTOR_SLT, x, getICBvSltSgt);
651
2
}
652
653
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_slt_true1)
654
{
655
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
656
2
  runTestPred(true, BITVECTOR_SLT, x, getICBvSltSgt);
657
2
}
658
659
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_slt_false0)
660
{
661
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
662
2
  runTestPred(false, BITVECTOR_SLT, x, getICBvSltSgt);
663
2
}
664
665
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_slt_false1)
666
{
667
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
668
2
  runTestPred(false, BITVECTOR_SLT, x, getICBvSltSgt);
669
2
}
670
671
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_sgt_true0)
672
{
673
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
674
2
  runTestPred(true, BITVECTOR_SGT, x, getICBvSltSgt);
675
2
}
676
677
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_sgt_true1)
678
{
679
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
680
2
  runTestPred(true, BITVECTOR_SGT, x, getICBvSltSgt);
681
2
}
682
683
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_sgt_false0)
684
{
685
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
686
2
  runTestPred(false, BITVECTOR_SGT, x, getICBvSltSgt);
687
2
}
688
689
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_neg_sgt_false1)
690
{
691
4
  Node x = d_nodeManager->mkNode(BITVECTOR_NEG, d_x);
692
2
  runTestPred(false, BITVECTOR_SGT, x, getICBvSltSgt);
693
2
}
694
695
/* Add */
696
697
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_ult_true0)
698
{
699
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_x, d_s);
700
2
  runTestPred(true, BITVECTOR_ULT, x, getICBvUltUgt);
701
2
}
702
703
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_ult_true1)
704
{
705
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_s, d_x);
706
2
  runTestPred(true, BITVECTOR_ULT, x, getICBvUltUgt);
707
2
}
708
709
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_ult_false0)
710
{
711
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_x, d_s);
712
2
  runTestPred(false, BITVECTOR_ULT, x, getICBvUltUgt);
713
2
}
714
715
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_ult_false1)
716
{
717
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_s, d_x);
718
2
  runTestPred(false, BITVECTOR_ULT, x, getICBvUltUgt);
719
2
}
720
721
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_ugt_true0)
722
{
723
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_x, d_s);
724
2
  runTestPred(true, BITVECTOR_UGT, x, getICBvUltUgt);
725
2
}
726
727
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_ugt_true1)
728
{
729
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_s, d_x);
730
2
  runTestPred(true, BITVECTOR_UGT, x, getICBvUltUgt);
731
2
}
732
733
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_ugt_false0)
734
{
735
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_x, d_s);
736
2
  runTestPred(false, BITVECTOR_UGT, x, getICBvUltUgt);
737
2
}
738
739
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_ugt_false1)
740
{
741
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_s, d_x);
742
2
  runTestPred(false, BITVECTOR_UGT, x, getICBvUltUgt);
743
2
}
744
745
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_slt_true0)
746
{
747
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_x, d_s);
748
2
  runTestPred(true, BITVECTOR_SLT, x, getICBvSltSgt);
749
2
}
750
751
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_slt_true1)
752
{
753
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_s, d_x);
754
2
  runTestPred(true, BITVECTOR_SLT, x, getICBvSltSgt);
755
2
}
756
757
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_slt_false0)
758
{
759
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_x, d_s);
760
2
  runTestPred(false, BITVECTOR_SLT, x, getICBvSltSgt);
761
2
}
762
763
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_slt_false1)
764
{
765
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_s, d_x);
766
2
  runTestPred(false, BITVECTOR_SLT, x, getICBvSltSgt);
767
2
}
768
769
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_sgt_true0)
770
{
771
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_x, d_s);
772
2
  runTestPred(true, BITVECTOR_SGT, x, getICBvSltSgt);
773
2
}
774
775
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_sgt_true1)
776
{
777
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_s, d_x);
778
2
  runTestPred(true, BITVECTOR_SGT, x, getICBvSltSgt);
779
2
}
780
781
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_sgt_false0)
782
{
783
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_x, d_s);
784
2
  runTestPred(false, BITVECTOR_SGT, x, getICBvSltSgt);
785
2
}
786
787
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_plus_sgt_false1)
788
{
789
4
  Node x = d_nodeManager->mkNode(BITVECTOR_ADD, d_s, d_x);
790
2
  runTestPred(false, BITVECTOR_SGT, x, getICBvSltSgt);
791
2
}
792
793
/* Mult */
794
795
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_ult_true0)
796
{
797
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_MULT, 0, getICBvMult);
798
2
}
799
800
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_ult_true1)
801
{
802
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_MULT, 1, getICBvMult);
803
2
}
804
805
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_ult_false0)
806
{
807
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_MULT, 0, getICBvMult);
808
2
}
809
810
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_ult_false1)
811
{
812
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_MULT, 1, getICBvMult);
813
2
}
814
815
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_ugt_true0)
816
{
817
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_MULT, 0, getICBvMult);
818
2
}
819
820
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_ugt_true1)
821
{
822
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_MULT, 1, getICBvMult);
823
2
}
824
825
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_ugt_false0)
826
{
827
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_MULT, 0, getICBvMult);
828
2
}
829
830
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_ugt_false1)
831
{
832
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_MULT, 1, getICBvMult);
833
2
}
834
835
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_slt_true0)
836
{
837
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_MULT, 0, getICBvMult);
838
2
}
839
840
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_slt_true1)
841
{
842
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_MULT, 1, getICBvMult);
843
2
}
844
845
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_slt_false0)
846
{
847
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_MULT, 0, getICBvMult);
848
2
}
849
850
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_slt_false1)
851
{
852
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_MULT, 1, getICBvMult);
853
2
}
854
855
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_sgt_true0)
856
{
857
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_MULT, 0, getICBvMult);
858
2
}
859
860
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_sgt_true1)
861
{
862
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_MULT, 1, getICBvMult);
863
2
}
864
865
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_sgt_false0)
866
{
867
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_MULT, 0, getICBvMult);
868
2
}
869
870
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_mult_sgt_false1)
871
{
872
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_MULT, 1, getICBvMult);
873
2
}
874
875
/* Urem */
876
877
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_ult_true0)
878
{
879
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_UREM, 0, getICBvUrem);
880
2
}
881
882
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_ult_true1)
883
{
884
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_UREM, 1, getICBvUrem);
885
2
}
886
887
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_ult_false0)
888
{
889
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_UREM, 0, getICBvUrem);
890
2
}
891
892
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_ult_false1)
893
{
894
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_UREM, 1, getICBvUrem);
895
2
}
896
897
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_ugt_true0)
898
{
899
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_UREM, 0, getICBvUrem);
900
2
}
901
902
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_ugt_true1)
903
{
904
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_UREM, 1, getICBvUrem);
905
2
}
906
907
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_ugt_false0)
908
{
909
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_UREM, 0, getICBvUrem);
910
2
}
911
912
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_ugt_false1)
913
{
914
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_UREM, 1, getICBvUrem);
915
2
}
916
917
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_slt_true0)
918
{
919
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_UREM, 0, getICBvUrem);
920
2
}
921
922
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_slt_true1)
923
{
924
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_UREM, 1, getICBvUrem);
925
2
}
926
927
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_slt_false0)
928
{
929
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_UREM, 0, getICBvUrem);
930
2
}
931
932
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_slt_false1)
933
{
934
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_UREM, 1, getICBvUrem);
935
2
}
936
937
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_sgt_true0)
938
{
939
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_UREM, 0, getICBvUrem);
940
2
}
941
942
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_sgt_true1)
943
{
944
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_UREM, 1, getICBvUrem);
945
2
}
946
947
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_sgt_false0)
948
{
949
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_UREM, 0, getICBvUrem);
950
2
}
951
952
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_urem_sgt_false1)
953
{
954
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_UREM, 1, getICBvUrem);
955
2
}
956
957
/* Udiv */
958
959
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_ult_true0)
960
{
961
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_UDIV, 0, getICBvUdiv);
962
2
}
963
964
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_ult_true1)
965
{
966
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_UDIV, 1, getICBvUdiv);
967
2
}
968
969
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_ult_false0)
970
{
971
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_UDIV, 0, getICBvUdiv);
972
2
}
973
974
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_ult_false1)
975
{
976
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_UDIV, 1, getICBvUdiv);
977
2
}
978
979
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_ugt_true0)
980
{
981
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_UDIV, 0, getICBvUdiv);
982
2
}
983
984
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_ugt_true1)
985
{
986
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_UDIV, 1, getICBvUdiv);
987
2
}
988
989
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_ugt_false0)
990
{
991
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_UDIV, 0, getICBvUdiv);
992
2
}
993
994
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_ugt_false1)
995
{
996
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_UDIV, 1, getICBvUdiv);
997
2
}
998
999
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_slt_true0)
1000
{
1001
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_UDIV, 0, getICBvUdiv);
1002
2
}
1003
1004
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_slt_true1)
1005
{
1006
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_UDIV, 1, getICBvUdiv);
1007
2
}
1008
1009
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_slt_false0)
1010
{
1011
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_UDIV, 0, getICBvUdiv);
1012
2
}
1013
1014
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_slt_false1)
1015
{
1016
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_UDIV, 1, getICBvUdiv);
1017
2
}
1018
1019
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_sgt_true0)
1020
{
1021
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_UDIV, 0, getICBvUdiv);
1022
2
}
1023
1024
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_sgt_true1)
1025
{
1026
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_UDIV, 1, getICBvUdiv);
1027
2
}
1028
1029
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_sgt_false0)
1030
{
1031
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_UDIV, 0, getICBvUdiv);
1032
2
}
1033
1034
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_udiv_sgt_false1)
1035
{
1036
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_UDIV, 1, getICBvUdiv);
1037
2
}
1038
1039
/* And */
1040
1041
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_ult_true0)
1042
{
1043
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_AND, 0, getICBvAndOr);
1044
2
}
1045
1046
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_ult_true1)
1047
{
1048
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_AND, 1, getICBvAndOr);
1049
2
}
1050
1051
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_ult_false0)
1052
{
1053
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_AND, 0, getICBvAndOr);
1054
2
}
1055
1056
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_ult_false1)
1057
{
1058
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_AND, 1, getICBvAndOr);
1059
2
}
1060
1061
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_ugt_true0)
1062
{
1063
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_AND, 0, getICBvAndOr);
1064
2
}
1065
1066
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_ugt_true1)
1067
{
1068
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_AND, 1, getICBvAndOr);
1069
2
}
1070
1071
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_ugt_false0)
1072
{
1073
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_AND, 0, getICBvAndOr);
1074
2
}
1075
1076
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_ugt_false1)
1077
{
1078
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_AND, 1, getICBvAndOr);
1079
2
}
1080
1081
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_slt_true0)
1082
{
1083
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_AND, 0, getICBvAndOr);
1084
2
}
1085
1086
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_slt_true1)
1087
{
1088
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_AND, 1, getICBvAndOr);
1089
2
}
1090
1091
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_slt_false0)
1092
{
1093
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_AND, 0, getICBvAndOr);
1094
2
}
1095
1096
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_slt_false1)
1097
{
1098
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_AND, 1, getICBvAndOr);
1099
2
}
1100
1101
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_sgt_true0)
1102
{
1103
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_AND, 0, getICBvAndOr);
1104
2
}
1105
1106
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_sgt_true1)
1107
{
1108
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_AND, 1, getICBvAndOr);
1109
2
}
1110
1111
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_sgt_false0)
1112
{
1113
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_AND, 0, getICBvAndOr);
1114
2
}
1115
1116
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_and_sgt_false1)
1117
{
1118
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_AND, 1, getICBvAndOr);
1119
2
}
1120
1121
/* Or */
1122
1123
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_ult_true0)
1124
{
1125
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_OR, 0, getICBvAndOr);
1126
2
}
1127
1128
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_ult_true1)
1129
{
1130
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_OR, 1, getICBvAndOr);
1131
2
}
1132
1133
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_ult_false0)
1134
{
1135
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_OR, 0, getICBvAndOr);
1136
2
}
1137
1138
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_ult_false1)
1139
{
1140
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_OR, 1, getICBvAndOr);
1141
2
}
1142
1143
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_ugt_true0)
1144
{
1145
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_OR, 0, getICBvAndOr);
1146
2
}
1147
1148
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_ugt_true1)
1149
{
1150
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_OR, 1, getICBvAndOr);
1151
2
}
1152
1153
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_ugt_false0)
1154
{
1155
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_OR, 0, getICBvAndOr);
1156
2
}
1157
1158
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_ugt_false1)
1159
{
1160
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_OR, 1, getICBvAndOr);
1161
2
}
1162
1163
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_slt_true0)
1164
{
1165
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_OR, 0, getICBvAndOr);
1166
2
}
1167
1168
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_slt_true1)
1169
{
1170
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_OR, 1, getICBvAndOr);
1171
2
}
1172
1173
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_slt_false0)
1174
{
1175
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_OR, 0, getICBvAndOr);
1176
2
}
1177
1178
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_slt_false1)
1179
{
1180
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_OR, 1, getICBvAndOr);
1181
2
}
1182
1183
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_sgt_true0)
1184
{
1185
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_OR, 0, getICBvAndOr);
1186
2
}
1187
1188
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_sgt_true1)
1189
{
1190
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_OR, 1, getICBvAndOr);
1191
2
}
1192
1193
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_sgt_false0)
1194
{
1195
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_OR, 0, getICBvAndOr);
1196
2
}
1197
1198
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_or_sgt_false1)
1199
{
1200
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_OR, 1, getICBvAndOr);
1201
2
}
1202
1203
/* Lshr */
1204
1205
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_ult_true0)
1206
{
1207
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_LSHR, 0, getICBvLshr);
1208
2
}
1209
1210
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_ult_true1)
1211
{
1212
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_LSHR, 1, getICBvLshr);
1213
2
}
1214
1215
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_ult_false0)
1216
{
1217
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_LSHR, 0, getICBvLshr);
1218
2
}
1219
1220
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_ult_false1)
1221
{
1222
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_LSHR, 1, getICBvLshr);
1223
2
}
1224
1225
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_ugt_true0)
1226
{
1227
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_LSHR, 0, getICBvLshr);
1228
2
}
1229
1230
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_ugt_true1)
1231
{
1232
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_LSHR, 1, getICBvLshr);
1233
2
}
1234
1235
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_ugt_false0)
1236
{
1237
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_LSHR, 0, getICBvLshr);
1238
2
}
1239
1240
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_ugt_false1)
1241
{
1242
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_LSHR, 1, getICBvLshr);
1243
2
}
1244
1245
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_slt_true0)
1246
{
1247
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_LSHR, 0, getICBvLshr);
1248
2
}
1249
1250
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_slt_true1)
1251
{
1252
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_LSHR, 1, getICBvLshr);
1253
2
}
1254
1255
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_slt_false0)
1256
{
1257
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_LSHR, 0, getICBvLshr);
1258
2
}
1259
1260
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_slt_false1)
1261
{
1262
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_LSHR, 1, getICBvLshr);
1263
2
}
1264
1265
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_sgt_true0)
1266
{
1267
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_LSHR, 0, getICBvLshr);
1268
2
}
1269
1270
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_sgt_true1)
1271
{
1272
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_LSHR, 1, getICBvLshr);
1273
2
}
1274
1275
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_sgt_false0)
1276
{
1277
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_LSHR, 0, getICBvLshr);
1278
2
}
1279
1280
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_lshr_sgt_false1)
1281
{
1282
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_LSHR, 1, getICBvLshr);
1283
2
}
1284
1285
/* Ashr */
1286
1287
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_ult_true0)
1288
{
1289
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_ASHR, 0, getICBvAshr);
1290
2
}
1291
1292
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_ult_true1)
1293
{
1294
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_ASHR, 1, getICBvAshr);
1295
2
}
1296
1297
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_ult_false0)
1298
{
1299
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_ASHR, 0, getICBvAshr);
1300
2
}
1301
1302
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_ult_false1)
1303
{
1304
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_ASHR, 1, getICBvAshr);
1305
2
}
1306
1307
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_ugt_true0)
1308
{
1309
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_ASHR, 0, getICBvAshr);
1310
2
}
1311
1312
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_ugt_true1)
1313
{
1314
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_ASHR, 1, getICBvAshr);
1315
2
}
1316
1317
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_ugt_false0)
1318
{
1319
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_ASHR, 0, getICBvAshr);
1320
2
}
1321
1322
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_ugt_false1)
1323
{
1324
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_ASHR, 1, getICBvAshr);
1325
2
}
1326
1327
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_slt_true0)
1328
{
1329
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_ASHR, 0, getICBvAshr);
1330
2
}
1331
1332
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_slt_true1)
1333
{
1334
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_ASHR, 1, getICBvAshr);
1335
2
}
1336
1337
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_slt_false0)
1338
{
1339
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_ASHR, 0, getICBvAshr);
1340
2
}
1341
1342
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_slt_false1)
1343
{
1344
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_ASHR, 1, getICBvAshr);
1345
2
}
1346
1347
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_sgt_true0)
1348
{
1349
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_ASHR, 0, getICBvAshr);
1350
2
}
1351
1352
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_sgt_true1)
1353
{
1354
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_ASHR, 1, getICBvAshr);
1355
2
}
1356
1357
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_sgt_false0)
1358
{
1359
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_ASHR, 0, getICBvAshr);
1360
2
}
1361
1362
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_ashr_sgt_false1)
1363
{
1364
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_ASHR, 1, getICBvAshr);
1365
2
}
1366
1367
/* Shl */
1368
1369
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_ult_true0)
1370
{
1371
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_SHL, 0, getICBvShl);
1372
2
}
1373
1374
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_ult_true1)
1375
{
1376
2
  runTest(true, BITVECTOR_ULT, BITVECTOR_SHL, 1, getICBvShl);
1377
2
}
1378
1379
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_ult_false0)
1380
{
1381
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_SHL, 0, getICBvShl);
1382
2
}
1383
1384
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_ult_false1)
1385
{
1386
2
  runTest(false, BITVECTOR_ULT, BITVECTOR_SHL, 1, getICBvShl);
1387
2
}
1388
1389
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_ugt_true0)
1390
{
1391
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_SHL, 0, getICBvShl);
1392
2
}
1393
1394
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_ugt_true1)
1395
{
1396
2
  runTest(true, BITVECTOR_UGT, BITVECTOR_SHL, 1, getICBvShl);
1397
2
}
1398
1399
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_ugt_false0)
1400
{
1401
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_SHL, 0, getICBvShl);
1402
2
}
1403
1404
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_ugt_false1)
1405
{
1406
2
  runTest(false, BITVECTOR_UGT, BITVECTOR_SHL, 1, getICBvShl);
1407
2
}
1408
1409
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_slt_true0)
1410
{
1411
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_SHL, 0, getICBvShl);
1412
2
}
1413
1414
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_slt_true1)
1415
{
1416
2
  runTest(true, BITVECTOR_SLT, BITVECTOR_SHL, 1, getICBvShl);
1417
2
}
1418
1419
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_slt_false0)
1420
{
1421
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_SHL, 0, getICBvShl);
1422
2
}
1423
1424
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_slt_false1)
1425
{
1426
2
  runTest(false, BITVECTOR_SLT, BITVECTOR_SHL, 1, getICBvShl);
1427
2
}
1428
1429
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_sgt_true0)
1430
{
1431
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_SHL, 0, getICBvShl);
1432
2
}
1433
1434
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_sgt_true1)
1435
{
1436
2
  runTest(true, BITVECTOR_SGT, BITVECTOR_SHL, 1, getICBvShl);
1437
2
}
1438
1439
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_sgt_false0)
1440
{
1441
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_SHL, 0, getICBvShl);
1442
2
}
1443
1444
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_shl_sgt_false1)
1445
{
1446
2
  runTest(false, BITVECTOR_SGT, BITVECTOR_SHL, 1, getICBvShl);
1447
2
}
1448
1449
/* Concat */
1450
1451
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ult_true0)
1452
{
1453
2
  runTestConcat(true, BITVECTOR_ULT, 0);
1454
2
}
1455
1456
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ult_true1)
1457
{
1458
2
  runTestConcat(true, BITVECTOR_ULT, 1);
1459
2
}
1460
1461
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ult_true2)
1462
{
1463
2
  runTestConcat(true, BITVECTOR_ULT, 2);
1464
2
}
1465
1466
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ult_false0)
1467
{
1468
2
  runTestConcat(false, BITVECTOR_ULT, 0);
1469
2
}
1470
1471
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ult_false1)
1472
{
1473
2
  runTestConcat(false, BITVECTOR_ULT, 1);
1474
2
}
1475
1476
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ult_false2)
1477
{
1478
2
  runTestConcat(false, BITVECTOR_ULT, 2);
1479
2
}
1480
1481
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ugt_true0)
1482
{
1483
2
  runTestConcat(true, BITVECTOR_UGT, 0);
1484
2
}
1485
1486
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ugt_true1)
1487
{
1488
2
  runTestConcat(true, BITVECTOR_UGT, 1);
1489
2
}
1490
1491
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ugt_true2)
1492
{
1493
2
  runTestConcat(true, BITVECTOR_UGT, 2);
1494
2
}
1495
1496
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ugt_false0)
1497
{
1498
2
  runTestConcat(false, BITVECTOR_UGT, 0);
1499
2
}
1500
1501
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ugt_false1)
1502
{
1503
2
  runTestConcat(false, BITVECTOR_UGT, 1);
1504
2
}
1505
1506
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_ugt_false2)
1507
{
1508
2
  runTestConcat(false, BITVECTOR_UGT, 2);
1509
2
}
1510
1511
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_slt_true0)
1512
{
1513
2
  runTestConcat(true, BITVECTOR_SLT, 0);
1514
2
}
1515
1516
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_slt_true1)
1517
{
1518
2
  runTestConcat(true, BITVECTOR_SLT, 1);
1519
2
}
1520
1521
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_slt_true2)
1522
{
1523
2
  runTestConcat(true, BITVECTOR_SLT, 2);
1524
2
}
1525
1526
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_slt_false0)
1527
{
1528
2
  runTestConcat(false, BITVECTOR_SLT, 0);
1529
2
}
1530
1531
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_slt_false1)
1532
{
1533
2
  runTestConcat(false, BITVECTOR_SLT, 1);
1534
2
}
1535
1536
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_slt_false2)
1537
{
1538
2
  runTestConcat(false, BITVECTOR_SLT, 2);
1539
2
}
1540
1541
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_sgt_true0)
1542
{
1543
2
  runTestConcat(true, BITVECTOR_SGT, 0);
1544
2
}
1545
1546
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_sgt_true1)
1547
{
1548
2
  runTestConcat(true, BITVECTOR_SGT, 1);
1549
2
}
1550
1551
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_sgt_true2)
1552
{
1553
2
  runTestConcat(true, BITVECTOR_SGT, 2);
1554
2
}
1555
1556
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_sgt_false0)
1557
{
1558
2
  runTestConcat(false, BITVECTOR_SGT, 0);
1559
2
}
1560
1561
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_sgt_false1)
1562
{
1563
2
  runTestConcat(false, BITVECTOR_SGT, 1);
1564
2
}
1565
1566
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_concat_sgt_false2)
1567
{
1568
2
  runTestConcat(false, BITVECTOR_SGT, 2);
1569
2
}
1570
1571
/* Sext */
1572
1573
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_sext_ult_true)
1574
{
1575
2
  runTestSext(true, BITVECTOR_ULT);
1576
2
}
1577
1578
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_sext_ult_false)
1579
{
1580
2
  runTestSext(false, BITVECTOR_ULT);
1581
2
}
1582
1583
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_sext_ugt_true)
1584
{
1585
2
  runTestSext(true, BITVECTOR_UGT);
1586
2
}
1587
1588
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_sext_ugt_false)
1589
{
1590
2
  runTestSext(false, BITVECTOR_UGT);
1591
2
}
1592
1593
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_sext_slt_true)
1594
{
1595
2
  runTestSext(true, BITVECTOR_SLT);
1596
2
}
1597
1598
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_sext_slt_false)
1599
{
1600
2
  runTestSext(false, BITVECTOR_SLT);
1601
2
}
1602
1603
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_sext_sgt_true)
1604
{
1605
2
  runTestSext(true, BITVECTOR_SGT);
1606
2
}
1607
1608
265
TEST_F(TestTheoryWhiteQuantifiersBvInverter, getIC_bv_sext_sgt_false)
1609
{
1610
2
  runTestSext(false, BITVECTOR_SGT);
1611
2
}
1612
}  // namespace test
1613
88643049
}  // namespace cvc5