GCC Code Coverage Report
Directory: . Exec Total Coverage
File: test/unit/theory/logic_info_white.cpp Lines: 1233 1236 99.8 %
Date: 2021-05-22 Branches: 4144 12768 32.5 %

Line Exec Source
1
/******************************************************************************
2
 * Top contributors (to current version):
3
 *   Aina Niemetz, Morgan Deters, Andres Noetzli
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 testing for cvc5::LogicInfo class.
14
 */
15
16
#include "base/configuration.h"
17
#include "expr/kind.h"
18
#include "test.h"
19
#include "theory/logic_info.h"
20
21
namespace cvc5 {
22
23
using namespace theory;
24
25
namespace test {
26
27
12
class TestTheoryWhiteLogicInfo : public TestInternal
28
{
29
  // This test is of questionable compatiblity with contrib/new-theory. Is the
30
  // new theory id handled correctly by the Logic info.
31
 protected:
32
48
  void eq(const LogicInfo& logic1, const LogicInfo& logic2) const
33
  {
34
48
    std::cout << "asserting that " << logic1 << " == " << logic2 << std::endl;
35
36
48
    ASSERT_TRUE(logic1 == logic2);
37
48
    ASSERT_FALSE((logic1 != logic2));
38
48
    ASSERT_FALSE((logic1 < logic2));
39
48
    ASSERT_FALSE((logic1 > logic2));
40
48
    ASSERT_TRUE(logic1 <= logic2);
41
48
    ASSERT_TRUE(logic1 >= logic2);
42
48
    ASSERT_TRUE(logic1.isComparableTo(logic2));
43
44
48
    ASSERT_TRUE(logic2 == logic1);
45
48
    ASSERT_FALSE((logic2 != logic1));
46
48
    ASSERT_FALSE((logic2 < logic1));
47
48
    ASSERT_FALSE((logic2 > logic1));
48
48
    ASSERT_TRUE(logic2 <= logic1);
49
48
    ASSERT_TRUE(logic2 >= logic1);
50
48
    ASSERT_TRUE(logic2.isComparableTo(logic1));
51
  }
52
53
688
  void nc(const LogicInfo& logic1, const LogicInfo& logic2) const
54
  {
55
688
    std::cout << "asserting that " << logic1 << " is-not-comparable-to "
56
688
              << logic2 << std::endl;
57
688
    ASSERT_FALSE((logic1 == logic2));
58
688
    ASSERT_TRUE(logic1 != logic2);
59
688
    ASSERT_FALSE((logic1 < logic2));
60
688
    ASSERT_FALSE((logic1 > logic2));
61
688
    ASSERT_FALSE((logic1 <= logic2));
62
688
    ASSERT_FALSE((logic1 >= logic2));
63
688
    ASSERT_FALSE(logic1.isComparableTo(logic2));
64
65
688
    ASSERT_FALSE((logic2 == logic1));
66
688
    ASSERT_TRUE(logic2 != logic1);
67
688
    ASSERT_FALSE((logic2 < logic1));
68
688
    ASSERT_FALSE((logic2 > logic1));
69
688
    ASSERT_FALSE((logic2 <= logic1));
70
688
    ASSERT_FALSE((logic2 >= logic1));
71
688
    ASSERT_FALSE(logic2.isComparableTo(logic1));
72
  }
73
74
222
  void lt(const LogicInfo& logic1, const LogicInfo& logic2) const
75
  {
76
222
    std::cout << "asserting that " << logic1 << " < " << logic2 << std::endl;
77
78
222
    ASSERT_FALSE((logic1 == logic2));
79
222
    ASSERT_TRUE(logic1 != logic2);
80
222
    ASSERT_TRUE(logic1 < logic2);
81
222
    ASSERT_FALSE((logic1 > logic2));
82
222
    ASSERT_TRUE(logic1 <= logic2);
83
222
    ASSERT_FALSE((logic1 >= logic2));
84
222
    ASSERT_TRUE(logic1.isComparableTo(logic2));
85
86
222
    ASSERT_FALSE((logic2 == logic1));
87
222
    ASSERT_TRUE(logic2 != logic1);
88
222
    ASSERT_FALSE((logic2 < logic1));
89
222
    ASSERT_TRUE(logic2 > logic1);
90
222
    ASSERT_FALSE((logic2 <= logic1));
91
222
    ASSERT_TRUE(logic2 >= logic1);
92
222
    ASSERT_TRUE(logic2.isComparableTo(logic1));
93
  }
94
95
216
  void gt(const LogicInfo& logic1, const LogicInfo& logic2) const
96
  {
97
216
    std::cout << "asserting that " << logic1 << " > " << logic2 << std::endl;
98
99
216
    ASSERT_FALSE((logic1 == logic2));
100
216
    ASSERT_TRUE(logic1 != logic2);
101
216
    ASSERT_FALSE((logic1 < logic2));
102
216
    ASSERT_TRUE(logic1 > logic2);
103
216
    ASSERT_FALSE((logic1 <= logic2));
104
216
    ASSERT_TRUE(logic1 >= logic2);
105
216
    ASSERT_TRUE(logic1.isComparableTo(logic2));
106
107
216
    ASSERT_FALSE((logic2 == logic1));
108
216
    ASSERT_TRUE(logic2 != logic1);
109
216
    ASSERT_TRUE(logic2 < logic1);
110
216
    ASSERT_FALSE((logic2 > logic1));
111
216
    ASSERT_TRUE(logic2 <= logic1);
112
216
    ASSERT_FALSE((logic2 >= logic1));
113
216
    ASSERT_TRUE(logic2.isComparableTo(logic1));
114
  }
115
};
116
117
12
TEST_F(TestTheoryWhiteLogicInfo, smtlib_logics)
118
{
119
4
  LogicInfo info("QF_SAT");
120
2
  ASSERT_TRUE(info.isLocked());
121
2
  ASSERT_FALSE(info.isSharingEnabled());
122
2
  ASSERT_TRUE(info.isPure(THEORY_BOOL));
123
2
  ASSERT_FALSE(info.isQuantified());
124
2
  ASSERT_FALSE(info.hasEverything());
125
2
  ASSERT_TRUE(info.hasNothing());
126
127
2
  info = LogicInfo("AUFLIA");
128
2
  ASSERT_FALSE(info.isPure(THEORY_BOOL));
129
2
  ASSERT_TRUE(info.isSharingEnabled());
130
2
  ASSERT_TRUE(info.isQuantified());
131
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
132
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
133
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
134
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
135
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
136
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
137
2
  ASSERT_TRUE(info.isLinear());
138
2
  ASSERT_TRUE(info.areIntegersUsed());
139
2
  ASSERT_FALSE(info.isDifferenceLogic());
140
2
  ASSERT_FALSE(info.areRealsUsed());
141
2
  ASSERT_FALSE(info.hasEverything());
142
2
  ASSERT_FALSE(info.hasNothing());
143
144
2
  info = LogicInfo("AUFLIRA");
145
2
  ASSERT_FALSE(info.isPure(THEORY_BOOL));
146
2
  ASSERT_TRUE(info.isSharingEnabled());
147
2
  ASSERT_TRUE(info.isQuantified());
148
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
149
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
150
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
151
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
152
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
153
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
154
2
  ASSERT_TRUE(info.isLinear());
155
2
  ASSERT_TRUE(info.areIntegersUsed());
156
2
  ASSERT_FALSE(info.isDifferenceLogic());
157
2
  ASSERT_TRUE(info.areRealsUsed());
158
2
  ASSERT_FALSE(info.hasEverything());
159
2
  ASSERT_FALSE(info.hasNothing());
160
161
2
  info = LogicInfo("AUFNIRA");
162
2
  ASSERT_FALSE(info.isPure(THEORY_BOOL));
163
2
  ASSERT_TRUE(info.isSharingEnabled());
164
2
  ASSERT_TRUE(info.isQuantified());
165
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
166
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
167
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
168
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
169
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
170
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
171
2
  ASSERT_FALSE(info.isLinear());
172
2
  ASSERT_TRUE(info.areIntegersUsed());
173
2
  ASSERT_FALSE(info.isDifferenceLogic());
174
2
  ASSERT_TRUE(info.areRealsUsed());
175
2
  ASSERT_FALSE(info.hasEverything());
176
2
  ASSERT_FALSE(info.hasNothing());
177
178
2
  info = LogicInfo("LRA");
179
2
  ASSERT_FALSE(info.isPure(THEORY_BOOL));
180
2
  ASSERT_FALSE(info.isSharingEnabled());
181
2
  ASSERT_TRUE(info.isQuantified());
182
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
183
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
184
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
185
2
  ASSERT_TRUE(info.isPure(THEORY_ARITH));
186
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
187
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
188
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
189
2
  ASSERT_TRUE(info.isLinear());
190
2
  ASSERT_FALSE(info.areIntegersUsed());
191
2
  ASSERT_FALSE(info.isDifferenceLogic());
192
2
  ASSERT_TRUE(info.areRealsUsed());
193
2
  ASSERT_FALSE(info.hasEverything());
194
2
  ASSERT_FALSE(info.hasNothing());
195
196
2
  info = LogicInfo("QF_ABV");
197
2
  ASSERT_FALSE(info.isPure(THEORY_BOOL));
198
2
  ASSERT_FALSE(info.isQuantified());
199
2
  ASSERT_TRUE(info.isSharingEnabled());
200
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
201
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
202
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARITH));
203
2
  ASSERT_FALSE(info.isPure(THEORY_ARRAYS));
204
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BV));
205
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
206
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
207
2
  ASSERT_FALSE(info.hasEverything());
208
2
  ASSERT_FALSE(info.hasNothing());
209
210
2
  info = LogicInfo("QF_AUFBV");
211
2
  ASSERT_FALSE(info.isQuantified());
212
2
  ASSERT_TRUE(info.isSharingEnabled());
213
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
214
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
215
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARITH));
216
2
  ASSERT_FALSE(info.isPure(THEORY_ARRAYS));
217
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BV));
218
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
219
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
220
2
  ASSERT_FALSE(info.hasEverything());
221
2
  ASSERT_FALSE(info.hasNothing());
222
223
2
  info = LogicInfo("QF_AUFLIA");
224
2
  ASSERT_FALSE(info.isQuantified());
225
2
  ASSERT_TRUE(info.isSharingEnabled());
226
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
227
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
228
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
229
2
  ASSERT_FALSE(info.isPure(THEORY_ARRAYS));
230
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
231
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
232
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
233
2
  ASSERT_TRUE(info.isLinear());
234
2
  ASSERT_TRUE(info.areIntegersUsed());
235
2
  ASSERT_FALSE(info.isDifferenceLogic());
236
2
  ASSERT_FALSE(info.areRealsUsed());
237
2
  ASSERT_FALSE(info.hasEverything());
238
2
  ASSERT_FALSE(info.hasNothing());
239
240
2
  info = LogicInfo("QF_AX");
241
2
  ASSERT_FALSE(info.isQuantified());
242
2
  ASSERT_FALSE(info.isSharingEnabled());
243
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
244
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
245
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARITH));
246
2
  ASSERT_TRUE(info.isPure(THEORY_ARRAYS));
247
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
248
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
249
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
250
2
  ASSERT_FALSE(info.hasEverything());
251
2
  ASSERT_FALSE(info.hasNothing());
252
253
2
  info = LogicInfo("QF_BV");
254
2
  ASSERT_FALSE(info.isQuantified());
255
2
  ASSERT_FALSE(info.isSharingEnabled());
256
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
257
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
258
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARITH));
259
2
  ASSERT_FALSE(info.isPure(THEORY_ARRAYS));
260
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BV));
261
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
262
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
263
2
  ASSERT_FALSE(info.hasEverything());
264
2
  ASSERT_FALSE(info.hasNothing());
265
266
2
  info = LogicInfo("QF_IDL");
267
2
  ASSERT_FALSE(info.isQuantified());
268
2
  ASSERT_FALSE(info.isSharingEnabled());
269
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
270
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
271
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
272
2
  ASSERT_TRUE(info.isPure(THEORY_ARITH));
273
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
274
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
275
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
276
2
  ASSERT_TRUE(info.isLinear());
277
2
  ASSERT_TRUE(info.isDifferenceLogic());
278
2
  ASSERT_TRUE(info.areIntegersUsed());
279
2
  ASSERT_FALSE(info.areRealsUsed());
280
2
  ASSERT_FALSE(info.hasEverything());
281
2
  ASSERT_FALSE(info.hasNothing());
282
283
2
  info = LogicInfo("QF_LIA");
284
2
  ASSERT_FALSE(info.isQuantified());
285
2
  ASSERT_FALSE(info.isSharingEnabled());
286
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
287
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
288
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
289
2
  ASSERT_TRUE(info.isPure(THEORY_ARITH));
290
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
291
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
292
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
293
2
  ASSERT_TRUE(info.isLinear());
294
2
  ASSERT_FALSE(info.isDifferenceLogic());
295
2
  ASSERT_TRUE(info.areIntegersUsed());
296
2
  ASSERT_FALSE(info.areRealsUsed());
297
2
  ASSERT_FALSE(info.hasEverything());
298
2
  ASSERT_FALSE(info.hasNothing());
299
300
2
  info = LogicInfo("QF_LRA");
301
2
  ASSERT_FALSE(info.isQuantified());
302
2
  ASSERT_FALSE(info.isSharingEnabled());
303
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
304
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
305
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
306
2
  ASSERT_TRUE(info.isPure(THEORY_ARITH));
307
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
308
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
309
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
310
2
  ASSERT_TRUE(info.isLinear());
311
2
  ASSERT_FALSE(info.isDifferenceLogic());
312
2
  ASSERT_FALSE(info.areIntegersUsed());
313
2
  ASSERT_TRUE(info.areRealsUsed());
314
2
  ASSERT_FALSE(info.hasEverything());
315
2
  ASSERT_FALSE(info.hasNothing());
316
317
2
  info = LogicInfo("QF_NIA");
318
2
  ASSERT_FALSE(info.isQuantified());
319
2
  ASSERT_FALSE(info.isSharingEnabled());
320
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
321
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
322
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
323
2
  ASSERT_TRUE(info.isPure(THEORY_ARITH));
324
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
325
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
326
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
327
2
  ASSERT_FALSE(info.isLinear());
328
2
  ASSERT_FALSE(info.isDifferenceLogic());
329
2
  ASSERT_TRUE(info.areIntegersUsed());
330
2
  ASSERT_FALSE(info.areRealsUsed());
331
2
  ASSERT_FALSE(info.hasEverything());
332
2
  ASSERT_FALSE(info.hasNothing());
333
334
2
  info = LogicInfo("QF_NRA");
335
2
  ASSERT_FALSE(info.isQuantified());
336
2
  ASSERT_FALSE(info.isSharingEnabled());
337
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
338
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
339
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
340
2
  ASSERT_TRUE(info.isPure(THEORY_ARITH));
341
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
342
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
343
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
344
2
  ASSERT_FALSE(info.isLinear());
345
2
  ASSERT_FALSE(info.isDifferenceLogic());
346
2
  ASSERT_FALSE(info.areIntegersUsed());
347
2
  ASSERT_TRUE(info.areRealsUsed());
348
2
  ASSERT_FALSE(info.hasEverything());
349
2
  ASSERT_FALSE(info.hasNothing());
350
351
2
  info = LogicInfo("QF_RDL");
352
2
  ASSERT_FALSE(info.isQuantified());
353
2
  ASSERT_FALSE(info.isSharingEnabled());
354
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
355
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
356
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
357
2
  ASSERT_TRUE(info.isPure(THEORY_ARITH));
358
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
359
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
360
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
361
2
  ASSERT_TRUE(info.isLinear());
362
2
  ASSERT_TRUE(info.isDifferenceLogic());
363
2
  ASSERT_FALSE(info.areIntegersUsed());
364
2
  ASSERT_TRUE(info.areRealsUsed());
365
2
  ASSERT_FALSE(info.hasEverything());
366
2
  ASSERT_FALSE(info.hasNothing());
367
368
2
  info = LogicInfo("QF_UF");
369
2
  ASSERT_FALSE(info.isPure(THEORY_BOOL));
370
2
  ASSERT_FALSE(info.isQuantified());
371
2
  ASSERT_FALSE(info.isSharingEnabled());
372
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
373
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
374
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARITH));
375
2
  ASSERT_FALSE(info.isPure(THEORY_ARITH));
376
2
  ASSERT_TRUE(info.isPure(THEORY_UF));
377
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
378
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
379
2
  ASSERT_FALSE(info.hasEverything());
380
2
  ASSERT_FALSE(info.hasNothing());
381
382
2
  info = LogicInfo("QF_UFBV");
383
2
  ASSERT_FALSE(info.isQuantified());
384
2
  ASSERT_TRUE(info.isSharingEnabled());
385
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
386
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
387
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARITH));
388
2
  ASSERT_FALSE(info.isPure(THEORY_ARITH));
389
2
  ASSERT_FALSE(info.isPure(THEORY_BV));
390
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BV));
391
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
392
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
393
2
  ASSERT_FALSE(info.hasEverything());
394
2
  ASSERT_FALSE(info.hasNothing());
395
396
2
  info = LogicInfo("QF_UFIDL");
397
2
  ASSERT_FALSE(info.isQuantified());
398
2
  ASSERT_TRUE(info.isSharingEnabled());
399
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
400
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
401
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
402
2
  ASSERT_FALSE(info.isPure(THEORY_ARITH));
403
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
404
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
405
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
406
2
  ASSERT_TRUE(info.isLinear());
407
2
  ASSERT_TRUE(info.isDifferenceLogic());
408
2
  ASSERT_TRUE(info.areIntegersUsed());
409
2
  ASSERT_FALSE(info.areRealsUsed());
410
2
  ASSERT_FALSE(info.areTranscendentalsUsed());
411
2
  ASSERT_FALSE(info.hasEverything());
412
2
  ASSERT_FALSE(info.hasNothing());
413
414
2
  info = LogicInfo("QF_UFLIA");
415
2
  ASSERT_FALSE(info.isQuantified());
416
2
  ASSERT_TRUE(info.isSharingEnabled());
417
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
418
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
419
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
420
2
  ASSERT_FALSE(info.isPure(THEORY_ARITH));
421
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
422
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
423
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
424
2
  ASSERT_TRUE(info.isLinear());
425
2
  ASSERT_FALSE(info.isDifferenceLogic());
426
2
  ASSERT_TRUE(info.areIntegersUsed());
427
2
  ASSERT_FALSE(info.areRealsUsed());
428
2
  ASSERT_FALSE(info.areTranscendentalsUsed());
429
2
  ASSERT_FALSE(info.hasEverything());
430
2
  ASSERT_FALSE(info.hasNothing());
431
432
2
  info = LogicInfo("QF_UFLRA");
433
2
  ASSERT_FALSE(info.isQuantified());
434
2
  ASSERT_TRUE(info.isSharingEnabled());
435
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
436
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
437
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
438
2
  ASSERT_FALSE(info.isPure(THEORY_ARITH));
439
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
440
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
441
2
  ASSERT_TRUE(info.isLinear());
442
2
  ASSERT_FALSE(info.isDifferenceLogic());
443
2
  ASSERT_FALSE(info.areIntegersUsed());
444
2
  ASSERT_TRUE(info.areRealsUsed());
445
2
  ASSERT_FALSE(info.areTranscendentalsUsed());
446
2
  ASSERT_FALSE(info.hasEverything());
447
2
  ASSERT_FALSE(info.hasNothing());
448
449
2
  info = LogicInfo("QF_UFNRA");
450
2
  ASSERT_FALSE(info.isQuantified());
451
2
  ASSERT_TRUE(info.isSharingEnabled());
452
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
453
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
454
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
455
2
  ASSERT_FALSE(info.isPure(THEORY_ARITH));
456
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
457
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
458
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
459
2
  ASSERT_FALSE(info.isLinear());
460
2
  ASSERT_FALSE(info.isDifferenceLogic());
461
2
  ASSERT_FALSE(info.areIntegersUsed());
462
2
  ASSERT_TRUE(info.areRealsUsed());
463
2
  ASSERT_FALSE(info.areTranscendentalsUsed());
464
2
  ASSERT_FALSE(info.hasEverything());
465
2
  ASSERT_FALSE(info.hasNothing());
466
467
2
  info = LogicInfo("UFLRA");
468
2
  ASSERT_TRUE(info.isQuantified());
469
2
  ASSERT_TRUE(info.isSharingEnabled());
470
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
471
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
472
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
473
2
  ASSERT_FALSE(info.isPure(THEORY_ARITH));
474
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
475
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
476
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
477
2
  ASSERT_TRUE(info.isLinear());
478
2
  ASSERT_FALSE(info.isDifferenceLogic());
479
2
  ASSERT_FALSE(info.areIntegersUsed());
480
2
  ASSERT_TRUE(info.areRealsUsed());
481
2
  ASSERT_FALSE(info.areTranscendentalsUsed());
482
2
  ASSERT_FALSE(info.hasEverything());
483
2
  ASSERT_FALSE(info.hasNothing());
484
485
2
  info = LogicInfo("UFNIA");
486
2
  ASSERT_TRUE(info.isQuantified());
487
2
  ASSERT_TRUE(info.isSharingEnabled());
488
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
489
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
490
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
491
2
  ASSERT_FALSE(info.isPure(THEORY_ARITH));
492
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
493
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
494
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
495
2
  ASSERT_FALSE(info.isLinear());
496
2
  ASSERT_FALSE(info.isDifferenceLogic());
497
2
  ASSERT_TRUE(info.areIntegersUsed());
498
2
  ASSERT_FALSE(info.areRealsUsed());
499
2
  ASSERT_FALSE(info.areTranscendentalsUsed());
500
2
  ASSERT_FALSE(info.hasEverything());
501
2
  ASSERT_FALSE(info.hasNothing());
502
503
2
  info = LogicInfo("QF_ALL_SUPPORTED");
504
2
  ASSERT_TRUE(info.isLocked());
505
2
  ASSERT_FALSE(info.isPure(THEORY_BOOL));
506
2
  ASSERT_TRUE(info.isSharingEnabled());
507
2
  ASSERT_FALSE(info.isQuantified());
508
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
509
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
510
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
511
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BV));
512
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_DATATYPES));
513
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
514
2
  ASSERT_FALSE(info.isLinear());
515
2
  ASSERT_TRUE(info.areIntegersUsed());
516
2
  ASSERT_FALSE(info.isDifferenceLogic());
517
2
  ASSERT_TRUE(info.areRealsUsed());
518
2
  ASSERT_TRUE(info.areTranscendentalsUsed());
519
2
  ASSERT_FALSE(info.hasEverything());
520
2
  ASSERT_FALSE(info.hasNothing());
521
522
2
  info = LogicInfo("ALL_SUPPORTED");
523
2
  ASSERT_TRUE(info.isLocked());
524
2
  ASSERT_FALSE(info.isPure(THEORY_BOOL));
525
2
  ASSERT_TRUE(info.isSharingEnabled());
526
2
  ASSERT_TRUE(info.isQuantified());
527
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
528
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
529
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
530
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BV));
531
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_DATATYPES));
532
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
533
2
  ASSERT_FALSE(info.isLinear());
534
2
  ASSERT_TRUE(info.areIntegersUsed());
535
2
  ASSERT_FALSE(info.isDifferenceLogic());
536
2
  ASSERT_TRUE(info.areRealsUsed());
537
2
  ASSERT_TRUE(info.hasEverything());
538
2
  ASSERT_FALSE(info.hasNothing());
539
}
540
541
12
TEST_F(TestTheoryWhiteLogicInfo, default_logic)
542
{
543
4
  LogicInfo info;
544
2
  ASSERT_FALSE(info.isLocked());
545
546
4
  ASSERT_THROW(info.getLogicString(), cvc5::IllegalArgumentException);
547
4
  ASSERT_THROW(info.isTheoryEnabled(THEORY_BUILTIN),
548
2
               cvc5::IllegalArgumentException);
549
4
  ASSERT_THROW(info.isTheoryEnabled(THEORY_BOOL),
550
2
               cvc5::IllegalArgumentException);
551
4
  ASSERT_THROW(info.isTheoryEnabled(THEORY_UF), cvc5::IllegalArgumentException);
552
4
  ASSERT_THROW(info.isTheoryEnabled(THEORY_ARITH),
553
2
               cvc5::IllegalArgumentException);
554
4
  ASSERT_THROW(info.isTheoryEnabled(THEORY_ARRAYS),
555
2
               cvc5::IllegalArgumentException);
556
4
  ASSERT_THROW(info.isTheoryEnabled(THEORY_BV), cvc5::IllegalArgumentException);
557
4
  ASSERT_THROW(info.isTheoryEnabled(THEORY_DATATYPES),
558
2
               cvc5::IllegalArgumentException);
559
4
  ASSERT_THROW(info.isTheoryEnabled(THEORY_QUANTIFIERS),
560
2
               cvc5::IllegalArgumentException);
561
4
  ASSERT_THROW(info.isPure(THEORY_BUILTIN), cvc5::IllegalArgumentException);
562
4
  ASSERT_THROW(info.isPure(THEORY_BOOL), cvc5::IllegalArgumentException);
563
4
  ASSERT_THROW(info.isPure(THEORY_UF), cvc5::IllegalArgumentException);
564
4
  ASSERT_THROW(info.isPure(THEORY_ARITH), cvc5::IllegalArgumentException);
565
4
  ASSERT_THROW(info.isPure(THEORY_ARRAYS), cvc5::IllegalArgumentException);
566
4
  ASSERT_THROW(info.isPure(THEORY_BV), cvc5::IllegalArgumentException);
567
4
  ASSERT_THROW(info.isPure(THEORY_DATATYPES), cvc5::IllegalArgumentException);
568
4
  ASSERT_THROW(info.isPure(THEORY_QUANTIFIERS), cvc5::IllegalArgumentException);
569
4
  ASSERT_THROW(info.isQuantified(), cvc5::IllegalArgumentException);
570
4
  ASSERT_THROW(info.areIntegersUsed(), cvc5::IllegalArgumentException);
571
4
  ASSERT_THROW(info.areRealsUsed(), cvc5::IllegalArgumentException);
572
4
  ASSERT_THROW(info.isLinear(), cvc5::IllegalArgumentException);
573
574
2
  info.lock();
575
2
  ASSERT_TRUE(info.isLocked());
576
2
  ASSERT_EQ(info.getLogicString(), "ALL");
577
2
  ASSERT_TRUE(info.isSharingEnabled());
578
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BUILTIN));
579
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
580
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
581
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
582
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
583
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BV));
584
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_DATATYPES));
585
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_QUANTIFIERS));
586
2
  ASSERT_FALSE(info.isPure(THEORY_BUILTIN));
587
2
  ASSERT_FALSE(info.isPure(THEORY_BOOL));
588
2
  ASSERT_FALSE(info.isPure(THEORY_UF));
589
2
  ASSERT_FALSE(info.isPure(THEORY_ARITH));
590
2
  ASSERT_FALSE(info.isPure(THEORY_ARRAYS));
591
2
  ASSERT_FALSE(info.isPure(THEORY_BV));
592
2
  ASSERT_FALSE(info.isPure(THEORY_DATATYPES));
593
2
  ASSERT_FALSE(info.isPure(THEORY_QUANTIFIERS));
594
2
  ASSERT_TRUE(info.isQuantified());
595
2
  ASSERT_TRUE(info.areIntegersUsed());
596
2
  ASSERT_TRUE(info.areRealsUsed());
597
2
  ASSERT_TRUE(info.areTranscendentalsUsed());
598
2
  ASSERT_FALSE(info.isLinear());
599
600
4
  ASSERT_THROW(info.arithOnlyLinear(), cvc5::IllegalArgumentException);
601
4
  ASSERT_THROW(info.disableIntegers(), cvc5::IllegalArgumentException);
602
4
  ASSERT_THROW(info.disableQuantifiers(), cvc5::IllegalArgumentException);
603
4
  ASSERT_THROW(info.disableTheory(THEORY_BV), cvc5::IllegalArgumentException);
604
4
  ASSERT_THROW(info.disableTheory(THEORY_DATATYPES),
605
2
               cvc5::IllegalArgumentException);
606
4
  ASSERT_THROW(info.enableIntegers(), cvc5::IllegalArgumentException);
607
4
  ASSERT_THROW(info.disableReals(), cvc5::IllegalArgumentException);
608
4
  ASSERT_THROW(info.disableTheory(THEORY_ARITH),
609
2
               cvc5::IllegalArgumentException);
610
4
  ASSERT_THROW(info.disableTheory(THEORY_UF), cvc5::IllegalArgumentException);
611
2
  info = info.getUnlockedCopy();
612
2
  ASSERT_FALSE(info.isLocked());
613
2
  info.disableTheory(THEORY_STRINGS);
614
2
  info.disableTheory(THEORY_SETS);
615
2
  info.disableTheory(THEORY_BAGS);
616
2
  info.arithOnlyLinear();
617
2
  info.disableIntegers();
618
2
  info.lock();
619
2
  if (cvc5::Configuration::isBuiltWithSymFPU())
620
  {
621
2
    ASSERT_EQ(info.getLogicString(), "SEP_AUFBVFPDTLRA");
622
  }
623
  else
624
  {
625
    ASSERT_EQ(info.getLogicString(), "SEP_AUFBVDTLRA");
626
  }
627
628
2
  info = info.getUnlockedCopy();
629
2
  ASSERT_FALSE(info.isLocked());
630
2
  info.disableQuantifiers();
631
2
  info.disableTheory(THEORY_BAGS);
632
2
  info.lock();
633
2
  if (cvc5::Configuration::isBuiltWithSymFPU())
634
  {
635
2
    ASSERT_EQ(info.getLogicString(), "QF_SEP_AUFBVFPDTLRA");
636
  }
637
  else
638
  {
639
    ASSERT_EQ(info.getLogicString(), "QF_SEP_AUFBVDTLRA");
640
  }
641
642
2
  info = info.getUnlockedCopy();
643
2
  ASSERT_FALSE(info.isLocked());
644
2
  info.disableTheory(THEORY_BV);
645
2
  info.disableTheory(THEORY_DATATYPES);
646
2
  info.disableTheory(THEORY_BAGS);
647
2
  info.enableIntegers();
648
2
  info.disableReals();
649
2
  info.lock();
650
2
  if (cvc5::Configuration::isBuiltWithSymFPU())
651
  {
652
2
    ASSERT_EQ(info.getLogicString(), "QF_SEP_AUFFPLIA");
653
  }
654
  else
655
  {
656
    ASSERT_EQ(info.getLogicString(), "QF_SEP_AUFLIA");
657
  }
658
659
2
  info = info.getUnlockedCopy();
660
2
  ASSERT_FALSE(info.isLocked());
661
2
  info.disableTheory(THEORY_ARITH);
662
2
  info.disableTheory(THEORY_UF);
663
2
  info.disableTheory(THEORY_FP);
664
2
  info.disableTheory(THEORY_SEP);
665
2
  info.disableTheory(THEORY_BAGS);
666
2
  info.lock();
667
2
  ASSERT_EQ(info.getLogicString(), "QF_AX");
668
2
  ASSERT_TRUE(info.isPure(THEORY_ARRAYS));
669
2
  ASSERT_FALSE(info.isQuantified());
670
  // check all-excluded logic
671
2
  info = info.getUnlockedCopy();
672
2
  ASSERT_FALSE(info.isLocked());
673
2
  info.disableEverything();
674
2
  info.lock();
675
2
  ASSERT_TRUE(info.isLocked());
676
2
  ASSERT_FALSE(info.isSharingEnabled());
677
2
  ASSERT_FALSE(info.isQuantified());
678
2
  ASSERT_TRUE(info.isPure(THEORY_BOOL));
679
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
680
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
681
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARITH));
682
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
683
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
684
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
685
4
  ASSERT_THROW(info.isLinear(), IllegalArgumentException);
686
4
  ASSERT_THROW(info.areIntegersUsed(), IllegalArgumentException);
687
4
  ASSERT_THROW(info.isDifferenceLogic(), IllegalArgumentException);
688
4
  ASSERT_THROW(info.areRealsUsed(), IllegalArgumentException);
689
4
  ASSERT_THROW(info.areTranscendentalsUsed(), IllegalArgumentException);
690
691
  // check copy is unchanged
692
2
  info = info.getUnlockedCopy();
693
2
  ASSERT_FALSE(info.isLocked());
694
2
  info.lock();
695
2
  ASSERT_TRUE(info.isLocked());
696
2
  ASSERT_FALSE(info.isSharingEnabled());
697
2
  ASSERT_FALSE(info.isQuantified());
698
2
  ASSERT_TRUE(info.isPure(THEORY_BOOL));
699
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARRAYS));
700
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_UF));
701
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_ARITH));
702
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_BV));
703
2
  ASSERT_FALSE(info.isTheoryEnabled(THEORY_DATATYPES));
704
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
705
4
  ASSERT_THROW(info.isLinear(), IllegalArgumentException);
706
4
  ASSERT_THROW(info.areIntegersUsed(), IllegalArgumentException);
707
4
  ASSERT_THROW(info.isDifferenceLogic(), IllegalArgumentException);
708
4
  ASSERT_THROW(info.areRealsUsed(), IllegalArgumentException);
709
4
  ASSERT_THROW(info.areTranscendentalsUsed(), IllegalArgumentException);
710
711
  // check all-included logic
712
2
  info = info.getUnlockedCopy();
713
2
  ASSERT_FALSE(info.isLocked());
714
2
  info.enableEverything();
715
2
  info.lock();
716
2
  ASSERT_TRUE(info.isLocked());
717
2
  ASSERT_FALSE(info.isPure(THEORY_BOOL));
718
2
  ASSERT_TRUE(info.isSharingEnabled());
719
2
  ASSERT_TRUE(info.isQuantified());
720
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
721
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
722
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
723
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BV));
724
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_DATATYPES));
725
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
726
2
  ASSERT_FALSE(info.isLinear());
727
2
  ASSERT_TRUE(info.areIntegersUsed());
728
2
  ASSERT_FALSE(info.isDifferenceLogic());
729
2
  ASSERT_TRUE(info.areRealsUsed());
730
2
  ASSERT_TRUE(info.areTranscendentalsUsed());
731
732
  // check copy is unchanged
733
2
  info = info.getUnlockedCopy();
734
2
  ASSERT_FALSE(info.isLocked());
735
2
  info.lock();
736
2
  ASSERT_TRUE(info.isLocked());
737
2
  ASSERT_FALSE(info.isPure(THEORY_BOOL));
738
2
  ASSERT_TRUE(info.isSharingEnabled());
739
2
  ASSERT_TRUE(info.isQuantified());
740
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARRAYS));
741
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_UF));
742
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_ARITH));
743
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BV));
744
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_DATATYPES));
745
2
  ASSERT_TRUE(info.isTheoryEnabled(THEORY_BOOL));
746
2
  ASSERT_FALSE(info.isLinear());
747
2
  ASSERT_TRUE(info.areIntegersUsed());
748
2
  ASSERT_FALSE(info.isDifferenceLogic());
749
2
  ASSERT_TRUE(info.areRealsUsed());
750
2
  ASSERT_TRUE(info.areTranscendentalsUsed());
751
}
752
753
12
TEST_F(TestTheoryWhiteLogicInfo, comparison)
754
{
755
4
  LogicInfo ufHo = LogicInfo("QF_UF").getUnlockedCopy();
756
2
  ufHo.enableHigherOrder();
757
2
  ufHo.lock();
758
759
2
  eq("QF_UF", "QF_UF");
760
2
  nc("QF_UF", "QF_LRA");
761
2
  nc("QF_UF", "QF_LIA");
762
2
  lt("QF_UF", "QF_UFLRA");
763
2
  lt("QF_UF", "QF_UFLIA");
764
2
  lt("QF_UF", "QF_AUFLIA");
765
2
  lt("QF_UF", "QF_AUFLIRA");
766
2
  nc("QF_UF", "QF_BV");
767
2
  nc("QF_UF", "QF_ABV");
768
2
  lt("QF_UF", "QF_AUFBV");
769
2
  nc("QF_UF", "QF_IDL");
770
2
  nc("QF_UF", "QF_RDL");
771
2
  lt("QF_UF", "QF_UFIDL");
772
2
  nc("QF_UF", "QF_NIA");
773
2
  nc("QF_UF", "QF_NRA");
774
2
  lt("QF_UF", "QF_AUFNIRA");
775
2
  nc("QF_UF", "LRA");
776
2
  nc("QF_UF", "NRA");
777
2
  nc("QF_UF", "NIA");
778
2
  lt("QF_UF", "UFLRA");
779
2
  lt("QF_UF", "UFNIA");
780
2
  lt("QF_UF", "AUFLIA");
781
2
  lt("QF_UF", "AUFLIRA");
782
2
  lt("QF_UF", "AUFNIRA");
783
2
  lt("QF_UF", "QF_UFC");
784
2
  lt("QF_UF", ufHo);
785
2
  nc("QF_UFC", ufHo);
786
787
2
  nc("QF_LRA", "QF_UF");
788
2
  eq("QF_LRA", "QF_LRA");
789
2
  nc("QF_LRA", "QF_LIA");
790
2
  lt("QF_LRA", "QF_UFLRA");
791
2
  nc("QF_LRA", "QF_UFLIA");
792
2
  nc("QF_LRA", "QF_AUFLIA");
793
2
  lt("QF_LRA", "QF_AUFLIRA");
794
2
  nc("QF_LRA", "QF_BV");
795
2
  nc("QF_LRA", "QF_ABV");
796
2
  nc("QF_LRA", "QF_AUFBV");
797
2
  nc("QF_LRA", "QF_IDL");
798
2
  gt("QF_LRA", "QF_RDL");
799
2
  nc("QF_LRA", "QF_UFIDL");
800
2
  nc("QF_LRA", "QF_NIA");
801
2
  lt("QF_LRA", "QF_NRA");
802
2
  lt("QF_LRA", "QF_AUFNIRA");
803
2
  lt("QF_LRA", "LRA");
804
2
  lt("QF_LRA", "NRA");
805
2
  nc("QF_LRA", "NIA");
806
2
  lt("QF_LRA", "UFLRA");
807
2
  nc("QF_LRA", "UFNIA");
808
2
  nc("QF_LRA", "AUFLIA");
809
2
  lt("QF_LRA", "AUFLIRA");
810
2
  lt("QF_LRA", "AUFNIRA");
811
2
  lt("QF_LRA", "QF_UFCLRA");
812
813
2
  nc("QF_LIA", "QF_UF");
814
2
  nc("QF_LIA", "QF_LRA");
815
2
  eq("QF_LIA", "QF_LIA");
816
2
  nc("QF_LIA", "QF_UFLRA");
817
2
  lt("QF_LIA", "QF_UFLIA");
818
2
  lt("QF_LIA", "QF_AUFLIA");
819
2
  lt("QF_LIA", "QF_AUFLIRA");
820
2
  nc("QF_LIA", "QF_BV");
821
2
  nc("QF_LIA", "QF_ABV");
822
2
  nc("QF_LIA", "QF_AUFBV");
823
2
  gt("QF_LIA", "QF_IDL");
824
2
  nc("QF_LIA", "QF_RDL");
825
2
  nc("QF_LIA", "QF_UFIDL");
826
2
  lt("QF_LIA", "QF_NIA");
827
2
  nc("QF_LIA", "QF_NRA");
828
2
  lt("QF_LIA", "QF_AUFNIRA");
829
2
  nc("QF_LIA", "LRA");
830
2
  nc("QF_LIA", "NRA");
831
2
  lt("QF_LIA", "NIA");
832
2
  nc("QF_LIA", "UFLRA");
833
2
  lt("QF_LIA", "UFNIA");
834
2
  lt("QF_LIA", "AUFLIA");
835
2
  lt("QF_LIA", "AUFLIRA");
836
2
  lt("QF_LIA", "AUFNIRA");
837
838
2
  gt("QF_UFLRA", "QF_UF");
839
2
  gt("QF_UFLRA", "QF_LRA");
840
2
  nc("QF_UFLRA", "QF_LIA");
841
2
  eq("QF_UFLRA", "QF_UFLRA");
842
2
  nc("QF_UFLRA", "QF_UFLIA");
843
2
  nc("QF_UFLRA", "QF_AUFLIA");
844
2
  lt("QF_UFLRA", "QF_AUFLIRA");
845
2
  nc("QF_UFLRA", "QF_BV");
846
2
  nc("QF_UFLRA", "QF_ABV");
847
2
  nc("QF_UFLRA", "QF_AUFBV");
848
2
  nc("QF_UFLRA", "QF_IDL");
849
2
  gt("QF_UFLRA", "QF_RDL");
850
2
  nc("QF_UFLRA", "QF_UFIDL");
851
2
  nc("QF_UFLRA", "QF_NIA");
852
2
  nc("QF_UFLRA", "QF_NRA");
853
2
  lt("QF_UFLRA", "QF_AUFNIRA");
854
2
  nc("QF_UFLRA", "LRA");
855
2
  nc("QF_UFLRA", "NRA");
856
2
  nc("QF_UFLRA", "NIA");
857
2
  lt("QF_UFLRA", "UFLRA");
858
2
  nc("QF_UFLRA", "UFNIA");
859
2
  nc("QF_UFLRA", "AUFLIA");
860
2
  lt("QF_UFLRA", "AUFLIRA");
861
2
  lt("QF_UFLRA", "AUFNIRA");
862
863
2
  gt("QF_UFLIA", "QF_UF");
864
2
  nc("QF_UFLIA", "QF_LRA");
865
2
  gt("QF_UFLIA", "QF_LIA");
866
2
  nc("QF_UFLIA", "QF_UFLRA");
867
2
  eq("QF_UFLIA", "QF_UFLIA");
868
2
  lt("QF_UFLIA", "QF_AUFLIA");
869
2
  lt("QF_UFLIA", "QF_AUFLIRA");
870
2
  nc("QF_UFLIA", "QF_BV");
871
2
  nc("QF_UFLIA", "QF_ABV");
872
2
  nc("QF_UFLIA", "QF_AUFBV");
873
2
  gt("QF_UFLIA", "QF_IDL");
874
2
  nc("QF_UFLIA", "QF_RDL");
875
2
  gt("QF_UFLIA", "QF_UFIDL");
876
2
  nc("QF_UFLIA", "QF_NIA");
877
2
  nc("QF_UFLIA", "QF_NRA");
878
2
  lt("QF_UFLIA", "QF_AUFNIRA");
879
2
  nc("QF_UFLIA", "LRA");
880
2
  nc("QF_UFLIA", "NRA");
881
2
  nc("QF_UFLIA", "NIA");
882
2
  nc("QF_UFLIA", "UFLRA");
883
2
  lt("QF_UFLIA", "UFNIA");
884
2
  lt("QF_UFLIA", "AUFLIA");
885
2
  lt("QF_UFLIA", "AUFLIRA");
886
2
  lt("QF_UFLIA", "AUFNIRA");
887
888
2
  gt("QF_AUFLIA", "QF_UF");
889
2
  nc("QF_AUFLIA", "QF_LRA");
890
2
  gt("QF_AUFLIA", "QF_LIA");
891
2
  nc("QF_AUFLIA", "QF_UFLRA");
892
2
  gt("QF_AUFLIA", "QF_UFLIA");
893
2
  eq("QF_AUFLIA", "QF_AUFLIA");
894
2
  lt("QF_AUFLIA", "QF_AUFLIRA");
895
2
  nc("QF_AUFLIA", "QF_BV");
896
2
  nc("QF_AUFLIA", "QF_ABV");
897
2
  nc("QF_AUFLIA", "QF_AUFBV");
898
2
  gt("QF_AUFLIA", "QF_IDL");
899
2
  nc("QF_AUFLIA", "QF_RDL");
900
2
  gt("QF_AUFLIA", "QF_UFIDL");
901
2
  nc("QF_AUFLIA", "QF_NIA");
902
2
  nc("QF_AUFLIA", "QF_NRA");
903
2
  lt("QF_AUFLIA", "QF_AUFNIRA");
904
2
  nc("QF_AUFLIA", "LRA");
905
2
  nc("QF_AUFLIA", "NRA");
906
2
  nc("QF_AUFLIA", "NIA");
907
2
  nc("QF_AUFLIA", "UFLRA");
908
2
  nc("QF_AUFLIA", "UFNIA");
909
2
  lt("QF_AUFLIA", "AUFLIA");
910
2
  lt("QF_AUFLIA", "AUFLIRA");
911
2
  lt("QF_AUFLIA", "AUFNIRA");
912
913
2
  gt("QF_AUFLIRA", "QF_UF");
914
2
  gt("QF_AUFLIRA", "QF_LRA");
915
2
  gt("QF_AUFLIRA", "QF_LIA");
916
2
  gt("QF_AUFLIRA", "QF_UFLRA");
917
2
  gt("QF_AUFLIRA", "QF_UFLIA");
918
2
  gt("QF_AUFLIRA", "QF_AUFLIA");
919
2
  eq("QF_AUFLIRA", "QF_AUFLIRA");
920
2
  nc("QF_AUFLIRA", "QF_BV");
921
2
  nc("QF_AUFLIRA", "QF_ABV");
922
2
  nc("QF_AUFLIRA", "QF_AUFBV");
923
2
  gt("QF_AUFLIRA", "QF_IDL");
924
2
  gt("QF_AUFLIRA", "QF_RDL");
925
2
  gt("QF_AUFLIRA", "QF_UFIDL");
926
2
  nc("QF_AUFLIRA", "QF_NIA");
927
2
  nc("QF_AUFLIRA", "QF_NRA");
928
2
  lt("QF_AUFLIRA", "QF_AUFNIRA");
929
2
  nc("QF_AUFLIRA", "LRA");
930
2
  nc("QF_AUFLIRA", "NRA");
931
2
  nc("QF_AUFLIRA", "NIA");
932
2
  nc("QF_AUFLIRA", "UFLRA");
933
2
  nc("QF_AUFLIRA", "UFNIA");
934
2
  nc("QF_AUFLIRA", "AUFLIA");
935
2
  lt("QF_AUFLIRA", "AUFLIRA");
936
2
  lt("QF_AUFLIRA", "AUFNIRA");
937
938
2
  nc("QF_BV", "QF_UF");
939
2
  nc("QF_BV", "QF_LRA");
940
2
  nc("QF_BV", "QF_LIA");
941
2
  nc("QF_BV", "QF_UFLRA");
942
2
  nc("QF_BV", "QF_UFLIA");
943
2
  nc("QF_BV", "QF_AUFLIA");
944
2
  nc("QF_BV", "QF_AUFLIRA");
945
2
  eq("QF_BV", "QF_BV");
946
2
  lt("QF_BV", "QF_ABV");
947
2
  lt("QF_BV", "QF_AUFBV");
948
2
  nc("QF_BV", "QF_IDL");
949
2
  nc("QF_BV", "QF_RDL");
950
2
  nc("QF_BV", "QF_UFIDL");
951
2
  nc("QF_BV", "QF_NIA");
952
2
  nc("QF_BV", "QF_NRA");
953
2
  nc("QF_BV", "QF_AUFNIRA");
954
2
  nc("QF_BV", "LRA");
955
2
  nc("QF_BV", "NRA");
956
2
  nc("QF_BV", "NIA");
957
2
  nc("QF_BV", "UFLRA");
958
2
  nc("QF_BV", "UFNIA");
959
2
  nc("QF_BV", "AUFLIA");
960
2
  nc("QF_BV", "AUFLIRA");
961
2
  nc("QF_BV", "AUFNIRA");
962
963
2
  nc("QF_ABV", "QF_UF");
964
2
  nc("QF_ABV", "QF_LRA");
965
2
  nc("QF_ABV", "QF_LIA");
966
2
  nc("QF_ABV", "QF_UFLRA");
967
2
  nc("QF_ABV", "QF_UFLIA");
968
2
  nc("QF_ABV", "QF_AUFLIA");
969
2
  nc("QF_ABV", "QF_AUFLIRA");
970
2
  gt("QF_ABV", "QF_BV");
971
2
  eq("QF_ABV", "QF_ABV");
972
2
  lt("QF_ABV", "QF_AUFBV");
973
2
  nc("QF_ABV", "QF_IDL");
974
2
  nc("QF_ABV", "QF_RDL");
975
2
  nc("QF_ABV", "QF_UFIDL");
976
2
  nc("QF_ABV", "QF_NIA");
977
2
  nc("QF_ABV", "QF_NRA");
978
2
  nc("QF_ABV", "QF_AUFNIRA");
979
2
  nc("QF_ABV", "LRA");
980
2
  nc("QF_ABV", "NRA");
981
2
  nc("QF_ABV", "NIA");
982
2
  nc("QF_ABV", "UFLRA");
983
2
  nc("QF_ABV", "UFNIA");
984
2
  nc("QF_ABV", "AUFLIA");
985
2
  nc("QF_ABV", "AUFLIRA");
986
2
  nc("QF_ABV", "AUFNIRA");
987
988
2
  gt("QF_AUFBV", "QF_UF");
989
2
  nc("QF_AUFBV", "QF_LRA");
990
2
  nc("QF_AUFBV", "QF_LIA");
991
2
  nc("QF_AUFBV", "QF_UFLRA");
992
2
  nc("QF_AUFBV", "QF_UFLIA");
993
2
  nc("QF_AUFBV", "QF_AUFLIA");
994
2
  nc("QF_AUFBV", "QF_AUFLIRA");
995
2
  gt("QF_AUFBV", "QF_BV");
996
2
  gt("QF_AUFBV", "QF_ABV");
997
2
  eq("QF_AUFBV", "QF_AUFBV");
998
2
  nc("QF_AUFBV", "QF_IDL");
999
2
  nc("QF_AUFBV", "QF_RDL");
1000
2
  nc("QF_AUFBV", "QF_UFIDL");
1001
2
  nc("QF_AUFBV", "QF_NIA");
1002
2
  nc("QF_AUFBV", "QF_NRA");
1003
2
  nc("QF_AUFBV", "QF_AUFNIRA");
1004
2
  nc("QF_AUFBV", "LRA");
1005
2
  nc("QF_AUFBV", "NRA");
1006
2
  nc("QF_AUFBV", "NIA");
1007
2
  nc("QF_AUFBV", "UFLRA");
1008
2
  nc("QF_AUFBV", "UFNIA");
1009
2
  nc("QF_AUFBV", "AUFLIA");
1010
2
  nc("QF_AUFBV", "AUFLIRA");
1011
2
  nc("QF_AUFBV", "AUFNIRA");
1012
1013
2
  nc("QF_IDL", "QF_UF");
1014
2
  nc("QF_IDL", "QF_LRA");
1015
2
  lt("QF_IDL", "QF_LIA");
1016
2
  nc("QF_IDL", "QF_UFLRA");
1017
2
  lt("QF_IDL", "QF_UFLIA");
1018
2
  lt("QF_IDL", "QF_AUFLIA");
1019
2
  lt("QF_IDL", "QF_AUFLIRA");
1020
2
  nc("QF_IDL", "QF_BV");
1021
2
  nc("QF_IDL", "QF_ABV");
1022
2
  nc("QF_IDL", "QF_AUFBV");
1023
2
  eq("QF_IDL", "QF_IDL");
1024
2
  nc("QF_IDL", "QF_RDL");
1025
2
  lt("QF_IDL", "QF_UFIDL");
1026
2
  lt("QF_IDL", "QF_NIA");
1027
2
  nc("QF_IDL", "QF_NRA");
1028
2
  nc("QF_IDL", "QF_NRAT");
1029
2
  lt("QF_IDL", "QF_AUFNIRA");
1030
2
  nc("QF_IDL", "LRA");
1031
2
  nc("QF_IDL", "NRA");
1032
2
  lt("QF_IDL", "NIA");
1033
2
  nc("QF_IDL", "UFLRA");
1034
2
  lt("QF_IDL", "UFNIA");
1035
2
  lt("QF_IDL", "AUFLIA");
1036
2
  lt("QF_IDL", "AUFLIRA");
1037
2
  lt("QF_IDL", "AUFNIRA");
1038
1039
2
  nc("QF_RDL", "QF_UF");
1040
2
  lt("QF_RDL", "QF_LRA");
1041
2
  nc("QF_RDL", "QF_LIA");
1042
2
  lt("QF_RDL", "QF_UFLRA");
1043
2
  nc("QF_RDL", "QF_UFLIA");
1044
2
  nc("QF_RDL", "QF_AUFLIA");
1045
2
  lt("QF_RDL", "QF_AUFLIRA");
1046
2
  nc("QF_RDL", "QF_BV");
1047
2
  nc("QF_RDL", "QF_ABV");
1048
2
  nc("QF_RDL", "QF_AUFBV");
1049
2
  nc("QF_RDL", "QF_IDL");
1050
2
  eq("QF_RDL", "QF_RDL");
1051
2
  nc("QF_RDL", "QF_UFIDL");
1052
2
  nc("QF_RDL", "QF_NIA");
1053
2
  lt("QF_RDL", "QF_NRA");
1054
2
  lt("QF_RDL", "QF_AUFNIRA");
1055
2
  lt("QF_RDL", "LRA");
1056
2
  lt("QF_RDL", "NRA");
1057
2
  nc("QF_RDL", "NIA");
1058
2
  lt("QF_RDL", "UFLRA");
1059
2
  nc("QF_RDL", "UFNIA");
1060
2
  nc("QF_RDL", "AUFLIA");
1061
2
  lt("QF_RDL", "AUFLIRA");
1062
2
  lt("QF_RDL", "AUFNIRA");
1063
1064
2
  gt("QF_UFIDL", "QF_UF");
1065
2
  nc("QF_UFIDL", "QF_LRA");
1066
2
  nc("QF_UFIDL", "QF_LIA");
1067
2
  nc("QF_UFIDL", "QF_UFLRA");
1068
2
  lt("QF_UFIDL", "QF_UFLIA");
1069
2
  lt("QF_UFIDL", "QF_AUFLIA");
1070
2
  lt("QF_UFIDL", "QF_AUFLIRA");
1071
2
  nc("QF_UFIDL", "QF_BV");
1072
2
  nc("QF_UFIDL", "QF_ABV");
1073
2
  nc("QF_UFIDL", "QF_AUFBV");
1074
2
  gt("QF_UFIDL", "QF_IDL");
1075
2
  nc("QF_UFIDL", "QF_RDL");
1076
2
  eq("QF_UFIDL", "QF_UFIDL");
1077
2
  nc("QF_UFIDL", "QF_NIA");
1078
2
  nc("QF_UFIDL", "QF_NRA");
1079
2
  lt("QF_UFIDL", "QF_AUFNIRA");
1080
2
  nc("QF_UFIDL", "LRA");
1081
2
  nc("QF_UFIDL", "NRA");
1082
2
  nc("QF_UFIDL", "NIA");
1083
2
  nc("QF_UFIDL", "UFLRA");
1084
2
  lt("QF_UFIDL", "UFNIA");
1085
2
  lt("QF_UFIDL", "AUFLIA");
1086
2
  lt("QF_UFIDL", "AUFLIRA");
1087
2
  lt("QF_UFIDL", "AUFNIRA");
1088
1089
2
  nc("QF_NIA", "QF_UF");
1090
2
  nc("QF_NIA", "QF_LRA");
1091
2
  gt("QF_NIA", "QF_LIA");
1092
2
  nc("QF_NIA", "QF_UFLRA");
1093
2
  nc("QF_NIA", "QF_UFLIA");
1094
2
  nc("QF_NIA", "QF_AUFLIA");
1095
2
  nc("QF_NIA", "QF_AUFLIRA");
1096
2
  nc("QF_NIA", "QF_BV");
1097
2
  nc("QF_NIA", "QF_ABV");
1098
2
  nc("QF_NIA", "QF_AUFBV");
1099
2
  gt("QF_NIA", "QF_IDL");
1100
2
  nc("QF_NIA", "QF_RDL");
1101
2
  nc("QF_NIA", "QF_UFIDL");
1102
2
  eq("QF_NIA", "QF_NIA");
1103
2
  nc("QF_NIA", "QF_NRA");
1104
2
  lt("QF_NIA", "QF_AUFNIRA");
1105
2
  nc("QF_NIA", "LRA");
1106
2
  nc("QF_NIA", "NRA");
1107
2
  lt("QF_NIA", "NIA");
1108
2
  nc("QF_NIA", "UFLRA");
1109
2
  lt("QF_NIA", "UFNIA");
1110
2
  nc("QF_NIA", "AUFLIA");
1111
2
  nc("QF_NIA", "AUFLIRA");
1112
2
  lt("QF_NIA", "AUFNIRA");
1113
1114
2
  nc("QF_NRA", "QF_UF");
1115
2
  gt("QF_NRA", "QF_LRA");
1116
2
  nc("QF_NRA", "QF_LIA");
1117
2
  nc("QF_NRA", "QF_UFLRA");
1118
2
  nc("QF_NRA", "QF_UFLIA");
1119
2
  nc("QF_NRA", "QF_AUFLIA");
1120
2
  nc("QF_NRA", "QF_AUFLIRA");
1121
2
  nc("QF_NRA", "QF_BV");
1122
2
  nc("QF_NRA", "QF_ABV");
1123
2
  nc("QF_NRA", "QF_AUFBV");
1124
2
  nc("QF_NRA", "QF_IDL");
1125
2
  gt("QF_NRA", "QF_RDL");
1126
2
  nc("QF_NRA", "QF_UFIDL");
1127
2
  nc("QF_NRA", "QF_NIA");
1128
2
  eq("QF_NRA", "QF_NRA");
1129
2
  lt("QF_NRA", "QF_AUFNIRA");
1130
2
  nc("QF_NRA", "LRA");
1131
2
  lt("QF_NRA", "NRA");
1132
2
  nc("QF_NRA", "NIA");
1133
2
  nc("QF_NRA", "UFLRA");
1134
2
  nc("QF_NRA", "UFNIA");
1135
2
  nc("QF_NRA", "AUFLIA");
1136
2
  nc("QF_NRA", "AUFLIRA");
1137
2
  lt("QF_NRA", "AUFNIRA");
1138
2
  lt("QF_NRA", "QF_NRAT");
1139
1140
2
  gt("QF_AUFNIRA", "QF_UF");
1141
2
  gt("QF_AUFNIRA", "QF_LRA");
1142
2
  gt("QF_AUFNIRA", "QF_LIA");
1143
2
  gt("QF_AUFNIRA", "QF_UFLRA");
1144
2
  gt("QF_AUFNIRA", "QF_UFLIA");
1145
2
  gt("QF_AUFNIRA", "QF_AUFLIA");
1146
2
  gt("QF_AUFNIRA", "QF_AUFLIRA");
1147
2
  nc("QF_AUFNIRA", "QF_BV");
1148
2
  nc("QF_AUFNIRA", "QF_ABV");
1149
2
  nc("QF_AUFNIRA", "QF_AUFBV");
1150
2
  gt("QF_AUFNIRA", "QF_IDL");
1151
2
  gt("QF_AUFNIRA", "QF_RDL");
1152
2
  gt("QF_AUFNIRA", "QF_UFIDL");
1153
2
  gt("QF_AUFNIRA", "QF_NIA");
1154
2
  gt("QF_AUFNIRA", "QF_NRA");
1155
2
  eq("QF_AUFNIRA", "QF_AUFNIRA");
1156
2
  nc("QF_AUFNIRA", "LRA");
1157
2
  nc("QF_AUFNIRA", "NRA");
1158
2
  nc("QF_AUFNIRA", "NIA");
1159
2
  nc("QF_AUFNIRA", "UFLRA");
1160
2
  nc("QF_AUFNIRA", "UFNIA");
1161
2
  nc("QF_AUFNIRA", "AUFLIA");
1162
2
  nc("QF_AUFNIRA", "AUFLIRA");
1163
2
  lt("QF_AUFNIRA", "AUFNIRA");
1164
2
  lt("QF_AUFNIRA", "QF_AUFNIRAT");
1165
1166
2
  nc("LRA", "QF_UF");
1167
2
  gt("LRA", "QF_LRA");
1168
2
  nc("LRA", "QF_LIA");
1169
2
  nc("LRA", "QF_UFLRA");
1170
2
  nc("LRA", "QF_UFLIA");
1171
2
  nc("LRA", "QF_AUFLIA");
1172
2
  nc("LRA", "QF_AUFLIRA");
1173
2
  nc("LRA", "QF_BV");
1174
2
  nc("LRA", "QF_ABV");
1175
2
  nc("LRA", "QF_AUFBV");
1176
2
  nc("LRA", "QF_IDL");
1177
2
  gt("LRA", "QF_RDL");
1178
2
  nc("LRA", "QF_UFIDL");
1179
2
  nc("LRA", "QF_NIA");
1180
2
  nc("LRA", "QF_NRA");
1181
2
  nc("LRA", "QF_AUFNIRA");
1182
2
  eq("LRA", "LRA");
1183
2
  lt("LRA", "NRA");
1184
2
  nc("LRA", "NIA");
1185
2
  lt("LRA", "UFLRA");
1186
2
  nc("LRA", "UFNIA");
1187
2
  nc("LRA", "AUFLIA");
1188
2
  lt("LRA", "AUFLIRA");
1189
2
  lt("LRA", "AUFNIRA");
1190
1191
2
  nc("NRA", "QF_UF");
1192
2
  gt("NRA", "QF_LRA");
1193
2
  nc("NRA", "QF_LIA");
1194
2
  nc("NRA", "QF_UFLRA");
1195
2
  nc("NRA", "QF_UFLIA");
1196
2
  nc("NRA", "QF_AUFLIA");
1197
2
  nc("NRA", "QF_AUFLIRA");
1198
2
  nc("NRA", "QF_BV");
1199
2
  nc("NRA", "QF_ABV");
1200
2
  nc("NRA", "QF_AUFBV");
1201
2
  nc("NRA", "QF_IDL");
1202
2
  gt("NRA", "QF_RDL");
1203
2
  nc("NRA", "QF_UFIDL");
1204
2
  nc("NRA", "QF_NIA");
1205
2
  gt("NRA", "QF_NRA");
1206
2
  nc("NRA", "QF_AUFNIRA");
1207
2
  gt("NRA", "LRA");
1208
2
  eq("NRA", "NRA");
1209
2
  nc("NRA", "NIA");
1210
2
  nc("NRA", "UFLRA");
1211
2
  nc("NRA", "UFNIA");
1212
2
  nc("NRA", "AUFLIA");
1213
2
  nc("NRA", "AUFLIRA");
1214
2
  lt("NRA", "AUFNIRA");
1215
1216
2
  nc("NIA", "QF_UF");
1217
2
  nc("NIA", "QF_LRA");
1218
2
  gt("NIA", "QF_LIA");
1219
2
  nc("NIA", "QF_UFLRA");
1220
2
  nc("NIA", "QF_UFLIA");
1221
2
  nc("NIA", "QF_AUFLIA");
1222
2
  nc("NIA", "QF_AUFLIRA");
1223
2
  nc("NIA", "QF_BV");
1224
2
  nc("NIA", "QF_ABV");
1225
2
  nc("NIA", "QF_AUFBV");
1226
2
  gt("NIA", "QF_IDL");
1227
2
  nc("NIA", "QF_RDL");
1228
2
  nc("NIA", "QF_UFIDL");
1229
2
  gt("NIA", "QF_NIA");
1230
2
  nc("NIA", "QF_NRA");
1231
2
  nc("NIA", "QF_AUFNIRA");
1232
2
  nc("NIA", "LRA");
1233
2
  nc("NIA", "NRA");
1234
2
  eq("NIA", "NIA");
1235
2
  nc("NIA", "UFLRA");
1236
2
  lt("NIA", "UFNIA");
1237
2
  nc("NIA", "AUFLIA");
1238
2
  nc("NIA", "AUFLIRA");
1239
2
  lt("NIA", "AUFNIRA");
1240
1241
2
  gt("UFLRA", "QF_UF");
1242
2
  gt("UFLRA", "QF_LRA");
1243
2
  nc("UFLRA", "QF_LIA");
1244
2
  gt("UFLRA", "QF_UFLRA");
1245
2
  nc("UFLRA", "QF_UFLIA");
1246
2
  nc("UFLRA", "QF_AUFLIA");
1247
2
  nc("UFLRA", "QF_AUFLIRA");
1248
2
  nc("UFLRA", "QF_BV");
1249
2
  nc("UFLRA", "QF_ABV");
1250
2
  nc("UFLRA", "QF_AUFBV");
1251
2
  nc("UFLRA", "QF_IDL");
1252
2
  gt("UFLRA", "QF_RDL");
1253
2
  nc("UFLRA", "QF_UFIDL");
1254
2
  nc("UFLRA", "QF_NIA");
1255
2
  nc("UFLRA", "QF_NRA");
1256
2
  nc("UFLRA", "QF_AUFNIRA");
1257
2
  gt("UFLRA", "LRA");
1258
2
  nc("UFLRA", "NRA");
1259
2
  nc("UFLRA", "NIA");
1260
2
  eq("UFLRA", "UFLRA");
1261
2
  nc("UFLRA", "UFNIA");
1262
2
  nc("UFLRA", "AUFLIA");
1263
2
  lt("UFLRA", "AUFLIRA");
1264
2
  lt("UFLRA", "AUFNIRA");
1265
1266
2
  gt("UFNIA", "QF_UF");
1267
2
  nc("UFNIA", "QF_LRA");
1268
2
  gt("UFNIA", "QF_LIA");
1269
2
  nc("UFNIA", "QF_UFLRA");
1270
2
  gt("UFNIA", "QF_UFLIA");
1271
2
  nc("UFNIA", "QF_AUFLIA");
1272
2
  nc("UFNIA", "QF_AUFLIRA");
1273
2
  nc("UFNIA", "QF_BV");
1274
2
  nc("UFNIA", "QF_ABV");
1275
2
  nc("UFNIA", "QF_AUFBV");
1276
2
  gt("UFNIA", "QF_IDL");
1277
2
  nc("UFNIA", "QF_RDL");
1278
2
  gt("UFNIA", "QF_UFIDL");
1279
2
  gt("UFNIA", "QF_NIA");
1280
2
  nc("UFNIA", "QF_NRA");
1281
2
  nc("UFNIA", "QF_AUFNIRA");
1282
2
  nc("UFNIA", "LRA");
1283
2
  nc("UFNIA", "NRA");
1284
2
  gt("UFNIA", "NIA");
1285
2
  nc("UFNIA", "UFLRA");
1286
2
  eq("UFNIA", "UFNIA");
1287
2
  nc("UFNIA", "AUFLIA");
1288
2
  nc("UFNIA", "AUFLIRA");
1289
2
  lt("UFNIA", "AUFNIRA");
1290
1291
2
  gt("AUFLIA", "QF_UF");
1292
2
  nc("AUFLIA", "QF_LRA");
1293
2
  gt("AUFLIA", "QF_LIA");
1294
2
  nc("AUFLIA", "QF_UFLRA");
1295
2
  gt("AUFLIA", "QF_UFLIA");
1296
2
  gt("AUFLIA", "QF_AUFLIA");
1297
2
  nc("AUFLIA", "QF_AUFLIRA");
1298
2
  nc("AUFLIA", "QF_BV");
1299
2
  nc("AUFLIA", "QF_ABV");
1300
2
  nc("AUFLIA", "QF_AUFBV");
1301
2
  gt("AUFLIA", "QF_IDL");
1302
2
  nc("AUFLIA", "QF_RDL");
1303
2
  gt("AUFLIA", "QF_UFIDL");
1304
2
  nc("AUFLIA", "QF_NIA");
1305
2
  nc("AUFLIA", "QF_NRA");
1306
2
  nc("AUFLIA", "QF_AUFNIRA");
1307
2
  nc("AUFLIA", "LRA");
1308
2
  nc("AUFLIA", "NRA");
1309
2
  nc("AUFLIA", "NIA");
1310
2
  nc("AUFLIA", "UFLRA");
1311
2
  nc("AUFLIA", "UFNIA");
1312
2
  eq("AUFLIA", "AUFLIA");
1313
2
  lt("AUFLIA", "AUFLIRA");
1314
2
  lt("AUFLIA", "AUFNIRA");
1315
1316
2
  gt("AUFLIRA", "QF_UF");
1317
2
  gt("AUFLIRA", "QF_LRA");
1318
2
  gt("AUFLIRA", "QF_LIA");
1319
2
  gt("AUFLIRA", "QF_UFLRA");
1320
2
  gt("AUFLIRA", "QF_UFLIA");
1321
2
  gt("AUFLIRA", "QF_AUFLIA");
1322
2
  gt("AUFLIRA", "QF_AUFLIRA");
1323
2
  nc("AUFLIRA", "QF_BV");
1324
2
  nc("AUFLIRA", "QF_ABV");
1325
2
  nc("AUFLIRA", "QF_AUFBV");
1326
2
  gt("AUFLIRA", "QF_IDL");
1327
2
  gt("AUFLIRA", "QF_RDL");
1328
2
  gt("AUFLIRA", "QF_UFIDL");
1329
2
  nc("AUFLIRA", "QF_NIA");
1330
2
  nc("AUFLIRA", "QF_NRA");
1331
2
  nc("AUFLIRA", "QF_AUFNIRA");
1332
2
  gt("AUFLIRA", "LRA");
1333
2
  nc("AUFLIRA", "NRA");
1334
2
  nc("AUFLIRA", "NIA");
1335
2
  gt("AUFLIRA", "UFLRA");
1336
2
  nc("AUFLIRA", "UFNIA");
1337
2
  gt("AUFLIRA", "AUFLIA");
1338
2
  eq("AUFLIRA", "AUFLIRA");
1339
2
  lt("AUFLIRA", "AUFNIRA");
1340
1341
2
  gt("AUFNIRA", "QF_UF");
1342
2
  gt("AUFNIRA", "QF_LRA");
1343
2
  gt("AUFNIRA", "QF_LIA");
1344
2
  gt("AUFNIRA", "QF_UFLRA");
1345
2
  gt("AUFNIRA", "QF_UFLIA");
1346
2
  gt("AUFNIRA", "QF_AUFLIA");
1347
2
  gt("AUFNIRA", "QF_AUFLIRA");
1348
2
  nc("AUFNIRA", "QF_BV");
1349
2
  nc("AUFNIRA", "QF_ABV");
1350
2
  nc("AUFNIRA", "QF_AUFBV");
1351
2
  gt("AUFNIRA", "QF_IDL");
1352
2
  gt("AUFNIRA", "QF_RDL");
1353
2
  gt("AUFNIRA", "QF_UFIDL");
1354
2
  gt("AUFNIRA", "QF_NIA");
1355
2
  gt("AUFNIRA", "QF_NRA");
1356
2
  gt("AUFNIRA", "QF_AUFNIRA");
1357
2
  gt("AUFNIRA", "LRA");
1358
2
  gt("AUFNIRA", "NRA");
1359
2
  gt("AUFNIRA", "NIA");
1360
2
  gt("AUFNIRA", "UFLRA");
1361
2
  gt("AUFNIRA", "UFNIA");
1362
2
  gt("AUFNIRA", "AUFLIA");
1363
2
  gt("AUFNIRA", "AUFLIRA");
1364
2
  eq("AUFNIRA", "AUFNIRA");
1365
2
  lt("AUFNIRA", "AUFNIRAT");
1366
1367
2
  gt("QF_UFC", "QF_UF");
1368
2
  gt("QF_UFCLRA", "QF_UFLRA");
1369
1370
2
  gt(ufHo, "QF_UF");
1371
2
}
1372
}  // namespace test
1373
12
}  // namespace cvc5