diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2018-02-15 15:31:48 -0600 |
---|---|---|
committer | Aina Niemetz <aina.niemetz@gmail.com> | 2018-02-15 13:31:48 -0800 |
commit | 55037e0bcef45c795f28ff3fcf6c1055af465c70 (patch) | |
tree | 397d89bd10e541e1206c5dafdb8cf731feb34730 /test/regress/regress1/quantifiers | |
parent | 52a39aca19b7238d08c3cebcfa46436a73194008 (diff) |
Refactor regressions (#1581)
Diffstat (limited to 'test/regress/regress1/quantifiers')
67 files changed, 8010 insertions, 2 deletions
diff --git a/test/regress/regress1/quantifiers/006-cbqi-ite.smt2 b/test/regress/regress1/quantifiers/006-cbqi-ite.smt2 new file mode 100644 index 000000000..bfa3ef22b --- /dev/null +++ b/test/regress/regress1/quantifiers/006-cbqi-ite.smt2 @@ -0,0 +1,299 @@ +(set-logic LIA) +(set-info :status unsat) +(declare-fun W_S2_V6 () Bool) +(declare-fun W_S2_V4 () Bool) +(declare-fun W_S2_V2 () Bool) +(declare-fun W_S2_V3 () Bool) +(declare-fun W_S2_V1 () Bool) +(declare-fun W_S1_V6 () Bool) +(declare-fun W_S1_V5 () Bool) +(declare-fun W_S1_V2 () Bool) +(declare-fun W_S1_V3 () Bool) +(declare-fun W_S1_V1 () Bool) +(declare-fun R_S1_V1 () Bool) +(declare-fun R_S2_V6 () Bool) +(declare-fun R_S2_V4 () Bool) +(declare-fun R_S2_V5 () Bool) +(declare-fun R_S2_V2 () Bool) +(declare-fun R_S2_V3 () Bool) +(declare-fun R_S2_V1 () Bool) +(declare-fun R_E1_V6 () Bool) +(declare-fun R_E1_V4 () Bool) +(declare-fun R_E1_V5 () Bool) +(declare-fun R_E1_V2 () Bool) +(declare-fun R_E1_V3 () Bool) +(declare-fun R_E1_V1 () Bool) +(declare-fun DISJ_W_S2_R_E1 () Bool) +(declare-fun DISJ_W_S2_R_S2 () Bool) +(declare-fun R_S1_V6 () Bool) +(declare-fun R_S1_V4 () Bool) +(declare-fun R_S1_V5 () Bool) +(declare-fun R_S1_V2 () Bool) +(declare-fun R_S1_V3 () Bool) +(declare-fun DISJ_W_S2_R_S1 () Bool) +(declare-fun DISJ_W_S1_W_S2 () Bool) +(declare-fun DISJ_W_S1_R_E1 () Bool) +(declare-fun DISJ_W_S1_R_S2 () Bool) +(declare-fun DISJ_W_S1_R_S1 () Bool) +(declare-fun W_S2_V5 () Bool) +(declare-fun W_S1_V4 () Bool) +(assert + (let + (($x1615 + (forall + ((V1_0 Int) (V3_0 Int) + (V2_0 Int) (V5_0 Int) + (V4_0 Int) (V6_0 Int) + (MW_S1_V1 Bool) (MW_S1_V3 Bool) + (MW_S1_V2 Bool) (MW_S1_V5 Bool) + (MW_S1_V4 Bool) (MW_S1_V6 Bool) + (MW_S2_V1 Bool) (MW_S2_V3 Bool) + (MW_S2_V2 Bool) (MW_S2_V5 Bool) + (MW_S2_V4 Bool) (MW_S2_V6 Bool) + (S1_V1_!158 Int) (S1_V1_!171 Int) + (S2_V5_!167 Int) (S2_V5_!180 Int) + (S1_V3_!159 Int) (S1_V3_!172 Int) + (S1_V2_!160 Int) (S1_V2_!173 Int) + (E1_!157 Int) (E1_!170 Int) + (E1_!183 Int) (S2_V4_!168 Int) + (S2_V4_!181 Int) (S2_V6_!169 Int) + (S2_V6_!182 Int) (S1_V5_!161 Int) + (S1_V5_!174 Int) (S2_V1_!164 Int) + (S2_V1_!177 Int) (S1_V4_!162 Int) + (S1_V4_!175 Int) (S2_V3_!165 Int) + (S2_V3_!178 Int) (S2_V2_!166 Int) + (S2_V2_!179 Int) (S1_V6_!163 Int) + (S1_V6_!176 Int)) + (let ((?x1431 (ite MW_S1_V6 S1_V6_!176 V6_0))) + (let ((?x1432 (ite MW_S2_V6 S2_V6_!182 ?x1431))) + (let ((?x1433 (ite MW_S1_V6 S1_V6_!163 V6_0))) + (let ((?x1434 (ite MW_S2_V6 S2_V6_!169 ?x1433))) + (let (($x1435 (= ?x1434 ?x1432))) + (let ((?x1436 (ite MW_S1_V4 S1_V4_!175 V4_0))) + (let ((?x1437 (ite MW_S2_V4 S2_V4_!181 ?x1436))) + (let ((?x1438 (ite MW_S1_V4 S1_V4_!162 V4_0))) + (let ((?x1439 (ite MW_S2_V4 S2_V4_!168 ?x1438))) + (let (($x1440 (= ?x1439 ?x1437))) + (let ((?x1441 (ite MW_S1_V5 S1_V5_!174 V5_0))) + (let ((?x1442 (ite MW_S2_V5 S2_V5_!180 ?x1441))) + (let ((?x1444 (ite MW_S1_V5 S1_V5_!161 V5_0))) + (let ((?x1445 (ite MW_S2_V5 S2_V5_!167 ?x1444))) + (let (($x1446 (= ?x1445 ?x1442))) + (let ((?x1447 (ite MW_S1_V2 S1_V2_!173 V2_0))) + (let ((?x1448 (ite MW_S2_V2 S2_V2_!179 ?x1447))) + (let ((?x1449 (ite MW_S1_V2 S1_V2_!160 V2_0))) + (let ((?x1450 (ite MW_S2_V2 S2_V2_!166 ?x1449))) + (let (($x1451 (= ?x1450 ?x1448))) + (let ((?x1467 (ite MW_S1_V3 S1_V3_!159 V3_0))) + (let ((?x1468 (+ 1 ?x1467))) + (let ((?x1458 (ite MW_S2_V3 S2_V3_!165 ?x1468))) + (let + (($x1459 + (= ?x1458 + (+ (ite MW_S2_V3 S2_V3_!178 (ite MW_S1_V3 S1_V3_!172 V3_0)) ?x1448 + (* (- 1) E1_!183))))) + (let ((?x1460 (ite MW_S1_V1 S1_V1_!171 E1_!170))) + (let ((?x1487 (ite MW_S2_V1 S2_V1_!177 ?x1460))) + (let ((?x1453 (ite MW_S1_V1 S1_V1_!158 E1_!157))) + (let ((?x1489 (ite MW_S2_V1 S2_V1_!164 ?x1453))) + (let (($x1289 (= ?x1489 ?x1487))) + (let ((?x1455 (+ (- 1) ?x1448))) + (let (($x1376 (>= ?x1487 ?x1455))) + (let (($x1377 (<= V2_0 E1_!170))) + (let (($x1379 (not $x1377))) + (let ((?x1380 (+ (- 1) ?x1450))) + (let (($x1381 (>= ?x1489 ?x1380))) + (let (($x1479 (<= V2_0 E1_!157))) + (let (($x1456 (not $x1479))) + (let (($x1499 (and $x1456 $x1381 $x1379 $x1376))) + (let (($x1500 (not $x1499))) + (let (($x1502 (not MW_S2_V6))) + (let (($x1503 (or $x1502 W_S2_V6))) + (let (($x1504 (not MW_S2_V4))) + (let (($x1505 (or $x1504 W_S2_V4))) + (let (($x1508 (not MW_S2_V2))) + (let (($x1509 (or $x1508 W_S2_V2))) + (let (($x1510 (not MW_S2_V3))) + (let (($x1511 (or $x1510 W_S2_V3))) + (let (($x1512 (not MW_S2_V1))) + (let (($x1513 (or $x1512 W_S2_V1))) + (let (($x1514 (not MW_S1_V6))) + (let (($x1515 (or $x1514 W_S1_V6))) + (let (($x1518 (not MW_S1_V5))) + (let (($x1519 (or $x1518 W_S1_V5))) + (let (($x1520 (not MW_S1_V2))) + (let (($x1521 (or $x1520 W_S1_V2))) + (let (($x1522 (not MW_S1_V3))) + (let (($x1523 (or $x1522 W_S1_V3))) + (let (($x1524 (not MW_S1_V1))) + (let (($x1525 (or $x1524 W_S1_V1))) + (let (($x1527 (= S1_V6_!176 S1_V6_!163))) + (let (($x1528 (= E1_!170 E1_!157))) + (let (($x228 (not R_S1_V1))) + (let (($x1529 (or $x228 $x1528))) + (let (($x1530 (not $x1529))) + (let (($x1531 (or $x1530 $x1527))) + (let (($x1532 (= S2_V2_!179 S2_V2_!166))) + (let (($x1533 (= ?x1431 ?x1433))) + (let (($x253 (not R_S2_V6))) + (let (($x1534 (or $x253 $x1533))) + (let (($x1535 (= ?x1436 ?x1438))) + (let (($x251 (not R_S2_V4))) + (let (($x1536 (or $x251 $x1535))) + (let (($x1537 (= ?x1441 ?x1444))) + (let (($x249 (not R_S2_V5))) + (let (($x1538 (or $x249 $x1537))) + (let (($x1539 (= ?x1447 ?x1449))) + (let (($x247 (not R_S2_V2))) + (let (($x1540 (or $x247 $x1539))) + (let ((?x1462 (ite MW_S1_V3 S1_V3_!172 V3_0))) + (let (($x1541 (= ?x1462 ?x1468))) + (let (($x245 (not R_S2_V3))) + (let (($x1542 (or $x245 $x1541))) + (let (($x1543 (= ?x1460 ?x1453))) + (let (($x243 (not R_S2_V1))) + (let (($x1544 (or $x243 $x1543))) + (let (($x1545 (and $x1544 $x1542 $x1540 $x1538 $x1536 $x1534))) + (let (($x1546 (not $x1545))) + (let (($x1547 (or $x1546 $x1532))) + (let (($x1548 (= S2_V3_!165 S2_V3_!178))) + (let (($x1549 (= ?x1433 ?x1431))) + (let (($x1550 (or $x253 $x1549))) + (let (($x1551 (= ?x1438 ?x1436))) + (let (($x1552 (or $x251 $x1551))) + (let (($x1553 (= ?x1444 ?x1441))) + (let (($x1554 (or $x249 $x1553))) + (let (($x1555 (= ?x1449 ?x1447))) + (let (($x1556 (or $x247 $x1555))) + (let ((?x1557 (+ (- 1) ?x1462))) + (let (($x1558 (= ?x1467 ?x1557))) + (let (($x1559 (or $x245 $x1558))) + (let (($x1560 (= ?x1453 ?x1460))) + (let (($x1561 (or $x243 $x1560))) + (let (($x1562 (and $x1561 $x1559 $x1556 $x1554 $x1552 $x1550))) + (let (($x1563 (not $x1562))) + (let (($x1564 (or $x1563 $x1548))) + (let (($x1565 (= S1_V4_!175 S1_V4_!162))) + (let (($x1566 (or $x1530 $x1565))) + (let (($x1567 (= S2_V1_!177 S2_V1_!164))) + (let (($x1568 (or $x1546 $x1567))) + (let (($x1569 (= S1_V5_!174 S1_V5_!161))) + (let (($x1570 (or $x1530 $x1569))) + (let (($x1571 (= S2_V6_!182 S2_V6_!169))) + (let (($x1572 (or $x1546 $x1571))) + (let (($x1573 (= S2_V4_!168 S2_V4_!181))) + (let (($x1574 (or $x1563 $x1573))) + (let (($x1575 (= E1_!170 E1_!183))) + (let (($x1576 (= V6_0 ?x1432))) + (let (($x177 (not R_E1_V6))) + (let (($x1577 (or $x177 $x1576))) + (let (($x1578 (= V4_0 ?x1437))) + (let (($x175 (not R_E1_V4))) + (let (($x1579 (or $x175 $x1578))) + (let (($x1580 (= V5_0 ?x1442))) + (let (($x173 (not R_E1_V5))) + (let (($x1581 (or $x173 $x1580))) + (let (($x1582 (= V2_0 ?x1448))) + (let (($x171 (not R_E1_V2))) + (let (($x1583 (or $x171 $x1582))) + (let ((?x1463 (ite MW_S2_V3 S2_V3_!178 ?x1462))) + (let (($x1584 (= V3_0 ?x1463))) + (let (($x169 (not R_E1_V3))) + (let (($x1585 (or $x169 $x1584))) + (let ((?x1586 (+ 1 ?x1487))) + (let (($x1587 (= V1_0 ?x1586))) + (let (($x167 (not R_E1_V1))) + (let (($x1588 (or $x167 $x1587))) + (let (($x1589 (and $x1588 $x1585 $x1583 $x1581 $x1579 $x1577))) + (let (($x1590 (not $x1589))) + (let (($x1591 (or $x1590 $x1575))) + (let (($x1592 (= E1_!157 E1_!183))) + (let (($x1593 (or $x1590 $x1592))) + (let (($x1594 (= E1_!157 E1_!170))) + (let (($x1595 (= S1_V2_!173 S1_V2_!160))) + (let (($x1596 (or $x1530 $x1595))) + (let (($x1597 (= S1_V3_!159 S1_V3_!172))) + (let (($x1598 (or $x228 $x1594))) + (let (($x1599 (not $x1598))) + (let (($x1600 (or $x1599 $x1597))) + (let (($x1601 (= S2_V5_!180 S2_V5_!167))) + (let (($x1602 (or $x1546 $x1601))) + (let (($x1603 (= S1_V1_!158 S1_V1_!171))) + (let (($x1604 (or $x1599 $x1603))) + (let + (($x1612 + (and $x1604 $x1602 $x1600 $x1596 $x1594 $x1593 $x1591 $x1574 $x1572 + $x1570 $x1568 $x1566 $x1564 $x1547 $x1531 $x1525 $x1523 $x1521 $x1519 + $x1515 $x1513 $x1511 $x1509 $x1505 $x1503))) + (let (($x1613 (not $x1612))) + (or $x1613 $x1500 (and $x1289 $x1459 $x1451 $x1446 $x1440 $x1435))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + (let (($x103 (and W_S2_V6 R_E1_V6))) + (let (($x102 (and W_S2_V4 R_E1_V4))) + (let (($x100 (and W_S2_V2 R_E1_V2))) + (let (($x99 (and W_S2_V3 R_E1_V3))) + (let (($x98 (and W_S2_V1 R_E1_V1))) + (let (($x128 (or $x98 $x99 $x100 R_E1_V5 $x102 $x103))) + (let (($x129 (not $x128))) + (let (($x130 (= DISJ_W_S2_R_E1 $x129))) + (let (($x93 (and W_S2_V6 R_S2_V6))) + (let (($x92 (and W_S2_V4 R_S2_V4))) + (let (($x90 (and W_S2_V2 R_S2_V2))) + (let (($x89 (and W_S2_V3 R_S2_V3))) + (let (($x88 (and W_S2_V1 R_S2_V1))) + (let (($x125 (or $x88 $x89 $x90 R_S2_V5 $x92 $x93))) + (let (($x126 (not $x125))) + (let (($x127 (= DISJ_W_S2_R_S2 $x126))) + (let (($x83 (and W_S2_V6 R_S1_V6))) + (let (($x82 (and W_S2_V4 R_S1_V4))) + (let (($x80 (and W_S2_V2 R_S1_V2))) + (let (($x79 (and W_S2_V3 R_S1_V3))) + (let (($x78 (and W_S2_V1 R_S1_V1))) + (let (($x122 (or $x78 $x79 $x80 R_S1_V5 $x82 $x83))) + (let (($x123 (not $x122))) + (let (($x124 (= DISJ_W_S2_R_S1 $x123))) + (let (($x73 (and W_S1_V6 W_S2_V6))) + (let (($x68 (and W_S1_V2 W_S2_V2))) + (let (($x66 (and W_S1_V3 W_S2_V3))) + (let (($x64 (and W_S1_V1 W_S2_V1))) + (let (($x119 (or $x64 $x66 $x68 W_S1_V5 W_S2_V4 $x73))) + (let (($x120 (not $x119))) + (let (($x121 (= DISJ_W_S1_W_S2 $x120))) + (let (($x58 (and W_S1_V6 R_E1_V6))) + (let (($x54 (and W_S1_V5 R_E1_V5))) + (let (($x52 (and W_S1_V2 R_E1_V2))) + (let (($x50 (and W_S1_V3 R_E1_V3))) + (let (($x48 (and W_S1_V1 R_E1_V1))) + (let (($x116 (or $x48 $x50 $x52 $x54 R_E1_V4 $x58))) + (let (($x117 (not $x116))) + (let (($x118 (= DISJ_W_S1_R_E1 $x117))) + (let (($x42 (and W_S1_V6 R_S2_V6))) + (let (($x38 (and W_S1_V5 R_S2_V5))) + (let (($x36 (and W_S1_V2 R_S2_V2))) + (let (($x34 (and W_S1_V3 R_S2_V3))) + (let (($x32 (and W_S1_V1 R_S2_V1))) + (let (($x113 (or $x32 $x34 $x36 $x38 R_S2_V4 $x42))) + (let (($x114 (not $x113))) + (let (($x115 (= DISJ_W_S1_R_S2 $x114))) + (let (($x26 (and W_S1_V6 R_S1_V6))) + (let (($x21 (and W_S1_V5 R_S1_V5))) + (let (($x18 (and W_S1_V2 R_S1_V2))) + (let (($x15 (and W_S1_V3 R_S1_V3))) + (let (($x12 (and W_S1_V1 R_S1_V1))) + (let (($x110 (or $x12 $x15 $x18 $x21 R_S1_V4 $x26))) + (let (($x111 (not $x110))) + (let (($x112 (= DISJ_W_S1_R_S1 $x111))) + (and W_S1_V4 W_S2_V5 $x112 $x115 $x118 $x121 $x124 $x127 $x130 $x1615)))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +(assert + (let (($x1192 (not W_S2_V2))) + (let (($x1189 (not W_S2_V3))) + (let (($x1186 (not W_S2_V1))) + (let (($x1091 (not W_S1_V2))) + (let (($x1078 (not W_S1_V1))) + (let (($x245 (not R_S2_V3))) + (let (($x167 (not R_E1_V1))) + (let + (($x1647 + (and $x167 $x245 $x1078 $x1091 $x1186 $x1189 $x1192 DISJ_W_S1_R_E1 + DISJ_W_S2_R_E1))) (not $x1647)))))))))) +(check-sat) + diff --git a/test/regress/regress1/quantifiers/AdditiveMethods_OwnedResults.Mz.smt2 b/test/regress/regress1/quantifiers/AdditiveMethods_OwnedResults.Mz.smt2 new file mode 100644 index 000000000..670dcc006 --- /dev/null +++ b/test/regress/regress1/quantifiers/AdditiveMethods_OwnedResults.Mz.smt2 @@ -0,0 +1,399 @@ +(set-logic AUFLIA) +(set-info :source | + Boogie/Spec# benchmarks. + This benchmark was translated by Michal Moskal. +|) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-fun boolIff (Int Int) Int) +(declare-fun PeerGroupPlaceholder_ () Int) +(declare-fun intGreater (Int Int) Int) +(declare-fun IfThenElse_ (Int Int Int) Int) +(declare-fun CONCVARSYM (Int) Int) +(declare-fun SharingMode_Unshared_ () Int) +(declare-fun OwnedResults.Mz_ (Int Int) Int) +(declare-fun System.Reflection.IReflect () Int) +(declare-fun int_m2147483648 () Int) +(declare-fun System.Int32 () Int) +(declare-fun intAtMost (Int Int) Int) +(declare-fun multiply (Int Int) Int) +(declare-fun Is_ (Int Int) Int) +(declare-fun Smt.true () Int) +(declare-fun ElementType_ (Int) Int) +(declare-fun divide (Int Int) Int) +(declare-fun int_m9223372036854775808 () Int) +(declare-fun divides (Int Int) Int) +(declare-fun select1 (Int Int) Int) +(declare-fun store1 (Int Int Int) Int) +(declare-fun select2 (Int Int Int) Int) +(declare-fun nullObject () Int) +(declare-fun store2 (Int Int Int Int) Int) +(declare-fun modulo (Int Int) Int) +(declare-fun ownerRef_ () Int) +(declare-fun StructSet_ (Int Int Int) Int) +(declare-fun AsDirectSubClass (Int Int) Int) +(declare-fun OwnedResults.Pw_ (Int Int) Int) +(declare-fun System.Boolean () Int) +(declare-fun shl_ (Int Int) Int) +(declare-fun DimLength_ (Int Int) Int) +(declare-fun block8823_correct () Int) +(declare-fun anyEqual (Int Int) Int) +(declare-fun System.Array () Int) +(declare-fun System.Reflection.ICustomAttributeProvider () Int) +(declare-fun SharingMode_LockProtected_ () Int) +(declare-fun IsMemberlessType_ (Int) Int) +(declare-fun System.UInt16 () Int) +(declare-fun ClassRepr (Int) Int) +(declare-fun System.Runtime.InteropServices._Type () Int) +(declare-fun boolNot (Int) Int) +(declare-fun T () Int) +(declare-fun System.Runtime.InteropServices._MemberInfo () Int) +(declare-fun boolAnd (Int Int) Int) +(declare-fun boolImplies (Int Int) Int) +(declare-fun Unbox (Int) Int) +(declare-fun intAtLeast (Int Int) Int) +(declare-fun ownerFrame_ () Int) +(declare-fun int_4294967295 () Int) +(declare-fun IsAllocated (Int Int) Int) +(declare-fun TypeName (Int) Int) +(declare-fun AsPeerField (Int) Int) +(declare-fun int_9223372036854775807 () Int) +(declare-fun block8840_correct () Int) +(declare-fun AsRepField (Int Int) Int) +(declare-fun System.Reflection.MemberInfo () Int) +(declare-fun ArrayCategoryValue_ () Int) +(declare-fun is (Int Int) Int) +(declare-fun InRange (Int Int) Bool) +(declare-fun AsOwner (Int Int) Int) +(declare-fun OwnedResults.Qz_System.Int32_ (Int Int Int) Int) +(declare-fun System.Int64 () Int) +(declare-fun or_ (Int Int) Int) +(declare-fun As_ (Int Int) Int) +(declare-fun exposeVersion_ () Int) +(declare-fun System.Type () Int) +(declare-fun intLess (Int Int) Int) +(declare-fun AsImmutable_ (Int) Int) +(declare-fun NonNullFieldsAreInitialized_ () Int) +(declare-fun LBound_ (Int Int) Int) +(declare-fun System.Object () Int) +(declare-fun System.UInt32 () Int) +(declare-fun localinv_ () Int) +(declare-fun inv_ () Int) +(declare-fun OwnedResults.Static0_ (Int) Int) +(declare-fun entry_correct () Int) +(declare-fun OwnedResults.Pz_ (Int Int) Int) +(declare-fun FirstConsistentOwner_ () Int) +(declare-fun UnboxedType (Int) Int) +(declare-fun AsRefField (Int Int) Int) +(declare-fun System.Byte () Int) +(declare-fun AdditiveMethods () Int) +(declare-fun this () Int) +(declare-fun int_2147483647 () Int) +(declare-fun ArrayCategoryRef_ () Int) +(declare-fun Heap_ () Int) +(declare-fun OwnedResults.Qz_System.Int32_.1 (Int Int) Int) +(declare-fun Length_ (Int) Int) +(declare-fun AsNonNullRefField (Int Int) Int) +(declare-fun Sub () Int) +(declare-fun IsHeap (Int) Int) +(declare-fun OwnedResults.Static1_ (Int) Int) +(declare-fun UBound_ (Int Int) Int) +(declare-fun System.String () Int) +(declare-fun System.String.IsInterned_System.String_notnull_ (Int) Int) +(declare-fun UnknownRef_ () Int) +(declare-fun Rank_ (Int) Int) +(declare-fun RefArraySet (Int Int Int) Int) +(declare-fun ValueArraySet (Int Int Int) Int) +(declare-fun boolOr (Int Int) Int) +(declare-fun sharingMode_ () Int) +(declare-fun AdditiveMethods.amRep () Int) +(declare-fun subtypes (Int Int) Bool) +(declare-fun System.String.Equals_System.String_System.String_ (Int Int) Int) +(declare-fun anyNeq (Int Int) Int) +(declare-fun IsStaticField (Int) Int) +(declare-fun IsNotNull_ (Int Int) Int) +(declare-fun typeof_ (Int) Int) +(declare-fun OwnedResults () Int) +(declare-fun ArrayCategoryNonNullRef_ () Int) +(declare-fun RefArrayGet (Int Int) Int) +(declare-fun ValueArrayGet (Int Int) Int) +(declare-fun TypeObject (Int) Int) +(declare-fun and_ (Int Int) Int) +(declare-fun OwnedResults.x () Int) +(declare-fun BoxTester (Int Int) Int) +(declare-fun OwnedResults.y () Int) +(declare-fun OwnedResults.Static2_ () Int) +(declare-fun IsValueType_ (Int) Int) +(declare-fun AsRangeField (Int Int) Int) +(declare-fun AdditiveMethods.amPeer () Int) +(declare-fun System.SByte () Int) +(declare-fun BeingConstructed_ () Int) +(declare-fun FieldDependsOnFCO_ (Int Int Int) Int) +(declare-fun NonNullRefArray (Int Int) Int) +(declare-fun RefArray (Int Int) Int) +(declare-fun ArrayCategory_ (Int) Int) +(declare-fun return.value_0 () Int) +(declare-fun AsPureObject_ (Int) Int) +(declare-fun System.String.Equals_System.String_ (Int Int) Int) +(declare-fun System.Int16 () Int) +(declare-fun AsMutable_ (Int) Int) +(declare-fun OwnedResults.Pw_.1 (Int) Int) +(declare-fun System.Char () Int) +(declare-fun System.UInt64 () Int) +(declare-fun StructGet_ (Int Int) Int) +(declare-fun OneClassDown (Int Int) Int) +(declare-fun ArrayIndex (Int Int Int Int) Int) +(declare-fun Box (Int Int) Int) +(declare-fun int_18446744073709551615 () Int) +(declare-fun shr_ (Int Int) Int) +(declare-fun OwnedResults.Pz_.1 (Int) Int) +(declare-fun IsDirectlyModifiableField (Int) Int) +(declare-fun StringLength_ (Int) Int) +(declare-fun allocated_ () Int) +(declare-fun block8806_correct () Int) +(declare-fun BaseClass_ (Int) Int) +(declare-fun ValueArray (Int Int) Int) +(declare-fun Smt.false () Int) +(declare-fun IsImmutable_ (Int) Int) +(declare-fun elements_ () Int) +(declare-fun DeclType (Int) Int) +(declare-fun ReallyLastGeneratedExit_correct () Int) +(assert (distinct allocated_ elements_ inv_ localinv_ exposeVersion_ sharingMode_ SharingMode_Unshared_ SharingMode_LockProtected_ ownerRef_ ownerFrame_ PeerGroupPlaceholder_ ArrayCategoryValue_ ArrayCategoryRef_ ArrayCategoryNonNullRef_ System.Array System.Object System.Type BeingConstructed_ NonNullFieldsAreInitialized_ System.String FirstConsistentOwner_ System.SByte System.Byte System.Int16 System.UInt16 System.Int32 System.UInt32 System.Int64 System.UInt64 System.Char int_m2147483648 int_2147483647 int_4294967295 int_m9223372036854775808 int_9223372036854775807 int_18446744073709551615 UnknownRef_ OwnedResults.x AdditiveMethods.amPeer AdditiveMethods.amRep OwnedResults.y OwnedResults System.Runtime.InteropServices._Type System.Runtime.InteropServices._MemberInfo System.Reflection.IReflect Sub System.Reflection.ICustomAttributeProvider System.Boolean AdditiveMethods T System.Reflection.MemberInfo)) +(assert (= (DeclType exposeVersion_) System.Object)) +(assert (forall ((?c0 Int) (?c1 Int)) (! (=> (not (= ?c0 ?c1)) (not (= (ClassRepr ?c0) (ClassRepr ?c1)))) :pattern ((ClassRepr ?c0) (ClassRepr ?c1)) ))) +(assert (forall ((?T Int)) (not (subtypes (typeof_ (ClassRepr ?T)) System.Object)))) +(assert (forall ((?T Int)) (not (= (ClassRepr ?T) nullObject)))) +(assert (forall ((?T Int) (?h Int)) (! (=> (= (IsHeap ?h) Smt.true) (= (select2 ?h (ClassRepr ?T) ownerFrame_) PeerGroupPlaceholder_)) :pattern ((select2 ?h (ClassRepr ?T) ownerFrame_)) ))) +(assert (not (= (IsDirectlyModifiableField allocated_) Smt.true))) +(assert (= (IsDirectlyModifiableField elements_) Smt.true)) +(assert (not (= (IsDirectlyModifiableField inv_) Smt.true))) +(assert (not (= (IsDirectlyModifiableField localinv_) Smt.true))) +(assert (not (= (IsDirectlyModifiableField ownerRef_) Smt.true))) +(assert (not (= (IsDirectlyModifiableField ownerFrame_) Smt.true))) +(assert (not (= (IsDirectlyModifiableField exposeVersion_) Smt.true))) +(assert (not (= (IsStaticField allocated_) Smt.true))) +(assert (not (= (IsStaticField elements_) Smt.true))) +(assert (not (= (IsStaticField inv_) Smt.true))) +(assert (not (= (IsStaticField localinv_) Smt.true))) +(assert (not (= (IsStaticField exposeVersion_) Smt.true))) +(assert (forall ((?A Int) (?i Int) (?x Int)) (= (ValueArrayGet (ValueArraySet ?A ?i ?x) ?i) ?x))) +(assert (forall ((?A Int) (?i Int) (?j Int) (?x Int)) (=> (not (= ?i ?j)) (= (ValueArrayGet (ValueArraySet ?A ?i ?x) ?j) (ValueArrayGet ?A ?j))))) +(assert (forall ((?A Int) (?i Int) (?x Int)) (= (RefArrayGet (RefArraySet ?A ?i ?x) ?i) ?x))) +(assert (forall ((?A Int) (?i Int) (?j Int) (?x Int)) (=> (not (= ?i ?j)) (= (RefArrayGet (RefArraySet ?A ?i ?x) ?j) (RefArrayGet ?A ?j))))) +(assert (forall ((?a Int) (?d Int) (?x Int) (?y Int) (|?x'| Int) (|?y'| Int)) (! (=> (= (ArrayIndex ?a ?d ?x ?y) (ArrayIndex ?a ?d |?x'| |?y'|)) (and (= ?x |?x'|) (= ?y |?y'|))) :pattern ((ArrayIndex ?a ?d ?x ?y) (ArrayIndex ?a ?d |?x'| |?y'|)) ))) +(assert (forall ((?a Int) (?T Int) (?i Int) (?r Int) (?heap Int)) (! (=> (and (= (IsHeap ?heap) Smt.true) (subtypes (typeof_ ?a) (RefArray ?T ?r))) (= (Is_ (RefArrayGet (select2 ?heap ?a elements_) ?i) ?T) Smt.true)) :pattern ((subtypes (typeof_ ?a) (RefArray ?T ?r)) (RefArrayGet (select2 ?heap ?a elements_) ?i)) ))) +(assert (forall ((?a Int) (?T Int) (?i Int) (?r Int) (?heap Int)) (! (=> (and (= (IsHeap ?heap) Smt.true) (subtypes (typeof_ ?a) (NonNullRefArray ?T ?r))) (= (IsNotNull_ (RefArrayGet (select2 ?heap ?a elements_) ?i) ?T) Smt.true)) :pattern ((subtypes (typeof_ ?a) (NonNullRefArray ?T ?r)) (RefArrayGet (select2 ?heap ?a elements_) ?i)) ))) +(assert (forall ((?a Int)) (<= 1 (Rank_ ?a)))) +(assert (forall ((?a Int) (?T Int) (?r Int)) (! (=> (and (not (= ?a nullObject)) (subtypes (typeof_ ?a) (RefArray ?T ?r))) (= (Rank_ ?a) ?r)) :pattern ((subtypes (typeof_ ?a) (RefArray ?T ?r))) ))) +(assert (forall ((?a Int) (?T Int) (?r Int)) (! (=> (and (not (= ?a nullObject)) (subtypes (typeof_ ?a) (NonNullRefArray ?T ?r))) (= (Rank_ ?a) ?r)) :pattern ((subtypes (typeof_ ?a) (NonNullRefArray ?T ?r))) ))) +(assert (forall ((?a Int) (?T Int) (?r Int)) (! (=> (and (not (= ?a nullObject)) (subtypes (typeof_ ?a) (ValueArray ?T ?r))) (= (Rank_ ?a) ?r)) :pattern ((subtypes (typeof_ ?a) (ValueArray ?T ?r))) ))) +(assert (forall ((?a Int)) (! (<= 0 (Length_ ?a)) :pattern ((Length_ ?a)) ))) +(assert (forall ((?a Int) (?i Int)) (<= 0 (DimLength_ ?a ?i)))) +(assert (forall ((?a Int)) (! (=> (= (Rank_ ?a) 1) (= (DimLength_ ?a 0) (Length_ ?a))) :pattern ((DimLength_ ?a 0)) ))) +(assert (forall ((?a Int) (?i Int)) (! (= (LBound_ ?a ?i) 0) :pattern ((LBound_ ?a ?i)) ))) +(assert (forall ((?a Int) (?i Int)) (! (= (UBound_ ?a ?i) (- (DimLength_ ?a ?i) 1)) :pattern ((UBound_ ?a ?i)) ))) +(assert (forall ((?T Int) (?ET Int) (?r Int)) (! (=> (subtypes ?T (ValueArray ?ET ?r)) (= (ArrayCategory_ ?T) ArrayCategoryValue_)) :pattern ((subtypes ?T (ValueArray ?ET ?r))) ))) +(assert (forall ((?T Int) (?ET Int) (?r Int)) (! (=> (subtypes ?T (RefArray ?ET ?r)) (= (ArrayCategory_ ?T) ArrayCategoryRef_)) :pattern ((subtypes ?T (RefArray ?ET ?r))) ))) +(assert (forall ((?T Int) (?ET Int) (?r Int)) (! (=> (subtypes ?T (NonNullRefArray ?ET ?r)) (= (ArrayCategory_ ?T) ArrayCategoryNonNullRef_)) :pattern ((subtypes ?T (NonNullRefArray ?ET ?r))) ))) +(assert (subtypes System.Array System.Object)) +(assert (forall ((?T Int) (?r Int)) (! (subtypes (ValueArray ?T ?r) System.Array) :pattern ((ValueArray ?T ?r)) ))) +(assert (forall ((?T Int) (?r Int)) (! (subtypes (RefArray ?T ?r) System.Array) :pattern ((RefArray ?T ?r)) ))) +(assert (forall ((?T Int) (?r Int)) (! (subtypes (NonNullRefArray ?T ?r) System.Array) :pattern ((NonNullRefArray ?T ?r)) ))) +(assert (forall ((?T Int) (?U Int) (?r Int)) (=> (subtypes ?U ?T) (subtypes (RefArray ?U ?r) (RefArray ?T ?r))))) +(assert (forall ((?T Int) (?U Int) (?r Int)) (=> (subtypes ?U ?T) (subtypes (NonNullRefArray ?U ?r) (NonNullRefArray ?T ?r))))) +(assert (forall ((?A Int) (?r Int)) (= (ElementType_ (ValueArray ?A ?r)) ?A))) +(assert (forall ((?A Int) (?r Int)) (= (ElementType_ (RefArray ?A ?r)) ?A))) +(assert (forall ((?A Int) (?r Int)) (= (ElementType_ (NonNullRefArray ?A ?r)) ?A))) +(assert (forall ((?A Int) (?r Int) (?T Int)) (! (let ((?v_0 (ElementType_ ?T))) (=> (subtypes ?T (RefArray ?A ?r)) (and (= ?T (RefArray ?v_0 ?r)) (subtypes ?v_0 ?A)))) :pattern ((subtypes ?T (RefArray ?A ?r))) ))) +(assert (forall ((?A Int) (?r Int) (?T Int)) (! (let ((?v_0 (ElementType_ ?T))) (=> (subtypes ?T (NonNullRefArray ?A ?r)) (and (= ?T (NonNullRefArray ?v_0 ?r)) (subtypes ?v_0 ?A)))) :pattern ((subtypes ?T (NonNullRefArray ?A ?r))) ))) +(assert (forall ((?A Int) (?r Int) (?T Int)) (let ((?v_0 (ValueArray ?A ?r))) (=> (subtypes ?T ?v_0) (= ?T ?v_0))))) +(assert (forall ((?A Int) (?r Int) (?T Int)) (let ((?v_0 (ElementType_ ?T))) (=> (subtypes (RefArray ?A ?r) ?T) (or (subtypes System.Array ?T) (and (= ?T (RefArray ?v_0 ?r)) (subtypes ?A ?v_0))))))) +(assert (forall ((?A Int) (?r Int) (?T Int)) (let ((?v_0 (ElementType_ ?T))) (=> (subtypes (NonNullRefArray ?A ?r) ?T) (or (subtypes System.Array ?T) (and (= ?T (NonNullRefArray ?v_0 ?r)) (subtypes ?A ?v_0))))))) +(assert (forall ((?A Int) (?r Int) (?T Int)) (let ((?v_0 (ValueArray ?A ?r))) (=> (subtypes ?v_0 ?T) (or (subtypes System.Array ?T) (= ?T ?v_0)))))) +(assert (forall ((?s Int) (?f Int) (?x Int)) (= (StructGet_ (StructSet_ ?s ?f ?x) ?f) ?x))) +(assert (forall ((?s Int) (?f Int) (|?f'| Int) (?x Int)) (=> (not (= ?f |?f'|)) (= (StructGet_ (StructSet_ ?s ?f ?x) |?f'|) (StructGet_ ?s |?f'|))))) +(assert (forall ((?A Int) (?B Int) (?C Int)) (! (=> (subtypes ?C (AsDirectSubClass ?B ?A)) (= (OneClassDown ?C ?A) ?B)) :pattern ((subtypes ?C (AsDirectSubClass ?B ?A))) ))) +(assert (forall ((?T Int)) (=> (= (IsValueType_ ?T) Smt.true) (and (forall ((?U Int)) (=> (subtypes ?T ?U) (= ?T ?U))) (forall ((?U Int)) (=> (subtypes ?U ?T) (= ?T ?U))))))) +(assert (subtypes System.Type System.Object)) +(assert (forall ((?T Int)) (! (= (IsNotNull_ (TypeObject ?T) System.Type) Smt.true) :pattern ((TypeObject ?T)) ))) +(assert (forall ((?T Int)) (! (= (TypeName (TypeObject ?T)) ?T) :pattern ((TypeObject ?T)) ))) +(assert (forall ((?o Int) (?T Int)) (! (= (= (Is_ ?o ?T) Smt.true) (or (= ?o nullObject) (subtypes (typeof_ ?o) ?T))) :pattern ((Is_ ?o ?T)) ))) +(assert (forall ((?o Int) (?T Int)) (! (= (= (IsNotNull_ ?o ?T) Smt.true) (and (not (= ?o nullObject)) (= (Is_ ?o ?T) Smt.true))) :pattern ((IsNotNull_ ?o ?T)) ))) +(assert (forall ((?o Int) (?T Int)) (=> (= (Is_ ?o ?T) Smt.true) (= (As_ ?o ?T) ?o)))) +(assert (forall ((?o Int) (?T Int)) (=> (not (= (Is_ ?o ?T) Smt.true)) (= (As_ ?o ?T) nullObject)))) +(assert (forall ((?h Int) (?o Int)) (! (let ((?v_0 (typeof_ ?o))) (=> (and (= (IsHeap ?h) Smt.true) (not (= ?o nullObject)) (subtypes ?v_0 System.Array)) (and (= (select2 ?h ?o inv_) ?v_0) (= (select2 ?h ?o localinv_) ?v_0)))) :pattern ((select2 ?h ?o inv_)) ))) +(assert (forall ((?h Int) (?o Int) (?f Int)) (! (=> (and (= (IsHeap ?h) Smt.true) (= (select2 ?h ?o allocated_) Smt.true)) (= (IsAllocated ?h (select2 ?h ?o ?f)) Smt.true)) :pattern ((IsAllocated ?h (select2 ?h ?o ?f))) ))) +(assert (forall ((?h Int) (?o Int) (?f Int)) (! (=> (and (= (IsHeap ?h) Smt.true) (= (select2 ?h ?o allocated_) Smt.true)) (= (select2 ?h (select2 ?h ?o ?f) allocated_) Smt.true)) :pattern ((select2 ?h (select2 ?h ?o ?f) allocated_)) ))) +(assert (forall ((?h Int) (?s Int) (?f Int)) (! (=> (= (IsAllocated ?h ?s) Smt.true) (= (IsAllocated ?h (StructGet_ ?s ?f)) Smt.true)) :pattern ((IsAllocated ?h (StructGet_ ?s ?f))) ))) +(assert (forall ((?h Int) (?e Int) (?i Int)) (! (=> (= (IsAllocated ?h ?e) Smt.true) (= (IsAllocated ?h (RefArrayGet ?e ?i)) Smt.true)) :pattern ((IsAllocated ?h (RefArrayGet ?e ?i))) ))) +(assert (forall ((?h Int) (?e Int) (?i Int)) (! (=> (= (IsAllocated ?h ?e) Smt.true) (= (IsAllocated ?h (ValueArrayGet ?e ?i)) Smt.true)) :pattern ((IsAllocated ?h (ValueArrayGet ?e ?i))) ))) +(assert (forall ((?h Int) (?o Int)) (! (=> (= (IsAllocated ?h ?o) Smt.true) (= (select2 ?h ?o allocated_) Smt.true)) :pattern ((select2 ?h ?o allocated_)) ))) +(assert (forall ((?h Int) (?c Int)) (! (=> (= (IsHeap ?h) Smt.true) (= (select2 ?h (ClassRepr ?c) allocated_) Smt.true)) :pattern ((select2 ?h (ClassRepr ?c) allocated_)) ))) +(assert (forall ((?f Int) (?T Int)) (! (=> (= (AsNonNullRefField ?f ?T) ?f) (= (AsRefField ?f ?T) ?f)) :pattern ((AsNonNullRefField ?f ?T)) ))) +(assert (forall ((?h Int) (?o Int) (?f Int) (?T Int)) (! (=> (= (IsHeap ?h) Smt.true) (= (Is_ (select2 ?h ?o (AsRefField ?f ?T)) ?T) Smt.true)) :pattern ((select2 ?h ?o (AsRefField ?f ?T))) ))) +(assert (forall ((?h Int) (?o Int) (?f Int) (?T Int)) (! (=> (and (= (IsHeap ?h) Smt.true) (not (= ?o nullObject)) (or (not (= ?o BeingConstructed_)) (= (= (select2 ?h BeingConstructed_ NonNullFieldsAreInitialized_) Smt.true) true))) (not (= (select2 ?h ?o (AsNonNullRefField ?f ?T)) nullObject))) :pattern ((select2 ?h ?o (AsNonNullRefField ?f ?T))) ))) +(assert (forall ((?h Int) (?o Int) (?f Int) (?T Int)) (! (=> (= (IsHeap ?h) Smt.true) (InRange (select2 ?h ?o (AsRangeField ?f ?T)) ?T)) :pattern ((select2 ?h ?o (AsRangeField ?f ?T))) ))) +(assert (forall ((?o Int)) (! (not (= (IsMemberlessType_ (typeof_ ?o)) Smt.true)) :pattern ((IsMemberlessType_ (typeof_ ?o))) ))) +(assert (not (= (IsImmutable_ System.Object) Smt.true))) +(assert (forall ((?T Int) (?U Int)) (! (=> (subtypes ?U (AsImmutable_ ?T)) (and (= (IsImmutable_ ?U) Smt.true) (= (AsImmutable_ ?U) ?U))) :pattern ((subtypes ?U (AsImmutable_ ?T))) ))) +(assert (forall ((?T Int) (?U Int)) (! (=> (subtypes ?U (AsMutable_ ?T)) (and (not (= (IsImmutable_ ?U) Smt.true)) (= (AsMutable_ ?U) ?U))) :pattern ((subtypes ?U (AsMutable_ ?T))) ))) +(assert (forall ((?o Int) (?T Int)) (! (=> (and (not (= ?o nullObject)) (not (= ?o BeingConstructed_)) (subtypes (typeof_ ?o) (AsImmutable_ ?T))) (forall ((?h Int)) (! (let ((?v_0 (typeof_ ?o))) (=> (= (IsHeap ?h) Smt.true) (and (= (select2 ?h ?o inv_) ?v_0) (= (select2 ?h ?o localinv_) ?v_0) (= (select2 ?h ?o ownerFrame_) PeerGroupPlaceholder_) (= (AsOwner ?o (select2 ?h ?o ownerRef_)) ?o) (forall ((?t Int)) (! (=> (= (AsOwner ?o (select2 ?h ?t ownerRef_)) ?o) (or (= ?t ?o) (not (= (select2 ?h ?t ownerFrame_) PeerGroupPlaceholder_)))) :pattern ((AsOwner ?o (select2 ?h ?t ownerRef_))) ))))) :pattern ((IsHeap ?h)) ))) :pattern ((subtypes (typeof_ ?o) (AsImmutable_ ?T))) ))) +(assert (forall ((?s Int)) (! (<= 0 (StringLength_ ?s)) :pattern ((StringLength_ ?s)) ))) +(assert (forall ((?h Int) (?o Int) (?f Int) (?T Int)) (! (let ((?v_0 (select2 ?h ?o (AsRepField ?f ?T)))) (=> (and (= (IsHeap ?h) Smt.true) (not (= ?v_0 nullObject))) (and (= (select2 ?h ?v_0 ownerRef_) ?o) (= (select2 ?h ?v_0 ownerFrame_) ?T)))) :pattern ((select2 ?h ?o (AsRepField ?f ?T))) ))) +(assert (forall ((?h Int) (?o Int) (?f Int)) (! (let ((?v_0 (select2 ?h ?o (AsPeerField ?f)))) (=> (and (= (IsHeap ?h) Smt.true) (not (= ?v_0 nullObject))) (and (= (select2 ?h ?v_0 ownerRef_) (select2 ?h ?o ownerRef_)) (= (select2 ?h ?v_0 ownerFrame_) (select2 ?h ?o ownerFrame_))))) :pattern ((select2 ?h ?o (AsPeerField ?f))) ))) +(assert (forall ((?h Int) (?o Int)) (let ((?v_0 (select2 ?h ?o ownerFrame_)) (?v_1 (select2 ?h ?o ownerRef_)) (?v_2 (typeof_ ?o))) (=> (and (= (IsHeap ?h) Smt.true) (not (= ?v_0 PeerGroupPlaceholder_)) (subtypes (select2 ?h ?v_1 inv_) ?v_0) (not (= (select2 ?h ?v_1 localinv_) (BaseClass_ ?v_0)))) (and (= (select2 ?h ?o inv_) ?v_2) (= (select2 ?h ?o localinv_) ?v_2)))))) +(assert (forall ((?o Int) (?f Int) (?h Int)) (! (let ((?v_0 (select2 ?h ?o ownerFrame_)) (?v_1 (select2 ?h ?o ownerRef_))) (=> (and (= (IsHeap ?h) Smt.true) (not (= ?o nullObject)) (= (= (select2 ?h ?o allocated_) Smt.true) true) (not (= ?v_0 PeerGroupPlaceholder_)) (subtypes (select2 ?h ?v_1 inv_) ?v_0) (not (= (select2 ?h ?v_1 localinv_) (BaseClass_ ?v_0)))) (= (select2 ?h ?o ?f) (FieldDependsOnFCO_ ?o ?f (select2 ?h (select2 ?h ?o FirstConsistentOwner_) exposeVersion_))))) :pattern ((select2 ?h (AsPureObject_ ?o) ?f)) ))) +(assert (forall ((?o Int) (?h Int)) (! (let ((?v_0 (select2 ?h ?o ownerFrame_)) (?v_1 (select2 ?h ?o ownerRef_)) (?v_2 (select2 ?h ?o FirstConsistentOwner_))) (let ((?v_3 (select2 ?h ?v_2 ownerFrame_)) (?v_4 (select2 ?h ?v_2 ownerRef_))) (=> (and (= (IsHeap ?h) Smt.true) (not (= ?o nullObject)) (= (= (select2 ?h ?o allocated_) Smt.true) true) (not (= ?v_0 PeerGroupPlaceholder_)) (subtypes (select2 ?h ?v_1 inv_) ?v_0) (not (= (select2 ?h ?v_1 localinv_) (BaseClass_ ?v_0)))) (and (not (= ?v_2 nullObject)) (= (= (select2 ?h ?v_2 allocated_) Smt.true) true) (or (= ?v_3 PeerGroupPlaceholder_) (not (subtypes (select2 ?h ?v_4 inv_) ?v_3)) (= (select2 ?h ?v_4 localinv_) (BaseClass_ ?v_3))))))) :pattern ((select2 ?h ?o FirstConsistentOwner_)) ))) +(assert (forall ((?x Int) (?p Int)) (! (= (Unbox (Box ?x ?p)) ?x) :pattern ((Unbox (Box ?x ?p))) ))) +(assert (forall ((?p Int)) (! (=> (= (IsValueType_ (UnboxedType ?p)) Smt.true) (forall ((?heap Int) (?x Int)) (let ((?v_0 (Box ?x ?p))) (let ((?v_1 (typeof_ ?v_0))) (=> (= (IsHeap ?heap) Smt.true) (and (= (select2 ?heap ?v_0 inv_) ?v_1) (= (select2 ?heap ?v_0 localinv_) ?v_1))))))) :pattern ((IsValueType_ (UnboxedType ?p))) ))) +(assert (forall ((?x Int) (?p Int)) (let ((?v_0 (Box ?x ?p))) (=> (and (subtypes (UnboxedType ?v_0) System.Object) (= ?v_0 ?p)) (= ?x ?p))))) +(assert (forall ((?p Int) (?typ Int)) (! (= (= (UnboxedType ?p) ?typ) (not (= (BoxTester ?p ?typ) nullObject))) :pattern ((BoxTester ?p ?typ)) ))) +(assert (= (IsValueType_ System.SByte) Smt.true)) +(assert (= (IsValueType_ System.Byte) Smt.true)) +(assert (= (IsValueType_ System.Int16) Smt.true)) +(assert (= (IsValueType_ System.UInt16) Smt.true)) +(assert (= (IsValueType_ System.Int32) Smt.true)) +(assert (= (IsValueType_ System.UInt32) Smt.true)) +(assert (= (IsValueType_ System.Int64) Smt.true)) +(assert (= (IsValueType_ System.UInt64) Smt.true)) +(assert (= (IsValueType_ System.Char) Smt.true)) +(assert (< int_m9223372036854775808 int_m2147483648)) +(assert (< int_m2147483648 (- 0 100000))) +(assert (< 100000 int_2147483647)) +(assert (< int_2147483647 int_4294967295)) +(assert (< int_4294967295 int_9223372036854775807)) +(assert (< int_9223372036854775807 int_18446744073709551615)) +(assert (forall ((?i Int)) (= (InRange ?i System.SByte) (and (<= (- 0 128) ?i) (< ?i 128))))) +(assert (forall ((?i Int)) (= (InRange ?i System.Byte) (and (<= 0 ?i) (< ?i 256))))) +(assert (forall ((?i Int)) (= (InRange ?i System.Int16) (and (<= (- 0 32768) ?i) (< ?i 32768))))) +(assert (forall ((?i Int)) (= (InRange ?i System.UInt16) (and (<= 0 ?i) (< ?i 65536))))) +(assert (forall ((?i Int)) (= (InRange ?i System.Int32) (and (<= int_m2147483648 ?i) (<= ?i int_2147483647))))) +(assert (forall ((?i Int)) (= (InRange ?i System.UInt32) (and (<= 0 ?i) (<= ?i int_4294967295))))) +(assert (forall ((?i Int)) (= (InRange ?i System.Int64) (and (<= int_m9223372036854775808 ?i) (<= ?i int_9223372036854775807))))) +(assert (forall ((?i Int)) (= (InRange ?i System.UInt64) (and (<= 0 ?i) (<= ?i int_18446744073709551615))))) +(assert (forall ((?i Int)) (= (InRange ?i System.Char) (and (<= 0 ?i) (< ?i 65536))))) +(assert (forall ((?b Int) (?x Int) (?y Int)) (! (=> (= ?b Smt.true) (= (IfThenElse_ ?b ?x ?y) ?x)) :pattern ((IfThenElse_ ?b ?x ?y)) ))) +(assert (forall ((?b Int) (?x Int) (?y Int)) (! (=> (not (= ?b Smt.true)) (= (IfThenElse_ ?b ?x ?y) ?y)) :pattern ((IfThenElse_ ?b ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (modulo ?x ?y) (- ?x (multiply (divide ?x ?y) ?y))) :pattern ((modulo ?x ?y)) :pattern ((divide ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (let ((?v_0 (modulo ?x ?y))) (=> (and (<= 0 ?x) (< 0 ?y)) (and (<= 0 ?v_0) (< ?v_0 ?y)))) :pattern ((modulo ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (let ((?v_0 (modulo ?x ?y))) (=> (and (<= 0 ?x) (< ?y 0)) (and (<= 0 ?v_0) (< ?v_0 (- 0 ?y))))) :pattern ((modulo ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (let ((?v_0 (modulo ?x ?y))) (=> (and (<= ?x 0) (< 0 ?y)) (and (< (- 0 ?y) ?v_0) (<= ?v_0 0)))) :pattern ((modulo ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (let ((?v_0 (modulo ?x ?y))) (=> (and (<= ?x 0) (< ?y 0)) (and (< ?y ?v_0) (<= ?v_0 0)))) :pattern ((modulo ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (=> (and (<= 0 ?x) (<= 0 ?y)) (= (modulo (+ ?x ?y) ?y) (modulo ?x ?y))))) +(assert (forall ((?x Int) (?y Int)) (=> (and (<= 0 ?x) (<= 0 ?y)) (= (modulo (+ ?y ?x) ?y) (modulo ?x ?y))))) +(assert (forall ((?x Int) (?y Int)) (let ((?v_0 (- ?x ?y))) (=> (and (<= 0 ?v_0) (<= 0 ?y)) (= (modulo ?v_0 ?y) (modulo ?x ?y)))))) +(assert (forall ((?a Int) (?b Int) (?d Int)) (! (=> (and (<= 2 ?d) (= (modulo ?a ?d) (modulo ?b ?d)) (< ?a ?b)) (<= (+ ?a ?d) ?b)) :pattern ((modulo ?a ?d) (modulo ?b ?d)) ))) +(assert (forall ((?x Int) (?y Int)) (! (=> (or (<= 0 ?x) (<= 0 ?y)) (<= 0 (and_ ?x ?y))) :pattern ((and_ ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (let ((?v_0 (or_ ?x ?y))) (=> (and (<= 0 ?x) (<= 0 ?y)) (and (<= 0 ?v_0) (<= ?v_0 (+ ?x ?y))))) :pattern ((or_ ?x ?y)) ))) +(assert (forall ((?i Int)) (! (= (shl_ ?i 0) ?i) :pattern ((shl_ ?i 0)) ))) +(assert (forall ((?i Int) (?j Int)) (=> (<= 0 ?j) (= (shl_ ?i (+ ?j 1)) (* (shl_ ?i ?j) 2))))) +(assert (forall ((?i Int)) (! (= (shr_ ?i 0) ?i) :pattern ((shr_ ?i 0)) ))) +(assert (forall ((?i Int) (?j Int)) (=> (<= 0 ?j) (= (shr_ ?i (+ ?j 1)) (divide (shr_ ?i ?j) 2))))) +(assert (forall ((?a Int) (?b Int)) (! (= (= (System.String.Equals_System.String_ ?a ?b) Smt.true) (= (System.String.Equals_System.String_System.String_ ?a ?b) Smt.true)) :pattern ((System.String.Equals_System.String_ ?a ?b)) ))) +(assert (forall ((?a Int) (?b Int)) (! (= (= (System.String.Equals_System.String_System.String_ ?a ?b) Smt.true) (= (System.String.Equals_System.String_System.String_ ?b ?a) Smt.true)) :pattern ((System.String.Equals_System.String_System.String_ ?a ?b)) ))) +(assert (forall ((?a Int) (?b Int)) (! (=> (and (not (= ?a nullObject)) (not (= ?b nullObject)) (= (System.String.Equals_System.String_System.String_ ?a ?b) Smt.true)) (= (System.String.IsInterned_System.String_notnull_ ?a) (System.String.IsInterned_System.String_notnull_ ?b))) :pattern ((System.String.Equals_System.String_System.String_ ?a ?b)) ))) +(assert (not (= (IsStaticField AdditiveMethods.amPeer) Smt.true))) +(assert (= (IsDirectlyModifiableField AdditiveMethods.amPeer) Smt.true)) +(assert (= (AsPeerField AdditiveMethods.amPeer) AdditiveMethods.amPeer)) +(assert (= (DeclType AdditiveMethods.amPeer) AdditiveMethods)) +(assert (= (AsRefField AdditiveMethods.amPeer AdditiveMethods) AdditiveMethods.amPeer)) +(assert (not (= (IsStaticField AdditiveMethods.amRep) Smt.true))) +(assert (= (IsDirectlyModifiableField AdditiveMethods.amRep) Smt.true)) +(assert (= (AsRepField AdditiveMethods.amRep AdditiveMethods) AdditiveMethods.amRep)) +(assert (= (DeclType AdditiveMethods.amRep) AdditiveMethods)) +(assert (= (AsRefField AdditiveMethods.amRep AdditiveMethods) AdditiveMethods.amRep)) +(assert (not (= (IsStaticField OwnedResults.x) Smt.true))) +(assert (= (IsDirectlyModifiableField OwnedResults.x) Smt.true)) +(assert (= (AsRepField OwnedResults.x OwnedResults) OwnedResults.x)) +(assert (= (DeclType OwnedResults.x) OwnedResults)) +(assert (= (AsRefField OwnedResults.x T) OwnedResults.x)) +(assert (not (= (IsStaticField OwnedResults.y) Smt.true))) +(assert (= (IsDirectlyModifiableField OwnedResults.y) Smt.true)) +(assert (= (AsPeerField OwnedResults.y) OwnedResults.y)) +(assert (= (DeclType OwnedResults.y) OwnedResults)) +(assert (= (AsRefField OwnedResults.y T) OwnedResults.y)) +(assert (subtypes AdditiveMethods AdditiveMethods)) +(assert (= (BaseClass_ AdditiveMethods) System.Object)) +(assert (subtypes AdditiveMethods (BaseClass_ AdditiveMethods))) +(assert (= (AsDirectSubClass AdditiveMethods (BaseClass_ AdditiveMethods)) AdditiveMethods)) +(assert (not (= (IsImmutable_ AdditiveMethods) Smt.true))) +(assert (= (AsMutable_ AdditiveMethods) AdditiveMethods)) +(assert (subtypes System.Type System.Type)) +(assert (subtypes System.Reflection.MemberInfo System.Reflection.MemberInfo)) +(assert (= (BaseClass_ System.Reflection.MemberInfo) System.Object)) +(assert (subtypes System.Reflection.MemberInfo (BaseClass_ System.Reflection.MemberInfo))) +(assert (= (AsDirectSubClass System.Reflection.MemberInfo (BaseClass_ System.Reflection.MemberInfo)) System.Reflection.MemberInfo)) +(assert (= (IsImmutable_ System.Reflection.MemberInfo) Smt.true)) +(assert (= (AsImmutable_ System.Reflection.MemberInfo) System.Reflection.MemberInfo)) +(assert (subtypes System.Reflection.ICustomAttributeProvider System.Object)) +(assert (= (IsMemberlessType_ System.Reflection.ICustomAttributeProvider) Smt.true)) +(assert (subtypes System.Reflection.MemberInfo System.Reflection.ICustomAttributeProvider)) +(assert (subtypes System.Runtime.InteropServices._MemberInfo System.Object)) +(assert (= (IsMemberlessType_ System.Runtime.InteropServices._MemberInfo) Smt.true)) +(assert (subtypes System.Reflection.MemberInfo System.Runtime.InteropServices._MemberInfo)) +(assert (= (IsMemberlessType_ System.Reflection.MemberInfo) Smt.true)) +(assert (= (BaseClass_ System.Type) System.Reflection.MemberInfo)) +(assert (subtypes System.Type (BaseClass_ System.Type))) +(assert (= (AsDirectSubClass System.Type (BaseClass_ System.Type)) System.Type)) +(assert (= (IsImmutable_ System.Type) Smt.true)) +(assert (= (AsImmutable_ System.Type) System.Type)) +(assert (subtypes System.Runtime.InteropServices._Type System.Object)) +(assert (= (IsMemberlessType_ System.Runtime.InteropServices._Type) Smt.true)) +(assert (subtypes System.Type System.Runtime.InteropServices._Type)) +(assert (subtypes System.Reflection.IReflect System.Object)) +(assert (= (IsMemberlessType_ System.Reflection.IReflect) Smt.true)) +(assert (subtypes System.Type System.Reflection.IReflect)) +(assert (= (IsMemberlessType_ System.Type) Smt.true)) +(assert (subtypes Sub Sub)) +(assert (= (BaseClass_ Sub) AdditiveMethods)) +(assert (subtypes Sub (BaseClass_ Sub))) +(assert (= (AsDirectSubClass Sub (BaseClass_ Sub)) Sub)) +(assert (not (= (IsImmutable_ Sub) Smt.true))) +(assert (= (AsMutable_ Sub) Sub)) +(assert (subtypes OwnedResults OwnedResults)) +(assert (= (BaseClass_ OwnedResults) System.Object)) +(assert (subtypes OwnedResults (BaseClass_ OwnedResults))) +(assert (= (AsDirectSubClass OwnedResults (BaseClass_ OwnedResults)) OwnedResults)) +(assert (not (= (IsImmutable_ OwnedResults) Smt.true))) +(assert (= (AsMutable_ OwnedResults) OwnedResults)) +(assert (subtypes T T)) +(assert (= (BaseClass_ T) System.Object)) +(assert (subtypes T (BaseClass_ T))) +(assert (= (AsDirectSubClass T (BaseClass_ T)) T)) +(assert (not (= (IsImmutable_ T) Smt.true))) +(assert (= (AsMutable_ T) T)) +(assert (forall ((?Heap_ Int) (?this Int)) (! (let ((?v_0 (OwnedResults.Mz_ ?Heap_ ?this))) (=> (and (= (IsHeap ?Heap_) Smt.true) (forall ((?pc_ Int)) (let ((?v_1 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 ?Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 ?Heap_ ?pc_ ownerRef_) (select2 ?Heap_ ?this ownerRef_)) (= (select2 ?Heap_ ?pc_ ownerFrame_) (select2 ?Heap_ ?this ownerFrame_))) (and (= (select2 ?Heap_ ?pc_ inv_) ?v_1) (= (select2 ?Heap_ ?pc_ localinv_) ?v_1)))))) (and (= (= (select2 ?Heap_ ?v_0 allocated_) Smt.true) true) (= (Is_ ?v_0 T) Smt.true) (or (= ?v_0 nullObject) (forall ((?pc_ Int)) (let ((?v_2 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 ?Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 ?Heap_ ?pc_ ownerRef_) (select2 ?Heap_ ?v_0 ownerRef_)) (= (select2 ?Heap_ ?pc_ ownerFrame_) (select2 ?Heap_ ?v_0 ownerFrame_))) (and (= (select2 ?Heap_ ?pc_ inv_) ?v_2) (= (select2 ?Heap_ ?pc_ localinv_) ?v_2)))))) (= ?v_0 (select2 ?Heap_ ?this OwnedResults.x))))) :pattern ((OwnedResults.Mz_ ?Heap_ ?this)) ))) +(assert (forall ((?Heap_ Int) (?this Int)) (! (let ((?v_0 (OwnedResults.Pz_ ?Heap_ ?this))) (=> (and (= (IsHeap ?Heap_) Smt.true) (forall ((?pc_ Int)) (let ((?v_1 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 ?Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 ?Heap_ ?pc_ ownerRef_) (select2 ?Heap_ ?this ownerRef_)) (= (select2 ?Heap_ ?pc_ ownerFrame_) (select2 ?Heap_ ?this ownerFrame_))) (and (= (select2 ?Heap_ ?pc_ inv_) ?v_1) (= (select2 ?Heap_ ?pc_ localinv_) ?v_1)))))) (and (= (= (select2 ?Heap_ ?v_0 allocated_) Smt.true) true) (= (Is_ ?v_0 T) Smt.true) (or (= ?v_0 nullObject) (forall ((?pc_ Int)) (let ((?v_2 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 ?Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 ?Heap_ ?pc_ ownerRef_) (select2 ?Heap_ ?v_0 ownerRef_)) (= (select2 ?Heap_ ?pc_ ownerFrame_) (select2 ?Heap_ ?v_0 ownerFrame_))) (and (= (select2 ?Heap_ ?pc_ inv_) ?v_2) (= (select2 ?Heap_ ?pc_ localinv_) ?v_2)))))) (= ?v_0 (select2 ?Heap_ ?this OwnedResults.x))))) :pattern ((OwnedResults.Pz_ ?Heap_ ?this)) ))) +(assert (forall ((?Heap_ Int) (?this Int)) (! (let ((?v_0 (typeof_ ?this))) (=> (and (not (= ?this nullObject)) (subtypes ?v_0 OwnedResults) (= (select2 ?Heap_ ?this inv_) ?v_0) (= (select2 ?Heap_ ?this localinv_) ?v_0) (= (IsHeap ?Heap_) Smt.true) (= (= (select2 ?Heap_ ?this allocated_) Smt.true) true)) (= (OwnedResults.Pz_ ?Heap_ ?this) (OwnedResults.Pz_.1 (select2 ?Heap_ ?this exposeVersion_))))) :pattern ((OwnedResults.Pz_ ?Heap_ ?this)) ))) +(assert (forall ((?Heap_ Int) (?this Int)) (! (let ((?v_0 (OwnedResults.Pw_ ?Heap_ ?this))) (=> (and (= (IsHeap ?Heap_) Smt.true) (forall ((?pc_ Int)) (let ((?v_1 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 ?Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 ?Heap_ ?pc_ ownerRef_) (select2 ?Heap_ ?this ownerRef_)) (= (select2 ?Heap_ ?pc_ ownerFrame_) (select2 ?Heap_ ?this ownerFrame_))) (and (= (select2 ?Heap_ ?pc_ inv_) ?v_1) (= (select2 ?Heap_ ?pc_ localinv_) ?v_1)))))) (and (= (= (select2 ?Heap_ ?v_0 allocated_) Smt.true) true) (= (Is_ ?v_0 T) Smt.true) (or (= ?v_0 nullObject) (forall ((?pc_ Int)) (let ((?v_2 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 ?Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 ?Heap_ ?pc_ ownerRef_) (select2 ?Heap_ ?v_0 ownerRef_)) (= (select2 ?Heap_ ?pc_ ownerFrame_) (select2 ?Heap_ ?v_0 ownerFrame_))) (and (= (select2 ?Heap_ ?pc_ inv_) ?v_2) (= (select2 ?Heap_ ?pc_ localinv_) ?v_2)))))) (= ?v_0 (select2 ?Heap_ ?this OwnedResults.y))))) :pattern ((OwnedResults.Pw_ ?Heap_ ?this)) ))) +(assert (forall ((?Heap_ Int) (?this Int)) (! (let ((?v_0 (typeof_ ?this))) (=> (and (not (= ?this nullObject)) (subtypes ?v_0 OwnedResults) (= (select2 ?Heap_ ?this inv_) ?v_0) (= (select2 ?Heap_ ?this localinv_) ?v_0) (= (IsHeap ?Heap_) Smt.true) (= (= (select2 ?Heap_ ?this allocated_) Smt.true) true)) (= (OwnedResults.Pw_ ?Heap_ ?this) (OwnedResults.Pw_.1 (select2 ?Heap_ ?this exposeVersion_))))) :pattern ((OwnedResults.Pw_ ?Heap_ ?this)) ))) +(assert (forall ((?Heap_ Int) (?this Int) (?k_in Int)) (! (let ((?v_0 (OwnedResults.Qz_System.Int32_ ?Heap_ ?this ?k_in))) (=> (and (= (IsHeap ?Heap_) Smt.true) (InRange ?k_in System.Int32) (forall ((?pc_ Int)) (let ((?v_1 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 ?Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 ?Heap_ ?pc_ ownerRef_) (select2 ?Heap_ ?this ownerRef_)) (= (select2 ?Heap_ ?pc_ ownerFrame_) (select2 ?Heap_ ?this ownerFrame_))) (and (= (select2 ?Heap_ ?pc_ inv_) ?v_1) (= (select2 ?Heap_ ?pc_ localinv_) ?v_1)))))) (and (= (= (select2 ?Heap_ ?v_0 allocated_) Smt.true) true) (= (Is_ ?v_0 T) Smt.true) (or (= ?v_0 nullObject) (forall ((?pc_ Int)) (let ((?v_2 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 ?Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 ?Heap_ ?pc_ ownerRef_) (select2 ?Heap_ ?v_0 ownerRef_)) (= (select2 ?Heap_ ?pc_ ownerFrame_) (select2 ?Heap_ ?v_0 ownerFrame_))) (and (= (select2 ?Heap_ ?pc_ inv_) ?v_2) (= (select2 ?Heap_ ?pc_ localinv_) ?v_2))))))))) :pattern ((OwnedResults.Qz_System.Int32_ ?Heap_ ?this ?k_in)) ))) +(assert (forall ((?Heap_ Int) (?this Int) (?k_in Int)) (! (let ((?v_0 (typeof_ ?this))) (=> (and (not (= ?this nullObject)) (subtypes ?v_0 OwnedResults) (= (select2 ?Heap_ ?this inv_) ?v_0) (= (select2 ?Heap_ ?this localinv_) ?v_0) (= (IsHeap ?Heap_) Smt.true) (= (= (select2 ?Heap_ ?this allocated_) Smt.true) true)) (= (OwnedResults.Qz_System.Int32_ ?Heap_ ?this ?k_in) (OwnedResults.Qz_System.Int32_.1 (select2 ?Heap_ ?this exposeVersion_) ?k_in)))) :pattern ((OwnedResults.Qz_System.Int32_ ?Heap_ ?this ?k_in)) ))) +(assert (forall ((?U_ Int)) (! (=> (subtypes ?U_ System.Boolean) (= ?U_ System.Boolean)) :pattern ((subtypes ?U_ System.Boolean)) ))) +(assert (forall ((?Heap_ Int)) (! (let ((?v_0 (OwnedResults.Static0_ ?Heap_))) (=> (= (IsHeap ?Heap_) Smt.true) (and (= (= (select2 ?Heap_ ?v_0 allocated_) Smt.true) true) (= (IsNotNull_ ?v_0 T) Smt.true) (forall ((?pc_ Int)) (let ((?v_1 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 ?Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 ?Heap_ ?pc_ ownerRef_) (select2 ?Heap_ ?v_0 ownerRef_)) (= (select2 ?Heap_ ?pc_ ownerFrame_) (select2 ?Heap_ ?v_0 ownerFrame_))) (and (= (select2 ?Heap_ ?pc_ inv_) ?v_1) (= (select2 ?Heap_ ?pc_ localinv_) ?v_1)))))))) :pattern ((OwnedResults.Static0_ ?Heap_)) ))) +(assert (forall ((?Heap_ Int)) (! (let ((?v_0 (OwnedResults.Static1_ ?Heap_))) (=> (= (IsHeap ?Heap_) Smt.true) (and (= (= (select2 ?Heap_ ?v_0 allocated_) Smt.true) true) (= (IsNotNull_ ?v_0 T) Smt.true) (forall ((?pc_ Int)) (let ((?v_1 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 ?Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 ?Heap_ ?pc_ ownerRef_) (select2 ?Heap_ ?v_0 ownerRef_)) (= (select2 ?Heap_ ?pc_ ownerFrame_) (select2 ?Heap_ ?v_0 ownerFrame_))) (and (= (select2 ?Heap_ ?pc_ inv_) ?v_1) (= (select2 ?Heap_ ?pc_ localinv_) ?v_1)))))))) :pattern ((OwnedResults.Static1_ ?Heap_)) ))) +(assert (=> true (= (IsNotNull_ OwnedResults.Static2_ T) Smt.true))) +(assert (forall ((?A Int) (?i Int) (?v Int)) (= (select1 (store1 ?A ?i ?v) ?i) ?v))) +(assert (forall ((?A Int) (?i Int) (?j Int) (?v Int)) (=> (not (= ?i ?j)) (= (select1 (store1 ?A ?i ?v) ?j) (select1 ?A ?j))))) +(assert (forall ((?A Int) (?o Int) (?f Int) (?v Int)) (= (select2 (store2 ?A ?o ?f ?v) ?o ?f) ?v))) +(assert (forall ((?A Int) (?o Int) (?f Int) (?p Int) (?g Int) (?v Int)) (=> (not (= ?o ?p)) (= (select2 (store2 ?A ?o ?f ?v) ?p ?g) (select2 ?A ?p ?g))))) +(assert (forall ((?A Int) (?o Int) (?f Int) (?p Int) (?g Int) (?v Int)) (=> (not (= ?f ?g)) (= (select2 (store2 ?A ?o ?f ?v) ?p ?g) (select2 ?A ?p ?g))))) +(assert (forall ((?x Int) (?y Int)) (= (= (boolIff ?x ?y) Smt.true) (= (= ?x Smt.true) (= ?y Smt.true))))) +(assert (forall ((?x Int) (?y Int)) (= (= (boolImplies ?x ?y) Smt.true) (=> (= ?x Smt.true) (= ?y Smt.true))))) +(assert (forall ((?x Int) (?y Int)) (= (= (boolAnd ?x ?y) Smt.true) (and (= ?x Smt.true) (= ?y Smt.true))))) +(assert (forall ((?x Int) (?y Int)) (= (= (boolOr ?x ?y) Smt.true) (or (= ?x Smt.true) (= ?y Smt.true))))) +(assert (forall ((?x Int)) (! (= (= (boolNot ?x) Smt.true) (not (= ?x Smt.true))) :pattern ((boolNot ?x)) ))) +(assert (forall ((?x Int) (?y Int)) (= (= (anyEqual ?x ?y) Smt.true) (= ?x ?y)))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (anyNeq ?x ?y) Smt.true) (not (= ?x ?y))) :pattern ((anyNeq ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (= (= (intLess ?x ?y) Smt.true) (< ?x ?y)))) +(assert (forall ((?x Int) (?y Int)) (= (= (intAtMost ?x ?y) Smt.true) (<= ?x ?y)))) +(assert (forall ((?x Int) (?y Int)) (= (= (intAtLeast ?x ?y) Smt.true) (>= ?x ?y)))) +(assert (forall ((?x Int) (?y Int)) (= (= (intGreater ?x ?y) Smt.true) (> ?x ?y)))) +(assert (distinct Smt.false Smt.true)) +(assert (forall ((?t Int)) (! (subtypes ?t ?t) :pattern ((subtypes ?t ?t)) ))) +(assert (forall ((?t Int) (?u Int) (?v Int)) (! (=> (and (subtypes ?t ?u) (subtypes ?u ?v)) (subtypes ?t ?v)) :pattern ((subtypes ?t ?u) (subtypes ?u ?v)) ))) +(assert (forall ((?t Int) (?u Int)) (! (=> (and (subtypes ?t ?u) (subtypes ?u ?t)) (= ?t ?u)) :pattern ((subtypes ?t ?u) (subtypes ?u ?t)) ))) +(assert (let ((?v_0 (not (= this nullObject))) (?v_1 (forall ((?o_ Int)) (let ((?v_10 (select2 Heap_ ?o_ ownerRef_)) (?v_11 (select2 Heap_ ?o_ ownerFrame_))) (=> (and (not (= ?o_ nullObject)) (= (= (select2 Heap_ ?o_ allocated_) Smt.true) true)) (and (= ?v_10 ?v_10) (= ?v_11 ?v_11)))))) (?v_3 (= return.value_0 nullObject))) (let ((?v_2 (or ?v_3 (and (= (select2 Heap_ return.value_0 ownerRef_) this) (= (select2 Heap_ return.value_0 ownerFrame_) OwnedResults)))) (?v_4 (or ?v_3 (forall ((?pc_ Int)) (let ((?v_12 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 Heap_ ?pc_ ownerRef_) (select2 Heap_ return.value_0 ownerRef_)) (= (select2 Heap_ ?pc_ ownerFrame_) (select2 Heap_ return.value_0 ownerFrame_))) (and (= (select2 Heap_ ?pc_ inv_) ?v_12) (= (select2 Heap_ ?pc_ localinv_) ?v_12))))))) (?v_5 (= ReallyLastGeneratedExit_correct Smt.true)) (?v_6 (= block8840_correct Smt.true)) (?v_7 (= block8823_correct Smt.true)) (?v_8 (= block8806_correct Smt.true)) (?v_9 (= entry_correct Smt.true))) (not (=> (=> (=> true (=> (= (IsHeap Heap_) Smt.true) (=> (= BeingConstructed_ nullObject) (=> (= (AsPureObject_ this) this) (=> (forall ((?pc_ Int)) (let ((?v_13 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 Heap_ ?pc_ ownerRef_) (select2 Heap_ this ownerRef_)) (= (select2 Heap_ ?pc_ ownerFrame_) (select2 Heap_ this ownerFrame_))) (and (= (select2 Heap_ ?pc_ inv_) ?v_13) (= (select2 Heap_ ?pc_ localinv_) ?v_13))))) (=> true (=> (= (IsNotNull_ this OwnedResults) Smt.true) (=> (= (= (select2 Heap_ this allocated_) Smt.true) true) (=> true (=> (=> (=> true (=> true (=> true (=> (=> (=> true (=> true (and ?v_0 (=> ?v_0 (=> (= return.value_0 (select2 Heap_ this OwnedResults.x)) (=> true (=> (=> (=> true (=> true (=> true (=> (=> (=> true (and ?v_1 (=> ?v_1 (and ?v_2 (=> ?v_2 (and ?v_4 (=> ?v_4 (=> true true)))))))) ?v_5) ?v_5)))) ?v_6) ?v_6))))))) ?v_7) ?v_7)))) ?v_8) ?v_8)))))))))) ?v_9) ?v_9))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/Arrays_Q1-noinfer.smt2 b/test/regress/regress1/quantifiers/Arrays_Q1-noinfer.smt2 new file mode 100644 index 000000000..3398f5f84 --- /dev/null +++ b/test/regress/regress1/quantifiers/Arrays_Q1-noinfer.smt2 @@ -0,0 +1,73 @@ +(set-logic AUFLIA) +(set-info :source | + Boogie/Spec# benchmarks. + This benchmark was translated by Michal Moskal. +|) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-fun InRange (Int Int) Bool) +(declare-fun o () Int) +(declare-fun q () Int) +(declare-fun int_18446744073709551615 () Int) +(declare-fun Smt.false () Int) +(declare-fun anyEqual (Int Int) Int) +(declare-fun y () Int) +(declare-fun select1 (Int Int) Int) +(declare-fun select2 (Int Int Int) Int) +(declare-fun CONCVARSYM (Int) Int) +(declare-fun divides (Int Int) Int) +(declare-fun intAtMost (Int Int) Int) +(declare-fun subtypes (Int Int) Bool) +(declare-fun store1 (Int Int Int) Int) +(declare-fun store2 (Int Int Int Int) Int) +(declare-fun B_0 () Int) +(declare-fun B_1 () Int) +(declare-fun intAtLeast (Int Int) Int) +(declare-fun int_2147483647 () Int) +(declare-fun boolOr (Int Int) Int) +(declare-fun ReallyLastGeneratedExit_correct () Int) +(declare-fun int_m9223372036854775808 () Int) +(declare-fun Smt.true () Int) +(declare-fun int_4294967295 () Int) +(declare-fun start_correct () Int) +(declare-fun B () Int) +(declare-fun F () Int) +(declare-fun G () Int) +(declare-fun boolAnd (Int Int) Int) +(declare-fun boolNot (Int) Int) +(declare-fun k_0 () Int) +(declare-fun intLess (Int Int) Int) +(declare-fun intGreater (Int Int) Int) +(declare-fun anyNeq (Int Int) Int) +(declare-fun is (Int Int) Int) +(declare-fun int_m2147483648 () Int) +(declare-fun modulo (Int Int) Int) +(declare-fun boolImplies (Int Int) Int) +(declare-fun boolIff (Int Int) Int) +(declare-fun int_9223372036854775807 () Int) +(assert true) +(assert true) +(assert (forall ((?A Int) (?i Int) (?v Int)) (= (select1 (store1 ?A ?i ?v) ?i) ?v))) +(assert (forall ((?A Int) (?i Int) (?j Int) (?v Int)) (=> (not (= ?i ?j)) (= (select1 (store1 ?A ?i ?v) ?j) (select1 ?A ?j))))) +(assert (forall ((?A Int) (?o Int) (?f Int) (?v Int)) (= (select2 (store2 ?A ?o ?f ?v) ?o ?f) ?v))) +(assert (forall ((?A Int) (?o Int) (?f Int) (?p Int) (?g Int) (?v Int)) (=> (not (= ?o ?p)) (= (select2 (store2 ?A ?o ?f ?v) ?p ?g) (select2 ?A ?p ?g))))) +(assert (forall ((?A Int) (?o Int) (?f Int) (?p Int) (?g Int) (?v Int)) (=> (not (= ?f ?g)) (= (select2 (store2 ?A ?o ?f ?v) ?p ?g) (select2 ?A ?p ?g))))) +(assert (forall ((?x Int) (?y Int)) (= (= (boolIff ?x ?y) Smt.true) (= (= ?x Smt.true) (= ?y Smt.true))))) +(assert (forall ((?x Int) (?y Int)) (= (= (boolImplies ?x ?y) Smt.true) (=> (= ?x Smt.true) (= ?y Smt.true))))) +(assert (forall ((?x Int) (?y Int)) (= (= (boolAnd ?x ?y) Smt.true) (and (= ?x Smt.true) (= ?y Smt.true))))) +(assert (forall ((?x Int) (?y Int)) (= (= (boolOr ?x ?y) Smt.true) (or (= ?x Smt.true) (= ?y Smt.true))))) +(assert (forall ((?x Int)) (! (= (= (boolNot ?x) Smt.true) (not (= ?x Smt.true))) :pattern ((boolNot ?x)) ))) +(assert (forall ((?x Int) (?y Int)) (= (= (anyEqual ?x ?y) Smt.true) (= ?x ?y)))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (anyNeq ?x ?y) Smt.true) (not (= ?x ?y))) :pattern ((anyNeq ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (= (= (intLess ?x ?y) Smt.true) (< ?x ?y)))) +(assert (forall ((?x Int) (?y Int)) (= (= (intAtMost ?x ?y) Smt.true) (<= ?x ?y)))) +(assert (forall ((?x Int) (?y Int)) (= (= (intAtLeast ?x ?y) Smt.true) (>= ?x ?y)))) +(assert (forall ((?x Int) (?y Int)) (= (= (intGreater ?x ?y) Smt.true) (> ?x ?y)))) +(assert (distinct Smt.false Smt.true)) +(assert (forall ((?t Int)) (! (subtypes ?t ?t) :pattern ((subtypes ?t ?t)) ))) +(assert (forall ((?t Int) (?u Int) (?v Int)) (! (=> (and (subtypes ?t ?u) (subtypes ?u ?v)) (subtypes ?t ?v)) :pattern ((subtypes ?t ?u) (subtypes ?u ?v)) ))) +(assert (forall ((?t Int) (?u Int)) (! (=> (and (subtypes ?t ?u) (subtypes ?u ?t)) (= ?t ?u)) :pattern ((subtypes ?t ?u) (subtypes ?u ?t)) ))) +(assert (let ((?v_0 (forall ((?p Int) (?f Int)) (or (= (select2 B_1 ?p ?f) (select2 B ?p ?f)) (and (= ?p o) (= ?f F))))) (?v_1 (= ReallyLastGeneratedExit_correct Smt.true)) (?v_2 (= start_correct Smt.true))) (not (=> (=> (=> true (=> (= k_0 (select2 B q G)) (=> (= B_0 (store2 B o F (+ y (select2 B o F)))) (=> (= B_1 (store2 B_0 q G k_0)) (=> (=> (=> true (and ?v_0 (=> ?v_0 (=> true true)))) ?v_1) ?v_1))))) ?v_2) ?v_2)))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/Makefile.am b/test/regress/regress1/quantifiers/Makefile.am index cc5834a31..7d3da3654 100644 --- a/test/regress/regress1/quantifiers/Makefile.am +++ b/test/regress/regress1/quantifiers/Makefile.am @@ -17,9 +17,80 @@ endif # If a test shouldn't be run in e.g. competition mode, # put it below in "TESTS +=" TESTS = \ - bug802.smt2 + bug802.smt2 \ + 006-cbqi-ite.smt2 \ + AdditiveMethods_OwnedResults.Mz.smt2 \ + ari118-bv-2occ-x.smt2 \ + array-unsat-simp3.smt2 \ + bignum_quant.smt2 \ + bug_743.smt2 \ + bug822.smt2 \ + cdt-0208-to.smt2 \ + gauss_init_0030.fof.smt2 \ + inst-max-level-segf.smt2 \ + intersection-example-onelane.proof-node22337.smt2 \ + javafe.ast.StmtVec.009.smt2 \ + model_6_1_bv.smt2 \ + nested9_true-unreach-call.i_575.smt2 \ + NUM878.smt2 \ + opisavailable-12.smt2 \ + psyco-107-bv.smt2 \ + psyco-196.smt2 \ + qbv-simple-2vars-vo.smt2 \ + qbv-test-invert-bvcomp.smt2 \ + qbv-test-invert-bvudiv-0.smt2 \ + qbv-test-invert-bvudiv-1.smt2 \ + qbv-test-invert-bvurem-1.smt2 \ + qcft-javafe.filespace.TreeWalker.006.smt2 \ + qcft-smtlib3dbc51.smt2 \ + quaternion_ds1_symm_0428.fof.smt2 \ + rew-to-0211-dd.smt2 \ + ricart-agrawala6.smt2 \ + RND_4_16.smt2 \ + small-pipeline-fixpoint-3.smt2 \ + smtlib384a03.smt2 \ + smtlib46f14a.smt2 \ + smtlibf957ea.smt2 \ + stream-x2014-09-18-unsat.smt2 \ + symmetric_unsat_7.smt2 \ + anti-sk-simp.smt2 \ + Arrays_Q1-noinfer.smt2 \ + bi-artm-s.smt2 \ + burns13.smt2 \ + burns4.smt2 \ + cbqi-sdlx-fixpoint-3-dd.smt2 \ + ext-ex-deq-trigger.smt2 \ + extract-nproc.smt2 \ + florian-case-ax.smt2 \ + is-even.smt2 \ + mix-coeff.smt2 \ + parametric-lists.smt2 \ + psyco-001-bv.smt2 \ + qbv-disequality3.smt2 \ + qbv-test-invert-bvashr-0.smt2 \ + qbv-test-invert-bvashr-1.smt2 \ + qbv-test-invert-bvlshr-1.smt2 \ + qbv-test-invert-bvmul-neq.smt2 \ + qbv-test-invert-bvmul.smt2 \ + qbv-test-invert-bvudiv-0-neq.smt2 \ + qbv-test-invert-bvudiv-1-neq.smt2 \ + qbv-test-invert-bvurem-1-neq.smt2 \ + qbv-test-urem-rewrite.smt2 \ + RND-small.smt2 \ + RNDPRE_4_1-dd-nqe.smt2 \ + set8.smt2 \ + z3.620661-no-fv-trigger.smt2 -EXTRA_DIST = $(TESTS) +# removed because they take more than 20s +# javafe.ast.ArrayInit.35.smt2 + +# FIXME: I've disabled these since they give different error messages on production and debug +# macro-subtype-param.smt2 +# subtype-param-unk.smt2 +# subtype-param.smt2 + +EXTRA_DIST = $(TESTS) \ + set3.smt2 # synonyms for "check" in this directory .PHONY: regress regress1 test diff --git a/test/regress/regress1/quantifiers/NUM878.smt2 b/test/regress/regress1/quantifiers/NUM878.smt2 new file mode 100644 index 000000000..8d78bf861 --- /dev/null +++ b/test/regress/regress1/quantifiers/NUM878.smt2 @@ -0,0 +1,7 @@ +; COMMAND-LINE: --cbqi-bv +; EXPECT: unsat +(set-logic BV) +(set-info :status unsat) +(assert (not (exists ((?X (_ BitVec 32))) (= (bvmul ?X ?X) ?X)))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/RND-small.smt2 b/test/regress/regress1/quantifiers/RND-small.smt2 new file mode 100644 index 000000000..cf5c3bc7e --- /dev/null +++ b/test/regress/regress1/quantifiers/RND-small.smt2 @@ -0,0 +1,9 @@ +; COMMAND-LINE: --no-check-models +; EXPECT: sat +(set-logic LRA) +(declare-fun y1 () Real) +(declare-fun y2 () Real) +(declare-fun x1 () Real) +(assert (forall ((?y1 Real)) (exists ((?y2 Real)) (or (and (>= (+ (+ (* 69 ?y2) (* (- 80) ?y1)) (* 48 x1)) (- 77)) (and (not (= (+ (* (- 1) ?y2) (* (- 48) x1)) 0)) (not (= (+ (* 14 ?y1) (* (- 98) x1)) 83)))) (and (and (<= (+ (+ (* (- 95) ?y2) (* 34 ?y1)) (* (- 54) x1)) 51) (= (+ (+ (* 27 ?y2) (* (- 17) ?y1)) (* 75 x1)) 24)) (not (= (+ (* (- 96) ?y1) (* 90 x1)) (- 39)))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/RNDPRE_4_1-dd-nqe.smt2 b/test/regress/regress1/quantifiers/RNDPRE_4_1-dd-nqe.smt2 new file mode 100644 index 000000000..6379d6cec --- /dev/null +++ b/test/regress/regress1/quantifiers/RNDPRE_4_1-dd-nqe.smt2 @@ -0,0 +1,18 @@ +; COMMAND-LINE: --cbqi-nested-qe +; EXPECT: unsat +(set-logic LRA) + +(declare-fun c () Real) + +(assert +(forall ((?x2 Real)) +(exists ((?x3 Real)) +(and +(forall ((?x4 Real)) (or +(not (>= ?x4 4)) +(and (> c (+ ?x2 ?x3)) (> (+ c ?x3 ?x4) 0))) ) +(not (> (+ c ?x2 ?x3) 0)) ) +)) ) + +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/RND_4_16.smt2 b/test/regress/regress1/quantifiers/RND_4_16.smt2 new file mode 100644 index 000000000..2bdb1f56e --- /dev/null +++ b/test/regress/regress1/quantifiers/RND_4_16.smt2 @@ -0,0 +1,10 @@ +(set-logic LRA) +(set-info :status unsat) +(declare-fun y2 () Real) +(declare-fun y3 () Real) +(declare-fun y4 () Real) +(declare-fun x1 () Real) +(declare-fun y1 () Real) +(assert (or (and (and (and (exists ((?y2 Real)) (or (forall ((?y3 Real)) (forall ((?y4 Real)) (or (< (+ (+ (* (- 53) ?y4) (* 77 ?y3)) (* 51 ?y2)) 79) (not (= (* (- 56) ?y4) 0))))) (or (exists ((?y3 Real)) (not (= (+ (* (- 94) ?y2) (* 90 x1)) (- 54)))) (and (<= (+ (* (- 28) ?y2) (* 4 x1)) 62) (exists ((?y3 Real)) (>= (+ (+ (* (- 83) ?y3) (* (- 2) ?y2)) (* 78 x1)) 34)))))) (forall ((?y1 Real)) (forall ((?y2 Real)) (and (forall ((?y4 Real)) (or (= (+ (* (- 27) ?y1) (* (- 64) x1)) 12) (< (+ (+ (* (- 91) ?y4) (* (- 61) ?y1)) (* 20 x1)) 25))) (or (forall ((?y4 Real)) (> (+ (+ (+ (* 22 ?y4) (* (- 35) ?y2)) (* (- 77) ?y1)) (* (- 78) x1)) (- 49))) (and (= (+ (* (- 55) ?y1) (* (- 71) x1)) 51) (<= (* (- 2) ?y1) 0))))))) (or (and (forall ((?y1 Real)) (exists ((?y2 Real)) (forall ((?y3 Real)) (and (>= (+ (* (- 42) ?y2) (* (- 88) ?y1)) 0) (not (= (+ (* 94 ?y3) (* (- 41) ?y2)) 20)))))) (exists ((?y1 Real)) (forall ((?y2 Real)) (exists ((?y3 Real)) (forall ((?y4 Real)) (or (<= (+ (+ (* 84 ?y4) (* 79 ?y3)) (* 42 ?y2)) 5) (= (+ (+ (* (- 58) ?y3) (* (- 13) ?y2)) (* 93 x1)) (- 1)))))))) (or (and (or (= (* 21 x1) (- 18)) (>= (* 76 x1) 0)) (or (>= (* (- 79) x1) 61) (>= (* (- 32) x1) (- 26)))) (and (and (or (>= (* (- 44) x1) 58) (not (= (* (- 68) x1) (- 93)))) (forall ((?y3 Real)) (>= (* (- 14) x1) 91))) (forall ((?y2 Real)) (and (and (> (* (- 65) x1) 74) (>= (+ (* 27 ?y2) (* (- 84) x1)) (- 68))) (and (>= (+ (* 11 ?y2) (* (- 77) x1)) 0) (< (+ (* (- 67) ?y2) (* (- 42) x1)) 88)))))))) (forall ((?y1 Real)) (exists ((?y2 Real)) (exists ((?y3 Real)) (forall ((?y4 Real)) (let ((?v_0 (* 66 ?y4))) (and (or (>= (+ (+ (+ (* 48 ?y4) (* (- 47) ?y3)) (* 1 ?y1)) (* 38 x1)) 61) (>= (+ (+ (* (- 19) ?y4) (* (- 80) ?y3)) (* (- 66) ?y2)) 25)) (or (or (and (<= (+ (+ (* (- 4) ?y4) (* (- 22) ?y2)) (* (- 18) ?y1)) (- 28)) (not (= (+ (+ (+ (* 1 ?y3) (* 20 ?y2)) (* (- 42) ?y1)) (* 74 x1)) (- 63)))) (and (= (+ (+ (+ (* 13 ?y3) (* (- 7) ?y2)) (* 52 ?y1)) (* 94 x1)) 0) (< (+ (+ (+ (+ (* 87 ?y4) (* (- 36) ?y3)) (* 55 ?y2)) (* (- 99) ?y1)) (* (- 56) x1)) (- 98)))) (or (or (not (= (+ (+ (+ (+ (* 73 ?y4) (* (- 15) ?y3)) (* 52 ?y2)) (* 12 ?y1)) (* 69 x1)) 72)) (<= (+ (+ ?v_0 (* (- 89) ?y1)) (* (- 49) x1)) 47)) (and (>= (+ (+ (* 82 ?y3) (* 69 ?y2)) (* 67 ?y1)) 10) (= (+ (+ (+ ?v_0 (* 4 ?y3)) (* 21 ?y2)) (* (- 35) ?y1)) 77))))))))))) (exists ((?y1 Real)) (forall ((?y2 Real)) (and (forall ((?y3 Real)) (forall ((?y4 Real)) (let ((?v_1 (* (- 41) ?y2))) (or (and (and (not (= (+ (+ (+ (* 33 ?y3) (* 7 ?y2)) (* 84 ?y1)) (* (- 79) x1)) 0)) (and (< (+ (+ (+ (* 57 ?y4) ?v_1) (* (- 82) ?y1)) (* (- 5) x1)) 40) (>= (+ (+ (+ (* 18 ?y3) (* (- 64) ?y2)) (* (- 87) ?y1)) (* (- 37) x1)) 16))) (and (or (not (= (+ (+ (+ (+ (* (- 19) ?y4) (* (- 74) ?y3)) (* 40 ?y2)) (* (- 73) ?y1)) (* (- 81) x1)) (- 6))) (< (+ (+ (+ (* (- 86) ?y4) (* (- 83) ?y2)) (* 46 ?y1)) (* (- 74) x1)) 94)) (or (> (+ (* (- 69) ?y2) (* (- 45) ?y1)) 0) (>= (+ (+ (* 16 ?y4) (* (- 18) ?y3)) (* (- 92) ?y2)) (- 32))))) (and (and (or (not (= (+ (+ (+ (* 11 ?y4) (* 75 ?y3)) (* 6 ?y1)) (* (- 63) x1)) 57)) (not (= (+ (+ (+ (+ (* (- 90) ?y4) (* 48 ?y3)) (* (- 94) ?y2)) (* (- 48) ?y1)) (* 96 x1)) (- 45)))) (or (>= (+ (+ (+ (* 36 ?y4) (* 67 ?y3)) (* 11 ?y2)) (* (- 84) x1)) (- 8)) (>= (+ (+ (* 75 ?y4) (* (- 65) ?y2)) (* (- 77) x1)) 34))) (or (or (> (+ (* 70 ?y1) (* (- 85) x1)) 0) (<= (+ (* 3 ?y2) (* (- 78) ?y1)) (- 7))) (and (= (+ (+ (* 44 ?y4) ?v_1) (* 48 x1)) 0) (< (+ (+ (+ (+ (* 27 ?y4) (* (- 24) ?y3)) (* 89 ?y2)) (* (- 93) ?y1)) (* 65 x1)) (- 17))))))))) (forall ((?y4 Real)) (let ((?v_2 (* 11 x1))) (and (and (or (and (< (* 99 ?y4) (- 32)) (<= (+ (+ (* 47 ?y4) (* (- 90) ?y1)) (* 78 x1)) (- 33))) (= (+ (* (- 19) ?y2) (* (- 97) ?y1)) 5)) (and (and (<= (+ (+ (* (- 54) ?y2) (* (- 87) ?y1)) (* (- 32) x1)) 51) (> (+ (+ (+ (* 46 ?y4) (* (- 11) ?y2)) (* (- 68) ?y1)) (* 77 x1)) 77)) (and (< (+ (+ (* 1 ?y4) (* 53 ?y2)) (* (- 60) x1)) (- 86)) (< (+ (* (- 12) ?y2) (* 38 x1)) 79)))) (or (or (>= (+ (* (- 46) ?y2) ?v_2) 37) (= (* (- 2) ?y1) 50)) (or (not (= (+ (+ (+ (* (- 95) ?y4) (* (- 96) ?y2)) (* (- 74) ?y1)) (* 59 x1)) (- 24))) (< (+ (* (- 70) ?y1) ?v_2) 0))))))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/anti-sk-simp.smt2 b/test/regress/regress1/quantifiers/anti-sk-simp.smt2 new file mode 100644 index 000000000..2ae54a075 --- /dev/null +++ b/test/regress/regress1/quantifiers/anti-sk-simp.smt2 @@ -0,0 +1,10 @@ +; COMMAND-LINE: --cbqi --quant-anti-skolem +; EXPECT: unsat +(set-logic ALL_SUPPORTED) +(set-info :status unsat) +(declare-fun f (Int) Int) +(declare-fun a () Int) +(declare-fun b () Int) +(assert (forall ((X Int)) (< X (f X)))) +(assert (forall ((X Int)) (> (+ a b) (f X)))) +(check-sat) diff --git a/test/regress/regress1/quantifiers/ari118-bv-2occ-x.smt2 b/test/regress/regress1/quantifiers/ari118-bv-2occ-x.smt2 new file mode 100644 index 000000000..2d70dfb8e --- /dev/null +++ b/test/regress/regress1/quantifiers/ari118-bv-2occ-x.smt2 @@ -0,0 +1,8 @@ +; COMMAND-LINE: --cbqi-bv +; EXPECT: unsat +(set-logic BV) +(set-info :status unsat) +; two occurrences of x +(assert (not (exists ((?X (_ BitVec 32)) (?Y (_ BitVec 32))) (= (bvmul ?X ?Y) ?X)))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/array-unsat-simp3.smt2 b/test/regress/regress1/quantifiers/array-unsat-simp3.smt2 new file mode 100644 index 000000000..9dade2073 --- /dev/null +++ b/test/regress/regress1/quantifiers/array-unsat-simp3.smt2 @@ -0,0 +1,23 @@ +; COMMAND-LINE: --full-saturate-quant +; EXPECT: unsat +(set-logic AUFLIA) +(set-info :smt-lib-version 2.0) +(set-info :category "crafted") +(set-info :status unsat) +(declare-sort Index 0) +(declare-sort Element 0) +(declare-sort Array_uf 0) +(declare-fun store_uf (Array_uf Index Element) Array_uf) +(declare-fun select_uf (Array_uf Index) Element) +(declare-fun a1 () Array_uf) +(declare-fun e1 () Element) +(declare-fun e2 () Element) +(declare-fun i1 () Index) +(declare-fun i2 () Index) +(assert (forall ((?a Array_uf) (?i Index) (?e Element)) (= (select_uf (store_uf ?a ?i ?e) ?i) ?e))) +(assert (forall ((?a Array_uf) (?i Index) (?j Index) (?e Element)) (or (= ?i ?j)(= (select_uf (store_uf ?a ?i ?e) ?j) (select_uf ?a ?j))))) +(assert (forall ((?a Array_uf) (?b Array_uf)) (=> (forall ((?i Index)) (= (select_uf ?a ?i) (select_uf ?b ?i))) (= ?a ?b)))) +(assert (not (= i1 i2))) +(assert (not (= (store_uf (store_uf a1 i1 e1) i2 e2) (store_uf (store_uf a1 i2 e2) i1 e1)))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/bi-artm-s.smt2 b/test/regress/regress1/quantifiers/bi-artm-s.smt2 new file mode 100644 index 000000000..b97c339fc --- /dev/null +++ b/test/regress/regress1/quantifiers/bi-artm-s.smt2 @@ -0,0 +1,29 @@ +; COMMAND-LINE: --fmf-bound-lazy +; EXPECT: unsat +(set-option :incremental "false") +(set-info :status unsat) +(set-logic ALL_SUPPORTED) +(declare-fun Y () String) +(set-info :notes "ufP_1 is uf type conv P") +(declare-fun ufP_1 (Int) Int) +(set-info :notes "ufM_2 is uf type conv M") +(declare-fun ufM_2 (Int) Int) +(declare-fun z1_3 () String) +(declare-fun z2_4 () String) +(declare-fun z3_5 () String) +(declare-fun V_253 () String) +(declare-fun V_254 () String) + +(assert (or (= Y "1") (= Y "0"))) +(assert (>= (ufP_1 0) 32)) +(assert + +(forall ((V_243 Int)) +(or +(not (and (>= V_243 0) (>= (+ (str.len Y) (* (- 1) V_243)) 1))) +(and +(or (not (= (str.len Y) (+ 1 V_243))) (= (ufP_1 V_243) (ufM_2 V_243))) +(not (>= (ufM_2 V_243) 10)) +(not (or (not (= (str.len Y) (+ 1 V_243 (str.len V_253)))) (not (= Y (str.++ V_253 (ite (= (ufM_2 V_243) 0) "0" "1") V_254)))) ))) )) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/bignum_quant.smt2 b/test/regress/regress1/quantifiers/bignum_quant.smt2 new file mode 100644 index 000000000..74b08a2da --- /dev/null +++ b/test/regress/regress1/quantifiers/bignum_quant.smt2 @@ -0,0 +1,12 @@ +(set-logic AUFLIA) +(set-info :source | SMT-COMP'06 organizers |) +(set-info :smt-lib-version 2.0) +(set-info :category "check") +(set-info :status unsat) +(set-info :notes |This benchmark is designed to check if the DP supports bignumbers.|) +(declare-fun f (Int) Int) +(assert (= (f 0) 1)) +(assert (forall ((?x Int)) (=> (> ?x 0) (= (f ?x) (* (- 1000) (f (- ?x 1))))))) +(assert (< (f 20) 0)) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/bug822.smt2 b/test/regress/regress1/quantifiers/bug822.smt2 new file mode 100644 index 000000000..cc1b5ed50 --- /dev/null +++ b/test/regress/regress1/quantifiers/bug822.smt2 @@ -0,0 +1,1181 @@ +(set-logic UFDT) +(set-info :source | +Generated by: Andrew Reynolds +Generated on: 2017-04-28 +Generator: Sledgehammer, converted to v2.6 by CVC4 +Application: Verfication goals in Isabelle +Target solver: CVC4, Z3 +Publications: "A Decision Procedure for (Co)Datatypes" by Andrew Reynolds and Jasmin Blanchette, CADE 2015. +|) +(set-info :status unsat) +(declare-sort A$ 0) +(declare-sort B$ 0) +(declare-sort A_a_fun$ 0) +(declare-sort A_b_fun$ 0) +(declare-sort B_a_fun$ 0) +(declare-sort B_b_fun$ 0) +(declare-sort A_bool_fun$ 0) +(declare-sort B_bool_fun$ 0) +(declare-sort A_a_tree_fun$ 0) +(declare-sort A_b_tree_fun$ 0) +(declare-sort A_tree_b_fun$ 0) +(declare-sort B_a_tree_fun$ 0) +(declare-sort B_b_tree_fun$ 0) +(declare-sort B_tree_b_fun$ 0) +(declare-sort A_a_sum_a_fun$ 0) +(declare-sort A_a_sum_b_fun$ 0) +(declare-sort A_b_fun_b_fun$ 0) +(declare-sort B_b_fun_b_fun$ 0) +(declare-sort B_b_sum_b_fun$ 0) +(declare-sort A_a_a_prod_fun$ 0) +(declare-sort A_b_b_prod_fun$ 0) +(declare-sort B_b_b_prod_fun$ 0) +(declare-sort B_b_prod_b_fun$ 0) +(declare-sort B_tree_bool_fun$ 0) +(declare-sort A_b_fun_bool_fun$ 0) +(declare-sort B_b_bool_fun_fun$ 0) +(declare-sort A_tree_a_tree_fun$ 0) +(declare-sort A_tree_b_tree_fun$ 0) +(declare-sort B_tree_a_tree_fun$ 0) +(declare-sort B_tree_b_tree_fun$ 0) +(declare-sort A_b_fun_b_tree_fun$ 0) +(declare-sort B_b_tree_sum_b_fun$ 0) +(declare-sort A_a_fun_a_a_fun_fun$ 0) +(declare-sort A_a_fun_a_b_fun_fun$ 0) +(declare-sort A_a_sum_a_a_sum_fun$ 0) +(declare-sort A_a_sum_b_b_sum_fun$ 0) +(declare-sort A_b_fun_a_a_fun_fun$ 0) +(declare-sort A_b_fun_a_b_fun_fun$ 0) +(declare-sort A_b_sum_b_b_sum_fun$ 0) +(declare-sort B_a_fun_b_a_fun_fun$ 0) +(declare-sort B_a_fun_b_b_fun_fun$ 0) +(declare-sort B_b_b_tree_prod_fun$ 0) +(declare-sort B_b_fun_b_a_fun_fun$ 0) +(declare-sort B_b_fun_b_b_fun_fun$ 0) +(declare-sort B_b_sum_b_b_sum_fun$ 0) +(declare-sort A_a_prod_a_a_prod_fun$ 0) +(declare-sort A_a_prod_b_b_prod_fun$ 0) +(declare-sort B_a_b_b_prod_prod_fun$ 0) +(declare-sort B_b_b_b_prod_prod_fun$ 0) +(declare-sort B_b_prod_b_b_prod_fun$ 0) +(declare-sort A_a_sum_tree_a_tree_fun$ 0) +(declare-sort A_a_sum_tree_b_tree_fun$ 0) +(declare-sort B_tree_b_sum_b_tree_fun$ 0) +(declare-sort A_a_fun_a_a_tree_fun_fun$ 0) +(declare-sort A_tree_b_b_prod_tree_fun$ 0) +(declare-sort B_b_fun_b_b_tree_fun_fun$ 0) +(declare-sort B_b_sum_b_tree_b_sum_fun$ 0) +(declare-sort B_b_tree_a_b_fun_sum_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_fun$ 0) +(declare-sort B_tree_b_sum_b_b_sum_fun$ 0) +(declare-sort B_tree_b_tree_b_prod_fun$ 0) +(declare-sort A_a_fun_a_a_sum_a_fun_fun$ 0) +(declare-sort A_a_fun_a_b_b_prod_fun_fun$ 0) +(declare-sort A_b_fun_a_b_b_prod_fun_fun$ 0) +(declare-sort B_b_b_prod_fun_b_b_fun_fun$ 0) +(declare-sort B_b_prod_b_tree_b_prod_fun$ 0) +(declare-sort B_tree_b_prod_b_b_prod_fun$ 0) +(declare-sort B_tree_b_tree_bool_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_bool_fun$ 0) +(declare-sort B_tree_tree_b_tree_tree_fun$ 0) +(declare-sort B_b_fun_b_b_bool_fun_fun_fun$ 0) +(declare-sort B_tree_b_tree_fun_b_tree_fun$ 0) +(declare-sort B_tree_b_tree_sum_b_tree_fun$ 0) +(declare-sort A_b_fun_tree_a_b_fun_tree_fun$ 0) +(declare-sort A_b_tree_sum_b_b_tree_sum_fun$ 0) +(declare-sort A_tree_b_sum_a_tree_b_sum_fun$ 0) +(declare-sort A_tree_b_sum_b_tree_b_sum_fun$ 0) +(declare-sort B_a_tree_fun_b_b_tree_fun_fun$ 0) +(declare-sort B_b_fun_tree_b_b_fun_tree_fun$ 0) +(declare-sort B_b_sum_tree_b_b_sum_tree_fun$ 0) +(declare-sort B_b_tree_fun_b_b_tree_fun_fun$ 0) +(declare-sort B_b_tree_sum_b_b_tree_sum_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_fun$ 0) +(declare-sort B_tree_b_fun_b_tree_b_fun_fun$ 0) +(declare-sort B_tree_b_sum_b_tree_b_sum_fun$ 0) +(declare-sort B_tree_b_tree_a_b_fun_sum_fun$ 0) +(declare-sort B_tree_b_tree_b_tree_prod_fun$ 0) +(declare-sort B_tree_b_tree_prod_b_tree_fun$ 0) +(declare-sort A_b_fun_b_tree_a_b_fun_sum_fun$ 0) +(declare-sort B_b_tree_b_tree_prod_prod_b_fun$ 0) +(declare-sort B_b_tree_prod_b_b_tree_prod_fun$ 0) +(declare-sort B_tree_b_prod_b_tree_b_prod_fun$ 0) +(declare-sort A_a_a_prod_fun_a_b_b_prod_fun_fun$ 0) +(declare-sort B_b_b_fun_b_b_bool_fun_fun_fun_fun$ 0) +(declare-sort B_b_tree_sum_b_tree_b_tree_sum_fun$ 0) +(declare-sort B_tree_b_tree_fun_b_tree_b_fun_fun$ 0) +(declare-sort B_tree_b_tree_sum_b_b_tree_sum_fun$ 0) +(declare-sort A_a_a_prod_prod_a_a_a_prod_prod_fun$ 0) +(declare-sort A_a_a_prod_prod_b_b_b_prod_prod_fun$ 0) +(declare-sort A_b_b_prod_prod_a_b_b_prod_prod_fun$ 0) +(declare-sort A_b_b_prod_prod_b_b_b_prod_prod_fun$ 0) +(declare-sort B_b_b_prod_prod_b_b_b_prod_prod_fun$ 0) +(declare-sort A_a_fun_a_a_fun_a_a_tree_fun_fun_fun$ 0) +(declare-sort A_tree_a_a_tree_a_tree_prod_prod_fun$ 0) +(declare-sort A_tree_b_b_tree_b_tree_prod_prod_fun$ 0) +(declare-sort B_b_tree_prod_b_tree_b_tree_prod_fun$ 0) +(declare-sort B_tree_a_b_tree_b_tree_prod_prod_fun$ 0) +(declare-sort B_tree_b_b_tree_b_tree_prod_prod_fun$ 0) +(declare-sort B_tree_b_tree_prod_b_b_tree_prod_fun$ 0) +(declare-sort A_b_fun_b_b_tree_b_tree_prod_prod_fun$ 0) +(declare-sort A_tree_a_tree_fun_a_tree_a_tree_fun_fun$ 0) +(declare-sort A_tree_a_tree_fun_a_tree_b_tree_fun_fun$ 0) +(declare-sort A_tree_b_tree_fun_a_tree_a_tree_fun_fun$ 0) +(declare-sort A_tree_b_tree_fun_a_tree_b_tree_fun_fun$ 0) +(declare-sort A_tree_b_tree_sum_a_tree_b_tree_sum_fun$ 0) +(declare-sort A_tree_b_tree_sum_b_tree_b_tree_sum_fun$ 0) +(declare-sort B_tree_a_tree_fun_b_tree_b_tree_fun_fun$ 0) +(declare-sort B_tree_b_tree_fun_b_tree_b_tree_fun_fun$ 0) +(declare-sort B_tree_b_tree_sum_b_tree_b_tree_sum_fun$ 0) +(declare-sort A_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun$ 0) +(declare-sort A_b_fun_b_tree_fun_a_b_fun_b_tree_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_b_tree_prod_fun$ 0) +(declare-sort B_tree_b_tree_prod_b_tree_b_tree_prod_fun$ 0) +(declare-sort A_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun$ 0) +(declare-sort B_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun$ 0) +(declare-sort B_b_b_tree_b_sum_b_tree_b_sum_prod_prod_fun$ 0) +(declare-sort B_tree_b_b_prod_prod_b_tree_b_b_prod_prod_fun$ 0) +(declare-sort B_b_fun_b_b_b_fun_b_b_bool_fun_fun_fun_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$ 0) +(declare-sort B_a_b_b_prod_prod_fun_b_a_b_b_prod_prod_fun_fun$ 0) +(declare-sort A_b_fun_bool_fun_b_tree_a_b_fun_sum_bool_fun_fun$ 0) +(declare-sort B_b_tree_b_tree_prod_prod_b_tree_b_tree_prod_fun$ 0) +(declare-sort B_tree_b_tree_fun_b_tree_b_tree_bool_fun_fun_fun$ 0) +(declare-sort B_tree_b_tree_fun_tree_b_tree_b_tree_fun_tree_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_bool_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_bool_fun$ 0) +(declare-sort B_tree_b_tree_a_b_fun_sum_fun_b_tree_b_tree_fun_fun$ 0) +(declare-sort B_tree_b_tree_b_tree_prod_fun_b_tree_b_tree_fun_fun$ 0) +(declare-sort A_b_fun_b_tree_fun_b_tree_a_b_fun_sum_b_tree_fun_fun$ 0) +(declare-sort A_b_fun_b_tree_a_b_fun_sum_fun_a_b_fun_b_tree_fun_fun$ 0) +(declare-sort B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_fun$ 0) +(declare-sort A_a_tree_a_tree_prod_prod_a_a_tree_a_tree_prod_prod_fun$ 0) +(declare-sort A_a_tree_a_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$ 0) +(declare-sort A_b_tree_b_tree_prod_prod_a_b_tree_b_tree_prod_prod_fun$ 0) +(declare-sort A_b_tree_b_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$ 0) +(declare-sort B_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$ 0) +(declare-sort B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_fun$ 0) +(declare-sort B_b_tree_b_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$ 0) +(declare-sort A_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun$ 0) +(declare-sort B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_bool_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_bool_fun_fun$ 0) +(declare-sort B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_bool_fun$ 0) +(declare-sort B_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun$ 0) +(declare-sort B_tree_b_b_tree_b_tree_sum_b_tree_b_tree_sum_prod_prod_fun$ 0) +(declare-sort B_tree_b_tree_b_tree_fun_b_tree_b_tree_bool_fun_fun_fun_fun$ 0) +(declare-sort A_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_fun_b_tree_a_b_fun_sum_b_tree_fun_fun$ 0) +(declare-sort B_tree_b_tree_fun_b_tree_b_tree_prod_b_tree_b_tree_prod_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_b_tree_prod_fun_fun$ 0) +(declare-sort A_b_fun_a_b_fun_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_fun$ 0) +(declare-sort A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$ 0) +(declare-sort B_tree_b_tree_b_tree_prod_prod_b_tree_b_tree_b_tree_prod_prod_fun$ 0) +(declare-sort A_b_fun_a_b_fun_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun$ 0) +(declare-sort A_a_fun_a_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun_fun$ 0) +(declare-sort B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_tree_b_tree_prod_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_b_tree_prod_prod_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_b_tree_a_b_fun_sum_b_tree_fun_fun$ 0) +(declare-sort B_tree_a_b_tree_b_tree_prod_prod_fun_b_tree_a_b_tree_b_tree_prod_prod_fun_fun$ 0) +(declare-sort B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_b_tree_prod_prod_fun_fun$ 0) +(declare-sort A_a_tree_b_sum_a_tree_b_sum_prod_prod_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun$ 0) +(declare-sort A_a_tree_b_sum_a_tree_b_sum_prod_prod_b_b_tree_b_sum_b_tree_b_sum_prod_prod_fun$ 0) +(declare-sort B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$ 0) +(declare-sort B_tree_b_tree_fun_b_tree_b_tree_b_tree_fun_b_tree_b_tree_bool_fun_fun_fun_fun_fun$ 0) +(declare-sort A_a_tree_fun_a_a_fun_a_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun_fun_fun$ 0) +(declare-sort A_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$ 0) +(declare-sort A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$ 0) +(declare-sort B_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun_b_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun_fun$ 0) +(declare-sort B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$ 0) +(declare-sort A_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun$ 0) +(declare-sort A_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_b_b_tree_b_tree_sum_b_tree_b_tree_sum_prod_prod_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_fun$ 0) +(declare-sort A_bool_fun_a_a_tree_fun_a_a_fun_a_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun_fun_fun_fun$ 0) +(declare-sort B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$ 0) +(declare-sort B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$ 0) +(declare-sort A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun$ 0) +(declare-sort A_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_fun$ 0) +(declare-sort B_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun_b_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun_fun$ 0) +(declare-sort A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun$ 0) +(declare-sort A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_fun$ 0) +(declare-sort A_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun_fun$ 0) +(declare-sort A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun_fun_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun_fun$ 0) +(declare-sort B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_fun$ 0) +(declare-sort A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun_fun_fun$ 0) +(declare-sort A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun_fun_fun_fun$ 0) +(declare-sort B_tree$ 0) +(declare-fun root$ (B_tree$) B$) +(declare-fun left$ (B_tree$) B_tree$) +(declare-fun right$ (B_tree$) B_tree$) +(declare-fun node$ (B$ B_tree$ B_tree$) B_tree$) +(declare-datatypes ((B_tree_b_tree_prod$ 0)(B_b_tree_b_tree_prod_prod$ 0)(B_tree_a_b_fun_sum$ 0)(B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$ 0)(B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$ 0)) (((pair$ (fst$ B_tree$) (snd$ B_tree$))) +((pair$a (fst$a B$) (snd$a B_tree_b_tree_prod$))) +((inl$ (select$ B_tree$)) (inr$ (selecta$ A_b_fun$))) +((pair$b (fst$b B_tree_a_b_fun_sum$) (snd$b B_tree_a_b_fun_sum$))) +((pair$c (fst$c B$) (snd$c B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$))) +)) +(declare-sort A_tree$ 0) +(declare-fun root$a (A_tree$) A$) +(declare-fun left$a (A_tree$) A_tree$) +(declare-fun right$a (A_tree$) A_tree$) +(declare-fun node$a (A$ A_tree$ A_tree$) A_tree$) +(declare-datatypes ((A_tree_a_tree_prod$ 0)(A_a_tree_a_tree_prod_prod$ 0)(B_b_prod$ 0)) (((pair$d (fst$d A_tree$) (snd$d A_tree$))) +((pair$e (fst$e A$) (snd$e A_tree_a_tree_prod$))) +((pair$f (fst$f B$) (snd$f B$))) +)) +(declare-sort B_b_prod_tree$ 0) +(declare-fun root$b (B_b_prod_tree$) B_b_prod$) +(declare-fun left$b (B_b_prod_tree$) B_b_prod_tree$) +(declare-fun right$b (B_b_prod_tree$) B_b_prod_tree$) +(declare-fun node$b (B_b_prod$ B_b_prod_tree$ B_b_prod_tree$) B_b_prod_tree$) +(declare-datatypes ((A_a_sum$ 0)) (((inl$a (projl$ A$)) (inr$a (projr$ A$))) +)) +(declare-sort A_a_sum_tree$ 0) +(declare-sort B_tree_tree$ 0) +(declare-fun root$c (A_a_sum_tree$) A_a_sum$) +(declare-fun left$c (A_a_sum_tree$) A_a_sum_tree$) +(declare-fun right$c (A_a_sum_tree$) A_a_sum_tree$) +(declare-fun node$c (A_a_sum$ A_a_sum_tree$ A_a_sum_tree$) A_a_sum_tree$) +(declare-fun root$d (B_tree_tree$) B_tree$) +(declare-fun left$d (B_tree_tree$) B_tree_tree$) +(declare-fun right$d (B_tree_tree$) B_tree_tree$) +(declare-fun node$d (B_tree$ B_tree_tree$ B_tree_tree$) B_tree_tree$) +(declare-datatypes ((B_b_sum$ 0)) (((inl$b (projl$a B$)) (inr$b (projr$a B$))) +)) +(declare-sort B_b_sum_tree$ 0) +(declare-sort B_tree_b_tree_fun_tree$ 0) +(declare-sort B_b_fun_tree$ 0) +(declare-sort A_b_fun_tree$ 0) +(declare-fun root$e (B_b_sum_tree$) B_b_sum$) +(declare-fun left$e (B_b_sum_tree$) B_b_sum_tree$) +(declare-fun right$e (B_b_sum_tree$) B_b_sum_tree$) +(declare-fun node$e (B_b_sum$ B_b_sum_tree$ B_b_sum_tree$) B_b_sum_tree$) +(declare-fun selectb$ (B_tree_b_tree_fun_tree$) B_tree_b_tree_fun$) +(declare-fun selectc$ (B_tree_b_tree_fun_tree$) B_tree_b_tree_fun_tree$) +(declare-fun selectd$ (B_tree_b_tree_fun_tree$) B_tree_b_tree_fun_tree$) +(declare-fun node$f (B_tree_b_tree_fun$ B_tree_b_tree_fun_tree$ B_tree_b_tree_fun_tree$) B_tree_b_tree_fun_tree$) +(declare-fun selecte$ (B_b_fun_tree$) B_b_fun$) +(declare-fun selectf$ (B_b_fun_tree$) B_b_fun_tree$) +(declare-fun selectg$ (B_b_fun_tree$) B_b_fun_tree$) +(declare-fun node$g (B_b_fun$ B_b_fun_tree$ B_b_fun_tree$) B_b_fun_tree$) +(declare-fun selecth$ (A_b_fun_tree$) A_b_fun$) +(declare-fun selecti$ (A_b_fun_tree$) A_b_fun_tree$) +(declare-fun selectj$ (A_b_fun_tree$) A_b_fun_tree$) +(declare-fun node$h (A_b_fun$ A_b_fun_tree$ A_b_fun_tree$) A_b_fun_tree$) +(declare-datatypes ((A_a_prod$ 0)(A_b_tree_sum$ 0)(A_b_sum$ 0)(B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_prod$ 0)(B_b_tree_prod$ 0)(B_tree_b_prod$ 0)(B_b_b_prod_prod$ 0)(A_a_a_prod_prod$ 0)(B_tree_b_b_prod_prod$ 0)(B_tree_b_tree_b_tree_prod_prod$ 0)(A_b_b_prod_prod$ 0)(A_b_tree_b_tree_prod_prod$ 0)(A_tree_b_sum$ 0)(A_tree_b_sum_a_tree_b_sum_prod$ 0)(A_a_tree_b_sum_a_tree_b_sum_prod_prod$ 0)(B_tree_b_sum$ 0)(B_tree_b_sum_b_tree_b_sum_prod$ 0)(B_b_tree_b_sum_b_tree_b_sum_prod_prod$ 0)(A_tree_b_tree_sum$ 0)(A_tree_b_tree_sum_a_tree_b_tree_sum_prod$ 0)(A_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod$ 0)(B_tree_b_tree_sum$ 0)(B_tree_b_tree_sum_b_tree_b_tree_sum_prod$ 0)(B_b_tree_b_tree_sum_b_tree_b_tree_sum_prod_prod$ 0)(B_b_tree_sum$ 0)) (((pair$g (fst$g A$) (snd$g A$))) +((inl$c (projl$b A$)) (inr$c (projr$b B_tree$))) +((inl$d (projl$c A$)) (inr$d (projr$c B$))) +((pair$h (fst$h B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (snd$h B$))) +((pair$i (fst$i B$) (snd$i B_tree$))) +((pair$j (fst$j B_tree$) (snd$j B$))) +((pair$k (fst$k B$) (snd$k B_b_prod$))) +((pair$l (fst$l A$) (snd$l A_a_prod$))) +((pair$m (fst$m B_tree$) (snd$m B_b_prod$))) +((pair$n (fst$n B_tree$) (snd$n B_tree_b_tree_prod$))) +((pair$o (fst$o A$) (snd$o B_b_prod$))) +((pair$p (fst$p A$) (snd$p B_tree_b_tree_prod$))) +((inl$e (projl$d A_tree$)) (inr$e (projr$d B$))) +((pair$q (fst$q A_tree_b_sum$) (snd$q A_tree_b_sum$))) +((pair$r (fst$r A$) (snd$r A_tree_b_sum_a_tree_b_sum_prod$))) +((inl$f (projl$e B_tree$)) (inr$f (projr$e B$))) +((pair$s (fst$s B_tree_b_sum$) (snd$s B_tree_b_sum$))) +((pair$t (fst$t B$) (snd$t B_tree_b_sum_b_tree_b_sum_prod$))) +((inl$g (projl$f A_tree$)) (inr$g (projr$f B_tree$))) +((pair$u (fst$u A_tree_b_tree_sum$) (snd$u A_tree_b_tree_sum$))) +((pair$v (fst$v A$) (snd$v A_tree_b_tree_sum_a_tree_b_tree_sum_prod$))) +((inl$h (projl$g B_tree$)) (inr$h (projr$g B_tree$))) +((pair$w (fst$w B_tree_b_tree_sum$) (snd$w B_tree_b_tree_sum$))) +((pair$x (fst$x B$) (snd$x B_tree_b_tree_sum_b_tree_b_tree_sum_prod$))) +((inl$i (projl$h B$)) (inr$i (projr$h B_tree$))) +)) +(declare-fun l$ () A_a_fun$) +(declare-fun r$ () A_a_fun$) +(declare-fun t$ () A_tree$) +(declare-fun x$ () A$) +(declare-fun id$ () B_b_fun$) +(declare-fun uu$ () A_b_fun_b_tree_fun$) +(declare-fun id$a () B_tree_b_tree_fun$) +(declare-fun id$b () B_b_sum_b_b_sum_fun$) +(declare-fun id$c () B_tree_b_tree_fun_b_tree_b_tree_fun_fun$) +(declare-fun id$d () B_b_fun_b_b_fun_fun$) +(declare-fun id$e () A_b_fun_a_b_fun_fun$) +(declare-fun id$f () A_a_fun$) +(declare-fun id$g () B_b_sum_tree_b_b_sum_tree_fun$) +(declare-fun id$h () B_tree_b_tree_fun_tree_b_tree_b_tree_fun_tree_fun$) +(declare-fun id$i () B_b_fun_tree_b_b_fun_tree_fun$) +(declare-fun id$j () A_b_fun_tree_a_b_fun_tree_fun$) +(declare-fun id$k () B_tree_tree_b_tree_tree_fun$) +(declare-fun id$l () A_tree_a_tree_fun$) +(declare-fun id$m () B_b_tree_b_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun id$n () B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$) +(declare-fun id$o () B_b_prod_b_b_prod_fun$) +(declare-fun id$p () A_a_prod_a_a_prod_fun$) +(declare-fun id$q () B_b_tree_prod_b_b_tree_prod_fun$) +(declare-fun id$r () B_tree_b_prod_b_tree_b_prod_fun$) +(declare-fun id$s () B_tree_b_tree_prod_b_tree_b_tree_prod_fun$) +(declare-fun id$t () B_b_b_prod_prod_b_b_b_prod_prod_fun$) +(declare-fun id$u () B_tree_b_b_prod_prod_b_tree_b_b_prod_prod_fun$) +(declare-fun id$v () B_tree_b_tree_b_tree_prod_prod_b_tree_b_tree_b_tree_prod_prod_fun$) +(declare-fun id$w () B_b_tree_sum_b_b_tree_sum_fun$) +(declare-fun id$x () B_tree_b_sum_b_tree_b_sum_fun$) +(declare-fun id$y () B_tree_b_tree_sum_b_tree_b_tree_sum_fun$) +(declare-fun id$z (B_tree_a_b_fun_sum$) B_tree_a_b_fun_sum$) +(declare-fun uua$ () B_b_fun$) +(declare-fun uub$ () B_tree_b_tree_fun$) +(declare-fun uuc$ () A_a_fun$) +(declare-fun uud$ (B$) B_b_fun$) +(declare-fun uue$ (B$) A_b_fun$) +(declare-fun uuf$ (B$) B_tree_b_fun$) +(declare-fun uug$ (A$) A_a_fun$) +(declare-fun uuh$ (B_tree$) B_tree_b_tree_fun$) +(declare-fun uui$ (B_tree$) A_b_fun_b_tree_fun$) +(declare-fun uuj$ () B_tree_b_tree_prod_b_tree_b_tree_prod_fun$) +(declare-fun uuk$ () B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) +(declare-fun uul$ (B_tree_b_tree_fun$) B_tree_b_tree_fun_b_tree_b_tree_fun_fun$) +(declare-fun uum$ (B_tree_b_tree_fun$) A_b_fun_b_tree_fun_a_b_fun_b_tree_fun_fun$) +(declare-fun uun$ () A_b_fun_b_tree_a_b_fun_sum_fun$) +(declare-fun uuo$ (A$) A_b_fun_b_fun$) +(declare-fun uup$ (A_a_fun$) A_b_fun_a_b_fun_fun$) +(declare-fun uuq$ (A_b_fun_b_fun$) A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun_fun_fun_fun$) +(declare-fun uur$ () B_tree_b_tree_a_b_fun_sum_fun$) +(declare-fun uus$ (B_tree_a_b_fun_sum_b_tree_fun$) B_tree_b_tree_fun$) +(declare-fun uut$ (B_tree_a_b_fun_sum_b_tree_fun$) A_b_fun_b_tree_fun$) +(declare-fun uuu$ (B$) B_b_fun_b_fun$) +(declare-fun uuv$ (B_b_fun$) B_b_fun_b_b_fun_fun$) +(declare-fun uuw$ (B_tree$) B_tree_b_tree_fun_b_tree_fun$) +(declare-fun uux$ (B_tree_b_tree_fun$) B_tree_b_tree_fun_b_tree_b_tree_fun_fun$) +(declare-fun uuy$ (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_bool_fun_fun$) +(declare-fun uuz$ (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_bool_fun_fun$) +(declare-fun uva$ () B_b_tree_b_tree_prod_prod_b_fun$) +(declare-fun uvb$ () B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_fun$) +(declare-fun uvc$ () B_tree_b_tree_prod_b_tree_fun$) +(declare-fun uvd$ () B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun$) +(declare-fun uve$ () B_b_tree_b_tree_prod_prod_b_tree_b_tree_prod_fun$) +(declare-fun uvf$ () B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) +(declare-fun uvg$ () B_tree_b_tree_prod_b_tree_fun$) +(declare-fun uvh$ () B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun$) +(declare-fun uvi$ () B_b_prod_b_fun$) +(declare-fun uvj$ () B_b_b_prod_fun$) +(declare-fun uvk$ () B_tree_b_tree_b_tree_prod_fun$) +(declare-fun uvl$ () B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) +(declare-fun uvm$ () B_b_prod_b_fun$) +(declare-fun uvn$ () B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$) +(declare-fun uvo$ () B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_fun$) +(declare-fun uvp$ () B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$) +(declare-fun uvq$ () B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_fun$) +(declare-fun uvr$ (B_b_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_b_tree_prod_prod_fun_fun$) +(declare-fun uvs$ (B_tree_a_b_fun_sum_b_tree_fun$ B_tree_a_b_fun_sum_b_tree_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_b_tree_prod_fun_fun$) +(declare-fun comp$ (B_tree_b_tree_fun$) B_tree_b_tree_fun_b_tree_b_tree_fun_fun$) +(declare-fun id$aa () B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) +(declare-fun swap$ (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_prod$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) +(declare-fun xtor$ (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) +(declare-fun apfst$ (B_b_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) +(declare-fun apsnd$ (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) +(declare-fun comp$a (B_b_fun$) B_b_fun_b_b_fun_fun$) +(declare-fun comp$b (A_b_fun$) A_a_fun_a_b_fun_fun$) +(declare-fun comp$c (B_b_fun$) A_b_fun_a_b_fun_fun$) +(declare-fun comp$d (B_a_fun$) A_b_fun_a_a_fun_fun$) +(declare-fun comp$e (A_a_fun$) A_a_fun_a_a_fun_fun$) +(declare-fun comp$f (A_b_fun$) B_a_fun_b_b_fun_fun$) +(declare-fun comp$g (A_a_fun$) B_a_fun_b_a_fun_fun$) +(declare-fun comp$h (B_a_fun$) B_b_fun_b_a_fun_fun$) +(declare-fun comp$i (A_b_b_prod_fun$) A_a_fun_a_b_b_prod_fun_fun$) +(declare-fun comp$j (A_b_fun$ A_a_sum_a_fun$) A_a_sum_b_fun$) +(declare-fun comp$k (B_tree_b_tree_fun$) A_tree_b_tree_fun_a_tree_b_tree_fun_fun$) +(declare-fun comp$l (A_tree_b_tree_fun$) A_tree_a_tree_fun_a_tree_b_tree_fun_fun$) +(declare-fun comp$m (B_tree_a_tree_fun$) A_tree_b_tree_fun_a_tree_a_tree_fun_fun$) +(declare-fun comp$n (A_tree_a_tree_fun$) A_tree_a_tree_fun_a_tree_a_tree_fun_fun$) +(declare-fun comp$o (A_tree_a_tree_fun$ B_tree_a_tree_fun$) B_tree_a_tree_fun$) +(declare-fun comp$p (B_tree_a_tree_fun$ B_tree_b_tree_fun$) B_tree_a_tree_fun$) +(declare-fun comp$q (A_tree_b_tree_fun$) B_tree_a_tree_fun_b_tree_b_tree_fun_fun$) +(declare-fun comp$r (A_tree_b_b_prod_tree_fun$ A_tree_a_tree_fun$) A_tree_b_b_prod_tree_fun$) +(declare-fun comp$s (A_tree_b_tree_fun$ A_a_sum_tree_a_tree_fun$) A_a_sum_tree_b_tree_fun$) +(declare-fun comp$t (A_a_prod_b_b_prod_fun$ A_a_prod_a_a_prod_fun$) A_a_prod_b_b_prod_fun$) +(declare-fun comp$u (B_b_tree_b_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun comp$v (B_tree_b_tree_prod_b_tree_b_tree_prod_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_fun$) +(declare-fun comp$w (B_tree_b_tree_fun$) B_tree_a_b_fun_sum_b_tree_fun_b_tree_a_b_fun_sum_b_tree_fun_fun$) +(declare-fun comp$x (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun comp$y (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_fun$) +(declare-fun comp$z (B_tree_a_b_fun_sum_b_tree_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_b_tree_a_b_fun_sum_b_tree_fun_fun$) +(declare-fun swap$a (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_prod$) +(declare-fun swap$b (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) +(declare-fun xtor$a (B_b_tree_b_tree_prod_prod$) B_b_tree_b_tree_prod_prod$) +(declare-fun xtor$b (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) +(declare-fun xtor$c (B_tree_a_b_fun_sum$) B_tree_a_b_fun_sum$) +(declare-fun apfst$a (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) +(declare-fun apsnd$a (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) +(declare-fun apsnd$b (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun comp$aa (B_tree_a_b_fun_sum_b_tree_fun$) A_b_fun_b_tree_a_b_fun_sum_fun_a_b_fun_b_tree_fun_fun$) +(declare-fun comp$ab (B_tree_b_tree_fun$) A_b_fun_b_tree_fun_a_b_fun_b_tree_fun_fun$) +(declare-fun comp$ac (A_tree_b_tree_fun$ A_a_tree_fun$) A_b_tree_fun$) +(declare-fun comp$ad (B_tree_a_b_fun_sum_b_tree_fun$) B_tree_b_tree_a_b_fun_sum_fun_b_tree_b_tree_fun_fun$) +(declare-fun comp$ae (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$ A_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$) A_b_fun_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun comp$af (B_tree_b_b_tree_b_tree_prod_prod_fun$ A_b_fun_b_tree_fun$) A_b_fun_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun comp$ag (A_a_a_prod_prod_b_b_b_prod_prod_fun$ A_a_a_prod_prod_a_a_a_prod_prod_fun$) A_a_a_prod_prod_b_b_b_prod_prod_fun$) +(declare-fun comp$ah (A_tree_b_tree_fun$) B_a_tree_fun_b_b_tree_fun_fun$) +(declare-fun comp$ai (A_b_b_prod_prod_b_b_b_prod_prod_fun$ B_a_b_b_prod_prod_fun$) B_b_b_b_prod_prod_fun$) +(declare-fun comp$aj (A_b_tree_b_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$ B_tree_a_b_tree_b_tree_prod_prod_fun$) B_tree_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun comp$ak (A_tree_a_tree_fun$ B_a_tree_fun$) B_a_tree_fun$) +(declare-fun comp$al (A_b_b_prod_prod_a_b_b_prod_prod_fun$) B_a_b_b_prod_prod_fun_b_a_b_b_prod_prod_fun_fun$) +(declare-fun comp$am (A_b_tree_b_tree_prod_prod_a_b_tree_b_tree_prod_prod_fun$) B_tree_a_b_tree_b_tree_prod_prod_fun_b_tree_a_b_tree_b_tree_prod_prod_fun_fun$) +(declare-fun comp$an (B_b_prod_b_b_prod_fun$ B_b_b_prod_fun$ B$) B_b_prod$) +(declare-fun comp$ao (B_b_prod_b_tree_b_prod_fun$ B_b_b_prod_fun$ B$) B_tree_b_prod$) +(declare-fun comp$ap (B_tree_b_tree_fun$) B_b_tree_fun_b_b_tree_fun_fun$) +(declare-fun comp$aq (B_tree_b_prod_b_b_prod_fun$ B_tree_b_tree_b_prod_fun$ B_tree$) B_b_prod$) +(declare-fun comp$ar (B_b_fun$) B_tree_b_fun_b_tree_b_fun_fun$) +(declare-fun comp$as (B_tree_b_prod_b_tree_b_prod_fun$ B_tree_b_tree_b_prod_fun$ B_tree$) B_tree_b_prod$) +(declare-fun comp$at (B_b_tree_prod_b_b_tree_prod_fun$ B_b_b_tree_prod_fun$ B$) B_b_tree_prod$) +(declare-fun comp$au (B_b_tree_prod_b_tree_b_tree_prod_fun$ B_b_b_tree_prod_fun$ B$) B_tree_b_tree_prod$) +(declare-fun comp$av (B_tree_b_tree_prod_b_b_tree_prod_fun$ B_tree_b_tree_b_tree_prod_fun$ B_tree$) B_b_tree_prod$) +(declare-fun comp$aw (B_tree_b_tree_prod_b_tree_b_tree_prod_fun$ B_tree_b_tree_b_tree_prod_fun$ B_tree$) B_tree_b_tree_prod$) +(declare-fun comp$ax (A_tree_a_a_tree_a_tree_prod_prod_fun$ A_tree_a_tree_fun$) A_tree_a_a_tree_a_tree_prod_prod_fun$) +(declare-fun comp$ay (A_a_tree_a_tree_prod_prod_a_a_tree_a_tree_prod_prod_fun$ A_tree_a_a_tree_a_tree_prod_prod_fun$) A_tree_a_a_tree_a_tree_prod_prod_fun$) +(declare-fun comp$az (B_tree_b_b_tree_b_tree_prod_prod_fun$ A_tree_b_tree_fun$) A_tree_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun comp$ba (A_a_tree_a_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$ A_tree_a_a_tree_a_tree_prod_prod_fun$) A_tree_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun comp$bb (B_tree_b_b_tree_b_tree_prod_prod_fun$ B_tree_b_tree_fun$) B_tree_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun comp$bc (B_b_tree_b_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$ B_tree_b_b_tree_b_tree_prod_prod_fun$) B_tree_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun comp$bd (A_a_prod_b_b_prod_fun$) A_a_a_prod_fun_a_b_b_prod_fun_fun$) +(declare-fun comp$be (A_a_tree_b_sum_a_tree_b_sum_prod_prod_b_b_tree_b_sum_b_tree_b_sum_prod_prod_fun$ B_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun$) B_b_b_tree_b_sum_b_tree_b_sum_prod_prod_fun$) +(declare-fun comp$bf (A_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_b_b_tree_b_tree_sum_b_tree_b_tree_sum_prod_prod_fun$ B_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun$) B_tree_b_b_tree_b_tree_sum_b_tree_b_tree_sum_prod_prod_fun$) +(declare-fun comp$bg (A_a_tree_b_sum_a_tree_b_sum_prod_prod_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun$) B_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun_b_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun_fun$) +(declare-fun comp$bh (A_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun$) B_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun_b_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun_fun$) +(declare-fun comp$bi (A_a_sum_b_b_sum_fun$ A_a_sum_a_a_sum_fun$) A_a_sum_b_b_sum_fun$) +(declare-fun comp$bj (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$ A_b_fun_b_tree_a_b_fun_sum_fun$) A_b_fun_b_tree_a_b_fun_sum_fun$) +(declare-fun comp$bk (A_b_fun_b_tree_a_b_fun_sum_fun$ A_b_fun_a_b_fun_fun$) A_b_fun_b_tree_a_b_fun_sum_fun$) +(declare-fun comp$bl (A_a_sum_b_fun$ A_a_sum_a_a_sum_fun$) A_a_sum_b_fun$) +(declare-fun comp$bm (A_b_fun_b_tree_fun$) A_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun$) +(declare-fun comp$bn (B_b_sum_b_fun$ B_b_sum_b_b_sum_fun$ B_b_sum$) B$) +(declare-fun comp$bo (B_b_sum_b_fun$ A_b_sum_b_b_sum_fun$ A_b_sum$) B$) +(declare-fun comp$bp (B_b_sum_b_fun$ B_tree_b_sum_b_b_sum_fun$ B_tree_b_sum$) B$) +(declare-fun comp$bq (B_tree_b_fun$) B_tree_b_tree_fun_b_tree_b_fun_fun$) +(declare-fun comp$br (B_b_tree_sum_b_fun$ B_b_tree_sum_b_b_tree_sum_fun$ B_b_tree_sum$) B$) +(declare-fun comp$bs (B_tree_b_sum_b_tree_fun$ B_b_sum_b_tree_b_sum_fun$ B_b_sum$) B_tree$) +(declare-fun comp$bt (B_b_tree_fun$) B_b_fun_b_b_tree_fun_fun$) +(declare-fun comp$bu (B_b_tree_sum_b_fun$ A_b_tree_sum_b_b_tree_sum_fun$ A_b_tree_sum$) B$) +(declare-fun comp$bv (B_b_tree_sum_b_fun$ B_tree_b_tree_sum_b_b_tree_sum_fun$ B_tree_b_tree_sum$) B$) +(declare-fun comp$bw (B_tree_b_sum_b_tree_fun$ B_tree_b_sum_b_tree_b_sum_fun$ B_tree_b_sum$) B_tree$) +(declare-fun comp$bx (B_tree_b_tree_sum_b_tree_fun$ B_b_tree_sum_b_tree_b_tree_sum_fun$ B_b_tree_sum$) B_tree$) +(declare-fun comp$by (B_tree_b_tree_sum_b_tree_fun$ B_tree_b_tree_sum_b_tree_b_tree_sum_fun$ B_tree_b_tree_sum$) B_tree$) +(declare-fun comp$bz (B_b_tree_b_tree_prod_prod_b_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_fun$) +(declare-fun comp$ca (B_b_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_fun$) +(declare-fun comp$cb (B_tree_b_tree_prod_b_tree_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_fun$) +(declare-fun comp$cc (B_tree_a_b_fun_sum_b_tree_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_fun$) +(declare-fun comp$cd (B_b_tree_b_tree_prod_prod_b_tree_b_tree_prod_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_tree_b_tree_prod_fun$) +(declare-fun comp$ce (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_tree_b_tree_prod_fun$) +(declare-fun comp$cf (B_b_prod_b_fun$) B_b_b_prod_fun_b_b_fun_fun$) +(declare-fun comp$cg (B_tree_b_tree_prod_b_tree_fun$) B_tree_b_tree_b_tree_prod_fun_b_tree_b_tree_fun_fun$) +(declare-fun comp$ch (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_fun$) +(declare-fun comp$ci (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_prod$) B$) +(declare-fun comp$cj (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun_fun$) +(declare-fun convol$ (B_b_fun$ B_b_fun$) B_b_b_prod_fun$) +(declare-fun id_bnf$ (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) +(declare-fun member$ (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$) Bool) +(declare-fun convol$a (B_b_tree_fun$ B_b_fun$ B$) B_tree_b_prod$) +(declare-fun convol$b (B_tree_b_tree_fun$ B_tree_b_fun$) B_tree_b_tree_b_prod_fun$) +(declare-fun convol$c (B_tree_b_fun$ B_tree_b_fun$ B_tree$) B_b_prod$) +(declare-fun convol$d (B_b_fun$ B_b_tree_fun$) B_b_b_tree_prod_fun$) +(declare-fun convol$e (B_b_tree_fun$ B_b_tree_fun$ B$) B_tree_b_tree_prod$) +(declare-fun convol$f (B_tree_b_tree_fun$ B_tree_b_tree_fun$) B_tree_b_tree_b_tree_prod_fun$) +(declare-fun convol$g (B_tree_b_fun$ B_tree_b_tree_fun$ B_tree$) B_b_tree_prod$) +(declare-fun convol$h (A_b_fun$) A_b_fun_a_b_b_prod_fun_fun$) +(declare-fun convol$i (A_a_fun$ A_a_fun$) A_a_a_prod_fun$) +(declare-fun fun_app$ (B_tree_b_tree_b_tree_prod_fun$ B_tree$) B_tree_b_tree_prod$) +(declare-fun id_bnf$a (B_b_tree_b_tree_prod_prod$) B_b_tree_b_tree_prod_prod$) +(declare-fun id_bnf$b (A_a_tree_a_tree_prod_prod$) A_a_tree_a_tree_prod_prod$) +(declare-fun id_bnf$c () A_a_fun$) +(declare-fun id_bnf$d (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) +(declare-fun id_bnf$e (B_tree_a_b_fun_sum$) B_tree_a_b_fun_sum$) +(declare-fun map_sum$ (A_tree_b_tree_fun$ B_b_fun$) A_tree_b_sum_b_tree_b_sum_fun$) +(declare-fun member$a (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$) Bool) +(declare-fun uncurry$ (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$) +(declare-fun case_sum$ (B_tree_b_tree_fun$) A_b_fun_b_tree_fun_b_tree_a_b_fun_sum_b_tree_fun_fun$) +(declare-fun ctor_rec$ (A_b_fun$) A_b_fun$) +(declare-fun fun_app$a (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$ B_tree_a_b_fun_sum$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) +(declare-fun fun_app$b (B_b_b_prod_fun$ B$) B_b_prod$) +(declare-fun fun_app$c (A_b_fun_b_tree_fun$ A_b_fun$) B_tree$) +(declare-fun fun_app$d (A_tree_b_tree_fun$ A_tree$) B_tree$) +(declare-fun fun_app$e (B_tree_b_tree_prod_b_tree_fun$ B_tree_b_tree_prod$) B_tree$) +(declare-fun fun_app$f (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_tree_a_b_fun_sum$) +(declare-fun fun_app$g (B_b_tree_b_tree_prod_prod_b_tree_b_tree_prod_fun$ B_b_tree_b_tree_prod_prod$) B_tree_b_tree_prod$) +(declare-fun fun_app$h (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) +(declare-fun fun_app$i (B_b_prod_b_fun$ B_b_prod$) B$) +(declare-fun fun_app$j (B_b_tree_b_tree_prod_prod_b_fun$ B_b_tree_b_tree_prod_prod$) B$) +(declare-fun fun_app$k (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) B$) +(declare-fun fun_app$l (A_b_fun_b_tree_a_b_fun_sum_fun$ A_b_fun$) B_tree_a_b_fun_sum$) +(declare-fun fun_app$m (B_tree_b_tree_a_b_fun_sum_fun$ B_tree$) B_tree_a_b_fun_sum$) +(declare-fun fun_app$n (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_fun$ B_tree_a_b_fun_sum$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) +(declare-fun fun_app$o (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) +(declare-fun fun_app$p (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$ B$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$) +(declare-fun fun_app$q (B_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$ B$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) +(declare-fun fun_app$r (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$) +(declare-fun fun_app$s (B_tree_b_tree_fun_b_tree_b_tree_fun_fun$ B_tree_b_tree_fun$) B_tree_b_tree_fun$) +(declare-fun fun_app$t (B_b_fun_b_b_fun_fun$ B_b_fun$) B_b_fun$) +(declare-fun fun_app$u (A_b_fun_a_b_fun_fun$ A_b_fun$) A_b_fun$) +(declare-fun fun_app$v (A_a_fun_a_b_fun_fun$ A_a_fun$) A_b_fun$) +(declare-fun fun_app$w (B_tree_a_b_fun_sum_b_tree_fun$ B_tree_a_b_fun_sum$) B_tree$) +(declare-fun fun_app$x (B_tree_b_tree_fun$ B_tree$) B_tree$) +(declare-fun fun_app$y (B_tree_b_tree_fun_b_tree_fun$ B_tree_b_tree_fun$) B_tree$) +(declare-fun fun_app$z (B_b_fun_b_fun$ B_b_fun$) B$) +(declare-fun map_prod$ (B_b_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun map_sum$a (A_tree_b_tree_fun$ B_tree_b_tree_fun$) A_tree_b_tree_sum_b_tree_b_tree_sum_fun$) +(declare-fun map_sum$b (A_tree_a_tree_fun$ B_b_fun$) A_tree_b_sum_a_tree_b_sum_fun$) +(declare-fun map_sum$c (A_tree_a_tree_fun$ B_tree_b_tree_fun$) A_tree_b_tree_sum_a_tree_b_tree_sum_fun$) +(declare-fun map_sum$d (A_b_fun$ A_b_fun$) A_a_sum_b_b_sum_fun$) +(declare-fun map_sum$e (A_a_fun$ A_a_fun$) A_a_sum_a_a_sum_fun$) +(declare-fun map_sum$f (B_b_fun$ B_b_fun$) B_b_sum_b_b_sum_fun$) +(declare-fun map_sum$g (B_b_fun$ B_tree_b_tree_fun$) B_b_tree_sum_b_b_tree_sum_fun$) +(declare-fun map_sum$h (B_tree_b_tree_fun$ B_b_fun$) B_tree_b_sum_b_tree_b_sum_fun$) +(declare-fun map_sum$i (B_tree_b_tree_fun$ B_tree_b_tree_fun$) B_tree_b_tree_sum_b_tree_b_tree_sum_fun$) +(declare-fun map_sum$j (B_tree_b_tree_fun$) A_b_fun_a_b_fun_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_fun$) +(declare-fun map_sum$k (A_b_fun$ B_b_fun$) A_b_sum_b_b_sum_fun$) +(declare-fun map_sum$l (B_tree_b_fun$ B_b_fun$) B_tree_b_sum_b_b_sum_fun$) +(declare-fun map_sum$m (B_b_tree_fun$ B_b_fun$) B_b_sum_b_tree_b_sum_fun$) +(declare-fun map_sum$n (A_b_fun$ B_tree_b_tree_fun$) A_b_tree_sum_b_b_tree_sum_fun$) +(declare-fun map_sum$o (B_tree_b_fun$ B_tree_b_tree_fun$) B_tree_b_tree_sum_b_b_tree_sum_fun$) +(declare-fun map_sum$p (B_b_tree_fun$ B_tree_b_tree_fun$) B_b_tree_sum_b_tree_b_tree_sum_fun$) +(declare-fun map_tree$ (A_b_fun$) A_tree_b_tree_fun$) +(declare-fun uncurry$a (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) +(declare-fun uncurry$b (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$) +(declare-fun uncurry$c (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_b_tree_prod_prod_fun_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun uncurry$d (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_b_tree_prod_fun_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) +(declare-fun case_sum$a (B_b_fun$ B_b_fun$) B_b_sum_b_fun$) +(declare-fun case_sum$b (A_b_fun$ B_tree_b_fun$ A_b_tree_sum$) B$) +(declare-fun case_sum$c (A_b_fun$ B_b_fun$ A_b_sum$) B$) +(declare-fun case_sum$d (A_b_fun$ A_b_fun$) A_a_sum_b_fun$) +(declare-fun case_sum$e (A_a_fun$) A_a_fun_a_a_sum_a_fun_fun$) +(declare-fun case_sum$f (B_tree_bool_fun$) A_b_fun_bool_fun_b_tree_a_b_fun_sum_bool_fun_fun$) +(declare-fun case_sum$g (B_tree_b_fun$ B_b_fun$ B_tree_b_sum$) B$) +(declare-fun case_sum$h (B_b_fun$ B_tree_b_fun$) B_b_tree_sum_b_fun$) +(declare-fun case_sum$i (B_tree_b_tree_fun$ B_b_tree_fun$) B_tree_b_sum_b_tree_fun$) +(declare-fun case_sum$j (B_b_tree_fun$ B_b_tree_fun$ B_b_sum$) B_tree$) +(declare-fun case_sum$k (B_tree_b_fun$ B_tree_b_fun$ B_tree_b_tree_sum$) B$) +(declare-fun case_sum$l (B_tree_b_tree_fun$ B_tree_b_tree_fun$) B_tree_b_tree_sum_b_tree_fun$) +(declare-fun case_sum$m (B_b_tree_fun$ B_tree_b_tree_fun$ B_b_tree_sum$) B_tree$) +(declare-fun ctor_tree$ (B_b_tree_b_tree_prod_prod$) B_tree$) +(declare-fun dtor_tree$ () B_tree_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun fun_app$aa (B_b_fun$ B$) B$) +(declare-fun fun_app$ab (A_b_fun_b_fun$ A_b_fun$) B$) +(declare-fun fun_app$ac (A_b_fun$ A$) B$) +(declare-fun fun_app$ad (B_tree_a_b_fun_sum_bool_fun$ B_tree_a_b_fun_sum$) Bool) +(declare-fun fun_app$ae (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_bool_fun_fun$ B_tree_a_b_fun_sum$) B_tree_a_b_fun_sum_bool_fun$) +(declare-fun fun_app$af (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_bool_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) Bool) +(declare-fun fun_app$ag (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_bool_fun_fun$ B$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_bool_fun$) +(declare-fun fun_app$ah (A_b_fun_b_tree_fun_a_b_fun_b_tree_fun_fun$ A_b_fun_b_tree_fun$) A_b_fun_b_tree_fun$) +(declare-fun fun_app$ai (B_tree_a_b_fun_sum_b_tree_b_tree_prod_fun$ B_tree_a_b_fun_sum$) B_tree_b_tree_prod$) +(declare-fun fun_app$aj (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_b_tree_prod_fun_fun$ B_tree_a_b_fun_sum$) B_tree_a_b_fun_sum_b_tree_b_tree_prod_fun$) +(declare-fun fun_app$ak (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_b_tree_prod_prod_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_b_tree_b_tree_prod_prod$) +(declare-fun fun_app$al (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_b_tree_prod_prod_fun_fun$ B$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun fun_app$am (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_tree_b_tree_prod$) +(declare-fun fun_app$an (A_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$ A_b_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) +(declare-fun fun_app$ao (A_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$ A_b_fun_a_b_fun_fun$) A_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$) +(declare-fun fun_app$ap (A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun$ A_b_fun_b_tree_fun$) A_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun$) +(declare-fun fun_app$aq (A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun$ A_b_fun_bool_fun$) A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun$) +(declare-fun fun_app$ar (A_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun_fun$ A_b_fun_a_b_fun_fun$) A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun$) +(declare-fun fun_app$as (A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun_fun_fun$ A_b_fun_b_tree_fun$) A_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun_fun$) +(declare-fun fun_app$at (A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun_fun_fun_fun$ A_b_fun_bool_fun$) A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun_fun_fun_fun_fun_fun$) +(declare-fun fun_app$au (A_b_fun_bool_fun$ A_b_fun$) Bool) +(declare-fun fun_app$av (B_tree_b_fun$ B_tree$) B$) +(declare-fun fun_app$aw (A_a_fun$ A$) A$) +(declare-fun fun_app$ax (B_tree_b_tree_prod_b_tree_b_tree_prod_fun$ B_tree_b_tree_prod$) B_tree_b_tree_prod$) +(declare-fun fun_app$ay (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) +(declare-fun fun_app$az (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) B_b_tree_b_tree_prod_prod$) +(declare-fun fun_app$ba (B_tree_a_b_fun_sum_b_tree_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_fun$ B_tree_a_b_fun_sum_b_tree_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) +(declare-fun fun_app$bb (A_b_fun_b_tree_fun_b_tree_a_b_fun_sum_b_tree_fun_fun$ A_b_fun_b_tree_fun$) B_tree_a_b_fun_sum_b_tree_fun$) +(declare-fun fun_app$bc (B_tree_b_b_tree_b_tree_prod_prod_fun$ B_tree$) B_b_tree_b_tree_prod_prod$) +(declare-fun fun_app$bd (A_tree_a_a_tree_a_tree_prod_prod_fun$ A_tree$) A_a_tree_a_tree_prod_prod$) +(declare-fun fun_app$be (B_tree_a_tree_fun$ B_tree$) A_tree$) +(declare-fun fun_app$bf (A_tree_a_tree_fun$ A_tree$) A_tree$) +(declare-fun fun_app$bg (A_b_fun_a_a_fun_fun$ A_b_fun$) A_a_fun$) +(declare-fun fun_app$bh (A_a_fun_a_a_fun_fun$ A_a_fun$) A_a_fun$) +(declare-fun fun_app$bi (B_a_fun_b_b_fun_fun$ B_a_fun$) B_b_fun$) +(declare-fun fun_app$bj (B_a_fun_b_a_fun_fun$ B_a_fun$) B_a_fun$) +(declare-fun fun_app$bk (B_b_fun_b_a_fun_fun$ B_b_fun$) B_a_fun$) +(declare-fun fun_app$bl (A_tree_b_b_prod_tree_fun$ A_tree$) B_b_prod_tree$) +(declare-fun fun_app$bm (A_a_fun_a_b_b_prod_fun_fun$ A_a_fun$) A_b_b_prod_fun$) +(declare-fun fun_app$bn (A_a_sum_tree_a_tree_fun$ A_a_sum_tree$) A_tree$) +(declare-fun fun_app$bo (A_a_sum_tree_b_tree_fun$ A_a_sum_tree$) B_tree$) +(declare-fun fun_app$bp (A_tree_b_tree_fun_a_tree_b_tree_fun_fun$ A_tree_b_tree_fun$) A_tree_b_tree_fun$) +(declare-fun fun_app$bq (A_tree_a_tree_fun_a_tree_b_tree_fun_fun$ A_tree_a_tree_fun$) A_tree_b_tree_fun$) +(declare-fun fun_app$br (A_tree_b_tree_fun_a_tree_a_tree_fun_fun$ A_tree_b_tree_fun$) A_tree_a_tree_fun$) +(declare-fun fun_app$bs (A_tree_a_tree_fun_a_tree_a_tree_fun_fun$ A_tree_a_tree_fun$) A_tree_a_tree_fun$) +(declare-fun fun_app$bt (B_tree_a_tree_fun_b_tree_b_tree_fun_fun$ B_tree_a_tree_fun$) B_tree_b_tree_fun$) +(declare-fun fun_app$bu (B_tree_tree_b_tree_tree_fun$ B_tree_tree$) B_tree_tree$) +(declare-fun fun_app$bv (B_b_sum_tree_b_b_sum_tree_fun$ B_b_sum_tree$) B_b_sum_tree$) +(declare-fun fun_app$bw (B_tree_b_tree_fun_tree_b_tree_b_tree_fun_tree_fun$ B_tree_b_tree_fun_tree$) B_tree_b_tree_fun_tree$) +(declare-fun fun_app$bx (B_b_fun_tree_b_b_fun_tree_fun$ B_b_fun_tree$) B_b_fun_tree$) +(declare-fun fun_app$by (A_b_fun_tree_a_b_fun_tree_fun$ A_b_fun_tree$) A_b_fun_tree$) +(declare-fun fun_app$bz (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) +(declare-fun fun_app$ca (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$ B_tree_a_b_fun_sum$) B_tree_a_b_fun_sum$) +(declare-fun fun_app$cb (B_b_tree_a_b_fun_sum_fun$ B$) B_tree_a_b_fun_sum$) +(declare-fun fun_app$cc (B_tree_a_b_fun_sum_b_fun$ B_tree_a_b_fun_sum$) B$) +(declare-fun fun_app$cd (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) +(declare-fun fun_app$ce (B_b_prod_b_b_prod_fun$ B_b_prod$) B_b_prod$) +(declare-fun fun_app$cf (A_a_prod_b_b_prod_fun$ A_a_prod$) B_b_prod$) +(declare-fun fun_app$cg (A_a_prod_a_a_prod_fun$ A_a_prod$) A_a_prod$) +(declare-fun fun_app$ch (A_tree_b_fun$ A_tree$) B$) +(declare-fun fun_app$ci (B_b_sum_b_fun$ B_b_sum$) B$) +(declare-fun fun_app$cj (A_a_sum_b_fun$ A_a_sum$) B$) +(declare-fun fun_app$ck (A_a_sum_a_fun$ A_a_sum$) A$) +(declare-fun fun_app$cl (A_a_fun_a_a_sum_a_fun_fun$ A_a_fun$) A_a_sum_a_fun$) +(declare-fun fun_app$cm (B_b_tree_b_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$ B_b_tree_b_tree_prod_prod$) B_b_tree_b_tree_prod_prod$) +(declare-fun fun_app$cn (B_b_sum_b_b_sum_fun$ B_b_sum$) B_b_sum$) +(declare-fun fun_app$co (B_a_fun$ B$) A$) +(declare-fun fun_app$cp (A_b_b_prod_fun$ A$) B_b_prod$) +(declare-fun fun_app$cq (B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_bool_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) Bool) +(declare-fun fun_app$cr (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) +(declare-fun fun_app$cs (B_tree_b_tree_fun_b_tree_b_tree_prod_b_tree_b_tree_prod_fun_fun$ B_tree_b_tree_fun$) B_tree_b_tree_prod_b_tree_b_tree_prod_fun$) +(declare-fun fun_app$ct (B_tree_a_b_fun_sum_b_tree_fun_b_tree_a_b_fun_sum_b_tree_fun_fun$ B_tree_a_b_fun_sum_b_tree_fun$) B_tree_a_b_fun_sum_b_tree_fun$) +(declare-fun fun_app$cu (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) +(declare-fun fun_app$cv (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_b_tree_a_b_fun_sum_b_tree_fun_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) B_tree_a_b_fun_sum_b_tree_fun$) +(declare-fun fun_app$cw (B_b_tree_prod_b_b_tree_prod_fun$ B_b_tree_prod$) B_b_tree_prod$) +(declare-fun fun_app$cx (B_tree_b_prod_b_tree_b_prod_fun$ B_tree_b_prod$) B_tree_b_prod$) +(declare-fun fun_app$cy (A_b_fun_b_tree_a_b_fun_sum_fun_a_b_fun_b_tree_fun_fun$ A_b_fun_b_tree_a_b_fun_sum_fun$) A_b_fun_b_tree_fun$) +(declare-fun fun_app$cz (A_a_fun_a_a_tree_fun_fun$ A_a_fun$) A_a_tree_fun$) +(declare-fun fun_app$da (A_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun$ A_a_tree_fun$) A_a_fun_a_a_tree_fun_fun$) +(declare-fun fun_app$db (A_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun$ A_bool_fun$) A_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun$) +(declare-fun fun_app$dc (A_a_fun_a_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun_fun$ A_a_fun$) A_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun$) +(declare-fun fun_app$dd (A_a_tree_fun_a_a_fun_a_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun_fun_fun$ A_a_tree_fun$) A_a_fun_a_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun_fun$) +(declare-fun fun_app$de (A_bool_fun_a_a_tree_fun_a_a_fun_a_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun_fun_fun_fun$ A_bool_fun$) A_a_tree_fun_a_a_fun_a_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun_fun_fun$) +(declare-fun fun_app$df (A_b_fun_bool_fun_b_tree_a_b_fun_sum_bool_fun_fun$ A_b_fun_bool_fun$) B_tree_a_b_fun_sum_bool_fun$) +(declare-fun fun_app$dg (B_tree_bool_fun$ B_tree$) Bool) +(declare-fun fun_app$dh (A_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun$ A_b_fun_a_b_fun_fun$) A_b_fun_b_tree_fun$) +(declare-fun fun_app$di (A_b_fun_a_b_fun_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun$ A_b_fun_a_b_fun_fun$) A_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun$) +(declare-fun fun_app$dj (A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun$ A_b_fun_b_tree_fun$) A_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun$) +(declare-fun fun_app$dk (A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun$ A_b_fun_bool_fun$) A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun$) +(declare-fun fun_app$dl (A_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun_fun$ A_b_fun_a_b_fun_fun$) A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun$) +(declare-fun fun_app$dm (A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun_fun_fun$ A_b_fun_b_tree_fun$) A_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun_fun$) +(declare-fun fun_app$dn (A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun_fun_fun_fun$ A_b_fun_bool_fun$) A_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun_fun_fun$) +(declare-fun fun_app$do (B_tree_b_tree_a_b_fun_sum_fun_b_tree_b_tree_fun_fun$ B_tree_b_tree_a_b_fun_sum_fun$) B_tree_b_tree_fun$) +(declare-fun fun_app$dp (A_a_tree_fun$ A$) A_tree$) +(declare-fun fun_app$dq (A_a_fun_a_a_fun_a_a_tree_fun_fun_fun$ A_a_fun$) A_a_fun_a_a_tree_fun_fun$) +(declare-fun fun_app$dr (A_a_a_prod_prod_b_b_b_prod_prod_fun$ A_a_a_prod_prod$) B_b_b_prod_prod$) +(declare-fun fun_app$ds (A_a_a_prod_prod_a_a_a_prod_prod_fun$ A_a_a_prod_prod$) A_a_a_prod_prod$) +(declare-fun fun_app$dt (B_b_b_prod_prod_b_b_b_prod_prod_fun$ B_b_b_prod_prod$) B_b_b_prod_prod$) +(declare-fun fun_app$du (B_tree_b_b_prod_prod_b_tree_b_b_prod_prod_fun$ B_tree_b_b_prod_prod$) B_tree_b_b_prod_prod$) +(declare-fun fun_app$dv (B_tree_b_tree_b_tree_prod_prod_b_tree_b_tree_b_tree_prod_prod_fun$ B_tree_b_tree_b_tree_prod_prod$) B_tree_b_tree_b_tree_prod_prod$) +(declare-fun fun_app$dw (B_a_tree_fun_b_b_tree_fun_fun$ B_a_tree_fun$) B_b_tree_fun$) +(declare-fun fun_app$dx (B_a_b_b_prod_prod_fun_b_a_b_b_prod_prod_fun_fun$ B_a_b_b_prod_prod_fun$) B_a_b_b_prod_prod_fun$) +(declare-fun fun_app$dy (B_tree_a_b_tree_b_tree_prod_prod_fun_b_tree_a_b_tree_b_tree_prod_prod_fun_fun$ B_tree_a_b_tree_b_tree_prod_prod_fun$) B_tree_a_b_tree_b_tree_prod_prod_fun$) +(declare-fun fun_app$dz (B_b_tree_fun$ B$) B_tree$) +(declare-fun fun_app$ea (B_b_fun_b_b_tree_fun_fun$ B_b_fun$) B_b_tree_fun$) +(declare-fun fun_app$eb (B_b_tree_fun_b_b_tree_fun_fun$ B_b_tree_fun$) B_b_tree_fun$) +(declare-fun fun_app$ec (B_tree_b_fun_b_tree_b_fun_fun$ B_tree_b_fun$) B_tree_b_fun$) +(declare-fun fun_app$ed (B_tree_b_tree_b_prod_fun$ B_tree$) B_tree_b_prod$) +(declare-fun fun_app$ee (B_b_b_tree_prod_fun$ B$) B_b_tree_prod$) +(declare-fun fun_app$ef (A_a_tree_a_tree_prod_prod_a_a_tree_a_tree_prod_prod_fun$ A_a_tree_a_tree_prod_prod$) A_a_tree_a_tree_prod_prod$) +(declare-fun fun_app$eg (A_a_tree_a_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$ A_a_tree_a_tree_prod_prod$) B_b_tree_b_tree_prod_prod$) +(declare-fun fun_app$eh (A_b_fun_a_b_b_prod_fun_fun$ A_b_fun$) A_b_b_prod_fun$) +(declare-fun fun_app$ei (A_a_a_prod_fun_a_b_b_prod_fun_fun$ A_a_a_prod_fun$) A_b_b_prod_fun$) +(declare-fun fun_app$ej (B_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun_b_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun_fun$ B_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun$) B_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun$) +(declare-fun fun_app$ek (B_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun_b_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun_fun$ B_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun$) B_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun$) +(declare-fun fun_app$el (A_a_sum_b_b_sum_fun$ A_a_sum$) B_b_sum$) +(declare-fun fun_app$em (A_a_sum_a_a_sum_fun$ A_a_sum$) A_a_sum$) +(declare-fun fun_app$en (B_b_tree_sum_b_b_tree_sum_fun$ B_b_tree_sum$) B_b_tree_sum$) +(declare-fun fun_app$eo (B_tree_b_sum_b_tree_b_sum_fun$ B_tree_b_sum$) B_tree_b_sum$) +(declare-fun fun_app$ep (B_tree_b_tree_sum_b_tree_b_tree_sum_fun$ B_tree_b_tree_sum$) B_tree_b_tree_sum$) +(declare-fun fun_app$eq (A_b_fun_a_b_fun_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_fun$ A_b_fun_a_b_fun_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) +(declare-fun fun_app$er (B_tree_b_tree_fun_b_tree_b_fun_fun$ B_tree_b_tree_fun$) B_tree_b_fun$) +(declare-fun fun_app$es (B_b_tree_sum_b_fun$ B_b_tree_sum$) B$) +(declare-fun fun_app$et (B_tree_b_sum_b_tree_fun$ B_tree_b_sum$) B_tree$) +(declare-fun fun_app$eu (B_tree_b_tree_sum_b_tree_fun$ B_tree_b_tree_sum$) B_tree$) +(declare-fun fun_app$ev (A_bool_fun$ A$) Bool) +(declare-fun fun_app$ew (B_bool_fun$ B$) Bool) +(declare-fun fun_app$ex (B_b_bool_fun_fun$ B$) B_bool_fun$) +(declare-fun fun_app$ey (B_b_fun_b_b_bool_fun_fun_fun$ B_b_fun$) B_b_bool_fun_fun$) +(declare-fun fun_app$ez (B_b_b_fun_b_b_bool_fun_fun_fun_fun$ B$) B_b_fun_b_b_bool_fun_fun_fun$) +(declare-fun fun_app$fa (B_b_fun_b_b_b_fun_b_b_bool_fun_fun_fun_fun_fun$ B_b_fun$) B_b_b_fun_b_b_bool_fun_fun_fun_fun$) +(declare-fun fun_app$fb (B_tree_b_tree_bool_fun_fun$ B_tree$) B_tree_bool_fun$) +(declare-fun fun_app$fc (B_tree_b_tree_fun_b_tree_b_tree_bool_fun_fun_fun$ B_tree_b_tree_fun$) B_tree_b_tree_bool_fun_fun$) +(declare-fun fun_app$fd (B_tree_b_tree_b_tree_fun_b_tree_b_tree_bool_fun_fun_fun_fun$ B_tree$) B_tree_b_tree_fun_b_tree_b_tree_bool_fun_fun_fun$) +(declare-fun fun_app$fe (B_tree_b_tree_fun_b_tree_b_tree_b_tree_fun_b_tree_b_tree_bool_fun_fun_fun_fun_fun$ B_tree_b_tree_fun$) B_tree_b_tree_b_tree_fun_b_tree_b_tree_bool_fun_fun_fun_fun$) +(declare-fun fun_app$ff (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_bool_fun_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_bool_fun$) +(declare-fun fun_app$fg (B_b_b_prod_fun_b_b_fun_fun$ B_b_b_prod_fun$) B_b_fun$) +(declare-fun fun_app$fh (B_tree_b_tree_b_tree_prod_fun_b_tree_b_tree_fun_fun$ B_tree_b_tree_b_tree_prod_fun$) B_tree_b_tree_fun$) +(declare-fun fun_app$fi (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) +(declare-fun fun_app$fj (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun$) +(declare-fun map_prod$a (B_tree_a_b_fun_sum_b_tree_fun$) B_tree_a_b_fun_sum_b_tree_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun_fun$) +(declare-fun map_prod$b (B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun_fun$) +(declare-fun map_prod$c (B_b_tree_a_b_fun_sum_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun$ B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) +(declare-fun map_prod$d (B_tree_a_b_fun_sum_b_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) +(declare-fun map_prod$e (B_b_fun$ B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$) +(declare-fun map_prod$f (B_b_fun$ B_b_fun$) B_b_prod_b_b_prod_fun$) +(declare-fun map_prod$g (A_b_fun$ A_b_fun$) A_a_prod_b_b_prod_fun$) +(declare-fun map_prod$h (A_a_fun$ A_a_fun$) A_a_prod_a_a_prod_fun$) +(declare-fun map_prod$i (A_tree_b_fun$ A_tree_b_fun$ A_tree_a_tree_prod$) B_b_prod$) +(declare-fun map_prod$j (B_b_fun$ B_tree_b_tree_prod_b_tree_b_tree_prod_fun$) B_b_tree_b_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun map_prod$k (B_tree_b_tree_fun$) B_tree_b_tree_fun_b_tree_b_tree_prod_b_tree_b_tree_prod_fun_fun$) +(declare-fun map_prod$l (B_b_fun$ B_tree_b_tree_fun$) B_b_tree_prod_b_b_tree_prod_fun$) +(declare-fun map_prod$m (B_tree_b_tree_fun$ B_b_fun$) B_tree_b_prod_b_tree_b_prod_fun$) +(declare-fun map_prod$n (B_b_tree_fun$ B_b_fun$) B_b_prod_b_tree_b_prod_fun$) +(declare-fun map_prod$o (B_tree_b_fun$ B_b_fun$) B_tree_b_prod_b_b_prod_fun$) +(declare-fun map_prod$p (B_b_tree_fun$ B_tree_b_tree_fun$) B_b_tree_prod_b_tree_b_tree_prod_fun$) +(declare-fun map_prod$q (B_tree_b_fun$ B_tree_b_tree_fun$) B_tree_b_tree_prod_b_b_tree_prod_fun$) +(declare-fun map_tree$a (B_b_fun$) B_tree_b_tree_fun$) +(declare-fun map_tree$b (B_a_fun$) B_tree_a_tree_fun$) +(declare-fun map_tree$c (A_a_fun$) A_tree_a_tree_fun$) +(declare-fun map_tree$d (A_b_b_prod_fun$) A_tree_b_b_prod_tree_fun$) +(declare-fun map_tree$e (A_a_sum_a_fun$) A_a_sum_tree_a_tree_fun$) +(declare-fun map_tree$f (A_a_sum_b_fun$) A_a_sum_tree_b_tree_fun$) +(declare-fun map_tree$g (B_tree_b_tree_fun$) B_tree_tree_b_tree_tree_fun$) +(declare-fun map_tree$h (B_b_sum_b_b_sum_fun$) B_b_sum_tree_b_b_sum_tree_fun$) +(declare-fun map_tree$i (B_tree_b_tree_fun_b_tree_b_tree_fun_fun$) B_tree_b_tree_fun_tree_b_tree_b_tree_fun_tree_fun$) +(declare-fun map_tree$j (B_b_fun_b_b_fun_fun$) B_b_fun_tree_b_b_fun_tree_fun$) +(declare-fun map_tree$k (A_b_fun_a_b_fun_fun$) A_b_fun_tree_a_b_fun_tree_fun$) +(declare-fun pred_tree$ (A_bool_fun$ A_tree$) Bool) +(declare-fun corec_tree$ (A_a_fun$) A_bool_fun_a_a_tree_fun_a_a_fun_a_bool_fun_a_a_tree_fun_a_a_fun_a_a_tree_fun_fun_fun_fun_fun_fun_fun$) +(declare-fun ctor_tree$a (A_a_tree_a_tree_prod_prod$) A_tree$) +(declare-fun dtor_tree$a () A_tree_a_a_tree_a_tree_prod_prod_fun$) +(declare-fun corec_tree$a (A_b_fun$ A_bool_fun$ A_b_tree_fun$ A_a_fun$ A_bool_fun$ A_b_tree_fun$ A_a_fun$) A_b_tree_fun$) +(declare-fun corec_tree$b (A_b_fun_b_fun$) A_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_bool_fun_a_b_fun_b_tree_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun_fun_fun_fun_fun$) +(declare-fun unfold_tree$ (A_b_fun_b_fun$) A_b_fun_a_b_fun_fun_a_b_fun_a_b_fun_fun_a_b_fun_b_tree_fun_fun_fun$) +(declare-fun map_pre_tree$ (B_b_fun$ B_tree_a_b_fun_sum_b_tree_fun$) B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun tree_recurse$ (B_b_fun$) B_b_fun_b_b_tree_fun_fun$) +(declare-fun unfold_tree$a (A_a_fun$) A_a_fun_a_a_fun_a_a_tree_fun_fun_fun$) +(declare-fun unfold_tree$b (A_b_fun$ A_a_fun$ A_a_fun$ A$) B_tree$) +(declare-fun unfold_tree$c (B_b_fun_b_fun$ B_b_fun_b_b_fun_fun$ B_b_fun_b_b_fun_fun$ B_b_fun$) B_tree$) +(declare-fun unfold_tree$d (B_tree_b_tree_fun_b_tree_fun$ B_tree_b_tree_fun_b_tree_b_tree_fun_fun$ B_tree_b_tree_fun_b_tree_b_tree_fun_fun$ B_tree_b_tree_fun$) B_tree_tree$) +(declare-fun map_pre_tree$a (A_b_fun$ A_b_fun$) A_a_a_prod_prod_b_b_b_prod_prod_fun$) +(declare-fun map_pre_tree$b (A_a_fun$ A_a_fun$) A_a_a_prod_prod_a_a_a_prod_prod_fun$) +(declare-fun map_pre_tree$c (B_b_fun$ B_b_fun$) B_b_b_prod_prod_b_b_b_prod_prod_fun$) +(declare-fun map_pre_tree$d (B_b_fun$ B_tree_b_tree_fun$) B_b_tree_b_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun map_pre_tree$e (B_tree_b_tree_fun$ B_b_fun$) B_tree_b_b_prod_prod_b_tree_b_b_prod_prod_fun$) +(declare-fun map_pre_tree$f (B_tree_b_tree_fun$ B_tree_b_tree_fun$) B_tree_b_tree_b_tree_prod_prod_b_tree_b_tree_b_tree_prod_prod_fun$) +(declare-fun map_pre_tree$g (A_b_fun$ B_b_fun$) A_b_b_prod_prod_b_b_b_prod_prod_fun$) +(declare-fun map_pre_tree$h (A_b_fun$ B_tree_b_tree_fun$) A_b_tree_b_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun map_pre_tree$i (A_a_fun$ B_b_fun$) A_b_b_prod_prod_a_b_b_prod_prod_fun$) +(declare-fun map_pre_tree$j (A_a_fun$ B_tree_b_tree_fun$) A_b_tree_b_tree_prod_prod_a_b_tree_b_tree_prod_prod_fun$) +(declare-fun map_pre_tree$k (A_a_fun$ A_tree_a_tree_fun$) A_a_tree_a_tree_prod_prod_a_a_tree_a_tree_prod_prod_fun$) +(declare-fun map_pre_tree$l (A_b_fun$ A_tree_b_tree_fun$) A_a_tree_a_tree_prod_prod_b_b_tree_b_tree_prod_prod_fun$) +(declare-fun map_pre_tree$m (A_b_fun$ A_tree_b_sum_b_tree_b_sum_fun$) A_a_tree_b_sum_a_tree_b_sum_prod_prod_b_b_tree_b_sum_b_tree_b_sum_prod_prod_fun$) +(declare-fun map_pre_tree$n (A_b_fun$ A_tree_b_tree_sum_b_tree_b_tree_sum_fun$) A_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_b_b_tree_b_tree_sum_b_tree_b_tree_sum_prod_prod_fun$) +(declare-fun map_pre_tree$o (A_a_fun$ A_tree_b_sum_a_tree_b_sum_fun$) A_a_tree_b_sum_a_tree_b_sum_prod_prod_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun$) +(declare-fun map_pre_tree$p (A_a_fun$ A_tree_b_tree_sum_a_tree_b_tree_sum_fun$) A_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun$) +(declare-fun tree_recurse$a (B_tree_b_tree_fun$ B_tree_b_tree_fun$ B_tree$) B_tree_tree$) +(declare-fun tree_recurse$b (A_a_fun$) A_a_fun_a_a_tree_fun_fun$) +(declare-fun dtor_corec_tree$ (A_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$) A_b_fun_b_tree_fun$) +(declare-fun dtor_corec_tree$a (B_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun$) B_a_tree_fun$) +(declare-fun dtor_corec_tree$b (B_b_b_tree_b_sum_b_tree_b_sum_prod_prod_fun$) B_b_tree_fun$) +(declare-fun dtor_corec_tree$c (B_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun$) B_tree_a_tree_fun$) +(declare-fun dtor_corec_tree$d (B_tree_b_b_tree_b_tree_sum_b_tree_b_tree_sum_prod_prod_fun$) B_tree_b_tree_fun$) +(declare-fun dtor_unfold_tree$ (B_a_b_b_prod_prod_fun$) B_a_tree_fun$) +(declare-fun dtor_unfold_tree$a (B_b_b_b_prod_prod_fun$) B_b_tree_fun$) +(declare-fun dtor_unfold_tree$b (B_tree_a_b_tree_b_tree_prod_prod_fun$) B_tree_a_tree_fun$) +(declare-fun dtor_unfold_tree$c (B_tree_b_b_tree_b_tree_prod_prod_fun$) B_tree_b_tree_fun$) +(declare-fun iso_tuple_update_accessor_eq_assist$ (B_b_fun_b_b_fun_fun$) B_b_fun_b_b_b_fun_b_b_bool_fun_fun_fun_fun_fun$) +(declare-fun iso_tuple_update_accessor_eq_assist$a (B_tree_b_tree_fun_b_tree_b_tree_fun_fun$) B_tree_b_tree_fun_b_tree_b_tree_b_tree_fun_b_tree_b_tree_bool_fun_fun_fun_fun_fun$) +(assert (forall ((?v0 B_tree$)) (! (= (fun_app$ uvk$ ?v0) (pair$ ?v0 ?v0)) :pattern ((fun_app$ uvk$ ?v0))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum$)) (! (= (fun_app$a uvl$ ?v0) (pair$b ?v0 ?v0)) :pattern ((fun_app$a uvl$ ?v0))))) +(assert (forall ((?v0 B$)) (! (= (fun_app$b uvj$ ?v0) (pair$f ?v0 ?v0)) :pattern ((fun_app$b uvj$ ?v0))))) +(assert (forall ((?v0 A_b_fun$)) (! (= (fun_app$c uu$ ?v0) (fun_app$d (map_tree$ ?v0) t$)) :pattern ((fun_app$c uu$ ?v0))))) +(assert (forall ((?v0 B_tree_b_tree_prod$)) (! (= (fun_app$e uvg$ ?v0) (snd$ ?v0)) :pattern ((fun_app$e uvg$ ?v0))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fun_app$f uvh$ ?v0) (snd$b ?v0)) :pattern ((fun_app$f uvh$ ?v0))))) +(assert (forall ((?v0 B_b_tree_b_tree_prod_prod$)) (! (= (fun_app$g uve$ ?v0) (snd$a ?v0)) :pattern ((fun_app$g uve$ ?v0))))) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (! (= (fun_app$h uvf$ ?v0) (snd$c ?v0)) :pattern ((fun_app$h uvf$ ?v0))))) +(assert (forall ((?v0 B_b_prod$)) (! (= (fun_app$i uvi$ ?v0) (snd$f ?v0)) :pattern ((fun_app$i uvi$ ?v0))))) +(assert (forall ((?v0 B_tree_b_tree_prod$)) (! (= (fun_app$e uvc$ ?v0) (fst$ ?v0)) :pattern ((fun_app$e uvc$ ?v0))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fun_app$f uvd$ ?v0) (fst$b ?v0)) :pattern ((fun_app$f uvd$ ?v0))))) +(assert (forall ((?v0 B_b_tree_b_tree_prod_prod$)) (! (= (fun_app$j uva$ ?v0) (fst$a ?v0)) :pattern ((fun_app$j uva$ ?v0))))) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (! (= (fun_app$k uvb$ ?v0) (fst$c ?v0)) :pattern ((fun_app$k uvb$ ?v0))))) +(assert (forall ((?v0 B_b_prod$)) (! (= (fun_app$i uvm$ ?v0) (fst$f ?v0)) :pattern ((fun_app$i uvm$ ?v0))))) +(assert (forall ((?v0 A_b_fun$)) (! (= (fun_app$l uun$ ?v0) (inr$ ?v0)) :pattern ((fun_app$l uun$ ?v0))))) +(assert (forall ((?v0 B_tree$)) (! (= (fun_app$m uur$ ?v0) (inl$ ?v0)) :pattern ((fun_app$m uur$ ?v0))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$)) (! (= (fun_app$a (fun_app$n uvq$ ?v0) ?v1) (pair$b ?v0 ?v1)) :pattern ((fun_app$a (fun_app$n uvq$ ?v0) ?v1))))) +(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fun_app$o (fun_app$p uvp$ ?v0) ?v1) (pair$c ?v0 ?v1)) :pattern ((fun_app$o (fun_app$p uvp$ ?v0) ?v1))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v1 B$)) (! (= (fun_app$q (fun_app$r uvn$ ?v0) ?v1) (pair$c ?v1 ?v0)) :pattern ((fun_app$q (fun_app$r uvn$ ?v0) ?v1))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$)) (! (= (fun_app$a (fun_app$n uvo$ ?v0) ?v1) (pair$b ?v1 ?v0)) :pattern ((fun_app$a (fun_app$n uvo$ ?v0) ?v1))))) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_tree_fun$)) (! (= (fun_app$s (uux$ ?v0) ?v1) (fun_app$s (comp$ ?v1) ?v0)) :pattern ((fun_app$s (uux$ ?v0) ?v1))))) +(assert (forall ((?v0 B_b_fun$) (?v1 B_b_fun$)) (! (= (fun_app$t (uuv$ ?v0) ?v1) (fun_app$t (comp$a ?v1) ?v0)) :pattern ((fun_app$t (uuv$ ?v0) ?v1))))) +(assert (forall ((?v0 A_a_fun$) (?v1 A_b_fun$)) (! (= (fun_app$u (uup$ ?v0) ?v1) (fun_app$v (comp$b ?v1) ?v0)) :pattern ((fun_app$u (uup$ ?v0) ?v1))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 A_b_fun$)) (! (= (fun_app$c (uut$ ?v0) ?v1) (fun_app$w ?v0 (inr$ ?v1))) :pattern ((fun_app$c (uut$ ?v0) ?v1))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree$)) (! (= (fun_app$x (uus$ ?v0) ?v1) (fun_app$w ?v0 (inl$ ?v1))) :pattern ((fun_app$x (uus$ ?v0) ?v1))))) +(assert (forall ((?v0 B_tree$) (?v1 B_tree_b_tree_fun$)) (! (= (fun_app$y (uuw$ ?v0) ?v1) (fun_app$x ?v1 ?v0)) :pattern ((fun_app$y (uuw$ ?v0) ?v1))))) +(assert (forall ((?v0 B$) (?v1 B_b_fun$)) (! (= (fun_app$z (uuu$ ?v0) ?v1) (fun_app$aa ?v1 ?v0)) :pattern ((fun_app$z (uuu$ ?v0) ?v1))))) +(assert (forall ((?v0 A$) (?v1 A_b_fun$)) (! (= (fun_app$ab (uuo$ ?v0) ?v1) (fun_app$ac ?v1 ?v0)) :pattern ((fun_app$ab (uuo$ ?v0) ?v1))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (! (= (fun_app$ad (fun_app$ae (uuz$ ?v0) ?v1) ?v2) (member$ (pair$b ?v1 ?v2) ?v0)) :pattern ((fun_app$ad (fun_app$ae (uuz$ ?v0) ?v1) ?v2))))) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$) (?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fun_app$af (fun_app$ag (uuy$ ?v0) ?v1) ?v2) (member$a (pair$c ?v1 ?v2) ?v0)) :pattern ((fun_app$af (fun_app$ag (uuy$ ?v0) ?v1) ?v2))))) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree$)) (! (= (fun_app$x (fun_app$s (uul$ ?v0) ?v1) ?v2) (fun_app$x ?v0 (fun_app$x ?v1 ?v2))) :pattern ((fun_app$x (fun_app$s (uul$ ?v0) ?v1) ?v2))))) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_b_tree_fun$) (?v2 A_b_fun$)) (! (= (fun_app$c (fun_app$ah (uum$ ?v0) ?v1) ?v2) (fun_app$x ?v0 (fun_app$c ?v1 ?v2))) :pattern ((fun_app$c (fun_app$ah (uum$ ?v0) ?v1) ?v2))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$) (?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_a_b_fun_sum$)) (! (= (fun_app$ai (fun_app$aj (uvs$ ?v0 ?v1) ?v2) ?v3) (pair$ (fun_app$w ?v0 ?v2) (fun_app$w ?v1 ?v3))) :pattern ((fun_app$ai (fun_app$aj (uvs$ ?v0 ?v1) ?v2) ?v3))))) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) (?v2 B$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fun_app$ak (fun_app$al (uvr$ ?v0 ?v1) ?v2) ?v3) (pair$a (fun_app$aa ?v0 ?v2) (fun_app$am ?v1 ?v3))) :pattern ((fun_app$ak (fun_app$al (uvr$ ?v0 ?v1) ?v2) ?v3))))) +(assert (forall ((?v0 A_b_fun_b_fun$) (?v1 A_b_fun_bool_fun$) (?v2 A_b_fun_b_tree_fun$) (?v3 A_b_fun_a_b_fun_fun$) (?v4 A_b_fun_bool_fun$) (?v5 A_b_fun_b_tree_fun$) (?v6 A_b_fun_a_b_fun_fun$) (?v7 A_b_fun$)) (! (= (fun_app$an (fun_app$ao (fun_app$ap (fun_app$aq (fun_app$ar (fun_app$as (fun_app$at (uuq$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5) ?v6) ?v7) (id_bnf$ (pair$c (fun_app$ab ?v0 ?v7) (pair$b (ite (fun_app$au ?v1 ?v7) (inl$ (fun_app$c ?v2 ?v7)) (inr$ (fun_app$u ?v3 ?v7))) (ite (fun_app$au ?v4 ?v7) (inl$ (fun_app$c ?v5 ?v7)) (inr$ (fun_app$u ?v6 ?v7))))))) :pattern ((fun_app$an (fun_app$ao (fun_app$ap (fun_app$aq (fun_app$ar (fun_app$as (fun_app$at (uuq$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5) ?v6) ?v7))))) +(assert (forall ((?v0 B_tree$) (?v1 B_tree$)) (! (= (fun_app$x (uuh$ ?v0) ?v1) ?v0) :pattern ((fun_app$x (uuh$ ?v0) ?v1))))) +(assert (forall ((?v0 B_tree$) (?v1 A_b_fun$)) (! (= (fun_app$c (uui$ ?v0) ?v1) ?v0) :pattern ((fun_app$c (uui$ ?v0) ?v1))))) +(assert (forall ((?v0 B$) (?v1 B_tree$)) (! (= (fun_app$av (uuf$ ?v0) ?v1) ?v0) :pattern ((fun_app$av (uuf$ ?v0) ?v1))))) +(assert (forall ((?v0 B$) (?v1 B$)) (! (= (fun_app$aa (uud$ ?v0) ?v1) ?v0) :pattern ((fun_app$aa (uud$ ?v0) ?v1))))) +(assert (forall ((?v0 B$) (?v1 A$)) (! (= (fun_app$ac (uue$ ?v0) ?v1) ?v0) :pattern ((fun_app$ac (uue$ ?v0) ?v1))))) +(assert (forall ((?v0 A$) (?v1 A$)) (! (= (fun_app$aw (uug$ ?v0) ?v1) ?v0) :pattern ((fun_app$aw (uug$ ?v0) ?v1))))) +(assert (forall ((?v0 B_tree$)) (! (= (fun_app$x uub$ ?v0) ?v0) :pattern ((fun_app$x uub$ ?v0))))) +(assert (forall ((?v0 B_tree_b_tree_prod$)) (! (= (fun_app$ax uuj$ ?v0) ?v0) :pattern ((fun_app$ax uuj$ ?v0))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fun_app$ay uuk$ ?v0) ?v0) :pattern ((fun_app$ay uuk$ ?v0))))) +(assert (forall ((?v0 B$)) (! (= (fun_app$aa uua$ ?v0) ?v0) :pattern ((fun_app$aa uua$ ?v0))))) +(assert (forall ((?v0 A$)) (! (= (fun_app$aw uuc$ ?v0) ?v0) :pattern ((fun_app$aw uuc$ ?v0))))) +(assert (not (forall ((?v0 A_b_fun$)) (= (id_bnf$a (fun_app$az (map_prod$ id$ (fun_app$ba (map_prod$a (fun_app$bb (case_sum$ id$a) uu$)) (fun_app$bb (case_sum$ id$a) uu$))) (id_bnf$ (id_bnf$ (pair$c (fun_app$ac ?v0 x$) (pair$b (inr$ (fun_app$v (comp$b ?v0) l$)) (inr$ (fun_app$v (comp$b ?v0) r$)))))))) (fun_app$bc dtor_tree$ (fun_app$d (map_tree$ ?v0) t$))) ))) +(assert (forall ((?v0 A_tree$) (?v1 A_tree$)) (= (= (fun_app$bd dtor_tree$a ?v0) (fun_app$bd dtor_tree$a ?v1)) (= ?v0 ?v1)) )) +(assert (forall ((?v0 B_tree$) (?v1 B_tree$)) (= (= (fun_app$bc dtor_tree$ ?v0) (fun_app$bc dtor_tree$ ?v1)) (= ?v0 ?v1)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 A_b_fun$) (?v2 A_tree$)) (= (fun_app$x (map_tree$a ?v0) (fun_app$d (map_tree$ ?v1) ?v2)) (fun_app$d (map_tree$ (fun_app$u (comp$c ?v0) ?v1)) ?v2)) )) +(assert (forall ((?v0 B_a_fun$) (?v1 A_b_fun$) (?v2 A_tree$)) (= (fun_app$be (map_tree$b ?v0) (fun_app$d (map_tree$ ?v1) ?v2)) (fun_app$bf (map_tree$c (fun_app$bg (comp$d ?v0) ?v1)) ?v2)) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_tree$)) (= (fun_app$d (map_tree$ ?v0) (fun_app$bf (map_tree$c ?v1) ?v2)) (fun_app$d (map_tree$ (fun_app$v (comp$b ?v0) ?v1)) ?v2)) )) +(assert (forall ((?v0 A_a_fun$) (?v1 A_a_fun$) (?v2 A_tree$)) (= (fun_app$bf (map_tree$c ?v0) (fun_app$bf (map_tree$c ?v1) ?v2)) (fun_app$bf (map_tree$c (fun_app$bh (comp$e ?v0) ?v1)) ?v2)) )) +(assert (forall ((?v0 A_b_fun$) (?v1 B_a_fun$) (?v2 B_tree$)) (= (fun_app$d (map_tree$ ?v0) (fun_app$be (map_tree$b ?v1) ?v2)) (fun_app$x (map_tree$a (fun_app$bi (comp$f ?v0) ?v1)) ?v2)) )) +(assert (forall ((?v0 A_a_fun$) (?v1 B_a_fun$) (?v2 B_tree$)) (= (fun_app$bf (map_tree$c ?v0) (fun_app$be (map_tree$b ?v1) ?v2)) (fun_app$be (map_tree$b (fun_app$bj (comp$g ?v0) ?v1)) ?v2)) )) +(assert (forall ((?v0 B_a_fun$) (?v1 B_b_fun$) (?v2 B_tree$)) (= (fun_app$be (map_tree$b ?v0) (fun_app$x (map_tree$a ?v1) ?v2)) (fun_app$be (map_tree$b (fun_app$bk (comp$h ?v0) ?v1)) ?v2)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_b_fun$) (?v2 B_tree$)) (= (fun_app$x (map_tree$a ?v0) (fun_app$x (map_tree$a ?v1) ?v2)) (fun_app$x (map_tree$a (fun_app$t (comp$a ?v0) ?v1)) ?v2)) )) +(assert (forall ((?v0 A_b_b_prod_fun$) (?v1 A_a_fun$) (?v2 A_tree$)) (= (fun_app$bl (map_tree$d ?v0) (fun_app$bf (map_tree$c ?v1) ?v2)) (fun_app$bl (map_tree$d (fun_app$bm (comp$i ?v0) ?v1)) ?v2)) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_sum_a_fun$) (?v2 A_a_sum_tree$)) (= (fun_app$d (map_tree$ ?v0) (fun_app$bn (map_tree$e ?v1) ?v2)) (fun_app$bo (map_tree$f (comp$j ?v0 ?v1)) ?v2)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 A_b_fun$)) (= (map_tree$ (fun_app$u (comp$c ?v0) ?v1)) (fun_app$bp (comp$k (map_tree$a ?v0)) (map_tree$ ?v1))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$)) (= (map_tree$ (fun_app$v (comp$b ?v0) ?v1)) (fun_app$bq (comp$l (map_tree$ ?v0)) (map_tree$c ?v1))) )) +(assert (forall ((?v0 B_a_fun$) (?v1 A_b_fun$)) (= (map_tree$c (fun_app$bg (comp$d ?v0) ?v1)) (fun_app$br (comp$m (map_tree$b ?v0)) (map_tree$ ?v1))) )) +(assert (forall ((?v0 A_a_fun$) (?v1 A_a_fun$)) (= (map_tree$c (fun_app$bh (comp$e ?v0) ?v1)) (fun_app$bs (comp$n (map_tree$c ?v0)) (map_tree$c ?v1))) )) +(assert (forall ((?v0 A_a_fun$) (?v1 B_a_fun$)) (= (map_tree$b (fun_app$bj (comp$g ?v0) ?v1)) (comp$o (map_tree$c ?v0) (map_tree$b ?v1))) )) +(assert (forall ((?v0 B_a_fun$) (?v1 B_b_fun$)) (= (map_tree$b (fun_app$bk (comp$h ?v0) ?v1)) (comp$p (map_tree$b ?v0) (map_tree$a ?v1))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 B_a_fun$)) (= (map_tree$a (fun_app$bi (comp$f ?v0) ?v1)) (fun_app$bt (comp$q (map_tree$ ?v0)) (map_tree$b ?v1))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_b_fun$)) (= (map_tree$a (fun_app$t (comp$a ?v0) ?v1)) (fun_app$s (comp$ (map_tree$a ?v0)) (map_tree$a ?v1))) )) +(assert (forall ((?v0 A_b_b_prod_fun$) (?v1 A_a_fun$)) (= (map_tree$d (fun_app$bm (comp$i ?v0) ?v1)) (comp$r (map_tree$d ?v0) (map_tree$c ?v1))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_sum_a_fun$)) (= (map_tree$f (comp$j ?v0 ?v1)) (comp$s (map_tree$ ?v0) (map_tree$e ?v1))) )) +(assert (forall ((?v0 B_tree$)) (= (fun_app$x (map_tree$a uua$) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree_tree$)) (= (fun_app$bu (map_tree$g uub$) ?v0) ?v0) )) +(assert (forall ((?v0 A_tree$)) (= (fun_app$bf (map_tree$c uuc$) ?v0) ?v0) )) +(assert (forall ((?v0 B_b_sum_tree$)) (= (fun_app$bv (map_tree$h id$b) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree_b_tree_fun_tree$)) (= (fun_app$bw (map_tree$i id$c) ?v0) ?v0) )) +(assert (forall ((?v0 B_b_fun_tree$)) (= (fun_app$bx (map_tree$j id$d) ?v0) ?v0) )) +(assert (forall ((?v0 A_b_fun_tree$)) (= (fun_app$by (map_tree$k id$e) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree$)) (= (fun_app$x (map_tree$a id$) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree_tree$)) (= (fun_app$bu (map_tree$g id$a) ?v0) ?v0) )) +(assert (forall ((?v0 A_tree$)) (= (fun_app$bf (map_tree$c id$f) ?v0) ?v0) )) +(assert (= (map_tree$h id$b) id$g)) +(assert (= (map_tree$i id$c) id$h)) +(assert (= (map_tree$j id$d) id$i)) +(assert (= (map_tree$k id$e) id$j)) +(assert (= (map_tree$a id$) id$a)) +(assert (= (map_tree$g id$a) id$k)) +(assert (= (map_tree$c id$f) id$l)) +(assert (forall ((?v0 A_a_tree_a_tree_prod_prod$)) (=> (forall ((?v1 A_tree$)) (=> (= ?v0 (fun_app$bd dtor_tree$a ?v1)) false) ) false) )) +(assert (forall ((?v0 B_b_tree_b_tree_prod_prod$)) (=> (forall ((?v1 B_tree$)) (=> (= ?v0 (fun_app$bc dtor_tree$ ?v1)) false) ) false) )) +(assert (= t$ (node$a x$ (fun_app$bf (map_tree$c l$) t$) (fun_app$bf (map_tree$c r$) t$)))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$) (?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_a_b_fun_sum$)) (! (= (fun_app$am (fun_app$ba (map_prod$a ?v0) ?v1) (pair$b ?v2 ?v3)) (pair$ (fun_app$w ?v0 ?v2) (fun_app$w ?v1 ?v3))) :pattern ((fun_app$am (fun_app$ba (map_prod$a ?v0) ?v1) (pair$b ?v2 ?v3)))))) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) (?v2 B$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fun_app$az (map_prod$ ?v0 ?v1) (pair$c ?v2 ?v3)) (pair$a (fun_app$aa ?v0 ?v2) (fun_app$am ?v1 ?v3))) :pattern ((fun_app$az (map_prod$ ?v0 ?v1) (pair$c ?v2 ?v3)))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) (?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_a_b_fun_sum$)) (! (= (fun_app$ay (fun_app$bz (map_prod$b ?v0) ?v1) (pair$b ?v2 ?v3)) (pair$b (fun_app$ca ?v0 ?v2) (fun_app$ca ?v1 ?v3))) :pattern ((fun_app$ay (fun_app$bz (map_prod$b ?v0) ?v1) (pair$b ?v2 ?v3)))))) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_fun$) (?v2 B$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (map_prod$c ?v0 ?v1 (pair$c ?v2 ?v3)) (pair$b (fun_app$cb ?v0 ?v2) (fun_app$f ?v1 ?v3))) :pattern ((map_prod$c ?v0 ?v1 (pair$c ?v2 ?v3)))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) (?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_a_b_fun_sum$)) (! (= (map_prod$d ?v0 ?v1 (pair$b ?v2 ?v3)) (pair$c (fun_app$cc ?v0 ?v2) (fun_app$a ?v1 ?v3))) :pattern ((map_prod$d ?v0 ?v1 (pair$b ?v2 ?v3)))))) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) (?v2 B$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fun_app$cd (map_prod$e ?v0 ?v1) (pair$c ?v2 ?v3)) (pair$c (fun_app$aa ?v0 ?v2) (fun_app$ay ?v1 ?v3))) :pattern ((fun_app$cd (map_prod$e ?v0 ?v1) (pair$c ?v2 ?v3)))))) +(assert (forall ((?v0 B_b_fun$) (?v1 B_b_fun$) (?v2 B$) (?v3 B$)) (! (= (fun_app$ce (map_prod$f ?v0 ?v1) (pair$f ?v2 ?v3)) (pair$f (fun_app$aa ?v0 ?v2) (fun_app$aa ?v1 ?v3))) :pattern ((fun_app$ce (map_prod$f ?v0 ?v1) (pair$f ?v2 ?v3)))))) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A$) (?v3 A$)) (! (= (fun_app$cf (map_prod$g ?v0 ?v1) (pair$g ?v2 ?v3)) (pair$f (fun_app$ac ?v0 ?v2) (fun_app$ac ?v1 ?v3))) :pattern ((fun_app$cf (map_prod$g ?v0 ?v1) (pair$g ?v2 ?v3)))))) +(assert (forall ((?v0 A_a_fun$) (?v1 A_a_fun$) (?v2 A$) (?v3 A$)) (! (= (fun_app$cg (map_prod$h ?v0 ?v1) (pair$g ?v2 ?v3)) (pair$g (fun_app$aw ?v0 ?v2) (fun_app$aw ?v1 ?v3))) :pattern ((fun_app$cg (map_prod$h ?v0 ?v1) (pair$g ?v2 ?v3)))))) +(assert (forall ((?v0 A_tree_b_fun$) (?v1 A_tree_b_fun$) (?v2 A_tree$) (?v3 A_tree$)) (! (= (map_prod$i ?v0 ?v1 (pair$d ?v2 ?v3)) (pair$f (fun_app$ch ?v0 ?v2) (fun_app$ch ?v1 ?v3))) :pattern ((map_prod$i ?v0 ?v1 (pair$d ?v2 ?v3)))))) +(assert (forall ((?v0 A_b_b_prod_fun$)) (= (fun_app$bm (comp$i ?v0) id$f) ?v0) )) +(assert (forall ((?v0 A_a_fun$)) (= (fun_app$bh (comp$e ?v0) id$f) ?v0) )) +(assert (forall ((?v0 A_b_fun$)) (= (fun_app$v (comp$b ?v0) id$f) ?v0) )) +(assert (forall ((?v0 A_b_fun$)) (= (fun_app$u (comp$c id$) ?v0) ?v0) )) +(assert (forall ((?v0 A_a_fun$)) (= (fun_app$bh (comp$e id$f) ?v0) ?v0) )) +(assert (forall ((?v0 A_b_fun$)) (= (fun_app$u (comp$c id$) ?v0) ?v0) )) +(assert (forall ((?v0 A_a_fun$)) (= (fun_app$bh (comp$e id$f) ?v0) ?v0) )) +(assert (forall ((?v0 B$) (?v1 B_b_sum$)) (= (fun_app$ci (case_sum$a (uud$ ?v0) (uud$ ?v0)) ?v1) ?v0) )) +(assert (forall ((?v0 B$) (?v1 A_b_tree_sum$)) (= (case_sum$b (uue$ ?v0) (uuf$ ?v0) ?v1) ?v0) )) +(assert (forall ((?v0 B$) (?v1 A_b_sum$)) (= (case_sum$c (uue$ ?v0) (uud$ ?v0) ?v1) ?v0) )) +(assert (forall ((?v0 B$) (?v1 A_a_sum$)) (= (fun_app$cj (case_sum$d (uue$ ?v0) (uue$ ?v0)) ?v1) ?v0) )) +(assert (forall ((?v0 A$) (?v1 A_a_sum$)) (= (fun_app$ck (fun_app$cl (case_sum$e (uug$ ?v0)) (uug$ ?v0)) ?v1) ?v0) )) +(assert (forall ((?v0 B_tree$) (?v1 B_tree_a_b_fun_sum$)) (= (fun_app$w (fun_app$bb (case_sum$ (uuh$ ?v0)) (uui$ ?v0)) ?v1) ?v0) )) +(assert (forall ((?v0 B_b_tree_b_tree_prod_prod$)) (= (fun_app$cm (map_prod$j uua$ uuj$) ?v0) ?v0) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (fun_app$cd (map_prod$e uua$ uuk$) ?v0) ?v0) )) +(assert (forall ((?v0 B_b_prod$)) (= (fun_app$ce (map_prod$f uua$ uua$) ?v0) ?v0) )) +(assert (forall ((?v0 A_a_prod$)) (= (fun_app$cg (map_prod$h uuc$ uuc$) ?v0) ?v0) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$)) (= (= (inr$ ?v0) (inr$ ?v1)) (= ?v0 ?v1)) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$)) (= (= (inr$ ?v0) (inr$ ?v1)) (= ?v0 ?v1)) )) +(assert (forall ((?v0 B_b_sum$)) (! (= (fun_app$cn id$b ?v0) ?v0) :pattern ((fun_app$cn id$b ?v0))))) +(assert (forall ((?v0 B_tree_b_tree_fun$)) (! (= (fun_app$s id$c ?v0) ?v0) :pattern ((fun_app$s id$c ?v0))))) +(assert (forall ((?v0 B_b_fun$)) (! (= (fun_app$t id$d ?v0) ?v0) :pattern ((fun_app$t id$d ?v0))))) +(assert (forall ((?v0 A_b_fun$)) (! (= (fun_app$u id$e ?v0) ?v0) :pattern ((fun_app$u id$e ?v0))))) +(assert (forall ((?v0 A$)) (! (= (fun_app$aw id$f ?v0) ?v0) :pattern ((fun_app$aw id$f ?v0))))) +(assert (forall ((?v0 B$)) (! (= (fun_app$aa id$ ?v0) ?v0) :pattern ((fun_app$aa id$ ?v0))))) +(assert (forall ((?v0 B_tree$)) (! (= (fun_app$x id$a ?v0) ?v0) :pattern ((fun_app$x id$a ?v0))))) +(assert (forall ((?v0 B_b_fun$) (?v1 A_b_fun$) (?v2 A$)) (! (= (fun_app$ac (fun_app$u (comp$c ?v0) ?v1) ?v2) (fun_app$aa ?v0 (fun_app$ac ?v1 ?v2))) :pattern ((fun_app$ac (fun_app$u (comp$c ?v0) ?v1) ?v2))))) +(assert (forall ((?v0 B_a_fun$) (?v1 A_b_fun$) (?v2 A$)) (! (= (fun_app$aw (fun_app$bg (comp$d ?v0) ?v1) ?v2) (fun_app$co ?v0 (fun_app$ac ?v1 ?v2))) :pattern ((fun_app$aw (fun_app$bg (comp$d ?v0) ?v1) ?v2))))) +(assert (forall ((?v0 A_b_b_prod_fun$) (?v1 A_a_fun$) (?v2 A$)) (! (= (fun_app$cp (fun_app$bm (comp$i ?v0) ?v1) ?v2) (fun_app$cp ?v0 (fun_app$aw ?v1 ?v2))) :pattern ((fun_app$cp (fun_app$bm (comp$i ?v0) ?v1) ?v2))))) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_sum_a_fun$) (?v2 A_a_sum$)) (! (= (fun_app$cj (comp$j ?v0 ?v1) ?v2) (fun_app$ac ?v0 (fun_app$ck ?v1 ?v2))) :pattern ((fun_app$cj (comp$j ?v0 ?v1) ?v2))))) +(assert (forall ((?v0 A_a_fun$) (?v1 A_a_fun$) (?v2 A$)) (! (= (fun_app$aw (fun_app$bh (comp$e ?v0) ?v1) ?v2) (fun_app$aw ?v0 (fun_app$aw ?v1 ?v2))) :pattern ((fun_app$aw (fun_app$bh (comp$e ?v0) ?v1) ?v2))))) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A$)) (! (= (fun_app$ac (fun_app$v (comp$b ?v0) ?v1) ?v2) (fun_app$ac ?v0 (fun_app$aw ?v1 ?v2))) :pattern ((fun_app$ac (fun_app$v (comp$b ?v0) ?v1) ?v2))))) +(assert (forall ((?v0 A_tree$) (?v1 A_tree$) (?v2 A_tree$) (?v3 A_tree$)) (= (= (pair$d ?v0 ?v1) (pair$d ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v3 B$)) (= (= (pair$h ?v0 ?v1) (pair$h ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 B$) (?v1 B_tree_b_tree_prod$) (?v2 B$) (?v3 B_tree_b_tree_prod$)) (= (= (pair$a ?v0 ?v1) (pair$a ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 B$) (?v1 B$) (?v2 B$) (?v3 B$)) (= (= (pair$f ?v0 ?v1) (pair$f ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 A$) (?v1 A_tree_a_tree_prod$) (?v2 A$) (?v3 A_tree_a_tree_prod$)) (= (= (pair$e ?v0 ?v1) (pair$e ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v2 B$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (= (pair$c ?v0 ?v1) (pair$c ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_a_b_fun_sum$)) (= (= (pair$b ?v0 ?v1) (pair$b ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 A_tree$) (?v1 A_tree$) (?v2 A_tree$) (?v3 A_tree$)) (= (= (pair$d ?v0 ?v1) (pair$d ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v3 B$)) (= (= (pair$h ?v0 ?v1) (pair$h ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 B$) (?v1 B_tree_b_tree_prod$) (?v2 B$) (?v3 B_tree_b_tree_prod$)) (= (= (pair$a ?v0 ?v1) (pair$a ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 B$) (?v1 B$) (?v2 B$) (?v3 B$)) (= (= (pair$f ?v0 ?v1) (pair$f ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 A$) (?v1 A_tree_a_tree_prod$) (?v2 A$) (?v3 A_tree_a_tree_prod$)) (= (= (pair$e ?v0 ?v1) (pair$e ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v2 B$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (= (pair$c ?v0 ?v1) (pair$c ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_a_b_fun_sum$)) (= (= (pair$b ?v0 ?v1) (pair$b ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3))) )) +(assert (forall ((?v0 B$) (?v1 B_tree$) (?v2 B_tree$) (?v3 B$) (?v4 B_tree$) (?v5 B_tree$)) (= (= (node$ ?v0 ?v1 ?v2) (node$ ?v3 ?v4 ?v5)) (and (= ?v0 ?v3) (and (= ?v1 ?v4) (= ?v2 ?v5)))) )) +(assert (forall ((?v0 A$) (?v1 A_tree$) (?v2 A_tree$) (?v3 A$) (?v4 A_tree$) (?v5 A_tree$)) (= (= (node$a ?v0 ?v1 ?v2) (node$a ?v3 ?v4 ?v5)) (and (= ?v0 ?v3) (and (= ?v1 ?v4) (= ?v2 ?v5)))) )) +(assert (forall ((?v0 B_tree$)) (=> (forall ((?v1 B$) (?v2 B_tree$) (?v3 B_tree$)) (=> (= ?v0 (node$ ?v1 ?v2 ?v3)) false) ) false) )) +(assert (forall ((?v0 A_tree$)) (=> (forall ((?v1 A$) (?v2 A_tree$) (?v3 A_tree$)) (=> (= ?v0 (node$a ?v1 ?v2 ?v3)) false) ) false) )) +(assert (= (map_prod$j uua$ uuj$) id$m)) +(assert (= (map_prod$e uua$ uuk$) id$n)) +(assert (= (map_prod$f uua$ uua$) id$o)) +(assert (= (map_prod$h uuc$ uuc$) id$p)) +(assert (forall ((?v0 B_a_fun$) (?v1 B$) (?v2 B_tree$) (?v3 B_tree$)) (! (= (fun_app$be (map_tree$b ?v0) (node$ ?v1 ?v2 ?v3)) (node$a (fun_app$co ?v0 ?v1) (fun_app$be (map_tree$b ?v0) ?v2) (fun_app$be (map_tree$b ?v0) ?v3))) :pattern ((fun_app$be (map_tree$b ?v0) (node$ ?v1 ?v2 ?v3)))))) +(assert (forall ((?v0 B_b_fun$) (?v1 B$) (?v2 B_tree$) (?v3 B_tree$)) (! (= (fun_app$x (map_tree$a ?v0) (node$ ?v1 ?v2 ?v3)) (node$ (fun_app$aa ?v0 ?v1) (fun_app$x (map_tree$a ?v0) ?v2) (fun_app$x (map_tree$a ?v0) ?v3))) :pattern ((fun_app$x (map_tree$a ?v0) (node$ ?v1 ?v2 ?v3)))))) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree$) (?v2 B_tree_tree$) (?v3 B_tree_tree$)) (! (= (fun_app$bu (map_tree$g ?v0) (node$d ?v1 ?v2 ?v3)) (node$d (fun_app$x ?v0 ?v1) (fun_app$bu (map_tree$g ?v0) ?v2) (fun_app$bu (map_tree$g ?v0) ?v3))) :pattern ((fun_app$bu (map_tree$g ?v0) (node$d ?v1 ?v2 ?v3)))))) +(assert (forall ((?v0 A_b_fun$) (?v1 A$) (?v2 A_tree$) (?v3 A_tree$)) (! (= (fun_app$d (map_tree$ ?v0) (node$a ?v1 ?v2 ?v3)) (node$ (fun_app$ac ?v0 ?v1) (fun_app$d (map_tree$ ?v0) ?v2) (fun_app$d (map_tree$ ?v0) ?v3))) :pattern ((fun_app$d (map_tree$ ?v0) (node$a ?v1 ?v2 ?v3)))))) +(assert (forall ((?v0 A_a_fun$) (?v1 A$) (?v2 A_tree$) (?v3 A_tree$)) (! (= (fun_app$bf (map_tree$c ?v0) (node$a ?v1 ?v2 ?v3)) (node$a (fun_app$aw ?v0 ?v1) (fun_app$bf (map_tree$c ?v0) ?v2) (fun_app$bf (map_tree$c ?v0) ?v3))) :pattern ((fun_app$bf (map_tree$c ?v0) (node$a ?v1 ?v2 ?v3)))))) +(assert (forall ((?v0 B_b_prod$)) (exists ((?v1 B$) (?v2 B$)) (= ?v0 (pair$f ?v1 ?v2)) ) )) +(assert (forall ((?v0 A_a_tree_a_tree_prod_prod$)) (exists ((?v1 A$) (?v2 A_tree_a_tree_prod$)) (= ?v0 (pair$e ?v1 ?v2)) ) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (exists ((?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= ?v0 (pair$c ?v1 ?v2)) ) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (exists ((?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (= ?v0 (pair$b ?v1 ?v2)) ) )) +(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v2 B$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (and (= (pair$c ?v0 ?v1) (pair$c ?v2 ?v3)) (=> (and (= ?v0 ?v2) (= ?v1 ?v3)) false)) false) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_a_b_fun_sum$)) (=> (and (= (pair$b ?v0 ?v1) (pair$b ?v2 ?v3)) (=> (and (= ?v0 ?v2) (= ?v1 ?v3)) false)) false) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_bool_fun$) (?v1 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (=> (forall ((?v2 B$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (fun_app$cq ?v0 (pair$c ?v2 ?v3)) ) (fun_app$cq ?v0 ?v1)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_bool_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (forall ((?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_a_b_fun_sum$)) (fun_app$af ?v0 (pair$b ?v2 ?v3)) ) (fun_app$af ?v0 ?v1)) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (=> (forall ((?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (= ?v0 (pair$c ?v1 ?v2)) false) ) false) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (forall ((?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (=> (= ?v0 (pair$b ?v1 ?v2)) false) ) false) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_b_fun$) (?v3 A$)) (=> (= (fun_app$v (comp$b ?v0) ?v1) ?v2) (= (fun_app$ac ?v0 (fun_app$aw ?v1 ?v3)) (fun_app$ac ?v2 ?v3))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_b_fun$) (?v3 A_a_fun$) (?v4 A$)) (=> (= (fun_app$v (comp$b ?v0) ?v1) (fun_app$v (comp$b ?v2) ?v3)) (= (fun_app$ac ?v0 (fun_app$aw ?v1 ?v4)) (fun_app$ac ?v2 (fun_app$aw ?v3 ?v4)))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_b_fun$) (?v3 A_a_fun$)) (=> (and (= (fun_app$v (comp$b ?v0) ?v1) (fun_app$v (comp$b ?v2) ?v3)) (=> (forall ((?v4 A$)) (= (fun_app$ac ?v0 (fun_app$aw ?v1 ?v4)) (fun_app$ac ?v2 (fun_app$aw ?v3 ?v4))) ) false)) false) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A$)) (! (= (fun_app$ac (fun_app$v (comp$b ?v0) ?v1) ?v2) (fun_app$ac ?v0 (fun_app$aw ?v1 ?v2))) :pattern ((fun_app$ac (fun_app$v (comp$b ?v0) ?v1) ?v2))))) +(assert (forall ((?v0 B_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$)) (= (fun_app$v (comp$b (fun_app$u (comp$c ?v0) ?v1)) ?v2) (fun_app$u (comp$c ?v0) (fun_app$v (comp$b ?v1) ?v2))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_a_fun$)) (= (fun_app$v (comp$b (fun_app$v (comp$b ?v0) ?v1)) ?v2) (fun_app$v (comp$b ?v0) (fun_app$bh (comp$e ?v1) ?v2))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$)) (= (fun_app$u (comp$c ?v0) (fun_app$v (comp$b ?v1) ?v2)) (fun_app$v (comp$b (fun_app$u (comp$c ?v0) ?v1)) ?v2)) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_a_fun$)) (= (fun_app$v (comp$b ?v0) (fun_app$bh (comp$e ?v1) ?v2)) (fun_app$v (comp$b (fun_app$v (comp$b ?v0) ?v1)) ?v2)) )) +(assert (forall ((?v0 B$)) (! (= (fun_app$aa id$ ?v0) ?v0) :pattern ((fun_app$aa id$ ?v0))))) +(assert (forall ((?v0 B_tree$)) (! (= (fun_app$x id$a ?v0) ?v0) :pattern ((fun_app$x id$a ?v0))))) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$)) (=> (= (inr$ ?v0) (inr$ ?v1)) (= ?v0 ?v1)) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_b_tree_fun$) (?v2 B_tree_b_tree_fun$) (?v3 A_b_fun_b_tree_fun$)) (=> (and (= (fun_app$bb (case_sum$ ?v0) ?v1) (fun_app$bb (case_sum$ ?v2) ?v3)) (=> (and (= ?v0 ?v2) (= ?v1 ?v3)) false)) false) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 A_b_fun_b_tree_fun$) (?v3 B_tree_a_b_fun_sum$)) (= (fun_app$x ?v0 (fun_app$w (fun_app$bb (case_sum$ ?v1) ?v2) ?v3)) (fun_app$w (fun_app$bb (case_sum$ (fun_app$s (uul$ ?v0) ?v1)) (fun_app$ah (uum$ ?v0) ?v2)) ?v3)) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_b_fun$) (?v3 A$)) (=> (= (fun_app$v (comp$b ?v0) ?v1) (fun_app$u (comp$c id$) ?v2)) (= (fun_app$ac ?v0 (fun_app$aw ?v1 ?v3)) (fun_app$ac ?v2 ?v3))) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (=> (forall ((?v1 B$) (?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_a_b_fun_sum$)) (=> (= ?v0 (pair$c ?v1 (pair$b ?v2 ?v3))) false) ) false) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_bool_fun$) (?v1 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (=> (forall ((?v2 B$) (?v3 B_tree_a_b_fun_sum$) (?v4 B_tree_a_b_fun_sum$)) (fun_app$cq ?v0 (pair$c ?v2 (pair$b ?v3 ?v4))) ) (fun_app$cq ?v0 ?v1)) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$)) (= (comp$t (map_prod$g ?v0 ?v1) (map_prod$h ?v2 ?v3)) (map_prod$g (fun_app$v (comp$b ?v0) ?v2) (fun_app$v (comp$b ?v1) ?v3))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_b_tree_prod_b_tree_b_tree_prod_fun$) (?v2 B_b_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$)) (= (comp$u (map_prod$j ?v0 ?v1) (map_prod$ ?v2 ?v3)) (map_prod$ (fun_app$t (comp$a ?v0) ?v2) (fun_app$cr (comp$v ?v1) ?v3))) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree_a_b_fun_sum_b_tree_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_fun$)) (= (fun_app$cr (comp$v (fun_app$cs (map_prod$k ?v0) ?v1)) (fun_app$ba (map_prod$a ?v2) ?v3)) (fun_app$ba (map_prod$a (fun_app$ct (comp$w ?v0) ?v2)) (fun_app$ct (comp$w ?v1) ?v3))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) (?v2 B_b_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$)) (= (comp$x (map_prod$ ?v0 ?v1) (map_prod$e ?v2 ?v3)) (map_prod$ (fun_app$t (comp$a ?v0) ?v2) (fun_app$cu (comp$y ?v1) ?v3))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$)) (= (fun_app$cu (comp$y (fun_app$ba (map_prod$a ?v0) ?v1)) (fun_app$bz (map_prod$b ?v2) ?v3)) (fun_app$ba (map_prod$a (fun_app$cv (comp$z ?v0) ?v2)) (fun_app$cv (comp$z ?v1) ?v3))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_b_fun$) (?v3 A_a_fun$)) (= (map_prod$g (fun_app$v (comp$b ?v0) ?v1) (fun_app$v (comp$b ?v2) ?v3)) (comp$t (map_prod$g ?v0 ?v2) (map_prod$h ?v1 ?v3))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_b_fun$) (?v2 B_tree_b_tree_prod_b_tree_b_tree_prod_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$)) (= (map_prod$ (fun_app$t (comp$a ?v0) ?v1) (fun_app$cr (comp$v ?v2) ?v3)) (comp$u (map_prod$j ?v0 ?v2) (map_prod$ ?v1 ?v3))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_b_fun$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$)) (= (map_prod$ (fun_app$t (comp$a ?v0) ?v1) (fun_app$cu (comp$y ?v2) ?v3)) (comp$x (map_prod$ ?v0 ?v2) (map_prod$e ?v1 ?v3))) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$) (?v2 B_tree_b_tree_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_fun$)) (= (fun_app$ba (map_prod$a (fun_app$ct (comp$w ?v0) ?v1)) (fun_app$ct (comp$w ?v2) ?v3)) (fun_app$cr (comp$v (fun_app$cs (map_prod$k ?v0) ?v2)) (fun_app$ba (map_prod$a ?v1) ?v3))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) (?v2 B_tree_a_b_fun_sum_b_tree_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$)) (= (fun_app$ba (map_prod$a (fun_app$cv (comp$z ?v0) ?v1)) (fun_app$cv (comp$z ?v2) ?v3)) (fun_app$cu (comp$y (fun_app$ba (map_prod$a ?v0) ?v2)) (fun_app$bz (map_prod$b ?v1) ?v3))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$) (?v4 A_a_prod$)) (= (fun_app$cf (map_prod$g ?v0 ?v1) (fun_app$cg (map_prod$h ?v2 ?v3) ?v4)) (fun_app$cf (map_prod$g (fun_app$v (comp$b ?v0) ?v2) (fun_app$v (comp$b ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_b_tree_prod_b_tree_b_tree_prod_fun$) (?v2 B_b_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) (?v4 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (fun_app$cm (map_prod$j ?v0 ?v1) (fun_app$az (map_prod$ ?v2 ?v3) ?v4)) (fun_app$az (map_prod$ (fun_app$t (comp$a ?v0) ?v2) (fun_app$cr (comp$v ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree_a_b_fun_sum_b_tree_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_fun$) (?v4 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (fun_app$ax (fun_app$cs (map_prod$k ?v0) ?v1) (fun_app$am (fun_app$ba (map_prod$a ?v2) ?v3) ?v4)) (fun_app$am (fun_app$ba (map_prod$a (fun_app$ct (comp$w ?v0) ?v2)) (fun_app$ct (comp$w ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) (?v2 B_b_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) (?v4 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (fun_app$az (map_prod$ ?v0 ?v1) (fun_app$cd (map_prod$e ?v2 ?v3) ?v4)) (fun_app$az (map_prod$ (fun_app$t (comp$a ?v0) ?v2) (fun_app$cu (comp$y ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) (?v4 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (fun_app$am (fun_app$ba (map_prod$a ?v0) ?v1) (fun_app$ay (fun_app$bz (map_prod$b ?v2) ?v3) ?v4)) (fun_app$am (fun_app$ba (map_prod$a (fun_app$cv (comp$z ?v0) ?v2)) (fun_app$cv (comp$z ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$) (?v4 A_a_prod$)) (= (fun_app$cf (map_prod$g ?v0 ?v1) (fun_app$cg (map_prod$h ?v2 ?v3) ?v4)) (fun_app$cf (map_prod$g (fun_app$v (comp$b ?v0) ?v2) (fun_app$v (comp$b ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_b_tree_prod_b_tree_b_tree_prod_fun$) (?v2 B_b_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) (?v4 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (fun_app$cm (map_prod$j ?v0 ?v1) (fun_app$az (map_prod$ ?v2 ?v3) ?v4)) (fun_app$az (map_prod$ (fun_app$t (comp$a ?v0) ?v2) (fun_app$cr (comp$v ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree_a_b_fun_sum_b_tree_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_fun$) (?v4 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (fun_app$ax (fun_app$cs (map_prod$k ?v0) ?v1) (fun_app$am (fun_app$ba (map_prod$a ?v2) ?v3) ?v4)) (fun_app$am (fun_app$ba (map_prod$a (fun_app$ct (comp$w ?v0) ?v2)) (fun_app$ct (comp$w ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) (?v2 B_b_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) (?v4 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (fun_app$az (map_prod$ ?v0 ?v1) (fun_app$cd (map_prod$e ?v2 ?v3) ?v4)) (fun_app$az (map_prod$ (fun_app$t (comp$a ?v0) ?v2) (fun_app$cu (comp$y ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) (?v4 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (fun_app$am (fun_app$ba (map_prod$a ?v0) ?v1) (fun_app$ay (fun_app$bz (map_prod$b ?v2) ?v3) ?v4)) (fun_app$am (fun_app$ba (map_prod$a (fun_app$cv (comp$z ?v0) ?v2)) (fun_app$cv (comp$z ?v1) ?v3)) ?v4)) )) +(assert (= (map_prod$f id$ id$) id$o)) +(assert (= (map_prod$l id$ id$a) id$q)) +(assert (= (map_prod$m id$a id$) id$r)) +(assert (= (fun_app$cs (map_prod$k id$a) id$a) id$s)) +(assert (forall ((?v0 B_b_prod$)) (= (fun_app$ce (map_prod$f id$ id$) ?v0) ?v0) )) +(assert (forall ((?v0 B_b_tree_prod$)) (= (fun_app$cw (map_prod$l id$ id$a) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree_b_prod$)) (= (fun_app$cx (map_prod$m id$a id$) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree_b_tree_prod$)) (= (fun_app$ax (fun_app$cs (map_prod$k id$a) id$a) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_b_tree_fun$) (?v2 A_b_fun$)) (! (= (fun_app$w (fun_app$bb (case_sum$ ?v0) ?v1) (inr$ ?v2)) (fun_app$c ?v1 ?v2)) :pattern ((fun_app$w (fun_app$bb (case_sum$ ?v0) ?v1) (inr$ ?v2)))))) +(assert (forall ((?v0 B$) (?v1 B_tree$) (?v2 B_tree$)) (! (= (node$ ?v0 ?v1 ?v2) (ctor_tree$ (id_bnf$a (pair$a ?v0 (pair$ ?v1 ?v2))))) :pattern ((node$ ?v0 ?v1 ?v2))))) +(assert (forall ((?v0 A$) (?v1 A_tree$) (?v2 A_tree$)) (! (= (node$a ?v0 ?v1 ?v2) (ctor_tree$a (id_bnf$b (pair$e ?v0 (pair$d ?v1 ?v2))))) :pattern ((node$a ?v0 ?v1 ?v2))))) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_b_tree_fun$)) (= (fun_app$cy (comp$aa (fun_app$bb (case_sum$ ?v0) ?v1)) uun$) ?v1) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_a_fun$)) (= (comp$j ?v0 (fun_app$cl (case_sum$e ?v1) ?v2)) (case_sum$d (fun_app$v (comp$b ?v0) ?v1) (fun_app$v (comp$b ?v0) ?v2))) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 A_b_fun_b_tree_fun$)) (= (fun_app$ct (comp$w ?v0) (fun_app$bb (case_sum$ ?v1) ?v2)) (fun_app$bb (case_sum$ (fun_app$s (comp$ ?v0) ?v1)) (fun_app$ah (comp$ab ?v0) ?v2))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_bool_fun$) (?v3 A_a_tree_fun$) (?v4 A_a_fun$) (?v5 A_bool_fun$) (?v6 A_a_tree_fun$) (?v7 A_a_fun$)) (= (comp$ac (map_tree$ ?v0) (fun_app$cz (fun_app$da (fun_app$db (fun_app$dc (fun_app$dd (fun_app$de (corec_tree$ ?v1) ?v2) ?v3) ?v4) ?v5) ?v6) ?v7)) (corec_tree$a (fun_app$v (comp$b ?v0) ?v1) ?v2 (comp$ac (map_tree$ ?v0) ?v3) ?v4 ?v5 (comp$ac (map_tree$ ?v0) ?v6) ?v7)) )) +(assert (forall ((?v0 B_tree_bool_fun$) (?v1 A_b_fun_bool_fun$) (?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_bool_fun$) (?v4 B_tree_b_tree_fun$) (?v5 A_b_fun_b_tree_fun$)) (=> (and (fun_app$ad (fun_app$df (case_sum$f ?v0) ?v1) ?v2) (and (forall ((?v6 B_tree$)) (=> (fun_app$dg ?v0 ?v6) (fun_app$dg ?v3 (fun_app$x ?v4 ?v6))) ) (forall ((?v6 A_b_fun$)) (=> (fun_app$au ?v1 ?v6) (fun_app$dg ?v3 (fun_app$c ?v5 ?v6))) ))) (fun_app$dg ?v3 (fun_app$w (fun_app$bb (case_sum$ ?v4) ?v5) ?v2))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 A$) (?v2 A_a_fun$) (?v3 A_a_fun$) (?v4 A_b_fun$)) (= (fun_app$x (map_tree$a ?v0) (fun_app$c (fun_app$dh (fun_app$di (unfold_tree$ (uuo$ ?v1)) (uup$ ?v2)) (uup$ ?v3)) ?v4)) (fun_app$c (fun_app$dh (fun_app$di (unfold_tree$ (uuo$ ?v1)) (uup$ ?v2)) (uup$ ?v3)) (fun_app$u (comp$c ?v0) ?v4))) )) +(assert (forall ((?v0 A_b_fun_b_fun$) (?v1 A_b_fun_bool_fun$) (?v2 A_b_fun_b_tree_fun$) (?v3 A_b_fun_a_b_fun_fun$) (?v4 A_b_fun_bool_fun$) (?v5 A_b_fun_b_tree_fun$) (?v6 A_b_fun_a_b_fun_fun$)) (= (fun_app$dh (fun_app$dj (fun_app$dk (fun_app$dl (fun_app$dm (fun_app$dn (corec_tree$b ?v0) ?v1) ?v2) ?v3) ?v4) ?v5) ?v6) (dtor_corec_tree$ (fun_app$ao (fun_app$ap (fun_app$aq (fun_app$ar (fun_app$as (fun_app$at (uuq$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5) ?v6))) )) +(assert (forall ((?v0 B_tree$) (?v1 A_b_fun$)) (= (= (inl$ ?v0) (inr$ ?v1)) false) )) +(assert (forall ((?v0 A_b_fun$) (?v1 B_tree$)) (= (= (inr$ ?v0) (inl$ ?v1)) false) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_b_tree_fun$)) (= (fun_app$do (comp$ad (fun_app$bb (case_sum$ ?v0) ?v1)) uur$) ?v0) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_bool_fun$)) (= (exists ((?v1 B_tree_a_b_fun_sum$)) (fun_app$ad ?v0 ?v1) ) (or (exists ((?v1 B_tree$)) (fun_app$ad ?v0 (inl$ ?v1)) ) (exists ((?v1 A_b_fun$)) (fun_app$ad ?v0 (inr$ ?v1)) ))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_bool_fun$)) (= (forall ((?v1 B_tree_a_b_fun_sum$)) (fun_app$ad ?v0 ?v1) ) (and (forall ((?v1 B_tree$)) (fun_app$ad ?v0 (inl$ ?v1)) ) (forall ((?v1 A_b_fun$)) (fun_app$ad ?v0 (inr$ ?v1)) ))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$)) (=> (and (forall ((?v1 B_tree$)) (=> (= ?v0 (inl$ ?v1)) false) ) (forall ((?v1 A_b_fun$)) (=> (= ?v0 (inr$ ?v1)) false) )) false) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$)) (=> (and (forall ((?v1 B_tree$)) (=> (= ?v0 (inl$ ?v1)) false) ) (forall ((?v1 A_b_fun$)) (=> (= ?v0 (inr$ ?v1)) false) )) false) )) +(assert (forall ((?v0 A_b_fun$) (?v1 B_tree$)) (not (= (inr$ ?v0) (inl$ ?v1))) )) +(assert (forall ((?v0 B_tree$) (?v1 A_b_fun$)) (not (= (inl$ ?v0) (inr$ ?v1))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 B_tree$)) (not (= (inr$ ?v0) (inl$ ?v1))) )) +(assert (forall ((?v0 B_tree$) (?v1 A_b_fun$)) (not (= (inl$ ?v0) (inr$ ?v1))) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_b_tree_fun$) (?v2 B_tree$)) (! (= (fun_app$w (fun_app$bb (case_sum$ ?v0) ?v1) (inl$ ?v2)) (fun_app$x ?v0 ?v2)) :pattern ((fun_app$w (fun_app$bb (case_sum$ ?v0) ?v1) (inl$ ?v2)))))) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_b_tree_fun$) (?v2 Bool) (?v3 B_tree$) (?v4 A_b_fun$)) (= (fun_app$w (fun_app$bb (case_sum$ ?v0) ?v1) (ite ?v2 (inl$ ?v3) (inr$ ?v4))) (ite ?v2 (fun_app$x ?v0 ?v3) (fun_app$c ?v1 ?v4))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$)) (= (fun_app$bb (case_sum$ (uus$ ?v0)) (uut$ ?v0)) ?v0) )) +(assert (forall ((?v0 B_tree$)) (= (ctor_tree$ (fun_app$bc dtor_tree$ ?v0)) ?v0) )) +(assert (forall ((?v0 B_b_tree_b_tree_prod_prod$)) (= (fun_app$bc dtor_tree$ (ctor_tree$ ?v0)) ?v0) )) +(assert (forall ((?v0 A_a_fun$) (?v1 A_a_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$) (?v4 A_b_fun$) (?v5 A_b_fun$)) (=> (and (= (fun_app$bh (comp$e ?v0) ?v1) (fun_app$bh (comp$e ?v2) ?v3)) (= (fun_app$v (comp$b ?v4) ?v2) ?v5)) (= (fun_app$v (comp$b (fun_app$v (comp$b ?v4) ?v0)) ?v1) (fun_app$v (comp$b ?v5) ?v3))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_b_fun$) (?v3 A_a_fun$) (?v4 B_b_fun$) (?v5 A_b_fun$)) (=> (and (= (fun_app$v (comp$b ?v0) ?v1) (fun_app$v (comp$b ?v2) ?v3)) (= (fun_app$u (comp$c ?v4) ?v2) ?v5)) (= (fun_app$v (comp$b (fun_app$u (comp$c ?v4) ?v0)) ?v1) (fun_app$v (comp$b ?v5) ?v3))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 A_b_fun$) (?v2 A_b_fun$) (?v3 A_a_fun$) (?v4 A_a_fun$) (?v5 A_a_fun$)) (=> (and (= (fun_app$u (comp$c ?v0) ?v1) (fun_app$v (comp$b ?v2) ?v3)) (= (fun_app$bh (comp$e ?v3) ?v4) ?v5)) (= (fun_app$u (comp$c ?v0) (fun_app$v (comp$b ?v1) ?v4)) (fun_app$v (comp$b ?v2) ?v5))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 B_b_fun$) (?v3 A_b_fun$) (?v4 A_a_fun$) (?v5 A_b_fun$)) (=> (and (= (fun_app$v (comp$b ?v0) ?v1) (fun_app$u (comp$c ?v2) ?v3)) (= (fun_app$v (comp$b ?v3) ?v4) ?v5)) (= (fun_app$v (comp$b ?v0) (fun_app$bh (comp$e ?v1) ?v4)) (fun_app$u (comp$c ?v2) ?v5))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_b_fun$) (?v3 A_a_fun$) (?v4 A_a_fun$) (?v5 A_a_fun$)) (=> (and (= (fun_app$v (comp$b ?v0) ?v1) (fun_app$v (comp$b ?v2) ?v3)) (= (fun_app$bh (comp$e ?v3) ?v4) ?v5)) (= (fun_app$v (comp$b ?v0) (fun_app$bh (comp$e ?v1) ?v4)) (fun_app$v (comp$b ?v2) ?v5))) )) +(assert (forall ((?v0 A_a_fun$) (?v1 A_a_fun$) (?v2 A_a_fun$) (?v3 A_b_fun$)) (=> (= (fun_app$bh (comp$e ?v0) ?v1) ?v2) (= (fun_app$v (comp$b (fun_app$v (comp$b ?v3) ?v0)) ?v1) (fun_app$v (comp$b ?v3) ?v2))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_b_fun$) (?v3 B_b_fun$)) (=> (= (fun_app$v (comp$b ?v0) ?v1) ?v2) (= (fun_app$v (comp$b (fun_app$u (comp$c ?v3) ?v0)) ?v1) (fun_app$u (comp$c ?v3) ?v2))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 A_b_fun$) (?v2 A_b_fun$) (?v3 A_a_fun$)) (=> (= (fun_app$u (comp$c ?v0) ?v1) ?v2) (= (fun_app$u (comp$c ?v0) (fun_app$v (comp$b ?v1) ?v3)) (fun_app$v (comp$b ?v2) ?v3))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_b_fun$) (?v3 A_a_fun$)) (=> (= (fun_app$v (comp$b ?v0) ?v1) ?v2) (= (fun_app$v (comp$b ?v0) (fun_app$bh (comp$e ?v1) ?v3)) (fun_app$v (comp$b ?v2) ?v3))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A$) (?v3 A_b_fun$) (?v4 A_a_fun$)) (=> (= (fun_app$ac ?v0 (fun_app$aw ?v1 ?v2)) (fun_app$ac ?v3 (fun_app$aw ?v4 ?v2))) (= (fun_app$ac (fun_app$v (comp$b ?v0) ?v1) ?v2) (fun_app$ac (fun_app$v (comp$b ?v3) ?v4) ?v2))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$) (?v4 A$)) (= (fun_app$d (map_tree$ ?v0) (fun_app$dp (fun_app$cz (fun_app$dq (unfold_tree$a ?v1) ?v2) ?v3) ?v4)) (unfold_tree$b (fun_app$v (comp$b ?v0) ?v1) ?v2 ?v3 ?v4)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 A_b_fun_b_tree_fun$)) (=> (= (fun_app$do (comp$ad ?v0) uur$) ?v1) (= (= ?v2 (fun_app$cy (comp$aa ?v0) uun$)) (= (fun_app$bb (case_sum$ ?v1) ?v2) ?v0))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree_a_b_fun_sum$)) (=> (= (fun_app$do (comp$ad ?v0) uur$) ?v1) (= (fun_app$w ?v0 ?v2) (fun_app$w (fun_app$bb (case_sum$ ?v1) (fun_app$cy (comp$aa ?v0) uun$)) ?v2))) )) +(assert (forall ((?v0 A_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$) (?v1 A_b_fun$)) (= (fun_app$bc dtor_tree$ (fun_app$c (dtor_corec_tree$ ?v0) ?v1)) (fun_app$az (map_pre_tree$ id$ (fun_app$bb (case_sum$ id$a) (dtor_corec_tree$ ?v0))) (fun_app$an ?v0 ?v1))) )) +(assert (forall ((?v0 A_b_fun_b_tree_fun$) (?v1 A_b_fun_b_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_fun$)) (=> (= (comp$ae (map_pre_tree$ id$ (fun_app$bb (case_sum$ id$a) ?v0)) ?v1) (comp$af dtor_tree$ ?v0)) (= ?v0 (dtor_corec_tree$ ?v1))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$)) (=> (and (forall ((?v1 B_tree$)) (=> (= ?v0 (inl$ ?v1)) false) ) (forall ((?v1 A_b_fun$)) (=> (= ?v0 (inr$ ?v1)) false) )) false) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v1 B$)) (= (swap$ (pair$h ?v0 ?v1)) (pair$c ?v1 ?v0)) )) +(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (swap$a (pair$c ?v0 ?v1)) (pair$h ?v1 ?v0)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$)) (= (swap$b (pair$b ?v0 ?v1)) (pair$b ?v1 ?v0)) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$) (?v2 A_b_fun$) (?v3 A_a_fun$)) (= (map_pre_tree$a (fun_app$v (comp$b ?v0) ?v1) (fun_app$v (comp$b ?v2) ?v3)) (comp$ag (map_pre_tree$a ?v0 ?v2) (map_pre_tree$b ?v1 ?v3))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$) (?v4 A_a_a_prod_prod$)) (= (fun_app$dr (map_pre_tree$a ?v0 ?v1) (fun_app$ds (map_pre_tree$b ?v2 ?v3) ?v4)) (fun_app$dr (map_pre_tree$a (fun_app$v (comp$b ?v0) ?v2) (fun_app$v (comp$b ?v1) ?v3)) ?v4)) )) +(assert (= (map_pre_tree$c id$ id$) id$t)) +(assert (= (map_pre_tree$d id$ id$a) id$m)) +(assert (= (map_pre_tree$e id$a id$) id$u)) +(assert (= (map_pre_tree$f id$a id$a) id$v)) +(assert (forall ((?v0 B_b_b_prod_prod$)) (= (fun_app$dt (map_pre_tree$c id$ id$) ?v0) ?v0) )) +(assert (forall ((?v0 B_b_tree_b_tree_prod_prod$)) (= (fun_app$cm (map_pre_tree$d id$ id$a) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree_b_b_prod_prod$)) (= (fun_app$du (map_pre_tree$e id$a id$) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree_b_tree_b_tree_prod_prod$)) (= (fun_app$dv (map_pre_tree$f id$a id$a) ?v0) ?v0) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$)) (=> (not (= ?v0 ?v1)) (not (= (inr$ ?v0) (inr$ ?v1)))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 B_a_b_b_prod_prod_fun$)) (= (fun_app$dw (comp$ah (map_tree$ ?v0)) (dtor_unfold_tree$ ?v1)) (dtor_unfold_tree$a (comp$ai (map_pre_tree$g ?v0 id$) ?v1))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 B_tree_a_b_tree_b_tree_prod_prod_fun$)) (= (fun_app$bt (comp$q (map_tree$ ?v0)) (dtor_unfold_tree$b ?v1)) (dtor_unfold_tree$c (comp$aj (map_pre_tree$h ?v0 id$a) ?v1))) )) +(assert (forall ((?v0 A_a_fun$) (?v1 B_a_b_b_prod_prod_fun$)) (= (comp$ak (map_tree$c ?v0) (dtor_unfold_tree$ ?v1)) (dtor_unfold_tree$ (fun_app$dx (comp$al (map_pre_tree$i ?v0 id$)) ?v1))) )) +(assert (forall ((?v0 A_a_fun$) (?v1 B_tree_a_b_tree_b_tree_prod_prod_fun$)) (= (comp$o (map_tree$c ?v0) (dtor_unfold_tree$b ?v1)) (dtor_unfold_tree$b (fun_app$dy (comp$am (map_pre_tree$j ?v0 id$a)) ?v1))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_b_fun$) (?v2 B$)) (= (fun_app$dz (fun_app$ea (tree_recurse$ ?v0) ?v1) ?v2) (unfold_tree$c (uuu$ ?v2) (uuv$ ?v0) (uuv$ ?v1) id$)) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree$)) (= (tree_recurse$a ?v0 ?v1 ?v2) (unfold_tree$d (uuw$ ?v2) (uux$ ?v0) (uux$ ?v1) id$a)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_b_fun$) (?v2 B$)) (= (comp$an (map_prod$f ?v0 id$) (convol$ id$ ?v1) ?v2) (fun_app$b (convol$ (fun_app$t (comp$a id$) ?v0) ?v1) ?v2)) )) +(assert (forall ((?v0 B_b_tree_fun$) (?v1 B_b_fun$) (?v2 B$)) (= (comp$ao (map_prod$n ?v0 id$) (convol$ id$ ?v1) ?v2) (convol$a (fun_app$eb (comp$ap id$a) ?v0) ?v1 ?v2)) )) +(assert (forall ((?v0 B_tree_b_fun$) (?v1 B_tree_b_fun$) (?v2 B_tree$)) (= (comp$aq (map_prod$o ?v0 id$) (convol$b id$a ?v1) ?v2) (convol$c (fun_app$ec (comp$ar id$) ?v0) ?v1 ?v2)) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_fun$) (?v2 B_tree$)) (= (comp$as (map_prod$m ?v0 id$) (convol$b id$a ?v1) ?v2) (fun_app$ed (convol$b (fun_app$s (comp$ id$a) ?v0) ?v1) ?v2)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_b_tree_fun$) (?v2 B$)) (= (comp$at (map_prod$l ?v0 id$a) (convol$d id$ ?v1) ?v2) (fun_app$ee (convol$d (fun_app$t (comp$a id$) ?v0) ?v1) ?v2)) )) +(assert (forall ((?v0 B_b_tree_fun$) (?v1 B_b_tree_fun$) (?v2 B$)) (= (comp$au (map_prod$p ?v0 id$a) (convol$d id$ ?v1) ?v2) (convol$e (fun_app$eb (comp$ap id$a) ?v0) ?v1 ?v2)) )) +(assert (forall ((?v0 B_tree_b_fun$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree$)) (= (comp$av (map_prod$q ?v0 id$a) (convol$f id$a ?v1) ?v2) (convol$g (fun_app$ec (comp$ar id$) ?v0) ?v1 ?v2)) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree$)) (= (comp$aw (fun_app$cs (map_prod$k ?v0) id$a) (convol$f id$a ?v1) ?v2) (fun_app$ (convol$f (fun_app$s (comp$ id$a) ?v0) ?v1) ?v2)) )) +(assert (forall ((?v0 A_a_fun$) (?v1 A_tree$)) (= (fun_app$bd dtor_tree$a (fun_app$bf (map_tree$c ?v0) ?v1)) (fun_app$ef (map_pre_tree$k ?v0 (map_tree$c ?v0)) (fun_app$bd dtor_tree$a ?v1))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_tree$)) (= (fun_app$bc dtor_tree$ (fun_app$d (map_tree$ ?v0) ?v1)) (fun_app$eg (map_pre_tree$l ?v0 (map_tree$ ?v0)) (fun_app$bd dtor_tree$a ?v1))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree$)) (= (fun_app$bc dtor_tree$ (fun_app$x (map_tree$a ?v0) ?v1)) (fun_app$cm (map_pre_tree$d ?v0 (map_tree$a ?v0)) (fun_app$bc dtor_tree$ ?v1))) )) +(assert (forall ((?v0 A_tree_a_tree_fun$) (?v1 A_a_fun$)) (=> (= (comp$ax dtor_tree$a ?v0) (comp$ay (map_pre_tree$k ?v1 ?v0) dtor_tree$a)) (= ?v0 (map_tree$c ?v1))) )) +(assert (forall ((?v0 A_tree_b_tree_fun$) (?v1 A_b_fun$)) (=> (= (comp$az dtor_tree$ ?v0) (comp$ba (map_pre_tree$l ?v1 ?v0) dtor_tree$a)) (= ?v0 (map_tree$ ?v1))) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_b_fun$)) (=> (= (comp$bb dtor_tree$ ?v0) (comp$bc (map_pre_tree$d ?v1 ?v0) dtor_tree$)) (= ?v0 (map_tree$a ?v1))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$)) (= (fun_app$bm (comp$i (fun_app$eh (convol$h ?v0) ?v1)) ?v2) (fun_app$eh (convol$h (fun_app$v (comp$b ?v0) ?v2)) (fun_app$v (comp$b ?v1) ?v2))) )) +(assert (forall ((?v0 A_a_fun$) (?v1 A_a_fun$) (?v2 A$)) (! (= (fun_app$dp (fun_app$cz (tree_recurse$b ?v0) ?v1) ?v2) (node$a ?v2 (fun_app$bf (map_tree$c ?v0) (fun_app$dp (fun_app$cz (tree_recurse$b ?v0) ?v1) ?v2)) (fun_app$bf (map_tree$c ?v1) (fun_app$dp (fun_app$cz (tree_recurse$b ?v0) ?v1) ?v2)))) :pattern ((fun_app$dp (fun_app$cz (tree_recurse$b ?v0) ?v1) ?v2))))) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$)) (= (fun_app$ei (comp$bd (map_prod$g ?v0 ?v1)) (convol$i ?v2 ?v3)) (fun_app$eh (convol$h (fun_app$v (comp$b ?v0) ?v2)) (fun_app$v (comp$b ?v1) ?v3))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 B_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun$)) (= (fun_app$dw (comp$ah (map_tree$ ?v0)) (dtor_corec_tree$a ?v1)) (dtor_corec_tree$b (comp$be (map_pre_tree$m ?v0 (map_sum$ (map_tree$ ?v0) id$)) ?v1))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 B_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun$)) (= (fun_app$bt (comp$q (map_tree$ ?v0)) (dtor_corec_tree$c ?v1)) (dtor_corec_tree$d (comp$bf (map_pre_tree$n ?v0 (map_sum$a (map_tree$ ?v0) id$a)) ?v1))) )) +(assert (forall ((?v0 A_a_fun$) (?v1 B_a_a_tree_b_sum_a_tree_b_sum_prod_prod_fun$)) (= (comp$ak (map_tree$c ?v0) (dtor_corec_tree$a ?v1)) (dtor_corec_tree$a (fun_app$ej (comp$bg (map_pre_tree$o ?v0 (map_sum$b (map_tree$c ?v0) id$))) ?v1))) )) +(assert (forall ((?v0 A_a_fun$) (?v1 B_tree_a_a_tree_b_tree_sum_a_tree_b_tree_sum_prod_prod_fun$)) (= (comp$o (map_tree$c ?v0) (dtor_corec_tree$c ?v1)) (dtor_corec_tree$c (fun_app$ek (comp$bh (map_pre_tree$p ?v0 (map_sum$c (map_tree$c ?v0) id$a))) ?v1))) )) +(assert (forall ((?v0 B$) (?v1 A_a_fun$) (?v2 A$)) (= (fun_app$ac (fun_app$v (comp$b (uue$ ?v0)) ?v1) ?v2) ?v0) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$) (?v1 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$)) (= (= (uuy$ ?v0) (uuy$ ?v1)) (= ?v0 ?v1)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$)) (= (= (uuz$ ?v0) (uuz$ ?v1)) (= ?v0 ?v1)) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$)) (= (comp$bi (map_sum$d ?v0 ?v1) (map_sum$e ?v2 ?v3)) (map_sum$d (fun_app$v (comp$b ?v0) ?v2) (fun_app$v (comp$b ?v1) ?v3))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$) (?v4 A_a_sum$)) (= (fun_app$el (map_sum$d ?v0 ?v1) (fun_app$em (map_sum$e ?v2 ?v3) ?v4)) (fun_app$el (map_sum$d (fun_app$v (comp$b ?v0) ?v2) (fun_app$v (comp$b ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$) (?v4 A_a_sum$)) (= (fun_app$el (map_sum$d ?v0 ?v1) (fun_app$em (map_sum$e ?v2 ?v3) ?v4)) (fun_app$el (map_sum$d (fun_app$v (comp$b ?v0) ?v2) (fun_app$v (comp$b ?v1) ?v3)) ?v4)) )) +(assert (= (map_sum$f id$ id$) id$b)) +(assert (= (map_sum$g id$ id$a) id$w)) +(assert (= (map_sum$h id$a id$) id$x)) +(assert (= (map_sum$i id$a id$a) id$y)) +(assert (forall ((?v0 B_b_sum$)) (= (fun_app$cn (map_sum$f id$ id$) ?v0) ?v0) )) +(assert (forall ((?v0 B_b_tree_sum$)) (= (fun_app$en (map_sum$g id$ id$a) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree_b_sum$)) (= (fun_app$eo (map_sum$h id$a id$) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree_b_tree_sum$)) (= (fun_app$ep (map_sum$i id$a id$a) ?v0) ?v0) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_a_b_fun_fun$) (?v2 Bool) (?v3 A_b_fun$) (?v4 B_tree_a_b_fun_sum$)) (= (fun_app$ca (fun_app$eq (map_sum$j ?v0) ?v1) (ite ?v2 (inr$ ?v3) ?v4)) (ite ?v2 (inr$ (fun_app$u ?v1 ?v3)) (fun_app$ca (fun_app$eq (map_sum$j ?v0) ?v1) ?v4))) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_a_b_fun_fun$) (?v2 Bool) (?v3 B_tree_a_b_fun_sum$) (?v4 A_b_fun$)) (= (fun_app$ca (fun_app$eq (map_sum$j ?v0) ?v1) (ite ?v2 ?v3 (inr$ ?v4))) (ite ?v2 (fun_app$ca (fun_app$eq (map_sum$j ?v0) ?v1) ?v3) (inr$ (fun_app$u ?v1 ?v4)))) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_a_b_fun_fun$)) (= (comp$bj (fun_app$eq (map_sum$j ?v0) ?v1) uun$) (comp$bk uun$ ?v1)) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_a_b_fun_fun$) (?v2 A_b_fun$)) (! (= (fun_app$ca (fun_app$eq (map_sum$j ?v0) ?v1) (inr$ ?v2)) (inr$ (fun_app$u ?v1 ?v2))) :pattern ((fun_app$ca (fun_app$eq (map_sum$j ?v0) ?v1) (inr$ ?v2)))))) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$)) (= (comp$bl (case_sum$d ?v0 ?v1) (map_sum$e ?v2 ?v3)) (case_sum$d (fun_app$v (comp$b ?v0) ?v2) (fun_app$v (comp$b ?v1) ?v3))) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_b_tree_fun$) (?v2 B_tree_b_tree_fun$) (?v3 A_b_fun_a_b_fun_fun$)) (= (fun_app$cv (comp$z (fun_app$bb (case_sum$ ?v0) ?v1)) (fun_app$eq (map_sum$j ?v2) ?v3)) (fun_app$bb (case_sum$ (fun_app$s (comp$ ?v0) ?v2)) (fun_app$dh (comp$bm ?v1) ?v3))) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_b_fun$) (?v2 A_a_fun$) (?v3 A_a_fun$) (?v4 A_a_sum$)) (= (fun_app$cj (case_sum$d ?v0 ?v1) (fun_app$em (map_sum$e ?v2 ?v3) ?v4)) (fun_app$cj (case_sum$d (fun_app$v (comp$b ?v0) ?v2) (fun_app$v (comp$b ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 A_b_fun_b_tree_fun$) (?v2 B_tree_b_tree_fun$) (?v3 A_b_fun_a_b_fun_fun$) (?v4 B_tree_a_b_fun_sum$)) (= (fun_app$w (fun_app$bb (case_sum$ ?v0) ?v1) (fun_app$ca (fun_app$eq (map_sum$j ?v2) ?v3) ?v4)) (fun_app$w (fun_app$bb (case_sum$ (fun_app$s (comp$ ?v0) ?v2)) (fun_app$dh (comp$bm ?v1) ?v3)) ?v4)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_b_fun$) (?v2 B_b_sum$)) (= (comp$bn (case_sum$a id$ ?v0) (map_sum$f ?v1 id$) ?v2) (fun_app$ci (case_sum$a (fun_app$t (comp$a ?v1) id$) ?v0) ?v2)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 A_b_fun$) (?v2 A_b_sum$)) (= (comp$bo (case_sum$a id$ ?v0) (map_sum$k ?v1 id$) ?v2) (case_sum$c (fun_app$v (comp$b ?v1) id$f) ?v0 ?v2)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_b_fun$) (?v2 B_tree_b_sum$)) (= (comp$bp (case_sum$a id$ ?v0) (map_sum$l ?v1 id$) ?v2) (case_sum$g (fun_app$er (comp$bq ?v1) id$a) ?v0 ?v2)) )) +(assert (forall ((?v0 B_tree_b_fun$) (?v1 B_b_fun$) (?v2 B_b_tree_sum$)) (= (comp$br (case_sum$h id$ ?v0) (map_sum$g ?v1 id$a) ?v2) (fun_app$es (case_sum$h (fun_app$t (comp$a ?v1) id$) ?v0) ?v2)) )) +(assert (forall ((?v0 B_b_tree_fun$) (?v1 B_b_tree_fun$) (?v2 B_b_sum$)) (= (comp$bs (case_sum$i id$a ?v0) (map_sum$m ?v1 id$) ?v2) (case_sum$j (fun_app$ea (comp$bt ?v1) id$) ?v0 ?v2)) )) +(assert (forall ((?v0 B_tree_b_fun$) (?v1 A_b_fun$) (?v2 A_b_tree_sum$)) (= (comp$bu (case_sum$h id$ ?v0) (map_sum$n ?v1 id$a) ?v2) (case_sum$b (fun_app$v (comp$b ?v1) id$f) ?v0 ?v2)) )) +(assert (forall ((?v0 B_tree_b_fun$) (?v1 B_tree_b_fun$) (?v2 B_tree_b_tree_sum$)) (= (comp$bv (case_sum$h id$ ?v0) (map_sum$o ?v1 id$a) ?v2) (case_sum$k (fun_app$er (comp$bq ?v1) id$a) ?v0 ?v2)) )) +(assert (forall ((?v0 B_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree_b_sum$)) (= (comp$bw (case_sum$i id$a ?v0) (map_sum$h ?v1 id$) ?v2) (fun_app$et (case_sum$i (fun_app$s (comp$ ?v1) id$a) ?v0) ?v2)) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_b_tree_fun$) (?v2 B_b_tree_sum$)) (= (comp$bx (case_sum$l id$a ?v0) (map_sum$p ?v1 id$a) ?v2) (case_sum$m (fun_app$ea (comp$bt ?v1) id$) ?v0 ?v2)) )) +(assert (forall ((?v0 B_tree_b_tree_fun$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree_b_tree_sum$)) (= (comp$by (case_sum$l id$a ?v0) (map_sum$i ?v1 id$a) ?v2) (fun_app$eu (case_sum$l (fun_app$s (comp$ ?v1) id$a) ?v0) ?v2)) )) +(assert (forall ((?v0 A_bool_fun$) (?v1 A$) (?v2 A_tree$) (?v3 A_tree$)) (! (= (pred_tree$ ?v0 (node$a ?v1 ?v2 ?v3)) (and (fun_app$ev ?v0 ?v1) (and (pred_tree$ ?v0 ?v2) (pred_tree$ ?v0 ?v3)))) :pattern ((pred_tree$ ?v0 (node$a ?v1 ?v2 ?v3)))))) +(assert (forall ((?v0 B_b_tree_b_tree_prod_prod$)) (! (= (id_bnf$a ?v0) ?v0) :pattern ((id_bnf$a ?v0))))) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (! (= (id_bnf$ ?v0) ?v0) :pattern ((id_bnf$ ?v0))))) +(assert (forall ((?v0 B_b_fun$) (?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (apfst$ ?v0 (pair$c ?v1 ?v2)) (pair$c (fun_app$aa ?v0 ?v1) ?v2)) :pattern ((apfst$ ?v0 (pair$c ?v1 ?v2)))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (! (= (fun_app$ay (apfst$a ?v0) (pair$b ?v1 ?v2)) (pair$b (fun_app$ca ?v0 ?v1) ?v2)) :pattern ((fun_app$ay (apfst$a ?v0) (pair$b ?v1 ?v2)))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_fun$) (?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (apsnd$ ?v0 (pair$c ?v1 ?v2)) (pair$c ?v1 (fun_app$ay ?v0 ?v2))) :pattern ((apsnd$ ?v0 (pair$c ?v1 ?v2)))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_fun$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (! (= (fun_app$ay (apsnd$a ?v0) (pair$b ?v1 ?v2)) (pair$b ?v1 (fun_app$ca ?v0 ?v2))) :pattern ((fun_app$ay (apsnd$a ?v0) (pair$b ?v1 ?v2)))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$)) (! (= (apsnd$b ?v0) (map_prod$ id$ ?v0)) :pattern ((apsnd$b ?v0))))) +(assert (forall ((?v0 A_a_fun$) (?v1 A_a_fun$) (?v2 A$) (?v3 A_a_fun$) (?v4 A_a_fun$) (?v5 A_b_fun$)) (=> (= (fun_app$aw ?v0 (fun_app$aw ?v1 ?v2)) (fun_app$aw ?v3 (fun_app$aw ?v4 ?v2))) (= (fun_app$ac (fun_app$v (comp$b (fun_app$v (comp$b ?v5) ?v0)) ?v1) ?v2) (fun_app$ac (fun_app$v (comp$b (fun_app$v (comp$b ?v5) ?v3)) ?v4) ?v2))) )) +(assert (forall ((?v0 B_b_tree_b_tree_prod_prod$)) (! (= (id_bnf$a ?v0) ?v0) :pattern ((id_bnf$a ?v0))))) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (! (= (id_bnf$ ?v0) ?v0) :pattern ((id_bnf$ ?v0))))) +(assert (forall ((?v0 B$) (?v1 B_b_fun$) (?v2 B$)) (=> (= ?v0 (fun_app$aa ?v1 ?v2)) (fun_app$ew (fun_app$ex (fun_app$ey (fun_app$ez (fun_app$fa (iso_tuple_update_accessor_eq_assist$ id$d) id$) ?v2) ?v1) ?v0) ?v2)) )) +(assert (forall ((?v0 B_tree$) (?v1 B_tree_b_tree_fun$) (?v2 B_tree$)) (=> (= ?v0 (fun_app$x ?v1 ?v2)) (fun_app$dg (fun_app$fb (fun_app$fc (fun_app$fd (fun_app$fe (iso_tuple_update_accessor_eq_assist$a id$c) id$a) ?v2) ?v1) ?v0) ?v2)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) (?v2 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (fst$a (fun_app$az (map_prod$ ?v0 ?v1) ?v2)) (fun_app$aa ?v0 (fst$c ?v2))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (fst$ (fun_app$am (fun_app$ba (map_prod$a ?v0) ?v1) ?v2)) (fun_app$w ?v0 (fst$b ?v2))) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$) (?v2 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (snd$a (fun_app$az (map_prod$ ?v0 ?v1) ?v2)) (fun_app$am ?v1 (snd$c ?v2))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (snd$ (fun_app$am (fun_app$ba (map_prod$a ?v0) ?v1) ?v2)) (fun_app$w ?v1 (snd$b ?v2))) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (pair$c (fst$c ?v0) (snd$c ?v0)) ?v0) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (pair$b (fst$b ?v0) (snd$b ?v0)) ?v0) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$)) (= (comp$bz uva$ (map_prod$ ?v0 ?v1)) (comp$ca ?v0 uvb$)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$)) (= (comp$cb uvc$ (fun_app$ba (map_prod$a ?v0) ?v1)) (comp$cc ?v0 uvd$)) )) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$)) (= (comp$cd uve$ (map_prod$ ?v0 ?v1)) (comp$ce ?v1 uvf$)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$)) (= (comp$cb uvg$ (fun_app$ba (map_prod$a ?v0) ?v1)) (comp$cc ?v1 uvh$)) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= ?v0 (pair$c (fst$c ?v0) (snd$c ?v0))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= ?v0 (pair$b (fst$b ?v0) (snd$b ?v0))) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (=> (=> (= ?v0 (pair$c (fst$c ?v0) (snd$c ?v0))) false) false) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (=> (= ?v0 (pair$b (fst$b ?v0) (snd$b ?v0))) false) false) )) +(assert (forall ((?v0 B_bool_fun$) (?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_bool_fun$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (and (fun_app$ew ?v0 ?v1) (fun_app$af ?v2 ?v3)) (and (fun_app$ew ?v0 (fst$c (pair$c ?v1 ?v3))) (fun_app$af ?v2 (snd$c (pair$c ?v1 ?v3))))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_bool_fun$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum_bool_fun$) (?v3 B_tree_a_b_fun_sum$)) (=> (and (fun_app$ad ?v0 ?v1) (fun_app$ad ?v2 ?v3)) (and (fun_app$ad ?v0 (fst$b (pair$b ?v1 ?v3))) (fun_app$ad ?v2 (snd$b (pair$b ?v1 ?v3))))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_bool_fun_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v2 B$)) (=> (fun_app$ew (fun_app$ff ?v0 ?v1) ?v2) (fun_app$ew (fun_app$ff ?v0 (snd$c (pair$c ?v2 ?v1))) (fst$c (pair$c ?v2 ?v1)))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_bool_fun_fun$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (=> (fun_app$ad (fun_app$ae ?v0 ?v1) ?v2) (fun_app$ad (fun_app$ae ?v0 (snd$b (pair$b ?v2 ?v1))) (fst$b (pair$b ?v2 ?v1)))) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) (?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (= ?v0 (pair$c ?v1 ?v2)) (= (fst$c ?v0) ?v1)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (=> (= ?v0 (pair$b ?v1 ?v2)) (= (fst$b ?v0) ?v1)) )) +(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fst$c (pair$c ?v0 ?v1)) ?v0) :pattern ((pair$c ?v0 ?v1))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$)) (! (= (fst$b (pair$b ?v0 ?v1)) ?v0) :pattern ((pair$b ?v0 ?v1))))) +(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v2 B$)) (=> (= (fst$c (pair$c ?v0 ?v1)) ?v2) (= ?v0 ?v2)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (=> (= (fst$b (pair$b ?v0 ?v1)) ?v2) (= ?v0 ?v2)) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$) (?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (= ?v0 (pair$c ?v1 ?v2)) (= (snd$c ?v0) ?v2)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (=> (= ?v0 (pair$b ?v1 ?v2)) (= (snd$b ?v0) ?v2)) )) +(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (snd$c (pair$c ?v0 ?v1)) ?v1) :pattern ((pair$c ?v0 ?v1))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$)) (! (= (snd$b (pair$b ?v0 ?v1)) ?v1) :pattern ((pair$b ?v0 ?v1))))) +(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (= (snd$c (pair$c ?v0 ?v1)) ?v2) (= ?v1 ?v2)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$)) (=> (= (snd$b (pair$b ?v0 ?v1)) ?v2) (= ?v1 ?v2)) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_bool_fun_fun$) (?v1 B$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v3 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (=> (and (fun_app$af (fun_app$ag ?v0 ?v1) ?v2) (= ?v3 (pair$c ?v1 ?v2))) (fun_app$af (fun_app$ag ?v0 (fst$c ?v3)) (snd$c ?v3))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_bool_fun_fun$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (and (fun_app$ad (fun_app$ae ?v0 ?v1) ?v2) (= ?v3 (pair$b ?v1 ?v2))) (fun_app$ad (fun_app$ae ?v0 (fst$b ?v3)) (snd$b ?v3))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_prod$)) (! (= (swap$ ?v0) (pair$c (snd$h ?v0) (fst$h ?v0))) :pattern ((swap$ ?v0))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (swap$b ?v0) (pair$b (snd$b ?v0) (fst$b ?v0))) :pattern ((swap$b ?v0))))) +(assert (forall ((?v0 B$)) (= (fun_app$aa (fun_app$fg (comp$cf uvi$) uvj$) ?v0) (fun_app$aa id$ ?v0)) )) +(assert (forall ((?v0 B_tree$)) (= (fun_app$x (fun_app$fh (comp$cg uvg$) uvk$) ?v0) (fun_app$x id$a ?v0)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$)) (= (fun_app$ca (fun_app$fi (comp$ch uvh$) uvl$) ?v0) (id$z ?v0)) )) +(assert (forall ((?v0 B$)) (= (fun_app$aa (fun_app$fg (comp$cf uvm$) uvj$) ?v0) (fun_app$aa id$ ?v0)) )) +(assert (forall ((?v0 B_tree$)) (= (fun_app$x (fun_app$fh (comp$cg uvc$) uvk$) ?v0) (fun_app$x id$a ?v0)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$)) (= (fun_app$ca (fun_app$fi (comp$ch uvd$) uvl$) ?v0) (id$z ?v0)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v1 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (= ?v0 (snd$c ?v1)) (exists ((?v2 B$)) (= ?v1 (pair$c ?v2 ?v0)) )) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (= ?v0 (snd$b ?v1)) (exists ((?v2 B_tree_a_b_fun_sum$)) (= ?v1 (pair$b ?v2 ?v0)) )) )) +(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$) (?v2 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod_set$) (?v3 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (=> (and (member$a (pair$c ?v0 ?v1) ?v2) (= ?v3 ?v1)) (member$a (pair$c ?v0 ?v3) ?v2)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$) (?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_set$) (?v3 B_tree_a_b_fun_sum$)) (=> (and (member$ (pair$b ?v0 ?v1) ?v2) (= ?v3 ?v1)) (member$ (pair$b ?v0 ?v3) ?v2)) )) +(assert (forall ((?v0 B$) (?v1 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (= (= ?v0 (fst$c ?v1)) (exists ((?v2 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= ?v1 (pair$c ?v0 ?v2)) )) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (= ?v0 (fst$b ?v1)) (exists ((?v2 B_tree_a_b_fun_sum$)) (= ?v1 (pair$b ?v0 ?v2)) )) )) +(assert (forall ((?v0 A_b_fun$) (?v1 A_a_fun$)) (= (fun_app$v (comp$b (ctor_rec$ ?v0)) ?v1) (ctor_rec$ (fun_app$v (comp$b ?v0) (fun_app$bh (comp$e (fun_app$bh (comp$e id_bnf$c) ?v1)) id_bnf$c)))) )) +(assert (forall ((?v0 A_b_fun$)) (= ?v0 (ctor_rec$ (fun_app$v (comp$b ?v0) id_bnf$c))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum$) (?v1 B_tree_a_b_fun_sum$)) (! (= (pair$b ?v0 ?v1) (xtor$ (id_bnf$d (pair$b ?v0 ?v1)))) :pattern ((pair$b ?v0 ?v1))))) +(assert (forall ((?v0 B$) (?v1 B_tree_b_tree_prod$)) (! (= (pair$a ?v0 ?v1) (xtor$a (id_bnf$a (pair$a ?v0 ?v1)))) :pattern ((pair$a ?v0 ?v1))))) +(assert (forall ((?v0 B$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (pair$c ?v0 ?v1) (xtor$b (id_bnf$ (pair$c ?v0 ?v1)))) :pattern ((pair$c ?v0 ?v1))))) +(assert (forall ((?v0 A_b_fun$)) (! (= (inr$ ?v0) (xtor$c (id_bnf$e (inr$ ?v0)))) :pattern ((inr$ ?v0))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_prod$)) (= (snd$h ?v0) (comp$ci uvb$ (uncurry$ uvn$) ?v0)) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (= (snd$b ?v0) (fun_app$f (fun_app$fj (comp$cj uvd$) (uncurry$a uvo$)) ?v0)) )) +(assert (= (uncurry$b uvp$) id$n)) +(assert (= (uncurry$a uvq$) id$aa)) +(assert (forall ((?v0 B_b_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_b_tree_b_tree_prod_fun$)) (= (map_prod$ ?v0 ?v1) (uncurry$c (uvr$ ?v0 ?v1))) )) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_fun$) (?v1 B_tree_a_b_fun_sum_b_tree_fun$)) (= (fun_app$ba (map_prod$a ?v0) ?v1) (uncurry$d (uvs$ ?v0 ?v1))) )) +(assert (forall ((?v0 B_b_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod_prod$)) (! (= (fun_app$cd (uncurry$b uvp$) ?v0) ?v0) :pattern ((fun_app$cd (uncurry$b uvp$) ?v0))))) +(assert (forall ((?v0 B_tree_a_b_fun_sum_b_tree_a_b_fun_sum_prod$)) (! (= (fun_app$ay (uncurry$a uvq$) ?v0) ?v0) :pattern ((fun_app$ay (uncurry$a uvq$) ?v0))))) +(check-sat) +(exit) + diff --git a/test/regress/regress1/quantifiers/bug_743.smt2 b/test/regress/regress1/quantifiers/bug_743.smt2 new file mode 100644 index 000000000..ec5a5149e --- /dev/null +++ b/test/regress/regress1/quantifiers/bug_743.smt2 @@ -0,0 +1,777 @@ +; COMMAND-LINE: --lang=smt2.5 +; EXPECT: unsat + +;; produced by cvc4_14.drv ;; +(set-logic AUFBVDTNIRA) +(set-info :source |VC generated by SPARK 2014|) +(set-info :smt-lib-version 2.0) +(set-info :category industrial) +(set-info :status unsat) +;;; generated by SMT-LIB2 driver +;;; SMT-LIB2 driver: bit-vectors, common part +;;; SMT-LIB2: integer arithmetic +(declare-datatypes () ((tuple0 (Tuple0)))) +(declare-sort us_private 0) + +(declare-fun us_null_ext__ () us_private) + +(declare-sort us_type_of_heap 0) + +(declare-datatypes () +((us_type_of_heap__ref + (mk___type_of_heap__ref (us_type_of_heap__content us_type_of_heap))))) +(declare-sort us_image 0) + +(declare-datatypes () ((int__ref (mk_int__ref (int__content Int))))) +(declare-datatypes () ((bool__ref (mk_bool__ref (bool__content Bool))))) +(declare-datatypes () ((real__ref (mk_real__ref (real__content Real))))) +(declare-datatypes () +((us_private__ref (mk___private__ref (us_private__content us_private))))) +(define-fun int__ref___projection ((a int__ref)) Int (int__content a)) + +(define-fun bool__ref___projection ((a bool__ref)) Bool (bool__content a)) + +(define-fun real__ref___projection ((a real__ref)) Real (real__content a)) + +(define-fun us_private__ref___projection ((a us_private__ref)) us_private + (us_private__content a)) + +(declare-fun us_compatible_tags (Int Int) Bool) + +;; __compatible_tags_refl + (assert (forall ((tag Int)) (us_compatible_tags tag tag))) + +(define-fun to_int1 ((b Bool)) Int (ite (= b true) 1 0)) + +(define-fun of_int ((i Int)) Bool (ite (= i 0) false true)) + +(define-fun in_range ((x Int)) Bool (or (= x 0) (= x 1))) + +(declare-fun attr__ATTRIBUTE_IMAGE (Bool) us_image) + +(declare-fun attr__ATTRIBUTE_VALUE__pre_check (us_image) Bool) + +(declare-fun attr__ATTRIBUTE_VALUE (us_image) Bool) + +(declare-sort integer 0) + +(define-fun in_range1 ((x Int)) Bool (and (<= (- 2147483648) x) + (<= x 2147483647))) + +(define-fun bool_eq ((x Int) (y Int)) Bool (ite (= x y) true false)) + +(declare-fun attr__ATTRIBUTE_IMAGE1 (Int) us_image) + +(declare-fun attr__ATTRIBUTE_VALUE__pre_check1 (us_image) Bool) + +(declare-fun attr__ATTRIBUTE_VALUE1 (us_image) Int) + +(declare-fun to_rep (integer) Int) + +(declare-fun of_rep (Int) integer) + +(declare-fun user_eq (integer integer) Bool) + +(declare-fun dummy () integer) + +;; inversion_axiom + (assert + (forall ((x integer)) (! (= (of_rep (to_rep x)) x) :pattern ((to_rep x)) +))) + +;; range_axiom + (assert + (forall ((x integer)) (! (in_range1 (to_rep x)) :pattern ((to_rep x)) +))) + +;; coerce_axiom + (assert + (forall ((x Int)) + (! (=> (in_range1 x) (= (to_rep (of_rep x)) x)) :pattern ((to_rep + (of_rep x))) +))) + +(declare-datatypes () +((integer__ref (mk_integer__ref (integer__content integer))))) +(define-fun integer__ref___projection ((a integer__ref)) integer +(integer__content + a)) + +(declare-sort natural 0) + +(define-fun in_range2 ((x Int)) Bool (and (<= 0 x) (<= x 2147483647))) + +(define-fun bool_eq1 ((x Int) (y Int)) Bool (ite (= x y) true false)) + +(declare-fun attr__ATTRIBUTE_IMAGE2 (Int) us_image) + +(declare-fun attr__ATTRIBUTE_VALUE__pre_check2 (us_image) Bool) + +(declare-fun attr__ATTRIBUTE_VALUE2 (us_image) Int) + +(declare-fun to_rep1 (natural) Int) + +(declare-fun of_rep1 (Int) natural) + +(declare-fun user_eq1 (natural natural) Bool) + +(declare-fun dummy1 () natural) + +;; inversion_axiom + (assert + (forall ((x natural)) + (! (= (of_rep1 (to_rep1 x)) x) :pattern ((to_rep1 x)) ))) + +;; range_axiom + (assert + (forall ((x natural)) (! (in_range2 (to_rep1 x)) :pattern ((to_rep1 x)) +))) + +;; coerce_axiom + (assert + (forall ((x Int)) + (! (=> (in_range2 x) (= (to_rep1 (of_rep1 x)) x)) :pattern ((to_rep1 + (of_rep1 +x))) ))) + +(declare-datatypes () +((natural__ref (mk_natural__ref (natural__content natural))))) +(define-fun natural__ref___projection ((a natural__ref)) natural +(natural__content + a)) + +(define-fun dynamic_invariant ((temp___expr_33 Int) (temp___is_init_30 +Bool) + (temp___do_constant_31 Bool) + (temp___do_toplevel_32 Bool)) Bool (=> + (or (= temp___is_init_30 true) + (<= 0 2147483647)) (in_range2 + temp___expr_33))) + +(declare-sort index 0) + +(define-fun in_range3 ((x Int)) Bool (and (<= 1 x) (<= x 100))) + +(define-fun bool_eq2 ((x Int) (y Int)) Bool (ite (= x y) true false)) + +(declare-fun attr__ATTRIBUTE_IMAGE3 (Int) us_image) + +(declare-fun attr__ATTRIBUTE_VALUE__pre_check3 (us_image) Bool) + +(declare-fun attr__ATTRIBUTE_VALUE3 (us_image) Int) + +(declare-fun to_rep2 (index) Int) + +(declare-fun of_rep2 (Int) index) + +(declare-fun user_eq2 (index index) Bool) + +(declare-fun dummy2 () index) + +;; inversion_axiom + (assert + (forall ((x index)) + (! (= (of_rep2 (to_rep2 x)) x) :pattern ((to_rep2 x)) ))) + +;; range_axiom + (assert + (forall ((x index)) (! (in_range3 (to_rep2 x)) :pattern ((to_rep2 x)) +))) + +;; coerce_axiom + (assert + (forall ((x Int)) + (! (=> (in_range3 x) (= (to_rep2 (of_rep2 x)) x)) :pattern ((to_rep2 + (of_rep2 +x))) ))) + +(declare-datatypes () ((index__ref (mk_index__ref (index__content +index))))) +(define-fun index__ref___projection ((a index__ref)) index (index__content +a)) + +(define-fun dynamic_invariant1 ((temp___expr_144 Int) + (temp___is_init_141 Bool) (temp___do_constant_142 Bool) + (temp___do_toplevel_143 Bool)) Bool (=> + (or (= temp___is_init_141 true) + (<= 1 100)) (in_range3 + temp___expr_144))) + +(declare-datatypes () +((map__ref (mk_map__ref (map__content (Array Int natural)))))) +(declare-fun bool_eq3 ((Array Int natural) Int Int (Array Int natural) Int + Int) Bool) + +;; T__ada_array___equal_def + (assert + (forall ((a (Array Int natural))) + (forall ((af Int)) + (forall ((al Int)) + (forall ((b (Array Int natural))) + (forall ((bf Int)) + (forall ((bl Int)) + (! (= + (and (ite (<= af al) (= (+ (- al af) 1) (+ (- bl bf) 1)) (< bl bf)) + (forall ((i Int)) + (! (=> (and (<= af i) (<= i al)) + (= (select a i) (select b (+ (- bf af) i)))) :pattern ((select a +i)) ))) + (= (bool_eq3 a af al b bf bl) true)) :pattern ((bool_eq3 a af al b bf + bl)) )))))))) + +(declare-fun slide ((Array Int natural) Int Int) (Array Int natural)) + +;; slide_eq + (assert + (forall ((a (Array Int natural))) + (forall ((first Int)) + (! (= (slide a first first) a) :pattern ((slide a first first)) )))) + +;; slide_def + (assert + (forall ((a (Array Int natural))) + (forall ((old_first Int)) + (forall ((new_first Int)) + (forall ((i Int)) + (! (= (select (slide a old_first new_first) i) (select a (- i (- +new_first old_first)))) :pattern ((select + (slide a old_first new_first) i)) )))))) + +(declare-fun concat1 ((Array Int natural) Int Int (Array Int natural) Int + Int) (Array Int natural)) + +;; concat_def + (assert + (forall ((a (Array Int natural)) (b (Array Int natural))) + (forall ((a_first Int) (a_last Int) (b_first Int) (b_last Int)) + (forall ((i Int)) + (! (and + (=> (and (<= a_first i) (<= i a_last)) + (= (select (concat1 a a_first a_last b b_first b_last) i) (select a +i))) + (=> (< a_last i) + (= (select (concat1 a a_first a_last b b_first b_last) i) (select b +(+ (- i a_last) (- b_first 1)))))) :pattern ((select + (concat1 a a_first a_last b b_first b_last) i)) ))))) + +(declare-fun singleton (natural Int) (Array Int natural)) + +;; singleton_def + (assert + (forall ((v natural)) + (forall ((i Int)) + (! (= (select (singleton v i) i) v) :pattern ((select (singleton v i) +i)) )))) + +(declare-fun compare ((Array Int natural) Int Int (Array Int natural) Int + Int) Int) + +;; compare_def + (assert + (forall ((a (Array Int natural)) (b (Array Int natural))) + (forall ((a_first Int) (a_last Int) (b_first Int) (b_last Int)) + (! (and + (= (= (compare a a_first a_last b b_first b_last) 0) + (= (bool_eq3 a a_first a_last b b_first b_last) true)) + (and + (= (< (compare a a_first a_last b b_first b_last) 0) + (exists ((i Int) (j Int)) + (and (<= i a_last) + (and (< j b_last) + (and (= (bool_eq3 a a_first i b b_first j) true) + (or (= i a_last) + (and (< i a_last) + (< (to_rep1 (select a (+ i 1))) (to_rep1 (select b (+ j 1))))))))))) + (= (< 0 (compare a a_first a_last b b_first b_last)) + (exists ((i Int) (j Int)) + (and (<= i b_last) + (and (< j a_last) + (and (= (bool_eq3 a a_first j b b_first i) true) + (or (= i b_last) + (and (< i b_last) + (< (to_rep1 (select b (+ i 1))) (to_rep1 (select a (+ j +1))))))))))))) :pattern ( + (compare a a_first a_last b b_first b_last)) )))) + +(declare-sort t 0) + +(declare-fun first (t) integer) + +(declare-fun last (t) integer) + +(declare-fun mk (Int Int) t) + +;; mk_def + (assert + (forall ((f Int) (l Int)) + (! (=> (in_range1 f) + (=> (in_range1 l) + (and (= (to_rep (first (mk f l))) f) (= (to_rep (last (mk f l))) +l)))) :pattern ( + (mk f l)) ))) + +(define-fun dynamic_property ((range_first Int) (range_last Int) (low Int) + (high Int)) Bool (and (in_range1 low) + (and (in_range1 high) + (=> (<= low high) (and (in_range3 low) (in_range3 +high)))))) + +(declare-datatypes () ((us_t (mk___t (elts (Array Int natural))(rt t))))) +(define-fun to_array ((a us_t)) (Array Int natural) (elts a)) + +(define-fun of_array ((a (Array Int natural)) (f Int) + (l Int)) us_t (mk___t a (mk f l))) + +(define-fun first1 ((a us_t)) Int (to_rep (first (rt a)))) + +(define-fun last1 ((a us_t)) Int (to_rep (last (rt a)))) + +(define-fun length ((a us_t)) Int (ite (<= (first1 a) (last1 a)) + (+ (- (last1 a) (first1 a)) 1) 0)) + +(declare-fun value__size () Int) + +(declare-fun object__size ((Array Int natural)) Int) + +(declare-fun value__component__size () Int) + +(declare-fun object__component__size ((Array Int natural)) Int) + +(declare-fun value__alignment () Int) + +(declare-fun object__alignment ((Array Int natural)) Int) + +;; value__size_axiom + (assert (<= 0 value__size)) + +;; object__size_axiom + (assert (forall ((a (Array Int natural))) (<= 0 (object__size a)))) + +;; value__component__size_axiom + (assert (<= 0 value__component__size)) + +;; object__component__size_axiom + (assert + (forall ((a (Array Int natural))) (<= 0 (object__component__size a)))) + +;; value__alignment_axiom + (assert (<= 0 value__alignment)) + +;; object__alignment_axiom + (assert (forall ((a (Array Int natural))) (<= 0 (object__alignment a)))) + +(define-fun bool_eq4 ((x us_t) + (y us_t)) Bool (bool_eq3 (elts x) (to_rep (first (rt x))) + (to_rep (last (rt x))) (elts y) (to_rep (first (rt y))) + (to_rep (last (rt y))))) + +(declare-fun user_eq3 (us_t us_t) Bool) + +(declare-fun dummy3 () us_t) + +(declare-datatypes () +((nat_array__ref (mk_nat_array__ref (nat_array__content us_t))))) +(define-fun nat_array__ref___projection ((a nat_array__ref)) us_t +(nat_array__content + a)) + +(define-fun dynamic_invariant2 ((temp___expr_150 us_t) + (temp___is_init_147 Bool) (temp___do_constant_148 Bool) + (temp___do_toplevel_149 Bool)) Bool (=> + (not (= temp___do_constant_148 +true)) + (dynamic_property 1 100 + (first1 temp___expr_150) + (last1 temp___expr_150)))) + +(declare-fun remove_last (us_t) us_t) + +(declare-fun first2 () Int) + +(declare-fun last2 () Int) + +(define-fun dynamic_property1 ((first_int Int) (last_int Int) + (x Int)) Bool (and (<= first_int x) (<= x last_int))) + +(define-fun bool_eq5 ((x Int) (y Int)) Bool (ite (= x y) true false)) + +(declare-fun attr__ATTRIBUTE_IMAGE4 (Int) us_image) + +(declare-fun attr__ATTRIBUTE_VALUE__pre_check4 (us_image) Bool) + +(declare-fun attr__ATTRIBUTE_VALUE4 (us_image) Int) + +(declare-fun user_eq4 (integer integer) Bool) + +(declare-fun dummy4 () integer) + +(declare-datatypes () ((t15s__ref (mk_t15s__ref (t15s__content +integer))))) +(define-fun t15s__ref___projection ((a t15s__ref)) integer (t15s__content +a)) + +(declare-sort t1 0) + +(declare-fun first3 (t1) integer) + +(declare-fun last3 (t1) integer) + +(declare-fun mk1 (Int Int) t1) + +;; mk_def + (assert + (forall ((f Int) (l Int)) + (! (=> (in_range1 f) + (=> (in_range1 l) + (and (= (to_rep (first3 (mk1 f l))) f) (= (to_rep (last3 (mk1 f l))) +l)))) :pattern ( + (mk1 f l)) ))) + +(define-fun dynamic_property2 ((range_first Int) (range_last Int) (low +Int) + (high Int)) Bool (and (in_range1 low) + (and (in_range1 high) + (=> (<= low high) + (and (dynamic_property1 range_first range_last low) + (dynamic_property1 range_first range_last high)))))) + +(declare-datatypes () +((us_t1 (mk___t1 (elts1 (Array Int natural))(rt1 t1))))) +(define-fun to_array1 ((a us_t1)) (Array Int natural) (elts1 a)) + +(define-fun of_array1 ((a (Array Int natural)) (f Int) + (l Int)) us_t1 (mk___t1 a (mk1 f l))) + +(define-fun first4 ((a us_t1)) Int (to_rep (first3 (rt1 a)))) + +(define-fun last4 ((a us_t1)) Int (to_rep (last3 (rt1 a)))) + +(define-fun length1 ((a us_t1)) Int (ite (<= (first4 a) (last4 a)) + (+ (- (last4 a) (first4 a)) 1) 0)) + +(declare-fun value__size1 () Int) + +(declare-fun object__size1 ((Array Int natural)) Int) + +(declare-fun value__component__size1 () Int) + +(declare-fun object__component__size1 ((Array Int natural)) Int) + +(declare-fun value__alignment1 () Int) + +(declare-fun object__alignment1 ((Array Int natural)) Int) + +;; value__size_axiom + (assert (<= 0 value__size1)) + +;; object__size_axiom + (assert (forall ((a (Array Int natural))) (<= 0 (object__size1 a)))) + +;; value__component__size_axiom + (assert (<= 0 value__component__size1)) + +;; object__component__size_axiom + (assert + (forall ((a (Array Int natural))) (<= 0 (object__component__size1 a)))) + +;; value__alignment_axiom + (assert (<= 0 value__alignment1)) + +;; object__alignment_axiom + (assert (forall ((a (Array Int natural))) (<= 0 (object__alignment1 +a)))) + +(define-fun bool_eq6 ((x us_t1) + (y us_t1)) Bool (bool_eq3 (elts1 x) (to_rep (first3 (rt1 x))) + (to_rep (last3 (rt1 x))) (elts1 y) + (to_rep (first3 (rt1 y))) (to_rep (last3 (rt1 y))))) + +(declare-fun user_eq5 (us_t1 us_t1) Bool) + +(declare-fun dummy5 () us_t1) + +(declare-datatypes () ((t16s__ref (mk_t16s__ref (t16s__content us_t1))))) +(define-fun t16s__ref___projection ((a t16s__ref)) us_t1 (t16s__content +a)) + +;; remove_last__post_axiom + (assert + (forall ((a us_t)) + (! (=> (and (dynamic_invariant2 a true true true) (< 0 (length a))) + (dynamic_invariant2 (remove_last a) true false true)) :pattern ( + (remove_last a)) ))) + +;; remove_last__def_axiom + (assert + (forall ((a us_t)) + (! (=> (dynamic_invariant2 a true true true) + (= (remove_last a) (let ((temp___163 (let ((temp___162 (- (last1 a) +1))) + (let ((temp___161 (first1 a))) + (of_array1 (to_array a) +temp___161 + temp___162))))) + (of_array (to_array1 temp___163) (first4 +temp___163) + (last4 temp___163))))) :pattern ((remove_last a)) +))) + +(declare-fun occ (us_t Int) Int) + +(declare-sort nb_occ 0) + +(define-fun in_range4 ((x Int)) Bool (and (<= 0 x) (<= x 100))) + +(define-fun bool_eq7 ((x Int) (y Int)) Bool (ite (= x y) true false)) + +(declare-fun attr__ATTRIBUTE_IMAGE5 (Int) us_image) + +(declare-fun attr__ATTRIBUTE_VALUE__pre_check5 (us_image) Bool) + +(declare-fun attr__ATTRIBUTE_VALUE5 (us_image) Int) + +(declare-fun to_rep3 (nb_occ) Int) + +(declare-fun of_rep3 (Int) nb_occ) + +(declare-fun user_eq6 (nb_occ nb_occ) Bool) + +(declare-fun dummy6 () nb_occ) + +;; inversion_axiom + (assert + (forall ((x nb_occ)) + (! (= (of_rep3 (to_rep3 x)) x) :pattern ((to_rep3 x)) ))) + +;; range_axiom + (assert + (forall ((x nb_occ)) (! (in_range4 (to_rep3 x)) :pattern ((to_rep3 x)) +))) + +;; coerce_axiom + (assert + (forall ((x Int)) + (! (=> (in_range4 x) (= (to_rep3 (of_rep3 x)) x)) :pattern ((to_rep3 + (of_rep3 +x))) ))) + +(declare-datatypes () +((nb_occ__ref (mk_nb_occ__ref (nb_occ__content nb_occ))))) +(define-fun nb_occ__ref___projection ((a nb_occ__ref)) nb_occ +(nb_occ__content + a)) + +(define-fun dynamic_invariant3 ((temp___expr_155 Int) + (temp___is_init_152 Bool) (temp___do_constant_153 Bool) + (temp___do_toplevel_154 Bool)) Bool (=> + (or (= temp___is_init_152 true) + (<= 0 100)) (in_range4 + temp___expr_155))) + +(declare-fun occ_def (us_t Int) Int) + +;; occ__post_axiom + (assert + (forall ((a us_t)) + (forall ((e Int)) + (! (=> (and (dynamic_invariant2 a true true true) (in_range2 e)) + (let ((result (occ a e))) + (and (<= result (length a)) (dynamic_invariant3 result true false +true)))) :pattern ( + (occ a e)) )))) + +;; occ__def_axiom + (assert + (forall ((a us_t)) + (forall ((e Int)) + (! (=> (and (dynamic_invariant2 a true true true) (in_range2 e)) + (= (occ a e) (occ_def a e))) :pattern ((occ a e)) )))) + +(declare-fun is_set (us_t Int Int us_t) Bool) + +;; is_set__def_axiom + (assert + (forall ((a us_t) (r us_t)) + (forall ((i Int) (v Int)) + (! (= (= (is_set a i v r) true) + (and + (and (and (= (first1 r) (first1 a)) (= (last1 r) (last1 a))) + (= (to_rep1 (select (to_array r) i)) v)) + (forall ((j Int)) + (=> (and (<= (first1 a) j) (<= j (last1 a))) + (=> (not (= i j)) + (= (to_rep1 (select (to_array r) j)) (to_rep1 (select (to_array a) +j)))))))) :pattern ( + (is_set a i v r)) )))) + +(declare-fun a () us_t) + +(declare-fun attr__ATTRIBUTE_ADDRESS () Int) + +(declare-fun i () Int) + +(declare-fun attr__ATTRIBUTE_ADDRESS1 () Int) + +(declare-fun v () Int) + +(declare-fun attr__ATTRIBUTE_ADDRESS2 () Int) + +(declare-fun e () Int) + +(declare-fun attr__ATTRIBUTE_ADDRESS3 () Int) + +(declare-fun r () us_t) + +(declare-fun attr__ATTRIBUTE_ADDRESS4 () Int) + +(declare-fun b__first () integer) + +(declare-fun b__last () integer) + +(declare-fun attr__ATTRIBUTE_ADDRESS5 () Int) + +(define-fun dynamic_invariant4 ((temp___expr_15 Int) (temp___is_init_12 +Bool) + (temp___do_constant_13 Bool) + (temp___do_toplevel_14 Bool)) Bool (=> + (or (= temp___is_init_12 true) + (<= (- 2147483648) 2147483647)) + (in_range1 temp___expr_15))) + +;; occ_def__def_axiom + (assert + (forall ((a1 us_t)) + (forall ((e1 Int)) + (! (=> (and (dynamic_invariant2 a1 true true true) (in_range2 e1)) + (= (occ_def a1 e1) (ite (= (length a1) 0) 0 + (ite (= (to_rep1 (select (to_array a1) (last1 +a1))) e1) + (+ (occ_def (remove_last a1) e1) 1) + (occ_def (remove_last a1) e1))))) :pattern +((occ_def + a1 +e1)) )))) + +(declare-fun b () (Array Int natural)) + +(declare-fun perm__occ_set__b__assume () (Array Int natural)) + +(declare-fun perm__occ_set__b__assume1 () t) + +(declare-fun o () natural) + +(declare-fun o1 () Int) + +(declare-fun o2 () (Array Int natural)) + +(declare-fun o3 () (Array Int natural)) + +(declare-fun o4 () t) + +(declare-fun result () (Array Int natural)) + +(declare-fun b1 () (Array Int natural)) + +(declare-fun result1 () (Array Int natural)) + +(declare-fun b2 () (Array Int natural)) + +(define-fun o5 () us_t (mk___t o3 o4)) + +(define-fun perm__occ_set__b__assume2 () us_t (mk___t + perm__occ_set__b__assume + perm__occ_set__b__assume1)) + +;; H + (assert (dynamic_invariant2 a true false true)) + +;; H + (assert (in_range3 i)) + +;; H + (assert (in_range2 v)) + +;; H + (assert (in_range2 e)) + +;; H + (assert (dynamic_invariant2 r true false true)) + +;; H + (assert + (and (and (<= (to_rep (first (rt a))) i) (<= i (to_rep (last (rt a))))) + (= (is_set a i v r) true))) + +;; H + (assert + (and (= perm__occ_set__b__assume2 (remove_last a)) + (and (dynamic_invariant2 perm__occ_set__b__assume2 true false true) + (and (= (elts a) perm__occ_set__b__assume) + (= (mk + (to_rep + (first3 (mk1 (to_rep (first (rt a))) (- (to_rep (last (rt a))) 1)))) + (to_rep + (last3 (mk1 (to_rep (first (rt a))) (- (to_rep (last (rt a))) 1))))) + perm__occ_set__b__assume1))))) + +;; H + (assert (= (mk_map__ref result) (mk_map__ref b))) + +;; H + (assert (= b1 perm__occ_set__b__assume)) + +;; H + (assert (= (to_rep b__first) (to_rep (first +perm__occ_set__b__assume1)))) + +;; H + (assert (= (to_rep b__last) (to_rep (last perm__occ_set__b__assume1)))) + +;; H + (assert (dynamic_property 1 100 (to_rep b__first) (to_rep b__last))) + +;; H + (assert (not (= (length a) 0))) + +;; H + (assert (not (= i (to_rep (last (rt a)))))) + +;; H + (assert (= (to_rep1 o) v)) + +;; H + (assert (and (<= (to_rep b__first) i) (<= i (to_rep b__last)))) + +;; H + (assert (= o1 i)) + +;; H + (assert (= o2 (store b1 o1 o))) + +;; H + (assert (= b1 result1)) + +;; H + (assert (= b2 o2)) + +;; H + (assert + (and (= o5 (remove_last r)) + (and (dynamic_invariant2 o5 true false true) + (and (= (elts r) o3) + (= (mk + (to_rep + (first3 (mk1 (to_rep (first (rt r))) (- (to_rep (last (rt r))) 1)))) + (to_rep + (last3 (mk1 (to_rep (first (rt r))) (- (to_rep (last (rt r))) 1))))) + o4))))) + +(assert +;; WP_parameter_def + ;; File "perm.ads", line 21, characters 0-0 + (not + (= (bool_eq3 o3 (to_rep (first o4)) (to_rep (last o4)) b2 + (to_rep (first (mk (to_rep b__first) (to_rep b__last)))) + (to_rep (last (mk (to_rep b__first) (to_rep b__last))))) true))) +(check-sat) + diff --git a/test/regress/regress1/quantifiers/burns13.smt2 b/test/regress/regress1/quantifiers/burns13.smt2 new file mode 100644 index 000000000..3424c161e --- /dev/null +++ b/test/regress/regress1/quantifiers/burns13.smt2 @@ -0,0 +1,20 @@ +; COMMAND-LINE: --full-saturate-quant --decision=internal +; EXPECT: unsat +(set-logic AUFLIA) +(set-info :source | Burns mutual exclusion protocol. This is a benchmark of the haRVey theorem prover. It was translated to SMT-LIB by Leonardo de Moura |) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-fun s_0 (Int) Bool) +(declare-fun s_1 (Int) Bool) +(declare-fun s_2 (Int) Bool) +(declare-fun s_3 (Int) Bool) +(declare-fun s_4 (Int) Bool) +(declare-fun s_5 (Int) Bool) +(declare-fun s (Int Int) Bool) +(declare-fun flag (Int) Bool) +(declare-fun p () Int) +(declare-fun q () Int) +(assert (not (=> (and (forall ((?p Int)) (=> (not (flag ?p)) (or (s_0 ?p) (s_1 ?p) (s_2 ?p)))) (forall ((?p Int)) (forall ((?q Int)) (=> (s_2 ?p) (not (s ?p ?q))))) (forall ((?p Int)) (forall ((?q Int)) (=> (and (< ?q ?p) (flag ?q) (or (s_5 ?p) (s_4 ?p) (and (s_3 ?p) (s ?p ?q)))) (and (not (s_5 ?q)) (not (and (s_4 ?q) (s ?q ?p))))))) (forall ((?p Int)) (=> (s_0 ?p) (not (or (s_1 ?p) (s_2 ?p) (s_3 ?p) (s_4 ?p) (s_5 ?p))))) (forall ((?p Int)) (=> (s_1 ?p) (not (or (s_2 ?p) (s_3 ?p) (s_4 ?p) (s_5 ?p))))) (forall ((?p Int)) (=> (s_2 ?p) (not (or (s_3 ?p) (s_4 ?p) (s_5 ?p))))) (forall ((?p Int)) (=> (s_3 ?p) (not (or (s_4 ?p) (s_5 ?p))))) (forall ((?p Int)) (=> (s_4 ?p) (not (s_5 ?p)))) (forall ((?r Int)) (let ((?v_0 (not (= ?r p)))) (=> (s_0 ?r) (not (or (s_1 ?r) (s_2 ?r) (s_3 ?r) (=> ?v_0 (and ?v_0 (=> ?v_0 (s_4 ?r)))) (s_5 ?r)))))) (forall ((?r Int)) (let ((?v_1 (not (= ?r p)))) (=> (s_1 ?r) (not (or (s_2 ?r) (s_3 ?r) (=> ?v_1 (and ?v_1 (=> ?v_1 (s_4 ?r)))) (s_5 ?r)))))) (forall ((?r Int)) (let ((?v_2 (not (= ?r p)))) (=> (s_2 ?r) (not (or (s_3 ?r) (=> ?v_2 (and ?v_2 (=> ?v_2 (s_4 ?r)))) (s_5 ?r)))))) (forall ((?r Int)) (let ((?v_3 (not (= ?r p)))) (=> (s_3 ?r) (not (or (=> ?v_3 (and ?v_3 (=> ?v_3 (s_4 ?r)))) (s_5 ?r)))))) (forall ((?r Int)) (let ((?v_4 (not (= ?r p)))) (=> (=> ?v_4 (and ?v_4 (=> ?v_4 (s_4 ?r)))) (not (s_5 ?r))))) (s_4 p) (not (s p q)) (< p q) (not (flag q))) (and (forall ((?t Int)) (=> (not (flag ?t)) (or (s_0 ?t) (s_1 ?t) (s_2 ?t)))) (forall ((?t Int)) (forall ((?r Int)) (=> (s_2 ?t) (not (=> (not (and (= ?r q) (= ?t p))) (s ?t ?r)))))) (forall ((?t Int)) (forall ((?r Int)) (let ((?v_6 (= ?t p))) (let ((?v_5 (not ?v_6)) (?v_8 (= ?r p))) (let ((?v_7 (not ?v_8))) (=> (and (< ?r ?t) (flag ?r) (or (s_5 ?t) (=> ?v_5 (and ?v_5 (=> ?v_5 (s_4 ?t)))) (and (s_3 ?t) (=> (not (and (= ?r q) ?v_6)) (s ?t ?r))))) (and (not (s_5 ?r)) (not (and (=> ?v_7 (and ?v_7 (=> ?v_7 (s_4 ?r)))) (=> (not (and (= ?t q) ?v_8)) (s ?r ?t))))))))))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/burns4.smt2 b/test/regress/regress1/quantifiers/burns4.smt2 new file mode 100644 index 000000000..72023fd4f --- /dev/null +++ b/test/regress/regress1/quantifiers/burns4.smt2 @@ -0,0 +1,20 @@ +; COMMAND-LINE: --full-saturate-quant +; EXPECT: unsat +(set-logic AUFLIA) +(set-info :source | Burns mutual exclusion protocol. This is a benchmark of the haRVey theorem prover. It was translated to SMT-LIB by Leonardo de Moura |) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-fun s_0 (Int) Bool) +(declare-fun s_1 (Int) Bool) +(declare-fun s_2 (Int) Bool) +(declare-fun s_3 (Int) Bool) +(declare-fun s_4 (Int) Bool) +(declare-fun s_5 (Int) Bool) +(declare-fun s (Int Int) Bool) +(declare-fun flag (Int) Bool) +(declare-fun p () Int) +(declare-fun q () Int) +(assert (not (=> (and (forall ((?p Int)) (=> (not (flag ?p)) (or (s_0 ?p) (s_1 ?p) (s_2 ?p)))) (forall ((?p Int)) (forall ((?q Int)) (=> (s_2 ?p) (not (s ?p ?q))))) (forall ((?p Int)) (forall ((?q Int)) (=> (and (< ?q ?p) (flag ?q) (or (s_5 ?p) (s_4 ?p) (and (s_3 ?p) (s ?p ?q)))) (and (not (s_5 ?q)) (not (and (s_4 ?q) (s ?q ?p))))))) (forall ((?p Int)) (=> (s_0 ?p) (not (or (s_1 ?p) (s_2 ?p) (s_3 ?p) (s_4 ?p) (s_5 ?p))))) (forall ((?p Int)) (=> (s_1 ?p) (not (or (s_2 ?p) (s_3 ?p) (s_4 ?p) (s_5 ?p))))) (forall ((?p Int)) (=> (s_2 ?p) (not (or (s_3 ?p) (s_4 ?p) (s_5 ?p))))) (forall ((?p Int)) (=> (s_3 ?p) (not (or (s_4 ?p) (s_5 ?p))))) (forall ((?p Int)) (=> (s_4 ?p) (not (s_5 ?p))))) (forall ((?p Int)) (forall ((?q Int)) (=> (not (= ?p ?q)) (or (not (s_5 ?p)) (not (s_5 ?q))))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/cbqi-sdlx-fixpoint-3-dd.smt2 b/test/regress/regress1/quantifiers/cbqi-sdlx-fixpoint-3-dd.smt2 new file mode 100644 index 000000000..4d5cf4ec4 --- /dev/null +++ b/test/regress/regress1/quantifiers/cbqi-sdlx-fixpoint-3-dd.smt2 @@ -0,0 +1,19 @@ +; COMMAND-LINE: --cbqi --decision=internal +; EXPECT: unsat +(set-logic LIA) +(set-info :status unsat) + +(assert (or +(forall ((H Int) (G Int)) (= (= G 0) (= H 0))) + +(forall ((C Int) (D Int) (E Int)) (or +(= (= D 0) (= C 0)) +(and +(not (forall ((G Int)) (= (= E 0) (= G 0)))) +(not (forall ((A Int)) + (not (= (ite (= A 0) 0 1) (ite (= C 0) 0 2))) +)) +))) +)) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/cdt-0208-to.smt2 b/test/regress/regress1/quantifiers/cdt-0208-to.smt2 new file mode 100644 index 000000000..9eff608bb --- /dev/null +++ b/test/regress/regress1/quantifiers/cdt-0208-to.smt2 @@ -0,0 +1,767 @@ +; COMMAND-LINE: --full-saturate-quant --lang=smt2.5 +; EXPECT: unsat +(set-logic ALL_SUPPORTED) +(set-info :status unsat) +(declare-sort A$ 0) +(declare-sort A_set$ 0) +(declare-sort A_a_fun$ 0) +(declare-sort A_bool_fun$ 0) +(declare-sort Bool_a_fun$ 0) +(declare-sort A_a_llist_fun$ 0) +(declare-sort A_llist_a_fun$ 0) +(declare-sort Bool_bool_fun$ 0) +(declare-sort A_a_bool_fun_fun$ 0) +(declare-sort A_llist_bool_fun$ 0) +(declare-sort Bool_a_llist_fun$ 0) +(declare-sort A_llist_a_set_fun$ 0) +(declare-sort A_a_llist_a_fun_fun$ 0) +(declare-sort A_llist_a_llist_fun$ 0) +(declare-sort A_a_llist_bool_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_set$ 0) +(declare-sort A_a_llist_a_llist_fun_fun$ 0) +(declare-sort A_llist_a_llist_bool_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_set_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_bool_fun$ 0) +(declare-sort Bool_a_llist_a_llist_prod_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_set_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_prod_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_fun$ 0) +(declare-sort A_llist_a_llist_prod_set_bool_fun$ 0) +(declare-sort Bool_a_llist_a_llist_prod_set_fun$ 0) +(declare-sort A_llist_a_llist_prod_llist_bool_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_prod_set_fun$ 0) +(declare-sort A_a_llist_a_fun_fun_a_llist_a_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_bool_fun_bool_fun$ 0) +(declare-sort Bool_a_llist_a_llist_prod_bool_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_prod_bool_fun_fun$ 0) +(declare-sort A_a_llist_a_fun_fun_a_a_llist_a_fun_fun_fun$ 0) +(declare-sort A_a_llist_bool_fun_fun_a_llist_bool_fun_fun$ 0) +(declare-sort A_llist_a_llist_fun_a_llist_a_llist_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_fun$ 0) +(declare-sort A_a_llist_a_fun_fun_a_a_llist_bool_fun_fun_fun$ 0) +(declare-sort A_a_llist_bool_fun_fun_a_a_llist_a_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$ 0) +(declare-sort A_a_llist_a_fun_fun_a_a_llist_a_llist_fun_fun_fun$ 0) +(declare-sort A_a_llist_a_llist_fun_fun_a_a_llist_a_fun_fun_fun$ 0) +(declare-sort A_a_llist_a_llist_fun_fun_a_llist_a_llist_fun_fun$ 0) +(declare-sort A_a_llist_bool_fun_fun_a_a_llist_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_set_fun$ 0) +(declare-sort A_llist_a_llist_prod_set_a_llist_a_llist_prod_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$ 0) +(declare-sort A_llist_a_llist_prod_llist_a_llist_a_llist_prod_fun$ 0) +(declare-sort A_a_llist_a_llist_fun_fun_a_a_llist_bool_fun_fun_fun$ 0) +(declare-sort A_a_llist_bool_fun_fun_a_a_llist_a_llist_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_bool_fun_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_fun_a_llist_a_llist_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$ 0) +(declare-sort A_a_llist_a_llist_fun_fun_a_a_llist_a_llist_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$ 0) +(declare-sort A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun$ 0) +(declare-sort A_llist_a_llist_prod_set_a_llist_a_llist_prod_bool_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun$ 0) +(declare-sort A_llist_a_fun_a_llist_a_llist_fun_a_llist_a_llist_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_bool_fun_fun_a_llist_a_llist_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun$ 0) +(declare-sort A_llist_a_llist_bool_fun_fun_a_llist_a_llist_prod_bool_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod_set$ 0) +(declare-sort A_llist_a_llist_prod_bool_fun_a_llist_a_llist_prod_bool_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_bool_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_llist_a_llist_a_llist_prod_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_a_llist_a_llist_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_bool_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_set_a_llist_a_llist_a_llist_a_llist_bool_fun_fun_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_set_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_a_llist_a_llist_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_bool_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_prod_set_fun_a_llist_a_llist_a_llist_a_llist_bool_fun_fun_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_prod_set_fun_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun_a_llist_a_llist_prod_llist_bool_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun_a_llist_a_llist_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$ 0) +(declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$ 0) +(declare-codatatypes () ((A_llist$ (lNil$) (lCons$ (lhd$ A$) (ltl$ A_llist$))))) +(declare-datatypes () ((A_llist_a_llist_prod$ (pair$ (fst$ A_llist$) (snd$ A_llist$))))) +(declare-codatatypes () ((A_llist_a_llist_prod_llist$ (lNil$a) (lCons$a (lhd$a A_llist_a_llist_prod$) (ltl$a A_llist_a_llist_prod_llist$))))) +(declare-datatypes () ((A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod$ (pair$a (fst$a A_llist_a_llist_prod_llist$) (snd$a A_llist_a_llist_prod_llist$))) + (A_llist_a_llist_prod_a_llist_a_llist_prod_prod$ (pair$b (fst$b A_llist_a_llist_prod$) (snd$b A_llist_a_llist_prod$))))) +(declare-fun p$ () A_llist_a_llist_bool_fun_fun$) +(declare-fun uu$ (Bool) A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun xs$ () A_llist$) +(declare-fun ys$ () A_llist$) +(declare-fun sup$ (A_llist_a_llist_prod_set$ A_llist_a_llist_prod_set$) A_llist_a_llist_prod_set$) +(declare-fun the$ (A_llist_a_llist_prod_bool_fun$) A_llist_a_llist_prod$) +(declare-fun uua$ (Bool) A_llist_a_llist_bool_fun_fun_a_llist_a_llist_bool_fun_fun_fun$) +(declare-fun uub$ (A_llist_a_llist_prod_a_llist_a_llist_prod_set_fun$) A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) +(declare-fun uuc$ (A_llist_a_llist_prod_a_llist_a_llist_prod_fun$) A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) +(declare-fun uud$ (A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun uue$ (A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun uuf$ (A_llist_a_llist_prod_bool_fun$) A_llist_a_llist_bool_fun_fun$) +(declare-fun uug$ (A_set$) A_bool_fun$) +(declare-fun uuh$ (A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$) +(declare-fun uui$ (A_llist_a_llist_prod_set$) A_llist_a_llist_prod_bool_fun$) +(declare-fun uuj$ (Bool_bool_fun$) A_llist_a_llist_bool_fun_fun_a_llist_a_llist_bool_fun_fun_fun$) +(declare-fun uuk$ (Bool_a_llist_a_llist_prod_fun$ A_llist_a_llist_bool_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) +(declare-fun uul$ (A_llist_a_llist_prod_bool_fun$) A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_bool_fun_fun_fun$) +(declare-fun uum$ (Bool_a_llist_a_llist_prod_set_fun$) A_llist_a_llist_bool_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_fun$) +(declare-fun uun$ (A_llist_a_llist_prod_set_bool_fun$) A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_a_llist_a_llist_bool_fun_fun_fun$) +(declare-fun uuo$ (Bool_a_llist_a_llist_prod_bool_fun_fun$) A_llist_a_llist_bool_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$) +(declare-fun uup$ (Bool_bool_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun uuq$ (A_llist_a_llist_prod_bool_fun_bool_fun$) A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_a_llist_a_llist_bool_fun_fun_fun$) +(declare-fun uur$ (A_llist_a_llist_prod_a_llist_a_llist_prod_fun$ A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) +(declare-fun uus$ (A_llist_a_llist_prod_set_a_llist_a_llist_prod_fun$ A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) +(declare-fun uut$ (A_llist_a_llist_bool_fun_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun uuu$ (A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_fun$) +(declare-fun uuv$ (A_llist_a_llist_a_llist_a_llist_prod_fun_fun$ A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) +(declare-fun uuw$ (A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun_a_llist_a_llist_bool_fun_fun_fun$) +(declare-fun uux$ (A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun uuy$ (A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$) +(declare-fun uuz$ (A_llist_a_llist_bool_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_bool_fun_fun_fun$) +(declare-fun uva$ () A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun uvb$ () A_llist_a_llist_bool_fun_fun$) +(declare-fun uvc$ () A_llist_a_llist_prod_llist_a_llist_a_llist_prod_fun$) +(declare-fun uvd$ () A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun$) +(declare-fun uve$ () A_llist_a_fun$) +(declare-fun uvf$ () A_llist_a_llist_fun$) +(declare-fun uvg$ (A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) A_llist_a_llist_prod_a_llist_a_llist_bool_fun_fun_fun$) +(declare-fun uvh$ (Bool_bool_fun$) A_a_llist_bool_fun_fun_a_a_llist_bool_fun_fun_fun$) +(declare-fun uvi$ (Bool_a_llist_fun$) A_a_llist_bool_fun_fun_a_a_llist_a_llist_fun_fun_fun$) +(declare-fun uvj$ (Bool_a_fun$) A_a_llist_bool_fun_fun_a_a_llist_a_fun_fun_fun$) +(declare-fun uvk$ (A_llist_bool_fun$) A_a_llist_a_llist_fun_fun_a_a_llist_bool_fun_fun_fun$) +(declare-fun uvl$ (A_llist_a_llist_fun$) A_a_llist_a_llist_fun_fun_a_a_llist_a_llist_fun_fun_fun$) +(declare-fun uvm$ (A_llist_a_fun$) A_a_llist_a_llist_fun_fun_a_a_llist_a_fun_fun_fun$) +(declare-fun uvn$ (A_bool_fun$) A_a_llist_a_fun_fun_a_a_llist_bool_fun_fun_fun$) +(declare-fun uvo$ (A_a_llist_fun$) A_a_llist_a_fun_fun_a_a_llist_a_llist_fun_fun_fun$) +(declare-fun uvp$ (A_a_fun$) A_a_llist_a_fun_fun_a_a_llist_a_fun_fun_fun$) +(declare-fun uvq$ () A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun$) +(declare-fun uvr$ () A_a_llist_bool_fun_fun$) +(declare-fun uvs$ () A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun$) +(declare-fun uvt$ () A_a_llist_bool_fun_fun$) +(declare-fun uvu$ () A_llist_a_llist_prod_a_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun_fun$) +(declare-fun uvv$ () A_a_llist_a_llist_fun_fun$) +(declare-fun uvw$ () A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$) +(declare-fun uvx$ () A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) +(declare-fun uvy$ (A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun uvz$ (A_llist_a_llist_prod_set$) A_llist_a_llist_bool_fun_fun$) +(declare-fun uwa$ () A_llist_a_llist_prod_a_llist_a_llist_prod_llist_a_llist_a_llist_prod_fun_fun$) +(declare-fun uwb$ () A_a_llist_a_fun_fun$) +(declare-fun uwc$ (A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) +(declare-fun uwd$ (A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) +(declare-fun uwe$ (A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun uwf$ (A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun uwg$ (A_llist_a_llist_bool_fun_fun$) A_llist_a_llist_bool_fun_fun$) +(declare-fun uwh$ (A_llist_a_llist_prod_llist$) A_llist_a_llist_prod_a_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun_fun$) +(declare-fun uwi$ (A_llist$) A_a_llist_a_llist_fun_fun$) +(declare-fun uwj$ (A_llist$) A_a_llist_a_llist_fun_fun$) +(declare-fun uwk$ (A_llist_a_llist_prod_set$) A_llist_a_llist_fun_a_llist_a_llist_bool_fun_fun_fun$) +(declare-fun uwl$ (A_llist_bool_fun$) A_llist_a_llist_a_llist_prod_set_fun_a_llist_a_llist_a_llist_a_llist_bool_fun_fun_fun_fun_fun$) +(declare-fun uwm$ (A_llist_bool_fun$) A_llist_a_llist_a_llist_prod_set_fun_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$) +(declare-fun uwn$ (A_llist_a_llist_prod_set$) A_llist_a_llist_prod_set_a_llist_a_llist_a_llist_a_llist_bool_fun_fun_fun_fun_fun$) +(declare-fun uwo$ (A_llist_a_llist_prod_set$) A_llist_a_llist_prod_set_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$) +(declare-fun uwp$ (A_llist_a_llist_prod_bool_fun$) A_llist_a_llist_prod_bool_fun_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun uwq$ (A_llist_a_llist_prod_set$) A_llist_a_llist_prod_set_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun uwr$ (A_llist_a_llist_prod_bool_fun$) A_llist_a_llist_prod_bool_fun_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun uws$ (A_llist_a_llist_prod_set$) A_llist_a_llist_prod_bool_fun_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun uwt$ (A_llist$) A_llist_a_llist_a_llist_bool_fun_fun_fun$) +(declare-fun lset$ (A_llist_a_llist_prod_llist$) A_llist_a_llist_prod_set$) +(declare-fun swap$ (A_llist_a_llist_prod$) A_llist_a_llist_prod$) +(declare-fun lnull$ () A_llist_bool_fun$) +(declare-fun lset$a (A_llist$) A_set$) +(declare-fun swap$a (A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) +(declare-fun image2$ (A_llist_a_llist_prod_set$ A_llist_a_llist_prod_a_llist_fun$ A_llist_a_llist_prod_a_llist_fun$) A_llist_a_llist_prod_set$) +(declare-fun in_rel$ (A_llist_a_llist_prod_set$) A_llist_a_llist_bool_fun_fun$) +(declare-fun lnull$a () A_llist_a_llist_prod_llist_bool_fun$) +(declare-fun member$ (A_llist_a_llist_prod$) A_llist_a_llist_prod_set_bool_fun$) +(declare-fun collect$ (A_llist_a_llist_prod_bool_fun$) A_llist_a_llist_prod_set$) +(declare-fun fun_app$ (A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun$ A_llist_a_llist_prod_llist$) A_llist_a_llist_prod_llist$) +(declare-fun lappend$ (A_llist_a_llist_prod_llist$) A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun$) +(declare-fun less_eq$ (A_llist_a_llist_prod_set$) A_llist_a_llist_prod_set_bool_fun$) +(declare-fun lfinite$ (A_llist_a_llist_prod_llist$) Bool) +(declare-fun lmember$ (A_llist_a_llist_prod$) A_llist_a_llist_prod_llist_bool_fun$) +(declare-fun lprefix$ (A_llist$) A_llist_bool_fun$) +(declare-fun member$a (A_llist_a_llist_prod_a_llist_a_llist_prod_prod$ A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) Bool) +(declare-fun member$b (A$ A_set$) Bool) +(declare-fun member$c (A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod$ A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod_set$) Bool) +(declare-fun uncurry$ () A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun$) +(declare-fun collect$a (A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) +(declare-fun collect$b (A_bool_fun$) A_set$) +(declare-fun fun_app$a (A_llist_a_llist_fun$ A_llist$) A_llist$) +(declare-fun fun_app$b (A_llist_a_llist_prod_llist_a_llist_a_llist_prod_fun$ A_llist_a_llist_prod_llist$) A_llist_a_llist_prod$) +(declare-fun fun_app$c (A_llist_a_fun$ A_llist$) A$) +(declare-fun fun_app$d (A_llist_a_llist_a_llist_prod_fun$ A_llist$) A_llist_a_llist_prod$) +(declare-fun fun_app$e (A_llist_a_llist_a_llist_a_llist_prod_fun_fun$ A_llist$) A_llist_a_llist_a_llist_prod_fun$) +(declare-fun fun_app$f (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) +(declare-fun fun_app$g (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun$) +(declare-fun fun_app$h (A_llist_a_llist_prod_bool_fun$ A_llist_a_llist_prod$) Bool) +(declare-fun fun_app$i (A_llist_a_llist_prod_set_bool_fun$ A_llist_a_llist_prod_set$) Bool) +(declare-fun fun_app$j (A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$ A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) Bool) +(declare-fun fun_app$k (A_bool_fun$ A$) Bool) +(declare-fun fun_app$l (A_llist_bool_fun$ A_llist$) Bool) +(declare-fun fun_app$m (A_llist_a_llist_bool_fun_fun$ A_llist$) A_llist_bool_fun$) +(declare-fun fun_app$n (A_llist_a_llist_a_llist_prod_set_fun$ A_llist$) A_llist_a_llist_prod_set$) +(declare-fun fun_app$o (A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$ A_llist$) A_llist_a_llist_a_llist_prod_set_fun$) +(declare-fun fun_app$p (A_llist_a_llist_a_llist_prod_bool_fun_fun$ A_llist$) A_llist_a_llist_prod_bool_fun$) +(declare-fun fun_app$q (A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$ A_llist$) A_llist_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun fun_app$r (A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_bool_fun$) +(declare-fun fun_app$s (A_llist_a_llist_prod_set_a_llist_a_llist_prod_bool_fun_fun$ A_llist_a_llist_prod_set$) A_llist_a_llist_prod_bool_fun$) +(declare-fun fun_app$t (A_llist_a_llist_prod_bool_fun_a_llist_a_llist_prod_bool_fun_fun$ A_llist_a_llist_prod_bool_fun$) A_llist_a_llist_prod_bool_fun$) +(declare-fun fun_app$u (A_llist_a_llist_prod_a_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun$) +(declare-fun fun_app$v (A_a_llist_a_llist_fun_fun$ A$) A_llist_a_llist_fun$) +(declare-fun fun_app$w (A_llist_a_llist_prod_a_llist_a_llist_prod_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod$) +(declare-fun fun_app$x (A_llist_a_llist_prod_a_llist_a_llist_prod_set_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_set$) +(declare-fun fun_app$y (A_llist_a_llist_prod_a_llist_a_llist_bool_fun_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_bool_fun_fun$) +(declare-fun fun_app$z (A_llist_a_llist_fun_a_llist_a_llist_bool_fun_fun_fun$ A_llist_a_llist_fun$) A_llist_a_llist_bool_fun_fun$) +(declare-fun lappend$a (A_llist$) A_llist_a_llist_fun$) +(declare-fun less_eq$a (A_set$ A_set$) Bool) +(declare-fun less_eq$b (A_llist_a_llist_prod_bool_fun$) A_llist_a_llist_prod_bool_fun_bool_fun$) +(declare-fun less_eq$c (A_llist_a_llist_bool_fun_fun$ A_llist_a_llist_bool_fun_fun$) Bool) +(declare-fun lex_prod$ (A_llist_a_llist_prod_set$ A_llist_a_llist_prod_set$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) +(declare-fun lfinite$a (A_llist$) Bool) +(declare-fun lmember$a (A$) A_llist_bool_fun$) +(declare-fun lprefix$a (A_llist_a_llist_prod_llist$) A_llist_a_llist_prod_llist_bool_fun$) +(declare-fun same_fst$ (A_llist_bool_fun$ A_llist_a_llist_a_llist_prod_set_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) +(declare-fun uncurry$a () A_llist_a_llist_bool_fun_fun_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun uncurry$b () A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$) +(declare-fun uncurry$c () A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun uncurry$d () A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun_fun$) +(declare-fun uncurry$e (A_llist_a_llist_a_set_fun_fun$ A_llist_a_llist_prod$) A_set$) +(declare-fun uncurry$f (A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) +(declare-fun uncurry$g (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$ A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) A_llist_a_llist_prod_set$) +(declare-fun uncurry$h (A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$ A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) A_set$) +(declare-fun uncurry$i (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$ A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) +(declare-fun uncurry$j (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun$ A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) A_llist_a_llist_prod$) +(declare-fun uncurry$k (A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) +(declare-fun uncurry$l (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$ A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) +(declare-fun fun_app$aa (A_llist_a_llist_a_llist_bool_fun_fun_fun$ A_llist$) A_llist_a_llist_bool_fun_fun$) +(declare-fun fun_app$ab (A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun$ A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_fun$) +(declare-fun fun_app$ac (A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_bool_fun_fun_fun$ A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) A_llist_a_llist_bool_fun_fun$) +(declare-fun fun_app$ad (A_llist_a_llist_bool_fun_fun_a_llist_a_llist_prod_bool_fun_fun$ A_llist_a_llist_bool_fun_fun$) A_llist_a_llist_prod_bool_fun$) +(declare-fun fun_app$ae (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$ A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun fun_app$af (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_a_llist_a_llist_prod_fun$) +(declare-fun fun_app$ag (A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_fun$ A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) +(declare-fun fun_app$ah (A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$ A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_set_fun$) +(declare-fun fun_app$ai (A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$ A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun fun_app$aj (A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$ A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun fun_app$ak (A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun_a_llist_a_llist_bool_fun_fun_fun$ A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$) A_llist_a_llist_bool_fun_fun$) +(declare-fun fun_app$al (A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun_fun$ A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$) +(declare-fun fun_app$am (A_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun$ A_llist$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) +(declare-fun fun_app$an (A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$ A_llist$) A_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun$) +(declare-fun fun_app$ao (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$ A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun fun_app$ap (A_llist_a_llist_bool_fun_fun_a_llist_a_llist_bool_fun_fun_fun$ A_llist_a_llist_bool_fun_fun$) A_llist_a_llist_bool_fun_fun$) +(declare-fun fun_app$aq (A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$ A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) +(declare-fun fun_app$ar (A_a_llist_a_llist_fun_fun_a_a_llist_a_llist_fun_fun_fun$ A_a_llist_a_llist_fun_fun$) A_a_llist_a_llist_fun_fun$) +(declare-fun fun_app$as (A_a_llist_bool_fun_fun$ A$) A_llist_bool_fun$) +(declare-fun fun_app$at (A_a_llist_a_llist_fun_fun_a_a_llist_bool_fun_fun_fun$ A_a_llist_a_llist_fun_fun$) A_a_llist_bool_fun_fun$) +(declare-fun fun_app$au (A_a_llist_a_fun_fun$ A$) A_llist_a_fun$) +(declare-fun fun_app$av (A_a_llist_a_llist_fun_fun_a_a_llist_a_fun_fun_fun$ A_a_llist_a_llist_fun_fun$) A_a_llist_a_fun_fun$) +(declare-fun fun_app$aw (A_a_llist_bool_fun_fun_a_a_llist_a_llist_fun_fun_fun$ A_a_llist_bool_fun_fun$) A_a_llist_a_llist_fun_fun$) +(declare-fun fun_app$ax (Bool_a_llist_fun$ Bool) A_llist$) +(declare-fun fun_app$ay (Bool_a_llist_a_llist_prod_fun$ Bool) A_llist_a_llist_prod$) +(declare-fun fun_app$az (Bool_bool_fun$ Bool) Bool) +(declare-fun fun_app$ba (A_a_llist_bool_fun_fun_a_a_llist_bool_fun_fun_fun$ A_a_llist_bool_fun_fun$) A_a_llist_bool_fun_fun$) +(declare-fun fun_app$bb (A_llist_a_llist_bool_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_fun$ A_llist_a_llist_bool_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) +(declare-fun fun_app$bc (Bool_a_llist_a_llist_prod_set_fun$ Bool) A_llist_a_llist_prod_set$) +(declare-fun fun_app$bd (A_llist_a_llist_bool_fun_fun_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$ A_llist_a_llist_bool_fun_fun$) A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun fun_app$be (Bool_a_llist_a_llist_prod_bool_fun_fun$ Bool) A_llist_a_llist_prod_bool_fun$) +(declare-fun fun_app$bf (A_a_llist_bool_fun_fun_a_a_llist_a_fun_fun_fun$ A_a_llist_bool_fun_fun$) A_a_llist_a_fun_fun$) +(declare-fun fun_app$bg (Bool_a_fun$ Bool) A$) +(declare-fun fun_app$bh (A_llist_a_llist_prod_set_a_llist_a_llist_prod_fun$ A_llist_a_llist_prod_set$) A_llist_a_llist_prod$) +(declare-fun fun_app$bi (A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_a_llist_a_llist_bool_fun_fun_fun$ A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) A_llist_a_llist_bool_fun_fun$) +(declare-fun fun_app$bj (A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_a_llist_a_llist_bool_fun_fun_fun$ A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) A_llist_a_llist_bool_fun_fun$) +(declare-fun fun_app$bk (A_llist_a_llist_prod_bool_fun_bool_fun$ A_llist_a_llist_prod_bool_fun$) Bool) +(declare-fun fun_app$bl (A_a_llist_a_fun_fun_a_a_llist_a_llist_fun_fun_fun$ A_a_llist_a_fun_fun$) A_a_llist_a_llist_fun_fun$) +(declare-fun fun_app$bm (A_a_llist_fun$ A$) A_llist$) +(declare-fun fun_app$bn (A_a_llist_a_fun_fun_a_a_llist_bool_fun_fun_fun$ A_a_llist_a_fun_fun$) A_a_llist_bool_fun_fun$) +(declare-fun fun_app$bo (A_a_llist_a_fun_fun_a_a_llist_a_fun_fun_fun$ A_a_llist_a_fun_fun$) A_a_llist_a_fun_fun$) +(declare-fun fun_app$bp (A_a_fun$ A$) A$) +(declare-fun fun_app$bq (A_llist_a_llist_prod_set_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$ A_llist_a_llist_prod_set$) A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun fun_app$br (A_llist_a_llist_a_llist_a_llist_bool_fun_fun_fun_fun$ A_llist$) A_llist_a_llist_a_llist_bool_fun_fun_fun$) +(declare-fun fun_app$bs (A_llist_a_llist_prod_set_a_llist_a_llist_a_llist_a_llist_bool_fun_fun_fun_fun_fun$ A_llist_a_llist_prod_set$) A_llist_a_llist_a_llist_a_llist_bool_fun_fun_fun_fun$) +(declare-fun fun_app$bt (A_llist_a_llist_a_llist_prod_set_fun_a_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_fun$ A_llist_a_llist_a_llist_prod_set_fun$) A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun fun_app$bu (A_llist_a_llist_a_llist_prod_set_fun_a_llist_a_llist_a_llist_a_llist_bool_fun_fun_fun_fun_fun$ A_llist_a_llist_a_llist_prod_set_fun$) A_llist_a_llist_a_llist_a_llist_bool_fun_fun_fun_fun$) +(declare-fun fun_app$bv (A_llist_a_llist_prod_a_llist_a_llist_prod_llist_a_llist_a_llist_prod_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_llist_a_llist_a_llist_prod_fun$) +(declare-fun fun_app$bw (A_llist_a_llist_prod_llist_bool_fun$ A_llist_a_llist_prod_llist$) Bool) +(declare-fun fun_app$bx (A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_llist_bool_fun$) +(declare-fun fun_app$by (A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_bool_fun_fun$ A_llist_a_llist_prod_llist$) A_llist_a_llist_prod_llist_bool_fun$) +(declare-fun fun_app$bz (A_llist_a_set_fun$ A_llist$) A_set$) +(declare-fun fun_app$ca (A_llist_a_llist_a_set_fun_fun$ A_llist$) A_llist_a_set_fun$) +(declare-fun fun_app$cb (A_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun$ A_llist$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) +(declare-fun fun_app$cc (A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$ A_llist$) A_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun$) +(declare-fun fun_app$cd (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_a_llist_a_llist_prod_set_fun$) +(declare-fun fun_app$ce (A_llist_a_llist_prod_a_set_fun$ A_llist_a_llist_prod$) A_set$) +(declare-fun fun_app$cf (A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_a_set_fun$) +(declare-fun fun_app$cg (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) +(declare-fun fun_app$ch (A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$ A_llist_a_llist_prod$) A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun$) +(declare-fun fun_app$ci (A_a_llist_bool_fun_fun_a_llist_bool_fun_fun$ A_a_llist_bool_fun_fun$) A_llist_bool_fun$) +(declare-fun fun_app$cj (A_a_llist_a_llist_fun_fun_a_llist_a_llist_fun_fun$ A_a_llist_a_llist_fun_fun$) A_llist_a_llist_fun$) +(declare-fun fun_app$ck (A_a_llist_a_fun_fun_a_llist_a_fun_fun$ A_a_llist_a_fun_fun$) A_llist_a_fun$) +(declare-fun fun_app$cl (A_llist_a_llist_fun_a_llist_a_llist_fun_fun$ A_llist_a_llist_fun$) A_llist_a_llist_fun$) +(declare-fun fun_app$cm (A_llist_a_fun_a_llist_a_llist_fun_a_llist_a_llist_fun_fun_fun$ A_llist_a_fun$) A_llist_a_llist_fun_a_llist_a_llist_fun_fun$) +(declare-fun fun_app$cn (A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun_a_llist_a_llist_prod_llist_bool_fun_fun$ A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun$) A_llist_a_llist_prod_llist_bool_fun$) +(declare-fun fun_app$co (A_a_bool_fun_fun$ A$) A_bool_fun$) +(declare-fun fun_app$cp (A_llist_a_llist_prod_a_llist_fun$ A_llist_a_llist_prod$) A_llist$) +(declare-fun inv_image$ (A_llist_a_llist_prod_set$ A_llist_a_llist_fun$) A_llist_a_llist_prod_set$) +(declare-fun undefined$ () A_llist$) +(declare-fun case_llist$ (Bool) A_a_llist_bool_fun_fun_a_llist_bool_fun_fun$) +(declare-fun llist_all2$ (A_a_bool_fun_fun$) A_llist_a_llist_bool_fun_fun$) +(declare-fun pred_llist$ (A_bool_fun$) A_llist_bool_fun$) +(declare-fun undefined$a () A$) +(declare-fun case_llist$a (A_llist$) A_a_llist_a_llist_fun_fun_a_llist_a_llist_fun_fun$) +(declare-fun case_llist$b (A$) A_a_llist_a_fun_fun_a_llist_a_fun_fun$) +(declare-fun case_llist$c (Bool) A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun_a_llist_a_llist_prod_llist_bool_fun_fun$) +(declare-fun case_llist$d (A_llist_a_llist_prod_llist$ A_llist_a_llist_prod_a_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun_fun$ A_llist_a_llist_prod_llist$) A_llist_a_llist_prod_llist$) +(declare-fun case_llist$e (A_llist_a_llist_prod$ A_llist_a_llist_prod_a_llist_a_llist_prod_llist_a_llist_a_llist_prod_fun_fun$ A_llist_a_llist_prod_llist$) A_llist_a_llist_prod$) +(declare-fun llist_all2$a (A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_bool_fun_fun$) +(declare-fun pred_llist$a (A_llist_a_llist_prod_bool_fun$) A_llist_a_llist_prod_llist_bool_fun$) +(declare-fun unfold_llist$ (A_llist_a_llist_prod_llist_bool_fun$ A_llist_a_llist_prod_llist_a_llist_a_llist_prod_fun$ A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_fun$ A_llist_a_llist_prod_llist$) A_llist_a_llist_prod_llist$) +(declare-fun unfold_llist$a (A_llist_bool_fun$) A_llist_a_fun_a_llist_a_llist_fun_a_llist_a_llist_fun_fun_fun$) +(declare-fun internal_split$ () A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$) +(declare-fun internal_split$a () A_llist_a_llist_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun$) +(declare-fun internal_split$b () A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun_fun$) +(declare-fun internal_split$c () A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$) +(declare-fun internal_split$d () A_llist_a_llist_bool_fun_fun_a_llist_a_llist_prod_bool_fun_fun$) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (! (= (fun_app$ uvd$ ?v0) (ltl$a ?v0)) :pattern ((fun_app$ uvd$ ?v0)))) :named a0)) +(assert (! (forall ((?v0 A_llist$)) (! (= (fun_app$a uvf$ ?v0) (ltl$ ?v0)) :pattern ((fun_app$a uvf$ ?v0)))) :named a1)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (! (= (fun_app$b uvc$ ?v0) (lhd$a ?v0)) :pattern ((fun_app$b uvc$ ?v0)))) :named a2)) +(assert (! (forall ((?v0 A_llist$)) (! (= (fun_app$c uve$ ?v0) (lhd$ ?v0)) :pattern ((fun_app$c uve$ ?v0)))) :named a3)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (! (= (fun_app$d (fun_app$e uvx$ ?v0) ?v1) (pair$ ?v0 ?v1)) :pattern ((fun_app$d (fun_app$e uvx$ ?v0) ?v1)))) :named a4)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$)) (! (= (fun_app$f (fun_app$g uvw$ ?v0) ?v1) (pair$b ?v0 ?v1)) :pattern ((fun_app$f (fun_app$g uvw$ ?v0) ?v1)))) :named a5)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod$)) (! (= (fun_app$h (uui$ ?v0) ?v1) (fun_app$i (member$ ?v1) ?v0)) :pattern ((fun_app$h (uui$ ?v0) ?v1)))) :named a6)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (! (= (fun_app$j (uuh$ ?v0) ?v1) (member$a ?v1 ?v0)) :pattern ((fun_app$j (uuh$ ?v0) ?v1)))) :named a7)) +(assert (! (forall ((?v0 A_set$) (?v1 A$)) (! (= (fun_app$k (uug$ ?v0) ?v1) (member$b ?v1 ?v0)) :pattern ((fun_app$k (uug$ ?v0) ?v1)))) :named a8)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$d (fun_app$e (uwd$ ?v0) ?v1) ?v2) (fun_app$d (fun_app$e ?v0 ?v2) ?v1)) :pattern ((fun_app$d (fun_app$e (uwd$ ?v0) ?v1) ?v2)))) :named a9)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$l (fun_app$m (uwg$ ?v0) ?v1) ?v2) (fun_app$l (fun_app$m ?v0 ?v2) ?v1)) :pattern ((fun_app$l (fun_app$m (uwg$ ?v0) ?v1) ?v2)))) :named a10)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$n (fun_app$o (uwc$ ?v0) ?v1) ?v2) (fun_app$n (fun_app$o ?v0 ?v2) ?v1)) :pattern ((fun_app$n (fun_app$o (uwc$ ?v0) ?v1) ?v2)))) :named a11)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$p (fun_app$q (uwf$ ?v0) ?v1) ?v2) (fun_app$p (fun_app$q ?v0 ?v2) ?v1)) :pattern ((fun_app$p (fun_app$q (uwf$ ?v0) ?v1) ?v2)))) :named a12)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r (uwe$ ?v0) ?v1) ?v2) (fun_app$h (fun_app$r ?v0 ?v2) ?v1)) :pattern ((fun_app$h (fun_app$r (uwe$ ?v0) ?v1) ?v2)))) :named a13)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$s (uwq$ ?v0) ?v1) ?v2) (or (fun_app$i (member$ ?v2) ?v0) (fun_app$i (member$ ?v2) ?v1))) :pattern ((fun_app$h (fun_app$s (uwq$ ?v0) ?v1) ?v2)))) :named a14)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_bool_fun$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$t (uws$ ?v0) ?v1) ?v2) (and (fun_app$i (member$ ?v2) ?v0) (fun_app$h ?v1 ?v2))) :pattern ((fun_app$h (fun_app$t (uws$ ?v0) ?v1) ?v2)))) :named a15)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$l (fun_app$m (uvz$ ?v0) ?v1) ?v2) (fun_app$i (member$ (pair$ ?v1 ?v2)) ?v0)) :pattern ((fun_app$l (fun_app$m (uvz$ ?v0) ?v1) ?v2)))) :named a16)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r (uvy$ ?v0) ?v1) ?v2) (member$a (pair$b ?v1 ?v2) ?v0)) :pattern ((fun_app$h (fun_app$r (uvy$ ?v0) ?v1) ?v2)))) :named a17)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_prod_bool_fun$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$t (uwp$ ?v0) ?v1) ?v2) (or (fun_app$h ?v0 ?v2) (fun_app$h ?v1 ?v2))) :pattern ((fun_app$h (fun_app$t (uwp$ ?v0) ?v1) ?v2)))) :named a18)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_prod_bool_fun$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$t (uwr$ ?v0) ?v1) ?v2) (and (fun_app$h ?v0 ?v2) (fun_app$h ?v1 ?v2))) :pattern ((fun_app$h (fun_app$t (uwr$ ?v0) ?v1) ?v2)))) :named a19)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_llist$)) (! (= (fun_app$ (fun_app$u (uwh$ ?v0) ?v1) ?v2) (lCons$a ?v1 (fun_app$ (lappend$ ?v2) ?v0))) :pattern ((fun_app$ (fun_app$u (uwh$ ?v0) ?v1) ?v2)))) :named a20)) +(assert (! (forall ((?v0 A_llist$) (?v1 A$) (?v2 A_llist$)) (! (= (fun_app$a (fun_app$v (uwi$ ?v0) ?v1) ?v2) (lCons$ ?v1 (fun_app$a (lappend$a ?v2) ?v0))) :pattern ((fun_app$a (fun_app$v (uwi$ ?v0) ?v1) ?v2)))) :named a21)) +(assert (! (forall ((?v0 A_llist$) (?v1 A$) (?v2 A_llist$)) (! (= (fun_app$a (fun_app$v (uwj$ ?v0) ?v1) ?v2) (fun_app$a (lappend$a ?v2) ?v0)) :pattern ((fun_app$a (fun_app$v (uwj$ ?v0) ?v1) ?v2)))) :named a22)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$d (fun_app$e (uuc$ ?v0) ?v1) ?v2) (fun_app$w ?v0 (pair$ ?v1 ?v2))) :pattern ((fun_app$d (fun_app$e (uuc$ ?v0) ?v1) ?v2)))) :named a23)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$l (fun_app$m (uuf$ ?v0) ?v1) ?v2) (fun_app$h ?v0 (pair$ ?v1 ?v2))) :pattern ((fun_app$l (fun_app$m (uuf$ ?v0) ?v1) ?v2)))) :named a24)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_set_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$n (fun_app$o (uub$ ?v0) ?v1) ?v2) (fun_app$x ?v0 (pair$ ?v1 ?v2))) :pattern ((fun_app$n (fun_app$o (uub$ ?v0) ?v1) ?v2)))) :named a25)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$p (fun_app$q (uue$ ?v0) ?v1) ?v2) (fun_app$r ?v0 (pair$ ?v1 ?v2))) :pattern ((fun_app$p (fun_app$q (uue$ ?v0) ?v1) ?v2)))) :named a26)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r (uud$ ?v0) ?v1) ?v2) (fun_app$j ?v0 (pair$b ?v1 ?v2))) :pattern ((fun_app$h (fun_app$r (uud$ ?v0) ?v1) ?v2)))) :named a27)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$y (uvg$ ?v0) ?v1) ?v2) ?v3) (fun_app$h (fun_app$p (fun_app$q ?v0 ?v2) ?v3) ?v1)) :pattern ((fun_app$l (fun_app$m (fun_app$y (uvg$ ?v0) ?v1) ?v2) ?v3)))) :named a28)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$z (uwk$ ?v0) ?v1) ?v2) ?v3) (fun_app$i (member$ (pair$ (fun_app$a ?v1 ?v2) (fun_app$a ?v1 ?v3))) ?v0)) :pattern ((fun_app$l (fun_app$m (fun_app$z (uwk$ ?v0) ?v1) ?v2) ?v3)))) :named a29)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$aa (uwt$ ?v0) ?v1) ?v2) ?v3) (and (= ?v0 ?v2) (= ?v1 ?v3))) :pattern ((fun_app$l (fun_app$m (fun_app$aa (uwt$ ?v0) ?v1) ?v2) ?v3)))) :named a30)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$d (fun_app$e (uuv$ ?v0 ?v1) ?v2) ?v3) (fun_app$w (fun_app$ab uncurry$ ?v0) (fun_app$d (fun_app$e ?v1 ?v2) ?v3))) :pattern ((fun_app$d (fun_app$e (uuv$ ?v0 ?v1) ?v2) ?v3)))) :named a31)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$ac (uuz$ ?v0) ?v1) ?v2) ?v3) (fun_app$h (fun_app$ad uncurry$a ?v0) (fun_app$d (fun_app$e ?v1 ?v2) ?v3))) :pattern ((fun_app$l (fun_app$m (fun_app$ac (uuz$ ?v0) ?v1) ?v2) ?v3)))) :named a32)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r (fun_app$ae (uut$ ?v0) ?v1) ?v2) ?v3) (fun_app$h (fun_app$ad uncurry$a ?v0) (fun_app$w (fun_app$af ?v1 ?v2) ?v3))) :pattern ((fun_app$h (fun_app$r (fun_app$ae (uut$ ?v0) ?v1) ?v2) ?v3)))) :named a33)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$n (fun_app$o (fun_app$ag (uuu$ ?v0) ?v1) ?v2) ?v3) (fun_app$x (fun_app$ah uncurry$b ?v0) (fun_app$d (fun_app$e ?v1 ?v2) ?v3))) :pattern ((fun_app$n (fun_app$o (fun_app$ag (uuu$ ?v0) ?v1) ?v2) ?v3)))) :named a34)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$p (fun_app$q (fun_app$ai (uuy$ ?v0) ?v1) ?v2) ?v3) (fun_app$r (fun_app$aj uncurry$c ?v0) (fun_app$d (fun_app$e ?v1 ?v2) ?v3))) :pattern ((fun_app$p (fun_app$q (fun_app$ai (uuy$ ?v0) ?v1) ?v2) ?v3)))) :named a35)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$ak (uuw$ ?v0) ?v1) ?v2) ?v3) (fun_app$j (fun_app$al uncurry$d ?v0) (fun_app$am (fun_app$an ?v1 ?v2) ?v3))) :pattern ((fun_app$l (fun_app$m (fun_app$ak (uuw$ ?v0) ?v1) ?v2) ?v3)))) :named a36)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r (fun_app$ao (uux$ ?v0) ?v1) ?v2) ?v3) (fun_app$j (fun_app$al uncurry$d ?v0) (fun_app$f (fun_app$g ?v1 ?v2) ?v3))) :pattern ((fun_app$h (fun_app$r (fun_app$ao (uux$ ?v0) ?v1) ?v2) ?v3)))) :named a37)) +(assert (! (forall ((?v0 Bool) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$ap (uua$ ?v0) ?v1) ?v2) ?v3) (and ?v0 (fun_app$l (fun_app$m ?v1 ?v2) ?v3))) :pattern ((fun_app$l (fun_app$m (fun_app$ap (uua$ ?v0) ?v1) ?v2) ?v3)))) :named a38)) +(assert (! (forall ((?v0 Bool) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r (fun_app$aq (uu$ ?v0) ?v1) ?v2) ?v3) (and ?v0 (fun_app$h (fun_app$r ?v1 ?v2) ?v3))) :pattern ((fun_app$h (fun_app$r (fun_app$aq (uu$ ?v0) ?v1) ?v2) ?v3)))) :named a39)) +(assert (! (forall ((?v0 A_llist_a_llist_fun$) (?v1 A_a_llist_a_llist_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$a (fun_app$v (fun_app$ar (uvl$ ?v0) ?v1) ?v2) ?v3) (fun_app$a ?v0 (fun_app$a (fun_app$v ?v1 ?v2) ?v3))) :pattern ((fun_app$a (fun_app$v (fun_app$ar (uvl$ ?v0) ?v1) ?v2) ?v3)))) :named a40)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_a_llist_a_llist_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$as (fun_app$at (uvk$ ?v0) ?v1) ?v2) ?v3) (fun_app$l ?v0 (fun_app$a (fun_app$v ?v1 ?v2) ?v3))) :pattern ((fun_app$l (fun_app$as (fun_app$at (uvk$ ?v0) ?v1) ?v2) ?v3)))) :named a41)) +(assert (! (forall ((?v0 A_llist_a_fun$) (?v1 A_a_llist_a_llist_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$c (fun_app$au (fun_app$av (uvm$ ?v0) ?v1) ?v2) ?v3) (fun_app$c ?v0 (fun_app$a (fun_app$v ?v1 ?v2) ?v3))) :pattern ((fun_app$c (fun_app$au (fun_app$av (uvm$ ?v0) ?v1) ?v2) ?v3)))) :named a42)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$d (fun_app$e (uur$ ?v0 ?v1) ?v2) ?v3) (fun_app$w ?v0 (fun_app$d (fun_app$e ?v1 ?v2) ?v3))) :pattern ((fun_app$d (fun_app$e (uur$ ?v0 ?v1) ?v2) ?v3)))) :named a43)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$ac (uul$ ?v0) ?v1) ?v2) ?v3) (fun_app$h ?v0 (fun_app$d (fun_app$e ?v1 ?v2) ?v3))) :pattern ((fun_app$l (fun_app$m (fun_app$ac (uul$ ?v0) ?v1) ?v2) ?v3)))) :named a44)) +(assert (! (forall ((?v0 Bool_a_llist_fun$) (?v1 A_a_llist_bool_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$a (fun_app$v (fun_app$aw (uvi$ ?v0) ?v1) ?v2) ?v3) (fun_app$ax ?v0 (fun_app$l (fun_app$as ?v1 ?v2) ?v3))) :pattern ((fun_app$a (fun_app$v (fun_app$aw (uvi$ ?v0) ?v1) ?v2) ?v3)))) :named a45)) +(assert (! (forall ((?v0 Bool_a_llist_a_llist_prod_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$d (fun_app$e (uuk$ ?v0 ?v1) ?v2) ?v3) (fun_app$ay ?v0 (fun_app$l (fun_app$m ?v1 ?v2) ?v3))) :pattern ((fun_app$d (fun_app$e (uuk$ ?v0 ?v1) ?v2) ?v3)))) :named a46)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$ap (uuj$ ?v0) ?v1) ?v2) ?v3) (fun_app$az ?v0 (fun_app$l (fun_app$m ?v1 ?v2) ?v3))) :pattern ((fun_app$l (fun_app$m (fun_app$ap (uuj$ ?v0) ?v1) ?v2) ?v3)))) :named a47)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r (fun_app$aq (uup$ ?v0) ?v1) ?v2) ?v3) (fun_app$az ?v0 (fun_app$h (fun_app$r ?v1 ?v2) ?v3))) :pattern ((fun_app$h (fun_app$r (fun_app$aq (uup$ ?v0) ?v1) ?v2) ?v3)))) :named a48)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 A_a_llist_bool_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$as (fun_app$ba (uvh$ ?v0) ?v1) ?v2) ?v3) (fun_app$az ?v0 (fun_app$l (fun_app$as ?v1 ?v2) ?v3))) :pattern ((fun_app$l (fun_app$as (fun_app$ba (uvh$ ?v0) ?v1) ?v2) ?v3)))) :named a49)) +(assert (! (forall ((?v0 Bool_a_llist_a_llist_prod_set_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$n (fun_app$o (fun_app$bb (uum$ ?v0) ?v1) ?v2) ?v3) (fun_app$bc ?v0 (fun_app$l (fun_app$m ?v1 ?v2) ?v3))) :pattern ((fun_app$n (fun_app$o (fun_app$bb (uum$ ?v0) ?v1) ?v2) ?v3)))) :named a50)) +(assert (! (forall ((?v0 Bool_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$p (fun_app$q (fun_app$bd (uuo$ ?v0) ?v1) ?v2) ?v3) (fun_app$be ?v0 (fun_app$l (fun_app$m ?v1 ?v2) ?v3))) :pattern ((fun_app$p (fun_app$q (fun_app$bd (uuo$ ?v0) ?v1) ?v2) ?v3)))) :named a51)) +(assert (! (forall ((?v0 Bool_a_fun$) (?v1 A_a_llist_bool_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$c (fun_app$au (fun_app$bf (uvj$ ?v0) ?v1) ?v2) ?v3) (fun_app$bg ?v0 (fun_app$l (fun_app$as ?v1 ?v2) ?v3))) :pattern ((fun_app$c (fun_app$au (fun_app$bf (uvj$ ?v0) ?v1) ?v2) ?v3)))) :named a52)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set_a_llist_a_llist_prod_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$d (fun_app$e (uus$ ?v0 ?v1) ?v2) ?v3) (fun_app$bh ?v0 (fun_app$n (fun_app$o ?v1 ?v2) ?v3))) :pattern ((fun_app$d (fun_app$e (uus$ ?v0 ?v1) ?v2) ?v3)))) :named a53)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$bi (uun$ ?v0) ?v1) ?v2) ?v3) (fun_app$i ?v0 (fun_app$n (fun_app$o ?v1 ?v2) ?v3))) :pattern ((fun_app$l (fun_app$m (fun_app$bi (uun$ ?v0) ?v1) ?v2) ?v3)))) :named a54)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$bj (uuq$ ?v0) ?v1) ?v2) ?v3) (fun_app$bk ?v0 (fun_app$p (fun_app$q ?v1 ?v2) ?v3))) :pattern ((fun_app$l (fun_app$m (fun_app$bj (uuq$ ?v0) ?v1) ?v2) ?v3)))) :named a55)) +(assert (! (forall ((?v0 A_a_llist_fun$) (?v1 A_a_llist_a_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$a (fun_app$v (fun_app$bl (uvo$ ?v0) ?v1) ?v2) ?v3) (fun_app$bm ?v0 (fun_app$c (fun_app$au ?v1 ?v2) ?v3))) :pattern ((fun_app$a (fun_app$v (fun_app$bl (uvo$ ?v0) ?v1) ?v2) ?v3)))) :named a56)) +(assert (! (forall ((?v0 A_bool_fun$) (?v1 A_a_llist_a_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$as (fun_app$bn (uvn$ ?v0) ?v1) ?v2) ?v3) (fun_app$k ?v0 (fun_app$c (fun_app$au ?v1 ?v2) ?v3))) :pattern ((fun_app$l (fun_app$as (fun_app$bn (uvn$ ?v0) ?v1) ?v2) ?v3)))) :named a57)) +(assert (! (forall ((?v0 A_a_fun$) (?v1 A_a_llist_a_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$c (fun_app$au (fun_app$bo (uvp$ ?v0) ?v1) ?v2) ?v3) (fun_app$bp ?v0 (fun_app$c (fun_app$au ?v1 ?v2) ?v3))) :pattern ((fun_app$c (fun_app$au (fun_app$bo (uvp$ ?v0) ?v1) ?v2) ?v3)))) :named a58)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$p (fun_app$q (fun_app$bq (uwo$ ?v0) ?v1) ?v2) ?v3) (fun_app$ad uncurry$a (fun_app$aa (fun_app$br (fun_app$bs (uwn$ ?v0) ?v1) ?v2) ?v3))) :pattern ((fun_app$p (fun_app$q (fun_app$bq (uwo$ ?v0) ?v1) ?v2) ?v3)))) :named a59)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_llist_a_llist_prod_set_fun$) (?v2 A_llist$) (?v3 A_llist$)) (! (= (fun_app$p (fun_app$q (fun_app$bt (uwm$ ?v0) ?v1) ?v2) ?v3) (fun_app$ad uncurry$a (fun_app$aa (fun_app$br (fun_app$bu (uwl$ ?v0) ?v1) ?v2) ?v3))) :pattern ((fun_app$p (fun_app$q (fun_app$bt (uwm$ ?v0) ?v1) ?v2) ?v3)))) :named a60)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist$) (?v5 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bs (uwn$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5) (or (fun_app$i (member$ (pair$ ?v2 ?v4)) ?v0) (and (= ?v2 ?v4) (fun_app$i (member$ (pair$ ?v3 ?v5)) ?v1)))) :pattern ((fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bs (uwn$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5)))) :named a61)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_llist_a_llist_prod_set_fun$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist$) (?v5 A_llist$)) (! (= (fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bu (uwl$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5) (and (= ?v2 ?v4) (and (fun_app$l ?v0 ?v4) (fun_app$i (member$ (pair$ ?v3 ?v5)) (fun_app$n ?v1 ?v4))))) :pattern ((fun_app$l (fun_app$m (fun_app$aa (fun_app$br (fun_app$bu (uwl$ ?v0) ?v1) ?v2) ?v3) ?v4) ?v5)))) :named a62)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (! (= (fun_app$b (fun_app$bv uwa$ ?v0) ?v1) ?v0) :pattern ((fun_app$b (fun_app$bv uwa$ ?v0) ?v1)))) :named a63)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$)) (! (= (fun_app$c (fun_app$au uwb$ ?v0) ?v1) ?v0) :pattern ((fun_app$c (fun_app$au uwb$ ?v0) ?v1)))) :named a64)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (! (= (fun_app$ (fun_app$u uvu$ ?v0) ?v1) ?v1) :pattern ((fun_app$ (fun_app$u uvu$ ?v0) ?v1)))) :named a65)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$)) (! (= (fun_app$a (fun_app$v uvv$ ?v0) ?v1) ?v1) :pattern ((fun_app$a (fun_app$v uvv$ ?v0) ?v1)))) :named a66)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (! (= (fun_app$bw (fun_app$bx uvs$ ?v0) ?v1) false) :pattern ((fun_app$bw (fun_app$bx uvs$ ?v0) ?v1)))) :named a67)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$)) (! (= (fun_app$l (fun_app$as uvt$ ?v0) ?v1) false) :pattern ((fun_app$l (fun_app$as uvt$ ?v0) ?v1)))) :named a68)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (! (= (fun_app$l (fun_app$m uvb$ ?v0) ?v1) true) :pattern ((fun_app$l (fun_app$m uvb$ ?v0) ?v1)))) :named a69)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (! (= (fun_app$bw (fun_app$bx uvq$ ?v0) ?v1) true) :pattern ((fun_app$bw (fun_app$bx uvq$ ?v0) ?v1)))) :named a70)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$)) (! (= (fun_app$h (fun_app$r uva$ ?v0) ?v1) true) :pattern ((fun_app$h (fun_app$r uva$ ?v0) ?v1)))) :named a71)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$)) (! (= (fun_app$l (fun_app$as uvr$ ?v0) ?v1) true) :pattern ((fun_app$l (fun_app$as uvr$ ?v0) ?v1)))) :named a72)) +(assert (! (not (fun_app$l (lprefix$ xs$) ys$)) :named a73)) +(assert (! (fun_app$l (fun_app$m p$ xs$) ys$) :named a74)) +(assert (! (fun_app$i (member$ (pair$ xs$ ys$)) (collect$ (fun_app$ad uncurry$a p$))) :named a75)) +(assert (! (forall ((?v0 A_llist$)) (fun_app$l (lprefix$ lNil$) ?v0)) :named a76)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod$)) (=> (fun_app$bw (lprefix$a ?v0) ?v1) (fun_app$bw (lprefix$a (lCons$a ?v2 ?v0)) (lCons$a ?v2 ?v1)))) :named a77)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A$)) (=> (fun_app$l (lprefix$ ?v0) ?v1) (fun_app$l (lprefix$ (lCons$ ?v2 ?v0)) (lCons$ ?v2 ?v1)))) :named a78)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (fun_app$l (fun_app$m p$ ?v0) ?v1) (and (=> (fun_app$l lnull$ ?v1) (fun_app$l lnull$ ?v0)) (=> (and (not (fun_app$l lnull$ ?v0)) (not (fun_app$l lnull$ ?v1))) (and (= (lhd$ ?v0) (lhd$ ?v1)) (or (fun_app$l (fun_app$m p$ (ltl$ ?v0)) (ltl$ ?v1)) (fun_app$l (lprefix$ (ltl$ ?v0)) (ltl$ ?v1)))))))) :named a79)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (= (fun_app$bw (lprefix$a ?v0) ?v1) (or (exists ((?v2 A_llist_a_llist_prod_llist$)) (and (= ?v0 lNil$a) (= ?v1 ?v2))) (exists ((?v2 A_llist_a_llist_prod_llist$) (?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod$)) (and (= ?v0 (lCons$a ?v4 ?v2)) (and (= ?v1 (lCons$a ?v4 ?v3)) (fun_app$bw (lprefix$a ?v2) ?v3))))))) :named a80)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (= (fun_app$l (lprefix$ ?v0) ?v1) (or (exists ((?v2 A_llist$)) (and (= ?v0 lNil$) (= ?v1 ?v2))) (exists ((?v2 A_llist$) (?v3 A_llist$) (?v4 A$)) (and (= ?v0 (lCons$ ?v4 ?v2)) (and (= ?v1 (lCons$ ?v4 ?v3)) (fun_app$l (lprefix$ ?v2) ?v3))))))) :named a81)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$bw (lprefix$a ?v0) ?v1) (and (forall ((?v2 A_llist_a_llist_prod_llist$)) (=> (and (= ?v0 lNil$a) (= ?v1 ?v2)) false)) (forall ((?v2 A_llist_a_llist_prod_llist$) (?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod$)) (=> (and (= ?v0 (lCons$a ?v4 ?v2)) (and (= ?v1 (lCons$a ?v4 ?v3)) (fun_app$bw (lprefix$a ?v2) ?v3))) false)))) false)) :named a82)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (and (fun_app$l (lprefix$ ?v0) ?v1) (and (forall ((?v2 A_llist$)) (=> (and (= ?v0 lNil$) (= ?v1 ?v2)) false)) (forall ((?v2 A_llist$) (?v3 A_llist$) (?v4 A$)) (=> (and (= ?v0 (lCons$ ?v4 ?v2)) (and (= ?v1 (lCons$ ?v4 ?v3)) (fun_app$l (lprefix$ ?v2) ?v3))) false)))) false)) :named a83)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_bool_fun_fun$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$bw (fun_app$by ?v0 ?v1) ?v2) (forall ((?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod_llist$)) (=> (fun_app$bw (fun_app$by ?v0 ?v3) ?v4) (or (exists ((?v5 A_llist_a_llist_prod_llist$)) (and (= ?v3 lNil$a) (= ?v4 ?v5))) (exists ((?v5 A_llist_a_llist_prod_llist$) (?v6 A_llist_a_llist_prod_llist$) (?v7 A_llist_a_llist_prod$)) (and (= ?v3 (lCons$a ?v7 ?v5)) (and (= ?v4 (lCons$a ?v7 ?v6)) (or (fun_app$bw (fun_app$by ?v0 ?v5) ?v6) (fun_app$bw (lprefix$a ?v5) ?v6))))))))) (fun_app$bw (lprefix$a ?v1) ?v2))) :named a84)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (=> (and (fun_app$l (fun_app$m ?v0 ?v1) ?v2) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (fun_app$l (fun_app$m ?v0 ?v3) ?v4) (or (exists ((?v5 A_llist$)) (and (= ?v3 lNil$) (= ?v4 ?v5))) (exists ((?v5 A_llist$) (?v6 A_llist$) (?v7 A$)) (and (= ?v3 (lCons$ ?v7 ?v5)) (and (= ?v4 (lCons$ ?v7 ?v6)) (or (fun_app$l (fun_app$m ?v0 ?v5) ?v6) (fun_app$l (lprefix$ ?v5) ?v6))))))))) (fun_app$l (lprefix$ ?v1) ?v2))) :named a85)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod_set$)) (=> (and (member$c (pair$a ?v0 ?v1) ?v2) (forall ((?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod_llist$)) (=> (member$c (pair$a ?v3 ?v4) ?v2) (or (fun_app$bw lnull$a ?v3) (exists ((?v5 A_llist_a_llist_prod$) (?v6 A_llist_a_llist_prod_llist$) (?v7 A_llist_a_llist_prod_llist$)) (and (= ?v3 (lCons$a ?v5 ?v6)) (and (= ?v4 (lCons$a ?v5 ?v7)) (or (member$c (pair$a ?v6 ?v7) ?v2) (fun_app$bw (lprefix$a ?v6) ?v7))))))))) (fun_app$bw (lprefix$a ?v0) ?v1))) :named a86)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist_a_llist_prod_set$)) (=> (and (fun_app$i (member$ (pair$ ?v0 ?v1)) ?v2) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (fun_app$i (member$ (pair$ ?v3 ?v4)) ?v2) (or (fun_app$l lnull$ ?v3) (exists ((?v5 A$) (?v6 A_llist$) (?v7 A_llist$)) (and (= ?v3 (lCons$ ?v5 ?v6)) (and (= ?v4 (lCons$ ?v5 ?v7)) (or (fun_app$i (member$ (pair$ ?v6 ?v7)) ?v2) (fun_app$l (lprefix$ ?v6) ?v7))))))))) (fun_app$l (lprefix$ ?v0) ?v1))) :named a87)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$) (?v2 A$) (?v3 A_llist$)) (= (= (lCons$ ?v0 ?v1) (lCons$ ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3)))) :named a88)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod_llist$)) (= (= (lCons$a ?v0 ?v1) (lCons$a ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3)))) :named a89)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (=> (not (fun_app$bw lnull$a ?v0)) (= (lCons$a (lhd$a ?v0) (ltl$a ?v0)) ?v0))) :named a90)) +(assert (! (forall ((?v0 A_llist$)) (=> (not (fun_app$l lnull$ ?v0)) (= (lCons$ (lhd$ ?v0) (ltl$ ?v0)) ?v0))) :named a91)) +(assert (! (forall ((?v0 A_llist$)) (= (not (= ?v0 lNil$)) (exists ((?v1 A$) (?v2 A_llist$)) (= ?v0 (lCons$ ?v1 ?v2))))) :named a92)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (= (not (= ?v0 lNil$a)) (exists ((?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_llist$)) (= ?v0 (lCons$a ?v1 ?v2))))) :named a93)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (= (not (fun_app$bw lnull$a ?v0)) (exists ((?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_llist$)) (= ?v0 (lCons$a ?v1 ?v2))))) :named a94)) +(assert (! (forall ((?v0 A_llist$)) (= (not (fun_app$l lnull$ ?v0)) (exists ((?v1 A$) (?v2 A_llist$)) (= ?v0 (lCons$ ?v1 ?v2))))) :named a95)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (! (= (fun_app$bw lnull$a ?v0) (= ?v0 lNil$a)) :pattern ((fun_app$bw lnull$a ?v0)))) :named a96)) +(assert (! (forall ((?v0 A_llist$)) (! (= (fun_app$l lnull$ ?v0) (= ?v0 lNil$)) :pattern ((fun_app$l lnull$ ?v0)))) :named a97)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (! (= (lhd$a (lCons$a ?v0 ?v1)) ?v0) :pattern ((lCons$a ?v0 ?v1)))) :named a98)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$)) (! (= (lhd$ (lCons$ ?v0 ?v1)) ?v0) :pattern ((lCons$ ?v0 ?v1)))) :named a99)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (! (= (ltl$a (lCons$a ?v0 ?v1)) ?v1) :pattern ((lCons$a ?v0 ?v1)))) :named a100)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$)) (! (= (ltl$ (lCons$ ?v0 ?v1)) ?v1) :pattern ((lCons$ ?v0 ?v1)))) :named a101)) +(assert (! (= (ltl$a lNil$a) lNil$a) :named a102)) +(assert (! (= (ltl$ lNil$) lNil$) :named a103)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (=> (and (=> (= ?v0 lNil$a) false) (=> (= ?v0 (lCons$a (lhd$a ?v0) (ltl$a ?v0))) false)) false)) :named a104)) +(assert (! (forall ((?v0 A_llist$)) (=> (and (=> (= ?v0 lNil$) false) (=> (= ?v0 (lCons$ (lhd$ ?v0) (ltl$ ?v0))) false)) false)) :named a105)) +(assert (! (forall ((?v0 A_llist$)) (=> (and (=> (= ?v0 lNil$) false) (forall ((?v1 A$) (?v2 A_llist$)) (=> (= ?v0 (lCons$ ?v1 ?v2)) false))) false)) :named a106)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (=> (and (=> (= ?v0 lNil$a) false) (forall ((?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_llist$)) (=> (= ?v0 (lCons$a ?v1 ?v2)) false))) false)) :named a107)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (=> (and (=> (and (fun_app$bw lnull$a ?v0) (fun_app$bw lnull$a ?v1)) false) (=> (or (not (fun_app$bw lnull$a ?v0)) (not (fun_app$bw lnull$a ?v1))) false)) false)) :named a108)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (and (=> (and (fun_app$l lnull$ ?v0) (fun_app$l lnull$ ?v1)) false) (=> (or (not (fun_app$l lnull$ ?v0)) (not (fun_app$l lnull$ ?v1))) false)) false)) :named a109)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (=> (and (=> (fun_app$bw lnull$a ?v0) false) (=> (not (fun_app$bw lnull$a ?v0)) false)) false)) :named a110)) +(assert (! (forall ((?v0 A_llist$)) (=> (and (=> (fun_app$l lnull$ ?v0) false) (=> (not (fun_app$l lnull$ ?v0)) false)) false)) :named a111)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (=> (and (= (fun_app$bw lnull$a ?v0) (fun_app$bw lnull$a ?v1)) (=> (and (not (fun_app$bw lnull$a ?v0)) (not (fun_app$bw lnull$a ?v1))) (and (= (lhd$a ?v0) (lhd$a ?v1)) (= (ltl$a ?v0) (ltl$a ?v1))))) (= ?v0 ?v1))) :named a112)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (and (= (fun_app$l lnull$ ?v0) (fun_app$l lnull$ ?v1)) (=> (and (not (fun_app$l lnull$ ?v0)) (not (fun_app$l lnull$ ?v1))) (and (= (lhd$ ?v0) (lhd$ ?v1)) (= (ltl$ ?v0) (ltl$ ?v1))))) (= ?v0 ?v1))) :named a113)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_llist$)) (=> (= ?v0 (lCons$a ?v1 ?v2)) (and (not (= ?v0 lNil$a)) (and (= (lhd$a ?v0) ?v1) (= (ltl$a ?v0) ?v2))))) :named a114)) +(assert (! (forall ((?v0 A_llist$) (?v1 A$) (?v2 A_llist$)) (=> (= ?v0 (lCons$ ?v1 ?v2)) (and (not (= ?v0 lNil$)) (and (= (lhd$ ?v0) ?v1) (= (ltl$ ?v0) ?v2))))) :named a115)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_llist$)) (=> (= ?v0 (lCons$a ?v1 ?v2)) (not (fun_app$bw lnull$a ?v0)))) :named a116)) +(assert (! (forall ((?v0 A_llist$) (?v1 A$) (?v2 A_llist$)) (=> (= ?v0 (lCons$ ?v1 ?v2)) (not (fun_app$l lnull$ ?v0)))) :named a117)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (=> (= ?v0 lNil$a) (fun_app$bw lnull$a ?v0))) :named a118)) +(assert (! (forall ((?v0 A_llist$)) (=> (= ?v0 lNil$) (fun_app$l lnull$ ?v0))) :named a119)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (=> (fun_app$bw lnull$a ?v0) (= ?v0 lNil$a))) :named a120)) +(assert (! (forall ((?v0 A_llist$)) (=> (fun_app$l lnull$ ?v0) (= ?v0 lNil$))) :named a121)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (=> (fun_app$bw lnull$a ?v0) (fun_app$bw lnull$a (ltl$a ?v0)))) :named a122)) +(assert (! (forall ((?v0 A_llist$)) (=> (fun_app$l lnull$ ?v0) (fun_app$l lnull$ (ltl$ ?v0)))) :named a123)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_bool_fun_fun$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$bw (fun_app$by ?v0 ?v1) ?v2) (forall ((?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod_llist$)) (=> (fun_app$bw (fun_app$by ?v0 ?v3) ?v4) (and (= (fun_app$bw lnull$a ?v3) (fun_app$bw lnull$a ?v4)) (=> (and (not (fun_app$bw lnull$a ?v3)) (not (fun_app$bw lnull$a ?v4))) (and (= (lhd$a ?v3) (lhd$a ?v4)) (or (fun_app$bw (fun_app$by ?v0 (ltl$a ?v3)) (ltl$a ?v4)) (= (ltl$a ?v3) (ltl$a ?v4))))))))) (= ?v1 ?v2))) :named a124)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (=> (and (fun_app$l (fun_app$m ?v0 ?v1) ?v2) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (fun_app$l (fun_app$m ?v0 ?v3) ?v4) (and (= (fun_app$l lnull$ ?v3) (fun_app$l lnull$ ?v4)) (=> (and (not (fun_app$l lnull$ ?v3)) (not (fun_app$l lnull$ ?v4))) (and (= (lhd$ ?v3) (lhd$ ?v4)) (or (fun_app$l (fun_app$m ?v0 (ltl$ ?v3)) (ltl$ ?v4)) (= (ltl$ ?v3) (ltl$ ?v4))))))))) (= ?v1 ?v2))) :named a125)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_bool_fun_fun$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$bw (fun_app$by ?v0 ?v1) ?v2) (forall ((?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod_llist$)) (=> (fun_app$bw (fun_app$by ?v0 ?v3) ?v4) (and (= (fun_app$bw lnull$a ?v3) (fun_app$bw lnull$a ?v4)) (=> (and (not (fun_app$bw lnull$a ?v3)) (not (fun_app$bw lnull$a ?v4))) (and (= (lhd$a ?v3) (lhd$a ?v4)) (fun_app$bw (fun_app$by ?v0 (ltl$a ?v3)) (ltl$a ?v4)))))))) (= ?v1 ?v2))) :named a126)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (=> (and (fun_app$l (fun_app$m ?v0 ?v1) ?v2) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (fun_app$l (fun_app$m ?v0 ?v3) ?v4) (and (= (fun_app$l lnull$ ?v3) (fun_app$l lnull$ ?v4)) (=> (and (not (fun_app$l lnull$ ?v3)) (not (fun_app$l lnull$ ?v4))) (and (= (lhd$ ?v3) (lhd$ ?v4)) (fun_app$l (fun_app$m ?v0 (ltl$ ?v3)) (ltl$ ?v4)))))))) (= ?v1 ?v2))) :named a127)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$)) (not (= lNil$ (lCons$ ?v0 ?v1)))) :named a128)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (not (= lNil$a (lCons$a ?v0 ?v1)))) :named a129)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (not (fun_app$bw lnull$a (lCons$a ?v0 ?v1)))) :named a130)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$)) (not (fun_app$l lnull$ (lCons$ ?v0 ?v1)))) :named a131)) +(assert (! (fun_app$bw lnull$a lNil$a) :named a132)) +(assert (! (fun_app$l lnull$ lNil$) :named a133)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$)) (=> (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v2 ?v3)) (fun_app$h (fun_app$r ?v1 ?v2) ?v3))) (fun_app$j (fun_app$al uncurry$d ?v1) ?v0))) :named a134)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_bool_fun_fun$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (=> (= ?v0 (pair$ ?v2 ?v3)) (fun_app$l (fun_app$m ?v1 ?v2) ?v3))) (fun_app$h (fun_app$ad uncurry$a ?v1) ?v0))) :named a135)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (=> (fun_app$h (fun_app$r ?v0 ?v1) ?v2) (fun_app$j (fun_app$al uncurry$d ?v0) (pair$b ?v1 ?v2)))) :named a136)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (=> (fun_app$l (fun_app$m ?v0 ?v1) ?v2) (fun_app$h (fun_app$ad uncurry$a ?v0) (pair$ ?v1 ?v2)))) :named a137)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$x (fun_app$ah uncurry$b ?v0) (pair$ ?v1 ?v2)) (fun_app$n (fun_app$o ?v0 ?v1) ?v2)) :pattern ((fun_app$x (fun_app$ah uncurry$b ?v0) (pair$ ?v1 ?v2))))) :named a138)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$w (fun_app$ab uncurry$ ?v0) (pair$ ?v1 ?v2)) (fun_app$d (fun_app$e ?v0 ?v1) ?v2)) :pattern ((fun_app$w (fun_app$ab uncurry$ ?v0) (pair$ ?v1 ?v2))))) :named a139)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$j (fun_app$al uncurry$d ?v0) (pair$b ?v1 ?v2)) (fun_app$h (fun_app$r ?v0 ?v1) ?v2)) :pattern ((fun_app$j (fun_app$al uncurry$d ?v0) (pair$b ?v1 ?v2))))) :named a140)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$r (fun_app$aj uncurry$c ?v0) (pair$ ?v1 ?v2)) (fun_app$p (fun_app$q ?v0 ?v1) ?v2)) :pattern ((fun_app$r (fun_app$aj uncurry$c ?v0) (pair$ ?v1 ?v2))))) :named a141)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$h (fun_app$ad uncurry$a ?v0) (pair$ ?v1 ?v2)) (fun_app$l (fun_app$m ?v0 ?v1) ?v2)) :pattern ((fun_app$h (fun_app$ad uncurry$a ?v0) (pair$ ?v1 ?v2))))) :named a142)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (=> (fun_app$h (fun_app$r ?v0 ?v1) ?v2) (fun_app$j (fun_app$al uncurry$d ?v0) (pair$b ?v1 ?v2)))) :named a143)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (=> (fun_app$l (fun_app$m ?v0 ?v1) ?v2) (fun_app$h (fun_app$ad uncurry$a ?v0) (pair$ ?v1 ?v2)))) :named a144)) +(assert (! (forall ((?v0 Bool) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (= (fun_app$j (fun_app$al uncurry$d (fun_app$aq (uu$ ?v0) ?v1)) ?v2) (and ?v0 (fun_app$j (fun_app$al uncurry$d ?v1) ?v2)))) :named a145)) +(assert (! (forall ((?v0 Bool) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$h (fun_app$ad uncurry$a (fun_app$ap (uua$ ?v0) ?v1)) ?v2) (and ?v0 (fun_app$h (fun_app$ad uncurry$a ?v1) ?v2)))) :named a146)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (= (= (pair$b ?v0 ?v1) (pair$b ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3)))) :named a147)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist$)) (= (= (pair$ ?v0 ?v1) (pair$ ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3)))) :named a148)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (= (= (pair$b ?v0 ?v1) (pair$b ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3)))) :named a149)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist$)) (= (= (pair$ ?v0 ?v1) (pair$ ?v2 ?v3)) (and (= ?v0 ?v2) (= ?v1 ?v3)))) :named a150)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (=> (fun_app$j (fun_app$al uncurry$d ?v0) (pair$b ?v1 ?v2)) (fun_app$h (fun_app$r ?v0 ?v1) ?v2))) :named a151)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (=> (fun_app$h (fun_app$ad uncurry$a ?v0) (pair$ ?v1 ?v2)) (fun_app$l (fun_app$m ?v0 ?v1) ?v2))) :named a152)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (fun_app$j (fun_app$al uncurry$d ?v0) ?v1) (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (and (= ?v1 (pair$b ?v2 ?v3)) (fun_app$h (fun_app$r ?v0 ?v2) ?v3)) false))) false)) :named a153)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_prod$)) (=> (and (fun_app$h (fun_app$ad uncurry$a ?v0) ?v1) (forall ((?v2 A_llist$) (?v3 A_llist$)) (=> (and (= ?v1 (pair$ ?v2 ?v3)) (fun_app$l (fun_app$m ?v0 ?v2) ?v3)) false))) false)) :named a154)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_set_fun$)) (= (fun_app$ah uncurry$b (uub$ ?v0)) ?v0)) :named a155)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_fun$)) (= (fun_app$ab uncurry$ (uuc$ ?v0)) ?v0)) :named a156)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$)) (= (fun_app$al uncurry$d (uud$ ?v0)) ?v0)) :named a157)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$)) (= (fun_app$aj uncurry$c (uue$ ?v0)) ?v0)) :named a158)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$)) (= (fun_app$ad uncurry$a (uuf$ ?v0)) ?v0)) :named a159)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_set_fun$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (= (fun_app$n (fun_app$o ?v0 ?v2) ?v3) (fun_app$x ?v1 (pair$ ?v2 ?v3)))) (= (fun_app$ah uncurry$b ?v0) ?v1))) :named a160)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_fun$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (= (fun_app$d (fun_app$e ?v0 ?v2) ?v3) (fun_app$w ?v1 (pair$ ?v2 ?v3)))) (= (fun_app$ab uncurry$ ?v0) ?v1))) :named a161)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$)) (=> (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (= (fun_app$h (fun_app$r ?v0 ?v2) ?v3) (fun_app$j ?v1 (pair$b ?v2 ?v3)))) (= (fun_app$al uncurry$d ?v0) ?v1))) :named a162)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (= (fun_app$p (fun_app$q ?v0 ?v2) ?v3) (fun_app$r ?v1 (pair$ ?v2 ?v3)))) (= (fun_app$aj uncurry$c ?v0) ?v1))) :named a163)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_prod_bool_fun$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (= (fun_app$l (fun_app$m ?v0 ?v2) ?v3) (fun_app$h ?v1 (pair$ ?v2 ?v3)))) (= (fun_app$ad uncurry$a ?v0) ?v1))) :named a164)) +(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_a_set_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (=> (member$b ?v0 (fun_app$bz (fun_app$ca ?v1 ?v2) ?v3)) (member$b ?v0 (uncurry$e ?v1 (pair$ ?v2 ?v3))))) :named a165)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (=> (member$a ?v0 (fun_app$cb (fun_app$cc ?v1 ?v2) ?v3)) (member$a ?v0 (uncurry$f ?v1 (pair$ ?v2 ?v3))))) :named a166)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (fun_app$i (member$ ?v0) (fun_app$x (fun_app$cd ?v1 ?v2) ?v3)) (fun_app$i (member$ ?v0) (uncurry$g ?v1 (pair$b ?v2 ?v3))))) :named a167)) +(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (member$b ?v0 (fun_app$ce (fun_app$cf ?v1 ?v2) ?v3)) (member$b ?v0 (uncurry$h ?v1 (pair$b ?v2 ?v3))))) :named a168)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (member$a ?v0 (fun_app$cg (fun_app$ch ?v1 ?v2) ?v3)) (member$a ?v0 (uncurry$i ?v1 (pair$b ?v2 ?v3))))) :named a169)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist$) (?v3 A_llist$)) (=> (fun_app$i (member$ ?v0) (fun_app$n (fun_app$o ?v1 ?v2) ?v3)) (fun_app$i (member$ ?v0) (fun_app$x (fun_app$ah uncurry$b ?v1) (pair$ ?v2 ?v3))))) :named a170)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A$) (?v2 A_llist_a_llist_a_set_fun_fun$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= ?v0 (pair$ ?v3 ?v4)) (member$b ?v1 (fun_app$bz (fun_app$ca ?v2 ?v3) ?v4)))) (member$b ?v1 (uncurry$e ?v2 ?v0)))) :named a171)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= ?v0 (pair$ ?v3 ?v4)) (member$a ?v1 (fun_app$cb (fun_app$cc ?v2 ?v3) ?v4)))) (member$a ?v1 (uncurry$f ?v2 ?v0)))) :named a172)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v3 ?v4)) (fun_app$i (member$ ?v1) (fun_app$x (fun_app$cd ?v2 ?v3) ?v4)))) (fun_app$i (member$ ?v1) (uncurry$g ?v2 ?v0)))) :named a173)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$)) (=> (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v3 ?v4)) (member$b ?v1 (fun_app$ce (fun_app$cf ?v2 ?v3) ?v4)))) (member$b ?v1 (uncurry$h ?v2 ?v0)))) :named a174)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v3 ?v4)) (member$a ?v1 (fun_app$cg (fun_app$ch ?v2 ?v3) ?v4)))) (member$a ?v1 (uncurry$i ?v2 ?v0)))) :named a175)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= ?v0 (pair$ ?v3 ?v4)) (fun_app$i (member$ ?v1) (fun_app$n (fun_app$o ?v2 ?v3) ?v4)))) (fun_app$i (member$ ?v1) (fun_app$x (fun_app$ah uncurry$b ?v2) ?v0)))) :named a176)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$)) (=> (forall ((?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (= (fun_app$j ?v0 ?v2) (fun_app$j ?v1 ?v2))) (= (collect$a ?v0) (collect$a ?v1)))) :named a177)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_prod_bool_fun$)) (=> (forall ((?v2 A_llist_a_llist_prod$)) (= (fun_app$h ?v0 ?v2) (fun_app$h ?v1 ?v2))) (= (collect$ ?v0) (collect$ ?v1)))) :named a178)) +(assert (! (forall ((?v0 A_set$)) (= (collect$b (uug$ ?v0)) ?v0)) :named a179)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$)) (= (collect$a (uuh$ ?v0)) ?v0)) :named a180)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$)) (= (collect$ (uui$ ?v0)) ?v0)) :named a181)) +(assert (! (forall ((?v0 A$) (?v1 A_bool_fun$)) (= (member$b ?v0 (collect$b ?v1)) (fun_app$k ?v1 ?v0))) :named a182)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$)) (= (member$a ?v0 (collect$a ?v1)) (fun_app$j ?v1 ?v0))) :named a183)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_bool_fun$)) (= (fun_app$i (member$ ?v0) (collect$ ?v1)) (fun_app$h ?v1 ?v0))) :named a184)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= (pair$ ?v3 ?v4) ?v0) (fun_app$h (fun_app$p (fun_app$q ?v1 ?v3) ?v4) ?v2))) (fun_app$h (fun_app$r (fun_app$aj uncurry$c ?v1) ?v0) ?v2))) :named a185)) +(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_a_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (member$b ?v0 (uncurry$e ?v1 ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (member$b ?v0 (fun_app$bz (fun_app$ca ?v1 ?v3) ?v4))) false))) false)) :named a186)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (member$a ?v0 (uncurry$f ?v1 ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (member$a ?v0 (fun_app$cb (fun_app$cc ?v1 ?v3) ?v4))) false))) false)) :named a187)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (fun_app$i (member$ ?v0) (uncurry$g ?v1 ?v2)) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (and (= ?v2 (pair$b ?v3 ?v4)) (fun_app$i (member$ ?v0) (fun_app$x (fun_app$cd ?v1 ?v3) ?v4))) false))) false)) :named a188)) +(assert (! (forall ((?v0 A$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_set_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (member$b ?v0 (uncurry$h ?v1 ?v2)) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (and (= ?v2 (pair$b ?v3 ?v4)) (member$b ?v0 (fun_app$ce (fun_app$cf ?v1 ?v3) ?v4))) false))) false)) :named a189)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (member$a ?v0 (uncurry$i ?v1 ?v2)) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (and (= ?v2 (pair$b ?v3 ?v4)) (member$a ?v0 (fun_app$cg (fun_app$ch ?v1 ?v3) ?v4))) false))) false)) :named a190)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (fun_app$i (member$ ?v0) (fun_app$x (fun_app$ah uncurry$b ?v1) ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (fun_app$i (member$ ?v0) (fun_app$n (fun_app$o ?v1 ?v3) ?v4))) false))) false)) :named a191)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (=> (and (fun_app$h (fun_app$r (fun_app$aj uncurry$c ?v0) ?v1) ?v2) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v1 (pair$ ?v3 ?v4)) (fun_app$h (fun_app$p (fun_app$q ?v0 ?v3) ?v4) ?v2)) false))) false)) :named a192)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (= (pair$ ?v3 ?v4) ?v0) (fun_app$h (fun_app$p (fun_app$q ?v1 ?v3) ?v4) ?v2))) (fun_app$h (fun_app$r (fun_app$aj uncurry$c ?v1) ?v0) ?v2))) :named a193)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (=> (and (fun_app$h (fun_app$r (fun_app$aj uncurry$c ?v0) ?v1) ?v2) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v1 (pair$ ?v3 ?v4)) (fun_app$h (fun_app$p (fun_app$q ?v0 ?v3) ?v4) ?v2)) false))) false)) :named a194)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist_a_llist_prod$)) (=> (fun_app$h (fun_app$r (fun_app$aj uncurry$c ?v0) (pair$ ?v1 ?v2)) ?v3) (fun_app$h (fun_app$p (fun_app$q ?v0 ?v1) ?v2) ?v3))) :named a195)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (exists ((?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (= ?v0 (pair$b ?v1 ?v2)))) :named a196)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$)) (exists ((?v1 A_llist$) (?v2 A_llist$)) (= ?v0 (pair$ ?v1 ?v2)))) :named a197)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (and (= (pair$b ?v0 ?v1) (pair$b ?v2 ?v3)) (=> (and (= ?v0 ?v2) (= ?v1 ?v3)) false)) false)) :named a198)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist$)) (=> (and (= (pair$ ?v0 ?v1) (pair$ ?v2 ?v3)) (=> (and (= ?v0 ?v2) (= ?v1 ?v3)) false)) false)) :named a199)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (fun_app$j ?v0 (pair$b ?v2 ?v3))) (fun_app$j ?v0 ?v1))) :named a200)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_prod$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (fun_app$h ?v0 (pair$ ?v2 ?v3))) (fun_app$h ?v0 ?v1))) :named a201)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (forall ((?v1 A_llist_a_llist_prod$) (?v2 A_llist$) (?v3 A_llist$)) (=> (= ?v0 (pair$b ?v1 (pair$ ?v2 ?v3))) false)) false)) :named a202)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist$) (?v4 A_llist$)) (fun_app$j ?v0 (pair$b ?v2 (pair$ ?v3 ?v4)))) (fun_app$j ?v0 ?v1))) :named a203)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (forall ((?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v1 ?v2)) false)) false)) :named a204)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$)) (=> (forall ((?v1 A_llist$) (?v2 A_llist$)) (=> (= ?v0 (pair$ ?v1 ?v2)) false)) false)) :named a205)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$)) (=> (= ?v0 ?v1) (= (fun_app$x (fun_app$ah uncurry$b ?v2) ?v0) (fun_app$x (fun_app$ah uncurry$b ?v2) ?v1)))) :named a206)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$)) (=> (= ?v0 ?v1) (= (fun_app$w (fun_app$ab uncurry$ ?v2) ?v0) (fun_app$w (fun_app$ab uncurry$ ?v2) ?v1)))) :named a207)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$)) (=> (= ?v0 ?v1) (= (fun_app$j (fun_app$al uncurry$d ?v2) ?v0) (fun_app$j (fun_app$al uncurry$d ?v2) ?v1)))) :named a208)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$)) (=> (= ?v0 ?v1) (= (fun_app$r (fun_app$aj uncurry$c ?v2) ?v0) (fun_app$r (fun_app$aj uncurry$c ?v2) ?v1)))) :named a209)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_bool_fun_fun$)) (=> (= ?v0 ?v1) (= (fun_app$h (fun_app$ad uncurry$a ?v2) ?v0) (fun_app$h (fun_app$ad uncurry$a ?v2) ?v1)))) :named a210)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$az ?v0 (fun_app$h (fun_app$ad uncurry$a ?v1) ?v2)) (fun_app$h (fun_app$ad uncurry$a (fun_app$ap (uuj$ ?v0) ?v1)) ?v2))) :named a211)) +(assert (! (forall ((?v0 Bool_a_llist_a_llist_prod_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$ay ?v0 (fun_app$h (fun_app$ad uncurry$a ?v1) ?v2)) (fun_app$w (fun_app$ab uncurry$ (uuk$ ?v0 ?v1)) ?v2))) :named a212)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$h ?v0 (fun_app$w (fun_app$ab uncurry$ ?v1) ?v2)) (fun_app$h (fun_app$ad uncurry$a (fun_app$ac (uul$ ?v0) ?v1)) ?v2))) :named a213)) +(assert (! (forall ((?v0 Bool_a_llist_a_llist_prod_set_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$bc ?v0 (fun_app$h (fun_app$ad uncurry$a ?v1) ?v2)) (fun_app$x (fun_app$ah uncurry$b (fun_app$bb (uum$ ?v0) ?v1)) ?v2))) :named a214)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$i ?v0 (fun_app$x (fun_app$ah uncurry$b ?v1) ?v2)) (fun_app$h (fun_app$ad uncurry$a (fun_app$bi (uun$ ?v0) ?v1)) ?v2))) :named a215)) +(assert (! (forall ((?v0 Bool_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$be ?v0 (fun_app$h (fun_app$ad uncurry$a ?v1) ?v2)) (fun_app$r (fun_app$aj uncurry$c (fun_app$bd (uuo$ ?v0) ?v1)) ?v2))) :named a216)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (= (fun_app$az ?v0 (fun_app$j (fun_app$al uncurry$d ?v1) ?v2)) (fun_app$j (fun_app$al uncurry$d (fun_app$aq (uup$ ?v0) ?v1)) ?v2))) :named a217)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$bk ?v0 (fun_app$r (fun_app$aj uncurry$c ?v1) ?v2)) (fun_app$h (fun_app$ad uncurry$a (fun_app$bj (uuq$ ?v0) ?v1)) ?v2))) :named a218)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$w ?v0 (fun_app$w (fun_app$ab uncurry$ ?v1) ?v2)) (fun_app$w (fun_app$ab uncurry$ (uur$ ?v0 ?v1)) ?v2))) :named a219)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set_a_llist_a_llist_prod_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$bh ?v0 (fun_app$x (fun_app$ah uncurry$b ?v1) ?v2)) (fun_app$w (fun_app$ab uncurry$ (uus$ ?v0 ?v1)) ?v2))) :named a220)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$az ?v0 (fun_app$h (fun_app$ad uncurry$a ?v1) ?v2)) (fun_app$h (fun_app$ad uncurry$a (fun_app$ap (uuj$ ?v0) ?v1)) ?v2))) :named a221)) +(assert (! (forall ((?v0 Bool_a_llist_a_llist_prod_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$ay ?v0 (fun_app$h (fun_app$ad uncurry$a ?v1) ?v2)) (fun_app$w (fun_app$ab uncurry$ (uuk$ ?v0 ?v1)) ?v2))) :named a222)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$h ?v0 (fun_app$w (fun_app$ab uncurry$ ?v1) ?v2)) (fun_app$h (fun_app$ad uncurry$a (fun_app$ac (uul$ ?v0) ?v1)) ?v2))) :named a223)) +(assert (! (forall ((?v0 Bool_a_llist_a_llist_prod_set_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$bc ?v0 (fun_app$h (fun_app$ad uncurry$a ?v1) ?v2)) (fun_app$x (fun_app$ah uncurry$b (fun_app$bb (uum$ ?v0) ?v1)) ?v2))) :named a224)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$i ?v0 (fun_app$x (fun_app$ah uncurry$b ?v1) ?v2)) (fun_app$h (fun_app$ad uncurry$a (fun_app$bi (uun$ ?v0) ?v1)) ?v2))) :named a225)) +(assert (! (forall ((?v0 Bool_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$be ?v0 (fun_app$h (fun_app$ad uncurry$a ?v1) ?v2)) (fun_app$r (fun_app$aj uncurry$c (fun_app$bd (uuo$ ?v0) ?v1)) ?v2))) :named a226)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (= (fun_app$az ?v0 (fun_app$j (fun_app$al uncurry$d ?v1) ?v2)) (fun_app$j (fun_app$al uncurry$d (fun_app$aq (uup$ ?v0) ?v1)) ?v2))) :named a227)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$bk ?v0 (fun_app$r (fun_app$aj uncurry$c ?v1) ?v2)) (fun_app$h (fun_app$ad uncurry$a (fun_app$bj (uuq$ ?v0) ?v1)) ?v2))) :named a228)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$w ?v0 (fun_app$w (fun_app$ab uncurry$ ?v1) ?v2)) (fun_app$w (fun_app$ab uncurry$ (uur$ ?v0 ?v1)) ?v2))) :named a229)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set_a_llist_a_llist_prod_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$bh ?v0 (fun_app$x (fun_app$ah uncurry$b ?v1) ?v2)) (fun_app$w (fun_app$ab uncurry$ (uus$ ?v0 ?v1)) ?v2))) :named a230)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (= (fun_app$h (fun_app$ad uncurry$a ?v0) (uncurry$j ?v1 ?v2)) (fun_app$j (fun_app$al uncurry$d (fun_app$ae (uut$ ?v0) ?v1)) ?v2))) :named a231)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$x (fun_app$ah uncurry$b ?v0) (fun_app$w (fun_app$ab uncurry$ ?v1) ?v2)) (fun_app$x (fun_app$ah uncurry$b (fun_app$ag (uuu$ ?v0) ?v1)) ?v2))) :named a232)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$w (fun_app$ab uncurry$ ?v0) (fun_app$w (fun_app$ab uncurry$ ?v1) ?v2)) (fun_app$w (fun_app$ab uncurry$ (uuv$ ?v0 ?v1)) ?v2))) :named a233)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$j (fun_app$al uncurry$d ?v0) (uncurry$k ?v1 ?v2)) (fun_app$h (fun_app$ad uncurry$a (fun_app$ak (uuw$ ?v0) ?v1)) ?v2))) :named a234)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (= (fun_app$j (fun_app$al uncurry$d ?v0) (uncurry$l ?v1 ?v2)) (fun_app$j (fun_app$al uncurry$d (fun_app$ao (uux$ ?v0) ?v1)) ?v2))) :named a235)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$r (fun_app$aj uncurry$c ?v0) (fun_app$w (fun_app$ab uncurry$ ?v1) ?v2)) (fun_app$r (fun_app$aj uncurry$c (fun_app$ai (uuy$ ?v0) ?v1)) ?v2))) :named a236)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$h (fun_app$ad uncurry$a ?v0) (fun_app$w (fun_app$ab uncurry$ ?v1) ?v2)) (fun_app$h (fun_app$ad uncurry$a (fun_app$ac (uuz$ ?v0) ?v1)) ?v2))) :named a237)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (= (= ?v0 ?v0) (fun_app$j (fun_app$al uncurry$d uva$) ?v0))) :named a238)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$)) (= (= ?v0 ?v0) (fun_app$h (fun_app$ad uncurry$a uvb$) ?v0))) :named a239)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$x (fun_app$ah uncurry$b ?v0) (pair$ ?v1 ?v2)) (fun_app$n (fun_app$o ?v0 ?v1) ?v2)) :pattern ((fun_app$x (fun_app$ah uncurry$b ?v0) (pair$ ?v1 ?v2))))) :named a240)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$w (fun_app$ab uncurry$ ?v0) (pair$ ?v1 ?v2)) (fun_app$d (fun_app$e ?v0 ?v1) ?v2)) :pattern ((fun_app$w (fun_app$ab uncurry$ ?v0) (pair$ ?v1 ?v2))))) :named a241)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (! (= (fun_app$j (fun_app$al uncurry$d ?v0) (pair$b ?v1 ?v2)) (fun_app$h (fun_app$r ?v0 ?v1) ?v2)) :pattern ((fun_app$j (fun_app$al uncurry$d ?v0) (pair$b ?v1 ?v2))))) :named a242)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$r (fun_app$aj uncurry$c ?v0) (pair$ ?v1 ?v2)) (fun_app$p (fun_app$q ?v0 ?v1) ?v2)) :pattern ((fun_app$r (fun_app$aj uncurry$c ?v0) (pair$ ?v1 ?v2))))) :named a243)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$h (fun_app$ad uncurry$a ?v0) (pair$ ?v1 ?v2)) (fun_app$l (fun_app$m ?v0 ?v1) ?v2)) :pattern ((fun_app$h (fun_app$ad uncurry$a ?v0) (pair$ ?v1 ?v2))))) :named a244)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (fun_app$j (fun_app$al uncurry$d ?v0) ?v1) (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (and (= ?v1 (pair$b ?v2 ?v3)) (fun_app$h (fun_app$r ?v0 ?v2) ?v3)) false))) false)) :named a245)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_prod$)) (=> (and (fun_app$h (fun_app$ad uncurry$a ?v0) ?v1) (forall ((?v2 A_llist$) (?v3 A_llist$)) (=> (and (= ?v1 (pair$ ?v2 ?v3)) (fun_app$l (fun_app$m ?v0 ?v2) ?v3)) false))) false)) :named a246)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$)) (=> (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod$)) (=> (= ?v0 (pair$b ?v2 ?v3)) (fun_app$h (fun_app$r ?v1 ?v2) ?v3))) (fun_app$j (fun_app$al uncurry$d ?v1) ?v0))) :named a247)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_bool_fun_fun$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (=> (= ?v0 (pair$ ?v2 ?v3)) (fun_app$l (fun_app$m ?v1 ?v2) ?v3))) (fun_app$h (fun_app$ad uncurry$a ?v1) ?v0))) :named a248)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (fun_app$i ?v0 (fun_app$x (fun_app$ah uncurry$b ?v1) ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (fun_app$i ?v0 (fun_app$n (fun_app$o ?v1 ?v3) ?v4))) false))) false)) :named a249)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (fun_app$h ?v0 (fun_app$w (fun_app$ab uncurry$ ?v1) ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (fun_app$h ?v0 (fun_app$d (fun_app$e ?v1 ?v3) ?v4))) false))) false)) :named a250)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (fun_app$az ?v0 (fun_app$j (fun_app$al uncurry$d ?v1) ?v2)) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod$)) (=> (and (= ?v2 (pair$b ?v3 ?v4)) (fun_app$az ?v0 (fun_app$h (fun_app$r ?v1 ?v3) ?v4))) false))) false)) :named a251)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun_bool_fun$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (fun_app$bk ?v0 (fun_app$r (fun_app$aj uncurry$c ?v1) ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (fun_app$bk ?v0 (fun_app$p (fun_app$q ?v1 ?v3) ?v4))) false))) false)) :named a252)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist_a_llist_prod$)) (=> (and (fun_app$az ?v0 (fun_app$h (fun_app$ad uncurry$a ?v1) ?v2)) (forall ((?v3 A_llist$) (?v4 A_llist$)) (=> (and (= ?v2 (pair$ ?v3 ?v4)) (fun_app$az ?v0 (fun_app$l (fun_app$m ?v1 ?v3) ?v4))) false))) false)) :named a253)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 Bool) (?v2 A_a_llist_bool_fun_fun$) (?v3 A_llist$)) (= (fun_app$az ?v0 (fun_app$l (fun_app$ci (case_llist$ ?v1) ?v2) ?v3)) (and (=> (= ?v3 lNil$) (fun_app$az ?v0 ?v1)) (=> (= ?v3 (lCons$ (lhd$ ?v3) (ltl$ ?v3))) (fun_app$az ?v0 (fun_app$l (fun_app$as ?v2 (lhd$ ?v3)) (ltl$ ?v3))))))) :named a254)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_a_llist_a_llist_fun_fun$) (?v3 A_llist$)) (= (fun_app$l ?v0 (fun_app$a (fun_app$cj (case_llist$a ?v1) ?v2) ?v3)) (and (=> (= ?v3 lNil$) (fun_app$l ?v0 ?v1)) (=> (= ?v3 (lCons$ (lhd$ ?v3) (ltl$ ?v3))) (fun_app$l ?v0 (fun_app$a (fun_app$v ?v2 (lhd$ ?v3)) (ltl$ ?v3))))))) :named a255)) +(assert (! (forall ((?v0 A_bool_fun$) (?v1 A$) (?v2 A_a_llist_a_fun_fun$) (?v3 A_llist$)) (= (fun_app$k ?v0 (fun_app$c (fun_app$ck (case_llist$b ?v1) ?v2) ?v3)) (and (=> (= ?v3 lNil$) (fun_app$k ?v0 ?v1)) (=> (= ?v3 (lCons$ (lhd$ ?v3) (ltl$ ?v3))) (fun_app$k ?v0 (fun_app$c (fun_app$au ?v2 (lhd$ ?v3)) (ltl$ ?v3))))))) :named a256)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 Bool) (?v2 A_a_llist_bool_fun_fun$) (?v3 A_llist$)) (= (fun_app$az ?v0 (fun_app$l (fun_app$ci (case_llist$ ?v1) ?v2) ?v3)) (not (or (and (= ?v3 lNil$) (not (fun_app$az ?v0 ?v1))) (and (= ?v3 (lCons$ (lhd$ ?v3) (ltl$ ?v3))) (not (fun_app$az ?v0 (fun_app$l (fun_app$as ?v2 (lhd$ ?v3)) (ltl$ ?v3))))))))) :named a257)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_a_llist_a_llist_fun_fun$) (?v3 A_llist$)) (= (fun_app$l ?v0 (fun_app$a (fun_app$cj (case_llist$a ?v1) ?v2) ?v3)) (not (or (and (= ?v3 lNil$) (not (fun_app$l ?v0 ?v1))) (and (= ?v3 (lCons$ (lhd$ ?v3) (ltl$ ?v3))) (not (fun_app$l ?v0 (fun_app$a (fun_app$v ?v2 (lhd$ ?v3)) (ltl$ ?v3))))))))) :named a258)) +(assert (! (forall ((?v0 A_bool_fun$) (?v1 A$) (?v2 A_a_llist_a_fun_fun$) (?v3 A_llist$)) (= (fun_app$k ?v0 (fun_app$c (fun_app$ck (case_llist$b ?v1) ?v2) ?v3)) (not (or (and (= ?v3 lNil$) (not (fun_app$k ?v0 ?v1))) (and (= ?v3 (lCons$ (lhd$ ?v3) (ltl$ ?v3))) (not (fun_app$k ?v0 (fun_app$c (fun_app$au ?v2 (lhd$ ?v3)) (ltl$ ?v3))))))))) :named a259)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v3 A_llist_a_llist_prod$)) (=> (and (forall ((?v4 A_llist$) (?v5 A_llist$)) (=> (= (pair$ ?v4 ?v5) ?v0) (= (fun_app$n (fun_app$o ?v1 ?v4) ?v5) (fun_app$n (fun_app$o ?v2 ?v4) ?v5)))) (= ?v3 ?v0)) (= (fun_app$x (fun_app$ah uncurry$b ?v1) ?v3) (fun_app$x (fun_app$ah uncurry$b ?v2) ?v0)))) :named a260)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v3 A_llist_a_llist_prod$)) (=> (and (forall ((?v4 A_llist$) (?v5 A_llist$)) (=> (= (pair$ ?v4 ?v5) ?v0) (= (fun_app$d (fun_app$e ?v1 ?v4) ?v5) (fun_app$d (fun_app$e ?v2 ?v4) ?v5)))) (= ?v3 ?v0)) (= (fun_app$w (fun_app$ab uncurry$ ?v1) ?v3) (fun_app$w (fun_app$ab uncurry$ ?v2) ?v0)))) :named a261)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v3 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (=> (and (forall ((?v4 A_llist_a_llist_prod$) (?v5 A_llist_a_llist_prod$)) (=> (= (pair$b ?v4 ?v5) ?v0) (= (fun_app$h (fun_app$r ?v1 ?v4) ?v5) (fun_app$h (fun_app$r ?v2 ?v4) ?v5)))) (= ?v3 ?v0)) (= (fun_app$j (fun_app$al uncurry$d ?v1) ?v3) (fun_app$j (fun_app$al uncurry$d ?v2) ?v0)))) :named a262)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v2 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v3 A_llist_a_llist_prod$)) (=> (and (forall ((?v4 A_llist$) (?v5 A_llist$)) (=> (= (pair$ ?v4 ?v5) ?v0) (= (fun_app$p (fun_app$q ?v1 ?v4) ?v5) (fun_app$p (fun_app$q ?v2 ?v4) ?v5)))) (= ?v3 ?v0)) (= (fun_app$r (fun_app$aj uncurry$c ?v1) ?v3) (fun_app$r (fun_app$aj uncurry$c ?v2) ?v0)))) :named a263)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_bool_fun_fun$) (?v2 A_llist_a_llist_bool_fun_fun$) (?v3 A_llist_a_llist_prod$)) (=> (and (forall ((?v4 A_llist$) (?v5 A_llist$)) (=> (= (pair$ ?v4 ?v5) ?v0) (= (fun_app$l (fun_app$m ?v1 ?v4) ?v5) (fun_app$l (fun_app$m ?v2 ?v4) ?v5)))) (= ?v3 ?v0)) (= (fun_app$h (fun_app$ad uncurry$a ?v1) ?v3) (fun_app$h (fun_app$ad uncurry$a ?v2) ?v0)))) :named a264)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (= (unfold_llist$ lnull$a uvc$ uvd$ ?v0) ?v0)) :named a265)) +(assert (! (forall ((?v0 A_llist$)) (= (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a lnull$) uve$) uvf$) ?v0) ?v0)) :named a266)) +(assert (! (forall ((?v0 Bool) (?v1 A_a_llist_bool_fun_fun$) (?v2 A_llist$)) (! (= (fun_app$l (fun_app$ci (case_llist$ ?v0) ?v1) ?v2) (ite (fun_app$l lnull$ ?v2) ?v0 (fun_app$l (fun_app$as ?v1 (lhd$ ?v2)) (ltl$ ?v2)))) :pattern ((fun_app$l (fun_app$ci (case_llist$ ?v0) ?v1) ?v2)))) :named a267)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_a_llist_a_llist_fun_fun$) (?v2 A_llist$)) (! (= (fun_app$a (fun_app$cj (case_llist$a ?v0) ?v1) ?v2) (ite (fun_app$l lnull$ ?v2) ?v0 (fun_app$a (fun_app$v ?v1 (lhd$ ?v2)) (ltl$ ?v2)))) :pattern ((fun_app$a (fun_app$cj (case_llist$a ?v0) ?v1) ?v2)))) :named a268)) +(assert (! (forall ((?v0 A$) (?v1 A_a_llist_a_fun_fun$) (?v2 A_llist$)) (! (= (fun_app$c (fun_app$ck (case_llist$b ?v0) ?v1) ?v2) (ite (fun_app$l lnull$ ?v2) ?v0 (fun_app$c (fun_app$au ?v1 (lhd$ ?v2)) (ltl$ ?v2)))) :pattern ((fun_app$c (fun_app$ck (case_llist$b ?v0) ?v1) ?v2)))) :named a269)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod$)) (= (fun_app$h (fun_app$r (fun_app$aj uncurry$c ?v0) ?v1) ?v2) (fun_app$h (fun_app$ad uncurry$a (fun_app$y (uvg$ ?v0) ?v2)) ?v1))) :named a270)) +(assert (! (= internal_split$ uncurry$b) :named a271)) +(assert (! (= internal_split$a uncurry$) :named a272)) +(assert (! (= internal_split$b uncurry$d) :named a273)) +(assert (! (= internal_split$c uncurry$c) :named a274)) +(assert (! (= internal_split$d uncurry$a) :named a275)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_fun$) (?v2 A_llist_a_llist_fun$) (?v3 A_llist$)) (= (not (fun_app$l lnull$ (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v1) ?v2) ?v3))) (not (fun_app$l ?v0 ?v3)))) :named a276)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_fun$) (?v2 A_llist_a_llist_fun$) (?v3 A_llist$)) (= (fun_app$l lnull$ (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v1) ?v2) ?v3)) (fun_app$l ?v0 ?v3))) :named a277)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_fun$) (?v2 A_llist_a_llist_fun$) (?v3 A_llist$) (?v4 A$) (?v5 A_llist$)) (= (= (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v1) ?v2) ?v3) (lCons$ ?v4 ?v5)) (and (not (fun_app$l ?v0 ?v3)) (and (= ?v4 (fun_app$c ?v1 ?v3)) (= ?v5 (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v1) ?v2) (fun_app$a ?v2 ?v3))))))) :named a278)) +(assert (! (forall ((?v0 Bool_bool_fun$) (?v1 Bool) (?v2 A_a_llist_bool_fun_fun$) (?v3 A_llist$)) (= (fun_app$az ?v0 (fun_app$l (fun_app$ci (case_llist$ ?v1) ?v2) ?v3)) (fun_app$l (fun_app$ci (case_llist$ (fun_app$az ?v0 ?v1)) (fun_app$ba (uvh$ ?v0) ?v2)) ?v3))) :named a279)) +(assert (! (forall ((?v0 Bool_a_llist_fun$) (?v1 Bool) (?v2 A_a_llist_bool_fun_fun$) (?v3 A_llist$)) (= (fun_app$ax ?v0 (fun_app$l (fun_app$ci (case_llist$ ?v1) ?v2) ?v3)) (fun_app$a (fun_app$cj (case_llist$a (fun_app$ax ?v0 ?v1)) (fun_app$aw (uvi$ ?v0) ?v2)) ?v3))) :named a280)) +(assert (! (forall ((?v0 Bool_a_fun$) (?v1 Bool) (?v2 A_a_llist_bool_fun_fun$) (?v3 A_llist$)) (= (fun_app$bg ?v0 (fun_app$l (fun_app$ci (case_llist$ ?v1) ?v2) ?v3)) (fun_app$c (fun_app$ck (case_llist$b (fun_app$bg ?v0 ?v1)) (fun_app$bf (uvj$ ?v0) ?v2)) ?v3))) :named a281)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_a_llist_a_llist_fun_fun$) (?v3 A_llist$)) (= (fun_app$l ?v0 (fun_app$a (fun_app$cj (case_llist$a ?v1) ?v2) ?v3)) (fun_app$l (fun_app$ci (case_llist$ (fun_app$l ?v0 ?v1)) (fun_app$at (uvk$ ?v0) ?v2)) ?v3))) :named a282)) +(assert (! (forall ((?v0 A_llist_a_llist_fun$) (?v1 A_llist$) (?v2 A_a_llist_a_llist_fun_fun$) (?v3 A_llist$)) (= (fun_app$a ?v0 (fun_app$a (fun_app$cj (case_llist$a ?v1) ?v2) ?v3)) (fun_app$a (fun_app$cj (case_llist$a (fun_app$a ?v0 ?v1)) (fun_app$ar (uvl$ ?v0) ?v2)) ?v3))) :named a283)) +(assert (! (forall ((?v0 A_llist_a_fun$) (?v1 A_llist$) (?v2 A_a_llist_a_llist_fun_fun$) (?v3 A_llist$)) (= (fun_app$c ?v0 (fun_app$a (fun_app$cj (case_llist$a ?v1) ?v2) ?v3)) (fun_app$c (fun_app$ck (case_llist$b (fun_app$c ?v0 ?v1)) (fun_app$av (uvm$ ?v0) ?v2)) ?v3))) :named a284)) +(assert (! (forall ((?v0 A_bool_fun$) (?v1 A$) (?v2 A_a_llist_a_fun_fun$) (?v3 A_llist$)) (= (fun_app$k ?v0 (fun_app$c (fun_app$ck (case_llist$b ?v1) ?v2) ?v3)) (fun_app$l (fun_app$ci (case_llist$ (fun_app$k ?v0 ?v1)) (fun_app$bn (uvn$ ?v0) ?v2)) ?v3))) :named a285)) +(assert (! (forall ((?v0 A_a_llist_fun$) (?v1 A$) (?v2 A_a_llist_a_fun_fun$) (?v3 A_llist$)) (= (fun_app$bm ?v0 (fun_app$c (fun_app$ck (case_llist$b ?v1) ?v2) ?v3)) (fun_app$a (fun_app$cj (case_llist$a (fun_app$bm ?v0 ?v1)) (fun_app$bl (uvo$ ?v0) ?v2)) ?v3))) :named a286)) +(assert (! (forall ((?v0 A_a_fun$) (?v1 A$) (?v2 A_a_llist_a_fun_fun$) (?v3 A_llist$)) (= (fun_app$bp ?v0 (fun_app$c (fun_app$ck (case_llist$b ?v1) ?v2) ?v3)) (fun_app$c (fun_app$ck (case_llist$b (fun_app$bp ?v0 ?v1)) (fun_app$bo (uvp$ ?v0) ?v2)) ?v3))) :named a287)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_llist_a_fun$) (?v3 A_llist_a_llist_fun$)) (=> (not (fun_app$l ?v0 ?v1)) (not (fun_app$l lnull$ (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v2) ?v3) ?v1))))) :named a288)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_llist_a_fun$) (?v3 A_llist_a_llist_fun$)) (=> (fun_app$l ?v0 ?v1) (fun_app$l lnull$ (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v2) ?v3) ?v1)))) :named a289)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_llist_a_fun$) (?v3 A_llist_a_llist_fun$)) (=> (not (fun_app$l ?v0 ?v1)) (= (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v2) ?v3) ?v1) (lCons$ (fun_app$c ?v2 ?v1) (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v2) ?v3) (fun_app$a ?v3 ?v1)))))) :named a290)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_llist_a_fun$) (?v3 A_llist_a_llist_fun$)) (! (=> (fun_app$l ?v0 ?v1) (= (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v2) ?v3) ?v1) lNil$)) :pattern ((fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v2) ?v3) ?v1)))) :named a291)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_llist_a_fun$) (?v3 A_llist_a_llist_fun$)) (=> (not (fun_app$l ?v0 ?v1)) (= (ltl$ (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v2) ?v3) ?v1)) (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v2) ?v3) (fun_app$a ?v3 ?v1))))) :named a292)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_llist_a_fun$) (?v3 A_llist_a_llist_fun$)) (=> (not (fun_app$l ?v0 ?v1)) (= (lhd$ (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v2) ?v3) ?v1)) (fun_app$c ?v2 ?v1)))) :named a293)) +(assert (! (forall ((?v0 Bool) (?v1 A_a_llist_bool_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$l (fun_app$ci (case_llist$ ?v0) ?v1) (lCons$ ?v2 ?v3)) (fun_app$l (fun_app$as ?v1 ?v2) ?v3)) :pattern ((fun_app$l (fun_app$ci (case_llist$ ?v0) ?v1) (lCons$ ?v2 ?v3))))) :named a294)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_a_llist_a_llist_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$a (fun_app$cj (case_llist$a ?v0) ?v1) (lCons$ ?v2 ?v3)) (fun_app$a (fun_app$v ?v1 ?v2) ?v3)) :pattern ((fun_app$a (fun_app$cj (case_llist$a ?v0) ?v1) (lCons$ ?v2 ?v3))))) :named a295)) +(assert (! (forall ((?v0 A$) (?v1 A_a_llist_a_fun_fun$) (?v2 A$) (?v3 A_llist$)) (! (= (fun_app$c (fun_app$ck (case_llist$b ?v0) ?v1) (lCons$ ?v2 ?v3)) (fun_app$c (fun_app$au ?v1 ?v2) ?v3)) :pattern ((fun_app$c (fun_app$ck (case_llist$b ?v0) ?v1) (lCons$ ?v2 ?v3))))) :named a296)) +(assert (! (forall ((?v0 Bool) (?v1 A_a_llist_bool_fun_fun$)) (! (= (fun_app$l (fun_app$ci (case_llist$ ?v0) ?v1) lNil$) ?v0) :pattern ((fun_app$ci (case_llist$ ?v0) ?v1)))) :named a297)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_a_llist_a_llist_fun_fun$)) (! (= (fun_app$a (fun_app$cj (case_llist$a ?v0) ?v1) lNil$) ?v0) :pattern ((fun_app$cj (case_llist$a ?v0) ?v1)))) :named a298)) +(assert (! (forall ((?v0 A$) (?v1 A_a_llist_a_fun_fun$)) (! (= (fun_app$c (fun_app$ck (case_llist$b ?v0) ?v1) lNil$) ?v0) :pattern ((fun_app$ck (case_llist$b ?v0) ?v1)))) :named a299)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (= (not (fun_app$bw lnull$a ?v0)) (fun_app$bw (fun_app$cn (case_llist$c false) uvq$) ?v0))) :named a300)) +(assert (! (forall ((?v0 A_llist$)) (= (not (fun_app$l lnull$ ?v0)) (fun_app$l (fun_app$ci (case_llist$ false) uvr$) ?v0))) :named a301)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (! (= (fun_app$bw lnull$a ?v0) (fun_app$bw (fun_app$cn (case_llist$c true) uvs$) ?v0)) :pattern ((fun_app$bw lnull$a ?v0)))) :named a302)) +(assert (! (forall ((?v0 A_llist$)) (! (= (fun_app$l lnull$ ?v0) (fun_app$l (fun_app$ci (case_llist$ true) uvt$) ?v0)) :pattern ((fun_app$l lnull$ ?v0)))) :named a303)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_fun$) (?v2 A_llist_a_llist_fun$) (?v3 A_llist$)) (= (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v1) ?v2) ?v3) (ite (fun_app$l ?v0 ?v3) lNil$ (lCons$ (fun_app$c ?v1 ?v3) (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v1) ?v2) (fun_app$a ?v2 ?v3)))))) :named a304)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_fun$) (?v2 A_llist_a_llist_fun$) (?v3 A_llist$)) (= (ltl$ (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v1) ?v2) ?v3)) (ite (fun_app$l ?v0 ?v3) lNil$ (fun_app$a (fun_app$cl (fun_app$cm (unfold_llist$a ?v0) ?v1) ?v2) (fun_app$a ?v2 ?v3))))) :named a305)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (= (ltl$a ?v0) (case_llist$d lNil$a uvu$ ?v0))) :named a306)) +(assert (! (forall ((?v0 A_llist$)) (= (ltl$ ?v0) (fun_app$a (fun_app$cj (case_llist$a lNil$) uvv$) ?v0))) :named a307)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$h (fun_app$ad internal_split$d ?v0) (pair$ ?v1 ?v2)) (fun_app$l (fun_app$m ?v0 ?v1) ?v2)) :pattern ((fun_app$h (fun_app$ad internal_split$d ?v0) (pair$ ?v1 ?v2))))) :named a308)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (! (= (uncurry$l uvw$ ?v0) ?v0) :pattern ((uncurry$l uvw$ ?v0)))) :named a309)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$)) (! (= (fun_app$w (fun_app$ab uncurry$ uvx$) ?v0) ?v0) :pattern ((fun_app$w (fun_app$ab uncurry$ uvx$) ?v0)))) :named a310)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod_set$)) (= (= (uvy$ ?v0) (uvy$ ?v1)) (= ?v0 ?v1))) :named a311)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (= (= (uvz$ ?v0) (uvz$ ?v1)) (= ?v0 ?v1))) :named a312)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (=> (or (not (fun_app$bw lnull$a ?v0)) (not (fun_app$bw lnull$a ?v1))) (= (lhd$a (fun_app$ (lappend$ ?v0) ?v1)) (case_llist$e (lhd$a ?v1) uwa$ ?v0)))) :named a313)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (or (not (fun_app$l lnull$ ?v0)) (not (fun_app$l lnull$ ?v1))) (= (lhd$ (fun_app$a (lappend$a ?v0) ?v1)) (fun_app$c (fun_app$ck (case_llist$b (lhd$ ?v1)) uwb$) ?v0)))) :named a314)) +(assert (! (forall ((?v0 A_bool_fun$) (?v1 A$) (?v2 A_llist$)) (! (= (fun_app$l (pred_llist$ ?v0) (lCons$ ?v1 ?v2)) (and (fun_app$k ?v0 ?v1) (fun_app$l (pred_llist$ ?v0) ?v2))) :pattern ((fun_app$l (pred_llist$ ?v0) (lCons$ ?v1 ?v2))))) :named a315)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_llist$)) (! (= (fun_app$bw (pred_llist$a ?v0) (lCons$a ?v1 ?v2)) (and (fun_app$h ?v0 ?v1) (fun_app$bw (pred_llist$a ?v0) ?v2))) :pattern ((fun_app$bw (pred_llist$a ?v0) (lCons$a ?v1 ?v2))))) :named a316)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$)) (! (= (fun_app$bw (lmember$ ?v0) lNil$a) false) :pattern ((lmember$ ?v0)))) :named a317)) +(assert (! (forall ((?v0 A$)) (! (= (fun_app$l (lmember$a ?v0) lNil$) false) :pattern ((lmember$a ?v0)))) :named a318)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_set_fun_fun$) (?v1 A_llist_a_llist_prod$)) (= (fun_app$x (fun_app$ah uncurry$b (uwc$ ?v0)) (swap$ ?v1)) (fun_app$x (fun_app$ah uncurry$b ?v0) ?v1))) :named a319)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_fun_fun$) (?v1 A_llist_a_llist_prod$)) (= (fun_app$w (fun_app$ab uncurry$ (uwd$ ?v0)) (swap$ ?v1)) (fun_app$w (fun_app$ab uncurry$ ?v0) ?v1))) :named a320)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod_a_llist_a_llist_prod_prod$)) (= (fun_app$j (fun_app$al uncurry$d (uwe$ ?v0)) (swap$a ?v1)) (fun_app$j (fun_app$al uncurry$d ?v0) ?v1))) :named a321)) +(assert (! (forall ((?v0 A_llist_a_llist_a_llist_a_llist_prod_bool_fun_fun_fun$) (?v1 A_llist_a_llist_prod$)) (= (fun_app$r (fun_app$aj uncurry$c (uwf$ ?v0)) (swap$ ?v1)) (fun_app$r (fun_app$aj uncurry$c ?v0) ?v1))) :named a322)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_prod$)) (= (fun_app$h (fun_app$ad uncurry$a (uwg$ ?v0)) (swap$ ?v1)) (fun_app$h (fun_app$ad uncurry$a ?v0) ?v1))) :named a323)) +(assert (! (forall ((?v0 A$) (?v1 A$) (?v2 A_llist$)) (! (= (fun_app$l (lmember$a ?v0) (lCons$ ?v1 ?v2)) (or (= ?v0 ?v1) (fun_app$l (lmember$a ?v0) ?v2))) :pattern ((fun_app$l (lmember$a ?v0) (lCons$ ?v1 ?v2))))) :named a324)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_llist$)) (! (= (fun_app$bw (lmember$ ?v0) (lCons$a ?v1 ?v2)) (or (= ?v0 ?v1) (fun_app$bw (lmember$ ?v0) ?v2))) :pattern ((fun_app$bw (lmember$ ?v0) (lCons$a ?v1 ?v2))))) :named a325)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$)) (= (swap$ (swap$ ?v0)) ?v0)) :named a326)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (= (fun_app$bw lnull$a (fun_app$ (lappend$ ?v0) ?v1)) (and (fun_app$bw lnull$a ?v0) (fun_app$bw lnull$a ?v1)))) :named a327)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (= (fun_app$l lnull$ (fun_app$a (lappend$a ?v0) ?v1)) (and (fun_app$l lnull$ ?v0) (fun_app$l lnull$ ?v1)))) :named a328)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (= (not (fun_app$bw lnull$a (fun_app$ (lappend$ ?v0) ?v1))) (or (not (fun_app$bw lnull$a ?v0)) (not (fun_app$bw lnull$a ?v1))))) :named a329)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (= (not (fun_app$l lnull$ (fun_app$a (lappend$a ?v0) ?v1))) (or (not (fun_app$l lnull$ ?v0)) (not (fun_app$l lnull$ ?v1))))) :named a330)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$a (lappend$a (lCons$ ?v0 ?v1)) ?v2) (lCons$ ?v0 (fun_app$a (lappend$a ?v1) ?v2))) :pattern ((fun_app$a (lappend$a (lCons$ ?v0 ?v1)) ?v2)))) :named a331)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$)) (! (= (fun_app$ (lappend$ (lCons$a ?v0 ?v1)) ?v2) (lCons$a ?v0 (fun_app$ (lappend$ ?v1) ?v2))) :pattern ((fun_app$ (lappend$ (lCons$a ?v0 ?v1)) ?v2)))) :named a332)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (! (= (fun_app$ (lappend$ lNil$a) ?v0) ?v0) :pattern ((fun_app$ (lappend$ lNil$a) ?v0)))) :named a333)) +(assert (! (forall ((?v0 A_llist$)) (! (= (fun_app$a (lappend$a lNil$) ?v0) ?v0) :pattern ((fun_app$a (lappend$a lNil$) ?v0)))) :named a334)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (! (= (fun_app$ (lappend$ ?v0) lNil$a) ?v0) :pattern ((lappend$ ?v0)))) :named a335)) +(assert (! (forall ((?v0 A_llist$)) (! (= (fun_app$a (lappend$a ?v0) lNil$) ?v0) :pattern ((lappend$a ?v0)))) :named a336)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod$)) (= (swap$a (pair$b ?v0 ?v1)) (pair$b ?v1 ?v0))) :named a337)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (= (swap$ (pair$ ?v0 ?v1)) (pair$ ?v1 ?v0))) :named a338)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (= (ltl$a (fun_app$ (lappend$ ?v0) ?v1)) (ite (fun_app$bw lnull$a ?v0) (ltl$a ?v1) (fun_app$ (lappend$ (ltl$a ?v0)) ?v1)))) :named a339)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (= (ltl$ (fun_app$a (lappend$a ?v0) ?v1)) (ite (fun_app$l lnull$ ?v0) (ltl$ ?v1) (fun_app$a (lappend$a (ltl$ ?v0)) ?v1)))) :named a340)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (= (lhd$a (fun_app$ (lappend$ ?v0) ?v1)) (ite (fun_app$bw lnull$a ?v0) (lhd$a ?v1) (lhd$a ?v0)))) :named a341)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (= (lhd$ (fun_app$a (lappend$a ?v0) ?v1)) (ite (fun_app$l lnull$ ?v0) (lhd$ ?v1) (lhd$ ?v0)))) :named a342)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist$)) (= (fun_app$a (lappend$a (fun_app$a (lappend$a ?v0) ?v1)) ?v2) (fun_app$a (lappend$a ?v0) (fun_app$a (lappend$a ?v1) ?v2)))) :named a343)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$)) (= (fun_app$ (lappend$ (fun_app$ (lappend$ ?v0) ?v1)) ?v2) (fun_app$ (lappend$ ?v0) (fun_app$ (lappend$ ?v1) ?v2)))) :named a344)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (! (=> (fun_app$bw lnull$a ?v0) (= (fun_app$ (lappend$ ?v0) ?v1) ?v1)) :pattern ((fun_app$ (lappend$ ?v0) ?v1)))) :named a345)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (! (=> (fun_app$l lnull$ ?v0) (= (fun_app$a (lappend$a ?v0) ?v1) ?v1)) :pattern ((fun_app$a (lappend$a ?v0) ?v1)))) :named a346)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (! (=> (fun_app$bw lnull$a ?v0) (= (fun_app$ (lappend$ ?v1) ?v0) ?v1)) :pattern ((fun_app$ (lappend$ ?v1) ?v0)))) :named a347)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (! (=> (fun_app$l lnull$ ?v0) (= (fun_app$a (lappend$a ?v1) ?v0) ?v1)) :pattern ((fun_app$a (lappend$a ?v1) ?v0)))) :named a348)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$bw lnull$a ?v0) (fun_app$bw lnull$a ?v1)) (fun_app$bw lnull$a (fun_app$ (lappend$ ?v0) ?v1)))) :named a349)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (and (fun_app$l lnull$ ?v0) (fun_app$l lnull$ ?v1)) (fun_app$l lnull$ (fun_app$a (lappend$a ?v0) ?v1)))) :named a350)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (=> (or (not (fun_app$bw lnull$a ?v0)) (not (fun_app$bw lnull$a ?v1))) (not (fun_app$bw lnull$a (fun_app$ (lappend$ ?v0) ?v1))))) :named a351)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (or (not (fun_app$l lnull$ ?v0)) (not (fun_app$l lnull$ ?v1))) (not (fun_app$l lnull$ (fun_app$a (lappend$a ?v0) ?v1))))) :named a352)) +(assert (! (= (fun_app$ (lappend$ lNil$a) lNil$a) lNil$a) :named a353)) +(assert (! (= (fun_app$a (lappend$a lNil$) lNil$) lNil$) :named a354)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (= (= (fun_app$ (lappend$ ?v0) ?v1) lNil$a) (and (= ?v0 lNil$a) (= ?v1 lNil$a)))) :named a355)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (= (= (fun_app$a (lappend$a ?v0) ?v1) lNil$) (and (= ?v0 lNil$) (= ?v1 lNil$)))) :named a356)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (= (= lNil$a (fun_app$ (lappend$ ?v0) ?v1)) (and (= ?v0 lNil$a) (= ?v1 lNil$a)))) :named a357)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (= (= lNil$ (fun_app$a (lappend$a ?v0) ?v1)) (and (= ?v0 lNil$) (= ?v1 lNil$)))) :named a358)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (= (fun_app$ (lappend$ ?v0) ?v1) (case_llist$d ?v1 (uwh$ ?v1) ?v0))) :named a359)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (= (fun_app$a (lappend$a ?v0) ?v1) (fun_app$a (fun_app$cj (case_llist$a ?v1) (uwi$ ?v1)) ?v0))) :named a360)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod_llist$)) (! (=> (and (fun_app$bw lnull$a ?v0) (fun_app$bw lnull$a ?v1)) (= (fun_app$ (lappend$ ?v0) ?v1) lNil$a)) :pattern ((fun_app$ (lappend$ ?v0) ?v1)))) :named a361)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (! (=> (and (fun_app$l lnull$ ?v0) (fun_app$l lnull$ ?v1)) (= (fun_app$a (lappend$a ?v0) ?v1) lNil$)) :pattern ((fun_app$a (lappend$a ?v0) ?v1)))) :named a362)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod$) (?v2 A_llist_a_llist_prod_llist$)) (= (fun_app$ (lappend$ (fun_app$ (lappend$ ?v0) (lCons$a ?v1 lNil$a))) ?v2) (fun_app$ (lappend$ ?v0) (lCons$a ?v1 ?v2)))) :named a363)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (not (fun_app$l lnull$ ?v0)) (= (fun_app$a (lappend$a (ltl$ ?v0)) ?v1) (ltl$ (fun_app$a (lappend$a ?v0) ?v1))))) :named a364)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (or (not (fun_app$l lnull$ ?v0)) (not (fun_app$l lnull$ ?v1))) (= (fun_app$a (lappend$a ?v0) ?v1) (lCons$ (fun_app$c (fun_app$ck (case_llist$b (lhd$ ?v1)) uwb$) ?v0) (fun_app$a (fun_app$cj (case_llist$a (fun_app$a (fun_app$cj (case_llist$a undefined$) uvv$) ?v1)) (uwj$ ?v1)) ?v0))))) :named a365)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (=> (or (not (fun_app$l lnull$ ?v0)) (not (fun_app$l lnull$ ?v1))) (= (ltl$ (fun_app$a (lappend$a ?v0) ?v1)) (fun_app$a (fun_app$cj (case_llist$a (fun_app$a (fun_app$cj (case_llist$a undefined$) uvv$) ?v1)) (uwj$ ?v1)) ?v0)))) :named a366)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_fun$)) (= (inv_image$ ?v0 ?v1) (collect$ (fun_app$ad uncurry$a (fun_app$z (uwk$ ?v0) ?v1))))) :named a367)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist_a_llist_a_llist_prod_set_fun$)) (= (same_fst$ ?v0 ?v1) (collect$a (fun_app$al uncurry$d (fun_app$aj uncurry$c (fun_app$bt (uwm$ ?v0) ?v1)))))) :named a368)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod_llist$)) (=> (not (fun_app$bw lnull$a ?v3)) (fun_app$bw (fun_app$bx ?v2 (lhd$a ?v3)) ?v3))) (forall ((?v3 A_llist_a_llist_prod_llist$) (?v4 A_llist_a_llist_prod$)) (=> (and (not (fun_app$bw lnull$a ?v3)) (and (fun_app$i (member$ ?v4) (lset$ (ltl$a ?v3))) (fun_app$bw (fun_app$bx ?v2 ?v4) (ltl$a ?v3)))) (fun_app$bw (fun_app$bx ?v2 ?v4) ?v3))))) (fun_app$bw (fun_app$bx ?v2 ?v0) ?v1))) :named a369)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$) (?v2 A_a_llist_bool_fun_fun$)) (=> (and (member$b ?v0 (lset$a ?v1)) (and (forall ((?v3 A_llist$)) (=> (not (fun_app$l lnull$ ?v3)) (fun_app$l (fun_app$as ?v2 (lhd$ ?v3)) ?v3))) (forall ((?v3 A_llist$) (?v4 A$)) (=> (and (not (fun_app$l lnull$ ?v3)) (and (member$b ?v4 (lset$a (ltl$ ?v3))) (fun_app$l (fun_app$as ?v2 ?v4) (ltl$ ?v3)))) (fun_app$l (fun_app$as ?v2 ?v4) ?v3))))) (fun_app$l (fun_app$as ?v2 ?v0) ?v1))) :named a370)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist_a_llist_prod_set$) (?v3 A_llist_a_llist_fun$)) (= (fun_app$i (member$ (pair$ ?v0 ?v1)) (inv_image$ ?v2 ?v3)) (fun_app$i (member$ (pair$ (fun_app$a ?v3 ?v0) (fun_app$a ?v3 ?v1))) ?v2))) :named a371)) +(assert (! (forall ((?v0 A_llist_bool_fun$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist_a_llist_a_llist_prod_set_fun$)) (=> (and (fun_app$l ?v0 ?v1) (fun_app$i (member$ (pair$ ?v2 ?v3)) (fun_app$n ?v4 ?v1))) (member$a (pair$b (pair$ ?v1 ?v2) (pair$ ?v1 ?v3)) (same_fst$ ?v0 ?v4)))) :named a372)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (fun_app$i (member$ ?v0) (lset$ (lCons$a ?v0 ?v1)))) :named a373)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (fun_app$i (member$ ?v0) (lset$ (lCons$a ?v0 ?v1)))) :named a374)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod$)) (=> (fun_app$i (member$ ?v0) (lset$ ?v1)) (fun_app$i (member$ ?v0) (lset$ (lCons$a ?v2 ?v1))))) :named a375)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod$)) (=> (fun_app$i (member$ ?v0) (lset$ ?v1)) (fun_app$i (member$ ?v0) (lset$ (lCons$a ?v2 ?v1))))) :named a376)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v2 A_llist_a_llist_prod_llist$)) (=> (= ?v1 (lCons$a ?v0 ?v2)) false)) (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod_llist$)) (=> (and (= ?v1 (lCons$a ?v2 ?v3)) (fun_app$i (member$ ?v0) (lset$ ?v3))) false)))) false)) :named a377)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist_bool_fun$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod_llist$)) (fun_app$bw ?v2 (lCons$a ?v0 ?v3))) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v4)) (and (not (= ?v0 ?v3)) (fun_app$bw ?v2 ?v4))) (fun_app$bw ?v2 (lCons$a ?v3 ?v4)))))) (fun_app$bw ?v2 ?v1))) :named a378)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist_bool_fun$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod_llist$)) (fun_app$bw ?v2 (lCons$a ?v0 ?v3))) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v4)) (fun_app$bw ?v2 ?v4)) (fun_app$bw ?v2 (lCons$a ?v3 ?v4)))))) (fun_app$bw ?v2 ?v1))) :named a379)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v2 A_llist_a_llist_prod_llist$)) (=> (= ?v1 (lCons$a ?v0 ?v2)) false)) (forall ((?v2 A_llist_a_llist_prod$) (?v3 A_llist_a_llist_prod_llist$)) (=> (and (= ?v1 (lCons$a ?v2 ?v3)) (fun_app$i (member$ ?v0) (lset$ ?v3))) false)))) false)) :named a380)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_a_llist_a_llist_prod_llist_bool_fun_fun$)) (=> (and (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$)) (fun_app$bw (fun_app$bx ?v2 ?v3) (lCons$a ?v3 ?v4))) (forall ((?v3 A_llist_a_llist_prod$) (?v4 A_llist_a_llist_prod_llist$) (?v5 A_llist_a_llist_prod$)) (=> (and (fun_app$i (member$ ?v5) (lset$ ?v4)) (fun_app$bw (fun_app$bx ?v2 ?v5) ?v4)) (fun_app$bw (fun_app$bx ?v2 ?v5) (lCons$a ?v3 ?v4)))))) (fun_app$bw (fun_app$bx ?v2 ?v0) ?v1))) :named a381)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (fun_app$i (member$ ?v0) (lset$ (ltl$a ?v1))) (fun_app$i (member$ ?v0) (lset$ ?v1)))) :named a382)) +(assert (! (forall ((?v0 A$) (?v1 A_llist$)) (=> (member$b ?v0 (lset$a (ltl$ ?v1))) (member$b ?v0 (lset$a ?v1)))) :named a383)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (= (fun_app$i (member$ ?v0) (lset$ ?v1)) (fun_app$bw (lmember$ ?v0) ?v1))) :named a384)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$) (?v1 A_llist_a_llist_prod$)) (=> (and (not (fun_app$bw lnull$a ?v0)) (fun_app$i (member$ ?v1) (lset$ (ltl$a ?v0)))) (fun_app$i (member$ ?v1) (lset$ ?v0)))) :named a385)) +(assert (! (forall ((?v0 A_llist$) (?v1 A$)) (=> (and (not (fun_app$l lnull$ ?v0)) (member$b ?v1 (lset$a (ltl$ ?v0)))) (member$b ?v1 (lset$a ?v0)))) :named a386)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_llist$)) (=> (not (fun_app$bw lnull$a ?v0)) (fun_app$i (member$ (lhd$a ?v0)) (lset$ ?v0)))) :named a387)) +(assert (! (forall ((?v0 A_llist$)) (=> (not (fun_app$l lnull$ ?v0)) (member$b (lhd$ ?v0) (lset$a ?v0)))) :named a388)) +(assert (! (forall ((?v0 A_llist$)) (= (lhd$ ?v0) (fun_app$c (fun_app$ck (case_llist$b undefined$a) uwb$) ?v0))) :named a389)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (= (lex_prod$ ?v0 ?v1) (collect$a (fun_app$al uncurry$d (fun_app$aj uncurry$c (fun_app$bq (uwo$ ?v0) ?v1)))))) :named a390)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (fun_app$i (member$ ?v0) (lset$ ?v1)) (exists ((?v2 A_llist_a_llist_prod_llist$) (?v3 A_llist_a_llist_prod_llist$)) (and (= ?v1 (fun_app$ (lappend$ ?v2) (lCons$a ?v0 ?v3))) (and (lfinite$ ?v2) (not (fun_app$i (member$ ?v0) (lset$ ?v2)))))))) :named a391)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$)) (=> (fun_app$i (member$ ?v0) (lset$ ?v1)) (exists ((?v2 A_llist_a_llist_prod_llist$) (?v3 A_llist_a_llist_prod_llist$)) (and (= ?v1 (fun_app$ (lappend$ ?v2) (lCons$a ?v0 ?v3))) (lfinite$ ?v2))))) :named a392)) +(assert (! (forall ((?v0 A_llist$)) (= (lfinite$a (ltl$ ?v0)) (lfinite$a ?v0))) :named a393)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_llist$) (?v4 A_llist_a_llist_prod_set$) (?v5 A_llist_a_llist_prod_set$)) (= (member$a (pair$b (pair$ ?v0 ?v1) (pair$ ?v2 ?v3)) (lex_prod$ ?v4 ?v5)) (or (fun_app$i (member$ (pair$ ?v0 ?v2)) ?v4) (and (= ?v0 ?v2) (fun_app$i (member$ (pair$ ?v1 ?v3)) ?v5))))) :named a394)) +(assert (! (forall ((?v0 A_llist$)) (=> (fun_app$l lnull$ ?v0) (lfinite$a ?v0))) :named a395)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist_bool_fun$)) (=> (and (lfinite$a ?v0) (and (forall ((?v2 A_llist$)) (=> (fun_app$l lnull$ ?v2) (fun_app$l ?v1 ?v2))) (forall ((?v2 A_llist$)) (=> (and (lfinite$a ?v2) (and (not (fun_app$l lnull$ ?v2)) (fun_app$l ?v1 (ltl$ ?v2)))) (fun_app$l ?v1 ?v2))))) (fun_app$l ?v1 ?v0))) :named a396)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$)) (= (fun_app$i (member$ ?v0) (lset$ (fun_app$ (lappend$ ?v1) ?v2))) (or (fun_app$i (member$ ?v0) (lset$ ?v1)) (and (lfinite$ ?v1) (fun_app$i (member$ ?v0) (lset$ ?v2)))))) :named a397)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_bool_fun$) (?v1 A_llist_a_llist_prod_bool_fun$)) (= (collect$ (fun_app$t (uwp$ ?v0) ?v1)) (sup$ (collect$ ?v0) (collect$ ?v1)))) :named a398)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (= (sup$ ?v0 ?v1) (collect$ (fun_app$s (uwq$ ?v0) ?v1)))) :named a399)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$) (?v3 A_a_bool_fun_fun$)) (=> (and (fun_app$l (fun_app$m ?v0 ?v1) ?v2) (forall ((?v4 A_llist$) (?v5 A_llist$)) (=> (fun_app$l (fun_app$m ?v0 ?v4) ?v5) (and (= (fun_app$l lnull$ ?v4) (fun_app$l lnull$ ?v5)) (=> (and (not (fun_app$l lnull$ ?v4)) (not (fun_app$l lnull$ ?v5))) (and (fun_app$k (fun_app$co ?v3 (lhd$ ?v4)) (lhd$ ?v5)) (fun_app$l (fun_app$m ?v0 (ltl$ ?v4)) (ltl$ ?v5)))))))) (fun_app$l (fun_app$m (llist_all2$ ?v3) ?v1) ?v2))) :named a400)) +(assert (! (forall ((?v0 A_a_bool_fun_fun$) (?v1 A_llist$) (?v2 A_llist$)) (= (fun_app$l (fun_app$m (llist_all2$ ?v0) ?v1) ?v2) (and (= (fun_app$l lnull$ ?v1) (fun_app$l lnull$ ?v2)) (=> (and (not (fun_app$l lnull$ ?v1)) (not (fun_app$l lnull$ ?v2))) (and (fun_app$k (fun_app$co ?v0 (lhd$ ?v1)) (lhd$ ?v2)) (fun_app$l (fun_app$m (llist_all2$ ?v0) (ltl$ ?v1)) (ltl$ ?v2))))))) :named a401)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (=> (forall ((?v2 A_llist$) (?v3 A_llist$)) (=> (fun_app$i (member$ (pair$ ?v2 ?v3)) ?v0) (fun_app$i (member$ (pair$ ?v2 ?v3)) ?v1))) (fun_app$i (less_eq$ ?v0) ?v1))) :named a402)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$) (?v1 A_llist_a_llist_prod_llist$) (?v2 A_llist_a_llist_prod_llist$) (?v3 A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun$)) (=> (and (fun_app$bw (fun_app$by (llist_all2$a ?v0) ?v1) ?v2) (forall ((?v4 A_llist_a_llist_prod$) (?v5 A_llist_a_llist_prod$)) (=> (and (fun_app$i (member$ ?v4) (lset$ ?v1)) (and (fun_app$i (member$ ?v5) (lset$ ?v2)) (fun_app$h (fun_app$r ?v0 ?v4) ?v5))) (fun_app$h (fun_app$r ?v3 ?v4) ?v5)))) (fun_app$bw (fun_app$by (llist_all2$a ?v3) ?v1) ?v2))) :named a403)) +(assert (! (forall ((?v0 A_llist$)) (less_eq$a (lset$a (ltl$ ?v0)) (lset$a ?v0))) :named a404)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_bool_fun$) (?v2 A_llist_a_llist_prod_bool_fun$)) (= (fun_app$i (less_eq$ ?v0) (collect$ (fun_app$t (uwr$ ?v1) ?v2))) (and (fun_app$i (less_eq$ ?v0) (collect$ ?v1)) (fun_app$i (less_eq$ ?v0) (collect$ ?v2))))) :named a405)) +(assert (! (forall ((?v0 A_llist_a_llist_prod$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod_set$) (?v3 A_llist_a_llist_prod_bool_fun$)) (=> (and (fun_app$i (member$ ?v0) ?v1) (fun_app$i (less_eq$ ?v1) (collect$ (fun_app$t (uws$ ?v2) ?v3)))) (fun_app$h ?v3 ?v0))) :named a406)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod_bool_fun$) (?v3 A_llist_a_llist_prod_bool_fun$)) (=> (and (fun_app$i (less_eq$ ?v0) ?v1) (forall ((?v4 A_llist_a_llist_prod$)) (=> (and (fun_app$i (member$ ?v4) ?v0) (fun_app$h ?v2 ?v4)) (fun_app$h ?v3 ?v4)))) (fun_app$i (less_eq$ (collect$ (fun_app$t (uws$ ?v0) ?v2))) (collect$ (fun_app$t (uws$ ?v1) ?v3))))) :named a407)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (= (fun_app$i (less_eq$ ?v0) ?v1) (fun_app$bk (less_eq$b (uui$ ?v0)) (uui$ ?v1)))) :named a408)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (= (fun_app$bk (less_eq$b (uui$ ?v0)) (uui$ ?v1)) (fun_app$i (less_eq$ ?v0) ?v1))) :named a409)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (= (less_eq$c (uvz$ ?v0) (uvz$ ?v1)) (fun_app$i (less_eq$ ?v0) ?v1))) :named a410)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$) (?v2 A_llist_a_llist_prod_set$) (?v3 A_llist$)) (=> (and (fun_app$i (member$ (pair$ ?v0 ?v1)) ?v2) (= ?v3 ?v1)) (fun_app$i (member$ (pair$ ?v0 ?v3)) ?v2))) :named a411)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_bool_fun$)) (fun_app$i (less_eq$ (collect$ (fun_app$t (uws$ ?v0) ?v1))) ?v0)) :named a412)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$) (?v2 A_llist_a_llist_prod_bool_fun$)) (=> (fun_app$i (less_eq$ ?v0) ?v1) (= (fun_app$i (less_eq$ ?v0) (collect$ (fun_app$t (uws$ ?v1) ?v2))) (forall ((?v3 A_llist_a_llist_prod$)) (=> (fun_app$i (member$ ?v3) ?v0) (fun_app$h ?v2 ?v3)))))) :named a413)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$) (?v1 A_llist_a_llist_bool_fun_fun$)) (=> (less_eq$c ?v0 ?v1) (fun_app$i (less_eq$ (collect$ (fun_app$ad uncurry$a ?v0))) (collect$ (fun_app$ad uncurry$a ?v1))))) :named a414)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (=> (and (fun_app$i (less_eq$ ?v0) (collect$ (fun_app$ad uncurry$a (in_rel$ ?v1)))) (=> (fun_app$i (less_eq$ ?v0) ?v1) false)) false)) :named a415)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist$) (?v2 A_llist$)) (! (= (fun_app$l (fun_app$m (in_rel$ ?v0) ?v1) ?v2) (fun_app$i (member$ (pair$ ?v1 ?v2)) ?v0)) :pattern ((fun_app$l (fun_app$m (in_rel$ ?v0) ?v1) ?v2)))) :named a416)) +(assert (! (forall ((?v0 A_llist_a_llist_bool_fun_fun$)) (= (in_rel$ (collect$ (fun_app$ad uncurry$a ?v0))) ?v0)) :named a417)) +(assert (! (forall ((?v0 A_llist_a_llist_prod_set$) (?v1 A_llist_a_llist_prod_set$)) (=> (fun_app$i (less_eq$ ?v0) ?v1) (fun_app$i (less_eq$ ?v0) (collect$ (fun_app$ad uncurry$a (in_rel$ ?v1)))))) :named a418)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist_a_llist_prod_a_llist_fun$) (?v2 A_llist_a_llist_prod$) (?v3 A_llist$) (?v4 A_llist_a_llist_prod_a_llist_fun$) (?v5 A_llist_a_llist_prod_set$)) (=> (and (= ?v0 (fun_app$cp ?v1 ?v2)) (and (= ?v3 (fun_app$cp ?v4 ?v2)) (fun_app$i (member$ ?v2) ?v5))) (fun_app$i (member$ (pair$ ?v0 ?v3)) (image2$ ?v5 ?v1 ?v4)))) :named a419)) +(assert (! (forall ((?v0 A_llist$) (?v1 A_llist$)) (= (the$ (fun_app$ad uncurry$a (fun_app$aa (uwt$ ?v0) ?v1))) (pair$ ?v0 ?v1))) :named a420)) +(check-sat) + diff --git a/test/regress/regress1/quantifiers/ext-ex-deq-trigger.smt2 b/test/regress/regress1/quantifiers/ext-ex-deq-trigger.smt2 new file mode 100644 index 000000000..f6f96fe02 --- /dev/null +++ b/test/regress/regress1/quantifiers/ext-ex-deq-trigger.smt2 @@ -0,0 +1,26 @@ +; COMMAND-LINE: --relational-triggers +; EXPECT: unsat +(set-logic ALL_SUPPORTED) +(set-info :status unsat) + +(declare-sort U 0) + +(declare-const k U) +(declare-const ff U) +(declare-const ffk U) +(declare-fun fun1 (Int) Int) +(declare-fun fun2 (Int) Int) +(declare-fun c (U U) U) +(declare-fun app (U Int) Int) + +(assert (forall ((f U) (g U)) (=> (forall ((x Int)) (= (app f x) (app g x))) (= f g)) )) + +(assert (forall ((x Int)) (= (app ff x) (+ (fun1 x) (fun2 x))))) +(assert (forall ((x Int)) (= (app ffk x) (+ (fun1 (app k x)) (fun2 (app k x)))))) + +(assert (forall ((f U) (g U) (x Int)) (= (app (c f g) x) (app f (app g x))))) + +(assert (not (= (c ff k) ffk))) + +(check-sat) + diff --git a/test/regress/regress1/quantifiers/extract-nproc.smt2 b/test/regress/regress1/quantifiers/extract-nproc.smt2 new file mode 100644 index 000000000..6072776dc --- /dev/null +++ b/test/regress/regress1/quantifiers/extract-nproc.smt2 @@ -0,0 +1,9 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-rm-extract +; EXPECT: sat +(set-logic BV) +(declare-fun k_3 () (_ BitVec 8)) +(declare-fun k_4 () (_ BitVec 8)) +(declare-fun k_5 () (_ BitVec 8)) +(assert +(forall ((x (_ BitVec 8))) (or (= k_5 x) (not (= k_3 (bvadd (concat #b0000 ((_ extract 7 4) x)) #b01000001))) (not (= k_4 (bvadd (concat #b0000 ((_ extract 3 0) x)) #b01000001)))) )) +(check-sat) diff --git a/test/regress/regress1/quantifiers/florian-case-ax.smt2 b/test/regress/regress1/quantifiers/florian-case-ax.smt2 new file mode 100644 index 000000000..35ebb28e9 --- /dev/null +++ b/test/regress/regress1/quantifiers/florian-case-ax.smt2 @@ -0,0 +1,168 @@ +(set-logic AUFLIA) +(set-info :status unsat) +(declare-sort U 0) +(declare-fun A (U U U + U U U U + U U U U + U U U U + U U U U + U U U U + U U U U + U U U U + U U U U + U U U U + U U U U + U U U U + U U U U + U U U U + U U + U) (Array Int U)) + +(assert + (forall ((v_184 U) (v_185 U) + (v_186 U) (v_187 U) + (v_188 U) (v_189 U) + (v_190 U) (v_191 U) + (v_192 U) (v_193 U) + (v_194 U) (v_195 U) + (v_196 U) (v_197 U) + (v_198 U) (v_199 U) + (v_200 U) (v_201 U) + (v_202 U) (v_203 U) + (v_204 U) (v_205 U) + (v_206 U) (v_207 U) + (v_208 U) (v_209 U) + (v_210 U) (v_211 U) + (v_212 U) (v_213 U) + (v_214 U) (v_215 U) + (v_216 U) (v_217 U) + (v_218 U) (v_219 U) + (v_220 U) (v_221 U) + (v_222 U) (v_223 U) + (v_224 U) (v_225 U) + (v_226 U) (v_227 U) + (v_228 U) (v_229 U) + (v_230 U) (v_231 U) + (v_232 U) (v_233 U) + (v_234 U) (v_235 U) + (v_236 U) (v_237 U) + (v_238 U) (v_239 U) + (v_240 U) (v_241 U) (v_242 Int)) + (let ((v_183 (A v_184 v_185 v_186 v_187 + v_188 v_189 v_190 v_191 v_192 + v_193 v_194 v_195 v_196 v_197 + v_198 v_199 v_200 v_201 v_202 + v_203 v_204 v_205 v_206 v_207 + v_208 v_209 v_210 v_211 v_212 + v_213 v_214 v_215 v_216 v_217 + v_218 v_219 v_220 v_221 v_222 + v_223 v_224 v_225 v_226 v_227 + v_228 v_229 v_230 v_231 v_232 + v_233 v_234 v_235 v_236 v_237 + v_238 v_239 v_240 v_241))) + (ite (= v_242 59) (= (select v_183 v_242) v_240) + (ite (= v_242 58) (= (select v_183 v_242) v_239) + (ite (= v_242 57) (= (select v_183 v_242) v_238) + (ite (= v_242 56) (= (select v_183 v_242) v_237) + (ite (= v_242 55) (= (select v_183 v_242) v_236) + (ite (= v_242 54) (= (select v_183 v_242) v_235) + (ite (= v_242 53) (= (select v_183 v_242) v_234) + (ite (= v_242 52) (= (select v_183 v_242) v_233) + (ite (= v_242 51) (= (select v_183 v_242) v_232) + (ite (= v_242 50) (= (select v_183 v_242) v_231) + (ite (= v_242 49) (= (select v_183 v_242) v_230) + (ite (= v_242 48) (= (select v_183 v_242) v_229) + (ite (= v_242 47) (= (select v_183 v_242) v_228) + (ite (= v_242 46) (= (select v_183 v_242) v_227) + (ite (= v_242 45) (= (select v_183 v_242) v_226) + (ite (= v_242 44) (= (select v_183 v_242) v_225) + (ite (= v_242 43) (= (select v_183 v_242) v_224) + (ite (= v_242 41) (= (select v_183 v_242) v_223) + (ite (= v_242 40) (= (select v_183 v_242) v_222) + (ite (= v_242 39) (= (select v_183 v_242) v_221) + (ite (= v_242 37) (= (select v_183 v_242) v_220) + (ite (= v_242 36) (= (select v_183 v_242) v_219) + (ite (= v_242 34) (= (select v_183 v_242) v_218) + (ite (= v_242 33) (= (select v_183 v_242) v_217) + (ite (= v_242 32) (= (select v_183 v_242) v_216) + (ite (= v_242 31) (= (select v_183 v_242) v_215) + (ite (= v_242 30) (= (select v_183 v_242) v_214) + (ite (= v_242 29) (= (select v_183 v_242) v_213) + (ite (= v_242 28) (= (select v_183 v_242) v_212) + (ite (= v_242 27) (= (select v_183 v_242) v_211) + (ite (= v_242 26) (= (select v_183 v_242) v_210) + (ite (= v_242 25) (= (select v_183 v_242) v_209) + (ite (= v_242 24) (= (select v_183 v_242) v_208) + (ite (= v_242 23) (= (select v_183 v_242) v_207) + (ite (= v_242 22) (= (select v_183 v_242) v_206) + (ite (= v_242 21) (= (select v_183 v_242) v_205) + (ite (= v_242 20) (= (select v_183 v_242) v_204) + (ite (= v_242 19) (= (select v_183 v_242) v_203) + (ite (= v_242 18) (= (select v_183 v_242) v_202) + (ite (= v_242 17) (= (select v_183 v_242) v_201) + (ite (= v_242 16) (= (select v_183 v_242) v_200) + (ite (= v_242 15) (= (select v_183 v_242) v_199) + (ite (= v_242 14) (= (select v_183 v_242) v_198) + (ite (= v_242 13) (= (select v_183 v_242) v_197) + (ite (= v_242 12) (= (select v_183 v_242) v_196) + (ite (= v_242 11) (= (select v_183 v_242) v_195) + (ite (= v_242 10) (= (select v_183 v_242) v_194) + (ite (= v_242 9) (= (select v_183 v_242) v_193) + (ite (= v_242 8) (= (select v_183 v_242) v_192) + (ite (= v_242 7) (= (select v_183 v_242) v_191) + (ite (= v_242 6) (= (select v_183 v_242) v_190) + (ite (= v_242 5) (= (select v_183 v_242) v_189) + (ite (= v_242 4) (= (select v_183 v_242) v_188) + (ite (= v_242 3) (= (select v_183 v_242) v_187) + (ite (= v_242 2) (= (select v_183 v_242) v_186) + (ite (= v_242 1) (= (select v_183 v_242) v_185) + (ite (= v_242 0) (= (select v_183 v_242) v_184) + (= (select v_183 v_242) v_241))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + +(declare-const c_184 U) (declare-const c_185 U) +(declare-const c_186 U) (declare-const c_187 U) +(declare-const c_188 U) (declare-const c_189 U) +(declare-const c_190 U) (declare-const c_191 U) +(declare-const c_192 U) (declare-const c_193 U) +(declare-const c_194 U) (declare-const c_195 U) +(declare-const c_196 U) (declare-const c_197 U) +(declare-const c_198 U) (declare-const c_199 U) +(declare-const c_200 U) (declare-const c_201 U) +(declare-const c_202 U) (declare-const c_203 U) +(declare-const c_204 U) (declare-const c_205 U) +(declare-const c_206 U) (declare-const c_207 U) +(declare-const c_208 U) (declare-const c_209 U) +(declare-const c_210 U) (declare-const c_211 U) +(declare-const c_212 U) (declare-const c_213 U) +(declare-const c_214 U) (declare-const c_215 U) +(declare-const c_216 U) (declare-const c_217 U) +(declare-const c_218 U) (declare-const c_219 U) +(declare-const c_220 U) (declare-const c_221 U) +(declare-const c_222 U) (declare-const c_223 U) +(declare-const c_224 U) (declare-const c_225 U) +(declare-const c_226 U) (declare-const c_227 U) +(declare-const c_228 U) (declare-const c_229 U) +(declare-const c_230 U) (declare-const c_231 U) +(declare-const c_232 U) (declare-const c_233 U) +(declare-const c_234 U) (declare-const c_235 U) +(declare-const c_236 U) (declare-const c_237 U) +(declare-const c_238 U) (declare-const c_239 U) +(declare-const c_240 U) (declare-const c_241 U) + +(declare-fun b () Int) +(declare-fun c () U) +(assert (not (= (select (A c_184 c_185 c_186 c_187 + c_188 c_189 c_190 c_191 c_192 + c_193 c_194 c_195 c_196 c_197 + c_198 c_199 c_200 c_201 c_202 + c_203 c_204 c_205 c_206 c_207 + c_208 c_209 c_210 c_211 c_212 + c_213 c_214 c_215 c_216 c_217 + c_218 c_219 c_220 c_221 c_222 + c_223 c_224 c_225 c_226 c_227 + c_228 c_229 c_230 c_231 c_232 + c_233 c_234 c_235 c_236 c_237 + c_238 c_239 c_240 c_241) b) c))) +(assert (and (= b 28) (= c c_212))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/gauss_init_0030.fof.smt2 b/test/regress/regress1/quantifiers/gauss_init_0030.fof.smt2 new file mode 100644 index 000000000..e9f0490a6 --- /dev/null +++ b/test/regress/regress1/quantifiers/gauss_init_0030.fof.smt2 @@ -0,0 +1,61 @@ +(set-logic AUFLIRA) +(set-info :source | +NASA benchmarks from "Using Automated Theorem Provers to Certify Auto-generated +Aerospace Software", IJCAR 2004. Translated from TPTP format by Yeting Ge and +Clark Barrett + +|) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-fun def () Real) +(declare-fun init () Real) +(declare-fun loopcounter () Int) +(declare-fun pv1403 () Real) +(declare-fun s_best7 () Int) +(declare-fun s_best7_init () Real) +(declare-fun s_sworst7 () Int) +(declare-fun s_sworst7_init () Real) +(declare-fun s_values7_init () (Array Int Real)) +(declare-fun s_worst7 () Int) +(declare-fun s_worst7_init () Real) +(declare-fun simplex7_init () (Array Int (Array Int Real))) +(declare-fun tptp_float_0_001 () Real) +(declare-fun use () Real) +(declare-fun uniform_int_rnd (Int Int) Int) +(declare-fun abs_ (Real) Real) +(declare-fun log (Real) Real) +(declare-fun exp (Real) Real) +(declare-fun cos (Real) Real) +(declare-fun sin (Real) Real) +(declare-fun sqrt (Real) Real) +(declare-fun divide (Real Real) Real) +(declare-fun cond (Int Real Real) Real) +(declare-fun tptp_term_equal (Real Real) Int) +(declare-fun tptp_term_equals (Real Real) Int) +(declare-fun tptp_term_and (Real Real) Int) +(declare-fun sum (Int Int Real) Real) +(declare-fun dim (Int Int) Int) +(declare-fun trans ((Array Int (Array Int Real))) (Array Int (Array Int Real))) +(declare-fun inv ((Array Int (Array Int Real))) (Array Int (Array Int Real))) +(declare-fun tptp_mmul ((Array Int (Array Int Real)) (Array Int (Array Int Real))) (Array Int (Array Int Real))) +(declare-fun tptp_madd ((Array Int (Array Int Real)) (Array Int (Array Int Real))) (Array Int (Array Int Real))) +(declare-fun tptp_msub ((Array Int (Array Int Real)) (Array Int (Array Int Real))) (Array Int (Array Int Real))) +(declare-fun tptp_const_array1 (Int Real) (Array Int Real)) +(declare-fun tptp_const_array2 (Int Int Real) (Array Int (Array Int Real))) +(assert (forall ((?X_0 Int) (?C_1 Int)) (=> (>= ?X_0 0) (<= (uniform_int_rnd ?C_1 ?X_0) ?X_0)))) +(assert (forall ((?X_2 Int) (?C_3 Int)) (=> (>= ?X_2 0) (>= (uniform_int_rnd ?C_3 ?X_2) 0)))) +(assert (forall ((?I_4 Int) (?L_5 Int) (?U_6 Int) (?Val_7 Real)) (=> (and (<= ?L_5 ?I_4) (<= ?I_4 ?U_6)) (= (select (tptp_const_array1 (dim ?L_5 ?U_6) ?Val_7) ?I_4) ?Val_7)))) +(assert (forall ((?I_8 Int) (?L1_9 Int) (?U1_10 Int) (?J_11 Int) (?L2_12 Int) (?U2_13 Int) (?Val_14 Real)) (=> (and (and (and (<= ?L1_9 ?I_8) (<= ?I_8 ?U1_10)) (<= ?L2_12 ?J_11)) (<= ?J_11 ?U2_13)) (= (select (select (tptp_const_array2 (dim ?L1_9 ?U1_10) (dim ?L2_12 ?U2_13) ?Val_14) ?I_8) ?J_11) ?Val_14)))) +(assert (forall ((?I0_15 Int) (?J0_16 Int) (?A_17 (Array Int (Array Int Real))) (?B_18 (Array Int (Array Int Real))) (?N_19 Int)) (let ((?v_0 (tptp_mmul ?A_17 (tptp_mmul ?B_18 (trans ?A_17))))) (=> (and (and (and (and (>= ?I0_15 0) (<= ?I0_15 ?N_19)) (>= ?J0_16 0)) (<= ?J0_16 ?N_19)) (= (select (select ?B_18 ?I0_15) ?J0_16) (select (select ?B_18 ?J0_16) ?I0_15))) (= (select (select ?v_0 ?I0_15) ?J0_16) (select (select ?v_0 ?J0_16) ?I0_15)))))) +(assert (forall ((?I0_20 Int) (?J0_21 Int) (?I_22 Int) (?J_23 Int) (?A_24 (Array Int (Array Int Real))) (?B_25 (Array Int (Array Int Real))) (?N_26 Int) (?M_27 Int)) (let ((?v_0 (tptp_mmul ?A_24 (tptp_mmul ?B_25 (trans ?A_24))))) (=> (and (and (and (and (and (and (and (and (>= ?I0_20 0) (<= ?I0_20 ?N_26)) (>= ?J0_21 0)) (<= ?J0_21 ?N_26)) (>= ?I_22 0)) (<= ?I_22 ?M_27)) (>= ?J_23 0)) (<= ?J_23 ?M_27)) (= (select (select ?B_25 ?I_22) ?J_23) (select (select ?B_25 ?J_23) ?I_22))) (= (select (select ?v_0 ?I0_20) ?J0_21) (select (select ?v_0 ?J0_21) ?I0_20)))))) +(assert (forall ((?I_28 Int) (?J_29 Int) (?A_30 (Array Int (Array Int Real))) (?B_31 (Array Int (Array Int Real))) (?N_32 Int)) (let ((?v_0 (tptp_madd ?A_30 ?B_31))) (=> (and (and (and (and (and (>= ?I_28 0) (<= ?I_28 ?N_32)) (>= ?J_29 0)) (<= ?J_29 ?N_32)) (= (select (select ?A_30 ?I_28) ?J_29) (select (select ?A_30 ?J_29) ?I_28))) (= (select (select ?B_31 ?I_28) ?J_29) (select (select ?B_31 ?J_29) ?I_28))) (= (select (select ?v_0 ?I_28) ?J_29) (select (select ?v_0 ?J_29) ?I_28)))))) +(assert (forall ((?I_33 Int) (?J_34 Int) (?A_35 (Array Int (Array Int Real))) (?B_36 (Array Int (Array Int Real))) (?N_37 Int)) (let ((?v_0 (tptp_msub ?A_35 ?B_36))) (=> (and (and (and (and (and (>= ?I_33 0) (<= ?I_33 ?N_37)) (>= ?J_34 0)) (<= ?J_34 ?N_37)) (= (select (select ?A_35 ?I_33) ?J_34) (select (select ?A_35 ?J_34) ?I_33))) (= (select (select ?B_36 ?I_33) ?J_34) (select (select ?B_36 ?J_34) ?I_33))) (= (select (select ?v_0 ?I_33) ?J_34) (select (select ?v_0 ?J_34) ?I_33)))))) +(assert (forall ((?I_38 Int) (?J_39 Int) (?A_40 (Array Int (Array Int Real))) (?N_41 Int)) (let ((?v_0 (trans ?A_40))) (=> (and (and (and (and (>= ?I_38 0) (<= ?I_38 ?N_41)) (>= ?J_39 0)) (<= ?J_39 ?N_41)) (= (select (select ?A_40 ?I_38) ?J_39) (select (select ?A_40 ?J_39) ?I_38))) (= (select (select ?v_0 ?I_38) ?J_39) (select (select ?v_0 ?J_39) ?I_38)))))) +(assert (forall ((?I_42 Int) (?J_43 Int) (?A_44 (Array Int (Array Int Real))) (?N_45 Int)) (let ((?v_0 (inv ?A_44))) (=> (and (and (and (and (>= ?I_42 0) (<= ?I_42 ?N_45)) (>= ?J_43 0)) (<= ?J_43 ?N_45)) (= (select (select ?A_44 ?I_42) ?J_43) (select (select ?A_44 ?J_43) ?I_42))) (= (select (select ?v_0 ?I_42) ?J_43) (select (select ?v_0 ?J_43) ?I_42)))))) +(assert (forall ((?I0_46 Int) (?J0_47 Int) (?I_48 Int) (?J_49 Int) (?A_50 (Array Int (Array Int Real))) (?B_51 (Array Int (Array Int Real))) (?C_52 (Array Int (Array Int Real))) (?D_53 (Array Int (Array Int Real))) (?E_54 (Array Int (Array Int Real))) (?F_55 (Array Int (Array Int Real))) (?N_56 Int) (?M_57 Int)) (let ((?v_0 (tptp_madd ?A_50 (tptp_mmul ?B_51 (tptp_mmul (tptp_madd (tptp_mmul ?C_52 (tptp_mmul ?D_53 (trans ?C_52))) (tptp_mmul ?E_54 (tptp_mmul ?F_55 (trans ?E_54)))) (trans ?B_51)))))) (=> (and (and (and (and (and (and (and (and (and (and (>= ?I0_46 0) (<= ?I0_46 ?N_56)) (>= ?J0_47 0)) (<= ?J0_47 ?N_56)) (>= ?I_48 0)) (<= ?I_48 ?M_57)) (>= ?J_49 0)) (<= ?J_49 ?M_57)) (= (select (select ?D_53 ?I_48) ?J_49) (select (select ?D_53 ?J_49) ?I_48))) (= (select (select ?A_50 ?I0_46) ?J0_47) (select (select ?A_50 ?J0_47) ?I0_46))) (= (select (select ?F_55 ?I0_46) ?J0_47) (select (select ?F_55 ?J0_47) ?I0_46))) (= (select (select ?v_0 ?I0_46) ?J0_47) (select (select ?v_0 ?J0_47) ?I0_46)))))) +(assert (forall ((?Body_58 Real)) (= (sum 0 (- 1) ?Body_58) 0.0))) +(assert (not (= def use))) +(assert (let ((?v_0 (not (<= tptp_float_0_001 pv1403))) (?v_1 (= s_best7_init init)) (?v_3 (= s_sworst7_init init)) (?v_4 (= s_worst7_init init)) (?v_5 (>= s_best7 0)) (?v_6 (>= s_sworst7 0)) (?v_7 (>= s_worst7 0)) (?v_8 (<= s_best7 3)) (?v_9 (<= s_sworst7 3)) (?v_10 (<= s_worst7 3)) (?v_2 (> loopcounter 0))) (not (=> (and (and (and (and (and (and (and (and (and (and (and (and (and (and (and (and (and (and (and (and (and (and (and ?v_0 (forall ((?A_59 Int)) (=> (and (>= ?A_59 0) (<= ?A_59 2)) (forall ((?B_60 Int)) (=> (and (>= ?B_60 0) (<= ?B_60 3)) (= (select (select simplex7_init ?B_60) ?A_59) init)))))) (forall ((?C_61 Int)) (=> (and (>= ?C_61 0) (<= ?C_61 3)) (= (select s_values7_init ?C_61) init)))) (=> ?v_0 ?v_1)) (=> ?v_0 ?v_3)) (=> ?v_0 ?v_4)) (=> ?v_0 ?v_5)) (=> ?v_0 ?v_6)) (=> ?v_0 ?v_7)) (=> ?v_0 ?v_8)) (=> ?v_0 ?v_9)) (=> ?v_0 ?v_10)) (=> ?v_2 ?v_1)) (=> ?v_2 ?v_3)) (=> ?v_2 ?v_4)) (=> ?v_2 (= (select s_values7_init s_best7) init))) (=> ?v_2 (= (select s_values7_init s_sworst7) init))) (=> ?v_2 (= (select s_values7_init s_worst7) init))) (=> ?v_2 ?v_5)) (=> ?v_2 ?v_6)) (=> ?v_2 ?v_7)) (=> ?v_2 ?v_8)) (=> ?v_2 ?v_9)) (=> ?v_2 ?v_10)) (= (select (select simplex7_init s_best7) 0) init))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/inst-max-level-segf.smt2 b/test/regress/regress1/quantifiers/inst-max-level-segf.smt2 new file mode 100644 index 000000000..d85f3d094 --- /dev/null +++ b/test/regress/regress1/quantifiers/inst-max-level-segf.smt2 @@ -0,0 +1,326 @@ +; COMMAND-LINE: --inst-max-level=0 --simplification=none +; EXPECT: unsat +(set-logic UF) +(set-info :status unsat) +(declare-sort Node 0) +(declare-sort GrassPat 0) +(declare-sort GrassArray 1) +(declare-sort ArrayCell 1) +(declare-sort Loc 1) +(declare-sort Set 1) +(declare-sort Map 2) +(declare-sort GrassByte 0) +(declare-fun grass_null$0 () (Loc Node)) +(declare-fun grass_read$0 ((Map (Loc Node) (Loc Node)) (Loc Node)) + (Loc Node)) +(declare-fun grass_emptyset$0 () (Set (Loc Node))) +(declare-fun grass_singleton$0 ((Loc Node)) (Set (Loc Node))) +(declare-fun grass_union$0 ((Set (Loc Node)) (Set (Loc Node))) + (Set (Loc Node))) +(declare-fun grass_intersection$0 ((Set (Loc Node)) (Set (Loc Node))) + (Set (Loc Node))) +(declare-fun grass_setminus$0 ((Set (Loc Node)) (Set (Loc Node))) + (Set (Loc Node))) +(declare-fun grass_Btwn$0 ((Map (Loc Node) (Loc Node)) (Loc Node) (Loc Node) + (Loc Node)) Bool) +(declare-fun grass_member$0 ((Loc Node) (Set (Loc Node))) Bool) +(declare-fun grass_known$0 ((Map (Loc Node) (Loc Node))) GrassPat) +(declare-fun grass_known$1 (Bool) GrassPat) +(declare-fun Alloc_Node$0 () (Set (Loc Node))) +(declare-fun FP_Caller_Node$0 () (Set (Loc Node))) +(declare-fun FP_Caller_Node_1$0 () (Set (Loc Node))) +(declare-fun FP_Caller_final_Node_2$0 () (Set (Loc Node))) +(declare-fun FP_Node$0 () (Set (Loc Node))) +(declare-fun Label$0 () Bool) +(declare-fun Label_1$0 () Bool) +(declare-fun Label_2$0 () Bool) +(declare-fun Label_3$0 () Bool) +(declare-fun elt$0 () (Loc Node)) +(declare-fun lseg$0 ((Map (Loc Node) (Loc Node)) (Loc Node) (Loc Node) + (Set (Loc Node))) Bool) +(declare-fun lst$0 () (Loc Node)) +(declare-fun next$0 () (Map (Loc Node) (Loc Node))) +(declare-fun res_2$0 () (Loc Node)) +(declare-fun set_compr$0 ((Map (Loc Node) (Loc Node)) (Loc Node) (Loc Node)) + (Set (Loc Node))) +(declare-fun sk_?X$0 () (Set (Loc Node))) +(declare-fun sk_?X_1$0 () (Set (Loc Node))) +(declare-fun sk_?X_2$0 () (Set (Loc Node))) +(declare-fun sk_?X_3$0 () (Set (Loc Node))) +(declare-fun sk_?X_4$0 () (Set (Loc Node))) +(declare-fun sk_?e$0 () (Loc Node)) + +(assert (not (grass_member$0 grass_null$0 Alloc_Node$0))) +(assert + (and + (or + (or + (and (and (grass_member$0 sk_?e$0 sk_?X_4$0) Label_1$0) + (and + (not + (grass_member$0 sk_?e$0 + (set_compr$0 next$0 res_2$0 grass_null$0))) + Label_1$0)) + (and + (and + (grass_member$0 sk_?e$0 + (set_compr$0 next$0 res_2$0 grass_null$0)) + Label_1$0) + (and (not (grass_member$0 sk_?e$0 sk_?X_4$0)) Label_1$0))) + (and + (not (grass_Btwn$0 next$0 res_2$0 grass_null$0 grass_null$0)) + Label$0)) + Label_2$0)) +(assert (forall ((x (Loc Node))) (not (grass_member$0 x grass_emptyset$0)))) +(assert + (forall ((y (Loc Node)) (x (Loc Node))) + (or (and (= x y) (grass_member$0 x (grass_singleton$0 y))) + (and (not (= x y)) + (not (grass_member$0 x (grass_singleton$0 y))))))) +(assert + (forall ((x (Loc Node))) + (or + (and (grass_member$0 x FP_Caller_Node$0) + (grass_member$0 x + (grass_setminus$0 FP_Caller_Node$0 FP_Node$0)) + (not (grass_member$0 x FP_Node$0))) + (and + (or (grass_member$0 x FP_Node$0) + (not (grass_member$0 x FP_Caller_Node$0))) + (not + (grass_member$0 x + (grass_setminus$0 FP_Caller_Node$0 FP_Node$0))))))) +(assert + (forall ((x (Loc Node))) + (or + (and (grass_member$0 x Alloc_Node$0) + (grass_member$0 x + (grass_setminus$0 Alloc_Node$0 Alloc_Node$0)) + (not (grass_member$0 x Alloc_Node$0))) + (and + (or (grass_member$0 x Alloc_Node$0) + (not (grass_member$0 x Alloc_Node$0))) + (not + (grass_member$0 x + (grass_setminus$0 Alloc_Node$0 Alloc_Node$0))))))) +(assert + (forall ((x (Loc Node))) + (or + (and (grass_member$0 x Alloc_Node$0) + (grass_member$0 x FP_Node$0) + (grass_member$0 x + (grass_intersection$0 Alloc_Node$0 FP_Node$0))) + (and + (or (not (grass_member$0 x Alloc_Node$0)) + (not (grass_member$0 x FP_Node$0))) + (not + (grass_member$0 x + (grass_intersection$0 Alloc_Node$0 FP_Node$0))))))) +(assert + (forall ((x (Loc Node))) + (or + (and (grass_member$0 x sk_?X$0) + (grass_member$0 x sk_?X_1$0) + (grass_member$0 x + (grass_intersection$0 sk_?X$0 sk_?X_1$0))) + (and + (or (not (grass_member$0 x sk_?X$0)) + (not (grass_member$0 x sk_?X_1$0))) + (not + (grass_member$0 x + (grass_intersection$0 sk_?X$0 sk_?X_1$0))))))) +(assert + (forall ((x (Loc Node))) + (or + (and + (grass_member$0 x + (grass_union$0 + (grass_intersection$0 Alloc_Node$0 FP_Node$0) + (grass_setminus$0 Alloc_Node$0 Alloc_Node$0))) + (or + (grass_member$0 x + (grass_intersection$0 Alloc_Node$0 FP_Node$0)) + (grass_member$0 x + (grass_setminus$0 Alloc_Node$0 Alloc_Node$0)))) + (and + (not + (grass_member$0 x + (grass_intersection$0 Alloc_Node$0 FP_Node$0))) + (not + (grass_member$0 x + (grass_setminus$0 Alloc_Node$0 Alloc_Node$0))) + (not + (grass_member$0 x + (grass_union$0 + (grass_intersection$0 Alloc_Node$0 FP_Node$0) + (grass_setminus$0 Alloc_Node$0 Alloc_Node$0)))))))) +(assert + (forall ((x (Loc Node))) + (or + (and (grass_member$0 x (grass_union$0 sk_?X$0 sk_?X_1$0)) + (or (grass_member$0 x sk_?X$0) + (grass_member$0 x sk_?X_1$0))) + (and (not (grass_member$0 x sk_?X$0)) + (not (grass_member$0 x sk_?X_1$0)) + (not + (grass_member$0 x (grass_union$0 sk_?X$0 sk_?X_1$0))))))) +(assert + (forall ((x (Loc Node))) + (or + (and + (grass_member$0 x + (grass_union$0 FP_Caller_Node_1$0 FP_Node$0)) + (or (grass_member$0 x FP_Caller_Node_1$0) + (grass_member$0 x FP_Node$0))) + (and (not (grass_member$0 x FP_Caller_Node_1$0)) + (not (grass_member$0 x FP_Node$0)) + (not + (grass_member$0 x + (grass_union$0 FP_Caller_Node_1$0 FP_Node$0))))))) +(assert + (forall ((x (Loc Node))) + (or + (and + (grass_member$0 x + (grass_union$0 FP_Node$0 FP_Caller_Node$0)) + (or (grass_member$0 x FP_Node$0) + (grass_member$0 x FP_Caller_Node$0))) + (and (not (grass_member$0 x FP_Node$0)) + (not (grass_member$0 x FP_Caller_Node$0)) + (not + (grass_member$0 x + (grass_union$0 FP_Node$0 FP_Caller_Node$0))))))) +(assert + (forall ((x (Loc Node))) + (or + (and + (grass_member$0 x + (grass_union$0 FP_Caller_Node$0 Alloc_Node$0)) + (or (grass_member$0 x FP_Caller_Node$0) + (grass_member$0 x Alloc_Node$0))) + (and (not (grass_member$0 x FP_Caller_Node$0)) + (not (grass_member$0 x Alloc_Node$0)) + (not + (grass_member$0 x + (grass_union$0 FP_Caller_Node$0 Alloc_Node$0))))))) +(assert + (or (grass_Btwn$0 next$0 lst$0 lst$0 lst$0) + (not (lseg$0 next$0 lst$0 lst$0 sk_?X$0)))) +(assert + (forall + ((next (Map (Loc Node) (Loc Node))) (x (Loc Node)) + (y (Loc Node)) (z (Loc Node))) + (or + (and (grass_Btwn$0 next x z y) + (grass_member$0 z (set_compr$0 next x y)) (not (= z y))) + (and (or (= z y) (not (grass_Btwn$0 next x z y))) + (not (grass_member$0 z (set_compr$0 next x y))))))) +(assert + (forall + ((?u (Loc Node)) (?x (Loc Node)) (?y (Loc Node)) + (?z (Loc Node))) + (or (not (grass_Btwn$0 next$0 ?x ?y ?z)) + (not (grass_Btwn$0 next$0 ?x ?u ?y)) + (and (grass_Btwn$0 next$0 ?x ?u ?z) + (grass_Btwn$0 next$0 ?u ?y ?z))))) +(assert + (forall + ((?u (Loc Node)) (?x (Loc Node)) (?y (Loc Node)) + (?z (Loc Node))) + (or (not (grass_Btwn$0 next$0 ?x ?y ?z)) + (not (grass_Btwn$0 next$0 ?y ?u ?z)) + (and (grass_Btwn$0 next$0 ?x ?y ?u) + (grass_Btwn$0 next$0 ?x ?u ?z))))) +(assert + (forall ((?x (Loc Node)) (?y (Loc Node)) (?z (Loc Node))) + (or (not (grass_Btwn$0 next$0 ?x ?y ?y)) + (not (grass_Btwn$0 next$0 ?y ?z ?z)) + (grass_Btwn$0 next$0 ?x ?z ?z)))) +(assert + (forall ((?x (Loc Node)) (?y (Loc Node)) (?z (Loc Node))) + (or (not (grass_Btwn$0 next$0 ?x ?y ?z)) + (and (grass_Btwn$0 next$0 ?x ?y ?y) + (grass_Btwn$0 next$0 ?y ?z ?z))))) +(assert + (forall ((?x (Loc Node)) (?y (Loc Node)) (?z (Loc Node))) + (or (not (grass_Btwn$0 next$0 ?x ?y ?y)) + (not (grass_Btwn$0 next$0 ?x ?z ?z)) + (grass_Btwn$0 next$0 ?x ?y ?z) + (grass_Btwn$0 next$0 ?x ?z ?y)))) +(assert + (forall ((?x (Loc Node)) (?y (Loc Node))) + (or (not (grass_Btwn$0 next$0 ?x ?y ?x)) (= ?x ?y)))) +(assert + (forall ((?y (Loc Node))) + (or (not (grass_Btwn$0 next$0 res_2$0 ?y ?y)) (= res_2$0 ?y) + (grass_Btwn$0 next$0 res_2$0 (grass_read$0 next$0 res_2$0) + ?y)))) +(assert + (forall ((?y (Loc Node))) + (or (not (grass_Btwn$0 next$0 lst$0 ?y ?y)) (= lst$0 ?y) + (grass_Btwn$0 next$0 lst$0 (grass_read$0 next$0 lst$0) ?y)))) +(assert + (forall ((?y (Loc Node))) + (or (not (= (grass_read$0 next$0 res_2$0) res_2$0)) + (not (grass_Btwn$0 next$0 res_2$0 ?y ?y)) (= res_2$0 ?y)))) +(assert + (forall ((?y (Loc Node))) + (or (not (= (grass_read$0 next$0 lst$0) lst$0)) + (not (grass_Btwn$0 next$0 lst$0 ?y ?y)) (= lst$0 ?y)))) +(assert + (grass_Btwn$0 next$0 res_2$0 (grass_read$0 next$0 res_2$0) + (grass_read$0 next$0 res_2$0))) +(assert + (grass_Btwn$0 next$0 lst$0 (grass_read$0 next$0 lst$0) + (grass_read$0 next$0 lst$0))) +(assert (forall ((?x (Loc Node))) (grass_Btwn$0 next$0 ?x ?x ?x))) +(assert + (or (= sk_?X$0 (set_compr$0 next$0 lst$0 lst$0)) + (not (lseg$0 next$0 lst$0 lst$0 sk_?X$0)))) +(assert (= (grass_read$0 next$0 grass_null$0) grass_null$0)) +(assert (= FP_Caller_Node_1$0 (grass_setminus$0 FP_Caller_Node$0 FP_Node$0))) +(assert (and (= lst$0 grass_null$0) Label_3$0)) +(assert (= Alloc_Node$0 (grass_union$0 FP_Caller_Node$0 Alloc_Node$0))) +(assert + (= sk_?X_4$0 + (grass_union$0 (grass_intersection$0 Alloc_Node$0 FP_Node$0) + (grass_setminus$0 Alloc_Node$0 Alloc_Node$0)))) +(assert (= sk_?X_3$0 (grass_union$0 sk_?X$0 sk_?X_2$0))) +(assert (= sk_?X_2$0 sk_?X_1$0)) +(assert (= sk_?X_1$0 (grass_singleton$0 elt$0))) +(assert (= (grass_read$0 next$0 elt$0) grass_null$0)) +(assert (= FP_Node$0 sk_?X_3$0)) +(assert (= FP_Caller_Node$0 (grass_union$0 FP_Node$0 FP_Caller_Node$0))) +(assert (= grass_emptyset$0 (grass_intersection$0 sk_?X$0 sk_?X_2$0))) +(assert (= grass_emptyset$0 grass_emptyset$0)) +(assert (lseg$0 next$0 lst$0 grass_null$0 sk_?X$0)) +(assert + (= FP_Caller_final_Node_2$0 + (grass_union$0 FP_Caller_Node_1$0 FP_Node$0))) +(assert (= res_2$0 elt$0)) +(assert (= (grass_union$0 FP_Caller_Node$0 Alloc_Node$0) Alloc_Node$0)) +(assert (= (grass_read$0 next$0 grass_null$0) grass_null$0)) +(assert (= (grass_read$0 next$0 grass_null$0) lst$0)) +(assert (= (grass_read$0 next$0 grass_null$0) (grass_read$0 next$0 elt$0))) +(assert + (= (grass_known$1 (lseg$0 next$0 lst$0 grass_null$0 sk_?X$0)) + (grass_known$1 (lseg$0 next$0 lst$0 lst$0 sk_?X$0)))) +(assert (= (grass_intersection$0 sk_?X$0 sk_?X_2$0) grass_emptyset$0)) +(assert + (= + (grass_union$0 (grass_intersection$0 Alloc_Node$0 FP_Node$0) + (grass_setminus$0 Alloc_Node$0 Alloc_Node$0)) + sk_?X_4$0)) +(assert (= res_2$0 elt$0)) +(assert (= (grass_union$0 FP_Node$0 FP_Caller_Node$0) FP_Caller_Node$0)) +(assert (= sk_?X_1$0 (grass_singleton$0 elt$0))) +(assert (= sk_?X_1$0 sk_?X_2$0)) +(assert + (= FP_Caller_final_Node_2$0 + (grass_union$0 FP_Caller_Node_1$0 FP_Node$0))) +(assert (= FP_Node$0 sk_?X_3$0)) +(assert (= FP_Node$0 (grass_union$0 sk_?X$0 sk_?X_2$0))) +(assert (= FP_Caller_Node_1$0 (grass_setminus$0 FP_Caller_Node$0 FP_Node$0))) +(assert (= sk_?X$0 (set_compr$0 next$0 lst$0 lst$0))) +(assert (= sk_?X$0 (set_compr$0 next$0 lst$0 grass_null$0))) +(check-sat) diff --git a/test/regress/regress1/quantifiers/intersection-example-onelane.proof-node22337.smt2 b/test/regress/regress1/quantifiers/intersection-example-onelane.proof-node22337.smt2 new file mode 100644 index 000000000..38a4ed127 --- /dev/null +++ b/test/regress/regress1/quantifiers/intersection-example-onelane.proof-node22337.smt2 @@ -0,0 +1,20 @@ +; COMMAND-LINE: --cbqi-bv +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun xI () (_ BitVec 32)) +(declare-fun A () (_ BitVec 32)) +(declare-fun B () (_ BitVec 32)) +(declare-fun vuscore2dollarskuscore80 () (_ BitVec 32)) +(declare-fun I1 () (_ BitVec 32)) +(declare-fun xuscore2dollarskuscore74 () (_ BitVec 32)) +(declare-fun v () (_ BitVec 32)) +(declare-fun ts49uscore0 () (_ BitVec 32)) +(declare-fun V () (_ BitVec 32)) +(declare-fun t87uscore0dollarskuscore0 () (_ BitVec 32)) +(declare-fun ep () (_ BitVec 32)) +(declare-fun I1uscore2dollarskuscore74 () (_ BitVec 32)) +(declare-fun x () (_ BitVec 32)) +(assert (not (exists ((ts49uscore0 (_ BitVec 32))) (let ((?v_0 (bvsge vuscore2dollarskuscore80 (_ bv0 32))) (?v_1 (bvsle vuscore2dollarskuscore80 V)) (?v_3 (bvsdiv (bvmul vuscore2dollarskuscore80 vuscore2dollarskuscore80) (bvmul (_ bv2 32) B))) (?v_2 (bvmul (bvsdiv (_ bv1 32) (_ bv2 32)) (bvadd (bvmul (bvmul (_ bv2 32) t87uscore0dollarskuscore0) vuscore2dollarskuscore80) (bvmul (_ bv2 32) xuscore2dollarskuscore74))))) (=> (and (and (and (and (and (and (and (and (and (and (and (and (and (and (= I1uscore2dollarskuscore74 (_ bv2 32)) (=> (and (bvsle (_ bv0 32) ts49uscore0) (bvsle ts49uscore0 t87uscore0dollarskuscore0)) (and (and ?v_0 ?v_1) (bvsle ts49uscore0 ep)))) (bvsge t87uscore0dollarskuscore0 (_ bv0 32))) (= vuscore2dollarskuscore80 (_ bv0 32))) ?v_0) ?v_1) (bvsgt xI (bvadd xuscore2dollarskuscore74 ?v_3))) (= I1 (_ bv2 32))) (bvslt xI x)) (bvsgt B (_ bv0 32))) (bvsge v (_ bv0 32))) (bvsle v V)) (bvsge A (_ bv0 32))) (bvsgt V (_ bv0 32))) (bvsgt ep (_ bv0 32))) (or (or (= xI xuscore2dollarskuscore74) (bvslt xI ?v_2)) (bvsgt xI (bvadd ?v_2 ?v_3)))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/is-even.smt2 b/test/regress/regress1/quantifiers/is-even.smt2 new file mode 100644 index 000000000..9aaac5e09 --- /dev/null +++ b/test/regress/regress1/quantifiers/is-even.smt2 @@ -0,0 +1,7 @@ +(set-logic ALL_SUPPORTED) +(set-info :status unsat) + +(define-funs-rec ((is-even ((x Int)) Int) (is-odd ((y Int)) Int)) ((ite (= x 0) 1 (ite (= (is-odd (- x 1)) 0) 1 0)) (ite (= y 0) 0 (ite (= (is-even (- y 1)) 0) 1 0)))) + +(assert (= (is-even 4) 0)) +(check-sat) diff --git a/test/regress/regress1/quantifiers/javafe.ast.StmtVec.009.smt2 b/test/regress/regress1/quantifiers/javafe.ast.StmtVec.009.smt2 new file mode 100644 index 000000000..1c3aa1d8b --- /dev/null +++ b/test/regress/regress1/quantifiers/javafe.ast.StmtVec.009.smt2 @@ -0,0 +1,398 @@ +(set-logic AUFLIA) +(set-info :source | + Simplify front end test suite. + This benchmark was translated by Michal Moskal. +|) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-fun after_133.8_133.8 () Int) +(declare-fun integralOr (Int Int) Int) +(declare-fun els_81.27 () Int) +(declare-fun arrayShapeMore (Int Int) Int) +(declare-fun count_150.3 () Int) +(declare-fun tmp0_cor_166.15 () Int) +(declare-fun tmp1_elements_179.1 () Int) +(declare-fun integralAnd (Int Int) Int) +(declare-fun T_.TYPE () Int) +(declare-fun EC_167.11_167.11 () Int) +(declare-fun EC_178.11_178.11 () Int) +(declare-fun elements_83.6 () Int) +(declare-fun currentStackBottom_pre_19.87.33 () Int) +(declare-fun index_164.36 () Int) +(declare-fun intFirst () Int) +(declare-fun after_113.8_113.8 () Int) +(declare-fun elementType_pre_19.43.27 () Int) +(declare-fun eClosedTime (Int) Int) +(declare-fun int_m9223372036854775808 () Int) +(declare-fun RES_167.11_167.11 () Int) +(declare-fun RES_121.14_121.14 () Int) +(declare-fun int_m2147483648 () Int) +(declare-fun T_java.lang.Comparable () Int) +(declare-fun EC_81.32_81.32 () Int) +(declare-fun arrayPosition (Int) Int) +(declare-fun after_81.32_81.32 () Int) +(declare-fun RES_91.29_91.29 () Int) +(declare-fun EC_169.20_169.20 () Int) +(declare-fun after_151.3_151.3_19.296.17 () Int) +(declare-fun select1 (Int Int) Int) +(declare-fun select2 (Int Int Int) Int) +(declare-fun T_java.util.EscjavaKeyValue () Int) +(declare-fun cnt_91.24 () Int) +(declare-fun elems_1_ () Int) +(declare-fun owner_84.18 () Int) +(declare-fun T_long () Int) +(declare-fun T_javafe.util.StackVector () Int) +(declare-fun count_123.8 () Int) +(declare-fun lockLE (Int Int) Bool) +(declare-fun classLiteral (Int) Int) +(declare-fun after_86.8_86.8_9.342.17 () Int) +(declare-fun elements_61.33 () Int) +(declare-fun count_82.6 () Int) +(declare-fun T_java.lang.RuntimeException () Int) +(declare-fun RES_147.12_147.12 () Int) +(declare-fun lockLT (Int Int) Bool) +(declare-fun elems_2_ () Int) +(declare-fun RES_107.8_107.8 () Int) +(declare-fun elements_zero () Int) +(declare-fun T_float () Int) +(declare-fun elements_19.72.21 () Int) +(declare-fun alloc () Int) +(declare-fun RES_122.18_122.18 () Int) +(declare-fun asChild (Int Int) Int) +(declare-fun CONCVARSYM (Int) Int) +(declare-fun T_int () Int) +(declare-fun int_2147483647 () Int) +(declare-fun elementCount_pre_19.79.33 () Int) +(declare-fun int_9223372036854775807 () Int) +(declare-fun this () Int) +(declare-fun T_byte () Int) +(declare-fun T_java.lang.System () Int) +(declare-fun store1 (Int Int Int) Int) +(declare-fun store2 (Int Int Int Int) Int) +(declare-fun RES_148.13_148.13 () Int) +(declare-fun elementType_12.65.27 () Int) +(declare-fun owner_pre_4.35.28 () Int) +(declare-fun containsNull_12.70.29 () Int) +(declare-fun elements_pre_19.72.21 () Int) +(declare-fun max (Int) Int) +(declare-fun currentStackBottom_19.87.33 () Int) +(declare-fun T_java.util.List () Int) +(declare-fun objectToBeConstructed () Int) +(declare-fun T_java.util.Map () Int) +(declare-fun elementData_10.79.35 () Int) +(declare-fun EC_91.29_91.29 () Int) +(declare-fun integralDiv (Int Int) Int) +(declare-fun after_151.3_151.3_19.298.17 () Int) +(declare-fun T_java.util.AbstractCollection () Int) +(declare-fun elems_86.8_9.342.17 () Int) +(declare-fun T_java.lang.Class () Int) +(declare-fun obj_169.20_169.20_23.30.38 () Int) +(declare-fun after_151.3_151.3_19.298.31 () Int) +(declare-fun vectorCount_19.97.33 () Int) +(declare-fun T_java.lang.Object () Int) +(declare-fun tmp1_elements_84.9 () Int) +(declare-fun tmp1_cond_92.36 () Int) +(declare-fun RES_178.11_178.11 () Int) +(declare-fun tmp3_elements_86.25 () Int) +(declare-fun longLast () Int) +(declare-fun termConditional (Int Int Int) Int) +(declare-fun vectorCount_151.3_19.296.17 () Int) +(declare-fun elements_92.6 () Int) +(declare-fun T_java.util.Dictionary () Int) +(declare-fun vec_120.38 () Int) +(declare-fun elements_pre_61.33 () Int) +(declare-fun bool_false () Int) +(declare-fun Smt.true () Int) +(declare-fun EC_149.3_149.3 () Int) +(declare-fun asLockSet (Int) Int) +(declare-fun integralMod (Int Int) Int) +(declare-fun count_67.33_1_ () Int) +(declare-fun Smt.false () Int) +(declare-fun typeof (Int) Int) +(declare-fun int_18446744073709551615 () Int) +(declare-fun owner_4.35.28 () Int) +(declare-fun count_112.35 () Int) +(declare-fun elementCount_pre_10.90.35 () Int) +(declare-fun x_175.40 () Int) +(declare-fun stringCat (Int Int) Int) +(declare-fun T_java.util.Vector () Int) +(declare-fun tmp0_cor_177.5 () Int) +(declare-fun T_boolean () Int) +(declare-fun longFirst () Int) +(declare-fun T_java.util.Hashtable () Int) +(declare-fun T_java.util.Properties () Int) +(declare-fun after_91.29_91.29 () Int) +(declare-fun arrayFresh (Int Int Int Int Int Int Int) Bool) +(declare-fun tmp0_new_Stmt___92.17 () Int) +(declare-fun RES () Int) +(declare-fun EC_86.8_86.8 () Int) +(declare-fun count_95.6 () Int) +(declare-fun EC_107.8_107.8 () Int) +(declare-fun elementCount_19.79.33 () Int) +(declare-fun after_107.8_107.8 () Int) +(declare-fun intLast () Int) +(declare-fun arrayType () Int) +(declare-fun boolEq (Int Int) Bool) +(declare-fun arrayLength (Int) Int) +(declare-fun cast (Int Int) Int) +(declare-fun tmp0_cor_166.5 () Int) +(declare-fun asElems (Int) Int) +(declare-fun s_145.71 () Int) +(declare-fun T_char () Int) +(declare-fun RES_133.8_133.8 () Int) +(declare-fun owner_93.18 () Int) +(declare-fun dst_149.3_149.3_19.228.40 () Int) +(declare-fun count_pre_67.33 () Int) +(declare-fun elementType_pre_12.65.27 () Int) +(declare-fun T_javafe.ast.ASTNode () Int) +(declare-fun ecThrow () Int) +(declare-fun elementCount_151.3_19.298.17 () Int) +(declare-fun divides (Int Int) Int) +(declare-fun RES_113.8_113.8 () Int) +(declare-fun length_86.8_86.8_9.360.44 () Int) +(declare-fun anArray_124.5_124.5_10.188.45 () Int) +(declare-fun elementType_19.43.27 () Int) +(declare-fun T_javafe.util.Assert () Int) +(declare-fun InRange (Int Int) Bool) +(declare-fun count_67.33 () Int) +(declare-fun RES_81.32_81.32 () Int) +(declare-fun tmp0_cor_177.15 () Int) +(declare-fun elems_149.3_19.225.17 () Int) +(declare-fun tmp2_elements_93.9 () Int) +(declare-fun elementData_pre_10.79.35 () Int) +(declare-fun refEQ (Int Int) Int) +(declare-fun after_149.3_149.3_19.225.17 () Int) +(declare-fun is (Int Int) Int) +(declare-fun index_175.48 () Int) +(declare-fun vectorCount_pre_19.97.33 () Int) +(declare-fun integralEQ (Int Int) Int) +(declare-fun T_java.lang.ArrayIndexOutOfBoundsException () Int) +(declare-fun containsNull_pre_12.70.29 () Int) +(declare-fun boolNE (Int Int) Bool) +(declare-fun isNewArray (Int) Int) +(declare-fun elems_pre () Int) +(declare-fun T_javafe.ast.Stmt () Int) +(declare-fun intShiftL (Int Int) Int) +(declare-fun nonnullelements (Int Int) Bool) +(declare-fun T_java.util.AbstractList () Int) +(declare-fun elementCount_10.90.35 () Int) +(declare-fun multiply (Int Int) Int) +(declare-fun integralGE (Int Int) Int) +(declare-fun T_short () Int) +(declare-fun EC_151.3_151.3 () Int) +(declare-fun alloc_pre () Int) +(declare-fun integralGT (Int Int) Int) +(declare-fun EC () Int) +(declare-fun elements_61.33_1_ () Int) +(declare-fun EC_121.14_121.14 () Int) +(declare-fun boolAnd (Int Int) Bool) +(declare-fun EC_113.8_113.8 () Int) +(declare-fun T_java.util.Collection () Int) +(declare-fun arrayShapeOne (Int) Int) +(declare-fun T_double () Int) +(declare-fun longShiftL (Int Int) Int) +(declare-fun T_java.io.Serializable () Int) +(declare-fun boolOr (Int Int) Bool) +(declare-fun int_4294967295 () Int) +(declare-fun modulo (Int Int) Int) +(declare-fun EC_124.5_124.5 () Int) +(declare-fun T_java.lang.StringBuffer () Int) +(declare-fun after_122.18_122.18 () Int) +(declare-fun EC_147.12_147.12 () Int) +(declare-fun null () Int) +(declare-fun T_java.lang.Exception () Int) +(declare-fun T_java.lang.Throwable () Int) +(declare-fun currentStackBottom_151.3_19.298.31 () Int) +(declare-fun T_java.lang.String () Int) +(declare-fun EC_122.18_122.18 () Int) +(declare-fun asField (Int Int) Int) +(declare-fun after_148.13_148.13 () Int) +(declare-fun T_javafe.ast.StmtVec () Int) +(declare-fun T_java.lang.IndexOutOfBoundsException () Int) +(declare-fun boolImplies (Int Int) Bool) +(declare-fun integralLE (Int Int) Int) +(declare-fun RES_1_ () Int) +(declare-fun integralLT (Int Int) Int) +(declare-fun vAllocTime (Int) Int) +(declare-fun EC_148.13_148.13 () Int) +(declare-fun T_java.lang.Cloneable () Int) +(declare-fun boolNot (Int) Bool) +(declare-fun refNE (Int Int) Int) +(declare-fun integralXor (Int Int) Int) +(declare-fun classDown (Int Int) Int) +(declare-fun els_132.38 () Int) +(declare-fun integralNE (Int Int) Int) +(declare-fun arrayParent (Int) Int) +(declare-fun elemtype (Int) Int) +(declare-fun fClosedTime (Int) Int) +(declare-fun alloc_1_ () Int) +(declare-fun array (Int) Int) +(declare-fun LS () Int) +(declare-fun ecReturn () Int) +(declare-fun isAllocated (Int Int) Bool) +(declare-fun after_167.11_167.11 () Int) +(declare-fun after_178.11_178.11 () Int) +(declare-fun elems () Int) +(declare-fun subtypes (Int Int) Bool) +(declare-fun tmp0_new_Stmt___83.17 () Int) +(declare-fun EC_133.8_133.8 () Int) +(assert (subtypes T_java.lang.Exception T_java.lang.Throwable)) +(assert (= T_java.lang.Exception (asChild T_java.lang.Exception T_java.lang.Throwable))) +(assert (subtypes T_javafe.ast.Stmt T_javafe.ast.ASTNode)) +(assert (= T_javafe.ast.Stmt (asChild T_javafe.ast.Stmt T_javafe.ast.ASTNode))) +(assert (subtypes T_javafe.util.Assert T_java.lang.Object)) +(assert (= T_javafe.util.Assert (asChild T_javafe.util.Assert T_java.lang.Object))) +(assert (subtypes T_java.util.Properties T_java.util.Hashtable)) +(assert (= T_java.util.Properties (asChild T_java.util.Properties T_java.util.Hashtable))) +(assert (subtypes T_java.lang.Cloneable T_java.lang.Object)) +(assert (subtypes T_java.lang.IndexOutOfBoundsException T_java.lang.RuntimeException)) +(assert (= T_java.lang.IndexOutOfBoundsException (asChild T_java.lang.IndexOutOfBoundsException T_java.lang.RuntimeException))) +(assert (subtypes T_java.util.Dictionary T_java.lang.Object)) +(assert (= T_java.util.Dictionary (asChild T_java.util.Dictionary T_java.lang.Object))) +(assert (subtypes T_java.util.Dictionary T_java.util.EscjavaKeyValue)) +(assert (subtypes T_java.lang.ArrayIndexOutOfBoundsException T_java.lang.IndexOutOfBoundsException)) +(assert (= T_java.lang.ArrayIndexOutOfBoundsException (asChild T_java.lang.ArrayIndexOutOfBoundsException T_java.lang.IndexOutOfBoundsException))) +(assert (subtypes T_java.util.Map T_java.lang.Object)) +(assert (subtypes T_java.util.Map T_java.util.EscjavaKeyValue)) +(assert (subtypes T_java.io.Serializable T_java.lang.Object)) +(assert (subtypes T_java.lang.StringBuffer T_java.lang.Object)) +(assert (= T_java.lang.StringBuffer (asChild T_java.lang.StringBuffer T_java.lang.Object))) +(assert (forall ((?t Int)) (! (= (subtypes ?t T_java.lang.StringBuffer) (= ?t T_java.lang.StringBuffer)) :pattern ((subtypes ?t T_java.lang.StringBuffer)) ))) +(assert (subtypes T_java.lang.StringBuffer T_java.io.Serializable)) +(assert (subtypes T_javafe.ast.StmtVec T_java.lang.Object)) +(assert (= T_javafe.ast.StmtVec (asChild T_javafe.ast.StmtVec T_java.lang.Object))) +(assert (subtypes T_java.util.AbstractCollection T_java.lang.Object)) +(assert (= T_java.util.AbstractCollection (asChild T_java.util.AbstractCollection T_java.lang.Object))) +(assert (subtypes T_java.util.AbstractCollection T_java.util.Collection)) +(assert (subtypes T_java.util.Vector T_java.util.AbstractList)) +(assert (= T_java.util.Vector (asChild T_java.util.Vector T_java.util.AbstractList))) +(assert (subtypes T_java.util.Vector T_java.util.List)) +(assert (subtypes T_java.util.Vector T_java.lang.Cloneable)) +(assert (subtypes T_java.util.Vector T_java.io.Serializable)) +(assert (subtypes T_java.util.Hashtable T_java.util.Dictionary)) +(assert (= T_java.util.Hashtable (asChild T_java.util.Hashtable T_java.util.Dictionary))) +(assert (subtypes T_java.util.Hashtable T_java.util.Map)) +(assert (subtypes T_java.util.Hashtable T_java.lang.Cloneable)) +(assert (subtypes T_java.util.Hashtable T_java.io.Serializable)) +(assert (subtypes T_java.lang.System T_java.lang.Object)) +(assert (= T_java.lang.System (asChild T_java.lang.System T_java.lang.Object))) +(assert (forall ((?t Int)) (! (= (subtypes ?t T_java.lang.System) (= ?t T_java.lang.System)) :pattern ((subtypes ?t T_java.lang.System)) ))) +(assert (subtypes T_javafe.util.StackVector T_java.lang.Object)) +(assert (= T_javafe.util.StackVector (asChild T_javafe.util.StackVector T_java.lang.Object))) +(assert (forall ((?t Int)) (! (= (subtypes ?t T_javafe.util.StackVector) (= ?t T_javafe.util.StackVector)) :pattern ((subtypes ?t T_javafe.util.StackVector)) ))) +(assert (subtypes T_java.lang.String T_java.lang.Object)) +(assert (= T_java.lang.String (asChild T_java.lang.String T_java.lang.Object))) +(assert (forall ((?t Int)) (! (= (subtypes ?t T_java.lang.String) (= ?t T_java.lang.String)) :pattern ((subtypes ?t T_java.lang.String)) ))) +(assert (subtypes T_java.lang.String T_java.io.Serializable)) +(assert (subtypes T_java.lang.String T_java.lang.Comparable)) +(assert (subtypes T_java.util.AbstractList T_java.util.AbstractCollection)) +(assert (= T_java.util.AbstractList (asChild T_java.util.AbstractList T_java.util.AbstractCollection))) +(assert (subtypes T_java.util.AbstractList T_java.util.List)) +(assert (subtypes T_java.util.List T_java.lang.Object)) +(assert (subtypes T_java.util.List T_java.util.Collection)) +(assert (subtypes T_java.lang.Throwable T_java.lang.Object)) +(assert (= T_java.lang.Throwable (asChild T_java.lang.Throwable T_java.lang.Object))) +(assert (subtypes T_java.lang.Throwable T_java.io.Serializable)) +(assert (subtypes T_java.util.Collection T_java.lang.Object)) +(assert (subtypes T_java.lang.RuntimeException T_java.lang.Exception)) +(assert (= T_java.lang.RuntimeException (asChild T_java.lang.RuntimeException T_java.lang.Exception))) +(assert (subtypes T_java.util.EscjavaKeyValue T_java.lang.Object)) +(assert (subtypes T_java.lang.Comparable T_java.lang.Object)) +(assert (subtypes T_javafe.ast.ASTNode T_java.lang.Object)) +(assert (= T_javafe.ast.ASTNode (asChild T_javafe.ast.ASTNode T_java.lang.Object))) +(assert (subtypes T_javafe.ast.ASTNode T_java.lang.Cloneable)) +(assert (distinct arrayType T_boolean T_char T_byte T_short T_int T_long T_float T_double T_.TYPE T_java.lang.Exception T_javafe.ast.Stmt T_javafe.util.Assert T_java.util.Properties T_java.lang.Cloneable T_java.lang.IndexOutOfBoundsException T_java.util.Dictionary T_java.lang.ArrayIndexOutOfBoundsException T_java.util.Map T_java.io.Serializable T_java.lang.StringBuffer T_javafe.ast.StmtVec T_java.util.AbstractCollection T_java.util.Vector T_java.util.Hashtable T_java.lang.System T_javafe.util.StackVector T_java.lang.String T_java.lang.Object T_java.util.AbstractList T_java.util.List T_java.lang.Throwable T_java.util.Collection T_java.lang.RuntimeException T_java.util.EscjavaKeyValue T_java.lang.Comparable T_javafe.ast.ASTNode)) +(assert (forall ((?n Int)) (! (=> (and (<= 0 ?n) (< ?n 63)) (<= 1 (longShiftL 1 ?n))) :pattern ((longShiftL 1 ?n)) ))) +(assert (forall ((?n Int)) (! (=> (and (<= 0 ?n) (< ?n 31)) (<= 1 (intShiftL 1 ?n))) :pattern ((intShiftL 1 ?n)) ))) +(assert (forall ((?x Int) (?y Int)) (! (=> (and (<= 0 ?x) (<= 0 ?y)) (<= 0 (integralXor ?x ?y))) :pattern ((integralXor ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (let ((?v_0 (integralDiv ?x ?y))) (=> (and (<= 0 ?x) (< 0 ?y)) (and (<= 0 ?v_0) (<= ?v_0 ?x)))) :pattern ((integralDiv ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (let ((?v_0 (integralOr ?x ?y))) (=> (and (<= 0 ?x) (<= 0 ?y)) (and (<= ?x ?v_0) (<= ?y ?v_0)))) :pattern ((integralOr ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (=> (<= 0 ?y) (<= (integralAnd ?x ?y) ?y)) :pattern ((integralAnd ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (=> (<= 0 ?x) (<= (integralAnd ?x ?y) ?x)) :pattern ((integralAnd ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (=> (or (<= 0 ?x) (<= 0 ?y)) (<= 0 (integralAnd ?x ?y))) :pattern ((integralAnd ?x ?y)) ))) +(assert (forall ((?t Int)) (! (let ((?v_0 (classLiteral ?t))) (and (not (= ?v_0 null)) (= Smt.true (is ?v_0 T_java.lang.Class)) (isAllocated ?v_0 alloc))) :pattern ((classLiteral ?t)) ))) +(assert (forall ((?x Int) (?e Int)) (= (nonnullelements ?x ?e) (and (not (= ?x null)) (forall ((?i Int)) (=> (and (<= 0 ?i) (< ?i (arrayLength ?x))) (not (= (select1 (select1 ?e ?x) ?i) null)))))))) +(assert (forall ((?b Int) (?x Int) (?y Int)) (! (=> (not (= ?b Smt.true)) (= (termConditional ?b ?x ?y) ?y)) :pattern ((termConditional ?b ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (termConditional Smt.true ?x ?y) ?x) :pattern ((termConditional Smt.true ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (refNE ?x ?y) Smt.true) (not (= ?x ?y))) :pattern ((refNE ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (refEQ ?x ?y) Smt.true) (= ?x ?y)) :pattern ((refEQ ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralNE ?x ?y) Smt.true) (not (= ?x ?y))) :pattern ((integralNE ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralLT ?x ?y) Smt.true) (< ?x ?y)) :pattern ((integralLT ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralLE ?x ?y) Smt.true) (<= ?x ?y)) :pattern ((integralLE ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralGT ?x ?y) Smt.true) (> ?x ?y)) :pattern ((integralGT ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralGE ?x ?y) Smt.true) (>= ?x ?y)) :pattern ((integralGE ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (let ((?v_0 (stringCat ?x ?y))) (and (not (= ?v_0 null)) (subtypes (typeof ?v_0) T_java.lang.String))) :pattern ((stringCat ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralEQ ?x ?y) Smt.true) (= ?x ?y)) :pattern ((integralEQ ?x ?y)) ))) +(assert (forall ((?a Int) (?b Int)) (= (boolOr ?a ?b) (or (= ?a Smt.true) (= ?b Smt.true))))) +(assert (forall ((?a Int)) (= (boolNot ?a) (not (= ?a Smt.true))))) +(assert (forall ((?a Int) (?b Int)) (= (boolNE ?a ?b) (not (= (= ?a Smt.true) (= ?b Smt.true)))))) +(assert (forall ((?a Int) (?b Int)) (= (boolImplies ?a ?b) (=> (= ?a Smt.true) (= ?b Smt.true))))) +(assert (forall ((?a Int) (?b Int)) (= (boolEq ?a ?b) (= (= ?a Smt.true) (= ?b Smt.true))))) +(assert (forall ((?a Int) (?b Int)) (= (boolAnd ?a ?b) (and (= ?a Smt.true) (= ?b Smt.true))))) +(assert (forall ((?x Int) (?y Int)) (let ((?v_0 (multiply ?x ?y))) (= (multiply (integralDiv ?v_0 ?y) ?y) ?v_0)))) +(assert (forall ((?i Int) (?j Int)) (= (integralMod (+ ?j ?i) ?j) (integralMod ?i ?j)))) +(assert (forall ((?i Int) (?j Int)) (= (integralMod (+ ?i ?j) ?j) (integralMod ?i ?j)))) +(assert (forall ((?i Int) (?j Int)) (! (let ((?v_0 (integralMod ?i ?j))) (=> (< ?j 0) (and (< ?j ?v_0) (<= ?v_0 0)))) :pattern ((integralMod ?i ?j)) ))) +(assert (forall ((?i Int) (?j Int)) (! (let ((?v_0 (integralMod ?i ?j))) (=> (< 0 ?j) (and (<= 0 ?v_0) (< ?v_0 ?j)))) :pattern ((integralMod ?i ?j)) ))) +(assert (forall ((?i Int) (?j Int)) (! (= (+ (multiply (integralDiv ?i ?j) ?j) (integralMod ?i ?j)) ?i) :pattern ((integralMod ?i ?j)) :pattern ((integralDiv ?i ?j)) ))) +(assert (forall ((?s Int)) (! (=> (= Smt.true (isNewArray ?s)) (subtypes (typeof ?s) arrayType)) :pattern ((isNewArray ?s)) ))) +(assert (forall ((?t Int)) (! (subtypes (array ?t) arrayType) :pattern ((array ?t)) ))) +(assert (= arrayType (asChild arrayType T_java.lang.Object))) +(assert (forall ((?a Int) (?a0 Int) (?b0 Int) (?e Int) (?n Int) (?T Int) (?v Int)) (! (= (arrayFresh ?a ?a0 ?b0 ?e (arrayShapeOne ?n) ?T ?v) (and (<= ?a0 (vAllocTime ?a)) (isAllocated ?a ?b0) (not (= ?a null)) (= (typeof ?a) ?T) (= (arrayLength ?a) ?n) (forall ((?i Int)) (! (= (select1 (select1 ?e ?a) ?i) ?v) :pattern ((select1 (select1 ?e ?a) ?i)) )))) :pattern ((arrayFresh ?a ?a0 ?b0 ?e (arrayShapeOne ?n) ?T ?v)) ))) +(assert (forall ((?a Int) (?a0 Int) (?b0 Int) (?e Int) (?n Int) (?s Int) (?T Int) (?v Int)) (! (= (arrayFresh ?a ?a0 ?b0 ?e (arrayShapeMore ?n ?s) ?T ?v) (and (<= ?a0 (vAllocTime ?a)) (isAllocated ?a ?b0) (not (= ?a null)) (= (typeof ?a) ?T) (= (arrayLength ?a) ?n) (forall ((?i Int)) (! (let ((?v_0 (select1 (select1 ?e ?a) ?i))) (and (arrayFresh ?v_0 ?a0 ?b0 ?e ?s (elemtype ?T) ?v) (= (arrayParent ?v_0) ?a) (= (arrayPosition ?v_0) ?i))) :pattern ((select1 (select1 ?e ?a) ?i)) )))) :pattern ((arrayFresh ?a ?a0 ?b0 ?e (arrayShapeMore ?n ?s) ?T ?v)) ))) +(assert (forall ((?a Int)) (! (let ((?v_0 (arrayLength ?a))) (and (<= 0 ?v_0) (= Smt.true (is ?v_0 T_int)))) :pattern ((arrayLength ?a)) ))) +(assert (forall ((?x Int)) (! (=> (subtypes (typeof ?x) T_java.lang.Object) (lockLE null ?x)) :pattern ((lockLE null ?x)) :pattern ((lockLT null ?x)) :pattern ((lockLE ?x null)) :pattern ((lockLT ?x null)) ))) +(assert (forall ((?S Int) (?mu Int)) (let ((?v_0 (asLockSet ?S))) (=> (= (select1 ?v_0 ?mu) Smt.true) (lockLE ?mu (max ?v_0)))))) +(assert (forall ((?x Int) (?y Int)) (= (lockLT ?x ?y) (< ?x ?y)))) +(assert (forall ((?x Int) (?y Int)) (= (lockLE ?x ?y) (<= ?x ?y)))) +(assert (forall ((?S Int)) (! (= (select1 (asLockSet ?S) null) Smt.true) :pattern ((asLockSet ?S)) ))) +(assert (forall ((?S Int)) (let ((?v_0 (asLockSet ?S))) (= (select1 ?v_0 (max ?v_0)) Smt.true)))) +(assert (forall ((?a Int) (?e Int) (?i Int) (?a0 Int)) (! (=> (and (< (eClosedTime ?e) ?a0) (isAllocated ?a ?a0)) (isAllocated (select1 (select1 ?e ?a) ?i) ?a0)) :pattern ((isAllocated (select1 (select1 ?e ?a) ?i) ?a0)) ))) +(assert (forall ((?x Int) (?f Int) (?a0 Int)) (! (=> (and (< (fClosedTime ?f) ?a0) (isAllocated ?x ?a0)) (isAllocated (select1 ?f ?x) ?a0)) :pattern ((isAllocated (select1 ?f ?x) ?a0)) ))) +(assert (forall ((?x Int) (?a0 Int)) (= (isAllocated ?x ?a0) (< (vAllocTime ?x) ?a0)))) +(assert (forall ((?e Int) (?a Int) (?i Int)) (! (= Smt.true (is (select1 (select1 (asElems ?e) ?a) ?i) (elemtype (typeof ?a)))) :pattern ((select1 (select1 (asElems ?e) ?a) ?i)) ))) +(assert (forall ((?f Int) (?t Int) (?x Int)) (! (= Smt.true (is (select1 (asField ?f ?t) ?x) ?t)) :pattern ((select1 (asField ?f ?t) ?x)) ))) +(assert (forall ((?x Int) (?t Int)) (! (=> (subtypes ?t T_java.lang.Object) (= (= Smt.true (is ?x ?t)) (or (= ?x null) (subtypes (typeof ?x) ?t)))) :pattern ((subtypes ?t T_java.lang.Object) (is ?x ?t)) ))) +(assert (< intLast longLast)) +(assert (< 1000000 intLast)) +(assert (< intFirst (- 1000000))) +(assert (< longFirst intFirst)) +(assert (forall ((?x Int)) (! (= (= Smt.true (is ?x T_long)) (and (<= longFirst ?x) (<= ?x longLast))) :pattern ((is ?x T_long)) ))) +(assert (forall ((?x Int)) (! (= (= Smt.true (is ?x T_int)) (and (<= intFirst ?x) (<= ?x intLast))) :pattern ((is ?x T_int)) ))) +(assert (forall ((?x Int)) (= (= Smt.true (is ?x T_short)) (and (<= (- 32768) ?x) (<= ?x 32767))))) +(assert (forall ((?x Int)) (= (= Smt.true (is ?x T_byte)) (and (<= (- 128) ?x) (<= ?x 127))))) +(assert (forall ((?x Int)) (! (= (= Smt.true (is ?x T_char)) (and (<= 0 ?x) (<= ?x 65535))) :pattern ((is ?x T_char)) ))) +(assert (distinct bool_false Smt.true)) +(assert (forall ((?x Int) (?t Int)) (! (=> (= Smt.true (is ?x ?t)) (= (cast ?x ?t) ?x)) :pattern ((cast ?x ?t)) ))) +(assert (forall ((?x Int) (?t Int)) (! (= Smt.true (is (cast ?x ?t) ?t)) :pattern ((cast ?x ?t)) ))) +(assert (forall ((?t0 Int) (?t1 Int)) (! (let ((?v_0 (elemtype ?t0))) (= (subtypes ?t0 (array ?t1)) (and (= ?t0 (array ?v_0)) (subtypes ?v_0 ?t1)))) :pattern ((subtypes ?t0 (array ?t1))) ))) +(assert (forall ((?t Int)) (! (= (elemtype (array ?t)) ?t) :pattern ((elemtype (array ?t))) ))) +(assert (forall ((?t Int)) (! (subtypes (array ?t) T_java.lang.Cloneable) :pattern ((array ?t)) ))) +(assert (subtypes T_java.lang.Cloneable T_java.lang.Object)) +(assert (forall ((?t0 Int) (?t1 Int) (?t2 Int)) (let ((?v_0 (asChild ?t1 ?t2))) (=> (subtypes ?t0 ?v_0) (= (classDown ?t2 ?t0) ?v_0))))) +(assert (forall ((?t Int)) (! (=> (subtypes T_double ?t) (= ?t T_double)) :pattern ((subtypes T_double ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_float ?t) (= ?t T_float)) :pattern ((subtypes T_float ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_long ?t) (= ?t T_long)) :pattern ((subtypes T_long ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_int ?t) (= ?t T_int)) :pattern ((subtypes T_int ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_short ?t) (= ?t T_short)) :pattern ((subtypes T_short ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_byte ?t) (= ?t T_byte)) :pattern ((subtypes T_byte ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_char ?t) (= ?t T_char)) :pattern ((subtypes T_char ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_boolean ?t) (= ?t T_boolean)) :pattern ((subtypes T_boolean ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_double) (= ?t T_double)) :pattern ((subtypes ?t T_double)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_float) (= ?t T_float)) :pattern ((subtypes ?t T_float)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_long) (= ?t T_long)) :pattern ((subtypes ?t T_long)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_int) (= ?t T_int)) :pattern ((subtypes ?t T_int)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_short) (= ?t T_short)) :pattern ((subtypes ?t T_short)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_byte) (= ?t T_byte)) :pattern ((subtypes ?t T_byte)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_char) (= ?t T_char)) :pattern ((subtypes ?t T_char)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_boolean) (= ?t T_boolean)) :pattern ((subtypes ?t T_boolean)) ))) +(assert (forall ((?t0 Int) (?t1 Int)) (! (=> (and (subtypes ?t0 ?t1) (subtypes ?t1 ?t0)) (= ?t0 ?t1)) :pattern ((subtypes ?t0 ?t1) (subtypes ?t1 ?t0)) ))) +(assert (forall ((?t0 Int) (?t1 Int) (?t2 Int)) (! (=> (and (subtypes ?t0 ?t1) (subtypes ?t1 ?t2)) (subtypes ?t0 ?t2)) :pattern ((subtypes ?t0 ?t1) (subtypes ?t1 ?t2)) ))) +(assert (subtypes T_java.lang.Object T_java.lang.Object)) +(assert (forall ((?t Int)) (! (subtypes ?t ?t) :pattern ((subtypes ?t ?t)) ))) +(assert (forall ((?m Int) (?i Int) (?j Int) (?x Int)) (=> (not (= ?i ?j)) (= (select1 (store1 ?m ?i ?x) ?j) (select1 ?m ?j))))) +(assert (forall ((?m Int) (?i Int) (?x Int)) (= (select1 (store1 ?m ?i ?x) ?i) ?x))) +(assert (let ((?v_0 (array T_java.lang.Object)) (?v_6 (<= 0 index_175.48)) (?v_2 (select1 count_67.33 this)) (?v_1 (< index_175.48 0)) (?v_3 (= Smt.true Smt.true))) (let ((?v_8 (or (and ?v_1 ?v_3 (= tmp0_cor_177.15 Smt.true)) (and (not ?v_1) (= tmp0_cor_177.5 (integralGE index_175.48 ?v_2)) (= tmp0_cor_177.15 tmp0_cor_177.5)))) (?v_5 (= Smt.true tmp0_cor_177.15)) (?v_12 (< alloc after_178.11_178.11)) (?v_4 (not (= RES_178.11_178.11 null))) (?v_13 (not (isAllocated RES_178.11_178.11 alloc))) (?v_14 (= Smt.true (is RES_178.11_178.11 T_java.lang.ArrayIndexOutOfBoundsException))) (?v_15 (isAllocated RES_178.11_178.11 after_178.11_178.11)) (?v_16 (= EC_178.11_178.11 ecReturn)) (?v_17 (= (select1 owner_4.35.28 RES_178.11_178.11) null)) (?v_18 (= (typeof RES_178.11_178.11) T_java.lang.ArrayIndexOutOfBoundsException))) (let ((?v_9 (not ?v_5)) (?v_10 (= tmp1_elements_179.1 (select1 elements_61.33 this))) (?v_7 (< index_175.48 (arrayLength tmp1_elements_179.1))) (?v_11 (= Smt.true (is x_175.40 (elemtype (typeof tmp1_elements_179.1))))) (?v_19 (= EC ecReturn))) (not (=> (distinct ecReturn ecThrow) (=> (and (= elementCount_pre_19.79.33 elementCount_19.79.33) (= elementCount_19.79.33 (asField elementCount_19.79.33 T_int)) (= elementData_pre_10.79.35 elementData_10.79.35) (= elementData_10.79.35 (asField elementData_10.79.35 ?v_0)) (< (fClosedTime elementData_10.79.35) alloc) (forall ((?s Int)) (=> (not (= ?s null)) (not (= (select1 elementData_10.79.35 ?s) null)))) (= count_pre_67.33 count_67.33) (= count_67.33 (asField count_67.33 T_int)) (= owner_pre_4.35.28 owner_4.35.28) (= owner_4.35.28 (asField owner_4.35.28 T_java.lang.Object)) (< (fClosedTime owner_4.35.28) alloc) (= elementType_pre_19.43.27 elementType_19.43.27) (= elementType_19.43.27 (asField elementType_19.43.27 T_.TYPE)) (= containsNull_pre_12.70.29 containsNull_12.70.29) (= containsNull_12.70.29 (asField containsNull_12.70.29 T_boolean)) (= elements_pre_19.72.21 elements_19.72.21) (= elements_19.72.21 (asField elements_19.72.21 ?v_0)) (< (fClosedTime elements_19.72.21) alloc) (= elements_pre_61.33 elements_61.33) (= elements_61.33 (asField elements_61.33 (array T_javafe.ast.Stmt))) (< (fClosedTime elements_61.33) alloc) (forall ((?s_1_ Int)) (=> (not (= ?s_1_ null)) (not (= (select1 elements_61.33 ?s_1_) null)))) (= elementType_pre_12.65.27 elementType_12.65.27) (= elementType_12.65.27 (asField elementType_12.65.27 T_.TYPE)) (= elementCount_pre_10.90.35 elementCount_10.90.35) (= elementCount_10.90.35 (asField elementCount_10.90.35 T_int)) (= currentStackBottom_pre_19.87.33 currentStackBottom_19.87.33) (= currentStackBottom_19.87.33 (asField currentStackBottom_19.87.33 T_int)) (= vectorCount_pre_19.97.33 vectorCount_19.97.33) (= vectorCount_19.97.33 (asField vectorCount_19.97.33 T_int)) (= elems_pre elems) (= elems (asElems elems)) (< (eClosedTime elems) alloc) (= LS (asLockSet LS)) (= alloc_pre alloc)) (not (and (= Smt.true (is this T_javafe.ast.StmtVec)) (isAllocated this alloc) (not (= this null)) (= Smt.true (is x_175.40 T_javafe.ast.Stmt)) (isAllocated x_175.40 alloc) (= Smt.true (is index_175.48 T_int)) ?v_6 (< index_175.48 ?v_2) (not (= x_175.40 null)) (forall ((?brokenObj Int)) (=> (and (= Smt.true (is ?brokenObj T_javafe.ast.StmtVec)) (not (= ?brokenObj null))) (forall ((?i_62.31 Int)) (=> (and (<= 0 ?i_62.31) (< ?i_62.31 (select1 count_67.33 ?brokenObj))) (not (= (select1 (select1 elems (select1 elements_61.33 ?brokenObj)) ?i_62.31) null)))))) (forall ((?brokenObj_1_ Int)) (=> (and (= Smt.true (is ?brokenObj_1_ T_javafe.ast.StmtVec)) (not (= ?brokenObj_1_ null))) (<= (select1 count_67.33 ?brokenObj_1_) (arrayLength (select1 elements_61.33 ?brokenObj_1_))))) (forall ((?brokenObj_2_ Int)) (=> (and (= Smt.true (is ?brokenObj_2_ T_javafe.ast.StmtVec)) (not (= ?brokenObj_2_ null))) (<= 0 (select1 count_67.33 ?brokenObj_2_)))) (forall ((?brokenObj_3_ Int)) (=> (and (= Smt.true (is ?brokenObj_3_ T_javafe.ast.StmtVec)) (not (= ?brokenObj_3_ null))) (= (select1 owner_4.35.28 (select1 elements_61.33 ?brokenObj_3_)) ?brokenObj_3_))) (forall ((?brokenObj_4_ Int)) (=> (and (= Smt.true (is ?brokenObj_4_ T_javafe.ast.StmtVec)) (not (= ?brokenObj_4_ null))) (= (typeof (select1 elements_61.33 ?brokenObj_4_)) (array T_javafe.ast.Stmt)))) (or (and ?v_8 (or (and ?v_5 ?v_3 ?v_12 ?v_4 ?v_13 ?v_14 ?v_15 ?v_16 ?v_17 ?v_18 (not ?v_4)) (and ?v_9 ?v_3 ?v_10 (or (not ?v_6) (and ?v_6 (or (not ?v_7) (and ?v_7 (not ?v_11)))))))) (and (or (and ?v_8 ?v_9 ?v_3 ?v_10 ?v_6 ?v_7 ?v_11 (= elems_1_ (store1 elems tmp1_elements_179.1 (store1 (select1 elems tmp1_elements_179.1) index_175.48 x_175.40))) (= elems_2_ elems_1_) ?v_19 (= alloc_1_ alloc)) (and ?v_8 ?v_5 ?v_3 ?v_12 ?v_4 ?v_13 ?v_14 ?v_15 ?v_16 ?v_17 ?v_18 ?v_4 ?v_3 (= elems_2_ elems) (= EC ecThrow) (= alloc_1_ after_178.11_178.11))) (or (not ?v_19) (and ?v_19 (not (forall ((?brokenObj Int)) (=> (and (= Smt.true (is ?brokenObj T_javafe.ast.StmtVec)) (isAllocated ?brokenObj alloc_1_) (not (= ?brokenObj null))) (forall ((?i_62.31 Int)) (=> (and (<= 0 ?i_62.31) (< ?i_62.31 (select1 count_67.33 ?brokenObj))) (not (= (select1 (select1 elems_2_ (select1 elements_61.33 ?brokenObj)) ?i_62.31) null)))))))))))))))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/macro-subtype-param.smt2 b/test/regress/regress1/quantifiers/macro-subtype-param.smt2 new file mode 100644 index 000000000..97ff827a7 --- /dev/null +++ b/test/regress/regress1/quantifiers/macro-subtype-param.smt2 @@ -0,0 +1,23 @@ +; COMMAND-LINE: --macros-quant +; EXPECT: (error "argument type is not a subtype of the function's argument type: +; EXPECT: argument: x +; EXPECT: has type: (List Int) +; EXPECT: not subtype: (List Real) +; EXPECT: in term : (R (as x (List Real)))") +; EXIT: 1 + +(set-logic ALL_SUPPORTED) + +(declare-datatypes ((List 1)) ((par (T) ((cons (hd T) (tl (List T))) (nil))))) + +(declare-fun R ((List Real)) Bool) +(assert (forall ((x (List Int))) (R x))) +(declare-fun j1 () (List Real)) +(assert (not (R j1))) + +(declare-fun Q ((Array Int Real)) Bool) +(assert (forall ((x (Array Real Int))) (Q x))) +(declare-fun j2 () (Array Real Real)) +(assert (not (Q j2))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/mix-coeff.smt2 b/test/regress/regress1/quantifiers/mix-coeff.smt2 new file mode 100644 index 000000000..23ecba49e --- /dev/null +++ b/test/regress/regress1/quantifiers/mix-coeff.smt2 @@ -0,0 +1,4 @@ +(set-logic LIRA) +(set-info :status unsat) +(assert (forall ((x Int) (y Int) (a Real) (z Int)) (or (> x (+ a (* (/ 2 3) y) (* (/ 4 5) z))) (< x (+ 10 (* 3 a) (* (/ 2 5) y) (* (/ 4 7) z)))))) +(check-sat) diff --git a/test/regress/regress1/quantifiers/model_6_1_bv.smt2 b/test/regress/regress1/quantifiers/model_6_1_bv.smt2 new file mode 100644 index 000000000..011430bd6 --- /dev/null +++ b/test/regress/regress1/quantifiers/model_6_1_bv.smt2 @@ -0,0 +1,15 @@ +; COMMAND-LINE: --cbqi-nested-qe +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun lambda () (_ BitVec 32)) +(declare-fun lambdaprime () (_ BitVec 32)) +(declare-fun x5 () (_ BitVec 32)) +(declare-fun x4 () (_ BitVec 32)) +(declare-fun bool.b22 () Bool) +(declare-fun bool.b7 () Bool) +(declare-fun bool.b5 () Bool) +(declare-fun bool.b6 () Bool) +(assert (forall ((?lambda (_ BitVec 32))) (or (or (exists ((?lambdaprime (_ BitVec 32))) (let ((?v_1 (not bool.b22)) (?v_3 (not bool.b7)) (?v_4 (not bool.b5))) (let ((?v_2 (and ?v_4 (not bool.b6))) (?v_0 (bvmul (bvneg (_ bv1 32)) (bvadd x4 (bvmul (_ bv30 32) ?lambdaprime))))) (and (and (bvsle (_ bv0 32) ?lambdaprime) (bvsle ?lambdaprime ?lambda)) (not (and (not (bvsle (bvmul (bvneg (_ bv1 32)) (bvadd x5 (bvmul (_ bv1 32) ?lambdaprime))) (bvneg (_ bv10 32)))) (and (and (not (and (bvsle ?v_0 (bvneg (_ bv4100 32))) (and ?v_1 (and ?v_3 ?v_2)))) (not (and (bvsle ?v_0 (bvneg (_ bv4500 32))) (and ?v_1 (and bool.b7 ?v_2))))) (not (and (bvsle ?v_0 (bvneg (_ bv4910 32))) (and ?v_1 (and ?v_3 (and ?v_4 bool.b6)))))))))))) (bvslt ?lambda (_ bv0 32))) (not (and (not bool.b22) (and (not bool.b7) (and bool.b5 (not bool.b6)))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/nested9_true-unreach-call.i_575.smt2 b/test/regress/regress1/quantifiers/nested9_true-unreach-call.i_575.smt2 new file mode 100644 index 000000000..2a46d2a21 --- /dev/null +++ b/test/regress/regress1/quantifiers/nested9_true-unreach-call.i_575.smt2 @@ -0,0 +1,21 @@ +; COMMAND-LINE: --cbqi-bv +; EXPECT: unsat +(set-logic BV) +(set-info :status unsat) +(declare-fun c_main_~i~6 () (_ BitVec 32)) +(declare-fun c_main_~j~6 () (_ BitVec 32)) +(declare-fun c_main_~k~6 () (_ BitVec 32)) +(assert + (and (bvsle c_main_~i~6 (_ bv3 32)) (bvsle c_main_~i~6 (_ bv2 32)) + (exists ((v_nnf_34 (_ BitVec 32))) + (and (bvsle (bvadd v_nnf_34 (_ bv3 32)) c_main_~k~6) + (bvsle v_nnf_34 (_ bv3 32)) (bvsle c_main_~j~6 (bvadd (bvmul (_ bv2 32) v_nnf_34) (_ bv1 32))))))) +(assert + (not + (and (bvsle c_main_~i~6 (_ bv3 32)) (bvsle c_main_~i~6 (_ bv2 32)) + (exists ((v_nnf_30 (_ BitVec 32))) + (and (bvsle (bvadd v_nnf_30 (_ bv1 32)) c_main_~k~6) + (bvsle v_nnf_30 (_ bv3 32)) (bvsle c_main_~j~6 (bvadd (bvmul (_ bv2 32) v_nnf_30) (_ bv1 32)))))))) +(check-sat) +(exit) + diff --git a/test/regress/regress1/quantifiers/opisavailable-12.smt2 b/test/regress/regress1/quantifiers/opisavailable-12.smt2 new file mode 100644 index 000000000..c529b409f --- /dev/null +++ b/test/regress/regress1/quantifiers/opisavailable-12.smt2 @@ -0,0 +1,276 @@ +(set-logic AUFLIA) +(set-info :source | + Tokeneer case study <http://www.adacore.com/home/products/gnatpro/tokeneer/> + |) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-fun field.datat.length () Int) +(declare-fun field.datat.minmatchlength () Int) +(declare-fun field.datat.text () Int) +(declare-fun field.keyboard__datat.length () Int) +(declare-fun field.keyboard__datat.text () Int) +(declare-fun field.t.rolepresent () Int) +(declare-fun field.t.currentop () Int) +(declare-fun archivelog () Int) +(declare-fun character__base__first () Int) +(declare-fun character__base__last () Int) +(declare-fun character__first () Int) +(declare-fun character__last () Int) +(declare-fun character__size () Int) +(declare-fun datai__base__first () Int) +(declare-fun datai__base__last () Int) +(declare-fun datai__first () Int) +(declare-fun datai__last () Int) +(declare-fun datai__size () Int) +(declare-fun datalengtht__base__first () Int) +(declare-fun datalengtht__base__last () Int) +(declare-fun datalengtht__first () Int) +(declare-fun datalengtht__last () Int) +(declare-fun datalengtht__size () Int) +(declare-fun integer__base__first () Int) +(declare-fun integer__base__last () Int) +(declare-fun integer__first () Int) +(declare-fun integer__last () Int) +(declare-fun integer__size () Int) +(declare-fun isavailable () Int) +(declare-fun keyboard__datai__base__first () Int) +(declare-fun keyboard__datai__base__last () Int) +(declare-fun keyboard__datai__first () Int) +(declare-fun keyboard__datai__last () Int) +(declare-fun keyboard__datai__size () Int) +(declare-fun keyboard__datalengtht__base__first () Int) +(declare-fun keyboard__datalengtht__base__last () Int) +(declare-fun keyboard__datalengtht__first () Int) +(declare-fun keyboard__datalengtht__last () Int) +(declare-fun keyboard__datalengtht__size () Int) +(declare-fun null__string () Int) +(declare-fun nullop () Int) +(declare-fun opandnullt__base__first () Int) +(declare-fun opandnullt__base__last () Int) +(declare-fun opandnullt__first () Int) +(declare-fun opandnullt__last () Int) +(declare-fun opandnullt__size () Int) +(declare-fun opt__base__first () Int) +(declare-fun opt__base__last () Int) +(declare-fun opt__first () Int) +(declare-fun opt__last () Int) +(declare-fun opt__size () Int) +(declare-fun optokeyed () Int) +(declare-fun overridelock () Int) +(declare-fun positive__base__first () Int) +(declare-fun positive__base__last () Int) +(declare-fun positive__first () Int) +(declare-fun positive__last () Int) +(declare-fun positive__size () Int) +(declare-fun privtypes__adminprivileget__base__first () Int) +(declare-fun privtypes__adminprivileget__base__last () Int) +(declare-fun privtypes__adminprivileget__first () Int) +(declare-fun privtypes__adminprivileget__last () Int) +(declare-fun privtypes__adminprivileget__size () Int) +(declare-fun privtypes__auditmanager () Int) +(declare-fun privtypes__guard () Int) +(declare-fun privtypes__privileget__base__first () Int) +(declare-fun privtypes__privileget__base__last () Int) +(declare-fun privtypes__privileget__first () Int) +(declare-fun privtypes__privileget__last () Int) +(declare-fun privtypes__privileget__size () Int) +(declare-fun privtypes__securityofficer () Int) +(declare-fun privtypes__useronly () Int) +(declare-fun shutdownop () Int) +(declare-fun updateconfigdata () Int) +(declare-fun keyedop () Int) +(declare-fun keyedop__entry__loop__2 () Int) +(declare-fun init.keyedop__entry__loop__2 () Int) +(declare-fun init.keyedop () Int) +(declare-fun loop__1__op () Int) +(declare-fun init.loop__1__op () Int) +(declare-fun loop__2__i () Int) +(declare-fun init.loop__2__i () Int) +(declare-fun theadmin () Int) +(declare-fun init.theadmin () Int) +(declare-fun theop () Int) +(declare-fun init.theop () Int) +(declare-fun bit__and (Int Int) Int) +(declare-fun bit__not (Int Int) Int) +(declare-fun bit__or (Int Int) Int) +(declare-fun bit__xor (Int Int) Int) +(declare-fun character__pos (Int) Int) +(declare-fun character__val (Int) Int) +(declare-fun integer__pred (Int) Int) +(declare-fun integer__succ (Int) Int) +(declare-fun opandnullt__pos (Int) Int) +(declare-fun opandnullt__pred (Int) Int) +(declare-fun opandnullt__succ (Int) Int) +(declare-fun opandnullt__val (Int) Int) +(declare-fun privtypes__privileget__pos (Int) Int) +(declare-fun privtypes__privileget__pred (Int) Int) +(declare-fun privtypes__privileget__succ (Int) Int) +(declare-fun privtypes__privileget__val (Int) Int) +(declare-fun round__ (Int) Int) +(declare-fun i.div (Int Int) Int) +(declare-fun i.mod (Int Int) Int) +(declare-fun i.mult (Int Int) Int) +(declare-fun i.exp (Int Int) Int) +(declare-fun tm.true () Int) +(declare-fun tm.false () Int) +(declare-fun tm.not (Int) Int) +(declare-fun tm.and (Int Int) Int) +(declare-fun tm.or (Int Int) Int) +(declare-fun tm.iff (Int Int) Int) +(declare-fun tm.eq (Int Int) Int) +(declare-fun tm.ne (Int Int) Int) +(declare-fun tm.lt (Int Int) Int) +(declare-fun tm.le (Int Int) Int) +(declare-fun tuple.2 (Int Int) Int) +(declare-fun a.store (Int Int Int) Int) +(declare-fun a.select (Int Int) Int) +(declare-fun a.mk_const_array (Int) Int) +(declare-fun a.default_array () Int) +(declare-fun r.default_record () Int) +(declare-fun matched () Bool) +(declare-fun init.matched () Bool) +(declare-fun ispresent (Int) Bool) +(declare-fun opandnullt__LE (Int Int) Bool) +(declare-fun opandnullt__LT (Int Int) Bool) +(declare-fun privtypes__privileget__LE (Int Int) Bool) +(declare-fun privtypes__privileget__LT (Int Int) Bool) +(assert (forall ((?i Int)) (=> (and (<= 0 ?i) (< ?i 4)) (= (privtypes__privileget__pos ?i) ?i)))) +(assert (forall ((?i Int)) (=> (and (<= 0 ?i) (< ?i 4)) (= (privtypes__privileget__val ?i) ?i)))) +(assert (forall ((?i Int)) (=> (and (<= 0 ?i) (< ?i 3)) (= (privtypes__privileget__succ ?i) (+ ?i 1))))) +(assert (forall ((?i Int)) (=> (and (<= 1 ?i) (< ?i 4)) (= (privtypes__privileget__pred ?i) (- ?i 1))))) +(assert (= privtypes__useronly 0)) +(assert (= privtypes__guard 1)) +(assert (= privtypes__auditmanager 2)) +(assert (= privtypes__securityofficer 3)) +(assert (forall ((?i Int)) (=> (and (<= 0 ?i) (< ?i 5)) (= (opandnullt__pos ?i) ?i)))) +(assert (forall ((?i Int)) (=> (and (<= 0 ?i) (< ?i 5)) (= (opandnullt__val ?i) ?i)))) +(assert (forall ((?i Int)) (=> (and (<= 0 ?i) (< ?i 4)) (= (opandnullt__succ ?i) (+ ?i 1))))) +(assert (forall ((?i Int)) (=> (and (<= 1 ?i) (< ?i 5)) (= (opandnullt__pred ?i) (- ?i 1))))) +(assert (= nullop 0)) +(assert (= archivelog 1)) +(assert (= updateconfigdata 2)) +(assert (= overridelock 3)) +(assert (= shutdownop 4)) +(assert (forall ((?I Int)) (=> (and (<= archivelog ?I) (<= ?I shutdownop)) (<= datalengtht__first (a.select (a.select optokeyed ?I) field.datat.length))))) +(assert (forall ((?I Int)) (=> (and (<= archivelog ?I) (<= ?I shutdownop)) (<= (a.select (a.select optokeyed ?I) field.datat.length) datalengtht__last)))) +(assert (forall ((?I Int)) (=> (and (<= archivelog ?I) (<= ?I shutdownop)) (<= datai__first (a.select (a.select optokeyed ?I) field.datat.minmatchlength))))) +(assert (forall ((?I Int)) (=> (and (<= archivelog ?I) (<= ?I shutdownop)) (<= (a.select (a.select optokeyed ?I) field.datat.minmatchlength) datai__last)))) +(assert (forall ((?I Int) (?J Int)) (=> (and (<= archivelog ?I) (<= ?I shutdownop) (<= 1 ?J) (<= ?J 18)) (<= character__first (a.select (a.select (a.select optokeyed ?I) field.datat.text) ?J))))) +(assert (forall ((?I Int) (?J Int)) (=> (and (<= archivelog ?I) (<= ?I shutdownop) (<= 1 ?J) (<= ?J 18)) (<= (a.select (a.select (a.select optokeyed ?I) field.datat.text) ?J) character__last)))) +(assert (<= 0 integer__size)) +(assert (= integer__first (- 2147483648))) +(assert (= integer__last 2147483647)) +(assert (= integer__base__first (- 2147483648))) +(assert (= integer__base__last 2147483647)) +(assert (<= 0 character__size)) +(assert (= character__first 0)) +(assert (= character__last 255)) +(assert (= character__base__first 0)) +(assert (= character__base__last 255)) +(assert (<= 0 positive__size)) +(assert (= positive__first 1)) +(assert (= positive__last 2147483647)) +(assert (= positive__base__first (- 2147483648))) +(assert (= positive__base__last 2147483647)) +(assert (<= 0 privtypes__privileget__size)) +(assert (= privtypes__privileget__first privtypes__useronly)) +(assert (= privtypes__privileget__last privtypes__securityofficer)) +(assert (= privtypes__privileget__base__first privtypes__useronly)) +(assert (= privtypes__privileget__base__last privtypes__securityofficer)) +(assert (<= 0 privtypes__adminprivileget__size)) +(assert (= privtypes__adminprivileget__first privtypes__guard)) +(assert (= privtypes__adminprivileget__last privtypes__securityofficer)) +(assert (= privtypes__adminprivileget__base__first privtypes__useronly)) +(assert (= privtypes__adminprivileget__base__last privtypes__securityofficer)) +(assert (<= 0 keyboard__datalengtht__size)) +(assert (= keyboard__datalengtht__first 0)) +(assert (= keyboard__datalengtht__last 78)) +(assert (= keyboard__datalengtht__base__first (- 2147483648))) +(assert (= keyboard__datalengtht__base__last 2147483647)) +(assert (<= 0 keyboard__datai__size)) +(assert (= keyboard__datai__first 1)) +(assert (= keyboard__datai__last 78)) +(assert (= keyboard__datai__base__first (- 2147483648))) +(assert (= keyboard__datai__base__last 2147483647)) +(assert (<= 0 opandnullt__size)) +(assert (= opandnullt__first nullop)) +(assert (= opandnullt__last shutdownop)) +(assert (= opandnullt__base__first nullop)) +(assert (= opandnullt__base__last shutdownop)) +(assert (<= 0 opt__size)) +(assert (= opt__first archivelog)) +(assert (= opt__last shutdownop)) +(assert (= opt__base__first nullop)) +(assert (= opt__base__last shutdownop)) +(assert (<= 0 datalengtht__size)) +(assert (= datalengtht__first 0)) +(assert (= datalengtht__last 18)) +(assert (= datalengtht__base__first (- 2147483648))) +(assert (= datalengtht__base__last 2147483647)) +(assert (<= 0 datai__size)) +(assert (= datai__first 1)) +(assert (= datai__last 18)) +(assert (= datai__base__first (- 2147483648))) +(assert (= datai__base__last 2147483647)) +(assert (forall ((?X Int) (?Y Int)) (=> (< 0 ?Y) (<= 0 (i.mod ?X ?Y))))) +(assert (forall ((?X Int) (?Y Int)) (=> (< 0 ?Y) (< (i.mod ?X ?Y) ?Y)))) +(assert (forall ((?X Int) (?Y Int)) (=> (and (<= 0 ?X) (< 0 ?Y)) (<= (i.mult ?Y (i.div ?X ?Y)) ?X)))) +(assert (forall ((?X Int) (?Y Int)) (=> (and (<= 0 ?X) (< 0 ?Y)) (< (- ?X ?Y) (i.mult ?Y (i.div ?X ?Y)))))) +(assert (forall ((?X Int) (?Y Int)) (=> (and (<= ?X 0) (< 0 ?Y)) (<= ?X (i.mult ?Y (i.div ?X ?Y)))))) +(assert (forall ((?X Int) (?Y Int)) (=> (and (<= ?X 0) (< 0 ?Y)) (< (i.mult ?Y (i.div ?X ?Y)) (+ ?X ?Y))))) +(assert (forall ((?X Int) (?Y Int)) (=> (and (<= 0 ?X) (<= 0 ?Y)) (<= 0 (bit__or ?X ?Y))))) +(assert (forall ((?X Int) (?Y Int)) (=> (and (<= 0 ?X) (<= 0 ?Y)) (<= ?X (bit__or ?X ?Y))))) +(assert (forall ((?X Int) (?Y Int)) (=> (and (<= 0 ?X) (<= 0 ?Y)) (<= ?Y (bit__or ?X ?Y))))) +(assert (forall ((?X Int) (?Y Int)) (=> (and (<= 0 ?X) (<= 0 ?Y)) (<= (bit__or ?X ?Y) (+ ?X ?Y))))) +(assert (distinct field.datat.length field.datat.minmatchlength field.datat.text)) +(assert (distinct field.keyboard__datat.length field.keyboard__datat.text)) +(assert (distinct field.t.rolepresent field.t.currentop)) +(assert (distinct tm.true tm.false)) +(assert (forall ((?x Int)) (! (= (= (tm.not ?x) tm.true) (not (= ?x tm.true))) :pattern ((tm.not ?x)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (tm.and ?x ?y) tm.true) (and (= ?x tm.true) (= ?y tm.true))) :pattern ((tm.and ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (tm.or ?x ?y) tm.true) (or (= ?x tm.true) (= ?y tm.true))) :pattern ((tm.or ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (tm.iff ?x ?y) tm.true) (= (= ?x tm.true) (= ?y tm.true))) :pattern ((tm.iff ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (tm.eq ?x ?y) tm.true) (= ?x ?y)) :pattern ((tm.eq ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (tm.ne ?x ?y) tm.true) (not (= ?x ?y))) :pattern ((tm.ne ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (tm.lt ?x ?y) tm.true) (< ?x ?y)) :pattern ((tm.lt ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (tm.le ?x ?y) tm.true) (<= ?x ?y)) :pattern ((tm.le ?x ?y)) ))) +(assert (forall ((?a Int) (?i Int) (?v Int)) (! (= (a.select (a.store ?a ?i ?v) ?i) ?v) :pattern ((a.select (a.store ?a ?i ?v) ?i)) ))) +(assert (forall ((?a Int) (?i Int) (?v Int) (?j Int)) (! (or (= ?i ?j) (= (a.select (a.store ?a ?i ?v) ?j) (a.select ?a ?j))) :pattern ((a.select (a.store ?a ?i ?v) ?j)) ))) +(assert (forall ((?i Int) (?v Int)) (! (= (a.select (a.mk_const_array ?v) ?i) ?v) :pattern ((a.select (a.mk_const_array ?v) ?i)) ))) +(assert (<= opt__first loop__1__op)) +(assert (<= loop__1__op opt__last)) +(assert (<= datai__first loop__2__i)) +(assert (<= loop__2__i datai__last)) +(assert (<= loop__2__i (a.select keyedop field.keyboard__datat.length))) +(assert (<= datai__first (a.select keyedop field.keyboard__datat.length))) +(assert (<= (a.select keyedop field.keyboard__datat.length) datai__last)) +(assert (= keyedop keyedop__entry__loop__2)) +(assert (<= privtypes__adminprivileget__first (a.select theadmin field.t.rolepresent))) +(assert (<= (a.select theadmin field.t.rolepresent) privtypes__adminprivileget__last)) +(assert (= theop nullop)) +(assert (<= opandnullt__first (a.select theadmin field.t.currentop))) +(assert (<= (a.select theadmin field.t.currentop) opandnullt__last)) +(assert (<= privtypes__privileget__first (a.select theadmin field.t.rolepresent))) +(assert (<= (a.select theadmin field.t.rolepresent) privtypes__privileget__last)) +(assert (forall ((?i___1 Int)) (let ((?v_0 (a.select (a.select keyedop field.keyboard__datat.text) ?i___1))) (=> (and (<= keyboard__datai__first ?i___1) (<= ?i___1 keyboard__datai__last)) (and (<= character__first ?v_0) (<= ?v_0 character__last)))))) +(assert (<= keyboard__datalengtht__first (a.select keyedop field.keyboard__datat.length))) +(assert (<= (a.select keyedop field.keyboard__datat.length) keyboard__datalengtht__last)) +(assert (ispresent theadmin)) +(assert (<= datai__first loop__2__i)) +(assert (<= loop__2__i datai__last)) +(assert (<= loop__2__i (a.select keyedop__entry__loop__2 field.keyboard__datat.length))) +(assert (<= opt__first loop__1__op)) +(assert (<= loop__1__op opt__last)) +(assert (<= loop__1__op opt__last)) +(assert (<= keyboard__datai__first loop__2__i)) +(assert (<= loop__2__i keyboard__datai__last)) +(assert (<= datai__first loop__2__i)) +(assert (<= loop__2__i datai__last)) +(assert (<= opt__first loop__1__op)) +(assert (<= loop__1__op opt__last)) +(assert (not (not (= (a.select (a.select (a.select optokeyed loop__1__op) field.datat.text) loop__2__i) (a.select (a.select keyedop field.keyboard__datat.text) loop__2__i))))) +(assert (not (= loop__2__i (a.select keyedop__entry__loop__2 field.keyboard__datat.length)))) +(assert (let ((?v_6 (<= opt__first loop__1__op)) (?v_7 (<= loop__1__op opt__last)) (?v_1 (a.select keyedop field.keyboard__datat.length)) (?v_2 (a.select theadmin field.t.rolepresent)) (?v_3 (a.select theadmin field.t.currentop)) (?v_0 (+ loop__2__i 1))) (let ((?v_4 (<= datai__first ?v_0)) (?v_5 (<= ?v_0 datai__last))) (not (and ?v_6 ?v_7 ?v_4 ?v_5 (<= ?v_0 ?v_1) (<= datai__first ?v_1) (<= ?v_1 datai__last) (= keyedop keyedop__entry__loop__2) (<= privtypes__adminprivileget__first ?v_2) (<= ?v_2 privtypes__adminprivileget__last) (= theop nullop) (<= opandnullt__first ?v_3) (<= ?v_3 opandnullt__last) (<= privtypes__privileget__first ?v_2) (<= ?v_2 privtypes__privileget__last) (forall ((?i___1 Int)) (let ((?v_8 (a.select (a.select keyedop field.keyboard__datat.text) ?i___1))) (=> (and (<= keyboard__datai__first ?i___1) (<= ?i___1 keyboard__datai__last)) (and (<= character__first ?v_8) (<= ?v_8 character__last))))) (<= keyboard__datalengtht__first ?v_1) (<= ?v_1 keyboard__datalengtht__last) (ispresent theadmin) ?v_4 ?v_5 (<= ?v_0 (a.select keyedop__entry__loop__2 field.keyboard__datat.length)) ?v_6 ?v_7 ?v_7))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/parametric-lists.smt2 b/test/regress/regress1/quantifiers/parametric-lists.smt2 new file mode 100644 index 000000000..c45152d6f --- /dev/null +++ b/test/regress/regress1/quantifiers/parametric-lists.smt2 @@ -0,0 +1,44 @@ +; COMMAND-LINE: --lang=smt2.5 +; EXPECT: unsat +(set-logic ALL_SUPPORTED) +(set-info :status unsat) +(declare-datatypes (T) ((List (cons (head T) (tail (List T))) (nil)))) +(declare-datatypes () ((KV (kv (key Int) (value Int)) (nilKV)))) ; key value pair +(declare-fun mapper ((List Int)) (List KV)) +(assert + (forall + ((input (List Int))) + (ite + (= input (as nil (List Int))) + (= (as nil (List KV)) (mapper input)) + (= (cons (kv 0 (head input)) (mapper (tail input))) (mapper input)) + ) + ) +) +(declare-fun reduce ((List KV)) Int) +(assert + (forall + ((inputk (List KV))) + (ite + (= inputk (as nil (List KV))) + (= 0 (reduce inputk)) + (= (+ (value (head inputk)) (reduce (tail inputk))) (reduce inputk)) + ) + ) +) +(declare-fun sum ((List Int)) Int) +(assert + (forall + ((input (List Int))) + (ite + (= input (as nil (List Int))) + (= 0 (sum input)) + (= (+ (head input) (sum (tail input))) (sum input)) + ) + ) +) +(assert + (not (= (sum (cons 0 (as nil (List Int)))) (reduce (mapper (cons 0 (as nil (List Int))))))) +) +(check-sat) + diff --git a/test/regress/regress1/quantifiers/psyco-001-bv.smt2 b/test/regress/regress1/quantifiers/psyco-001-bv.smt2 new file mode 100644 index 000000000..e3428de17 --- /dev/null +++ b/test/regress/regress1/quantifiers/psyco-001-bv.smt2 @@ -0,0 +1,76 @@ +(set-logic BV) +(set-info :status sat) +(declare-fun W_S1_V1 () Bool) +(declare-fun W_S1_V2 () Bool) +(declare-fun W_S1_V4 () Bool) +(declare-fun R_S1_V1 () Bool) +(declare-fun R_E1_V1 () Bool) +(declare-fun R_E1_V3 () Bool) +(declare-fun R_E1_V2 () Bool) +(declare-fun R_E1_V4 () Bool) +(declare-fun DISJ_W_S1_R_E1 () Bool) +(declare-fun R_S1_V3 () Bool) +(declare-fun R_S1_V2 () Bool) +(declare-fun R_S1_V4 () Bool) +(declare-fun DISJ_W_S1_R_S1 () Bool) +(declare-fun W_S1_V3 () Bool) +(assert + (let + (($x324 + (forall + ((V4_0 (_ BitVec 32)) (V2_0 (_ BitVec 32)) + (V3_0 (_ BitVec 32)) (V1_0 (_ BitVec 32)) + (MW_S1_V4 Bool) (MW_S1_V2 Bool) + (MW_S1_V3 Bool) (MW_S1_V1 Bool) + (S1_V3_!14 (_ BitVec 32)) (S1_V3_!20 (_ BitVec 32)) + (E1_!11 (_ BitVec 32)) (E1_!16 (_ BitVec 32)) + (E1_!17 (_ BitVec 32)) (S1_V1_!15 (_ BitVec 32)) + (S1_V1_!21 (_ BitVec 32)) (S1_V2_!13 (_ BitVec 32)) + (S1_V2_!19 (_ BitVec 32)) (S1_V4_!12 (_ BitVec 32)) + (S1_V4_!18 (_ BitVec 32))) + (let + (($x267 + (and (= (ite MW_S1_V4 S1_V4_!12 V4_0) (ite MW_S1_V4 S1_V4_!18 V4_0)) + (= E1_!16 (ite MW_S1_V1 S1_V1_!21 E1_!17)) + (= (ite MW_S1_V3 S1_V3_!14 V3_0) (ite MW_S1_V3 S1_V3_!20 V3_0)) + (= (ite MW_S1_V1 S1_V1_!15 E1_!11) (ite MW_S1_V1 S1_V1_!21 E1_!17))))) + (let + (($x297 + (and (or (not R_E1_V4) (= (ite MW_S1_V4 S1_V4_!12 V4_0) V4_0)) + (or (not R_E1_V2) (= (ite MW_S1_V2 S1_V2_!13 V2_0) V2_0)) + (or (not R_E1_V3) (= (ite MW_S1_V3 S1_V3_!14 V3_0) V3_0)) + (or (not R_E1_V1) (= (ite MW_S1_V1 S1_V1_!15 E1_!11) V1_0))))) + (let + (($x310 + (and (or (not R_E1_V4) (= V4_0 (ite MW_S1_V4 S1_V4_!12 V4_0))) + (or (not R_E1_V2) (= V2_0 (ite MW_S1_V2 S1_V2_!13 V2_0))) + (or (not R_E1_V3) (= V3_0 (ite MW_S1_V3 S1_V3_!14 V3_0))) + (or (not R_E1_V1) (= V1_0 (ite MW_S1_V1 S1_V1_!15 E1_!11)))))) + (let + (($x321 + (and + (or (not (or (not R_S1_V1) (= E1_!17 E1_!11))) (= S1_V3_!20 S1_V3_!14)) + (or (not $x310) (= E1_!11 E1_!16)) + (= E1_!11 E1_!17) (or (not $x297) (= E1_!16 E1_!17)) + (or (not (or (not R_S1_V1) (= E1_!17 E1_!11))) (= S1_V1_!21 S1_V1_!15)) + (or (not (or (not R_S1_V1) (= E1_!17 E1_!11))) (= S1_V2_!19 S1_V2_!13)) + (or (not (or (not R_S1_V1) (= E1_!17 E1_!11))) (= S1_V4_!18 S1_V4_!12)) + (or (not MW_S1_V4) W_S1_V4) + (or (not MW_S1_V2) W_S1_V2) + (or (not MW_S1_V1) W_S1_V1)))) + (or (not $x321) $x267)))))))) + (let + (($x40 + (or (and W_S1_V4 R_E1_V4) + (and W_S1_V2 R_E1_V2) R_E1_V3 + (and W_S1_V1 R_E1_V1)))) + (let (($x42 (= DISJ_W_S1_R_E1 (not $x40)))) + (let + (($x37 + (or (and W_S1_V4 R_S1_V4) + (and W_S1_V2 R_S1_V2) R_S1_V3 + (and W_S1_V1 R_S1_V1)))) + (let (($x39 (= DISJ_W_S1_R_S1 (not $x37)))) (and W_S1_V3 $x39 $x42 $x324))))))) +(check-sat) +(exit) + diff --git a/test/regress/regress1/quantifiers/psyco-107-bv.smt2 b/test/regress/regress1/quantifiers/psyco-107-bv.smt2 new file mode 100644 index 000000000..82b54a231 --- /dev/null +++ b/test/regress/regress1/quantifiers/psyco-107-bv.smt2 @@ -0,0 +1,162 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=eq-boundary +; EXPECT: unsat +(set-logic BV) +(set-info :status unsat) +(declare-fun W_S1_V6 () Bool) +(declare-fun W_S1_V4 () Bool) +(declare-fun W_S1_V2 () Bool) +(declare-fun W_S1_V3 () Bool) +(declare-fun W_S1_V1 () Bool) +(declare-fun R_E2_V1 () Bool) +(declare-fun R_E2_V3 () Bool) +(declare-fun R_E1_V3 () Bool) +(declare-fun R_E1_V1 () Bool) +(declare-fun R_E1_V6 () Bool) +(declare-fun R_E1_V4 () Bool) +(declare-fun R_E1_V5 () Bool) +(declare-fun R_E1_V2 () Bool) +(declare-fun DISJ_W_S1_R_E1 () Bool) +(declare-fun R_S1_V6 () Bool) +(declare-fun R_S1_V4 () Bool) +(declare-fun R_S1_V5 () Bool) +(declare-fun R_S1_V2 () Bool) +(declare-fun R_S1_V3 () Bool) +(declare-fun R_S1_V1 () Bool) +(declare-fun DISJ_W_S1_R_S1 () Bool) +(declare-fun R_E2_V6 () Bool) +(declare-fun R_E2_V4 () Bool) +(declare-fun R_E2_V5 () Bool) +(declare-fun R_E2_V2 () Bool) +(declare-fun DISJ_W_S1_R_E2 () Bool) +(declare-fun W_S1_V5 () Bool) +(assert + (let + (($x59848 + (forall + ((V1_0 (_ BitVec 32)) (V3_0 (_ BitVec 32)) + (V2_0 (_ BitVec 32)) (V5_0 (_ BitVec 32)) + (V4_0 (_ BitVec 32)) (V6_0 (_ BitVec 32)) + (MW_S1_V1 Bool) (MW_S1_V3 Bool) + (MW_S1_V2 Bool) (MW_S1_V5 Bool) + (MW_S1_V4 Bool) (MW_S1_V6 Bool) + (S1_V1_!5000 (_ BitVec 32)) (S1_V3_!5001 (_ BitVec 32)) + (S1_V2_!5002 (_ BitVec 32)) (E1_!4994 (_ BitVec 32)) + (E1_!4997 (_ BitVec 32)) (E1_!4999 (_ BitVec 32)) + (S1_V5_!5003 (_ BitVec 32)) (E2_!4995 (_ BitVec 32)) + (E2_!4996 (_ BitVec 32)) (E2_!4998 (_ BitVec 32)) + (S1_V4_!5004 (_ BitVec 32)) (S1_V6_!5005 (_ BitVec 32))) + (let ((?x62719 (ite MW_S1_V6 S1_V6_!5005 V6_0))) + (let (($x60064 (= V6_0 ?x62719))) + (let ((?x61425 (ite MW_S1_V4 S1_V4_!5004 V4_0))) + (let (($x59873 (= V4_0 ?x61425))) + (let ((?x59861 (ite MW_S1_V5 S1_V5_!5003 V5_0))) + (let (($x62312 (= V5_0 ?x59861))) + (let ((?x60966 (ite MW_S1_V2 S1_V2_!5002 V2_0))) + (let (($x61331 (= V2_0 ?x60966))) + (let ((?x62280 (ite MW_S1_V3 S1_V3_!5001 E2_!4998))) + (let ((?x60903 (bvadd (_ bv1 32) ?x62280))) + (let (($x61268 (= E2_!4996 ?x60903))) + (let ((?x60065 (ite MW_S1_V1 S1_V1_!5000 E1_!4999))) + (let (($x60169 (= E1_!4994 ?x60065))) + (let (($x62661 (and $x60169 $x61268 $x61331 $x62312 $x59873 $x60064))) + (let ((?x62301 (bvadd (bvneg (_ bv1 32)) ?x61425))) + (let (($x61124 (bvsge ?x62280 ?x62301))) + (let ((?x61096 (bvadd (bvneg (_ bv1 32)) ?x60966))) + (let (($x60960 (bvsge ?x60065 ?x61096))) + (let (($x62453 (bvsle V2_0 E1_!4999))) + (let (($x61140 (not $x62453))) + (let (($x60239 (bvsle V4_0 E2_!4998))) + (let (($x61367 (not $x60239))) + (let (($x59857 (bvsle V2_0 E1_!4997))) + (let (($x62570 (not $x59857))) + (let ((?x62418 (bvadd (bvneg (_ bv1 32)) V2_0))) + (let (($x60189 (bvsge E1_!4994 ?x62418))) + (let (($x62421 (bvsge E2_!4996 V4_0))) + (let (($x60898 (bvsle V2_0 E1_!4994))) + (let (($x59938 (not $x60898))) + (let (($x62400 (bvsle V4_0 E2_!4995))) + (let (($x60971 (not $x62400))) + (let + (($x62394 + (and $x60971 $x59938 $x62421 $x60189 $x62570 $x61367 $x61140 $x60960 + $x61124))) + (let (($x62485 (not $x62394))) + (let (($x60905 (not MW_S1_V6))) + (let (($x61285 (or $x60905 W_S1_V6))) + (let (($x61317 (not MW_S1_V4))) + (let (($x60137 (or $x61317 W_S1_V4))) + (let (($x62306 (not MW_S1_V2))) + (let (($x62708 (or $x62306 W_S1_V2))) + (let (($x62310 (not MW_S1_V3))) + (let (($x60291 (or $x62310 W_S1_V3))) + (let (($x62641 (not MW_S1_V1))) + (let (($x61174 (or $x62641 W_S1_V1))) + (let (($x62627 (= E2_!4998 E2_!4995))) + (let (($x60904 (= E1_!4997 E1_!4994))) + (let (($x128 (not R_E2_V1))) + (let (($x60161 (or $x128 $x60904))) + (let (($x62415 (not $x60161))) + (let (($x62645 (or $x62415 $x62627))) + (let (($x60924 (= E2_!4996 E2_!4998))) + (let (($x62711 (= E2_!4995 V3_0))) + (let (($x130 (not R_E2_V3))) + (let (($x62623 (or $x130 $x62711))) + (let (($x60954 (= E1_!4994 E1_!4997))) + (let (($x59868 (or $x128 $x60954))) + (let (($x62319 (and $x59868 $x62623))) + (let (($x62554 (not $x62319))) + (let (($x60985 (or $x62554 $x60924))) + (let (($x62256 (= E2_!4996 E2_!4995))) + (let (($x62540 (not $x62623))) + (let (($x60968 (or $x62540 $x62256))) + (let (($x62486 (= E1_!4999 E1_!4997))) + (let (($x60109 (= E2_!4998 V3_0))) + (let (($x115 (not R_E1_V3))) + (let (($x60129 (or $x115 $x60109))) + (let (($x60976 (= E1_!4997 V1_0))) + (let (($x113 (not R_E1_V1))) + (let (($x62568 (or $x113 $x60976))) + (let (($x60942 (and $x62568 $x60129))) + (let (($x60209 (not $x60942))) + (let (($x62263 (or $x60209 $x62486))) + (let (($x60965 (= E1_!4999 E1_!4994))) + (let (($x62348 (or $x60209 $x60965))) + (let + (($x60285 + (and $x60954 $x62348 $x62263 $x60968 $x60985 $x62645 $x61174 $x60291 + $x62708 $x60137 $x61285))) + (let (($x62430 (not $x60285))) (or $x62430 $x62485 $x62661))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + (let (($x56 (and W_S1_V6 R_E1_V6))) + (let (($x54 (and W_S1_V4 R_E1_V4))) + (let (($x50 (and W_S1_V2 R_E1_V2))) + (let (($x48 (and W_S1_V3 R_E1_V3))) + (let (($x46 (and W_S1_V1 R_E1_V1))) + (let (($x69 (or $x46 $x48 $x50 R_E1_V5 $x54 $x56))) + (let (($x70 (not $x69))) + (let (($x71 (= DISJ_W_S1_R_E1 $x70))) + (let (($x40 (and W_S1_V6 R_S1_V6))) + (let (($x38 (and W_S1_V4 R_S1_V4))) + (let (($x34 (and W_S1_V2 R_S1_V2))) + (let (($x32 (and W_S1_V3 R_S1_V3))) + (let (($x30 (and W_S1_V1 R_S1_V1))) + (let (($x66 (or $x30 $x32 $x34 R_S1_V5 $x38 $x40))) + (let (($x67 (not $x66))) + (let (($x68 (= DISJ_W_S1_R_S1 $x67))) + (let (($x24 (and W_S1_V6 R_E2_V6))) + (let (($x21 (and W_S1_V4 R_E2_V4))) + (let (($x16 (and W_S1_V2 R_E2_V2))) + (let (($x13 (and W_S1_V3 R_E2_V3))) + (let (($x10 (and W_S1_V1 R_E2_V1))) + (let (($x63 (or $x10 $x13 $x16 R_E2_V5 $x21 $x24))) + (let (($x64 (not $x63))) + (let (($x65 (= DISJ_W_S1_R_E2 $x64))) + (let (($x130 (not R_E2_V3))) + (let (($x115 (not R_E1_V3))) + (let (($x113 (not R_E1_V1))) + (let (($x60916 (and $x113 $x115))) + (let (($x62291 (or $x60916 $x130))) + (and $x62291 W_S1_V5 $x65 $x68 $x71 $x59848)))))))))))))))))))))))))))))))) +(assert R_E2_V3) +(check-sat) +(exit) + diff --git a/test/regress/regress1/quantifiers/psyco-196.smt2 b/test/regress/regress1/quantifiers/psyco-196.smt2 new file mode 100644 index 000000000..fef1a24c6 --- /dev/null +++ b/test/regress/regress1/quantifiers/psyco-196.smt2 @@ -0,0 +1,422 @@ +; COMMAND-LINE: --no-check-models +; EXPECT: sat +(set-logic LIA) +(set-info :status sat) +(declare-fun W_S1_V5 () Bool) +(declare-fun W_S1_V4 () Bool) +(declare-fun W_S1_V6 () Bool) +(declare-fun W_S1_V1 () Bool) +(declare-fun W_S1_V3 () Bool) +(declare-fun W_S1_V2 () Bool) +(declare-fun R_S1_V5 () Bool) +(declare-fun R_S1_V4 () Bool) +(declare-fun R_S1_V6 () Bool) +(declare-fun R_S1_V1 () Bool) +(declare-fun R_S1_V3 () Bool) +(declare-fun R_S1_V2 () Bool) +(declare-fun R_E2_V1 () Bool) +(declare-fun R_E1_V1 () Bool) +(declare-fun R_E1_V3 () Bool) +(declare-fun R_E2_V3 () Bool) +(assert + (let + (($x62242 + (forall + ((V2_0 Int) (V6_0 Int) + (V4_0 Int) (V5_0 Int) + (S1_V3_!5556 Int) (S1_V3_!5562 Int) + (S1_V3_!5571 Int) (S1_V3_!5577 Int) + (E1_!5552 Int) (E1_!5567 Int) + (E1_!5569 Int) (S1_V2_!5555 Int) + (S1_V2_!5561 Int) (S1_V2_!5570 Int) + (S1_V2_!5576 Int) (S1_V5_!5560 Int) + (S1_V5_!5566 Int) (S1_V5_!5575 Int) + (S1_V5_!5581 Int) (S1_V4_!5559 Int) + (S1_V4_!5565 Int) (S1_V4_!5574 Int) + (S1_V4_!5580 Int) (S1_V6_!5558 Int) + (S1_V6_!5564 Int) (S1_V6_!5573 Int) + (S1_V6_!5579 Int) (E2_!5553 Int) + (E2_!5554 Int) (E2_!5568 Int) + (S1_V1_!5557 Int) (S1_V1_!5563 Int) + (S1_V1_!5572 Int) (S1_V1_!5578 Int)) + (let (($x59864 (= S1_V5_!5566 S1_V5_!5581))) + (let (($x59925 (not W_S1_V5))) + (let (($x62779 (or $x59925 $x59864))) + (let (($x62200 (= S1_V4_!5565 S1_V4_!5580))) + (let (($x59923 (not W_S1_V4))) + (let (($x62447 (or $x59923 $x62200))) + (let (($x62602 (= S1_V6_!5564 S1_V6_!5579))) + (let (($x62610 (not W_S1_V6))) + (let (($x62230 (or $x62610 $x62602))) + (let (($x61214 (= S1_V1_!5563 S1_V1_!5578))) + (let (($x60986 (= S1_V3_!5562 S1_V3_!5577))) + (let (($x62444 (= S1_V2_!5561 S1_V2_!5576))) + (let (($x62507 (not W_S1_V2))) + (let (($x62441 (or $x62507 $x62444))) + (let + (($x62532 + (and $x62441 + (ite W_S1_V3 $x60986 + (= (ite W_S1_V3 S1_V3_!5556 E2_!5554) (+ (- 1) E2_!5568))) + (ite W_S1_V1 $x61214 + (= E1_!5552 (+ 1 (ite W_S1_V1 S1_V1_!5572 E1_!5569)))) $x62230 $x62447 + $x62779))) + (let ((?x62367 (ite W_S1_V1 S1_V1_!5572 E1_!5569))) + (let ((?x60865 (+ 1 ?x62367))) + (let ((?x62511 (ite W_S1_V1 S1_V1_!5578 ?x60865))) + (let ((?x60218 (ite W_S1_V3 S1_V3_!5556 E2_!5554))) + (let ((?x60222 (+ 1 ?x60218))) + (let ((?x62533 (ite W_S1_V3 S1_V3_!5562 ?x60222))) + (let + (($x62746 + (and (not (<= V4_0 E2_!5553)) + (not (<= V2_0 E1_!5552)) + (not (<= V4_0 E2_!5554)) + (not (<= (ite W_S1_V4 S1_V4_!5559 V4_0) ?x60222)) + (>= ?x62533 (+ (- 1) (ite W_S1_V4 S1_V4_!5565 V4_0))) + (>= (ite W_S1_V1 S1_V1_!5563 E1_!5552) + (+ (- 1) (ite W_S1_V2 S1_V2_!5561 V2_0))) + (not (<= V2_0 E1_!5567)) + (not (<= V4_0 E2_!5568)) + (not (<= V2_0 E1_!5569)) + (not (<= (ite W_S1_V2 S1_V2_!5570 V2_0) ?x60865)) + (>= ?x62511 (+ (- 1) (ite W_S1_V2 S1_V2_!5576 V2_0))) + (>= (ite W_S1_V3 S1_V3_!5577 E2_!5568) + (+ (- 1) (ite W_S1_V4 S1_V4_!5580 V4_0)))))) + (let (($x62780 (= S1_V1_!5578 S1_V1_!5572))) + (let (($x161 (not R_S1_V5))) + (let (($x62589 (or $x161 (= (ite W_S1_V5 S1_V5_!5575 V5_0) V5_0)))) + (let (($x159 (not R_S1_V4))) + (let (($x62548 (or $x159 (= (ite W_S1_V4 S1_V4_!5574 V4_0) V4_0)))) + (let (($x157 (not R_S1_V6))) + (let (($x62737 (or $x157 (= (ite W_S1_V6 S1_V6_!5573 V6_0) V6_0)))) + (let (($x153 (not R_S1_V3))) + (let + (($x62224 (or $x153 (= (ite W_S1_V3 S1_V3_!5571 E2_!5568) E2_!5568)))) + (let (($x151 (not R_S1_V2))) + (let (($x62641 (or $x151 (= (ite W_S1_V2 S1_V2_!5570 V2_0) V2_0)))) + (let + (($x60228 + (and $x62641 $x62224 + (or (not R_S1_V1) (= ?x62367 (+ (- 1) E1_!5569))) $x62737 $x62548 + $x62589))) + (let (($x62356 (not $x60228))) + (let (($x62680 (= S1_V1_!5578 S1_V1_!5563))) + (let (($x62272 (or $x161 $x59925 (= S1_V5_!5575 S1_V5_!5560)))) + (let (($x61083 (= S1_V4_!5574 S1_V4_!5559))) + (let (($x62455 (or $x159 $x59923 $x61083))) + (let (($x60917 (= S1_V6_!5573 S1_V6_!5558))) + (let (($x62584 (or $x157 $x62610 $x60917))) + (let (($x59905 (= S1_V2_!5570 S1_V2_!5555))) + (let (($x62549 (or $x151 $x62507 $x59905))) + (let + (($x62675 + (and $x62549 (or $x153 (= (ite W_S1_V3 S1_V3_!5571 E2_!5568) ?x60222)) + (or (not R_S1_V1) + (= ?x62367 (+ (- 1) (ite W_S1_V1 S1_V1_!5557 E1_!5552)))) $x62584 + $x62455 $x62272))) + (let (($x59892 (= S1_V1_!5578 S1_V1_!5557))) + (let + (($x60942 (or $x153 (= (ite W_S1_V3 S1_V3_!5571 E2_!5568) E2_!5554)))) + (let + (($x62564 + (and $x62641 $x60942 + (or (not R_S1_V1) (= ?x62367 (+ (- 1) E1_!5552))) $x62737 $x62548 + $x62589))) + (let (($x59819 (not $x62564))) + (let (($x60234 (= S1_V1_!5563 S1_V1_!5572))) + (let (($x61232 (or $x161 (= (ite W_S1_V5 S1_V5_!5560 V5_0) V5_0)))) + (let (($x61254 (or $x159 (= (ite W_S1_V4 S1_V4_!5559 V4_0) V4_0)))) + (let (($x59994 (or $x157 (= (ite W_S1_V6 S1_V6_!5558 V6_0) V6_0)))) + (let (($x155 (not R_S1_V1))) + (let + (($x62420 (or $x155 (= (ite W_S1_V1 S1_V1_!5557 E1_!5552) E1_!5569)))) + (let (($x62368 (or $x151 (= (ite W_S1_V2 S1_V2_!5555 V2_0) V2_0)))) + (let + (($x62830 + (not + (and $x62368 (or $x153 (= ?x60218 (+ (- 1) E2_!5568))) $x62420 $x59994 + $x61254 $x61232)))) + (let (($x62636 (= S1_V1_!5563 S1_V1_!5557))) + (let + (($x59733 (or $x155 (= (ite W_S1_V1 S1_V1_!5557 E1_!5552) E1_!5552)))) + (let + (($x62306 + (not + (and $x62368 (or $x153 (= ?x60218 (+ (- 1) E2_!5554))) $x59733 $x59994 + $x61254 $x61232)))) + (let (($x60134 (= S1_V1_!5557 S1_V1_!5572))) + (let + (($x59719 + (not + (and (or $x153 (= E2_!5554 E2_!5568)) (or $x155 (= E1_!5552 E1_!5569)))))) + (let (($x61406 (= E2_!5554 E2_!5568))) + (let (($x59878 (not (or (not R_E2_V1) (= E1_!5552 E1_!5567))))) + (let (($x59949 (or $x59878 $x61406))) + (let (($x62775 (or $x59878 (= E2_!5553 E2_!5568)))) + (let (($x59743 (= E2_!5553 E2_!5554))) + (let (($x62428 (= S1_V6_!5573 S1_V6_!5579))) + (let (($x60152 (or $x161 (= V5_0 (ite W_S1_V5 S1_V5_!5575 V5_0))))) + (let (($x60212 (or $x159 (= V4_0 (ite W_S1_V4 S1_V4_!5574 V4_0))))) + (let (($x61260 (or $x157 (= V6_0 (ite W_S1_V6 S1_V6_!5573 V6_0))))) + (let + (($x60887 (or $x153 (= E2_!5568 (ite W_S1_V3 S1_V3_!5571 E2_!5568))))) + (let (($x62275 (or $x151 (= V2_0 (ite W_S1_V2 S1_V2_!5570 V2_0))))) + (let + (($x61258 + (or + (not + (and $x62275 $x60887 + (or $x155 (= E1_!5569 ?x60865)) $x61260 $x60212 $x60152)) $x62428))) + (let + (($x61266 + (not + (and (or $x153 (= E2_!5568 E2_!5554)) (or $x155 (= E1_!5569 E1_!5552)))))) + (let (($x61122 (= S1_V5_!5560 S1_V5_!5575))) + (let (($x59790 (or $x161 $x59925 $x61122))) + (let (($x62797 (or $x159 $x59923 (= S1_V4_!5559 S1_V4_!5574)))) + (let (($x62684 (or $x157 $x62610 (= S1_V6_!5558 S1_V6_!5573)))) + (let (($x62354 (or $x151 $x62507 (= S1_V2_!5555 S1_V2_!5570)))) + (let + (($x60910 + (and $x62354 + (or $x153 (= ?x60218 (+ (- 1) (ite W_S1_V3 S1_V3_!5571 E2_!5568)))) + (or $x155 (= (ite W_S1_V1 S1_V1_!5557 E1_!5552) ?x60865)) $x62684 + $x62797 $x59790))) + (let (($x59844 (not $x60910))) + (let (($x62494 (= S1_V5_!5560 S1_V5_!5581))) + (let + (($x62623 (or $x153 (= E2_!5554 (ite W_S1_V3 S1_V3_!5571 E2_!5568))))) + (let + (($x61100 + (or + (not + (and $x62275 $x62623 + (or $x155 (= E1_!5552 ?x60865)) $x61260 $x60212 $x60152)) $x62494))) + (let (($x60862 (= S1_V5_!5560 S1_V5_!5566))) + (let (($x62353 (or $x161 (= V5_0 (ite W_S1_V5 S1_V5_!5560 V5_0))))) + (let (($x60875 (or $x159 (= V4_0 (ite W_S1_V4 S1_V4_!5559 V4_0))))) + (let (($x62491 (or $x157 (= V6_0 (ite W_S1_V6 S1_V6_!5558 V6_0))))) + (let + (($x62399 (or $x155 (= E1_!5552 (ite W_S1_V1 S1_V1_!5557 E1_!5552))))) + (let (($x62431 (or $x151 (= V2_0 (ite W_S1_V2 S1_V2_!5555 V2_0))))) + (let + (($x62297 + (or + (not + (and $x62431 (or $x153 (= E2_!5554 ?x60222)) $x62399 $x62491 $x60875 + $x62353)) $x60862))) + (let (($x60874 (= S1_V2_!5570 S1_V2_!5576))) + (let + (($x62369 + (or + (not + (and $x62275 $x60887 + (or $x155 (= E1_!5569 ?x60865)) $x61260 $x60212 $x60152)) $x60874))) + (let (($x62594 (= S1_V2_!5555 S1_V2_!5576))) + (let + (($x59910 + (or + (not + (and $x62275 $x62623 + (or $x155 (= E1_!5552 ?x60865)) $x61260 $x60212 $x60152)) $x62594))) + (let (($x62531 (= E1_!5569 E1_!5567))) + (let (($x59835 (= E1_!5552 E1_!5569))) + (let (($x62312 (= E1_!5552 E1_!5567))) + (let + (($x62715 + (and (or $x59719 (= S1_V3_!5556 S1_V3_!5571)) + (or $x62306 (= S1_V3_!5562 S1_V3_!5556)) + (or $x62830 (= S1_V3_!5562 S1_V3_!5571)) + (or $x59819 (= S1_V3_!5577 S1_V3_!5556)) + (or (not $x62675) (= S1_V3_!5577 S1_V3_!5562)) + (or $x62356 (= S1_V3_!5577 S1_V3_!5571)) $x62312 $x59835 $x62531 + $x59910 (or $x62306 (= S1_V2_!5561 S1_V2_!5555)) + (or $x62830 (= S1_V2_!5561 S1_V2_!5570)) + (or $x59844 $x62444) + (or $x61266 $x59905) $x62369 $x62297 + (or $x59719 $x61122) $x61100 + (or $x62830 (= S1_V5_!5566 S1_V5_!5575)) + (or $x59844 $x59864) + (or $x62356 (= S1_V5_!5581 S1_V5_!5575)) + (or $x62306 (= S1_V4_!5565 S1_V4_!5559)) + (or $x62830 (= S1_V4_!5565 S1_V4_!5574)) + (or $x59844 $x62200) + (or $x61266 $x61083) + (or $x59819 (= S1_V4_!5580 S1_V4_!5559)) + (or $x62356 (= S1_V4_!5580 S1_V4_!5574)) + (or $x62306 (= S1_V6_!5564 S1_V6_!5558)) + (or $x62830 (= S1_V6_!5564 S1_V6_!5573)) + (or $x59844 $x62602) + (or $x61266 $x60917) $x61258 + (or $x59819 (= S1_V6_!5579 S1_V6_!5558)) $x59743 $x62775 $x59949 + (or $x59719 $x60134) + (or $x62306 $x62636) + (or $x62830 $x60234) + (or $x59819 $x59892) + (or (not $x62675) $x62680) + (or $x62356 $x62780)))) + (or (not $x62715) (not $x62746) $x62532))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + (let (($x13 (or W_S1_V2 W_S1_V3 W_S1_V1 W_S1_V6 W_S1_V4 W_S1_V5))) + (let (($x65 (not R_E1_V1))) + (let (($x63 (not R_E1_V3))) + (let (($x84 (not R_E2_V3))) (and $x84 $x63 $x65 $x13 $x62242))))))) +(assert (not (and (not W_S1_V4) (not W_S1_V3)))) +(assert (not (and (not W_S1_V1) (not W_S1_V2)))) +(assert (not (and (not R_S1_V3) (not R_S1_V1) (not W_S1_V4) (not W_S1_V2)))) +(assert + (let (($x62714 (not W_S1_V3))) + (let (($x161 (not R_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x157 (not R_S1_V6))) + (let (($x155 (not R_S1_V1))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x155 $x157 $x159 $x161 $x62714))))))))) +(assert + (let (($x62610 (not W_S1_V6))) + (let (($x62507 (not W_S1_V2))) + (let (($x59925 (not W_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x155 (not R_S1_V1))) + (let (($x153 (not R_S1_V3))) + (not (and $x153 $x155 $x159 $x59925 $x62507 $x62610))))))))) +(assert + (let (($x161 (not R_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x157 (not R_S1_V6))) + (let (($x155 (not R_S1_V1))) + (let (($x153 (not R_S1_V3))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x153 $x155 $x157 $x159 $x161))))))))) +(assert (not (and W_S1_V3 (not R_S1_V3) (not R_S1_V1) (not W_S1_V2)))) +(assert (not (and W_S1_V3 W_S1_V1 (not R_S1_V3) (not R_S1_V1)))) +(assert + (let (($x62232 (not W_S1_V1))) + (let (($x59925 (not W_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x157 (not R_S1_V6))) + (let (($x153 (not R_S1_V3))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x153 $x157 $x159 $x59925 $x62232))))))))) +(assert + (let (($x62610 (not W_S1_V6))) + (let (($x62232 (not W_S1_V1))) + (let (($x59925 (not W_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x153 (not R_S1_V3))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x153 $x159 $x59925 $x62232 $x62610))))))))) +(assert + (let (($x62610 (not W_S1_V6))) + (let (($x59923 (not W_S1_V4))) + (let (($x161 (not R_S1_V5))) + (let (($x155 (not R_S1_V1))) + (let (($x153 (not R_S1_V3))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x153 $x155 $x161 $x59923 $x62610))))))))) +(assert + (let (($x62610 (not W_S1_V6))) + (let (($x62232 (not W_S1_V1))) + (let (($x161 (not R_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x153 (not R_S1_V3))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x153 $x159 $x161 $x62232 $x62610))))))))) +(assert + (let (($x62232 (not W_S1_V1))) + (let (($x59925 (not W_S1_V5))) + (let (($x59923 (not W_S1_V4))) + (let (($x157 (not R_S1_V6))) + (let (($x153 (not R_S1_V3))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x153 $x157 $x59923 $x59925 $x62232))))))))) +(assert + (let (($x62610 (not W_S1_V6))) + (let (($x59925 (not W_S1_V5))) + (let (($x59923 (not W_S1_V4))) + (let (($x155 (not R_S1_V1))) + (let (($x153 (not R_S1_V3))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x153 $x155 $x59923 $x59925 $x62610))))))))) +(assert + (let (($x59923 (not W_S1_V4))) + (let (($x161 (not R_S1_V5))) + (let (($x157 (not R_S1_V6))) + (let (($x155 (not R_S1_V1))) + (let (($x153 (not R_S1_V3))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x153 $x155 $x157 $x161 $x59923))))))))) +(assert + (let (($x62232 (not W_S1_V1))) + (let (($x59923 (not W_S1_V4))) + (let (($x161 (not R_S1_V5))) + (let (($x157 (not R_S1_V6))) + (let (($x153 (not R_S1_V3))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x153 $x157 $x161 $x59923 $x62232))))))))) +(assert + (let (($x62714 (not W_S1_V3))) + (let (($x62507 (not W_S1_V2))) + (let (($x161 (not R_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x157 (not R_S1_V6))) + (let (($x155 (not R_S1_V1))) + (not (and $x155 $x157 $x159 $x161 $x62507 $x62714))))))))) +(assert + (let (($x62714 (not W_S1_V3))) + (let (($x62610 (not W_S1_V6))) + (let (($x161 (not R_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x155 (not R_S1_V1))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x155 $x159 $x161 $x62610 $x62714))))))))) +(assert + (let (($x62714 (not W_S1_V3))) + (let (($x62610 (not W_S1_V6))) + (let (($x62507 (not W_S1_V2))) + (let (($x161 (not R_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x155 (not R_S1_V1))) + (not (and $x155 $x159 $x161 $x62507 $x62610 $x62714))))))))) +(assert + (let (($x62714 (not W_S1_V3))) + (let (($x59925 (not W_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x157 (not R_S1_V6))) + (let (($x155 (not R_S1_V1))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x155 $x157 $x159 $x59925 $x62714))))))))) +(assert + (let (($x62714 (not W_S1_V3))) + (let (($x62507 (not W_S1_V2))) + (let (($x59925 (not W_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x157 (not R_S1_V6))) + (let (($x155 (not R_S1_V1))) + (not (and $x155 $x157 $x159 $x59925 $x62507 $x62714))))))))) +(assert + (let (($x62714 (not W_S1_V3))) + (let (($x62610 (not W_S1_V6))) + (let (($x59925 (not W_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x155 (not R_S1_V1))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x155 $x159 $x59925 $x62610 $x62714))))))))) +(assert + (let (($x62714 (not W_S1_V3))) + (let (($x62610 (not W_S1_V6))) + (let (($x62507 (not W_S1_V2))) + (let (($x59925 (not W_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x155 (not R_S1_V1))) + (not (and $x155 $x159 $x59925 $x62507 $x62610 $x62714))))))))) +(assert + (let (($x62232 (not W_S1_V1))) + (let (($x161 (not R_S1_V5))) + (let (($x159 (not R_S1_V4))) + (let (($x157 (not R_S1_V6))) + (let (($x153 (not R_S1_V3))) + (let (($x151 (not R_S1_V2))) + (not (and $x151 $x153 $x157 $x159 $x161 $x62232))))))))) +(check-sat) + diff --git a/test/regress/regress1/quantifiers/qbv-disequality3.smt2 b/test/regress/regress1/quantifiers/qbv-disequality3.smt2 new file mode 100644 index 000000000..d16157509 --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-disequality3.smt2 @@ -0,0 +1,10 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (forall ((x (_ BitVec 8))) (= (bvmul (bvadd x b) a) b))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-simple-2vars-vo.smt2 b/test/regress/regress1/quantifiers/qbv-simple-2vars-vo.smt2 new file mode 100644 index 000000000..c36322aac --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-simple-2vars-vo.smt2 @@ -0,0 +1,16 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) +(declare-fun c () (_ BitVec 8)) + +(assert (not (= a #x00))) + +(assert (forall ((x (_ BitVec 8)) (y (_ BitVec 8))) (or +(not (= (bvmul x y) #x0A)) +(not (= (bvadd y a) #x10)) +))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvashr-0.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvashr-0.smt2 new file mode 100644 index 000000000..30e7c2f8b --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvashr-0.smt2 @@ -0,0 +1,10 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (forall ((x (_ BitVec 8))) (not (= (bvashr x a) b)))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvashr-1.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvashr-1.smt2 new file mode 100644 index 000000000..c3de64c4c --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvashr-1.smt2 @@ -0,0 +1,10 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (forall ((x (_ BitVec 8))) (not (= (bvashr a x) b)))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvcomp.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvcomp.smt2 new file mode 100644 index 000000000..3b55c0b9a --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvcomp.smt2 @@ -0,0 +1,11 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: unsat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) +(declare-fun c () (_ BitVec 1)) + +(assert (forall ((x (_ BitVec 8))) (not (= (bvcomp x a) ((_ extract 7 7) (bvmul a b)))))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvlshr-1.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvlshr-1.smt2 new file mode 100644 index 000000000..08479d90e --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvlshr-1.smt2 @@ -0,0 +1,10 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (forall ((x (_ BitVec 8))) (not (= (bvlshr a x) b)))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvmul-neq.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvmul-neq.smt2 new file mode 100644 index 000000000..9dc9f98ac --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvmul-neq.smt2 @@ -0,0 +1,10 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (forall ((x (_ BitVec 8))) (= (bvmul x a) b))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvmul.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvmul.smt2 new file mode 100644 index 000000000..f3dad679b --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvmul.smt2 @@ -0,0 +1,10 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (forall ((x (_ BitVec 8))) (not (= (bvmul x a) b)))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-0-neq.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-0-neq.smt2 new file mode 100644 index 000000000..3748eca24 --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-0-neq.smt2 @@ -0,0 +1,11 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: unsat +(set-logic BV) +(set-info :status unsat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (distinct a b (_ bv0 8))) +(assert (forall ((x (_ BitVec 8))) (= (bvudiv x a) b))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-0.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-0.smt2 new file mode 100644 index 000000000..2cabb502e --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-0.smt2 @@ -0,0 +1,11 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (distinct a b (_ bv0 8))) +(assert (forall ((x (_ BitVec 8))) (not (= (bvudiv x a) b)))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-1-neq.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-1-neq.smt2 new file mode 100644 index 000000000..a0e1b62c2 --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-1-neq.smt2 @@ -0,0 +1,11 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full --bv-div-zero-const +; EXPECT: unsat +(set-logic BV) +(set-info :status unsat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (distinct a b (_ bv0 8))) +(assert (forall ((x (_ BitVec 8))) (= (bvudiv a x) b))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-1.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-1.smt2 new file mode 100644 index 000000000..2690a0ac9 --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvudiv-1.smt2 @@ -0,0 +1,11 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full --bv-div-zero-const +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (distinct a b (_ bv0 8))) +(assert (forall ((x (_ BitVec 8))) (not (= (bvudiv a x) b)))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvurem-1-neq.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvurem-1-neq.smt2 new file mode 100644 index 000000000..871df4827 --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvurem-1-neq.smt2 @@ -0,0 +1,10 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (forall ((x (_ BitVec 8))) (= (bvurem a x) b))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-invert-bvurem-1.smt2 b/test/regress/regress1/quantifiers/qbv-test-invert-bvurem-1.smt2 new file mode 100644 index 000000000..22bd306ee --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-invert-bvurem-1.smt2 @@ -0,0 +1,10 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 8)) +(declare-fun b () (_ BitVec 8)) + +(assert (forall ((x (_ BitVec 8))) (not (= (bvurem a x) b)))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qbv-test-urem-rewrite.smt2 b/test/regress/regress1/quantifiers/qbv-test-urem-rewrite.smt2 new file mode 100644 index 000000000..e57352b8f --- /dev/null +++ b/test/regress/regress1/quantifiers/qbv-test-urem-rewrite.smt2 @@ -0,0 +1,10 @@ +; COMMAND-LINE: --cbqi-bv --cbqi-bv-ineq=keep --no-cbqi-full +; EXPECT: sat +(set-logic BV) +(set-info :status sat) +(declare-fun a () (_ BitVec 4)) +(declare-fun b () (_ BitVec 4)) + +(assert (forall ((x (_ BitVec 4))) (not (= (bvurem x a) b)))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/qcft-javafe.filespace.TreeWalker.006.smt2 b/test/regress/regress1/quantifiers/qcft-javafe.filespace.TreeWalker.006.smt2 new file mode 100644 index 000000000..2a5eb34a7 --- /dev/null +++ b/test/regress/regress1/quantifiers/qcft-javafe.filespace.TreeWalker.006.smt2 @@ -0,0 +1,432 @@ +; COMMAND-LINE: --qcf-tconstraint +; EXPECT: unsat +(set-logic AUFLIA) +(set-info :source | + Simplify front end test suite. + This benchmark was translated by Michal Moskal. +|) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-fun EC_134.22_134.22 () Int) +(declare-fun integralOr (Int Int) Int) +(declare-fun this_95.46_87.8_0_95.46 () Int) +(declare-fun EC_183.16_183.16 () Int) +(declare-fun arrayShapeMore (Int Int) Int) +(declare-fun integralAnd (Int Int) Int) +(declare-fun T_.TYPE () Int) +(declare-fun EC_156.1_0_158.5_0_159.22_159.22 () Int) +(declare-fun intFirst () Int) +(declare-fun after_192.22_192.22 () Int) +(declare-fun T_javafe.filespace.HashTree () Int) +(declare-fun lookAhead_4.43.19 () Int) +(declare-fun after_90.24_87.8_0_90.24_5.89.17 () Int) +(declare-fun eClosedTime (Int) Int) +(declare-fun int_m9223372036854775808 () Int) +(declare-fun C_87.8 () Int) +(declare-fun int_m2147483648 () Int) +(declare-fun T_java.lang.Comparable () Int) +(declare-fun arrayPosition (Int) Int) +(declare-fun treeName_186.1 () Int) +(declare-fun remainingNodes_loopold_48.26 () Int) +(declare-fun after_189.12_189.12 () Int) +(declare-fun this_159.11_156.1_0_158.5_0_159.11 () Int) +(declare-fun select1 (Int Int) Int) +(declare-fun select2 (Int Int Int) Int) +(declare-fun EC_192.22_192.22 () Int) +(declare-fun L_158.5 () Int) +(declare-fun T_java.util.EscjavaKeyValue () Int) +(declare-fun elems_1_ () Int) +(declare-fun c_loopold_133.5 () Int) +(declare-fun T_long () Int) +(declare-fun EC_121.8_121.8 () Int) +(declare-fun EC_65.1_65.1 () Int) +(declare-fun moreElements_192.1_0_193.28_5.89.17 () Int) +(declare-fun after_121.8_121.8 () Int) +(declare-fun T_javafe.filespace.LookAheadEnum () Int) +(declare-fun lockLE (Int Int) Bool) +(declare-fun classLiteral (Int) Int) +(declare-fun lockLT (Int Int) Bool) +(declare-fun T_javafe.filespace.Tree () Int) +(declare-fun elems_2_ () Int) +(declare-fun EC_189.12_189.12 () Int) +(declare-fun T_float () Int) +(declare-fun alloc () Int) +(declare-fun T_java.io.OutputStream () Int) +(declare-fun EC_87.8_0_89.24_89.24 () Int) +(declare-fun S_194.56 () Int) +(declare-fun asChild (Int Int) Int) +(declare-fun CONCVARSYM (Int) Int) +(declare-fun T_int () Int) +(declare-fun after_65.1_65.1 () Int) +(declare-fun int_2147483647 () Int) +(declare-fun RES_130.35 () Int) +(declare-fun remainingNodes_48.26_1_ () Int) +(declare-fun int_9223372036854775807 () Int) +(declare-fun this () Int) +(declare-fun T_byte () Int) +(declare-fun T_java.lang.System () Int) +(declare-fun store1 (Int Int Int) Int) +(declare-fun store2 (Int Int Int Int) Int) +(declare-fun RES_loopold () Int) +(declare-fun remainingNodes_48.26_2_ () Int) +(declare-fun max (Int) Int) +(declare-fun elems_156.1_0_158.5_0_1_ () Int) +(declare-fun moreElements_pre_5.58.29 () Int) +(declare-fun moreElements_87.8_0_90.24_5.89.17 () Int) +(declare-fun objectToBeConstructed () Int) +(declare-fun T_java.util.Map () Int) +(declare-fun tmp4_156.1_0_158.5_0_163.8 () Int) +(declare-fun T_javafe.filespace.TreeWalker () Int) +(declare-fun after_189.25_189.25 () Int) +(declare-fun integralDiv (Int Int) Int) +(declare-fun i_156.1_0_158.5_0_158.33 () Int) +(declare-fun after_135.35_134.1_0_135.35_5.89.17 () Int) +(declare-fun EC_130.36_130.36 () Int) +(declare-fun RES_121.33_121.33 () Int) +(declare-fun moreElements_loopold_5.58.29 () Int) +(declare-fun RES_134.22_134.22 () Int) +(declare-fun list_210.13 () Int) +(declare-fun EC_189.25_189.25 () Int) +(declare-fun T_java.lang.Class () Int) +(declare-fun T_java.lang.Object () Int) +(declare-fun tmp_156.1_0_158.5_0_161.6 () Int) +(declare-fun remainingChildren_pre_39.26 () Int) +(declare-fun EC_192.1_1_192.45_192.45 () Int) +(declare-fun RES_192.1_1_192.45_192.45 () Int) +(declare-fun RES_156.1_0_158.5_0_160.18_160.18 () Int) +(declare-fun longLast () Int) +(declare-fun termConditional (Int Int Int) Int) +(declare-fun T_java.util.Dictionary () Int) +(declare-fun C_156.1 () Int) +(declare-fun bool_false () Int) +(declare-fun RES_192.22_192.22 () Int) +(declare-fun T_javafe.filespace.FileTree () Int) +(declare-fun alloc_loopold () Int) +(declare-fun Smt.true () Int) +(declare-fun returnsNull_5.79.29 () Int) +(declare-fun c_134.1_0_135.20 () Int) +(declare-fun asLockSet (Int) Int) +(declare-fun integralMod (Int Int) Int) +(declare-fun RES_67.21_67.21 () Int) +(declare-fun RES_156.1_0_158.5_0_159.11_159.11 () Int) +(declare-fun Smt.false () Int) +(declare-fun typeof (Int) Int) +(declare-fun int_18446744073709551615 () Int) +(declare-fun RES_189.12_189.12 () Int) +(declare-fun this_160.18_156.1_0_158.5_0_160.18 () Int) +(declare-fun EC_134.1_0_134.36_134.36 () Int) +(declare-fun RES_89.23 () Int) +(declare-fun RES_134.1_0_134.36_134.36 () Int) +(declare-fun RES_87.8_0_93.28_93.28 () Int) +(declare-fun elementType_5.74.27 () Int) +(declare-fun stringCat (Int Int) Int) +(declare-fun remainingChildren_39.26_1_ () Int) +(declare-fun RES_87.8_0_95.46_95.46 () Int) +(declare-fun lookAheadValid_4.40.20 () Int) +(declare-fun T_boolean () Int) +(declare-fun longFirst () Int) +(declare-fun elems_loopold_156.1_0 () Int) +(declare-fun T_java.util.Hashtable () Int) +(declare-fun elems_loopold () Int) +(declare-fun T_java.util.Properties () Int) +(declare-fun L_87.8 () Int) +(declare-fun RES_68.21_68.21 () Int) +(declare-fun RES_65.1_65.1 () Int) +(declare-fun arrayFresh (Int Int Int Int Int Int Int) Bool) +(declare-fun RES () Int) +(declare-fun elementType_pre_5.74.27 () Int) +(declare-fun L_156.1 () Int) +(declare-fun intLast () Int) +(declare-fun RES_130.36_130.36 () Int) +(declare-fun RES_87.8_0_90.24_90.24 () Int) +(declare-fun arrayType () Int) +(declare-fun RES_189.25_189.25 () Int) +(declare-fun boolEq (Int Int) Bool) +(declare-fun EC_134.1_0_135.35_135.35 () Int) +(declare-fun after_193.28_192.1_0_193.28_5.89.17 () Int) +(declare-fun RES_134.1_0_135.35_135.35 () Int) +(declare-fun T_129.49 () Int) +(declare-fun arrayLength (Int) Int) +(declare-fun cast (Int Int) Int) +(declare-fun nextChild_87.8_0_95.5 () Int) +(declare-fun elementType_71.16 () Int) +(declare-fun asElems (Int) Int) +(declare-fun T_javafe.filespace.PreloadedTree () Int) +(declare-fun moreElements_5.58.29 () Int) +(declare-fun T_char () Int) +(declare-fun EC_192.1_0_194.16_194.16 () Int) +(declare-fun owner_pre_6.35.28 () Int) +(declare-fun RES_156.1_0_158.5_0_159.22_159.22 () Int) +(declare-fun EC_140.1_140.1 () Int) +(declare-fun divides (Int Int) Int) +(declare-fun returnsNull_72.16 () Int) +(declare-fun remainingChildren_39.26 () Int) +(declare-fun remainingNodes_68.1 () Int) +(declare-fun T_javafe.filespace.TreeWalker_ArrayEnum () Int) +(declare-fun arg0_194.16_192.1_0_194.16_17.. () Int) +(declare-fun InRange (Int Int) Bool) +(declare-fun moreElements_87.8_0_95.46_5.89.17 () Int) +(declare-fun sorted_157.13 () Int) +(declare-fun moreElements_134.1_0_135.35_5.89.17 () Int) +(declare-fun out_pre_16.83.49 () Int) +(declare-fun elementType_69.24 () Int) +(declare-fun RES_121.8_121.8 () Int) +(declare-fun lookAheadValid_pre_4.40.20 () Int) +(declare-fun refEQ (Int Int) Int) +(declare-fun EC_loopold () Int) +(declare-fun EC_157.5 () Int) +(declare-fun remainingNodes_pre_48.26 () Int) +(declare-fun EC_156.1_0_158.5_0_160.18_160.18 () Int) +(declare-fun subtree_192.1_0_193.5 () Int) +(declare-fun is (Int Int) Int) +(declare-fun i_loopold_156.1_0_158.14 () Int) +(declare-fun integralEQ (Int Int) Int) +(declare-fun RES_87.8_0_89.24_89.24 () Int) +(declare-fun boolNE (Int Int) Bool) +(declare-fun EC_134.1_1_134.36_134.36 () Int) +(declare-fun RES_134.1_1_134.36_134.36 () Int) +(declare-fun T_java.io.FilterOutputStream () Int) +(declare-fun remainingNodes_48.26 () Int) +(declare-fun tmp0_new_Tree___130.25 () Int) +(declare-fun isNewArray (Int) Int) +(declare-fun L_192.1 () Int) +(declare-fun elems_pre () Int) +(declare-fun T_63.27 () Int) +(declare-fun intShiftL (Int Int) Int) +(declare-fun nonnullelements (Int Int) Bool) +(declare-fun multiply (Int Int) Int) +(declare-fun integralGE (Int Int) Int) +(declare-fun lookAhead_pre_4.43.19 () Int) +(declare-fun T_short () Int) +(declare-fun EC_67.21_67.21 () Int) +(declare-fun alloc_pre () Int) +(declare-fun integralGT (Int Int) Int) +(declare-fun EC () Int) +(declare-fun boolAnd (Int Int) Bool) +(declare-fun EC_156.1_0_158.5_0_159.11_159.11 () Int) +(declare-fun EC_1_ () Int) +(declare-fun EC_192.1_0_194.32_194.32 () Int) +(declare-fun RES_192.1_0_194.32_194.32 () Int) +(declare-fun arrayShapeOne (Int) Int) +(declare-fun T_double () Int) +(declare-fun out_16.83.49 () Int) +(declare-fun owner_6.35.28 () Int) +(declare-fun longShiftL (Int Int) Int) +(declare-fun list_pre_210.13 () Int) +(declare-fun T_java.io.Serializable () Int) +(declare-fun boolOr (Int Int) Bool) +(declare-fun L_134.1 () Int) +(declare-fun int_4294967295 () Int) +(declare-fun modulo (Int Int) Int) +(declare-fun EC_87.8_0_93.28_93.28 () Int) +(declare-fun EC_2_ () Int) +(declare-fun EC_130.35 () Int) +(declare-fun elems_134.1_0 () Int) +(declare-fun T_120.50 () Int) +(declare-fun returnsNull_pre_5.79.29 () Int) +(declare-fun EC_152.6 () Int) +(declare-fun EC_87.8_0_95.46_95.46 () Int) +(declare-fun EC_182.16 () Int) +(declare-fun after_95.46_87.8_0_95.46_5.89.17 () Int) +(declare-fun null () Int) +(declare-fun args_181.36 () Int) +(declare-fun EC_152.6_1_ () Int) +(declare-fun T_java.lang.String () Int) +(declare-fun asField (Int Int) Int) +(declare-fun a_150.36 () Int) +(declare-fun EC_68.21_68.21 () Int) +(declare-fun T_java.io.File () Int) +(declare-fun after_68.21_68.21 () Int) +(declare-fun boolImplies (Int Int) Bool) +(declare-fun sorted_157.13_1_ () Int) +(declare-fun integralLE (Int Int) Int) +(declare-fun RES_1_ () Int) +(declare-fun tmp0_remainingNodes_69.9 () Int) +(declare-fun elems_156.1_0_158.5_0 () Int) +(declare-fun integralLT (Int Int) Int) +(declare-fun this_93.28_87.8_0_93.28 () Int) +(declare-fun T_java.util.Enumeration () Int) +(declare-fun vAllocTime (Int) Int) +(declare-fun EC_192.1_0_193.28_193.28 () Int) +(declare-fun sorted_157.13_2_ () Int) +(declare-fun this_89.24_87.8_0_89.24 () Int) +(declare-fun T_java.lang.Cloneable () Int) +(declare-fun RES_192.1_0_193.28_193.28 () Int) +(declare-fun RES_2_ () Int) +(declare-fun boolNot (Int) Bool) +(declare-fun refNE (Int Int) Int) +(declare-fun integralXor (Int Int) Int) +(declare-fun classDown (Int Int) Int) +(declare-fun EC_loopold_156.1_0 () Int) +(declare-fun sorted_loopold_156.1_0_157.13 () Int) +(declare-fun this_90.24_87.8_0_90.24 () Int) +(declare-fun integralNE (Int Int) Int) +(declare-fun T_java.io.PrintStream () Int) +(declare-fun EC_87.8_0_90.24_90.24 () Int) +(declare-fun arrayParent (Int) Int) +(declare-fun elemtype (Int) Int) +(declare-fun fClosedTime (Int) Int) +(declare-fun alloc_1_ () Int) +(declare-fun EC_192.1_0_192.45_192.45 () Int) +(declare-fun array (Int) Int) +(declare-fun RES_192.1_0_192.45_192.45 () Int) +(declare-fun LS () Int) +(declare-fun remainingChildren_67.1 () Int) +(declare-fun ecReturn () Int) +(declare-fun isAllocated (Int Int) Bool) +(declare-fun alloc_2_ () Int) +(declare-fun elems () Int) +(declare-fun subtypes (Int Int) Bool) +(declare-fun T_javafe.filespace.EmptyEnum () Int) +(declare-fun EC_182.16_1_ () Int) +(declare-fun EC_121.33_121.33 () Int) +(assert (subtypes T_java.io.OutputStream T_java.lang.Object)) +(assert (= T_java.io.OutputStream (asChild T_java.io.OutputStream T_java.lang.Object))) +(assert (subtypes T_java.io.FilterOutputStream T_java.io.OutputStream)) +(assert (= T_java.io.FilterOutputStream (asChild T_java.io.FilterOutputStream T_java.io.OutputStream))) +(assert (subtypes T_javafe.filespace.TreeWalker T_javafe.filespace.LookAheadEnum)) +(assert (= T_javafe.filespace.TreeWalker (asChild T_javafe.filespace.TreeWalker T_javafe.filespace.LookAheadEnum))) +(assert (forall ((?t Int)) (! (= (subtypes ?t T_javafe.filespace.TreeWalker) (= ?t T_javafe.filespace.TreeWalker)) :pattern ((subtypes ?t T_javafe.filespace.TreeWalker)) ))) +(assert (subtypes T_javafe.filespace.FileTree T_javafe.filespace.PreloadedTree)) +(assert (= T_javafe.filespace.FileTree (asChild T_javafe.filespace.FileTree T_javafe.filespace.PreloadedTree))) +(assert (subtypes T_javafe.filespace.LookAheadEnum T_java.lang.Object)) +(assert (= T_javafe.filespace.LookAheadEnum (asChild T_javafe.filespace.LookAheadEnum T_java.lang.Object))) +(assert (subtypes T_javafe.filespace.LookAheadEnum T_java.util.Enumeration)) +(assert (subtypes T_javafe.filespace.TreeWalker_ArrayEnum T_javafe.filespace.LookAheadEnum)) +(assert (= T_javafe.filespace.TreeWalker_ArrayEnum (asChild T_javafe.filespace.TreeWalker_ArrayEnum T_javafe.filespace.LookAheadEnum))) +(assert (subtypes T_javafe.filespace.HashTree T_javafe.filespace.Tree)) +(assert (= T_javafe.filespace.HashTree (asChild T_javafe.filespace.HashTree T_javafe.filespace.Tree))) +(assert (subtypes T_java.lang.System T_java.lang.Object)) +(assert (= T_java.lang.System (asChild T_java.lang.System T_java.lang.Object))) +(assert (forall ((?t Int)) (! (= (subtypes ?t T_java.lang.System) (= ?t T_java.lang.System)) :pattern ((subtypes ?t T_java.lang.System)) ))) +(assert (subtypes T_java.util.EscjavaKeyValue T_java.lang.Object)) +(assert (subtypes T_java.util.Properties T_java.util.Hashtable)) +(assert (= T_java.util.Properties (asChild T_java.util.Properties T_java.util.Hashtable))) +(assert (subtypes T_javafe.filespace.Tree T_java.lang.Object)) +(assert (= T_javafe.filespace.Tree (asChild T_javafe.filespace.Tree T_java.lang.Object))) +(assert (subtypes T_java.lang.String T_java.lang.Object)) +(assert (= T_java.lang.String (asChild T_java.lang.String T_java.lang.Object))) +(assert (forall ((?t Int)) (! (= (subtypes ?t T_java.lang.String) (= ?t T_java.lang.String)) :pattern ((subtypes ?t T_java.lang.String)) ))) +(assert (subtypes T_java.lang.String T_java.io.Serializable)) +(assert (subtypes T_java.lang.String T_java.lang.Comparable)) +(assert (subtypes T_java.util.Enumeration T_java.lang.Object)) +(assert (subtypes T_java.lang.Comparable T_java.lang.Object)) +(assert (subtypes T_java.util.Map T_java.lang.Object)) +(assert (subtypes T_java.util.Map T_java.util.EscjavaKeyValue)) +(assert (subtypes T_java.util.Dictionary T_java.lang.Object)) +(assert (= T_java.util.Dictionary (asChild T_java.util.Dictionary T_java.lang.Object))) +(assert (subtypes T_java.util.Dictionary T_java.util.EscjavaKeyValue)) +(assert (subtypes T_java.io.Serializable T_java.lang.Object)) +(assert (subtypes T_java.io.PrintStream T_java.io.FilterOutputStream)) +(assert (= T_java.io.PrintStream (asChild T_java.io.PrintStream T_java.io.FilterOutputStream))) +(assert (subtypes T_javafe.filespace.PreloadedTree T_javafe.filespace.HashTree)) +(assert (= T_javafe.filespace.PreloadedTree (asChild T_javafe.filespace.PreloadedTree T_javafe.filespace.HashTree))) +(assert (subtypes T_java.util.Hashtable T_java.util.Dictionary)) +(assert (= T_java.util.Hashtable (asChild T_java.util.Hashtable T_java.util.Dictionary))) +(assert (subtypes T_java.util.Hashtable T_java.util.Map)) +(assert (subtypes T_java.util.Hashtable T_java.lang.Cloneable)) +(assert (subtypes T_java.util.Hashtable T_java.io.Serializable)) +(assert (subtypes T_java.lang.Cloneable T_java.lang.Object)) +(assert (subtypes T_javafe.filespace.EmptyEnum T_java.lang.Object)) +(assert (= T_javafe.filespace.EmptyEnum (asChild T_javafe.filespace.EmptyEnum T_java.lang.Object))) +(assert (subtypes T_javafe.filespace.EmptyEnum T_java.util.Enumeration)) +(assert (subtypes T_java.io.File T_java.lang.Object)) +(assert (= T_java.io.File (asChild T_java.io.File T_java.lang.Object))) +(assert (subtypes T_java.io.File T_java.io.Serializable)) +(assert (subtypes T_java.io.File T_java.lang.Comparable)) +(assert (distinct arrayType T_boolean T_char T_byte T_short T_int T_long T_float T_double T_.TYPE T_java.io.OutputStream T_java.io.FilterOutputStream T_javafe.filespace.TreeWalker T_javafe.filespace.FileTree T_javafe.filespace.LookAheadEnum T_javafe.filespace.TreeWalker_ArrayEnum T_javafe.filespace.HashTree T_java.lang.System T_java.util.EscjavaKeyValue T_java.util.Properties T_javafe.filespace.Tree T_java.lang.String T_java.util.Enumeration T_java.lang.Comparable T_java.util.Map T_java.util.Dictionary T_java.io.Serializable T_java.io.PrintStream T_javafe.filespace.PreloadedTree T_java.util.Hashtable T_java.lang.Cloneable T_javafe.filespace.EmptyEnum T_java.io.File T_java.lang.Object)) +(assert (= Smt.true (is out_16.83.49 T_java.io.PrintStream))) +(assert (forall ((?n Int)) (! (=> (and (<= 0 ?n) (< ?n 63)) (<= 1 (longShiftL 1 ?n))) :pattern ((longShiftL 1 ?n)) ))) +(assert (forall ((?n Int)) (! (=> (and (<= 0 ?n) (< ?n 31)) (<= 1 (intShiftL 1 ?n))) :pattern ((intShiftL 1 ?n)) ))) +(assert (forall ((?x Int) (?y Int)) (! (=> (and (<= 0 ?x) (<= 0 ?y)) (<= 0 (integralXor ?x ?y))) :pattern ((integralXor ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (let ((?v_0 (integralDiv ?x ?y))) (=> (and (<= 0 ?x) (< 0 ?y)) (and (<= 0 ?v_0) (<= ?v_0 ?x)))) :pattern ((integralDiv ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (let ((?v_0 (integralOr ?x ?y))) (=> (and (<= 0 ?x) (<= 0 ?y)) (and (<= ?x ?v_0) (<= ?y ?v_0)))) :pattern ((integralOr ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (=> (<= 0 ?y) (<= (integralAnd ?x ?y) ?y)) :pattern ((integralAnd ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (=> (<= 0 ?x) (<= (integralAnd ?x ?y) ?x)) :pattern ((integralAnd ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (=> (or (<= 0 ?x) (<= 0 ?y)) (<= 0 (integralAnd ?x ?y))) :pattern ((integralAnd ?x ?y)) ))) +(assert (forall ((?t Int)) (! (let ((?v_0 (classLiteral ?t))) (and (not (= ?v_0 null)) (= Smt.true (is ?v_0 T_java.lang.Class)) (isAllocated ?v_0 alloc))) :pattern ((classLiteral ?t)) ))) +(assert (forall ((?x Int) (?e Int)) (= (nonnullelements ?x ?e) (and (not (= ?x null)) (forall ((?i Int)) (=> (and (<= 0 ?i) (< ?i (arrayLength ?x))) (not (= (select1 (select1 ?e ?x) ?i) null)))))))) +(assert (forall ((?b Int) (?x Int) (?y Int)) (! (=> (not (= ?b Smt.true)) (= (termConditional ?b ?x ?y) ?y)) :pattern ((termConditional ?b ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (termConditional Smt.true ?x ?y) ?x) :pattern ((termConditional Smt.true ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (refNE ?x ?y) Smt.true) (not (= ?x ?y))) :pattern ((refNE ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (refEQ ?x ?y) Smt.true) (= ?x ?y)) :pattern ((refEQ ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralNE ?x ?y) Smt.true) (not (= ?x ?y))) :pattern ((integralNE ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralLT ?x ?y) Smt.true) (< ?x ?y)) :pattern ((integralLT ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralLE ?x ?y) Smt.true) (<= ?x ?y)) :pattern ((integralLE ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralGT ?x ?y) Smt.true) (> ?x ?y)) :pattern ((integralGT ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralGE ?x ?y) Smt.true) (>= ?x ?y)) :pattern ((integralGE ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (let ((?v_0 (stringCat ?x ?y))) (and (not (= ?v_0 null)) (subtypes (typeof ?v_0) T_java.lang.String))) :pattern ((stringCat ?x ?y)) ))) +(assert (forall ((?x Int) (?y Int)) (! (= (= (integralEQ ?x ?y) Smt.true) (= ?x ?y)) :pattern ((integralEQ ?x ?y)) ))) +(assert (forall ((?a Int) (?b Int)) (= (boolOr ?a ?b) (or (= ?a Smt.true) (= ?b Smt.true))))) +(assert (forall ((?a Int)) (= (boolNot ?a) (not (= ?a Smt.true))))) +(assert (forall ((?a Int) (?b Int)) (= (boolNE ?a ?b) (not (= (= ?a Smt.true) (= ?b Smt.true)))))) +(assert (forall ((?a Int) (?b Int)) (= (boolImplies ?a ?b) (=> (= ?a Smt.true) (= ?b Smt.true))))) +(assert (forall ((?a Int) (?b Int)) (= (boolEq ?a ?b) (= (= ?a Smt.true) (= ?b Smt.true))))) +(assert (forall ((?a Int) (?b Int)) (= (boolAnd ?a ?b) (and (= ?a Smt.true) (= ?b Smt.true))))) +(assert (forall ((?x Int) (?y Int)) (let ((?v_0 (multiply ?x ?y))) (= (multiply (integralDiv ?v_0 ?y) ?y) ?v_0)))) +(assert (forall ((?i Int) (?j Int)) (= (integralMod (+ ?j ?i) ?j) (integralMod ?i ?j)))) +(assert (forall ((?i Int) (?j Int)) (= (integralMod (+ ?i ?j) ?j) (integralMod ?i ?j)))) +(assert (forall ((?i Int) (?j Int)) (! (let ((?v_0 (integralMod ?i ?j))) (=> (< ?j 0) (and (< ?j ?v_0) (<= ?v_0 0)))) :pattern ((integralMod ?i ?j)) ))) +(assert (forall ((?i Int) (?j Int)) (! (let ((?v_0 (integralMod ?i ?j))) (=> (< 0 ?j) (and (<= 0 ?v_0) (< ?v_0 ?j)))) :pattern ((integralMod ?i ?j)) ))) +(assert (forall ((?i Int) (?j Int)) (! (= (+ (multiply (integralDiv ?i ?j) ?j) (integralMod ?i ?j)) ?i) :pattern ((integralMod ?i ?j)) :pattern ((integralDiv ?i ?j)) ))) +(assert (forall ((?s Int)) (! (=> (= Smt.true (isNewArray ?s)) (subtypes (typeof ?s) arrayType)) :pattern ((isNewArray ?s)) ))) +(assert (forall ((?t Int)) (! (subtypes (array ?t) arrayType) :pattern ((array ?t)) ))) +(assert (= arrayType (asChild arrayType T_java.lang.Object))) +(assert (forall ((?a Int) (?a0 Int) (?b0 Int) (?e Int) (?n Int) (?T Int) (?v Int)) (! (= (arrayFresh ?a ?a0 ?b0 ?e (arrayShapeOne ?n) ?T ?v) (and (<= ?a0 (vAllocTime ?a)) (isAllocated ?a ?b0) (not (= ?a null)) (= (typeof ?a) ?T) (= (arrayLength ?a) ?n) (forall ((?i Int)) (! (= (select1 (select1 ?e ?a) ?i) ?v) :pattern ((select1 (select1 ?e ?a) ?i)) )))) :pattern ((arrayFresh ?a ?a0 ?b0 ?e (arrayShapeOne ?n) ?T ?v)) ))) +(assert (forall ((?a Int) (?a0 Int) (?b0 Int) (?e Int) (?n Int) (?s Int) (?T Int) (?v Int)) (! (= (arrayFresh ?a ?a0 ?b0 ?e (arrayShapeMore ?n ?s) ?T ?v) (and (<= ?a0 (vAllocTime ?a)) (isAllocated ?a ?b0) (not (= ?a null)) (= (typeof ?a) ?T) (= (arrayLength ?a) ?n) (forall ((?i Int)) (! (let ((?v_0 (select1 (select1 ?e ?a) ?i))) (and (arrayFresh ?v_0 ?a0 ?b0 ?e ?s (elemtype ?T) ?v) (= (arrayParent ?v_0) ?a) (= (arrayPosition ?v_0) ?i))) :pattern ((select1 (select1 ?e ?a) ?i)) )))) :pattern ((arrayFresh ?a ?a0 ?b0 ?e (arrayShapeMore ?n ?s) ?T ?v)) ))) +(assert (forall ((?a Int)) (! (let ((?v_0 (arrayLength ?a))) (and (<= 0 ?v_0) (= Smt.true (is ?v_0 T_int)))) :pattern ((arrayLength ?a)) ))) +(assert (forall ((?x Int)) (! (=> (subtypes (typeof ?x) T_java.lang.Object) (lockLE null ?x)) :pattern ((lockLE null ?x)) :pattern ((lockLT null ?x)) :pattern ((lockLE ?x null)) :pattern ((lockLT ?x null)) ))) +(assert (forall ((?S Int) (?mu Int)) (let ((?v_0 (asLockSet ?S))) (=> (= (select1 ?v_0 ?mu) Smt.true) (lockLE ?mu (max ?v_0)))))) +(assert (forall ((?x Int) (?y Int)) (= (lockLT ?x ?y) (< ?x ?y)))) +(assert (forall ((?x Int) (?y Int)) (= (lockLE ?x ?y) (<= ?x ?y)))) +(assert (forall ((?S Int)) (! (= (select1 (asLockSet ?S) null) Smt.true) :pattern ((asLockSet ?S)) ))) +(assert (forall ((?S Int)) (let ((?v_0 (asLockSet ?S))) (= (select1 ?v_0 (max ?v_0)) Smt.true)))) +(assert (forall ((?a Int) (?e Int) (?i Int) (?a0 Int)) (! (=> (and (< (eClosedTime ?e) ?a0) (isAllocated ?a ?a0)) (isAllocated (select1 (select1 ?e ?a) ?i) ?a0)) :pattern ((isAllocated (select1 (select1 ?e ?a) ?i) ?a0)) ))) +(assert (forall ((?x Int) (?f Int) (?a0 Int)) (! (=> (and (< (fClosedTime ?f) ?a0) (isAllocated ?x ?a0)) (isAllocated (select1 ?f ?x) ?a0)) :pattern ((isAllocated (select1 ?f ?x) ?a0)) ))) +(assert (forall ((?x Int) (?a0 Int)) (= (isAllocated ?x ?a0) (< (vAllocTime ?x) ?a0)))) +(assert (forall ((?e Int) (?a Int) (?i Int)) (! (= Smt.true (is (select1 (select1 (asElems ?e) ?a) ?i) (elemtype (typeof ?a)))) :pattern ((select1 (select1 (asElems ?e) ?a) ?i)) ))) +(assert (forall ((?f Int) (?t Int) (?x Int)) (! (= Smt.true (is (select1 (asField ?f ?t) ?x) ?t)) :pattern ((select1 (asField ?f ?t) ?x)) ))) +(assert (forall ((?x Int) (?t Int)) (! (=> (subtypes ?t T_java.lang.Object) (= (= Smt.true (is ?x ?t)) (or (= ?x null) (subtypes (typeof ?x) ?t)))) :pattern ((subtypes ?t T_java.lang.Object) (is ?x ?t)) ))) +(assert (< intLast longLast)) +(assert (< 1000000 intLast)) +(assert (< intFirst (- 1000000))) +(assert (< longFirst intFirst)) +(assert (forall ((?x Int)) (! (= (= Smt.true (is ?x T_long)) (and (<= longFirst ?x) (<= ?x longLast))) :pattern ((is ?x T_long)) ))) +(assert (forall ((?x Int)) (! (= (= Smt.true (is ?x T_int)) (and (<= intFirst ?x) (<= ?x intLast))) :pattern ((is ?x T_int)) ))) +(assert (forall ((?x Int)) (= (= Smt.true (is ?x T_short)) (and (<= (- 32768) ?x) (<= ?x 32767))))) +(assert (forall ((?x Int)) (= (= Smt.true (is ?x T_byte)) (and (<= (- 128) ?x) (<= ?x 127))))) +(assert (forall ((?x Int)) (! (= (= Smt.true (is ?x T_char)) (and (<= 0 ?x) (<= ?x 65535))) :pattern ((is ?x T_char)) ))) +(assert (distinct bool_false Smt.true)) +(assert (forall ((?x Int) (?t Int)) (! (=> (= Smt.true (is ?x ?t)) (= (cast ?x ?t) ?x)) :pattern ((cast ?x ?t)) ))) +(assert (forall ((?x Int) (?t Int)) (! (= Smt.true (is (cast ?x ?t) ?t)) :pattern ((cast ?x ?t)) ))) +(assert (forall ((?t0 Int) (?t1 Int)) (! (let ((?v_0 (elemtype ?t0))) (= (subtypes ?t0 (array ?t1)) (and (= ?t0 (array ?v_0)) (subtypes ?v_0 ?t1)))) :pattern ((subtypes ?t0 (array ?t1))) ))) +(assert (forall ((?t Int)) (! (= (elemtype (array ?t)) ?t) :pattern ((elemtype (array ?t))) ))) +(assert (forall ((?t Int)) (! (subtypes (array ?t) T_java.lang.Cloneable) :pattern ((array ?t)) ))) +(assert (subtypes T_java.lang.Cloneable T_java.lang.Object)) +(assert (forall ((?t0 Int) (?t1 Int) (?t2 Int)) (let ((?v_0 (asChild ?t1 ?t2))) (=> (subtypes ?t0 ?v_0) (= (classDown ?t2 ?t0) ?v_0))))) +(assert (forall ((?t Int)) (! (=> (subtypes T_double ?t) (= ?t T_double)) :pattern ((subtypes T_double ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_float ?t) (= ?t T_float)) :pattern ((subtypes T_float ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_long ?t) (= ?t T_long)) :pattern ((subtypes T_long ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_int ?t) (= ?t T_int)) :pattern ((subtypes T_int ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_short ?t) (= ?t T_short)) :pattern ((subtypes T_short ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_byte ?t) (= ?t T_byte)) :pattern ((subtypes T_byte ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_char ?t) (= ?t T_char)) :pattern ((subtypes T_char ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes T_boolean ?t) (= ?t T_boolean)) :pattern ((subtypes T_boolean ?t)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_double) (= ?t T_double)) :pattern ((subtypes ?t T_double)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_float) (= ?t T_float)) :pattern ((subtypes ?t T_float)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_long) (= ?t T_long)) :pattern ((subtypes ?t T_long)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_int) (= ?t T_int)) :pattern ((subtypes ?t T_int)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_short) (= ?t T_short)) :pattern ((subtypes ?t T_short)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_byte) (= ?t T_byte)) :pattern ((subtypes ?t T_byte)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_char) (= ?t T_char)) :pattern ((subtypes ?t T_char)) ))) +(assert (forall ((?t Int)) (! (=> (subtypes ?t T_boolean) (= ?t T_boolean)) :pattern ((subtypes ?t T_boolean)) ))) +(assert (forall ((?t0 Int) (?t1 Int)) (! (=> (and (subtypes ?t0 ?t1) (subtypes ?t1 ?t0)) (= ?t0 ?t1)) :pattern ((subtypes ?t0 ?t1) (subtypes ?t1 ?t0)) ))) +(assert (forall ((?t0 Int) (?t1 Int) (?t2 Int)) (! (=> (and (subtypes ?t0 ?t1) (subtypes ?t1 ?t2)) (subtypes ?t0 ?t2)) :pattern ((subtypes ?t0 ?t1) (subtypes ?t1 ?t2)) ))) +(assert (subtypes T_java.lang.Object T_java.lang.Object)) +(assert (forall ((?t Int)) (! (subtypes ?t ?t) :pattern ((subtypes ?t ?t)) ))) +(assert (forall ((?m Int) (?i Int) (?j Int) (?x Int)) (=> (not (= ?i ?j)) (= (select1 (store1 ?m ?i ?x) ?j) (select1 ?m ?j))))) +(assert (forall ((?m Int) (?i Int) (?x Int)) (= (select1 (store1 ?m ?i ?x) ?i) ?x))) +(assert (let ((?v_0 (not (= args_181.36 null)))) (let ((?v_1 (not ?v_0)) (?v_3 (arrayLength args_181.36))) (let ((?v_61 (not (= ?v_3 1)))) (let ((?v_29 (not ?v_61)) (?v_8 (= Smt.true Smt.true)) (?v_2 (<= 0 0)) (?v_4 (< 0 ?v_3)) (?v_30 (= treeName_186.1 (select1 (select1 elems args_181.36) 0))) (?v_5 (not (= treeName_186.1 null))) (?v_31 (< alloc after_189.25_189.25)) (?v_6 (not (= RES_189.25_189.25 null))) (?v_32 (not (isAllocated RES_189.25_189.25 alloc))) (?v_33 (= Smt.true (is RES_189.25_189.25 T_java.io.File))) (?v_34 (isAllocated RES_189.25_189.25 after_189.25_189.25)) (?v_35 (= EC_189.25_189.25 ecReturn)) (?v_36 (= (select1 owner_6.35.28 RES_189.25_189.25) null)) (?v_37 (= (typeof RES_189.25_189.25) T_java.io.File)) (?v_38 (< after_189.25_189.25 after_189.12_189.12)) (?v_7 (not (= RES_189.12_189.12 null))) (?v_39 (not (isAllocated RES_189.12_189.12 after_189.25_189.25))) (?v_40 (= Smt.true (is RES_189.12_189.12 T_javafe.filespace.FileTree))) (?v_41 (isAllocated RES_189.12_189.12 after_189.12_189.12)) (?v_42 (= EC_189.12_189.12 ecReturn)) (?v_43 (= (select1 owner_6.35.28 RES_189.12_189.12) null)) (?v_44 (= (typeof RES_189.12_189.12) T_javafe.filespace.FileTree)) (?v_45 (< after_189.12_189.12 after_192.22_192.22)) (?v_9 (not (= RES_192.22_192.22 null))) (?v_46 (not (isAllocated RES_192.22_192.22 after_189.12_189.12))) (?v_47 (= Smt.true (is RES_192.22_192.22 T_javafe.filespace.TreeWalker))) (?v_48 (isAllocated RES_192.22_192.22 after_192.22_192.22)) (?v_49 (= EC_192.22_192.22 ecReturn)) (?v_50 (= (select1 owner_6.35.28 RES_192.22_192.22) null)) (?v_51 (= (typeof RES_192.22_192.22) T_javafe.filespace.TreeWalker)) (?v_52 (= EC_192.22_192.22 EC_loopold)) (?v_53 (= moreElements_5.58.29 moreElements_loopold_5.58.29))) (let ((?v_12 (not ?v_9)) (?v_17 (= Smt.true (is RES_192.1_0_192.45_192.45 T_boolean))) (?v_10 (= EC_192.1_0_192.45_192.45 ecReturn)) (?v_11 (= Smt.true RES_192.1_0_192.45_192.45)) (?v_13 (= Smt.true (select1 moreElements_5.58.29 RES_192.22_192.22)))) (let ((?v_18 (=> ?v_10 (= ?v_11 ?v_13))) (?v_19 (= moreElements_192.1_0_193.28_5.89.17 (store1 moreElements_5.58.29 RES_192.22_192.22 after_193.28_192.1_0_193.28_5.89.17))) (?v_20 (= moreElements_192.1_0_193.28_5.89.17 (asField moreElements_192.1_0_193.28_5.89.17 T_boolean))) (?v_21 (= Smt.true (is RES_192.1_0_193.28_193.28 T_java.lang.Object))) (?v_22 (isAllocated RES_192.1_0_193.28_193.28 after_192.22_192.22)) (?v_14 (= EC_192.1_0_193.28_193.28 ecReturn)) (?v_15 (= RES_192.1_0_193.28_193.28 null))) (let ((?v_23 (=> ?v_14 (or (subtypes (typeof RES_192.1_0_193.28_193.28) (select1 elementType_5.74.27 RES_192.22_192.22)) ?v_15))) (?v_24 (=> (and ?v_14 (not (= Smt.true (select1 returnsNull_5.79.29 RES_192.22_192.22)))) (not ?v_15))) (?v_25 (forall ((?brokenObj_11_ Int)) (let ((?v_65 (= Smt.true (select1 lookAheadValid_4.40.20 ?brokenObj_11_))) (?v_66 (not (= (select1 lookAhead_4.43.19 ?brokenObj_11_) null)))) (=> (and (= Smt.true (is ?brokenObj_11_ T_javafe.filespace.LookAheadEnum)) (not (= ?brokenObj_11_ null)) (=> ?v_65 (= (= Smt.true (select1 moreElements_5.58.29 ?brokenObj_11_)) ?v_66)) ?v_65) (= (= Smt.true (select1 moreElements_192.1_0_193.28_5.89.17 ?brokenObj_11_)) ?v_66))))) (?v_16 (= Smt.true (is RES_192.1_0_193.28_193.28 T_javafe.filespace.Tree))) (?v_26 (= subtree_192.1_0_193.5 (cast RES_192.1_0_193.28_193.28 T_javafe.filespace.Tree))) (?v_27 (not (= subtree_192.1_0_193.5 null))) (?v_54 (= Smt.true (is RES_192.1_0_194.32_194.32 T_java.lang.String))) (?v_55 (isAllocated RES_192.1_0_194.32_194.32 after_192.22_192.22)) (?v_28 (= EC_192.1_0_194.32_194.32 ecReturn))) (let ((?v_56 (=> ?v_28 (not (= RES_192.1_0_194.32_194.32 null)))) (?v_57 (= arg0_194.16_192.1_0_194.16_17.. (stringCat RES_192.1_0_194.32_194.32 S_194.56))) (?v_58 (= EC_192.1_0_194.16_194.16 ecReturn)) (?v_59 (= EC_192.1_1_192.45_192.45 ecReturn)) (?v_60 (= Smt.true RES_192.1_1_192.45_192.45))) (let ((?v_62 (or (and ?v_8 ?v_9 ?v_17 ?v_10 ?v_18 (not ?v_11)) (and ?v_8 ?v_9 ?v_17 ?v_10 ?v_18 ?v_11 ?v_9 ?v_13 ?v_19 ?v_20 ?v_21 ?v_22 ?v_14 ?v_23 ?v_24 ?v_25 ?v_16 ?v_26 ?v_27 ?v_54 ?v_55 ?v_28 ?v_56 ?v_57 ?v_58 ?v_8 ?v_9 (= Smt.true (is RES_192.1_1_192.45_192.45 T_boolean)) ?v_59 (=> ?v_59 (= ?v_60 (= Smt.true (select1 moreElements_192.1_0_193.28_5.89.17 RES_192.22_192.22)))) (not ?v_60)))) (?v_63 (= L_192.1 L_192.1)) (?v_64 (= EC_182.16 ecReturn))) (not (=> (and (distinct ecReturn L_192.1) (not (= S_194.56 null)) (= (typeof S_194.56) T_java.lang.String)) (=> (and (= elementType_pre_5.74.27 elementType_5.74.27) (= elementType_5.74.27 (asField elementType_5.74.27 T_.TYPE)) (= owner_pre_6.35.28 owner_6.35.28) (= owner_6.35.28 (asField owner_6.35.28 T_java.lang.Object)) (< (fClosedTime owner_6.35.28) alloc) (= list_pre_210.13 list_210.13) (= list_210.13 (asField list_210.13 (array T_java.lang.Object))) (< (fClosedTime list_210.13) alloc) (= lookAheadValid_pre_4.40.20 lookAheadValid_4.40.20) (= lookAheadValid_4.40.20 (asField lookAheadValid_4.40.20 T_boolean)) (= remainingNodes_pre_48.26 remainingNodes_48.26) (= remainingNodes_48.26 (asField remainingNodes_48.26 T_java.util.Enumeration)) (< (fClosedTime remainingNodes_48.26) alloc) (= out_pre_16.83.49 out_16.83.49) (= Smt.true (is out_16.83.49 T_java.io.PrintStream)) (isAllocated out_16.83.49 alloc) (not (= out_16.83.49 null)) (= lookAhead_pre_4.43.19 lookAhead_4.43.19) (= lookAhead_4.43.19 (asField lookAhead_4.43.19 T_java.lang.Object)) (< (fClosedTime lookAhead_4.43.19) alloc) (= returnsNull_pre_5.79.29 returnsNull_5.79.29) (= returnsNull_5.79.29 (asField returnsNull_5.79.29 T_boolean)) (= moreElements_pre_5.58.29 moreElements_5.58.29) (= moreElements_5.58.29 (asField moreElements_5.58.29 T_boolean)) (= remainingChildren_pre_39.26 remainingChildren_39.26) (= remainingChildren_39.26 (asField remainingChildren_39.26 T_java.util.Enumeration)) (< (fClosedTime remainingChildren_39.26) alloc) (= elems_pre elems) (= elems (asElems elems)) (< (eClosedTime elems) alloc) (= LS (asLockSet LS)) (= alloc_pre alloc)) (not (and (= Smt.true (is args_181.36 (array T_java.lang.String))) (isAllocated args_181.36 alloc) (nonnullelements args_181.36 elems) (forall ((?brokenObj Int)) (=> (and (= Smt.true (is ?brokenObj T_javafe.filespace.TreeWalker)) (not (= ?brokenObj null))) (= (select1 elementType_5.74.27 (select1 remainingChildren_39.26 ?brokenObj)) T_javafe.filespace.Tree))) (forall ((?brokenObj_1_ Int)) (=> (and (= Smt.true (is ?brokenObj_1_ T_javafe.filespace.TreeWalker)) (not (= ?brokenObj_1_ null))) (not (= (select1 remainingChildren_39.26 ?brokenObj_1_) null)))) (forall ((?brokenObj_2_ Int)) (=> (and (= Smt.true (is ?brokenObj_2_ T_javafe.filespace.TreeWalker)) (not (= ?brokenObj_2_ null))) (not (= Smt.true (select1 returnsNull_5.79.29 ?brokenObj_2_))))) (forall ((?brokenObj_3_ Int)) (=> (and (= Smt.true (is ?brokenObj_3_ T_javafe.filespace.TreeWalker)) (not (= ?brokenObj_3_ null))) (= (select1 elementType_5.74.27 (select1 remainingNodes_48.26 ?brokenObj_3_)) T_javafe.filespace.Tree))) (forall ((?brokenObj_4_ Int)) (=> (and (= Smt.true (is ?brokenObj_4_ T_javafe.filespace.LookAheadEnum)) (not (= ?brokenObj_4_ null)) (= Smt.true (select1 lookAheadValid_4.40.20 ?brokenObj_4_))) (= (= Smt.true (select1 moreElements_5.58.29 ?brokenObj_4_)) (not (= (select1 lookAhead_4.43.19 ?brokenObj_4_) null))))) (forall ((?brokenObj_5_ Int)) (=> (and (= Smt.true (is ?brokenObj_5_ T_javafe.filespace.TreeWalker)) (not (= ?brokenObj_5_ null))) (not (= (select1 remainingNodes_48.26 ?brokenObj_5_) null)))) (forall ((?brokenObj_6_ Int)) (=> (and (= Smt.true (is ?brokenObj_6_ T_javafe.filespace.TreeWalker)) (not (= ?brokenObj_6_ null))) (not (= Smt.true (select1 returnsNull_5.79.29 (select1 remainingChildren_39.26 ?brokenObj_6_)))))) (forall ((?brokenObj_7_ Int)) (=> (and (= Smt.true (is ?brokenObj_7_ T_javafe.filespace.TreeWalker)) (not (= ?brokenObj_7_ null))) (= (select1 elementType_5.74.27 ?brokenObj_7_) T_javafe.filespace.Tree))) (forall ((?brokenObj_8_ Int)) (let ((?v_67 (select1 lookAhead_4.43.19 ?brokenObj_8_))) (=> (and (= Smt.true (is ?brokenObj_8_ T_javafe.filespace.LookAheadEnum)) (not (= ?brokenObj_8_ null))) (or (subtypes (typeof ?v_67) (select1 elementType_5.74.27 ?brokenObj_8_)) (= ?v_67 null))))) (forall ((?brokenObj_9_ Int)) (=> (and (= Smt.true (is ?brokenObj_9_ T_javafe.filespace.TreeWalker)) (not (= ?brokenObj_9_ null))) (not (= Smt.true (select1 returnsNull_5.79.29 (select1 remainingNodes_48.26 ?brokenObj_9_)))))) (forall ((?brokenObj_10_ Int)) (=> (and (= Smt.true (is ?brokenObj_10_ T_javafe.filespace.LookAheadEnum)) (not (= ?brokenObj_10_ null))) (not (= Smt.true (select1 returnsNull_5.79.29 ?brokenObj_10_))))) (or ?v_1 (and ?v_0 ?v_29 ?v_8 (or ?v_1 (and ?v_0 (or (not ?v_2) (and ?v_2 (or (not ?v_4) (and ?v_4 ?v_30 (or (not ?v_5) (and ?v_5 ?v_31 ?v_6 ?v_32 ?v_33 ?v_34 ?v_35 ?v_36 ?v_37 (or (not ?v_6) (and ?v_6 ?v_38 ?v_7 ?v_39 ?v_40 ?v_41 ?v_42 ?v_43 ?v_44 (or (not ?v_7) (and ?v_7 ?v_45 ?v_9 ?v_46 ?v_47 ?v_48 ?v_49 ?v_50 ?v_51 ?v_52 ?v_53 (or (and ?v_8 (or ?v_12 (and ?v_9 ?v_17 ?v_10 ?v_18 ?v_11 (or ?v_12 (and ?v_9 (or (not ?v_13) (and ?v_13 ?v_19 ?v_20 ?v_21 ?v_22 ?v_14 ?v_23 ?v_24 ?v_25 (or (not ?v_16) (and ?v_16 ?v_26 (not ?v_27)))))))))) (and ?v_8 ?v_9 ?v_17 ?v_10 ?v_18 ?v_11 ?v_9 ?v_13 ?v_19 ?v_20 ?v_21 ?v_22 ?v_14 ?v_23 ?v_24 ?v_25 ?v_16 ?v_26 ?v_27 ?v_54 ?v_55 ?v_28 ?v_56 ?v_57 ?v_58 ?v_8 ?v_12))))))))))))))) (and (or (and ?v_0 ?v_29 ?v_8 ?v_0 ?v_2 ?v_4 ?v_30 ?v_5 ?v_31 ?v_6 ?v_32 ?v_33 ?v_34 ?v_35 ?v_36 ?v_37 ?v_6 ?v_38 ?v_7 ?v_39 ?v_40 ?v_41 ?v_42 ?v_43 ?v_44 ?v_7 ?v_45 ?v_9 ?v_46 ?v_47 ?v_48 ?v_49 ?v_50 ?v_51 ?v_52 ?v_53 ?v_62 ?v_63 (= EC L_192.1) ?v_64) (and ?v_0 (or (and ?v_61 ?v_8 (= EC_183.16_183.16 ecReturn) ?v_8 (= EC_182.16_1_ ecReturn)) (and ?v_29 ?v_8 ?v_0 ?v_2 ?v_4 ?v_30 ?v_5 ?v_31 ?v_6 ?v_32 ?v_33 ?v_34 ?v_35 ?v_36 ?v_37 ?v_6 ?v_38 ?v_7 ?v_39 ?v_40 ?v_41 ?v_42 ?v_43 ?v_44 ?v_7 ?v_45 ?v_9 ?v_46 ?v_47 ?v_48 ?v_49 ?v_50 ?v_51 ?v_52 ?v_53 ?v_62 (not ?v_63) (= EC_182.16_1_ L_192.1))) (= EC_182.16 EC_182.16_1_))) (not ?v_64)))))))))))))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/qcft-smtlib3dbc51.smt2 b/test/regress/regress1/quantifiers/qcft-smtlib3dbc51.smt2 new file mode 100644 index 000000000..6874c522e --- /dev/null +++ b/test/regress/regress1/quantifiers/qcft-smtlib3dbc51.smt2 @@ -0,0 +1,233 @@ +; COMMAND-LINE: --qcf-tconstraint +; EXPECT: unsat +(set-logic AUFLIRA) +(set-info :source |http://proval.lri.fr/why-benchmarks |) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-sort Unit 0) +(declare-sort c_unique 0) +(declare-sort c_ssorted 0) +(declare-sort c_type 0) +(declare-sort c_Boolean 0) +(declare-fun c_sort (c_type c_unique) c_ssorted) +(declare-fun c_Boolean_true () c_Boolean) +(declare-fun c_Boolean_false () c_Boolean) +(assert (forall ((?b_22_1 c_Boolean)) (or (= c_Boolean_true ?b_22_1) (= c_Boolean_false ?b_22_1)))) +(assert (not (= c_Boolean_true c_Boolean_false))) +(declare-fun int2U (Int) c_unique) +(declare-fun ss2Int (c_ssorted) Int) +(declare-fun real2U (Real) c_unique) +(declare-fun ss2Real (c_ssorted) Real) +(declare-fun bool2U (c_Boolean) c_unique) +(declare-fun ss2Bool (c_ssorted) c_Boolean) +(declare-fun c_int () c_type) +(declare-fun c_bool () c_type) +(declare-fun c_real () c_type) +(declare-fun c_unit () c_type) +(declare-fun c_ref (c_unique) c_unique) +(assert (forall ((?t_21_2 c_type)) (forall ((?x_20_3 c_unique)) (forall ((?y_19_4 c_unique)) (=> (= (c_sort ?t_21_2 ?x_20_3) (c_sort ?t_21_2 ?y_19_4)) (= ?x_20_3 ?y_19_4)))))) +(assert (forall ((?x_18_5 Int)) (= (ss2Int (c_sort c_int (int2U ?x_18_5))) ?x_18_5))) +(assert (forall ((?x_17_6 Int)) (forall ((?y_16_7 Int)) (=> (= (int2U ?x_17_6) (int2U ?y_16_7)) (= ?x_17_6 ?y_16_7))))) +(assert (forall ((?x_15_8 Real)) (forall ((?y_14_9 Real)) (=> (= (real2U ?x_15_8) (real2U ?y_14_9)) (= ?x_15_8 ?y_14_9))))) +(assert (forall ((?x_13_10 c_Boolean)) (forall ((?y_12_11 c_Boolean)) (=> (= (bool2U ?x_13_10) (bool2U ?y_12_11)) (= ?x_13_10 ?y_12_11))))) +(assert (forall ((?x_11_12 c_ssorted)) (forall ((?y_10_13 c_ssorted)) (=> (= (ss2Int ?x_11_12) (ss2Int ?y_10_13)) (= ?x_11_12 ?y_10_13))))) +(assert (forall ((?x_9_14 c_ssorted)) (forall ((?y_8_15 c_ssorted)) (=> (= (ss2Real ?x_9_14) (ss2Real ?y_8_15)) (= ?x_9_14 ?y_8_15))))) +(assert (forall ((?x_7_16 c_ssorted)) (forall ((?y_6_17 c_ssorted)) (=> (= (ss2Bool ?x_7_16) (ss2Bool ?y_6_17)) (= ?x_7_16 ?y_6_17))))) +(assert (forall ((?x_5_18 Real)) (= (ss2Real (c_sort c_real (real2U ?x_5_18))) ?x_5_18))) +(assert (forall ((?x_4_19 c_Boolean)) (= (ss2Bool (c_sort c_bool (bool2U ?x_4_19))) ?x_4_19))) +(assert (forall ((?x_3_20 c_unique)) (= (int2U (ss2Int (c_sort c_int ?x_3_20))) ?x_3_20))) +(assert (forall ((?x_2_21 c_unique)) (= (real2U (ss2Real (c_sort c_real ?x_2_21))) ?x_2_21))) +(assert (forall ((?x_1_22 c_unique)) (= (bool2U (ss2Bool (c_sort c_bool ?x_1_22))) ?x_1_22))) +(declare-fun eq_int (Int Int) Bool) +(declare-fun neq_int (Int Int) Bool) +(declare-fun lt_int_bool (Int Int) c_Boolean) +(declare-fun le_int_bool (Int Int) c_Boolean) +(declare-fun gt_int_bool (Int Int) c_Boolean) +(declare-fun ge_int_bool (Int Int) c_Boolean) +(declare-fun eq_int_bool (Int Int) c_Boolean) +(declare-fun neq_int_bool (Int Int) c_Boolean) +(assert (forall ((?x_40_23 Int)) (forall ((?y_39_24 Int)) (= (= (lt_int_bool ?x_40_23 ?y_39_24) c_Boolean_true) (< ?x_40_23 ?y_39_24))))) +(assert (forall ((?x_42_25 Int)) (forall ((?y_41_26 Int)) (= (= (le_int_bool ?x_42_25 ?y_41_26) c_Boolean_true) (<= ?x_42_25 ?y_41_26))))) +(assert (forall ((?x_44_27 Int)) (forall ((?y_43_28 Int)) (= (= (gt_int_bool ?x_44_27 ?y_43_28) c_Boolean_true) (> ?x_44_27 ?y_43_28))))) +(assert (forall ((?x_46_29 Int)) (forall ((?y_45_30 Int)) (= (= (ge_int_bool ?x_46_29 ?y_45_30) c_Boolean_true) (>= ?x_46_29 ?y_45_30))))) +(assert (forall ((?x_48_31 Int)) (forall ((?y_47_32 Int)) (= (= (eq_int_bool ?x_48_31 ?y_47_32) c_Boolean_true) (= ?x_48_31 ?y_47_32))))) +(assert (forall ((?x_50_33 Int)) (forall ((?y_49_34 Int)) (= (= (neq_int_bool ?x_50_33 ?y_49_34) c_Boolean_true) (not (= ?x_50_33 ?y_49_34)))))) +(declare-fun add_real (Real Real) Real) +(declare-fun sub_real (Real Real) Real) +(declare-fun mul_real (Real Real) Real) +(declare-fun div_real (Real Real) Real) +(declare-fun pow_real (Real Real) Real) +(declare-fun neg_real (Real) Real) +(declare-fun abs_real (Real) Real) +(declare-fun sqrt_real (Real) Real) +(declare-fun real_of_int (Int) Real) +(declare-fun int_of_real (Real) Int) +(declare-fun lt_real (Real Real) Bool) +(declare-fun le_real (Real Real) Bool) +(declare-fun gt_real (Real Real) Bool) +(declare-fun ge_real (Real Real) Bool) +(declare-fun eq_real (Real Real) Bool) +(declare-fun neq_real (Real Real) Bool) +(declare-fun eq_bool (c_Boolean c_Boolean) Bool) +(declare-fun neq_bool (c_Boolean c_Boolean) Bool) +(declare-fun eq_unit (c_ssorted c_ssorted) Bool) +(declare-fun neq_unit (c_ssorted c_ssorted) Bool) +(declare-fun smtlib__ite (c_Boolean c_ssorted c_ssorted) c_unique) +(assert (forall ((?t_1_76_35 c_type)) (forall ((?x_75_36 c_unique)) (forall ((?y_74_37 c_unique)) (= (smtlib__ite c_Boolean_true (c_sort ?t_1_76_35 ?x_75_36) (c_sort ?t_1_76_35 ?y_74_37)) ?x_75_36))))) +(assert (forall ((?t_2_79_38 c_type)) (forall ((?x_78_39 c_unique)) (forall ((?y_77_40 c_unique)) (= (smtlib__ite c_Boolean_false (c_sort ?t_2_79_38 ?x_78_39) (c_sort ?t_2_79_38 ?y_77_40)) ?y_77_40))))) +(declare-fun bw_compl (Int) Int) +(declare-fun bw_and (Int Int) Int) +(declare-fun bw_xor (Int Int) Int) +(declare-fun bw_or (Int Int) Int) +(declare-fun lsl (Int Int) Int) +(declare-fun lsr (Int Int) Int) +(declare-fun non_int (Int) Int) +(declare-fun type_pointer (c_type) c_type) +(declare-fun type_addr (c_type) c_type) +(declare-fun type_alloc_table () c_type) +(declare-fun block_length (c_ssorted c_ssorted) Int) +(declare-fun base_addr (c_ssorted) c_unique) +(declare-fun offset (c_ssorted) Int) +(declare-fun shift (c_ssorted Int) c_unique) +(declare-fun sub_pointer (c_ssorted c_ssorted) Int) +(declare-fun lt_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_3_88_41 c_type)) (forall ((?p1_87_42 c_unique)) (forall ((?p2_86_43 c_unique)) (let ((?v_0 (type_pointer ?t_3_88_41))) (let ((?v_1 (c_sort ?v_0 ?p1_87_42)) (?v_2 (c_sort ?v_0 ?p2_86_43))) (= (lt_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (< (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun le_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_4_91_44 c_type)) (forall ((?p1_90_45 c_unique)) (forall ((?p2_89_46 c_unique)) (let ((?v_0 (type_pointer ?t_4_91_44))) (let ((?v_1 (c_sort ?v_0 ?p1_90_45)) (?v_2 (c_sort ?v_0 ?p2_89_46))) (= (le_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (<= (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun gt_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_5_94_47 c_type)) (forall ((?p1_93_48 c_unique)) (forall ((?p2_92_49 c_unique)) (let ((?v_0 (type_pointer ?t_5_94_47))) (let ((?v_1 (c_sort ?v_0 ?p1_93_48)) (?v_2 (c_sort ?v_0 ?p2_92_49))) (= (gt_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (> (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun ge_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_6_97_50 c_type)) (forall ((?p1_96_51 c_unique)) (forall ((?p2_95_52 c_unique)) (let ((?v_0 (type_pointer ?t_6_97_50))) (let ((?v_1 (c_sort ?v_0 ?p1_96_51)) (?v_2 (c_sort ?v_0 ?p2_95_52))) (= (ge_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (>= (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun valid (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_7_104_53 c_type)) (forall ((?a_103_54 c_unique)) (forall ((?p_102_55 c_unique)) (let ((?v_2 (c_sort type_alloc_table ?a_103_54)) (?v_0 (c_sort (type_pointer ?t_7_104_53) ?p_102_55))) (let ((?v_1 (offset ?v_0))) (= (valid ?v_2 ?v_0) (and (<= 0 ?v_1) (< ?v_1 (block_length ?v_2 ?v_0)))))))))) +(declare-fun valid_index (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_8_108_56 c_type)) (forall ((?a_107_57 c_unique)) (forall ((?p_106_58 c_unique)) (forall ((?i_105_59 Int)) (let ((?v_2 (c_sort type_alloc_table ?a_107_57)) (?v_0 (c_sort (type_pointer ?t_8_108_56) ?p_106_58))) (let ((?v_1 (+ (offset ?v_0) ?i_105_59))) (= (valid_index ?v_2 ?v_0 ?i_105_59) (and (<= 0 ?v_1) (< ?v_1 (block_length ?v_2 ?v_0))))))))))) +(declare-fun valid_range (c_ssorted c_ssorted Int Int) Bool) +(assert (forall ((?t_9_113_60 c_type)) (forall ((?a_112_61 c_unique)) (forall ((?p_111_62 c_unique)) (forall ((?i_110_63 Int)) (forall ((?j_109_64 Int)) (let ((?v_2 (c_sort type_alloc_table ?a_112_61)) (?v_0 (c_sort (type_pointer ?t_9_113_60) ?p_111_62))) (let ((?v_1 (offset ?v_0))) (= (valid_range ?v_2 ?v_0 ?i_110_63 ?j_109_64) (and (<= 0 (+ ?v_1 ?i_110_63)) (< (+ ?v_1 ?j_109_64) (block_length ?v_2 ?v_0)))))))))))) +(assert (forall ((?t_10_116_65 c_type)) (forall ((?p_115_66 c_unique)) (forall ((?i_114_67 Int)) (let ((?v_0 (type_pointer ?t_10_116_65))) (let ((?v_1 (c_sort ?v_0 ?p_115_66))) (= (offset (c_sort ?v_0 (shift ?v_1 ?i_114_67))) (+ (offset ?v_1) ?i_114_67)))))))) +(assert (forall ((?t_11_118_68 c_type)) (forall ((?p_117_69 c_unique)) (= (shift (c_sort (type_pointer ?t_11_118_68) ?p_117_69) 0) ?p_117_69)))) +(assert (forall ((?t_12_122_70 c_type)) (forall ((?p_121_71 c_unique)) (forall ((?i_120_72 Int)) (forall ((?j_119_73 Int)) (let ((?v_0 (type_pointer ?t_12_122_70))) (let ((?v_1 (c_sort ?v_0 ?p_121_71))) (= (shift (c_sort ?v_0 (shift ?v_1 ?i_120_72)) ?j_119_73) (shift ?v_1 (+ ?i_120_72 ?j_119_73)))))))))) +(assert (forall ((?t_13_125_74 c_type)) (forall ((?p_124_75 c_unique)) (forall ((?i_123_76 Int)) (let ((?v_0 (type_pointer ?t_13_125_74))) (let ((?v_1 (c_sort ?v_0 ?p_124_75))) (= (base_addr (c_sort ?v_0 (shift ?v_1 ?i_123_76))) (base_addr ?v_1)))))))) +(assert (forall ((?t_14_129_77 c_type)) (forall ((?a_128_78 c_unique)) (forall ((?p_127_79 c_unique)) (forall ((?i_126_80 Int)) (let ((?v_1 (c_sort type_alloc_table ?a_128_78)) (?v_0 (type_pointer ?t_14_129_77))) (let ((?v_2 (c_sort ?v_0 ?p_127_79))) (= (block_length ?v_1 (c_sort ?v_0 (shift ?v_2 ?i_126_80))) (block_length ?v_1 ?v_2))))))))) +(assert (forall ((?t_15_133_81 c_type)) (forall ((?a_132_82 c_unique)) (forall ((?p1_131_83 c_unique)) (forall ((?p2_130_84 c_unique)) (let ((?v_0 (type_pointer ?t_15_133_81))) (let ((?v_1 (c_sort ?v_0 ?p1_131_83)) (?v_3 (c_sort ?v_0 ?p2_130_84)) (?v_2 (c_sort type_alloc_table ?a_132_82))) (=> (= (base_addr ?v_1) (base_addr ?v_3)) (= (block_length ?v_2 ?v_1) (block_length ?v_2 ?v_3)))))))))) +(assert (forall ((?t_16_136_85 c_type)) (forall ((?p1_135_86 c_unique)) (forall ((?p2_134_87 c_unique)) (let ((?v_0 (type_pointer ?t_16_136_85))) (let ((?v_1 (c_sort ?v_0 ?p1_135_86)) (?v_2 (c_sort ?v_0 ?p2_134_87))) (=> (and (= (base_addr ?v_1) (base_addr ?v_2)) (= (offset ?v_1) (offset ?v_2))) (= ?p1_135_86 ?p2_134_87)))))))) +(assert (forall ((?t_17_139_88 c_type)) (forall ((?p1_138_89 c_unique)) (forall ((?p2_137_90 c_unique)) (let ((?v_0 (type_pointer ?t_17_139_88))) (let ((?v_1 (c_sort ?v_0 ?p1_138_89)) (?v_2 (c_sort ?v_0 ?p2_137_90))) (=> (= ?p1_138_89 ?p2_137_90) (and (= (base_addr ?v_1) (base_addr ?v_2)) (= (offset ?v_1) (offset ?v_2)))))))))) +(assert (forall ((?t_18_144_91 c_type)) (forall ((?p1_143_92 c_unique)) (forall ((?p2_142_93 c_unique)) (forall ((?i_141_94 Int)) (forall ((?j_140_95 Int)) (let ((?v_0 (type_pointer ?t_18_144_91))) (let ((?v_1 (c_sort ?v_0 ?p1_143_92)) (?v_2 (c_sort ?v_0 ?p2_142_93))) (=> (not (= (base_addr ?v_1) (base_addr ?v_2))) (not (= (shift ?v_1 ?i_141_94) (shift ?v_2 ?j_140_95)))))))))))) +(assert (forall ((?t_19_149_96 c_type)) (forall ((?p1_148_97 c_unique)) (forall ((?p2_147_98 c_unique)) (forall ((?i_146_99 Int)) (forall ((?j_145_100 Int)) (let ((?v_0 (type_pointer ?t_19_149_96))) (let ((?v_1 (c_sort ?v_0 ?p1_148_97)) (?v_2 (c_sort ?v_0 ?p2_147_98))) (=> (not (= (+ (offset ?v_1) ?i_146_99) (+ (offset ?v_2) ?j_145_100))) (not (= (shift ?v_1 ?i_146_99) (shift ?v_2 ?j_145_100)))))))))))) +(assert (forall ((?t_20_154_101 c_type)) (forall ((?p1_153_102 c_unique)) (forall ((?p2_152_103 c_unique)) (forall ((?i_151_104 Int)) (forall ((?j_150_105 Int)) (let ((?v_0 (type_pointer ?t_20_154_101))) (let ((?v_1 (c_sort ?v_0 ?p1_153_102)) (?v_2 (c_sort ?v_0 ?p2_152_103))) (=> (= (base_addr ?v_1) (base_addr ?v_2)) (=> (= (+ (offset ?v_1) ?i_151_104) (+ (offset ?v_2) ?j_150_105)) (= (shift ?v_1 ?i_151_104) (shift ?v_2 ?j_150_105)))))))))))) +(assert (forall ((?t_21_158_106 c_type)) (forall ((?a_157_107 c_unique)) (forall ((?p_156_108 c_unique)) (forall ((?i_155_109 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_157_107)) (?v_1 (type_pointer ?t_21_158_106))) (let ((?v_2 (c_sort ?v_1 ?p_156_108))) (=> (valid_index ?v_0 ?v_2 ?i_155_109) (valid ?v_0 (c_sort ?v_1 (shift ?v_2 ?i_155_109))))))))))) +(assert (forall ((?t_22_164_110 c_type)) (forall ((?a_163_111 c_unique)) (forall ((?p_162_112 c_unique)) (forall ((?i_161_113 Int)) (forall ((?j_160_114 Int)) (forall ((?k_159_115 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_163_111)) (?v_1 (type_pointer ?t_22_164_110))) (let ((?v_2 (c_sort ?v_1 ?p_162_112))) (=> (valid_range ?v_0 ?v_2 ?i_161_113 ?j_160_114) (=> (and (<= ?i_161_113 ?k_159_115) (<= ?k_159_115 ?j_160_114)) (valid ?v_0 (c_sort ?v_1 (shift ?v_2 ?k_159_115)))))))))))))) +(assert (forall ((?t_23_169_116 c_type)) (forall ((?a_168_117 c_unique)) (forall ((?p_167_118 c_unique)) (forall ((?i_166_119 Int)) (forall ((?j_165_120 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_168_117)) (?v_1 (c_sort (type_pointer ?t_23_169_116) ?p_167_118))) (=> (valid_range ?v_0 ?v_1 ?i_166_119 ?j_165_120) (=> (and (<= ?i_166_119 0) (<= 0 ?j_165_120)) (valid ?v_0 ?v_1)))))))))) +(assert (forall ((?t_24_175_121 c_type)) (forall ((?a_174_122 c_unique)) (forall ((?p_173_123 c_unique)) (forall ((?i_172_124 Int)) (forall ((?j_171_125 Int)) (forall ((?k_170_126 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_174_122)) (?v_1 (c_sort (type_pointer ?t_24_175_121) ?p_173_123))) (=> (valid_range ?v_0 ?v_1 ?i_172_124 ?j_171_125) (=> (and (<= ?i_172_124 ?k_170_126) (<= ?k_170_126 ?j_171_125)) (valid_index ?v_0 ?v_1 ?k_170_126))))))))))) +(assert (forall ((?t_25_178_127 c_type)) (forall ((?p1_177_128 c_unique)) (forall ((?p2_176_129 c_unique)) (let ((?v_0 (type_pointer ?t_25_178_127))) (let ((?v_1 (c_sort ?v_0 ?p1_177_128)) (?v_2 (c_sort ?v_0 ?p2_176_129))) (=> (= (base_addr ?v_1) (base_addr ?v_2)) (= (sub_pointer ?v_1 ?v_2) (- (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun type_memory (c_type c_type) c_type) +(declare-fun acc (c_ssorted c_ssorted) c_unique) +(declare-fun upd (c_ssorted c_ssorted c_ssorted) c_unique) +(assert (forall ((?t_27_212_130 c_type)) (forall ((?t_26_211_131 c_type)) (forall ((?m_210_132 c_unique)) (forall ((?p_209_133 c_unique)) (forall ((?a_208_134 c_unique)) (let ((?v_0 (type_memory ?t_26_211_131 ?t_27_212_130)) (?v_1 (c_sort (type_pointer ?t_27_212_130) ?p_209_133))) (= (acc (c_sort ?v_0 (upd (c_sort ?v_0 ?m_210_132) ?v_1 (c_sort ?t_26_211_131 ?a_208_134))) ?v_1) ?a_208_134)))))))) +(assert (forall ((?t_29_218_135 c_type)) (forall ((?t_28_217_136 c_type)) (forall ((?m_216_137 c_unique)) (forall ((?p1_215_138 c_unique)) (forall ((?p2_214_139 c_unique)) (forall ((?a_213_140 c_unique)) (let ((?v_0 (type_memory ?t_28_217_136 ?t_29_218_135))) (let ((?v_2 (c_sort ?v_0 ?m_216_137)) (?v_1 (type_pointer ?t_29_218_135))) (let ((?v_3 (c_sort ?v_1 ?p2_214_139))) (=> (not (= ?p1_215_138 ?p2_214_139)) (= (acc (c_sort ?v_0 (upd ?v_2 (c_sort ?v_1 ?p1_215_138) (c_sort ?t_28_217_136 ?a_213_140))) ?v_3) (acc ?v_2 ?v_3))))))))))))) +(assert (not (= c_Boolean_false c_Boolean_true))) +(declare-fun type_pset (c_type) c_type) +(declare-fun pset_empty () c_unique) +(declare-fun pset_singleton (c_ssorted) c_unique) +(declare-fun pset_star (c_ssorted c_ssorted) c_unique) +(declare-fun pset_all (c_ssorted) c_unique) +(declare-fun pset_range (c_ssorted Int Int) c_unique) +(declare-fun pset_range_left (c_ssorted Int) c_unique) +(declare-fun pset_range_right (c_ssorted Int) c_unique) +(declare-fun pset_acc_all (c_ssorted c_ssorted) c_unique) +(declare-fun pset_acc_range (c_ssorted c_ssorted Int Int) c_unique) +(declare-fun pset_acc_range_left (c_ssorted c_ssorted Int) c_unique) +(declare-fun pset_acc_range_right (c_ssorted c_ssorted Int) c_unique) +(declare-fun pset_union (c_ssorted c_ssorted) c_unique) +(declare-fun not_in_pset (c_ssorted c_ssorted) Bool) +(declare-fun not_assigns (c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?t_31_225_141 c_type)) (forall ((?t_30_224_142 c_type)) (forall ((?a_223_143 c_unique)) (forall ((?m1_222_144 c_unique)) (forall ((?m2_221_145 c_unique)) (forall ((?l_220_146 c_unique)) (let ((?v_0 (type_memory ?t_30_224_142 ?t_31_225_141))) (= (not_assigns (c_sort type_alloc_table ?a_223_143) (c_sort ?v_0 ?m1_222_144) (c_sort ?v_0 ?m2_221_145) (c_sort (type_pset ?t_31_225_141) ?l_220_146)) (forall ((?p_219_147 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_31_225_141) ?p_219_147))) (=> (valid (c_sort type_alloc_table ?a_223_143) ?v_1) (=> (not_in_pset ?v_1 (c_sort (type_pset ?t_31_225_141) ?l_220_146)) (= (acc (c_sort ?v_0 ?m2_221_145) ?v_1) (acc (c_sort ?v_0 ?m1_222_144) ?v_1))))))))))))))) +(assert (forall ((?t_32_227_148 c_type)) (forall ((?p_226_149 c_unique)) (not_in_pset (c_sort (type_pointer ?t_32_227_148) ?p_226_149) (c_sort (type_pset ?t_32_227_148) pset_empty))))) +(assert (forall ((?t_33_230_150 c_type)) (forall ((?p1_229_151 c_unique)) (forall ((?p2_228_152 c_unique)) (let ((?v_0 (type_pointer ?t_33_230_150))) (=> (not (= ?p1_229_151 ?p2_228_152)) (not_in_pset (c_sort ?v_0 ?p1_229_151) (c_sort (type_pset ?t_33_230_150) (pset_singleton (c_sort ?v_0 ?p2_228_152)))))))))) +(assert (forall ((?t_34_233_153 c_type)) (forall ((?p1_232_154 c_unique)) (forall ((?p2_231_155 c_unique)) (let ((?v_0 (type_pointer ?t_34_233_153))) (=> (not_in_pset (c_sort ?v_0 ?p1_232_154) (c_sort (type_pset ?t_34_233_153) (pset_singleton (c_sort ?v_0 ?p2_231_155)))) (not (= ?p1_232_154 ?p2_231_155)))))))) +(assert (forall ((?t_35_235_156 c_type)) (forall ((?p_234_157 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_35_235_156) ?p_234_157))) (not (not_in_pset ?v_0 (c_sort (type_pset ?t_35_235_156) (pset_singleton ?v_0)))))))) +(assert (forall ((?t_36_239_158 c_type)) (forall ((?l1_238_159 c_unique)) (forall ((?l2_237_160 c_unique)) (forall ((?p_236_161 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_36_239_158) ?p_236_161)) (?v_1 (type_pset ?t_36_239_158))) (let ((?v_2 (c_sort ?v_1 ?l1_238_159)) (?v_3 (c_sort ?v_1 ?l2_237_160))) (=> (and (not_in_pset ?v_0 ?v_2) (not_in_pset ?v_0 ?v_3)) (not_in_pset ?v_0 (c_sort ?v_1 (pset_union ?v_2 ?v_3))))))))))) +(assert (forall ((?t_37_243_162 c_type)) (forall ((?l1_242_163 c_unique)) (forall ((?l2_241_164 c_unique)) (forall ((?p_240_165 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_37_243_162) ?p_240_165)) (?v_0 (type_pset ?t_37_243_162))) (let ((?v_2 (c_sort ?v_0 ?l1_242_163))) (=> (not_in_pset ?v_1 (c_sort ?v_0 (pset_union ?v_2 (c_sort ?v_0 ?l2_241_164)))) (not_in_pset ?v_1 ?v_2))))))))) +(assert (forall ((?t_38_247_166 c_type)) (forall ((?l1_246_167 c_unique)) (forall ((?l2_245_168 c_unique)) (forall ((?p_244_169 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_38_247_166) ?p_244_169)) (?v_0 (type_pset ?t_38_247_166))) (let ((?v_2 (c_sort ?v_0 ?l2_245_168))) (=> (not_in_pset ?v_1 (c_sort ?v_0 (pset_union (c_sort ?v_0 ?l1_246_167) ?v_2))) (not_in_pset ?v_1 ?v_2))))))))) +(assert (forall ((?t_40_253_170 c_type)) (forall ((?t_39_252_171 c_type)) (forall ((?l_251_172 c_unique)) (forall ((?m_250_173 c_unique)) (forall ((?p_249_174 c_unique)) (let ((?v_0 (type_pointer ?t_40_253_170))) (=> (forall ((?p1_248_175 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_39_252_171) ?p1_248_175))) (=> (= ?p_249_174 (acc (c_sort (type_memory ?v_0 ?t_39_252_171) ?m_250_173) ?v_1)) (not_in_pset ?v_1 (c_sort (type_pset ?t_39_252_171) ?l_251_172))))) (not_in_pset (c_sort ?v_0 ?p_249_174) (c_sort (type_pset ?t_40_253_170) (pset_star (c_sort (type_pset ?t_39_252_171) ?l_251_172) (c_sort (type_memory ?v_0 ?t_39_252_171) ?m_250_173)))))))))))) +(assert (forall ((?t_42_259_176 c_type)) (forall ((?t_41_258_177 c_type)) (forall ((?l_257_178 c_unique)) (forall ((?m_256_179 c_unique)) (forall ((?p_255_180 c_unique)) (let ((?v_0 (type_pointer ?t_42_259_176))) (=> (not_in_pset (c_sort ?v_0 ?p_255_180) (c_sort (type_pset ?t_42_259_176) (pset_star (c_sort (type_pset ?t_41_258_177) ?l_257_178) (c_sort (type_memory ?v_0 ?t_41_258_177) ?m_256_179)))) (forall ((?p1_254_181 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_41_258_177) ?p1_254_181))) (=> (= ?p_255_180 (acc (c_sort (type_memory ?v_0 ?t_41_258_177) ?m_256_179) ?v_1)) (not_in_pset ?v_1 (c_sort (type_pset ?t_41_258_177) ?l_257_178))))))))))))) +(assert (forall ((?t_43_263_182 c_type)) (forall ((?p_262_183 c_unique)) (forall ((?l_261_184 c_unique)) (let ((?v_0 (type_pset ?t_43_263_182))) (=> (forall ((?p1_260_185 c_unique)) (let ((?v_1 (type_pointer ?t_43_263_182))) (let ((?v_2 (c_sort ?v_1 ?p1_260_185))) (=> (not (not_in_pset ?v_2 (c_sort ?v_0 ?l_261_184))) (not (= (base_addr (c_sort ?v_1 ?p_262_183)) (base_addr ?v_2))))))) (not_in_pset (c_sort (type_pointer ?t_43_263_182) ?p_262_183) (c_sort ?v_0 (pset_all (c_sort ?v_0 ?l_261_184)))))))))) +(assert (forall ((?t_44_267_186 c_type)) (forall ((?p_266_187 c_unique)) (forall ((?l_265_188 c_unique)) (let ((?v_0 (type_pset ?t_44_267_186))) (=> (not_in_pset (c_sort (type_pointer ?t_44_267_186) ?p_266_187) (c_sort ?v_0 (pset_all (c_sort ?v_0 ?l_265_188)))) (forall ((?p1_264_189 c_unique)) (let ((?v_1 (type_pointer ?t_44_267_186))) (let ((?v_2 (c_sort ?v_1 ?p1_264_189))) (=> (not (not_in_pset ?v_2 (c_sort ?v_0 ?l_265_188))) (not (= (base_addr (c_sort ?v_1 ?p_266_187)) (base_addr ?v_2))))))))))))) +(assert (forall ((?t_45_274_190 c_type)) (forall ((?p_273_191 c_unique)) (forall ((?l_272_192 c_unique)) (forall ((?a_271_193 Int)) (forall ((?b_270_194 Int)) (let ((?v_0 (type_pset ?t_45_274_190))) (=> (forall ((?p1_269_195 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_45_274_190) ?p1_269_195) (c_sort ?v_0 ?l_272_192)) (forall ((?i_268_196 Int)) (=> (and (<= ?a_271_193 ?i_268_196) (<= ?i_268_196 ?b_270_194)) (not (= ?p_273_191 (shift (c_sort (type_pointer ?t_45_274_190) ?p1_269_195) ?i_268_196))))))) (not_in_pset (c_sort (type_pointer ?t_45_274_190) ?p_273_191) (c_sort ?v_0 (pset_range (c_sort ?v_0 ?l_272_192) ?a_271_193 ?b_270_194))))))))))) +(assert (forall ((?t_46_281_197 c_type)) (forall ((?p_280_198 c_unique)) (forall ((?l_279_199 c_unique)) (forall ((?a_278_200 Int)) (forall ((?b_277_201 Int)) (let ((?v_0 (type_pset ?t_46_281_197))) (=> (not_in_pset (c_sort (type_pointer ?t_46_281_197) ?p_280_198) (c_sort ?v_0 (pset_range (c_sort ?v_0 ?l_279_199) ?a_278_200 ?b_277_201))) (forall ((?p1_276_202 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_46_281_197) ?p1_276_202) (c_sort ?v_0 ?l_279_199))) (forall ((?i_275_203 Int)) (=> (and (<= ?a_278_200 ?i_275_203) (<= ?i_275_203 ?b_277_201)) (not (= (shift (c_sort (type_pointer ?t_46_281_197) ?p1_276_202) ?i_275_203) ?p_280_198)))))))))))))) +(assert (forall ((?t_47_287_204 c_type)) (forall ((?p_286_205 c_unique)) (forall ((?l_285_206 c_unique)) (forall ((?a_284_207 Int)) (let ((?v_0 (type_pset ?t_47_287_204))) (=> (forall ((?p1_283_208 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_47_287_204) ?p1_283_208) (c_sort ?v_0 ?l_285_206)) (forall ((?i_282_209 Int)) (=> (<= ?i_282_209 ?a_284_207) (not (= ?p_286_205 (shift (c_sort (type_pointer ?t_47_287_204) ?p1_283_208) ?i_282_209))))))) (not_in_pset (c_sort (type_pointer ?t_47_287_204) ?p_286_205) (c_sort ?v_0 (pset_range_left (c_sort ?v_0 ?l_285_206) ?a_284_207)))))))))) +(assert (forall ((?t_48_293_210 c_type)) (forall ((?p_292_211 c_unique)) (forall ((?l_291_212 c_unique)) (forall ((?a_290_213 Int)) (let ((?v_0 (type_pset ?t_48_293_210))) (=> (not_in_pset (c_sort (type_pointer ?t_48_293_210) ?p_292_211) (c_sort ?v_0 (pset_range_left (c_sort ?v_0 ?l_291_212) ?a_290_213))) (forall ((?p1_289_214 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_48_293_210) ?p1_289_214) (c_sort ?v_0 ?l_291_212))) (forall ((?i_288_215 Int)) (=> (<= ?i_288_215 ?a_290_213) (not (= (shift (c_sort (type_pointer ?t_48_293_210) ?p1_289_214) ?i_288_215) ?p_292_211))))))))))))) +(assert (forall ((?t_49_299_216 c_type)) (forall ((?p_298_217 c_unique)) (forall ((?l_297_218 c_unique)) (forall ((?a_296_219 Int)) (let ((?v_0 (type_pset ?t_49_299_216))) (=> (forall ((?p1_295_220 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_49_299_216) ?p1_295_220) (c_sort ?v_0 ?l_297_218)) (forall ((?i_294_221 Int)) (=> (<= ?a_296_219 ?i_294_221) (not (= ?p_298_217 (shift (c_sort (type_pointer ?t_49_299_216) ?p1_295_220) ?i_294_221))))))) (not_in_pset (c_sort (type_pointer ?t_49_299_216) ?p_298_217) (c_sort ?v_0 (pset_range_right (c_sort ?v_0 ?l_297_218) ?a_296_219)))))))))) +(assert (forall ((?t_50_305_222 c_type)) (forall ((?p_304_223 c_unique)) (forall ((?l_303_224 c_unique)) (forall ((?a_302_225 Int)) (let ((?v_0 (type_pset ?t_50_305_222))) (=> (not_in_pset (c_sort (type_pointer ?t_50_305_222) ?p_304_223) (c_sort ?v_0 (pset_range_right (c_sort ?v_0 ?l_303_224) ?a_302_225))) (forall ((?p1_301_226 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_50_305_222) ?p1_301_226) (c_sort ?v_0 ?l_303_224))) (forall ((?i_300_227 Int)) (=> (<= ?a_302_225 ?i_300_227) (not (= (shift (c_sort (type_pointer ?t_50_305_222) ?p1_301_226) ?i_300_227) ?p_304_223))))))))))))) +(assert (forall ((?t_52_312_228 c_type)) (forall ((?t_51_311_229 c_type)) (forall ((?p_310_230 c_unique)) (forall ((?l_309_231 c_unique)) (forall ((?m_308_232 c_unique)) (let ((?v_0 (type_pointer ?t_51_311_229))) (=> (forall ((?p1_307_233 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_52_312_228) ?p1_307_233) (c_sort (type_pset ?t_52_312_228) ?l_309_231))) (forall ((?i_306_234 Int)) (let ((?v_1 (type_pointer ?t_52_312_228))) (not (= ?p_310_230 (acc (c_sort (type_memory ?v_0 ?t_52_312_228) ?m_308_232) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_307_233) ?i_306_234))))))))) (not_in_pset (c_sort ?v_0 ?p_310_230) (c_sort (type_pset ?t_51_311_229) (pset_acc_all (c_sort (type_pset ?t_52_312_228) ?l_309_231) (c_sort (type_memory ?v_0 ?t_52_312_228) ?m_308_232)))))))))))) +(assert (forall ((?t_54_319_235 c_type)) (forall ((?t_53_318_236 c_type)) (forall ((?p_317_237 c_unique)) (forall ((?l_316_238 c_unique)) (forall ((?m_315_239 c_unique)) (let ((?v_0 (type_pointer ?t_53_318_236))) (=> (not_in_pset (c_sort ?v_0 ?p_317_237) (c_sort (type_pset ?t_53_318_236) (pset_acc_all (c_sort (type_pset ?t_54_319_235) ?l_316_238) (c_sort (type_memory ?v_0 ?t_54_319_235) ?m_315_239)))) (forall ((?p1_314_240 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_54_319_235) ?p1_314_240) (c_sort (type_pset ?t_54_319_235) ?l_316_238))) (forall ((?i_313_241 Int)) (let ((?v_1 (type_pointer ?t_54_319_235))) (not (= (acc (c_sort (type_memory ?v_0 ?t_54_319_235) ?m_315_239) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_314_240) ?i_313_241))) ?p_317_237)))))))))))))) +(assert (forall ((?t_56_328_242 c_type)) (forall ((?t_55_327_243 c_type)) (forall ((?p_326_244 c_unique)) (forall ((?l_325_245 c_unique)) (forall ((?m_324_246 c_unique)) (forall ((?a_323_247 Int)) (forall ((?b_322_248 Int)) (let ((?v_0 (type_pointer ?t_55_327_243))) (=> (forall ((?p1_321_249 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_56_328_242) ?p1_321_249) (c_sort (type_pset ?t_56_328_242) ?l_325_245))) (forall ((?i_320_250 Int)) (let ((?v_1 (type_pointer ?t_56_328_242))) (=> (and (<= ?a_323_247 ?i_320_250) (<= ?i_320_250 ?b_322_248)) (not (= ?p_326_244 (acc (c_sort (type_memory ?v_0 ?t_56_328_242) ?m_324_246) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_321_249) ?i_320_250)))))))))) (not_in_pset (c_sort ?v_0 ?p_326_244) (c_sort (type_pset ?t_55_327_243) (pset_acc_range (c_sort (type_pset ?t_56_328_242) ?l_325_245) (c_sort (type_memory ?v_0 ?t_56_328_242) ?m_324_246) ?a_323_247 ?b_322_248))))))))))))) +(assert (forall ((?t_58_337_251 c_type)) (forall ((?t_57_336_252 c_type)) (forall ((?p_335_253 c_unique)) (forall ((?l_334_254 c_unique)) (forall ((?m_333_255 c_unique)) (forall ((?a_332_256 Int)) (forall ((?b_331_257 Int)) (let ((?v_0 (type_pointer ?t_57_336_252))) (=> (not_in_pset (c_sort ?v_0 ?p_335_253) (c_sort (type_pset ?t_57_336_252) (pset_acc_range (c_sort (type_pset ?t_58_337_251) ?l_334_254) (c_sort (type_memory ?v_0 ?t_58_337_251) ?m_333_255) ?a_332_256 ?b_331_257))) (forall ((?p1_330_258 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_58_337_251) ?p1_330_258) (c_sort (type_pset ?t_58_337_251) ?l_334_254))) (forall ((?i_329_259 Int)) (let ((?v_1 (type_pointer ?t_58_337_251))) (=> (and (<= ?a_332_256 ?i_329_259) (<= ?i_329_259 ?b_331_257)) (not (= (acc (c_sort (type_memory ?v_0 ?t_58_337_251) ?m_333_255) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_330_258) ?i_329_259))) ?p_335_253))))))))))))))))) +(assert (forall ((?t_60_345_260 c_type)) (forall ((?t_59_344_261 c_type)) (forall ((?p_343_262 c_unique)) (forall ((?l_342_263 c_unique)) (forall ((?m_341_264 c_unique)) (forall ((?a_340_265 Int)) (let ((?v_0 (type_pointer ?t_59_344_261))) (=> (forall ((?p1_339_266 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_60_345_260) ?p1_339_266) (c_sort (type_pset ?t_60_345_260) ?l_342_263))) (forall ((?i_338_267 Int)) (let ((?v_1 (type_pointer ?t_60_345_260))) (=> (<= ?i_338_267 ?a_340_265) (not (= ?p_343_262 (acc (c_sort (type_memory ?v_0 ?t_60_345_260) ?m_341_264) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_339_266) ?i_338_267)))))))))) (not_in_pset (c_sort ?v_0 ?p_343_262) (c_sort (type_pset ?t_59_344_261) (pset_acc_range_left (c_sort (type_pset ?t_60_345_260) ?l_342_263) (c_sort (type_memory ?v_0 ?t_60_345_260) ?m_341_264) ?a_340_265)))))))))))) +(assert (forall ((?t_62_353_268 c_type)) (forall ((?t_61_352_269 c_type)) (forall ((?p_351_270 c_unique)) (forall ((?l_350_271 c_unique)) (forall ((?m_349_272 c_unique)) (forall ((?a_348_273 Int)) (let ((?v_0 (type_pointer ?t_61_352_269))) (=> (not_in_pset (c_sort ?v_0 ?p_351_270) (c_sort (type_pset ?t_61_352_269) (pset_acc_range_left (c_sort (type_pset ?t_62_353_268) ?l_350_271) (c_sort (type_memory ?v_0 ?t_62_353_268) ?m_349_272) ?a_348_273))) (forall ((?p1_347_274 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_62_353_268) ?p1_347_274) (c_sort (type_pset ?t_62_353_268) ?l_350_271))) (forall ((?i_346_275 Int)) (let ((?v_1 (type_pointer ?t_62_353_268))) (=> (<= ?i_346_275 ?a_348_273) (not (= (acc (c_sort (type_memory ?v_0 ?t_62_353_268) ?m_349_272) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_347_274) ?i_346_275))) ?p_351_270)))))))))))))))) +(assert (forall ((?t_64_361_276 c_type)) (forall ((?t_63_360_277 c_type)) (forall ((?p_359_278 c_unique)) (forall ((?l_358_279 c_unique)) (forall ((?m_357_280 c_unique)) (forall ((?a_356_281 Int)) (let ((?v_0 (type_pointer ?t_63_360_277))) (=> (forall ((?p1_355_282 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_64_361_276) ?p1_355_282) (c_sort (type_pset ?t_64_361_276) ?l_358_279))) (forall ((?i_354_283 Int)) (let ((?v_1 (type_pointer ?t_64_361_276))) (=> (<= ?a_356_281 ?i_354_283) (not (= ?p_359_278 (acc (c_sort (type_memory ?v_0 ?t_64_361_276) ?m_357_280) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_355_282) ?i_354_283)))))))))) (not_in_pset (c_sort ?v_0 ?p_359_278) (c_sort (type_pset ?t_63_360_277) (pset_acc_range_right (c_sort (type_pset ?t_64_361_276) ?l_358_279) (c_sort (type_memory ?v_0 ?t_64_361_276) ?m_357_280) ?a_356_281)))))))))))) +(assert (forall ((?t_66_369_284 c_type)) (forall ((?t_65_368_285 c_type)) (forall ((?p_367_286 c_unique)) (forall ((?l_366_287 c_unique)) (forall ((?m_365_288 c_unique)) (forall ((?a_364_289 Int)) (let ((?v_0 (type_pointer ?t_65_368_285))) (=> (not_in_pset (c_sort ?v_0 ?p_367_286) (c_sort (type_pset ?t_65_368_285) (pset_acc_range_right (c_sort (type_pset ?t_66_369_284) ?l_366_287) (c_sort (type_memory ?v_0 ?t_66_369_284) ?m_365_288) ?a_364_289))) (forall ((?p1_363_290 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_66_369_284) ?p1_363_290) (c_sort (type_pset ?t_66_369_284) ?l_366_287))) (forall ((?i_362_291 Int)) (let ((?v_1 (type_pointer ?t_66_369_284))) (=> (<= ?a_364_289 ?i_362_291) (not (= (acc (c_sort (type_memory ?v_0 ?t_66_369_284) ?m_365_288) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_363_290) ?i_362_291))) ?p_367_286)))))))))))))))) +(assert (forall ((?t_68_376_292 c_type)) (forall ((?t_67_375_293 c_type)) (forall ((?a_374_294 c_unique)) (forall ((?l_373_295 c_unique)) (forall ((?m1_372_296 c_unique)) (forall ((?m2_371_297 c_unique)) (forall ((?m3_370_298 c_unique)) (let ((?v_1 (c_sort type_alloc_table ?a_374_294)) (?v_0 (type_memory ?t_68_376_292 ?t_67_375_293))) (let ((?v_4 (c_sort ?v_0 ?m1_372_296)) (?v_2 (c_sort ?v_0 ?m2_371_297)) (?v_3 (c_sort (type_pset ?t_67_375_293) ?l_373_295)) (?v_5 (c_sort ?v_0 ?m3_370_298))) (=> (not_assigns ?v_1 ?v_4 ?v_2 ?v_3) (=> (not_assigns ?v_1 ?v_2 ?v_5 ?v_3) (not_assigns ?v_1 ?v_4 ?v_5 ?v_3))))))))))))) +(assert (forall ((?t_70_381_299 c_type)) (forall ((?t_69_380_300 c_type)) (forall ((?a_379_301 c_unique)) (forall ((?l_378_302 c_unique)) (forall ((?m_377_303 c_unique)) (let ((?v_0 (c_sort (type_memory ?t_70_381_299 ?t_69_380_300) ?m_377_303))) (not_assigns (c_sort type_alloc_table ?a_379_301) ?v_0 ?v_0 (c_sort (type_pset ?t_69_380_300) ?l_378_302))))))))) +(declare-fun valid_acc (c_ssorted) Bool) +(assert (forall ((?t_72_386_304 c_type)) (forall ((?t_71_385_305 c_type)) (forall ((?m1_384_306 c_unique)) (= (valid_acc (c_sort (type_memory (type_pointer ?t_71_385_305) ?t_72_386_304) ?m1_384_306)) (forall ((?p_383_307 c_unique)) (forall ((?a_382_308 c_unique)) (let ((?v_1 (type_pointer ?t_71_385_305)) (?v_0 (c_sort type_alloc_table ?a_382_308)) (?v_2 (c_sort (type_pointer ?t_72_386_304) ?p_383_307))) (=> (valid ?v_0 ?v_2) (valid ?v_0 (c_sort ?v_1 (acc (c_sort (type_memory ?v_1 ?t_72_386_304) ?m1_384_306) ?v_2)))))))))))) +(declare-fun valid_acc_range (c_ssorted Int) Bool) +(assert (forall ((?t_74_392_309 c_type)) (forall ((?t_73_391_310 c_type)) (forall ((?m1_390_311 c_unique)) (forall ((?size_389_312 Int)) (= (valid_acc_range (c_sort (type_memory (type_pointer ?t_73_391_310) ?t_74_392_309) ?m1_390_311) ?size_389_312) (forall ((?p_388_313 c_unique)) (forall ((?a_387_314 c_unique)) (let ((?v_1 (type_pointer ?t_73_391_310)) (?v_0 (c_sort type_alloc_table ?a_387_314)) (?v_2 (c_sort (type_pointer ?t_74_392_309) ?p_388_313))) (=> (valid ?v_0 ?v_2) (valid_range ?v_0 (c_sort ?v_1 (acc (c_sort (type_memory ?v_1 ?t_74_392_309) ?m1_390_311) ?v_2)) 0 (- ?size_389_312 1)))))))))))) +(assert (forall ((?t_76_398_315 c_type)) (forall ((?t_75_397_316 c_type)) (forall ((?m1_396_317 c_unique)) (forall ((?size_395_318 Int)) (forall ((?p_394_319 c_unique)) (forall ((?a_393_320 c_unique)) (let ((?v_1 (type_pointer ?t_75_397_316))) (let ((?v_2 (c_sort (type_memory ?v_1 ?t_76_398_315) ?m1_396_317)) (?v_0 (c_sort type_alloc_table ?a_393_320)) (?v_3 (c_sort (type_pointer ?t_76_398_315) ?p_394_319))) (=> (valid_acc_range ?v_2 ?size_395_318) (=> (valid ?v_0 ?v_3) (valid ?v_0 (c_sort ?v_1 (acc ?v_2 ?v_3)))))))))))))) +(declare-fun separation1 (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_78_404_321 c_type)) (forall ((?t_77_403_322 c_type)) (forall ((?m1_402_323 c_unique)) (forall ((?m2_401_324 c_unique)) (let ((?v_0 (type_memory (type_pointer ?t_77_403_322) ?t_78_404_321))) (= (separation1 (c_sort ?v_0 ?m1_402_323) (c_sort ?v_0 ?m2_401_324)) (forall ((?p_400_325 c_unique)) (forall ((?a_399_326 c_unique)) (let ((?v_1 (type_pointer ?t_77_403_322)) (?v_2 (c_sort (type_pointer ?t_78_404_321) ?p_400_325))) (=> (valid (c_sort type_alloc_table ?a_399_326) ?v_2) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_402_323) ?v_2))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_401_324) ?v_2)))))))))))))))) +(declare-fun separation1_range1 (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_80_412_327 c_type)) (forall ((?t_79_411_328 c_type)) (forall ((?m1_410_329 c_unique)) (forall ((?m2_409_330 c_unique)) (forall ((?size_408_331 Int)) (let ((?v_0 (type_memory (type_pointer ?t_79_411_328) ?t_80_412_327))) (= (separation1_range1 (c_sort ?v_0 ?m1_410_329) (c_sort ?v_0 ?m2_409_330) ?size_408_331) (forall ((?p_407_332 c_unique)) (forall ((?a_406_333 c_unique)) (=> (valid (c_sort type_alloc_table ?a_406_333) (c_sort (type_pointer ?t_80_412_327) ?p_407_332)) (forall ((?i_405_334 Int)) (let ((?v_1 (type_pointer ?t_79_411_328)) (?v_2 (type_pointer ?t_80_412_327))) (let ((?v_3 (c_sort ?v_2 ?p_407_332))) (=> (and (<= 0 ?i_405_334) (< ?i_405_334 ?size_408_331)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_410_329) (c_sort ?v_2 (shift ?v_3 ?i_405_334))))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_409_330) ?v_3)))))))))))))))))))) +(declare-fun separation1_range (c_ssorted Int) Bool) +(assert (forall ((?t_82_420_335 c_type)) (forall ((?t_81_419_336 c_type)) (forall ((?m_418_337 c_unique)) (forall ((?size_417_338 Int)) (= (separation1_range (c_sort (type_memory (type_pointer ?t_81_419_336) ?t_82_420_335) ?m_418_337) ?size_417_338) (forall ((?p_416_339 c_unique)) (forall ((?a_415_340 c_unique)) (=> (valid (c_sort type_alloc_table ?a_415_340) (c_sort (type_pointer ?t_82_420_335) ?p_416_339)) (forall ((?i1_414_341 Int)) (forall ((?i2_413_342 Int)) (let ((?v_0 (type_pointer ?t_81_419_336))) (let ((?v_2 (c_sort (type_memory ?v_0 ?t_82_420_335) ?m_418_337)) (?v_1 (type_pointer ?t_82_420_335))) (let ((?v_3 (c_sort ?v_1 ?p_416_339))) (=> (and (<= 0 ?i1_414_341) (< ?i1_414_341 ?size_417_338)) (=> (and (<= 0 ?i2_413_342) (< ?i2_413_342 ?size_417_338)) (=> (not (= ?i1_414_341 ?i2_413_342)) (not (= (base_addr (c_sort ?v_0 (acc ?v_2 (c_sort ?v_1 (shift ?v_3 ?i1_414_341))))) (base_addr (c_sort ?v_0 (acc ?v_2 (c_sort ?v_1 (shift ?v_3 ?i2_413_342)))))))))))))))))))))))) +(declare-fun separation2 (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_84_426_343 c_type)) (forall ((?t_83_425_344 c_type)) (forall ((?m1_424_345 c_unique)) (forall ((?m2_423_346 c_unique)) (let ((?v_0 (type_memory (type_pointer ?t_83_425_344) ?t_84_426_343))) (= (separation2 (c_sort ?v_0 ?m1_424_345) (c_sort ?v_0 ?m2_423_346)) (forall ((?p1_422_347 c_unique)) (forall ((?p2_421_348 c_unique)) (let ((?v_1 (type_pointer ?t_83_425_344)) (?v_2 (type_pointer ?t_84_426_343))) (=> (not (= ?p1_422_347 ?p2_421_348)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_424_345) (c_sort ?v_2 ?p1_422_347)))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_423_346) (c_sort ?v_2 ?p2_421_348))))))))))))))))) +(declare-fun separation2_range1 (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_86_435_349 c_type)) (forall ((?t_85_434_350 c_type)) (forall ((?m1_433_351 c_unique)) (forall ((?m2_432_352 c_unique)) (forall ((?size_431_353 Int)) (let ((?v_0 (type_memory (type_pointer ?t_85_434_350) ?t_86_435_349))) (= (separation2_range1 (c_sort ?v_0 ?m1_433_351) (c_sort ?v_0 ?m2_432_352) ?size_431_353) (forall ((?p_430_354 c_unique)) (forall ((?q_429_355 c_unique)) (forall ((?a_428_356 c_unique)) (forall ((?i_427_357 Int)) (let ((?v_1 (type_pointer ?t_85_434_350)) (?v_2 (type_pointer ?t_86_435_349))) (=> (and (<= 0 ?i_427_357) (< ?i_427_357 ?size_431_353)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_433_351) (c_sort ?v_2 (shift (c_sort ?v_2 ?p_430_354) ?i_427_357))))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_432_352) (c_sort ?v_2 ?q_429_355)))))))))))))))))))) +(declare-fun on_heap (c_ssorted c_ssorted) Bool) +(declare-fun on_stack (c_ssorted c_ssorted) Bool) +(declare-fun fresh (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_87_438_358 c_type)) (forall ((?a_437_359 c_unique)) (forall ((?p_436_360 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a_437_359)) (?v_1 (c_sort (type_pointer ?t_87_438_358) ?p_436_360))) (=> (fresh ?v_0 ?v_1) (not (valid ?v_0 ?v_1)))))))) +(assert (forall ((?t_88_442_361 c_type)) (forall ((?a_441_362 c_unique)) (forall ((?p_440_363 c_unique)) (=> (fresh (c_sort type_alloc_table ?a_441_362) (c_sort (type_pointer ?t_88_442_361) ?p_440_363)) (forall ((?i_439_364 Int)) (let ((?v_0 (type_pointer ?t_88_442_361))) (not (valid (c_sort type_alloc_table ?a_441_362) (c_sort ?v_0 (shift (c_sort ?v_0 ?p_440_363) ?i_439_364))))))))))) +(declare-fun alloc_extends (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_89_446_365 c_type)) (forall ((?a1_445_366 c_unique)) (forall ((?a2_444_367 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_445_366) (c_sort type_alloc_table ?a2_444_367)) (forall ((?q_443_368 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_89_446_365) ?q_443_368))) (=> (valid (c_sort type_alloc_table ?a1_445_366) ?v_0) (valid (c_sort type_alloc_table ?a2_444_367) ?v_0))))))))) +(assert (forall ((?t_90_451_369 c_type)) (forall ((?a1_450_370 c_unique)) (forall ((?a2_449_371 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_450_370) (c_sort type_alloc_table ?a2_449_371)) (forall ((?q_448_372 c_unique)) (forall ((?i_447_373 Int)) (let ((?v_0 (c_sort (type_pointer ?t_90_451_369) ?q_448_372))) (=> (valid_index (c_sort type_alloc_table ?a1_450_370) ?v_0 ?i_447_373) (valid_index (c_sort type_alloc_table ?a2_449_371) ?v_0 ?i_447_373)))))))))) +(assert (forall ((?t_91_457_374 c_type)) (forall ((?a1_456_375 c_unique)) (forall ((?a2_455_376 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_456_375) (c_sort type_alloc_table ?a2_455_376)) (forall ((?q_454_377 c_unique)) (forall ((?i_453_378 Int)) (forall ((?j_452_379 Int)) (let ((?v_0 (c_sort (type_pointer ?t_91_457_374) ?q_454_377))) (=> (valid_range (c_sort type_alloc_table ?a1_456_375) ?v_0 ?i_453_378 ?j_452_379) (valid_range (c_sort type_alloc_table ?a2_455_376) ?v_0 ?i_453_378 ?j_452_379))))))))))) +(assert (forall ((?a_458_380 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a_458_380))) (alloc_extends ?v_0 ?v_0)))) +(assert (forall ((?a1_461_381 c_unique)) (forall ((?a2_460_382 c_unique)) (forall ((?a3_459_383 c_unique)) (let ((?v_1 (c_sort type_alloc_table ?a1_461_381)) (?v_0 (c_sort type_alloc_table ?a2_460_382)) (?v_2 (c_sort type_alloc_table ?a3_459_383))) (=> (alloc_extends ?v_1 ?v_0) (=> (alloc_extends ?v_0 ?v_2) (alloc_extends ?v_1 ?v_2)))))))) +(declare-fun free_stack (c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?t_92_466_384 c_type)) (forall ((?a1_465_385 c_unique)) (forall ((?a2_464_386 c_unique)) (forall ((?a3_463_387 c_unique)) (=> (free_stack (c_sort type_alloc_table ?a1_465_385) (c_sort type_alloc_table ?a2_464_386) (c_sort type_alloc_table ?a3_463_387)) (forall ((?p_462_388 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a2_464_386)) (?v_1 (c_sort (type_pointer ?t_92_466_384) ?p_462_388))) (=> (valid ?v_0 ?v_1) (=> (on_heap ?v_0 ?v_1) (valid (c_sort type_alloc_table ?a3_463_387) ?v_1))))))))))) +(assert (forall ((?t_93_471_389 c_type)) (forall ((?a1_470_390 c_unique)) (forall ((?a2_469_391 c_unique)) (forall ((?a3_468_392 c_unique)) (=> (free_stack (c_sort type_alloc_table ?a1_470_390) (c_sort type_alloc_table ?a2_469_391) (c_sort type_alloc_table ?a3_468_392)) (forall ((?p_467_393 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a1_470_390)) (?v_1 (c_sort (type_pointer ?t_93_471_389) ?p_467_393))) (=> (valid ?v_0 ?v_1) (=> (on_stack ?v_0 ?v_1) (valid (c_sort type_alloc_table ?a3_468_392) ?v_1))))))))))) +(declare-fun null () c_unique) +(assert (forall ((?t_94_475_394 c_type)) (forall ((?a_474_395 c_unique)) (not (valid (c_sort type_alloc_table ?a_474_395) (c_sort (type_pointer ?t_94_475_394) null)))))) +(declare-fun type_global () c_type) +(declare-fun separation_anonymous_0_int (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?x_global_489_396 c_unique)) (forall ((?anonymous_0PM_global_488_397 c_unique)) (forall ((?tab_487_398 c_unique)) (forall ((?v_486_399 c_unique)) (forall ((?alloc_485_400 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global)) (?v_2 (c_sort ?v_1 ?tab_487_398)) (?v_3 (c_sort ?v_1 ?v_486_399))) (= (separation_anonymous_0_int (c_sort ?v_0 ?x_global_489_396) (c_sort ?v_0 ?anonymous_0PM_global_488_397) ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_485_400)) (and (not (= (base_addr ?v_2) (base_addr ?v_3))) (forall ((?index_3_484_401 Int)) (=> (and (<= 0 ?index_3_484_401) (< ?index_3_484_401 5)) (not (= (base_addr ?v_3) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?x_global_489_396) (c_sort ?v_1 (acc (c_sort ?v_0 ?anonymous_0PM_global_488_397) (c_sort ?v_1 (shift ?v_2 ?index_3_484_401))))))))))))))))))))) +(declare-fun separation_anonymous_0_s1 (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?x_global_498_402 c_unique)) (forall ((?u_global_497_403 c_unique)) (forall ((?t_global_496_404 c_unique)) (forall ((?s1PM_global_495_405 c_unique)) (forall ((?anonymous_0PM_global_494_406 c_unique)) (forall ((?tab_493_407 c_unique)) (forall ((?s_492_408 c_unique)) (forall ((?alloc_491_409 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_7 (c_sort ?v_0 ?u_global_497_403)) (?v_5 (c_sort ?v_0 ?t_global_496_404)) (?v_6 (c_sort ?v_0 ?s1PM_global_495_405)) (?v_2 (c_sort ?v_1 ?tab_493_407)) (?v_3 (c_sort ?v_1 ?s_492_408))) (let ((?v_4 (base_addr ?v_2)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_3)))) (= (separation_anonymous_0_s1 (c_sort ?v_0 ?x_global_498_402) ?v_7 ?v_5 ?v_6 (c_sort ?v_0 ?anonymous_0PM_global_494_406) ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_491_409)) (and (not (= ?v_4 (base_addr ?v_3))) (and (forall ((?index_6_490_410 Int)) (=> (and (<= 0 ?index_6_490_410) (< ?index_6_490_410 5)) (not (= (base_addr ?v_3) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?x_global_498_402) (c_sort ?v_1 (acc (c_sort ?v_0 ?anonymous_0PM_global_494_406) (c_sort ?v_1 (shift ?v_2 ?index_6_490_410))))))))))) (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8)))))))))))))))))))))) +(declare-fun separation_anonymous_1_anonymous_0 (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?x_global_507_411 c_unique)) (forall ((?p2_global_506_412 c_unique)) (forall ((?p1_global_505_413 c_unique)) (forall ((?anonymous_1PM_global_504_414 c_unique)) (forall ((?anonymous_0PM_global_503_415 c_unique)) (forall ((?u1_502_416 c_unique)) (forall ((?tab_501_417 c_unique)) (forall ((?alloc_500_418 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_7 (c_sort ?v_0 ?p2_global_506_412)) (?v_5 (c_sort ?v_0 ?p1_global_505_413)) (?v_6 (c_sort ?v_0 ?anonymous_1PM_global_504_414)) (?v_2 (c_sort ?v_1 ?u1_502_416)) (?v_3 (c_sort ?v_1 ?tab_501_417))) (let ((?v_4 (base_addr ?v_3)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_2)))) (= (separation_anonymous_1_anonymous_0 (c_sort ?v_0 ?x_global_507_411) ?v_7 ?v_5 ?v_6 (c_sort ?v_0 ?anonymous_0PM_global_503_415) ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_500_418)) (and (not (= (base_addr ?v_2) ?v_4)) (and (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8)))))) (forall ((?index_7_499_419 Int)) (=> (and (<= 0 ?index_7_499_419) (< ?index_7_499_419 5)) (not (= (base_addr ?v_2) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?x_global_507_411) (c_sort ?v_1 (acc (c_sort ?v_0 ?anonymous_0PM_global_503_415) (c_sort ?v_1 (shift ?v_3 ?index_7_499_419))))))))))))))))))))))))))) +(declare-fun separation_anonymous_1_anonymous_1 (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?p2_global_513_420 c_unique)) (forall ((?p1_global_512_421 c_unique)) (forall ((?anonymous_1PM_global_511_422 c_unique)) (forall ((?u2_510_423 c_unique)) (forall ((?u1_509_424 c_unique)) (forall ((?alloc_508_425 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_7 (c_sort ?v_0 ?p2_global_513_420)) (?v_5 (c_sort ?v_0 ?p1_global_512_421)) (?v_6 (c_sort ?v_0 ?anonymous_1PM_global_511_422)) (?v_2 (c_sort ?v_1 ?u2_510_423)) (?v_3 (c_sort ?v_1 ?u1_509_424))) (let ((?v_9 (base_addr ?v_2)) (?v_4 (base_addr ?v_3)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_2))) (?v_10 (c_sort ?v_1 (acc ?v_6 ?v_3)))) (= (separation_anonymous_1_anonymous_1 ?v_7 ?v_5 ?v_6 ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_508_425)) (and (not (= ?v_9 ?v_4)) (and (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8)))))) (and (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_10))))) (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_10)))))))))))))))))))) +(declare-fun separation_anonymous_1_int (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?p2_global_519_426 c_unique)) (forall ((?p1_global_518_427 c_unique)) (forall ((?anonymous_1PM_global_517_428 c_unique)) (forall ((?u1_516_429 c_unique)) (forall ((?v_515_430 c_unique)) (forall ((?alloc_514_431 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_7 (c_sort ?v_0 ?p2_global_519_426)) (?v_5 (c_sort ?v_0 ?p1_global_518_427)) (?v_6 (c_sort ?v_0 ?anonymous_1PM_global_517_428)) (?v_2 (c_sort ?v_1 ?u1_516_429)) (?v_3 (c_sort ?v_1 ?v_515_430))) (let ((?v_4 (base_addr ?v_3)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_2)))) (= (separation_anonymous_1_int ?v_7 ?v_5 ?v_6 ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_514_431)) (and (not (= (base_addr ?v_2) ?v_4)) (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8))))))))))))))))))) +(declare-fun separation_anonymous_1_s1 (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?u_global_528_432 c_unique)) (forall ((?t_global_527_433 c_unique)) (forall ((?s1PM_global_526_434 c_unique)) (forall ((?p2_global_525_435 c_unique)) (forall ((?p1_global_524_436 c_unique)) (forall ((?anonymous_1PM_global_523_437 c_unique)) (forall ((?u1_522_438 c_unique)) (forall ((?s_521_439 c_unique)) (forall ((?alloc_520_440 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_12 (c_sort ?v_0 ?u_global_528_432)) (?v_10 (c_sort ?v_0 ?t_global_527_433)) (?v_11 (c_sort ?v_0 ?s1PM_global_526_434)) (?v_7 (c_sort ?v_0 ?p2_global_525_435)) (?v_5 (c_sort ?v_0 ?p1_global_524_436)) (?v_6 (c_sort ?v_0 ?anonymous_1PM_global_523_437)) (?v_2 (c_sort ?v_1 ?u1_522_438)) (?v_3 (c_sort ?v_1 ?s_521_439))) (let ((?v_9 (base_addr ?v_2)) (?v_4 (base_addr ?v_3)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_2))) (?v_13 (c_sort ?v_1 (acc ?v_11 ?v_3)))) (= (separation_anonymous_1_s1 ?v_12 ?v_10 ?v_11 ?v_7 ?v_5 ?v_6 ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_520_440)) (and (not (= ?v_9 ?v_4)) (and (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8)))))) (and (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_10 ?v_13))))) (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_12 ?v_13))))))))))))))))))))))) +(declare-fun separation_anonymous_2_anonymous_0 (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?x_global_537_441 c_unique)) (forall ((?anonymous_2_p2_global_536_442 c_unique)) (forall ((?anonymous_2_p1_global_535_443 c_unique)) (forall ((?anonymous_2PM_global_534_444 c_unique)) (forall ((?anonymous_0PM_global_533_445 c_unique)) (forall ((?u3_532_446 c_unique)) (forall ((?tab_531_447 c_unique)) (forall ((?alloc_530_448 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_7 (c_sort ?v_0 ?anonymous_2_p2_global_536_442)) (?v_5 (c_sort ?v_0 ?anonymous_2_p1_global_535_443)) (?v_6 (c_sort ?v_0 ?anonymous_2PM_global_534_444)) (?v_2 (c_sort ?v_1 ?u3_532_446)) (?v_3 (c_sort ?v_1 ?tab_531_447))) (let ((?v_4 (base_addr ?v_3)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_2)))) (= (separation_anonymous_2_anonymous_0 (c_sort ?v_0 ?x_global_537_441) ?v_7 ?v_5 ?v_6 (c_sort ?v_0 ?anonymous_0PM_global_533_445) ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_530_448)) (and (not (= (base_addr ?v_2) ?v_4)) (and (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8)))))) (forall ((?index_15_529_449 Int)) (=> (and (<= 0 ?index_15_529_449) (< ?index_15_529_449 5)) (not (= (base_addr ?v_2) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?x_global_537_441) (c_sort ?v_1 (acc (c_sort ?v_0 ?anonymous_0PM_global_533_445) (c_sort ?v_1 (shift ?v_3 ?index_15_529_449))))))))))))))))))))))))))) +(declare-fun separation_anonymous_2_anonymous_1 (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?p2_global_546_450 c_unique)) (forall ((?p1_global_545_451 c_unique)) (forall ((?anonymous_2_p2_global_544_452 c_unique)) (forall ((?anonymous_2_p1_global_543_453 c_unique)) (forall ((?anonymous_2PM_global_542_454 c_unique)) (forall ((?anonymous_1PM_global_541_455 c_unique)) (forall ((?u3_540_456 c_unique)) (forall ((?u1_539_457 c_unique)) (forall ((?alloc_538_458 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_12 (c_sort ?v_0 ?p2_global_546_450)) (?v_10 (c_sort ?v_0 ?p1_global_545_451)) (?v_7 (c_sort ?v_0 ?anonymous_2_p2_global_544_452)) (?v_5 (c_sort ?v_0 ?anonymous_2_p1_global_543_453)) (?v_6 (c_sort ?v_0 ?anonymous_2PM_global_542_454)) (?v_11 (c_sort ?v_0 ?anonymous_1PM_global_541_455)) (?v_2 (c_sort ?v_1 ?u3_540_456)) (?v_3 (c_sort ?v_1 ?u1_539_457))) (let ((?v_9 (base_addr ?v_2)) (?v_4 (base_addr ?v_3)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_2))) (?v_13 (c_sort ?v_1 (acc ?v_11 ?v_3)))) (= (separation_anonymous_2_anonymous_1 ?v_12 ?v_10 ?v_7 ?v_5 ?v_6 ?v_11 ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_538_458)) (and (not (= ?v_9 ?v_4)) (and (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8)))))) (and (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_10 ?v_13))))) (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_12 ?v_13))))))))))))))))))))))) +(declare-fun separation_anonymous_2_anonymous_2 (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?anonymous_2_p2_global_552_459 c_unique)) (forall ((?anonymous_2_p1_global_551_460 c_unique)) (forall ((?anonymous_2PM_global_550_461 c_unique)) (forall ((?u4_549_462 c_unique)) (forall ((?u3_548_463 c_unique)) (forall ((?alloc_547_464 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_7 (c_sort ?v_0 ?anonymous_2_p2_global_552_459)) (?v_5 (c_sort ?v_0 ?anonymous_2_p1_global_551_460)) (?v_6 (c_sort ?v_0 ?anonymous_2PM_global_550_461)) (?v_2 (c_sort ?v_1 ?u4_549_462)) (?v_3 (c_sort ?v_1 ?u3_548_463))) (let ((?v_9 (base_addr ?v_2)) (?v_4 (base_addr ?v_3)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_2))) (?v_10 (c_sort ?v_1 (acc ?v_6 ?v_3)))) (= (separation_anonymous_2_anonymous_2 ?v_7 ?v_5 ?v_6 ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_547_464)) (and (not (= ?v_9 ?v_4)) (and (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8)))))) (and (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_10))))) (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_10)))))))))))))))))))) +(declare-fun separation_anonymous_2_int (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?anonymous_2_p2_global_558_465 c_unique)) (forall ((?anonymous_2_p1_global_557_466 c_unique)) (forall ((?anonymous_2PM_global_556_467 c_unique)) (forall ((?u3_555_468 c_unique)) (forall ((?v_554_469 c_unique)) (forall ((?alloc_553_470 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_7 (c_sort ?v_0 ?anonymous_2_p2_global_558_465)) (?v_5 (c_sort ?v_0 ?anonymous_2_p1_global_557_466)) (?v_6 (c_sort ?v_0 ?anonymous_2PM_global_556_467)) (?v_2 (c_sort ?v_1 ?u3_555_468)) (?v_3 (c_sort ?v_1 ?v_554_469))) (let ((?v_4 (base_addr ?v_3)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_2)))) (= (separation_anonymous_2_int ?v_7 ?v_5 ?v_6 ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_553_470)) (and (not (= (base_addr ?v_2) ?v_4)) (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8))))))))))))))))))) +(declare-fun separation_anonymous_2_s1 (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?u_global_567_471 c_unique)) (forall ((?t_global_566_472 c_unique)) (forall ((?s1PM_global_565_473 c_unique)) (forall ((?anonymous_2_p2_global_564_474 c_unique)) (forall ((?anonymous_2_p1_global_563_475 c_unique)) (forall ((?anonymous_2PM_global_562_476 c_unique)) (forall ((?u3_561_477 c_unique)) (forall ((?s_560_478 c_unique)) (forall ((?alloc_559_479 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_12 (c_sort ?v_0 ?u_global_567_471)) (?v_10 (c_sort ?v_0 ?t_global_566_472)) (?v_11 (c_sort ?v_0 ?s1PM_global_565_473)) (?v_7 (c_sort ?v_0 ?anonymous_2_p2_global_564_474)) (?v_5 (c_sort ?v_0 ?anonymous_2_p1_global_563_475)) (?v_6 (c_sort ?v_0 ?anonymous_2PM_global_562_476)) (?v_2 (c_sort ?v_1 ?u3_561_477)) (?v_3 (c_sort ?v_1 ?s_560_478))) (let ((?v_9 (base_addr ?v_2)) (?v_4 (base_addr ?v_3)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_2))) (?v_13 (c_sort ?v_1 (acc ?v_11 ?v_3)))) (= (separation_anonymous_2_s1 ?v_12 ?v_10 ?v_11 ?v_7 ?v_5 ?v_6 ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_559_479)) (and (not (= ?v_9 ?v_4)) (and (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8)))))) (and (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_10 ?v_13))))) (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_12 ?v_13))))))))))))))))))))))) +(declare-fun separation_int_s1 (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?u_global_573_480 c_unique)) (forall ((?t_global_572_481 c_unique)) (forall ((?s1PM_global_571_482 c_unique)) (forall ((?v_570_483 c_unique)) (forall ((?s_569_484 c_unique)) (forall ((?alloc_568_485 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_7 (c_sort ?v_0 ?u_global_573_480)) (?v_5 (c_sort ?v_0 ?t_global_572_481)) (?v_6 (c_sort ?v_0 ?s1PM_global_571_482)) (?v_2 (c_sort ?v_1 ?v_570_483)) (?v_3 (c_sort ?v_1 ?s_569_484))) (let ((?v_4 (base_addr ?v_2)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_3)))) (= (separation_int_s1 ?v_7 ?v_5 ?v_6 ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_568_485)) (and (not (= ?v_4 (base_addr ?v_3))) (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8))))))))))))))))))) +(declare-fun separation_s1_s1 (c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?u_global_579_486 c_unique)) (forall ((?t_global_578_487 c_unique)) (forall ((?s1PM_global_577_488 c_unique)) (forall ((?ss_576_489 c_unique)) (forall ((?s_575_490 c_unique)) (forall ((?alloc_574_491 c_unique)) (let ((?v_1 (type_pointer type_global))) (let ((?v_0 (type_memory ?v_1 type_global))) (let ((?v_7 (c_sort ?v_0 ?u_global_579_486)) (?v_5 (c_sort ?v_0 ?t_global_578_487)) (?v_6 (c_sort ?v_0 ?s1PM_global_577_488)) (?v_2 (c_sort ?v_1 ?ss_576_489)) (?v_3 (c_sort ?v_1 ?s_575_490))) (let ((?v_9 (base_addr ?v_2)) (?v_4 (base_addr ?v_3)) (?v_8 (c_sort ?v_1 (acc ?v_6 ?v_2))) (?v_10 (c_sort ?v_1 (acc ?v_6 ?v_3)))) (= (separation_s1_s1 ?v_7 ?v_5 ?v_6 ?v_2 ?v_3 (c_sort type_alloc_table ?alloc_574_491)) (and (not (= ?v_9 ?v_4)) (and (and (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_8))))) (not (= ?v_4 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_8)))))) (and (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_5 ?v_10))))) (not (= ?v_9 (base_addr (c_sort ?v_1 (acc ?v_7 ?v_10)))))))))))))))))))) +(assert (not (forall ((?alloc c_unique)) (forall ((?anonymous_2PM_global c_unique)) (forall ((?anonymous_2_p1_global c_unique)) (forall ((?anonymous_2_p2_global c_unique)) (forall ((?anonymous_2_v1_global c_unique)) (forall ((?anonymous_2_v2_global c_unique)) (forall ((?intM_global c_unique)) (forall ((?u3 c_unique)) (forall ((?u4 c_unique)) (forall ((?w1 c_unique)) (forall ((?w10 c_unique)) (forall ((?w2 c_unique)) (forall ((?w3 c_unique)) (forall ((?w4 c_unique)) (forall ((?w5 c_unique)) (forall ((?w6 c_unique)) (forall ((?w7 c_unique)) (forall ((?w8 c_unique)) (forall ((?w9 c_unique)) (let ((?v_0 (type_pointer type_global))) (let ((?v_2 (type_memory ?v_0 type_global)) (?v_3 (c_sort ?v_0 ?w3))) (let ((?v_5 (base_addr ?v_3)) (?v_8 (c_sort ?v_0 ?u4))) (let ((?v_1 (base_addr ?v_8)) (?v_6 (c_sort ?v_2 ?anonymous_2_p1_global)) (?v_7 (c_sort ?v_2 ?anonymous_2PM_global))) (let ((?v_4 (c_sort ?v_0 (acc ?v_7 ?v_3)))) (let ((?v_12 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_4)))) (?v_9 (c_sort ?v_2 ?anonymous_2_p2_global))) (let ((?v_13 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_4)))) (?v_10 (c_sort ?v_0 (acc ?v_7 ?v_8)))) (let ((?v_16 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_10)))) (?v_17 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_10)))) (?v_14 (c_sort ?v_0 ?u3))) (let ((?v_11 (base_addr ?v_14)) (?v_15 (c_sort ?v_0 (acc ?v_7 ?v_14)))) (let ((?v_18 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_15)))) (?v_19 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_15)))) (?v_20 (c_sort ?v_0 ?w1))) (let ((?v_22 (base_addr ?v_20)) (?v_21 (c_sort ?v_0 (acc ?v_7 ?v_20)))) (let ((?v_23 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_21)))) (?v_24 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_21)))) (?v_25 (c_sort type_alloc_table ?alloc)) (?v_54 (c_sort ?v_0 ?w9)) (?v_26 (c_sort ?v_0 ?w8)) (?v_27 (c_sort ?v_0 ?w7)) (?v_32 (c_sort ?v_0 ?w6)) (?v_37 (c_sort ?v_0 ?w5)) (?v_40 (c_sort ?v_0 ?w4)) (?v_43 (c_sort ?v_0 ?w2))) (let ((?v_30 (base_addr ?v_26)) (?v_28 (base_addr ?v_27)) (?v_29 (c_sort ?v_0 (acc ?v_7 ?v_26)))) (let ((?v_34 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_29)))) (?v_35 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_29)))) (?v_31 (c_sort ?v_0 (acc ?v_7 ?v_27)))) (let ((?v_59 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_31)))) (?v_60 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_31)))) (?v_33 (base_addr ?v_32)) (?v_36 (c_sort ?v_0 (acc ?v_7 ?v_32)))) (let ((?v_46 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_36)))) (?v_47 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_36)))) (?v_38 (base_addr ?v_37)) (?v_39 (c_sort ?v_0 (acc ?v_7 ?v_37)))) (let ((?v_48 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_39)))) (?v_49 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_39)))) (?v_41 (base_addr ?v_40)) (?v_42 (c_sort ?v_0 (acc ?v_7 ?v_40)))) (let ((?v_50 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_42)))) (?v_51 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_42)))) (?v_44 (base_addr ?v_43)) (?v_45 (c_sort ?v_0 (acc ?v_7 ?v_43)))) (let ((?v_52 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_45)))) (?v_53 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_45)))) (?v_66 (valid ?v_25 ?v_14)) (?v_61 (c_sort ?v_0 ?w10)) (?v_56 (base_addr ?v_54)) (?v_55 (c_sort ?v_0 (acc ?v_7 ?v_54)))) (let ((?v_57 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_55)))) (?v_58 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_55)))) (?v_63 (base_addr ?v_61)) (?v_62 (c_sort ?v_0 (acc ?v_7 ?v_61)))) (let ((?v_64 (base_addr (c_sort ?v_0 (acc ?v_6 ?v_62)))) (?v_65 (base_addr (c_sort ?v_0 (acc ?v_9 ?v_62))))) (=> (and (and (not (= ?v_5 ?v_1)) (and (and (not (= ?v_1 ?v_12)) (not (= ?v_1 ?v_13))) (and (not (= ?v_5 ?v_16)) (not (= ?v_5 ?v_17))))) (and (and (not (= ?v_5 ?v_11)) (and (and (not (= ?v_11 ?v_12)) (not (= ?v_11 ?v_13))) (and (not (= ?v_5 ?v_18)) (not (= ?v_5 ?v_19))))) (and (and (not (= ?v_1 ?v_11)) (and (and (not (= ?v_11 ?v_16)) (not (= ?v_11 ?v_17))) (and (not (= ?v_1 ?v_18)) (not (= ?v_1 ?v_19))))) (and (and (not (= ?v_22 ?v_1)) (and (and (not (= ?v_1 ?v_23)) (not (= ?v_1 ?v_24))) (and (not (= ?v_22 ?v_16)) (not (= ?v_22 ?v_17))))) (and (and (not (= ?v_22 ?v_11)) (and (and (not (= ?v_11 ?v_23)) (not (= ?v_11 ?v_24))) (and (not (= ?v_22 ?v_18)) (not (= ?v_22 ?v_19))))) (and (valid ?v_25 ?v_54) (and (valid ?v_25 ?v_26) (and (valid ?v_25 ?v_27) (and (valid ?v_25 ?v_32) (and (valid ?v_25 ?v_37) (and (valid ?v_25 ?v_40) (and (valid ?v_25 ?v_3) (and (valid ?v_25 ?v_43) (and (valid ?v_25 ?v_20) (and (and (not (= ?v_30 ?v_28)) (and (and (not (= ?v_28 ?v_34)) (not (= ?v_28 ?v_35))) (and (not (= ?v_30 ?v_59)) (not (= ?v_30 ?v_60))))) (and (and (not (= ?v_30 ?v_33)) (and (and (not (= ?v_33 ?v_34)) (not (= ?v_33 ?v_35))) (and (not (= ?v_30 ?v_46)) (not (= ?v_30 ?v_47))))) (and (and (not (= ?v_30 ?v_38)) (and (and (not (= ?v_38 ?v_34)) (not (= ?v_38 ?v_35))) (and (not (= ?v_30 ?v_48)) (not (= ?v_30 ?v_49))))) (and (and (not (= ?v_30 ?v_41)) (and (and (not (= ?v_41 ?v_34)) (not (= ?v_41 ?v_35))) (and (not (= ?v_30 ?v_50)) (not (= ?v_30 ?v_51))))) (and (and (not (= ?v_30 ?v_5)) (and (and (not (= ?v_5 ?v_34)) (not (= ?v_5 ?v_35))) (and (not (= ?v_30 ?v_12)) (not (= ?v_30 ?v_13))))) (and (and (not (= ?v_30 ?v_44)) (and (and (not (= ?v_44 ?v_34)) (not (= ?v_44 ?v_35))) (and (not (= ?v_30 ?v_52)) (not (= ?v_30 ?v_53))))) (and (and (not (= ?v_30 ?v_22)) (and (and (not (= ?v_22 ?v_34)) (not (= ?v_22 ?v_35))) (and (not (= ?v_30 ?v_23)) (not (= ?v_30 ?v_24))))) (and (valid ?v_25 ?v_8) (and ?v_66 (and (and (not (= ?v_33 ?v_38)) (and (and (not (= ?v_38 ?v_46)) (not (= ?v_38 ?v_47))) (and (not (= ?v_33 ?v_48)) (not (= ?v_33 ?v_49))))) (and (and (not (= ?v_33 ?v_41)) (and (and (not (= ?v_41 ?v_46)) (not (= ?v_41 ?v_47))) (and (not (= ?v_33 ?v_50)) (not (= ?v_33 ?v_51))))) (and (and (not (= ?v_33 ?v_5)) (and (and (not (= ?v_5 ?v_46)) (not (= ?v_5 ?v_47))) (and (not (= ?v_33 ?v_12)) (not (= ?v_33 ?v_13))))) (and (and (not (= ?v_33 ?v_44)) (and (and (not (= ?v_44 ?v_46)) (not (= ?v_44 ?v_47))) (and (not (= ?v_33 ?v_52)) (not (= ?v_33 ?v_53))))) (and (and (not (= ?v_33 ?v_22)) (and (and (not (= ?v_22 ?v_46)) (not (= ?v_22 ?v_47))) (and (not (= ?v_33 ?v_23)) (not (= ?v_33 ?v_24))))) (and (and (not (= ?v_30 ?v_1)) (and (and (not (= ?v_1 ?v_34)) (not (= ?v_1 ?v_35))) (and (not (= ?v_30 ?v_16)) (not (= ?v_30 ?v_17))))) (and (and (not (= ?v_30 ?v_11)) (and (and (not (= ?v_11 ?v_34)) (not (= ?v_11 ?v_35))) (and (not (= ?v_30 ?v_18)) (not (= ?v_30 ?v_19))))) (and (and (not (= ?v_41 ?v_5)) (and (and (not (= ?v_5 ?v_50)) (not (= ?v_5 ?v_51))) (and (not (= ?v_41 ?v_12)) (not (= ?v_41 ?v_13))))) (and (and (not (= ?v_41 ?v_44)) (and (and (not (= ?v_44 ?v_50)) (not (= ?v_44 ?v_51))) (and (not (= ?v_41 ?v_52)) (not (= ?v_41 ?v_53))))) (and (and (not (= ?v_41 ?v_22)) (and (and (not (= ?v_22 ?v_50)) (not (= ?v_22 ?v_51))) (and (not (= ?v_41 ?v_23)) (not (= ?v_41 ?v_24))))) (and (and (not (= ?v_33 ?v_1)) (and (and (not (= ?v_1 ?v_46)) (not (= ?v_1 ?v_47))) (and (not (= ?v_33 ?v_16)) (not (= ?v_33 ?v_17))))) (and (and (not (= ?v_33 ?v_11)) (and (and (not (= ?v_11 ?v_46)) (not (= ?v_11 ?v_47))) (and (not (= ?v_33 ?v_18)) (not (= ?v_33 ?v_19))))) (and (and (not (= ?v_44 ?v_22)) (and (and (not (= ?v_22 ?v_52)) (not (= ?v_22 ?v_53))) (and (not (= ?v_44 ?v_23)) (not (= ?v_44 ?v_24))))) (and (and (not (= ?v_41 ?v_1)) (and (and (not (= ?v_1 ?v_50)) (not (= ?v_1 ?v_51))) (and (not (= ?v_41 ?v_16)) (not (= ?v_41 ?v_17))))) (and (and (not (= ?v_41 ?v_11)) (and (and (not (= ?v_11 ?v_50)) (not (= ?v_11 ?v_51))) (and (not (= ?v_41 ?v_18)) (not (= ?v_41 ?v_19))))) (and (valid ?v_25 ?v_61) (and (and (not (= ?v_44 ?v_1)) (and (and (not (= ?v_1 ?v_52)) (not (= ?v_1 ?v_53))) (and (not (= ?v_44 ?v_16)) (not (= ?v_44 ?v_17))))) (and (and (not (= ?v_44 ?v_11)) (and (and (not (= ?v_11 ?v_52)) (not (= ?v_11 ?v_53))) (and (not (= ?v_44 ?v_18)) (not (= ?v_44 ?v_19))))) (and (and (not (= ?v_56 ?v_30)) (and (and (not (= ?v_30 ?v_57)) (not (= ?v_30 ?v_58))) (and (not (= ?v_56 ?v_34)) (not (= ?v_56 ?v_35))))) (and (and (not (= ?v_56 ?v_28)) (and (and (not (= ?v_28 ?v_57)) (not (= ?v_28 ?v_58))) (and (not (= ?v_56 ?v_59)) (not (= ?v_56 ?v_60))))) (and (and (not (= ?v_56 ?v_33)) (and (and (not (= ?v_33 ?v_57)) (not (= ?v_33 ?v_58))) (and (not (= ?v_56 ?v_46)) (not (= ?v_56 ?v_47))))) (and (and (not (= ?v_56 ?v_38)) (and (and (not (= ?v_38 ?v_57)) (not (= ?v_38 ?v_58))) (and (not (= ?v_56 ?v_48)) (not (= ?v_56 ?v_49))))) (and (and (not (= ?v_63 ?v_56)) (and (and (not (= ?v_56 ?v_64)) (not (= ?v_56 ?v_65))) (and (not (= ?v_63 ?v_57)) (not (= ?v_63 ?v_58))))) (and (and (not (= ?v_56 ?v_41)) (and (and (not (= ?v_41 ?v_57)) (not (= ?v_41 ?v_58))) (and (not (= ?v_56 ?v_50)) (not (= ?v_56 ?v_51))))) (and (and (not (= ?v_63 ?v_30)) (and (and (not (= ?v_30 ?v_64)) (not (= ?v_30 ?v_65))) (and (not (= ?v_63 ?v_34)) (not (= ?v_63 ?v_35))))) (and (and (not (= ?v_56 ?v_5)) (and (and (not (= ?v_5 ?v_57)) (not (= ?v_5 ?v_58))) (and (not (= ?v_56 ?v_12)) (not (= ?v_56 ?v_13))))) (and (and (not (= ?v_63 ?v_28)) (and (and (not (= ?v_28 ?v_64)) (not (= ?v_28 ?v_65))) (and (not (= ?v_63 ?v_59)) (not (= ?v_63 ?v_60))))) (and (and (not (= ?v_56 ?v_44)) (and (and (not (= ?v_44 ?v_57)) (not (= ?v_44 ?v_58))) (and (not (= ?v_56 ?v_52)) (not (= ?v_56 ?v_53))))) (and (and (not (= ?v_63 ?v_33)) (and (and (not (= ?v_33 ?v_64)) (not (= ?v_33 ?v_65))) (and (not (= ?v_63 ?v_46)) (not (= ?v_63 ?v_47))))) (and (and (not (= ?v_56 ?v_22)) (and (and (not (= ?v_22 ?v_57)) (not (= ?v_22 ?v_58))) (and (not (= ?v_56 ?v_23)) (not (= ?v_56 ?v_24))))) (and (and (not (= ?v_63 ?v_38)) (and (and (not (= ?v_38 ?v_64)) (not (= ?v_38 ?v_65))) (and (not (= ?v_63 ?v_48)) (not (= ?v_63 ?v_49))))) (and (and (not (= ?v_63 ?v_41)) (and (and (not (= ?v_41 ?v_64)) (not (= ?v_41 ?v_65))) (and (not (= ?v_63 ?v_50)) (not (= ?v_63 ?v_51))))) (and (and (not (= ?v_63 ?v_5)) (and (and (not (= ?v_5 ?v_64)) (not (= ?v_5 ?v_65))) (and (not (= ?v_63 ?v_12)) (not (= ?v_63 ?v_13))))) (and (and (not (= ?v_63 ?v_44)) (and (and (not (= ?v_44 ?v_64)) (not (= ?v_44 ?v_65))) (and (not (= ?v_63 ?v_52)) (not (= ?v_63 ?v_53))))) (and (and (not (= ?v_63 ?v_22)) (and (and (not (= ?v_22 ?v_64)) (not (= ?v_22 ?v_65))) (and (not (= ?v_63 ?v_23)) (not (= ?v_63 ?v_24))))) (and (and (not (= ?v_28 ?v_33)) (and (and (not (= ?v_33 ?v_59)) (not (= ?v_33 ?v_60))) (and (not (= ?v_28 ?v_46)) (not (= ?v_28 ?v_47))))) (and (and (not (= ?v_28 ?v_38)) (and (and (not (= ?v_38 ?v_59)) (not (= ?v_38 ?v_60))) (and (not (= ?v_28 ?v_48)) (not (= ?v_28 ?v_49))))) (and (and (not (= ?v_28 ?v_41)) (and (and (not (= ?v_41 ?v_59)) (not (= ?v_41 ?v_60))) (and (not (= ?v_28 ?v_50)) (not (= ?v_28 ?v_51))))) (and (and (not (= ?v_28 ?v_5)) (and (and (not (= ?v_5 ?v_59)) (not (= ?v_5 ?v_60))) (and (not (= ?v_28 ?v_12)) (not (= ?v_28 ?v_13))))) (and (and (not (= ?v_28 ?v_44)) (and (and (not (= ?v_44 ?v_59)) (not (= ?v_44 ?v_60))) (and (not (= ?v_28 ?v_52)) (not (= ?v_28 ?v_53))))) (and (and (not (= ?v_28 ?v_22)) (and (and (not (= ?v_22 ?v_59)) (not (= ?v_22 ?v_60))) (and (not (= ?v_28 ?v_23)) (not (= ?v_28 ?v_24))))) (and (and (not (= ?v_56 ?v_1)) (and (and (not (= ?v_1 ?v_57)) (not (= ?v_1 ?v_58))) (and (not (= ?v_56 ?v_16)) (not (= ?v_56 ?v_17))))) (and (and (not (= ?v_56 ?v_11)) (and (and (not (= ?v_11 ?v_57)) (not (= ?v_11 ?v_58))) (and (not (= ?v_56 ?v_18)) (not (= ?v_56 ?v_19))))) (and (and (not (= ?v_63 ?v_1)) (and (and (not (= ?v_1 ?v_64)) (not (= ?v_1 ?v_65))) (and (not (= ?v_63 ?v_16)) (not (= ?v_63 ?v_17))))) (and (and (not (= ?v_63 ?v_11)) (and (and (not (= ?v_11 ?v_64)) (not (= ?v_11 ?v_65))) (and (not (= ?v_63 ?v_18)) (not (= ?v_63 ?v_19))))) (and (and (not (= ?v_38 ?v_41)) (and (and (not (= ?v_41 ?v_48)) (not (= ?v_41 ?v_49))) (and (not (= ?v_38 ?v_50)) (not (= ?v_38 ?v_51))))) (and (and (not (= ?v_38 ?v_5)) (and (and (not (= ?v_5 ?v_48)) (not (= ?v_5 ?v_49))) (and (not (= ?v_38 ?v_12)) (not (= ?v_38 ?v_13))))) (and (and (not (= ?v_38 ?v_44)) (and (and (not (= ?v_44 ?v_48)) (not (= ?v_44 ?v_49))) (and (not (= ?v_38 ?v_52)) (not (= ?v_38 ?v_53))))) (and (and (not (= ?v_38 ?v_22)) (and (and (not (= ?v_22 ?v_48)) (not (= ?v_22 ?v_49))) (and (not (= ?v_38 ?v_23)) (not (= ?v_38 ?v_24))))) (and (and (not (= ?v_28 ?v_1)) (and (and (not (= ?v_1 ?v_59)) (not (= ?v_1 ?v_60))) (and (not (= ?v_28 ?v_16)) (not (= ?v_28 ?v_17))))) (and (and (not (= ?v_28 ?v_11)) (and (and (not (= ?v_11 ?v_59)) (not (= ?v_11 ?v_60))) (and (not (= ?v_28 ?v_18)) (not (= ?v_28 ?v_19))))) (and (and (not (= ?v_5 ?v_44)) (and (and (not (= ?v_44 ?v_12)) (not (= ?v_44 ?v_13))) (and (not (= ?v_5 ?v_52)) (not (= ?v_5 ?v_53))))) (and (and (not (= ?v_5 ?v_22)) (and (and (not (= ?v_22 ?v_12)) (not (= ?v_22 ?v_13))) (and (not (= ?v_5 ?v_23)) (not (= ?v_5 ?v_24))))) (and (and (not (= ?v_38 ?v_1)) (and (and (not (= ?v_1 ?v_48)) (not (= ?v_1 ?v_49))) (and (not (= ?v_38 ?v_16)) (not (= ?v_38 ?v_17))))) (and (and (not (= ?v_38 ?v_11)) (and (and (not (= ?v_11 ?v_48)) (not (= ?v_11 ?v_49))) (and (not (= ?v_38 ?v_18)) (not (= ?v_38 ?v_19))))) (and (separation1 ?v_6 ?v_9) (and (valid_acc ?v_9) (and (valid_acc ?v_6) (and (valid_acc_range ?v_9 5) (valid_acc_range ?v_6 5))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (=> ?v_66 (forall ((?anonymous_2_v1_global0 c_unique)) (forall ((?anonymous_2_v2_global0 c_unique)) (forall ((?intM_global0 c_unique)) (let ((?v_67 (type_memory c_int type_global)) (?v_69 (type_pset type_global))) (let ((?v_68 (c_sort ?v_69 (pset_singleton ?v_14)))) (=> (and (and (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v1_global) (c_sort ?v_67 ?anonymous_2_v1_global0) ?v_68) (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v2_global) (c_sort ?v_67 ?anonymous_2_v2_global0) ?v_68)) (not_assigns ?v_25 (c_sort ?v_67 ?intM_global) (c_sort ?v_67 ?intM_global0) (c_sort ?v_69 (pset_union (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_9 ?v_14)))) 0 4)) (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_6 ?v_14)))) 0 4)))))) (=> (valid ?v_25 ?v_8) (forall ((?anonymous_2_v1_global1 c_unique)) (forall ((?anonymous_2_v2_global1 c_unique)) (forall ((?intM_global1 c_unique)) (let ((?v_70 (c_sort ?v_69 (pset_singleton ?v_8)))) (=> (and (and (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v1_global0) (c_sort ?v_67 ?anonymous_2_v1_global1) ?v_70) (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v2_global0) (c_sort ?v_67 ?anonymous_2_v2_global1) ?v_70)) (not_assigns ?v_25 (c_sort ?v_67 ?intM_global0) (c_sort ?v_67 ?intM_global1) (c_sort ?v_69 (pset_union (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_9 ?v_8)))) 0 4)) (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_6 ?v_8)))) 0 4)))))) (=> (valid ?v_25 ?v_20) (forall ((?anonymous_2_v1_global2 c_unique)) (forall ((?anonymous_2_v2_global2 c_unique)) (forall ((?intM_global2 c_unique)) (let ((?v_71 (c_sort ?v_69 (pset_singleton ?v_20)))) (=> (and (and (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v1_global1) (c_sort ?v_67 ?anonymous_2_v1_global2) ?v_71) (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v2_global1) (c_sort ?v_67 ?anonymous_2_v2_global2) ?v_71)) (not_assigns ?v_25 (c_sort ?v_67 ?intM_global1) (c_sort ?v_67 ?intM_global2) (c_sort ?v_69 (pset_union (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_9 ?v_20)))) 0 4)) (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_6 ?v_20)))) 0 4)))))) (=> (valid ?v_25 ?v_43) (forall ((?anonymous_2_v1_global3 c_unique)) (forall ((?anonymous_2_v2_global3 c_unique)) (forall ((?intM_global3 c_unique)) (let ((?v_72 (c_sort ?v_69 (pset_singleton ?v_43)))) (=> (and (and (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v1_global2) (c_sort ?v_67 ?anonymous_2_v1_global3) ?v_72) (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v2_global2) (c_sort ?v_67 ?anonymous_2_v2_global3) ?v_72)) (not_assigns ?v_25 (c_sort ?v_67 ?intM_global2) (c_sort ?v_67 ?intM_global3) (c_sort ?v_69 (pset_union (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_9 ?v_43)))) 0 4)) (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_6 ?v_43)))) 0 4)))))) (=> (valid ?v_25 ?v_3) (forall ((?anonymous_2_v1_global4 c_unique)) (forall ((?anonymous_2_v2_global4 c_unique)) (forall ((?intM_global4 c_unique)) (let ((?v_73 (c_sort ?v_69 (pset_singleton ?v_3)))) (=> (and (and (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v1_global3) (c_sort ?v_67 ?anonymous_2_v1_global4) ?v_73) (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v2_global3) (c_sort ?v_67 ?anonymous_2_v2_global4) ?v_73)) (not_assigns ?v_25 (c_sort ?v_67 ?intM_global3) (c_sort ?v_67 ?intM_global4) (c_sort ?v_69 (pset_union (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_9 ?v_3)))) 0 4)) (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_6 ?v_3)))) 0 4)))))) (=> (valid ?v_25 ?v_40) (forall ((?anonymous_2_v1_global5 c_unique)) (forall ((?anonymous_2_v2_global5 c_unique)) (forall ((?intM_global5 c_unique)) (let ((?v_74 (c_sort ?v_69 (pset_singleton ?v_40)))) (=> (and (and (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v1_global4) (c_sort ?v_67 ?anonymous_2_v1_global5) ?v_74) (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v2_global4) (c_sort ?v_67 ?anonymous_2_v2_global5) ?v_74)) (not_assigns ?v_25 (c_sort ?v_67 ?intM_global4) (c_sort ?v_67 ?intM_global5) (c_sort ?v_69 (pset_union (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_9 ?v_40)))) 0 4)) (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_6 ?v_40)))) 0 4)))))) (=> (valid ?v_25 ?v_37) (forall ((?anonymous_2_v1_global6 c_unique)) (forall ((?anonymous_2_v2_global6 c_unique)) (forall ((?intM_global6 c_unique)) (let ((?v_75 (c_sort ?v_69 (pset_singleton ?v_37)))) (=> (and (and (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v1_global5) (c_sort ?v_67 ?anonymous_2_v1_global6) ?v_75) (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v2_global5) (c_sort ?v_67 ?anonymous_2_v2_global6) ?v_75)) (not_assigns ?v_25 (c_sort ?v_67 ?intM_global5) (c_sort ?v_67 ?intM_global6) (c_sort ?v_69 (pset_union (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_9 ?v_37)))) 0 4)) (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_6 ?v_37)))) 0 4)))))) (=> (valid ?v_25 ?v_32) (forall ((?anonymous_2_v1_global7 c_unique)) (forall ((?anonymous_2_v2_global7 c_unique)) (forall ((?intM_global7 c_unique)) (let ((?v_76 (c_sort ?v_69 (pset_singleton ?v_32)))) (=> (and (and (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v1_global6) (c_sort ?v_67 ?anonymous_2_v1_global7) ?v_76) (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v2_global6) (c_sort ?v_67 ?anonymous_2_v2_global7) ?v_76)) (not_assigns ?v_25 (c_sort ?v_67 ?intM_global6) (c_sort ?v_67 ?intM_global7) (c_sort ?v_69 (pset_union (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_9 ?v_32)))) 0 4)) (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_6 ?v_32)))) 0 4)))))) (=> (valid ?v_25 ?v_27) (forall ((?anonymous_2_v1_global8 c_unique)) (forall ((?anonymous_2_v2_global8 c_unique)) (forall ((?intM_global8 c_unique)) (let ((?v_77 (c_sort ?v_69 (pset_singleton ?v_27))) (?v_78 (offset ?v_26))) (=> (and (and (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v1_global7) (c_sort ?v_67 ?anonymous_2_v1_global8) ?v_77) (not_assigns ?v_25 (c_sort ?v_67 ?anonymous_2_v2_global7) (c_sort ?v_67 ?anonymous_2_v2_global8) ?v_77)) (not_assigns ?v_25 (c_sort ?v_67 ?intM_global7) (c_sort ?v_67 ?intM_global8) (c_sort ?v_69 (pset_union (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_9 ?v_27)))) 0 4)) (c_sort ?v_69 (pset_range (c_sort ?v_69 (pset_singleton (c_sort ?v_0 (acc ?v_6 ?v_27)))) 0 4)))))) (and (<= 0 ?v_78) (< ?v_78 (block_length ?v_25 ?v_26))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/quaternion_ds1_symm_0428.fof.smt2 b/test/regress/regress1/quantifiers/quaternion_ds1_symm_0428.fof.smt2 new file mode 100644 index 000000000..e7be953ce --- /dev/null +++ b/test/regress/regress1/quantifiers/quaternion_ds1_symm_0428.fof.smt2 @@ -0,0 +1,49 @@ +; COMMAND-LINE: --full-saturate-quant --multi-trigger-cache +; EXPECT: unsat +(set-logic AUFLIRA) +(set-info :status unsat) +(declare-fun def () Real) +(declare-fun h_ds1_filter () (Array Int (Array Int Real))) +(declare-fun id_ds1_filter () (Array Int (Array Int Real))) +(declare-fun pminus_ds1_filter () (Array Int (Array Int Real))) +(declare-fun pv5 () Int) +(declare-fun q_ds1_filter () (Array Int (Array Int Real))) +(declare-fun r_ds1_filter () (Array Int (Array Int Real))) +(declare-fun use () Real) +(declare-fun uniform_int_rnd (Int Int) Int) +(declare-fun abs_ (Real) Real) +(declare-fun log (Real) Real) +(declare-fun exp (Real) Real) +(declare-fun cos (Real) Real) +(declare-fun sin (Real) Real) +(declare-fun sqrt (Real) Real) +(declare-fun divide (Real Real) Real) +(declare-fun cond (Int Real Real) Real) +(declare-fun tptp_term_equal (Real Real) Int) +(declare-fun tptp_term_equals (Real Real) Int) +(declare-fun tptp_term_and (Real Real) Int) +(declare-fun sum (Int Int Real) Real) +(declare-fun dim (Int Int) Int) +(declare-fun trans ((Array Int (Array Int Real))) (Array Int (Array Int Real))) +(declare-fun inv ((Array Int (Array Int Real))) (Array Int (Array Int Real))) +(declare-fun tptp_mmul ((Array Int (Array Int Real)) (Array Int (Array Int Real))) (Array Int (Array Int Real))) +(declare-fun tptp_madd ((Array Int (Array Int Real)) (Array Int (Array Int Real))) (Array Int (Array Int Real))) +(declare-fun tptp_msub ((Array Int (Array Int Real)) (Array Int (Array Int Real))) (Array Int (Array Int Real))) +(declare-fun tptp_const_array1 (Int Real) (Array Int Real)) +(declare-fun tptp_const_array2 (Int Int Real) (Array Int (Array Int Real))) +(assert (forall ((?X_0 Int) (?C_1 Int)) (=> (>= ?X_0 0) (<= (uniform_int_rnd ?C_1 ?X_0) ?X_0)))) +(assert (forall ((?X_2 Int) (?C_3 Int)) (=> (>= ?X_2 0) (>= (uniform_int_rnd ?C_3 ?X_2) 0)))) +(assert (forall ((?I_4 Int) (?L_5 Int) (?U_6 Int) (?Val_7 Real)) (=> (and (<= ?L_5 ?I_4) (<= ?I_4 ?U_6)) (= (select (tptp_const_array1 (dim ?L_5 ?U_6) ?Val_7) ?I_4) ?Val_7)))) +(assert (forall ((?I_8 Int) (?L1_9 Int) (?U1_10 Int) (?J_11 Int) (?L2_12 Int) (?U2_13 Int) (?Val_14 Real)) (=> (and (and (and (<= ?L1_9 ?I_8) (<= ?I_8 ?U1_10)) (<= ?L2_12 ?J_11)) (<= ?J_11 ?U2_13)) (= (select (select (tptp_const_array2 (dim ?L1_9 ?U1_10) (dim ?L2_12 ?U2_13) ?Val_14) ?I_8) ?J_11) ?Val_14)))) +(assert (forall ((?I0_15 Int) (?J0_16 Int) (?A_17 (Array Int (Array Int Real))) (?B_18 (Array Int (Array Int Real))) (?N_19 Int)) (let ((?v_0 (tptp_mmul ?A_17 (tptp_mmul ?B_18 (trans ?A_17))))) (=> (and (and (and (and (>= ?I0_15 0) (<= ?I0_15 ?N_19)) (>= ?J0_16 0)) (<= ?J0_16 ?N_19)) (= (select (select ?B_18 ?I0_15) ?J0_16) (select (select ?B_18 ?J0_16) ?I0_15))) (= (select (select ?v_0 ?I0_15) ?J0_16) (select (select ?v_0 ?J0_16) ?I0_15)))))) +(assert (forall ((?I0_20 Int) (?J0_21 Int) (?I_22 Int) (?J_23 Int) (?A_24 (Array Int (Array Int Real))) (?B_25 (Array Int (Array Int Real))) (?N_26 Int) (?M_27 Int)) (let ((?v_0 (tptp_mmul ?A_24 (tptp_mmul ?B_25 (trans ?A_24))))) (=> (and (and (and (and (and (and (and (and (>= ?I0_20 0) (<= ?I0_20 ?N_26)) (>= ?J0_21 0)) (<= ?J0_21 ?N_26)) (>= ?I_22 0)) (<= ?I_22 ?M_27)) (>= ?J_23 0)) (<= ?J_23 ?M_27)) (= (select (select ?B_25 ?I_22) ?J_23) (select (select ?B_25 ?J_23) ?I_22))) (= (select (select ?v_0 ?I0_20) ?J0_21) (select (select ?v_0 ?J0_21) ?I0_20)))))) +(assert (forall ((?I_28 Int) (?J_29 Int) (?A_30 (Array Int (Array Int Real))) (?B_31 (Array Int (Array Int Real))) (?N_32 Int)) (let ((?v_0 (tptp_madd ?A_30 ?B_31))) (=> (and (and (and (and (and (>= ?I_28 0) (<= ?I_28 ?N_32)) (>= ?J_29 0)) (<= ?J_29 ?N_32)) (= (select (select ?A_30 ?I_28) ?J_29) (select (select ?A_30 ?J_29) ?I_28))) (= (select (select ?B_31 ?I_28) ?J_29) (select (select ?B_31 ?J_29) ?I_28))) (= (select (select ?v_0 ?I_28) ?J_29) (select (select ?v_0 ?J_29) ?I_28)))))) +(assert (forall ((?I_33 Int) (?J_34 Int) (?A_35 (Array Int (Array Int Real))) (?B_36 (Array Int (Array Int Real))) (?N_37 Int)) (let ((?v_0 (tptp_msub ?A_35 ?B_36))) (=> (and (and (and (and (and (>= ?I_33 0) (<= ?I_33 ?N_37)) (>= ?J_34 0)) (<= ?J_34 ?N_37)) (= (select (select ?A_35 ?I_33) ?J_34) (select (select ?A_35 ?J_34) ?I_33))) (= (select (select ?B_36 ?I_33) ?J_34) (select (select ?B_36 ?J_34) ?I_33))) (= (select (select ?v_0 ?I_33) ?J_34) (select (select ?v_0 ?J_34) ?I_33)))))) +(assert (forall ((?I_38 Int) (?J_39 Int) (?A_40 (Array Int (Array Int Real))) (?N_41 Int)) (let ((?v_0 (trans ?A_40))) (=> (and (and (and (and (>= ?I_38 0) (<= ?I_38 ?N_41)) (>= ?J_39 0)) (<= ?J_39 ?N_41)) (= (select (select ?A_40 ?I_38) ?J_39) (select (select ?A_40 ?J_39) ?I_38))) (= (select (select ?v_0 ?I_38) ?J_39) (select (select ?v_0 ?J_39) ?I_38)))))) +(assert (forall ((?I_42 Int) (?J_43 Int) (?A_44 (Array Int (Array Int Real))) (?N_45 Int)) (let ((?v_0 (inv ?A_44))) (=> (and (and (and (and (>= ?I_42 0) (<= ?I_42 ?N_45)) (>= ?J_43 0)) (<= ?J_43 ?N_45)) (= (select (select ?A_44 ?I_42) ?J_43) (select (select ?A_44 ?J_43) ?I_42))) (= (select (select ?v_0 ?I_42) ?J_43) (select (select ?v_0 ?J_43) ?I_42)))))) +(assert (forall ((?I0_46 Int) (?J0_47 Int) (?I_48 Int) (?J_49 Int) (?A_50 (Array Int (Array Int Real))) (?B_51 (Array Int (Array Int Real))) (?C_52 (Array Int (Array Int Real))) (?D_53 (Array Int (Array Int Real))) (?E_54 (Array Int (Array Int Real))) (?F_55 (Array Int (Array Int Real))) (?N_56 Int) (?M_57 Int)) (let ((?v_0 (tptp_madd ?A_50 (tptp_mmul ?B_51 (tptp_mmul (tptp_madd (tptp_mmul ?C_52 (tptp_mmul ?D_53 (trans ?C_52))) (tptp_mmul ?E_54 (tptp_mmul ?F_55 (trans ?E_54)))) (trans ?B_51)))))) (=> (and (and (and (and (and (and (and (and (and (and (>= ?I0_46 0) (<= ?I0_46 ?N_56)) (>= ?J0_47 0)) (<= ?J0_47 ?N_56)) (>= ?I_48 0)) (<= ?I_48 ?M_57)) (>= ?J_49 0)) (<= ?J_49 ?M_57)) (= (select (select ?D_53 ?I_48) ?J_49) (select (select ?D_53 ?J_49) ?I_48))) (= (select (select ?A_50 ?I0_46) ?J0_47) (select (select ?A_50 ?J0_47) ?I0_46))) (= (select (select ?F_55 ?I0_46) ?J0_47) (select (select ?F_55 ?J0_47) ?I0_46))) (= (select (select ?v_0 ?I0_46) ?J0_47) (select (select ?v_0 ?J0_47) ?I0_46)))))) +(assert (forall ((?Body_58 Real)) (= (sum 0 (- 1) ?Body_58) 0.0))) +(assert (not (= def use))) +(assert (not (=> (and (and (and (and (and (and (>= pv5 0) (<= pv5 998)) (> pv5 0)) (forall ((?A_59 Int) (?B_60 Int)) (=> (and (and (and (>= ?A_59 0) (>= ?B_60 0)) (<= ?A_59 5)) (<= ?B_60 5)) (= (select (select q_ds1_filter ?A_59) ?B_60) (select (select q_ds1_filter ?B_60) ?A_59))))) (forall ((?C_61 Int) (?D_62 Int)) (=> (and (and (and (>= ?C_61 0) (>= ?D_62 0)) (<= ?C_61 2)) (<= ?D_62 2)) (= (select (select r_ds1_filter ?C_61) ?D_62) (select (select r_ds1_filter ?D_62) ?C_61))))) (forall ((?E_63 Int) (?F_64 Int)) (=> (and (and (and (>= ?E_63 0) (>= ?F_64 0)) (<= ?E_63 5)) (<= ?F_64 5)) (= (select (select pminus_ds1_filter ?E_63) ?F_64) (select (select pminus_ds1_filter ?F_64) ?E_63))))) (forall ((?G_65 Int)) (=> (and (>= ?G_65 0) (<= ?G_65 5)) (forall ((?H_66 Int)) (=> (and (>= ?H_66 0) (<= ?H_66 5)) (= (select (select id_ds1_filter ?G_65) ?H_66) (select (select id_ds1_filter ?H_66) ?G_65))))))) (forall ((?I_67 Int) (?J_68 Int)) (let ((?v_0 (trans h_ds1_filter))) (let ((?v_1 (tptp_mmul pminus_ds1_filter (tptp_mmul ?v_0 (inv (tptp_madd r_ds1_filter (tptp_mmul h_ds1_filter (tptp_mmul pminus_ds1_filter ?v_0)))))))) (let ((?v_2 (tptp_mmul ?v_1 (tptp_mmul r_ds1_filter (trans ?v_1))))) (=> (and (and (and (>= ?I_67 0) (>= ?J_68 0)) (<= ?I_67 5)) (<= ?J_68 5)) (= (select (select ?v_2 ?I_67) ?J_68) (select (select ?v_2 ?J_68) ?I_67)))))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/rew-to-0211-dd.smt2 b/test/regress/regress1/quantifiers/rew-to-0211-dd.smt2 new file mode 100644 index 000000000..ec49231e3 --- /dev/null +++ b/test/regress/regress1/quantifiers/rew-to-0211-dd.smt2 @@ -0,0 +1,259 @@ +(set-logic UFLIA) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-fun boolIff (Int Int) Int) +(declare-fun PeerGroupPlaceholder_ () Int) +(declare-fun intGreater (Int Int) Int) +(declare-fun IfThenElse_ (Int Int Int) Int) +(declare-fun System.IConvertible () Int) +(declare-fun CONCVARSYM (Int) Int) +(declare-fun throwException_in () Int) +(declare-fun SharingMode_Unshared_ () Int) +(declare-fun System.Reflection.IReflect () Int) +(declare-fun result_0_ () Int) +(declare-fun block3502_2_block3553_correct () Int) +(declare-fun int_m2147483648 () Int) +(declare-fun local0_0 () Int) +(declare-fun System.Int32 () Int) +(declare-fun local0_1 () Int) +(declare-fun block3536_2_block3553_correct () Int) +(declare-fun block3553_correct () Int) +(declare-fun intAtMost (Int Int) Int) +(declare-fun multiply (Int Int) Int) +(declare-fun Is_ (Int Int) Int) +(declare-fun Smt.true () Int) +(declare-fun ElementType_ (Int) Int) +(declare-fun divide (Int Int) Int) +(declare-fun int_m9223372036854775808 () Int) +(declare-fun divides (Int Int) Int) +(declare-fun stack0b_0 () Int) +(declare-fun select1 (Int Int) Int) +(declare-fun stack0b_1 () Int) +(declare-fun store1 (Int Int Int) Int) +(declare-fun select2 (Int Int Int) Int) +(declare-fun nullObject () Int) +(declare-fun store2 (Int Int Int Int) Int) +(declare-fun false3451to3468_correct () Int) +(declare-fun modulo (Int Int) Int) +(declare-fun System.IComparable () Int) +(declare-fun ownerRef_ () Int) +(declare-fun StructSet_ (Int Int Int) Int) +(declare-fun AsDirectSubClass (Int Int) Int) +(declare-fun System.IEquatable_1...System.String () Int) +(declare-fun System.Boolean () Int) +(declare-fun shl_ (Int Int) Int) +(declare-fun DimLength_ (Int Int) Int) +(declare-fun anyEqual (Int Int) Int) +(declare-fun System.Array () Int) +(declare-fun block3451_correct () Int) +(declare-fun System.Collections.Generic.IEnumerable_1...System.Char () Int) +(declare-fun System.Reflection.ICustomAttributeProvider () Int) +(declare-fun SharingMode_LockProtected_ () Int) +(declare-fun IsMemberlessType_ (Int) Int) +(declare-fun PartOfLine () Int) +(declare-fun System.UInt16 () Int) +(declare-fun false3434to3451_correct () Int) +(declare-fun ClassRepr (Int) Int) +(declare-fun System.Runtime.InteropServices._Type () Int) +(declare-fun boolNot (Int) Int) +(declare-fun Microsoft.Contracts.ICheckedException () Int) +(declare-fun System.Exception () Int) +(declare-fun System.Runtime.InteropServices._MemberInfo () Int) +(declare-fun boolAnd (Int Int) Int) +(declare-fun boolImplies (Int Int) Int) +(declare-fun Unbox (Int) Int) +(declare-fun intAtLeast (Int Int) Int) +(declare-fun ownerFrame_ () Int) +(declare-fun int_4294967295 () Int) +(declare-fun IsAllocated (Int Int) Int) +(declare-fun TypeName (Int) Int) +(declare-fun AsPeerField (Int) Int) +(declare-fun int_9223372036854775807 () Int) +(declare-fun AsRepField (Int Int) Int) +(declare-fun System.Reflection.MemberInfo () Int) +(declare-fun ArrayCategoryValue_ () Int) +(declare-fun is (Int Int) Int) +(declare-fun Microsoft.Contracts.GuardException () Int) +(declare-fun InRange (Int Int) Bool) +(declare-fun AsOwner (Int Int) Int) +(declare-fun System.Int64 () Int) +(declare-fun System.Runtime.InteropServices._Exception () Int) +(declare-fun or_ (Int Int) Int) +(declare-fun As_ (Int Int) Int) +(declare-fun exposeVersion_ () Int) +(declare-fun true3434to3536_correct () Int) +(declare-fun System.Type () Int) +(declare-fun intLess (Int Int) Int) +(declare-fun AsImmutable_ (Int) Int) +(declare-fun NonNullFieldsAreInitialized_ () Int) +(declare-fun block3417_correct () Int) +(declare-fun LBound_ (Int Int) Int) +(declare-fun System.Object () Int) +(declare-fun System.UInt32 () Int) +(declare-fun localinv_ () Int) +(declare-fun inv_ () Int) +(declare-fun Interval () Int) +(declare-fun stack50000o_0 () Int) +(declare-fun stack50000o_1 () Int) +(declare-fun Heap_0_ () Int) +(declare-fun entry_correct () Int) +(declare-fun FirstConsistentOwner_ () Int) +(declare-fun UnboxedType (Int) Int) +(declare-fun AsRefField (Int Int) Int) +(declare-fun System.Byte () Int) +(declare-fun this () Int) +(declare-fun stack1o_0 () Int) +(declare-fun int_2147483647 () Int) +(declare-fun ArrayCategoryRef_ () Int) +(declare-fun Interval.a () Int) +(declare-fun Interval.b () Int) +(declare-fun stack1i_0 () Int) +(declare-fun Heap_ () Int) +(declare-fun Length_ (Int) Int) +(declare-fun System.Runtime.Serialization.ISerializable () Int) +(declare-fun AsNonNullRefField (Int Int) Int) +(declare-fun IsHeap (Int) Int) +(declare-fun Heap_1_ () Int) +(declare-fun UBound_ (Int Int) Int) +(declare-fun Cell () Int) +(declare-fun System.String () Int) +(declare-fun System.String.IsInterned_System.String_notnull_ (Int) Int) +(declare-fun Rank_ (Int) Int) +(declare-fun UnknownRef_ () Int) +(declare-fun RefArraySet (Int Int Int) Int) +(declare-fun ValueArraySet (Int Int Int) Int) +(declare-fun stack50000o () Int) +(declare-fun boolOr (Int Int) Int) +(declare-fun sharingMode_ () Int) +(declare-fun subtypes (Int Int) Bool) +(declare-fun System.IComparable_1...System.String () Int) +(declare-fun System.String.Equals_System.String_System.String_ (Int Int) Int) +(declare-fun block3434_correct () Int) +(declare-fun anyNeq (Int Int) Int) +(declare-fun IsStaticField (Int) Int) +(declare-fun SS_Display.Return.Local_0 () Int) +(declare-fun IsNotNull_ (Int Int) Int) +(declare-fun typeof_ (Int) Int) +(declare-fun ArrayCategoryNonNullRef_ () Int) +(declare-fun RefArrayGet (Int Int) Int) +(declare-fun ValueArrayGet (Int Int) Int) +(declare-fun TypeObject (Int) Int) +(declare-fun and_ (Int Int) Int) +(declare-fun BoxTester (Int Int) Int) +(declare-fun Microsoft.Contracts.ObjectInvariantException () Int) +(declare-fun block3468_correct () Int) +(declare-fun IsValueType_ (Int) Int) +(declare-fun Heap_2_ () Int) +(declare-fun AsRangeField (Int Int) Int) +(declare-fun System.SByte () Int) +(declare-fun BeingConstructed_ () Int) +(declare-fun block3502_correct () Int) +(declare-fun FieldDependsOnFCO_ (Int Int Int) Int) +(declare-fun NonNullRefArray (Int Int) Int) +(declare-fun RefArray (Int Int) Int) +(declare-fun ArrayCategory_ (Int) Int) +(declare-fun stack0b () Int) +(declare-fun Cell.Value () Int) +(declare-fun AsPureObject_ (Int) Int) +(declare-fun System.String.Equals_System.String_ (Int Int) Int) +(declare-fun System.Int16 () Int) +(declare-fun block3536_correct () Int) +(declare-fun AsMutable_ (Int) Int) +(declare-fun System.Char () Int) +(declare-fun System.UInt64 () Int) +(declare-fun StructGet_ (Int Int) Int) +(declare-fun OneClassDown (Int Int) Int) +(declare-fun ArrayIndex (Int Int Int Int) Int) +(declare-fun stack0o_0 () Int) +(declare-fun Box (Int Int) Int) +(declare-fun stack0o_1 () Int) +(declare-fun int_18446744073709551615 () Int) +(declare-fun shr_ (Int Int) Int) +(declare-fun stack0i_0 () Int) +(declare-fun block3553_2_GeneratedUnifiedExit_correct () Int) +(declare-fun System.ICloneable () Int) +(declare-fun IsDirectlyModifiableField (Int) Int) +(declare-fun StringLength_ (Int) Int) +(declare-fun allocated_ () Int) +(declare-fun BaseClass_ (Int) Int) +(declare-fun ValueArray (Int Int) Int) +(declare-fun Smt.false () Int) +(declare-fun true3451to3502_correct () Int) +(declare-fun IsImmutable_ (Int) Int) +(declare-fun elements_ () Int) +(declare-fun DeclType (Int) Int) +(declare-fun System.Collections.IEnumerable () Int) +(declare-fun ReallyLastGeneratedExit_correct () Int) +(assert (forall ((?o Int) (?T Int)) (! (= (= (IsNotNull_ ?o ?T) Smt.true) (and (not (= ?o nullObject)) (= (Is_ ?o ?T) Smt.true))) :pattern ((IsNotNull_ ?o ?T)) ))) +(assert (forall ((?h Int) (?o Int) (?f Int) (?T Int)) (! (=> (and (= (IsHeap ?h) Smt.true) (not (= ?o nullObject)) (or (not (= ?o BeingConstructed_)) (= (= (select2 ?h BeingConstructed_ NonNullFieldsAreInitialized_) Smt.true) true))) (not (= (select2 ?h ?o (AsNonNullRefField ?f ?T)) nullObject))) :pattern ((select2 ?h ?o (AsNonNullRefField ?f ?T))) ))) +(assert (forall ((?o Int) (?T Int)) (! (=> (and (not (= ?o nullObject)) (not (= ?o BeingConstructed_)) (subtypes (typeof_ ?o) (AsImmutable_ ?T))) (forall ((?h Int)) (! (let ((?v_0 (typeof_ ?o))) (=> (= (IsHeap ?h) Smt.true) (and (= (select2 ?h ?o inv_) ?v_0) (= (select2 ?h ?o localinv_) ?v_0) (= (select2 ?h ?o ownerFrame_) PeerGroupPlaceholder_) (= (AsOwner ?o (select2 ?h ?o ownerRef_)) ?o) (forall ((?t Int)) (! (=> (= (AsOwner ?o (select2 ?h ?t ownerRef_)) ?o) (or (= ?t ?o) (not (= (select2 ?h ?t ownerFrame_) PeerGroupPlaceholder_)))) :pattern ((AsOwner ?o (select2 ?h ?t ownerRef_))) ))))) :pattern ((IsHeap ?h)) ))) :pattern ((subtypes (typeof_ ?o) (AsImmutable_ ?T))) ))) +(assert (= (IsValueType_ System.SByte) Smt.true)) +(assert (= (IsValueType_ System.Byte) Smt.true)) +(assert (= (IsValueType_ System.Int16) Smt.true)) +(assert (= (IsValueType_ System.UInt16) Smt.true)) +(assert (= (IsValueType_ System.Int32) Smt.true)) +(assert (= (IsValueType_ System.UInt32) Smt.true)) +(assert (= (IsValueType_ System.Int64) Smt.true)) +(assert (= (IsValueType_ System.UInt64) Smt.true)) +(assert (= (IsValueType_ System.Char) Smt.true)) +(assert (< int_m9223372036854775808 int_m2147483648)) +(assert (< int_m2147483648 (- 0 100000))) +(assert (< 100000 int_2147483647)) +(assert (< int_2147483647 int_4294967295)) +(assert (< int_4294967295 int_9223372036854775807)) +(assert (< int_9223372036854775807 int_18446744073709551615)) +(assert (not (= (IsStaticField Cell.Value) Smt.true))) +(assert (= (IsDirectlyModifiableField Cell.Value) Smt.true)) +(assert (= (DeclType Cell.Value) Cell)) +(assert (= (AsRangeField Cell.Value System.Int32) Cell.Value)) +(assert (not (= (IsStaticField Interval.a) Smt.true))) +(assert (= (IsDirectlyModifiableField Interval.a) Smt.true)) +(assert (= (AsRepField Interval.a Interval) Interval.a)) +(assert (= (DeclType Interval.a) Interval)) +(assert (= (AsNonNullRefField Interval.a Cell) Interval.a)) +(assert (not (= (IsStaticField Interval.b) Smt.true))) +(assert (= (IsDirectlyModifiableField Interval.b) Smt.true)) +(assert (= (AsRepField Interval.b Interval) Interval.b)) +(assert (= (DeclType Interval.b) Interval)) +(assert (= (AsNonNullRefField Interval.b Cell) Interval.b)) +(assert (subtypes Cell Cell)) +(assert (= (BaseClass_ Cell) System.Object)) +(assert (subtypes Cell (BaseClass_ Cell))) +(assert (= (AsDirectSubClass Cell (BaseClass_ Cell)) Cell)) +(assert (not (= (IsImmutable_ Cell) Smt.true))) +(assert (= (AsMutable_ Cell) Cell)) +(assert (subtypes System.Type System.Type)) +(assert (subtypes System.Reflection.MemberInfo System.Reflection.MemberInfo)) +(assert (= (BaseClass_ System.Reflection.MemberInfo) System.Object)) +(assert (subtypes System.Reflection.MemberInfo (BaseClass_ System.Reflection.MemberInfo))) +(assert (= (AsDirectSubClass System.Reflection.MemberInfo (BaseClass_ System.Reflection.MemberInfo)) System.Reflection.MemberInfo)) +(assert (= (IsImmutable_ System.Reflection.MemberInfo) Smt.true)) +(assert (= (AsImmutable_ System.Reflection.MemberInfo) System.Reflection.MemberInfo)) +(assert (subtypes System.Reflection.ICustomAttributeProvider System.Object)) +(assert (= (IsMemberlessType_ System.Reflection.ICustomAttributeProvider) Smt.true)) +(assert (subtypes System.Reflection.MemberInfo System.Reflection.ICustomAttributeProvider)) +(assert (subtypes System.Runtime.InteropServices._MemberInfo System.Object)) +(assert (= (IsMemberlessType_ System.Runtime.InteropServices._MemberInfo) Smt.true)) +(assert (subtypes System.Reflection.MemberInfo System.Runtime.InteropServices._MemberInfo)) +(assert (= (IsMemberlessType_ System.Reflection.MemberInfo) Smt.true)) +(assert (= (BaseClass_ System.Type) System.Reflection.MemberInfo)) +(assert (subtypes System.Type (BaseClass_ System.Type))) +(assert (= (AsDirectSubClass System.Type (BaseClass_ System.Type)) System.Type)) +(assert (= (IsImmutable_ System.Type) Smt.true)) +(assert (= (AsImmutable_ System.Type) System.Type)) +(assert (subtypes System.Runtime.InteropServices._Type System.Object)) +(assert (= (IsMemberlessType_ System.Runtime.InteropServices._Type) Smt.true)) +(assert (subtypes System.Type System.Runtime.InteropServices._Type)) +(assert (subtypes System.Reflection.IReflect System.Object)) +(assert (= (IsMemberlessType_ System.Reflection.IReflect) Smt.true)) +(assert (subtypes System.Type System.Reflection.IReflect)) +(assert (= (IsMemberlessType_ System.Type) Smt.true)) +(assert (subtypes PartOfLine PartOfLine)) +(assert (= (BaseClass_ PartOfLine) System.Object)) +(assert (subtypes PartOfLine (BaseClass_ PartOfLine))) +(assert (= (AsDirectSubClass PartOfLine (BaseClass_ PartOfLine)) PartOfLine)) +(assert (distinct Smt.false Smt.true)) +(assert (let ((?v_0 (select2 Heap_ this ownerFrame_)) (?v_1 (select2 Heap_ this ownerRef_)) (?v_2 (not (= this nullObject))) (?v_3 (not (= stack0o_0 nullObject))) (?v_4 (not (= stack1o_0 nullObject))) (?v_5 (forall ((?o_ Int)) (=> (and (not (= ?o_ nullObject)) (= (= (select2 Heap_ ?o_ allocated_) Smt.true) true)) (and (= (select2 Heap_ ?o_ ownerRef_) (select2 Heap_2_ ?o_ ownerRef_)) (= (select2 Heap_ ?o_ ownerFrame_) (select2 Heap_2_ ?o_ ownerFrame_)))))) (?v_12 (=> true true)) (?v_6 (= ReallyLastGeneratedExit_correct Smt.true)) (?v_7 (= block3553_2_GeneratedUnifiedExit_correct Smt.true)) (?v_15 (= block3553_correct Smt.true)) (?v_14 (= throwException_in Smt.true)) (?v_8 (not (= stack50000o_0 nullObject))) (?v_11 (typeof_ stack50000o_0)) (?v_9 (select2 Heap_1_ stack50000o_0 ownerFrame_)) (?v_10 (select2 Heap_1_ stack50000o_0 ownerRef_)) (?v_13 (= block3468_correct Smt.true)) (?v_19 (= false3451to3468_correct Smt.true))) (let ((?v_21 (=> true ?v_15)) (?v_16 (= block3502_2_block3553_correct Smt.true)) (?v_17 (= block3502_correct Smt.true)) (?v_18 (= true3451to3502_correct Smt.true)) (?v_20 (= block3451_correct Smt.true)) (?v_25 (= false3434to3451_correct Smt.true)) (?v_22 (= block3536_2_block3553_correct Smt.true)) (?v_23 (= block3536_correct Smt.true)) (?v_24 (= true3434to3536_correct Smt.true)) (?v_26 (= block3434_correct Smt.true)) (?v_27 (= block3417_correct Smt.true)) (?v_28 (= entry_correct Smt.true))) (not (=> (=> (=> true (=> (= (IsHeap Heap_) Smt.true) (=> true (=> (= BeingConstructed_ nullObject) (=> (and (or (= ?v_0 PeerGroupPlaceholder_) (not (subtypes (select2 Heap_ ?v_1 inv_) ?v_0)) (= (select2 Heap_ ?v_1 localinv_) (BaseClass_ ?v_0))) (forall ((?pc_ Int)) (let ((?v_29 (typeof_ ?pc_))) (=> (and (not (= ?pc_ nullObject)) (= (= (select2 Heap_ ?pc_ allocated_) Smt.true) true) (= (select2 Heap_ ?pc_ ownerRef_) ?v_1) (= (select2 Heap_ ?pc_ ownerFrame_) ?v_0)) (and (= (select2 Heap_ ?pc_ inv_) ?v_29) (= (select2 Heap_ ?pc_ localinv_) ?v_29)))))) (=> true (=> true (=> (= (IsNotNull_ this Interval) Smt.true) (=> (= (= (select2 Heap_ this allocated_) Smt.true) true) (=> true (=> (=> (=> true (=> true (=> true (=> (=> (=> true (=> true (and ?v_2 (=> ?v_2 (=> (= stack0o_0 (select2 Heap_ this Interval.a)) (and ?v_3 (=> ?v_3 (=> (= stack0i_0 (select2 Heap_ stack0o_0 Cell.Value)) (and ?v_2 (=> ?v_2 (=> (= stack1o_0 (select2 Heap_ this Interval.b)) (and ?v_4 (=> ?v_4 (=> (= stack1i_0 (select2 Heap_ stack1o_0 Cell.Value)) (=> true (=> (and (=> (=> true (=> true (=> true (=> (=> (=> true (=> (= SS_Display.Return.Local_0 local0_0) (=> (= result_0_ local0_0) (=> (= stack50000o_1 stack50000o) (=> (= stack0b_1 local0_0) (=> (= stack0o_1 stack0o_0) (=> (= local0_1 local0_0) (=> (= Heap_2_ Heap_) (=> (=> (=> true (and ?v_5 (=> ?v_5 ?v_12))) ?v_6) ?v_6))))))))) ?v_7) ?v_7)))) ?v_15) (=> (=> true (=> true (=> (> stack0i_0 stack1i_0) (=> true (=> (=> (=> true (=> true (=> true (=> (and (=> (=> true (=> true (=> ?v_14 (=> true (=> (=> (=> true (=> true (=> false (=> (and (= (= (select2 Heap_ stack50000o_0 allocated_) Smt.true) false) ?v_8 (= ?v_11 Microsoft.Contracts.ObjectInvariantException)) (=> (and (= (select2 Heap_ stack50000o_0 ownerRef_) stack50000o_0) (= (select2 Heap_ stack50000o_0 ownerFrame_) PeerGroupPlaceholder_)) (=> (= Heap_0_ (store2 Heap_ stack50000o_0 allocated_ Smt.true)) (and ?v_8 (=> ?v_8 (=> (= (IsHeap Heap_1_) Smt.true) (=> (and (or (= ?v_9 PeerGroupPlaceholder_) (not (subtypes (select2 Heap_1_ ?v_10 inv_) ?v_9)) (= (select2 Heap_1_ ?v_10 localinv_) (BaseClass_ ?v_9))) (= (select2 Heap_1_ stack50000o_0 inv_) Microsoft.Contracts.ObjectInvariantException) (= (select2 Heap_1_ stack50000o_0 localinv_) ?v_11)) (=> (and (= ?v_10 (select2 Heap_0_ stack50000o_0 ownerRef_)) (= ?v_9 (select2 Heap_0_ stack50000o_0 ownerFrame_))) (=> (= (select2 Heap_1_ stack50000o_0 sharingMode_) SharingMode_Unshared_) (=> (forall ((?o_ Int)) (let ((?v_30 (typeof_ ?o_))) (=> (and (not (= ?o_ nullObject)) (= (= (select2 Heap_0_ ?o_ allocated_) Smt.true) (not true)) (= (= (select2 Heap_1_ ?o_ allocated_) Smt.true) true)) (and (= (select2 Heap_1_ ?o_ inv_) ?v_30) (= (select2 Heap_1_ ?o_ localinv_) ?v_30))))) (=> (forall ((?o_ Int)) (! (let ((?v_31 (select2 Heap_0_ ?o_ FirstConsistentOwner_))) (=> (= (select2 Heap_0_ ?v_31 exposeVersion_) (select2 Heap_1_ ?v_31 exposeVersion_)) (= ?v_31 (select2 Heap_1_ ?o_ FirstConsistentOwner_)))) :pattern ((select2 Heap_1_ ?o_ FirstConsistentOwner_)) )) (=> (forall ((?o_ Int)) (=> (and (not (= ?o_ nullObject)) (= (= (select2 Heap_0_ ?o_ allocated_) Smt.true) true)) (and (= (select2 Heap_0_ ?o_ ownerRef_) (select2 Heap_1_ ?o_ ownerRef_)) (= (select2 Heap_0_ ?o_ ownerFrame_) (select2 Heap_1_ ?o_ ownerFrame_))))) (=> (forall ((?o_ Int) (?f_ Int)) (! (let ((?v_32 (select2 Heap_0_ ?o_ ownerFrame_)) (?v_33 (select2 Heap_0_ ?o_ ownerRef_))) (=> (and (not (= ?f_ inv_)) (not (= ?f_ localinv_)) (not (= ?f_ FirstConsistentOwner_)) (or (not (= (IsStaticField ?f_) Smt.true)) (not (= (IsDirectlyModifiableField ?f_) Smt.true))) (not (= ?o_ nullObject)) (= (= (select2 Heap_0_ ?o_ allocated_) Smt.true) true) (or (= ?v_32 PeerGroupPlaceholder_) (not (subtypes (select2 Heap_0_ ?v_33 inv_) ?v_32)) (= (select2 Heap_0_ ?v_33 localinv_) (BaseClass_ ?v_32))) (or (not (= ?o_ stack50000o_0)) (not (subtypes Microsoft.Contracts.ObjectInvariantException (DeclType ?f_)))) true) (= (select2 Heap_0_ ?o_ ?f_) (select2 Heap_1_ ?o_ ?f_)))) :pattern ((select2 Heap_1_ ?o_ ?f_)) )) (=> (forall ((?o_ Int)) (or (= ?o_ stack50000o_0) (and (= (select2 Heap_0_ ?o_ inv_) (select2 Heap_1_ ?o_ inv_)) (= (select2 Heap_0_ ?o_ localinv_) (select2 Heap_1_ ?o_ localinv_))) (= (= (select2 Heap_0_ ?o_ allocated_) Smt.true) (not true)))) (=> (and (forall ((?o_ Int)) (=> (= (= (select2 Heap_0_ ?o_ allocated_) Smt.true) true) (= (= (select2 Heap_1_ ?o_ allocated_) Smt.true) true))) (forall ((?ot_ Int)) (let ((?v_34 (select2 Heap_0_ ?ot_ ownerFrame_))) (=> (and (= (= (select2 Heap_0_ ?ot_ allocated_) Smt.true) true) (not (= ?v_34 PeerGroupPlaceholder_))) (and (= (select2 Heap_1_ ?ot_ ownerRef_) (select2 Heap_0_ ?ot_ ownerRef_)) (= (select2 Heap_1_ ?ot_ ownerFrame_) ?v_34))))) (= (= (select2 Heap_0_ BeingConstructed_ NonNullFieldsAreInitialized_) Smt.true) (= (select2 Heap_1_ BeingConstructed_ NonNullFieldsAreInitialized_) Smt.true))) (=> (forall ((?o_ Int)) (or (= ?o_ stack50000o_0) (= (select2 Heap_0_ ?o_ sharingMode_) (select2 Heap_1_ ?o_ sharingMode_)))) (and ?v_8 (=> ?v_8 (=> false (=> true ?v_12))))))))))))))))))))))) ?v_13) ?v_13))))) ?v_19) (=> (=> true (=> true (=> (not ?v_14) (=> true (=> (=> (=> true (=> true (=> true (=> (=> (=> true (=> (= stack0b_0 throwException_in) (=> (= local0_0 Smt.false) ?v_21))) ?v_16) ?v_16)))) ?v_17) ?v_17))))) ?v_18)) (and ?v_18 ?v_19))))) ?v_20) ?v_20))))) ?v_25) (=> (=> true (=> true (=> (<= stack0i_0 stack1i_0) (=> true (=> (=> (=> true (=> true (=> true (=> (=> (=> true (=> (= stack0b_0 stack0b) (=> (= local0_0 Smt.true) ?v_21))) ?v_22) ?v_22)))) ?v_23) ?v_23))))) ?v_24)) (and ?v_24 ?v_25))))))))))))))))) ?v_26) ?v_26)))) ?v_27) ?v_27))))))))))) ?v_28) ?v_28))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/ricart-agrawala6.smt2 b/test/regress/regress1/quantifiers/ricart-agrawala6.smt2 new file mode 100644 index 000000000..5f849de15 --- /dev/null +++ b/test/regress/regress1/quantifiers/ricart-agrawala6.smt2 @@ -0,0 +1,26 @@ +(set-logic AUFLIA) +(set-info :source | An Optimal Algorithm for Mutual Exclusion in Computer Networks. Glenn Ricart and Ashok K. Agrawala. Communications of the ACM Vol.: 24 Number: 1. This is a benchmark of the haRVey theorem prover. It was translated to SMT-LIB by Leonardo de Moura |) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-fun p () Int) +(declare-fun q () Int) +(declare-fun r () Int) +(declare-fun s () Int) +(declare-fun s0 (Int) Bool) +(declare-fun s1 (Int) Bool) +(declare-fun s2 (Int) Bool) +(declare-fun s3 (Int) Bool) +(declare-fun s4 (Int) Bool) +(declare-fun s5 (Int) Bool) +(declare-fun s6 (Int) Bool) +(declare-fun rcs1 (Int) Bool) +(declare-fun rcs2 (Int) Bool) +(declare-fun x (Int Int) Bool) +(declare-fun ro (Int Int) Bool) +(declare-fun rd (Int Int) Bool) +(declare-fun sn (Int) Int) +(declare-fun time () Int) +(assert (not (=> (and (forall ((?p Int)) (forall ((?q Int)) (=> (or (s0 ?p) (s5 ?p)) (not (x ?p ?q))))) (forall ((?p Int)) (= (or (s0 ?p) (s6 ?p)) (not (rcs2 ?p)))) (forall ((?p Int)) (< (sn ?p) time)) (forall ((?p Int)) (forall ((?q Int)) (=> (not (= ?p ?q)) (not (= (sn ?p) (sn ?q)))))) (forall ((?p Int)) (forall ((?q Int)) (=> (and (not (= ?p ?q)) (or (and (s4 ?p) (x ?p ?q)) (s5 ?p)) (rcs2 ?q)) (< (sn ?p) (sn ?q))))) (forall ((?p Int)) (forall ((?q Int)) (=> (and (not (= ?p ?q)) (rd ?q ?p)) (ro ?p ?q)))) (forall ((?p Int)) (forall ((?q Int)) (let ((?v_0 (x ?p ?q))) (=> (not (= ?p ?q)) (= (not (or (and (s2 ?p) ?v_0) (and (s3 ?p) (not ?v_0)))) (=> (ro ?p ?q) (rd ?q ?p))))))) (forall ((?p Int)) (forall ((?q Int)) (let ((?v_1 (x ?q ?p))) (let ((?v_2 (or (and (s3 ?q) ?v_1) (and (s4 ?q) (not ?v_1))))) (=> (not (= ?p ?q)) (or (and (s6 ?p) (not (x ?p ?q)) ?v_2) (= (rd ?p ?q) (and ?v_2 (rcs2 ?p) (< (sn ?p) (sn ?q)))))))))) (forall ((?p Int)) (=> (s0 ?p) (not (or (s2 ?p) (s3 ?p) (s4 ?p) (s5 ?p) (s6 ?p))))) (forall ((?p Int)) (=> (s2 ?p) (not (or (s3 ?p) (s4 ?p) (s5 ?p) (s6 ?p))))) (forall ((?p Int)) (=> (s3 ?p) (not (or (s4 ?p) (s5 ?p) (s6 ?p))))) (forall ((?p Int)) (=> (s4 ?p) (not (or (s5 ?p) (s6 ?p))))) (forall ((?p Int)) (=> (s5 ?p) (not (s6 ?p)))) (forall ((?r Int)) (let ((?v_3 (not (= ?r p)))) (=> (s0 ?r) (not (or (s2 ?r) (and ?v_3 (=> ?v_3 (s3 ?r))) (=> ?v_3 (s4 ?r)) (s5 ?r) (s6 ?r)))))) (forall ((?r Int)) (let ((?v_4 (not (= ?r p)))) (=> (s2 ?r) (not (or (and ?v_4 (=> ?v_4 (s3 ?r))) (=> ?v_4 (s4 ?r)) (s5 ?r) (s6 ?r)))))) (forall ((?r Int)) (let ((?v_5 (not (= ?r p)))) (=> (and ?v_5 (=> ?v_5 (s3 ?r))) (not (or (=> ?v_5 (s4 ?r)) (s5 ?r) (s6 ?r)))))) (forall ((?r Int)) (=> (=> (not (= ?r p)) (s4 ?r)) (not (or (s5 ?r) (s6 ?r))))) (forall ((?r Int)) (=> (s5 ?r) (not (s6 ?r)))) (s3 p) (forall ((?q Int)) (=> (not (= ?q p)) (x p ?q)))) (and (forall ((?s Int)) (forall ((?r Int)) (let ((?v_6 (not (= ?s p)))) (=> (or (s0 ?s) (s5 ?s)) (not (and ?v_6 (=> ?v_6 (x ?s ?r)))))))) (forall ((?s Int)) (= (or (s0 ?s) (s6 ?s)) (not (rcs2 ?s)))) (forall ((?s Int)) (< (sn ?s) time)) (forall ((?s Int)) (forall ((?r Int)) (=> (not (= ?s ?r)) (not (= (sn ?s) (sn ?r)))))) (forall ((?s Int)) (forall ((?r Int)) (let ((?v_7 (not (= ?s p)))) (=> (and (not (= ?s ?r)) (or (and (=> ?v_7 (s4 ?s)) ?v_7 (=> ?v_7 (x ?s ?r))) (s5 ?s)) (rcs2 ?r)) (< (sn ?s) (sn ?r)))))) (forall ((?s Int)) (forall ((?r Int)) (=> (and (not (= ?s ?r)) (rd ?r ?s)) (ro ?s ?r)))) (forall ((?s Int)) (forall ((?r Int)) (let ((?v_8 (not (= ?s p)))) (let ((?v_9 (=> ?v_8 (x ?s ?r)))) (=> (not (= ?s ?r)) (= (not (or (and (s2 ?s) ?v_8 ?v_9) (and ?v_8 (=> ?v_8 (s3 ?s)) (not (and ?v_8 ?v_9))))) (=> (ro ?s ?r) (rd ?r ?s)))))))) (forall ((?s Int)) (forall ((?r Int)) (let ((?v_10 (not (= ?s p))) (?v_11 (not (= ?r p)))) (let ((?v_12 (=> ?v_11 (x ?r ?s)))) (let ((?v_13 (or (and ?v_11 (=> ?v_11 (s3 ?r)) ?v_11 ?v_12) (and (=> ?v_11 (s4 ?r)) (not (and ?v_11 ?v_12)))))) (=> (not (= ?s ?r)) (or (and (s6 ?s) (not (and ?v_10 (=> ?v_10 (x ?s ?r)))) ?v_13) (= (rd ?s ?r) (and ?v_13 (rcs2 ?s) (< (sn ?s) (sn ?r))))))))))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/set3.smt2 b/test/regress/regress1/quantifiers/set3.smt2 new file mode 100644 index 000000000..d3e51d996 --- /dev/null +++ b/test/regress/regress1/quantifiers/set3.smt2 @@ -0,0 +1,29 @@ +(set-logic AUFLIA) +(set-info :source | Assertion verification of simple set manipulation programs. |) +(set-info :smt-lib-version 2.0) +(set-info :category "crafted") +(set-info :status unsat) +(declare-sort Set 0) +(declare-fun member (Int Set) Bool) +(declare-fun insert (Set Int) Set) +(declare-fun delete (Set Int) Set) +(declare-fun sup (Set) Int) +(assert (forall ((?x Int) (?s Set)) (member ?x (insert ?s ?x)))) +(assert (forall ((?x Int) (?y Int) (?s Set)) (=> (not (= ?x ?y)) (= (member ?x (insert ?s ?y)) (member ?x ?s))))) +(assert (forall ((?x Int) (?s Set)) (=> (not (member ?x ?s)) (= (delete ?s ?x) ?s)))) +(assert (forall ((?x Int) (?s Set)) (= (delete (insert ?s ?x) ?x) (delete ?s ?x)))) +(assert (forall ((?x Int) (?y Int) (?s Set)) (=> (not (= ?x ?y)) (= (delete (insert ?s ?y) ?x) (insert (delete ?s ?x) ?y))))) +(assert (forall ((?s Set)) (member (sup ?s) ?s))) +(assert (forall ((?s Set) (?x Int)) (=> (member ?x ?s) (<= ?x (sup ?s))))) +(assert (forall ((?s Set) (?x Int)) (=> (< (sup ?s) ?x) (= (sup (insert ?s ?x)) ?x)))) +(declare-fun arr () (Array Int Int)) +(declare-fun s0 () Set) +(assert (forall ((?i Int)) (=> (> ?i 0) (< (select arr ?i) (sup s0))))) +(declare-fun i1 () Int) +(declare-fun s1 () Set) +(declare-fun g (Int) Int) +(assert (forall ((?i Int)) (> (g ?i) 0))) +(assert (= s1 (insert s0 (select arr (g i1))))) +(assert (not (= (sup s1) (sup s0)))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/set8.smt2 b/test/regress/regress1/quantifiers/set8.smt2 new file mode 100644 index 000000000..684d94b7a --- /dev/null +++ b/test/regress/regress1/quantifiers/set8.smt2 @@ -0,0 +1,26 @@ +(set-logic AUFLIA) +(set-info :source | Set theory. |) +(set-info :smt-lib-version 2.0) +(set-info :category "crafted") +(set-info :status unsat) +(declare-sort Set 0) +(declare-sort Elem 0) +(declare-fun member (Elem Set) Bool) +(declare-fun subset (Set Set) Bool) +(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (=> (and (member ?x ?s1) (subset ?s1 ?s2)) (member ?x ?s2)))) +(assert (forall ((?s1 Set) (?s2 Set)) (=> (not (subset ?s1 ?s2)) (exists ((?x Elem)) (and (member ?x ?s1) (not (member ?x ?s2))))))) +(assert (forall ((?s1 Set) (?s2 Set)) (=> (forall ((?x Elem)) (=> (member ?x ?s1) (member ?x ?s2))) (subset ?s1 ?s2)))) +(declare-fun seteq (Set Set) Bool) +(assert (forall ((?s1 Set) (?s2 Set)) (= (seteq ?s1 ?s2) (= ?s1 ?s2)))) +(assert (forall ((?s1 Set) (?s2 Set)) (= (seteq ?s1 ?s2) (and (subset ?s1 ?s2) (subset ?s2 ?s1))))) +(declare-fun union (Set Set) Set) +(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (= (member ?x (union ?s1 ?s2)) (or (member ?x ?s1) (member ?x ?s2))))) +(declare-fun intersection (Set Set) Set) +(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (= (member ?x (intersection ?s1 ?s2)) (and (member ?x ?s1) (member ?x ?s2))))) +(declare-fun difference (Set Set) Set) +(assert (forall ((?x Elem) (?s1 Set) (?s2 Set)) (= (member ?x (difference ?s1 ?s2)) (and (member ?x ?s1) (not (member ?x ?s2)))))) +(declare-fun a () Set) +(declare-fun b () Set) +(assert (not (seteq (intersection a b) (intersection b a)))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/small-pipeline-fixpoint-3.smt2 b/test/regress/regress1/quantifiers/small-pipeline-fixpoint-3.smt2 new file mode 100644 index 000000000..378912490 --- /dev/null +++ b/test/regress/regress1/quantifiers/small-pipeline-fixpoint-3.smt2 @@ -0,0 +1,7 @@ +; COMMAND-LINE: --cbqi-bv --no-check-models +; EXPECT: unsat +(set-logic BV) +(set-info :status unsat) +(assert (forall ((Verilog__main.dataOut_64_0 (_ BitVec 32))) (forall ((Verilog__main.stageOne_64_0 (_ BitVec 32))) (forall ((Verilog__main.stageTwo_64_0 (_ BitVec 32))) (forall ((Verilog__main.tmp_stageOne_64_0 (_ BitVec 32))) (forall ((Verilog__main.tmp_stageTwo_64_0 (_ BitVec 32))) (forall ((Verilog__main.dataOut_64_1 (_ BitVec 32))) (forall ((Verilog__main.reset_64_0 Bool)) (forall ((Verilog__main.stageOne_64_1 (_ BitVec 32))) (forall ((Verilog__main.dataIn_64_0 (_ BitVec 32))) (forall ((Verilog__main.c1_64_0 (_ BitVec 32))) (forall ((Verilog__main.stageTwo_64_1 (_ BitVec 32))) (forall ((Verilog__main.c2_64_0 (_ BitVec 32))) (forall ((Verilog__main.tmp_stageOne_64_1 (_ BitVec 32))) (forall ((Verilog__main.tmp_stageTwo_64_1 (_ BitVec 32))) (forall ((Verilog__main.dataOut_64_2 (_ BitVec 32))) (forall ((Verilog__main.reset_64_1 Bool)) (forall ((Verilog__main.stageOne_64_2 (_ BitVec 32))) (forall ((Verilog__main.dataIn_64_1 (_ BitVec 32))) (forall ((Verilog__main.c1_64_1 (_ BitVec 32))) (forall ((Verilog__main.stageTwo_64_2 (_ BitVec 32))) (forall ((Verilog__main.c2_64_1 (_ BitVec 32))) (forall ((Verilog__main.tmp_stageOne_64_2 (_ BitVec 32))) (forall ((Verilog__main.tmp_stageTwo_64_2 (_ BitVec 32))) (forall ((Verilog__main.dataOut_64_3 (_ BitVec 32))) (forall ((Verilog__main.reset_64_2 Bool)) (forall ((Verilog__main.stageOne_64_3 (_ BitVec 32))) (forall ((Verilog__main.dataIn_64_2 (_ BitVec 32))) (forall ((Verilog__main.c1_64_2 (_ BitVec 32))) (forall ((Verilog__main.stageTwo_64_3 (_ BitVec 32))) (forall ((Verilog__main.c2_64_2 (_ BitVec 32))) (forall ((Verilog__main.tmp_stageOne_64_3 (_ BitVec 32))) (forall ((Verilog__main.tmp_stageTwo_64_3 (_ BitVec 32))) (exists ((Verilog__main.dataOut_64_0_39_ (_ BitVec 32))) (exists ((Verilog__main.stageOne_64_0_39_ (_ BitVec 32))) (exists ((Verilog__main.stageTwo_64_0_39_ (_ BitVec 32))) (exists ((Verilog__main.tmp_stageOne_64_0_39_ (_ BitVec 32))) (exists ((Verilog__main.tmp_stageTwo_64_0_39_ (_ BitVec 32))) (exists ((Verilog__main.dataOut_64_1_39_ (_ BitVec 32))) (exists ((Verilog__main.reset_64_0_39_ Bool)) (exists ((Verilog__main.stageOne_64_1_39_ (_ BitVec 32))) (exists ((Verilog__main.dataIn_64_0_39_ (_ BitVec 32))) (exists ((Verilog__main.c1_64_0_39_ (_ BitVec 32))) (exists ((Verilog__main.stageTwo_64_1_39_ (_ BitVec 32))) (exists ((Verilog__main.c2_64_0_39_ (_ BitVec 32))) (exists ((Verilog__main.tmp_stageOne_64_1_39_ (_ BitVec 32))) (exists ((Verilog__main.tmp_stageTwo_64_1_39_ (_ BitVec 32))) (exists ((Verilog__main.dataOut_64_2_39_ (_ BitVec 32))) (exists ((Verilog__main.reset_64_1_39_ Bool)) (exists ((Verilog__main.stageOne_64_2_39_ (_ BitVec 32))) (exists ((Verilog__main.dataIn_64_1_39_ (_ BitVec 32))) (exists ((Verilog__main.c1_64_1_39_ (_ BitVec 32))) (exists ((Verilog__main.stageTwo_64_2_39_ (_ BitVec 32))) (exists ((Verilog__main.c2_64_1_39_ (_ BitVec 32))) (exists ((Verilog__main.tmp_stageOne_64_2_39_ (_ BitVec 32))) (exists ((Verilog__main.tmp_stageTwo_64_2_39_ (_ BitVec 32))) (=> (and (and (= Verilog__main.dataOut_64_0 (_ bv0 32)) (= Verilog__main.stageOne_64_0 (_ bv0 32)) (= Verilog__main.stageTwo_64_0 (_ bv0 32)) (= Verilog__main.tmp_stageOne_64_0 (_ bv0 32)) (= Verilog__main.tmp_stageTwo_64_0 (_ bv0 32))) (and (= Verilog__main.dataOut_64_1 (ite (not Verilog__main.reset_64_0) (bvadd Verilog__main.stageTwo_64_0 Verilog__main.stageOne_64_0) (_ bv0 32))) (= Verilog__main.stageOne_64_1 (bvadd Verilog__main.dataIn_64_0 Verilog__main.c1_64_0)) (= Verilog__main.stageTwo_64_1 (bvand Verilog__main.stageOne_64_0 Verilog__main.c2_64_0)) (= Verilog__main.tmp_stageOne_64_1 Verilog__main.stageOne_64_0) (= Verilog__main.tmp_stageTwo_64_1 Verilog__main.stageTwo_64_0)) (and (= Verilog__main.dataOut_64_2 (ite (not Verilog__main.reset_64_1) (bvadd Verilog__main.stageTwo_64_1 Verilog__main.stageOne_64_1) (_ bv0 32))) (= Verilog__main.stageOne_64_2 (bvadd Verilog__main.dataIn_64_1 Verilog__main.c1_64_1)) (= Verilog__main.stageTwo_64_2 (bvand Verilog__main.stageOne_64_1 Verilog__main.c2_64_1)) (= Verilog__main.tmp_stageOne_64_2 Verilog__main.stageOne_64_1) (= Verilog__main.tmp_stageTwo_64_2 Verilog__main.stageTwo_64_1)) (and (= Verilog__main.dataOut_64_3 (ite (not Verilog__main.reset_64_2) (bvadd Verilog__main.stageTwo_64_2 Verilog__main.stageOne_64_2) (_ bv0 32))) (= Verilog__main.stageOne_64_3 (bvadd Verilog__main.dataIn_64_2 Verilog__main.c1_64_2)) (= Verilog__main.stageTwo_64_3 (bvand Verilog__main.stageOne_64_2 Verilog__main.c2_64_2)) (= Verilog__main.tmp_stageOne_64_3 Verilog__main.stageOne_64_2) (= Verilog__main.tmp_stageTwo_64_3 Verilog__main.stageTwo_64_2))) (and (and (and (= Verilog__main.dataOut_64_0_39_ (_ bv0 32)) (= Verilog__main.stageOne_64_0_39_ (_ bv0 32)) (= Verilog__main.stageTwo_64_0_39_ (_ bv0 32)) (= Verilog__main.tmp_stageOne_64_0_39_ (_ bv0 32)) (= Verilog__main.tmp_stageTwo_64_0_39_ (_ bv0 32))) (and (= Verilog__main.dataOut_64_1_39_ (ite (not Verilog__main.reset_64_0_39_) (bvadd Verilog__main.stageTwo_64_0_39_ Verilog__main.stageOne_64_0_39_) (_ bv0 32))) (= Verilog__main.stageOne_64_1_39_ (bvadd Verilog__main.dataIn_64_0_39_ Verilog__main.c1_64_0_39_)) (= Verilog__main.stageTwo_64_1_39_ (bvand Verilog__main.stageOne_64_0_39_ Verilog__main.c2_64_0_39_)) (= Verilog__main.tmp_stageOne_64_1_39_ Verilog__main.stageOne_64_0_39_) (= Verilog__main.tmp_stageTwo_64_1_39_ Verilog__main.stageTwo_64_0_39_)) (and (= Verilog__main.dataOut_64_2_39_ (ite (not Verilog__main.reset_64_1_39_) (bvadd Verilog__main.stageTwo_64_1_39_ Verilog__main.stageOne_64_1_39_) (_ bv0 32))) (= Verilog__main.stageOne_64_2_39_ (bvadd Verilog__main.dataIn_64_1_39_ Verilog__main.c1_64_1_39_)) (= Verilog__main.stageTwo_64_2_39_ (bvand Verilog__main.stageOne_64_1_39_ Verilog__main.c2_64_1_39_)) (= Verilog__main.tmp_stageOne_64_2_39_ Verilog__main.stageOne_64_1_39_) (= Verilog__main.tmp_stageTwo_64_2_39_ Verilog__main.stageTwo_64_1_39_))) (or (and (= Verilog__main.dataOut_64_3 Verilog__main.dataOut_64_0_39_) (= Verilog__main.stageOne_64_3 Verilog__main.stageOne_64_0_39_) (= Verilog__main.stageTwo_64_3 Verilog__main.stageTwo_64_0_39_) (= Verilog__main.tmp_stageOne_64_3 Verilog__main.tmp_stageOne_64_0_39_) (= Verilog__main.tmp_stageTwo_64_3 Verilog__main.tmp_stageTwo_64_0_39_)) (and (= Verilog__main.dataOut_64_3 Verilog__main.dataOut_64_1_39_) (= Verilog__main.stageOne_64_3 Verilog__main.stageOne_64_1_39_) (= Verilog__main.stageTwo_64_3 Verilog__main.stageTwo_64_1_39_) (= Verilog__main.tmp_stageOne_64_3 Verilog__main.tmp_stageOne_64_1_39_) (= Verilog__main.tmp_stageTwo_64_3 Verilog__main.tmp_stageTwo_64_1_39_)) (and (= Verilog__main.dataOut_64_3 Verilog__main.dataOut_64_2_39_) (= Verilog__main.stageOne_64_3 Verilog__main.stageOne_64_2_39_) (= Verilog__main.stageTwo_64_3 Verilog__main.stageTwo_64_2_39_) (= Verilog__main.tmp_stageOne_64_3 Verilog__main.tmp_stageOne_64_2_39_) (= Verilog__main.tmp_stageTwo_64_3 Verilog__main.tmp_stageTwo_64_2_39_))))) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/smtlib384a03.smt2 b/test/regress/regress1/quantifiers/smtlib384a03.smt2 new file mode 100644 index 000000000..9e2273cff --- /dev/null +++ b/test/regress/regress1/quantifiers/smtlib384a03.smt2 @@ -0,0 +1,205 @@ +(set-logic AUFLIRA) +(set-info :source |http://proval.lri.fr/why-benchmarks |) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-sort Unit 0) +(declare-sort c_unique 0) +(declare-sort c_ssorted 0) +(declare-sort c_type 0) +(declare-sort c_Boolean 0) +(declare-fun c_sort (c_type c_unique) c_ssorted) +(declare-fun c_Boolean_true () c_Boolean) +(declare-fun c_Boolean_false () c_Boolean) +(assert (forall ((?b_22_1 c_Boolean)) (or (= c_Boolean_true ?b_22_1) (= c_Boolean_false ?b_22_1)))) +(assert (not (= c_Boolean_true c_Boolean_false))) +(declare-fun int2U (Int) c_unique) +(declare-fun ss2Int (c_ssorted) Int) +(declare-fun real2U (Real) c_unique) +(declare-fun ss2Real (c_ssorted) Real) +(declare-fun bool2U (c_Boolean) c_unique) +(declare-fun ss2Bool (c_ssorted) c_Boolean) +(declare-fun c_int () c_type) +(declare-fun c_bool () c_type) +(declare-fun c_real () c_type) +(declare-fun c_unit () c_type) +(declare-fun c_ref (c_unique) c_unique) +(assert (forall ((?t_21_2 c_type)) (forall ((?x_20_3 c_unique)) (forall ((?y_19_4 c_unique)) (=> (= (c_sort ?t_21_2 ?x_20_3) (c_sort ?t_21_2 ?y_19_4)) (= ?x_20_3 ?y_19_4)))))) +(assert (forall ((?x_18_5 Int)) (= (ss2Int (c_sort c_int (int2U ?x_18_5))) ?x_18_5))) +(assert (forall ((?x_17_6 Int)) (forall ((?y_16_7 Int)) (=> (= (int2U ?x_17_6) (int2U ?y_16_7)) (= ?x_17_6 ?y_16_7))))) +(assert (forall ((?x_15_8 Real)) (forall ((?y_14_9 Real)) (=> (= (real2U ?x_15_8) (real2U ?y_14_9)) (= ?x_15_8 ?y_14_9))))) +(assert (forall ((?x_13_10 c_Boolean)) (forall ((?y_12_11 c_Boolean)) (=> (= (bool2U ?x_13_10) (bool2U ?y_12_11)) (= ?x_13_10 ?y_12_11))))) +(assert (forall ((?x_11_12 c_ssorted)) (forall ((?y_10_13 c_ssorted)) (=> (= (ss2Int ?x_11_12) (ss2Int ?y_10_13)) (= ?x_11_12 ?y_10_13))))) +(assert (forall ((?x_9_14 c_ssorted)) (forall ((?y_8_15 c_ssorted)) (=> (= (ss2Real ?x_9_14) (ss2Real ?y_8_15)) (= ?x_9_14 ?y_8_15))))) +(assert (forall ((?x_7_16 c_ssorted)) (forall ((?y_6_17 c_ssorted)) (=> (= (ss2Bool ?x_7_16) (ss2Bool ?y_6_17)) (= ?x_7_16 ?y_6_17))))) +(assert (forall ((?x_5_18 Real)) (= (ss2Real (c_sort c_real (real2U ?x_5_18))) ?x_5_18))) +(assert (forall ((?x_4_19 c_Boolean)) (= (ss2Bool (c_sort c_bool (bool2U ?x_4_19))) ?x_4_19))) +(assert (forall ((?x_3_20 c_unique)) (= (int2U (ss2Int (c_sort c_int ?x_3_20))) ?x_3_20))) +(assert (forall ((?x_2_21 c_unique)) (= (real2U (ss2Real (c_sort c_real ?x_2_21))) ?x_2_21))) +(assert (forall ((?x_1_22 c_unique)) (= (bool2U (ss2Bool (c_sort c_bool ?x_1_22))) ?x_1_22))) +(declare-fun eq_int (Int Int) Bool) +(declare-fun neq_int (Int Int) Bool) +(declare-fun lt_int_bool (Int Int) c_Boolean) +(declare-fun le_int_bool (Int Int) c_Boolean) +(declare-fun gt_int_bool (Int Int) c_Boolean) +(declare-fun ge_int_bool (Int Int) c_Boolean) +(declare-fun eq_int_bool (Int Int) c_Boolean) +(declare-fun neq_int_bool (Int Int) c_Boolean) +(assert (forall ((?x_40_23 Int)) (forall ((?y_39_24 Int)) (= (= (lt_int_bool ?x_40_23 ?y_39_24) c_Boolean_true) (< ?x_40_23 ?y_39_24))))) +(assert (forall ((?x_42_25 Int)) (forall ((?y_41_26 Int)) (= (= (le_int_bool ?x_42_25 ?y_41_26) c_Boolean_true) (<= ?x_42_25 ?y_41_26))))) +(assert (forall ((?x_44_27 Int)) (forall ((?y_43_28 Int)) (= (= (gt_int_bool ?x_44_27 ?y_43_28) c_Boolean_true) (> ?x_44_27 ?y_43_28))))) +(assert (forall ((?x_46_29 Int)) (forall ((?y_45_30 Int)) (= (= (ge_int_bool ?x_46_29 ?y_45_30) c_Boolean_true) (>= ?x_46_29 ?y_45_30))))) +(assert (forall ((?x_48_31 Int)) (forall ((?y_47_32 Int)) (= (= (eq_int_bool ?x_48_31 ?y_47_32) c_Boolean_true) (= ?x_48_31 ?y_47_32))))) +(assert (forall ((?x_50_33 Int)) (forall ((?y_49_34 Int)) (= (= (neq_int_bool ?x_50_33 ?y_49_34) c_Boolean_true) (not (= ?x_50_33 ?y_49_34)))))) +(declare-fun add_real (Real Real) Real) +(declare-fun sub_real (Real Real) Real) +(declare-fun mul_real (Real Real) Real) +(declare-fun div_real (Real Real) Real) +(declare-fun pow_real (Real Real) Real) +(declare-fun neg_real (Real) Real) +(declare-fun abs_real (Real) Real) +(declare-fun sqrt_real (Real) Real) +(declare-fun real_of_int (Int) Real) +(declare-fun int_of_real (Real) Int) +(declare-fun lt_real (Real Real) Bool) +(declare-fun le_real (Real Real) Bool) +(declare-fun gt_real (Real Real) Bool) +(declare-fun ge_real (Real Real) Bool) +(declare-fun eq_real (Real Real) Bool) +(declare-fun neq_real (Real Real) Bool) +(declare-fun eq_bool (c_Boolean c_Boolean) Bool) +(declare-fun neq_bool (c_Boolean c_Boolean) Bool) +(declare-fun eq_unit (c_ssorted c_ssorted) Bool) +(declare-fun neq_unit (c_ssorted c_ssorted) Bool) +(declare-fun smtlib__ite (c_Boolean c_ssorted c_ssorted) c_unique) +(assert (forall ((?t_1_76_35 c_type)) (forall ((?x_75_36 c_unique)) (forall ((?y_74_37 c_unique)) (= (smtlib__ite c_Boolean_true (c_sort ?t_1_76_35 ?x_75_36) (c_sort ?t_1_76_35 ?y_74_37)) ?x_75_36))))) +(assert (forall ((?t_2_79_38 c_type)) (forall ((?x_78_39 c_unique)) (forall ((?y_77_40 c_unique)) (= (smtlib__ite c_Boolean_false (c_sort ?t_2_79_38 ?x_78_39) (c_sort ?t_2_79_38 ?y_77_40)) ?y_77_40))))) +(declare-fun bw_compl (Int) Int) +(declare-fun bw_and (Int Int) Int) +(declare-fun bw_xor (Int Int) Int) +(declare-fun bw_or (Int Int) Int) +(declare-fun lsl (Int Int) Int) +(declare-fun lsr (Int Int) Int) +(declare-fun non_int (Int) Int) +(declare-fun type_pointer (c_type) c_type) +(declare-fun type_addr (c_type) c_type) +(declare-fun type_alloc_table () c_type) +(declare-fun block_length (c_ssorted c_ssorted) Int) +(declare-fun base_addr (c_ssorted) c_unique) +(declare-fun offset (c_ssorted) Int) +(declare-fun shift (c_ssorted Int) c_unique) +(declare-fun sub_pointer (c_ssorted c_ssorted) Int) +(declare-fun lt_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_3_88_41 c_type)) (forall ((?p1_87_42 c_unique)) (forall ((?p2_86_43 c_unique)) (let ((?v_0 (type_pointer ?t_3_88_41))) (let ((?v_1 (c_sort ?v_0 ?p1_87_42)) (?v_2 (c_sort ?v_0 ?p2_86_43))) (= (lt_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (< (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun le_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_4_91_44 c_type)) (forall ((?p1_90_45 c_unique)) (forall ((?p2_89_46 c_unique)) (let ((?v_0 (type_pointer ?t_4_91_44))) (let ((?v_1 (c_sort ?v_0 ?p1_90_45)) (?v_2 (c_sort ?v_0 ?p2_89_46))) (= (le_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (<= (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun gt_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_5_94_47 c_type)) (forall ((?p1_93_48 c_unique)) (forall ((?p2_92_49 c_unique)) (let ((?v_0 (type_pointer ?t_5_94_47))) (let ((?v_1 (c_sort ?v_0 ?p1_93_48)) (?v_2 (c_sort ?v_0 ?p2_92_49))) (= (gt_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (> (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun ge_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_6_97_50 c_type)) (forall ((?p1_96_51 c_unique)) (forall ((?p2_95_52 c_unique)) (let ((?v_0 (type_pointer ?t_6_97_50))) (let ((?v_1 (c_sort ?v_0 ?p1_96_51)) (?v_2 (c_sort ?v_0 ?p2_95_52))) (= (ge_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (>= (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun valid (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_7_104_53 c_type)) (forall ((?a_103_54 c_unique)) (forall ((?p_102_55 c_unique)) (let ((?v_2 (c_sort type_alloc_table ?a_103_54)) (?v_0 (c_sort (type_pointer ?t_7_104_53) ?p_102_55))) (let ((?v_1 (offset ?v_0))) (= (valid ?v_2 ?v_0) (and (<= 0 ?v_1) (< ?v_1 (block_length ?v_2 ?v_0)))))))))) +(declare-fun valid_index (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_8_108_56 c_type)) (forall ((?a_107_57 c_unique)) (forall ((?p_106_58 c_unique)) (forall ((?i_105_59 Int)) (let ((?v_2 (c_sort type_alloc_table ?a_107_57)) (?v_0 (c_sort (type_pointer ?t_8_108_56) ?p_106_58))) (let ((?v_1 (+ (offset ?v_0) ?i_105_59))) (= (valid_index ?v_2 ?v_0 ?i_105_59) (and (<= 0 ?v_1) (< ?v_1 (block_length ?v_2 ?v_0))))))))))) +(declare-fun valid_range (c_ssorted c_ssorted Int Int) Bool) +(assert (forall ((?t_9_113_60 c_type)) (forall ((?a_112_61 c_unique)) (forall ((?p_111_62 c_unique)) (forall ((?i_110_63 Int)) (forall ((?j_109_64 Int)) (let ((?v_2 (c_sort type_alloc_table ?a_112_61)) (?v_0 (c_sort (type_pointer ?t_9_113_60) ?p_111_62))) (let ((?v_1 (offset ?v_0))) (= (valid_range ?v_2 ?v_0 ?i_110_63 ?j_109_64) (and (<= 0 (+ ?v_1 ?i_110_63)) (< (+ ?v_1 ?j_109_64) (block_length ?v_2 ?v_0)))))))))))) +(assert (forall ((?t_10_116_65 c_type)) (forall ((?p_115_66 c_unique)) (forall ((?i_114_67 Int)) (let ((?v_0 (type_pointer ?t_10_116_65))) (let ((?v_1 (c_sort ?v_0 ?p_115_66))) (= (offset (c_sort ?v_0 (shift ?v_1 ?i_114_67))) (+ (offset ?v_1) ?i_114_67)))))))) +(assert (forall ((?t_11_118_68 c_type)) (forall ((?p_117_69 c_unique)) (= (shift (c_sort (type_pointer ?t_11_118_68) ?p_117_69) 0) ?p_117_69)))) +(assert (forall ((?t_12_122_70 c_type)) (forall ((?p_121_71 c_unique)) (forall ((?i_120_72 Int)) (forall ((?j_119_73 Int)) (let ((?v_0 (type_pointer ?t_12_122_70))) (let ((?v_1 (c_sort ?v_0 ?p_121_71))) (= (shift (c_sort ?v_0 (shift ?v_1 ?i_120_72)) ?j_119_73) (shift ?v_1 (+ ?i_120_72 ?j_119_73)))))))))) +(assert (forall ((?t_13_125_74 c_type)) (forall ((?p_124_75 c_unique)) (forall ((?i_123_76 Int)) (let ((?v_0 (type_pointer ?t_13_125_74))) (let ((?v_1 (c_sort ?v_0 ?p_124_75))) (= (base_addr (c_sort ?v_0 (shift ?v_1 ?i_123_76))) (base_addr ?v_1)))))))) +(assert (forall ((?t_14_129_77 c_type)) (forall ((?a_128_78 c_unique)) (forall ((?p_127_79 c_unique)) (forall ((?i_126_80 Int)) (let ((?v_1 (c_sort type_alloc_table ?a_128_78)) (?v_0 (type_pointer ?t_14_129_77))) (let ((?v_2 (c_sort ?v_0 ?p_127_79))) (= (block_length ?v_1 (c_sort ?v_0 (shift ?v_2 ?i_126_80))) (block_length ?v_1 ?v_2))))))))) +(assert (forall ((?t_15_133_81 c_type)) (forall ((?a_132_82 c_unique)) (forall ((?p1_131_83 c_unique)) (forall ((?p2_130_84 c_unique)) (let ((?v_0 (type_pointer ?t_15_133_81))) (let ((?v_1 (c_sort ?v_0 ?p1_131_83)) (?v_3 (c_sort ?v_0 ?p2_130_84)) (?v_2 (c_sort type_alloc_table ?a_132_82))) (=> (= (base_addr ?v_1) (base_addr ?v_3)) (= (block_length ?v_2 ?v_1) (block_length ?v_2 ?v_3)))))))))) +(assert (forall ((?t_16_136_85 c_type)) (forall ((?p1_135_86 c_unique)) (forall ((?p2_134_87 c_unique)) (let ((?v_0 (type_pointer ?t_16_136_85))) (let ((?v_1 (c_sort ?v_0 ?p1_135_86)) (?v_2 (c_sort ?v_0 ?p2_134_87))) (=> (and (= (base_addr ?v_1) (base_addr ?v_2)) (= (offset ?v_1) (offset ?v_2))) (= ?p1_135_86 ?p2_134_87)))))))) +(assert (forall ((?t_17_139_88 c_type)) (forall ((?p1_138_89 c_unique)) (forall ((?p2_137_90 c_unique)) (let ((?v_0 (type_pointer ?t_17_139_88))) (let ((?v_1 (c_sort ?v_0 ?p1_138_89)) (?v_2 (c_sort ?v_0 ?p2_137_90))) (=> (= ?p1_138_89 ?p2_137_90) (and (= (base_addr ?v_1) (base_addr ?v_2)) (= (offset ?v_1) (offset ?v_2)))))))))) +(assert (forall ((?t_18_144_91 c_type)) (forall ((?p1_143_92 c_unique)) (forall ((?p2_142_93 c_unique)) (forall ((?i_141_94 Int)) (forall ((?j_140_95 Int)) (let ((?v_0 (type_pointer ?t_18_144_91))) (let ((?v_1 (c_sort ?v_0 ?p1_143_92)) (?v_2 (c_sort ?v_0 ?p2_142_93))) (=> (not (= (base_addr ?v_1) (base_addr ?v_2))) (not (= (shift ?v_1 ?i_141_94) (shift ?v_2 ?j_140_95)))))))))))) +(assert (forall ((?t_19_149_96 c_type)) (forall ((?p1_148_97 c_unique)) (forall ((?p2_147_98 c_unique)) (forall ((?i_146_99 Int)) (forall ((?j_145_100 Int)) (let ((?v_0 (type_pointer ?t_19_149_96))) (let ((?v_1 (c_sort ?v_0 ?p1_148_97)) (?v_2 (c_sort ?v_0 ?p2_147_98))) (=> (not (= (+ (offset ?v_1) ?i_146_99) (+ (offset ?v_2) ?j_145_100))) (not (= (shift ?v_1 ?i_146_99) (shift ?v_2 ?j_145_100)))))))))))) +(assert (forall ((?t_20_154_101 c_type)) (forall ((?p1_153_102 c_unique)) (forall ((?p2_152_103 c_unique)) (forall ((?i_151_104 Int)) (forall ((?j_150_105 Int)) (let ((?v_0 (type_pointer ?t_20_154_101))) (let ((?v_1 (c_sort ?v_0 ?p1_153_102)) (?v_2 (c_sort ?v_0 ?p2_152_103))) (=> (= (base_addr ?v_1) (base_addr ?v_2)) (=> (= (+ (offset ?v_1) ?i_151_104) (+ (offset ?v_2) ?j_150_105)) (= (shift ?v_1 ?i_151_104) (shift ?v_2 ?j_150_105)))))))))))) +(assert (forall ((?t_21_158_106 c_type)) (forall ((?a_157_107 c_unique)) (forall ((?p_156_108 c_unique)) (forall ((?i_155_109 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_157_107)) (?v_1 (type_pointer ?t_21_158_106))) (let ((?v_2 (c_sort ?v_1 ?p_156_108))) (=> (valid_index ?v_0 ?v_2 ?i_155_109) (valid ?v_0 (c_sort ?v_1 (shift ?v_2 ?i_155_109))))))))))) +(assert (forall ((?t_22_164_110 c_type)) (forall ((?a_163_111 c_unique)) (forall ((?p_162_112 c_unique)) (forall ((?i_161_113 Int)) (forall ((?j_160_114 Int)) (forall ((?k_159_115 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_163_111)) (?v_1 (type_pointer ?t_22_164_110))) (let ((?v_2 (c_sort ?v_1 ?p_162_112))) (=> (valid_range ?v_0 ?v_2 ?i_161_113 ?j_160_114) (=> (and (<= ?i_161_113 ?k_159_115) (<= ?k_159_115 ?j_160_114)) (valid ?v_0 (c_sort ?v_1 (shift ?v_2 ?k_159_115)))))))))))))) +(assert (forall ((?t_23_169_116 c_type)) (forall ((?a_168_117 c_unique)) (forall ((?p_167_118 c_unique)) (forall ((?i_166_119 Int)) (forall ((?j_165_120 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_168_117)) (?v_1 (c_sort (type_pointer ?t_23_169_116) ?p_167_118))) (=> (valid_range ?v_0 ?v_1 ?i_166_119 ?j_165_120) (=> (and (<= ?i_166_119 0) (<= 0 ?j_165_120)) (valid ?v_0 ?v_1)))))))))) +(assert (forall ((?t_24_175_121 c_type)) (forall ((?a_174_122 c_unique)) (forall ((?p_173_123 c_unique)) (forall ((?i_172_124 Int)) (forall ((?j_171_125 Int)) (forall ((?k_170_126 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_174_122)) (?v_1 (c_sort (type_pointer ?t_24_175_121) ?p_173_123))) (=> (valid_range ?v_0 ?v_1 ?i_172_124 ?j_171_125) (=> (and (<= ?i_172_124 ?k_170_126) (<= ?k_170_126 ?j_171_125)) (valid_index ?v_0 ?v_1 ?k_170_126))))))))))) +(assert (forall ((?t_25_178_127 c_type)) (forall ((?p1_177_128 c_unique)) (forall ((?p2_176_129 c_unique)) (let ((?v_0 (type_pointer ?t_25_178_127))) (let ((?v_1 (c_sort ?v_0 ?p1_177_128)) (?v_2 (c_sort ?v_0 ?p2_176_129))) (=> (= (base_addr ?v_1) (base_addr ?v_2)) (= (sub_pointer ?v_1 ?v_2) (- (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun type_memory (c_type c_type) c_type) +(declare-fun acc (c_ssorted c_ssorted) c_unique) +(declare-fun upd (c_ssorted c_ssorted c_ssorted) c_unique) +(assert (forall ((?t_27_212_130 c_type)) (forall ((?t_26_211_131 c_type)) (forall ((?m_210_132 c_unique)) (forall ((?p_209_133 c_unique)) (forall ((?a_208_134 c_unique)) (let ((?v_0 (type_memory ?t_26_211_131 ?t_27_212_130)) (?v_1 (c_sort (type_pointer ?t_27_212_130) ?p_209_133))) (= (acc (c_sort ?v_0 (upd (c_sort ?v_0 ?m_210_132) ?v_1 (c_sort ?t_26_211_131 ?a_208_134))) ?v_1) ?a_208_134)))))))) +(assert (forall ((?t_29_218_135 c_type)) (forall ((?t_28_217_136 c_type)) (forall ((?m_216_137 c_unique)) (forall ((?p1_215_138 c_unique)) (forall ((?p2_214_139 c_unique)) (forall ((?a_213_140 c_unique)) (let ((?v_0 (type_memory ?t_28_217_136 ?t_29_218_135))) (let ((?v_2 (c_sort ?v_0 ?m_216_137)) (?v_1 (type_pointer ?t_29_218_135))) (let ((?v_3 (c_sort ?v_1 ?p2_214_139))) (=> (not (= ?p1_215_138 ?p2_214_139)) (= (acc (c_sort ?v_0 (upd ?v_2 (c_sort ?v_1 ?p1_215_138) (c_sort ?t_28_217_136 ?a_213_140))) ?v_3) (acc ?v_2 ?v_3))))))))))))) +(assert (not (= c_Boolean_false c_Boolean_true))) +(declare-fun type_pset (c_type) c_type) +(declare-fun pset_empty () c_unique) +(declare-fun pset_singleton (c_ssorted) c_unique) +(declare-fun pset_star (c_ssorted c_ssorted) c_unique) +(declare-fun pset_all (c_ssorted) c_unique) +(declare-fun pset_range (c_ssorted Int Int) c_unique) +(declare-fun pset_range_left (c_ssorted Int) c_unique) +(declare-fun pset_range_right (c_ssorted Int) c_unique) +(declare-fun pset_acc_all (c_ssorted c_ssorted) c_unique) +(declare-fun pset_acc_range (c_ssorted c_ssorted Int Int) c_unique) +(declare-fun pset_acc_range_left (c_ssorted c_ssorted Int) c_unique) +(declare-fun pset_acc_range_right (c_ssorted c_ssorted Int) c_unique) +(declare-fun pset_union (c_ssorted c_ssorted) c_unique) +(declare-fun not_in_pset (c_ssorted c_ssorted) Bool) +(declare-fun not_assigns (c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?t_31_225_141 c_type)) (forall ((?t_30_224_142 c_type)) (forall ((?a_223_143 c_unique)) (forall ((?m1_222_144 c_unique)) (forall ((?m2_221_145 c_unique)) (forall ((?l_220_146 c_unique)) (let ((?v_0 (type_memory ?t_30_224_142 ?t_31_225_141))) (= (not_assigns (c_sort type_alloc_table ?a_223_143) (c_sort ?v_0 ?m1_222_144) (c_sort ?v_0 ?m2_221_145) (c_sort (type_pset ?t_31_225_141) ?l_220_146)) (forall ((?p_219_147 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_31_225_141) ?p_219_147))) (=> (valid (c_sort type_alloc_table ?a_223_143) ?v_1) (=> (not_in_pset ?v_1 (c_sort (type_pset ?t_31_225_141) ?l_220_146)) (= (acc (c_sort ?v_0 ?m2_221_145) ?v_1) (acc (c_sort ?v_0 ?m1_222_144) ?v_1))))))))))))))) +(assert (forall ((?t_32_227_148 c_type)) (forall ((?p_226_149 c_unique)) (not_in_pset (c_sort (type_pointer ?t_32_227_148) ?p_226_149) (c_sort (type_pset ?t_32_227_148) pset_empty))))) +(assert (forall ((?t_33_230_150 c_type)) (forall ((?p1_229_151 c_unique)) (forall ((?p2_228_152 c_unique)) (let ((?v_0 (type_pointer ?t_33_230_150))) (=> (not (= ?p1_229_151 ?p2_228_152)) (not_in_pset (c_sort ?v_0 ?p1_229_151) (c_sort (type_pset ?t_33_230_150) (pset_singleton (c_sort ?v_0 ?p2_228_152)))))))))) +(assert (forall ((?t_34_233_153 c_type)) (forall ((?p1_232_154 c_unique)) (forall ((?p2_231_155 c_unique)) (let ((?v_0 (type_pointer ?t_34_233_153))) (=> (not_in_pset (c_sort ?v_0 ?p1_232_154) (c_sort (type_pset ?t_34_233_153) (pset_singleton (c_sort ?v_0 ?p2_231_155)))) (not (= ?p1_232_154 ?p2_231_155)))))))) +(assert (forall ((?t_35_235_156 c_type)) (forall ((?p_234_157 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_35_235_156) ?p_234_157))) (not (not_in_pset ?v_0 (c_sort (type_pset ?t_35_235_156) (pset_singleton ?v_0)))))))) +(assert (forall ((?t_36_239_158 c_type)) (forall ((?l1_238_159 c_unique)) (forall ((?l2_237_160 c_unique)) (forall ((?p_236_161 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_36_239_158) ?p_236_161)) (?v_1 (type_pset ?t_36_239_158))) (let ((?v_2 (c_sort ?v_1 ?l1_238_159)) (?v_3 (c_sort ?v_1 ?l2_237_160))) (=> (and (not_in_pset ?v_0 ?v_2) (not_in_pset ?v_0 ?v_3)) (not_in_pset ?v_0 (c_sort ?v_1 (pset_union ?v_2 ?v_3))))))))))) +(assert (forall ((?t_37_243_162 c_type)) (forall ((?l1_242_163 c_unique)) (forall ((?l2_241_164 c_unique)) (forall ((?p_240_165 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_37_243_162) ?p_240_165)) (?v_0 (type_pset ?t_37_243_162))) (let ((?v_2 (c_sort ?v_0 ?l1_242_163))) (=> (not_in_pset ?v_1 (c_sort ?v_0 (pset_union ?v_2 (c_sort ?v_0 ?l2_241_164)))) (not_in_pset ?v_1 ?v_2))))))))) +(assert (forall ((?t_38_247_166 c_type)) (forall ((?l1_246_167 c_unique)) (forall ((?l2_245_168 c_unique)) (forall ((?p_244_169 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_38_247_166) ?p_244_169)) (?v_0 (type_pset ?t_38_247_166))) (let ((?v_2 (c_sort ?v_0 ?l2_245_168))) (=> (not_in_pset ?v_1 (c_sort ?v_0 (pset_union (c_sort ?v_0 ?l1_246_167) ?v_2))) (not_in_pset ?v_1 ?v_2))))))))) +(assert (forall ((?t_40_253_170 c_type)) (forall ((?t_39_252_171 c_type)) (forall ((?l_251_172 c_unique)) (forall ((?m_250_173 c_unique)) (forall ((?p_249_174 c_unique)) (let ((?v_0 (type_pointer ?t_40_253_170))) (=> (forall ((?p1_248_175 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_39_252_171) ?p1_248_175))) (=> (= ?p_249_174 (acc (c_sort (type_memory ?v_0 ?t_39_252_171) ?m_250_173) ?v_1)) (not_in_pset ?v_1 (c_sort (type_pset ?t_39_252_171) ?l_251_172))))) (not_in_pset (c_sort ?v_0 ?p_249_174) (c_sort (type_pset ?t_40_253_170) (pset_star (c_sort (type_pset ?t_39_252_171) ?l_251_172) (c_sort (type_memory ?v_0 ?t_39_252_171) ?m_250_173)))))))))))) +(assert (forall ((?t_42_259_176 c_type)) (forall ((?t_41_258_177 c_type)) (forall ((?l_257_178 c_unique)) (forall ((?m_256_179 c_unique)) (forall ((?p_255_180 c_unique)) (let ((?v_0 (type_pointer ?t_42_259_176))) (=> (not_in_pset (c_sort ?v_0 ?p_255_180) (c_sort (type_pset ?t_42_259_176) (pset_star (c_sort (type_pset ?t_41_258_177) ?l_257_178) (c_sort (type_memory ?v_0 ?t_41_258_177) ?m_256_179)))) (forall ((?p1_254_181 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_41_258_177) ?p1_254_181))) (=> (= ?p_255_180 (acc (c_sort (type_memory ?v_0 ?t_41_258_177) ?m_256_179) ?v_1)) (not_in_pset ?v_1 (c_sort (type_pset ?t_41_258_177) ?l_257_178))))))))))))) +(assert (forall ((?t_43_263_182 c_type)) (forall ((?p_262_183 c_unique)) (forall ((?l_261_184 c_unique)) (let ((?v_0 (type_pset ?t_43_263_182))) (=> (forall ((?p1_260_185 c_unique)) (let ((?v_1 (type_pointer ?t_43_263_182))) (let ((?v_2 (c_sort ?v_1 ?p1_260_185))) (=> (not (not_in_pset ?v_2 (c_sort ?v_0 ?l_261_184))) (not (= (base_addr (c_sort ?v_1 ?p_262_183)) (base_addr ?v_2))))))) (not_in_pset (c_sort (type_pointer ?t_43_263_182) ?p_262_183) (c_sort ?v_0 (pset_all (c_sort ?v_0 ?l_261_184)))))))))) +(assert (forall ((?t_44_267_186 c_type)) (forall ((?p_266_187 c_unique)) (forall ((?l_265_188 c_unique)) (let ((?v_0 (type_pset ?t_44_267_186))) (=> (not_in_pset (c_sort (type_pointer ?t_44_267_186) ?p_266_187) (c_sort ?v_0 (pset_all (c_sort ?v_0 ?l_265_188)))) (forall ((?p1_264_189 c_unique)) (let ((?v_1 (type_pointer ?t_44_267_186))) (let ((?v_2 (c_sort ?v_1 ?p1_264_189))) (=> (not (not_in_pset ?v_2 (c_sort ?v_0 ?l_265_188))) (not (= (base_addr (c_sort ?v_1 ?p_266_187)) (base_addr ?v_2))))))))))))) +(assert (forall ((?t_45_274_190 c_type)) (forall ((?p_273_191 c_unique)) (forall ((?l_272_192 c_unique)) (forall ((?a_271_193 Int)) (forall ((?b_270_194 Int)) (let ((?v_0 (type_pset ?t_45_274_190))) (=> (forall ((?p1_269_195 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_45_274_190) ?p1_269_195) (c_sort ?v_0 ?l_272_192)) (forall ((?i_268_196 Int)) (=> (and (<= ?a_271_193 ?i_268_196) (<= ?i_268_196 ?b_270_194)) (not (= ?p_273_191 (shift (c_sort (type_pointer ?t_45_274_190) ?p1_269_195) ?i_268_196))))))) (not_in_pset (c_sort (type_pointer ?t_45_274_190) ?p_273_191) (c_sort ?v_0 (pset_range (c_sort ?v_0 ?l_272_192) ?a_271_193 ?b_270_194))))))))))) +(assert (forall ((?t_46_281_197 c_type)) (forall ((?p_280_198 c_unique)) (forall ((?l_279_199 c_unique)) (forall ((?a_278_200 Int)) (forall ((?b_277_201 Int)) (let ((?v_0 (type_pset ?t_46_281_197))) (=> (not_in_pset (c_sort (type_pointer ?t_46_281_197) ?p_280_198) (c_sort ?v_0 (pset_range (c_sort ?v_0 ?l_279_199) ?a_278_200 ?b_277_201))) (forall ((?p1_276_202 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_46_281_197) ?p1_276_202) (c_sort ?v_0 ?l_279_199))) (forall ((?i_275_203 Int)) (=> (and (<= ?a_278_200 ?i_275_203) (<= ?i_275_203 ?b_277_201)) (not (= (shift (c_sort (type_pointer ?t_46_281_197) ?p1_276_202) ?i_275_203) ?p_280_198)))))))))))))) +(assert (forall ((?t_47_287_204 c_type)) (forall ((?p_286_205 c_unique)) (forall ((?l_285_206 c_unique)) (forall ((?a_284_207 Int)) (let ((?v_0 (type_pset ?t_47_287_204))) (=> (forall ((?p1_283_208 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_47_287_204) ?p1_283_208) (c_sort ?v_0 ?l_285_206)) (forall ((?i_282_209 Int)) (=> (<= ?i_282_209 ?a_284_207) (not (= ?p_286_205 (shift (c_sort (type_pointer ?t_47_287_204) ?p1_283_208) ?i_282_209))))))) (not_in_pset (c_sort (type_pointer ?t_47_287_204) ?p_286_205) (c_sort ?v_0 (pset_range_left (c_sort ?v_0 ?l_285_206) ?a_284_207)))))))))) +(assert (forall ((?t_48_293_210 c_type)) (forall ((?p_292_211 c_unique)) (forall ((?l_291_212 c_unique)) (forall ((?a_290_213 Int)) (let ((?v_0 (type_pset ?t_48_293_210))) (=> (not_in_pset (c_sort (type_pointer ?t_48_293_210) ?p_292_211) (c_sort ?v_0 (pset_range_left (c_sort ?v_0 ?l_291_212) ?a_290_213))) (forall ((?p1_289_214 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_48_293_210) ?p1_289_214) (c_sort ?v_0 ?l_291_212))) (forall ((?i_288_215 Int)) (=> (<= ?i_288_215 ?a_290_213) (not (= (shift (c_sort (type_pointer ?t_48_293_210) ?p1_289_214) ?i_288_215) ?p_292_211))))))))))))) +(assert (forall ((?t_49_299_216 c_type)) (forall ((?p_298_217 c_unique)) (forall ((?l_297_218 c_unique)) (forall ((?a_296_219 Int)) (let ((?v_0 (type_pset ?t_49_299_216))) (=> (forall ((?p1_295_220 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_49_299_216) ?p1_295_220) (c_sort ?v_0 ?l_297_218)) (forall ((?i_294_221 Int)) (=> (<= ?a_296_219 ?i_294_221) (not (= ?p_298_217 (shift (c_sort (type_pointer ?t_49_299_216) ?p1_295_220) ?i_294_221))))))) (not_in_pset (c_sort (type_pointer ?t_49_299_216) ?p_298_217) (c_sort ?v_0 (pset_range_right (c_sort ?v_0 ?l_297_218) ?a_296_219)))))))))) +(assert (forall ((?t_50_305_222 c_type)) (forall ((?p_304_223 c_unique)) (forall ((?l_303_224 c_unique)) (forall ((?a_302_225 Int)) (let ((?v_0 (type_pset ?t_50_305_222))) (=> (not_in_pset (c_sort (type_pointer ?t_50_305_222) ?p_304_223) (c_sort ?v_0 (pset_range_right (c_sort ?v_0 ?l_303_224) ?a_302_225))) (forall ((?p1_301_226 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_50_305_222) ?p1_301_226) (c_sort ?v_0 ?l_303_224))) (forall ((?i_300_227 Int)) (=> (<= ?a_302_225 ?i_300_227) (not (= (shift (c_sort (type_pointer ?t_50_305_222) ?p1_301_226) ?i_300_227) ?p_304_223))))))))))))) +(assert (forall ((?t_52_312_228 c_type)) (forall ((?t_51_311_229 c_type)) (forall ((?p_310_230 c_unique)) (forall ((?l_309_231 c_unique)) (forall ((?m_308_232 c_unique)) (let ((?v_0 (type_pointer ?t_51_311_229))) (=> (forall ((?p1_307_233 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_52_312_228) ?p1_307_233) (c_sort (type_pset ?t_52_312_228) ?l_309_231))) (forall ((?i_306_234 Int)) (let ((?v_1 (type_pointer ?t_52_312_228))) (not (= ?p_310_230 (acc (c_sort (type_memory ?v_0 ?t_52_312_228) ?m_308_232) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_307_233) ?i_306_234))))))))) (not_in_pset (c_sort ?v_0 ?p_310_230) (c_sort (type_pset ?t_51_311_229) (pset_acc_all (c_sort (type_pset ?t_52_312_228) ?l_309_231) (c_sort (type_memory ?v_0 ?t_52_312_228) ?m_308_232)))))))))))) +(assert (forall ((?t_54_319_235 c_type)) (forall ((?t_53_318_236 c_type)) (forall ((?p_317_237 c_unique)) (forall ((?l_316_238 c_unique)) (forall ((?m_315_239 c_unique)) (let ((?v_0 (type_pointer ?t_53_318_236))) (=> (not_in_pset (c_sort ?v_0 ?p_317_237) (c_sort (type_pset ?t_53_318_236) (pset_acc_all (c_sort (type_pset ?t_54_319_235) ?l_316_238) (c_sort (type_memory ?v_0 ?t_54_319_235) ?m_315_239)))) (forall ((?p1_314_240 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_54_319_235) ?p1_314_240) (c_sort (type_pset ?t_54_319_235) ?l_316_238))) (forall ((?i_313_241 Int)) (let ((?v_1 (type_pointer ?t_54_319_235))) (not (= (acc (c_sort (type_memory ?v_0 ?t_54_319_235) ?m_315_239) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_314_240) ?i_313_241))) ?p_317_237)))))))))))))) +(assert (forall ((?t_56_328_242 c_type)) (forall ((?t_55_327_243 c_type)) (forall ((?p_326_244 c_unique)) (forall ((?l_325_245 c_unique)) (forall ((?m_324_246 c_unique)) (forall ((?a_323_247 Int)) (forall ((?b_322_248 Int)) (let ((?v_0 (type_pointer ?t_55_327_243))) (=> (forall ((?p1_321_249 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_56_328_242) ?p1_321_249) (c_sort (type_pset ?t_56_328_242) ?l_325_245))) (forall ((?i_320_250 Int)) (let ((?v_1 (type_pointer ?t_56_328_242))) (=> (and (<= ?a_323_247 ?i_320_250) (<= ?i_320_250 ?b_322_248)) (not (= ?p_326_244 (acc (c_sort (type_memory ?v_0 ?t_56_328_242) ?m_324_246) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_321_249) ?i_320_250)))))))))) (not_in_pset (c_sort ?v_0 ?p_326_244) (c_sort (type_pset ?t_55_327_243) (pset_acc_range (c_sort (type_pset ?t_56_328_242) ?l_325_245) (c_sort (type_memory ?v_0 ?t_56_328_242) ?m_324_246) ?a_323_247 ?b_322_248))))))))))))) +(assert (forall ((?t_58_337_251 c_type)) (forall ((?t_57_336_252 c_type)) (forall ((?p_335_253 c_unique)) (forall ((?l_334_254 c_unique)) (forall ((?m_333_255 c_unique)) (forall ((?a_332_256 Int)) (forall ((?b_331_257 Int)) (let ((?v_0 (type_pointer ?t_57_336_252))) (=> (not_in_pset (c_sort ?v_0 ?p_335_253) (c_sort (type_pset ?t_57_336_252) (pset_acc_range (c_sort (type_pset ?t_58_337_251) ?l_334_254) (c_sort (type_memory ?v_0 ?t_58_337_251) ?m_333_255) ?a_332_256 ?b_331_257))) (forall ((?p1_330_258 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_58_337_251) ?p1_330_258) (c_sort (type_pset ?t_58_337_251) ?l_334_254))) (forall ((?i_329_259 Int)) (let ((?v_1 (type_pointer ?t_58_337_251))) (=> (and (<= ?a_332_256 ?i_329_259) (<= ?i_329_259 ?b_331_257)) (not (= (acc (c_sort (type_memory ?v_0 ?t_58_337_251) ?m_333_255) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_330_258) ?i_329_259))) ?p_335_253))))))))))))))))) +(assert (forall ((?t_60_345_260 c_type)) (forall ((?t_59_344_261 c_type)) (forall ((?p_343_262 c_unique)) (forall ((?l_342_263 c_unique)) (forall ((?m_341_264 c_unique)) (forall ((?a_340_265 Int)) (let ((?v_0 (type_pointer ?t_59_344_261))) (=> (forall ((?p1_339_266 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_60_345_260) ?p1_339_266) (c_sort (type_pset ?t_60_345_260) ?l_342_263))) (forall ((?i_338_267 Int)) (let ((?v_1 (type_pointer ?t_60_345_260))) (=> (<= ?i_338_267 ?a_340_265) (not (= ?p_343_262 (acc (c_sort (type_memory ?v_0 ?t_60_345_260) ?m_341_264) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_339_266) ?i_338_267)))))))))) (not_in_pset (c_sort ?v_0 ?p_343_262) (c_sort (type_pset ?t_59_344_261) (pset_acc_range_left (c_sort (type_pset ?t_60_345_260) ?l_342_263) (c_sort (type_memory ?v_0 ?t_60_345_260) ?m_341_264) ?a_340_265)))))))))))) +(assert (forall ((?t_62_353_268 c_type)) (forall ((?t_61_352_269 c_type)) (forall ((?p_351_270 c_unique)) (forall ((?l_350_271 c_unique)) (forall ((?m_349_272 c_unique)) (forall ((?a_348_273 Int)) (let ((?v_0 (type_pointer ?t_61_352_269))) (=> (not_in_pset (c_sort ?v_0 ?p_351_270) (c_sort (type_pset ?t_61_352_269) (pset_acc_range_left (c_sort (type_pset ?t_62_353_268) ?l_350_271) (c_sort (type_memory ?v_0 ?t_62_353_268) ?m_349_272) ?a_348_273))) (forall ((?p1_347_274 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_62_353_268) ?p1_347_274) (c_sort (type_pset ?t_62_353_268) ?l_350_271))) (forall ((?i_346_275 Int)) (let ((?v_1 (type_pointer ?t_62_353_268))) (=> (<= ?i_346_275 ?a_348_273) (not (= (acc (c_sort (type_memory ?v_0 ?t_62_353_268) ?m_349_272) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_347_274) ?i_346_275))) ?p_351_270)))))))))))))))) +(assert (forall ((?t_64_361_276 c_type)) (forall ((?t_63_360_277 c_type)) (forall ((?p_359_278 c_unique)) (forall ((?l_358_279 c_unique)) (forall ((?m_357_280 c_unique)) (forall ((?a_356_281 Int)) (let ((?v_0 (type_pointer ?t_63_360_277))) (=> (forall ((?p1_355_282 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_64_361_276) ?p1_355_282) (c_sort (type_pset ?t_64_361_276) ?l_358_279))) (forall ((?i_354_283 Int)) (let ((?v_1 (type_pointer ?t_64_361_276))) (=> (<= ?a_356_281 ?i_354_283) (not (= ?p_359_278 (acc (c_sort (type_memory ?v_0 ?t_64_361_276) ?m_357_280) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_355_282) ?i_354_283)))))))))) (not_in_pset (c_sort ?v_0 ?p_359_278) (c_sort (type_pset ?t_63_360_277) (pset_acc_range_right (c_sort (type_pset ?t_64_361_276) ?l_358_279) (c_sort (type_memory ?v_0 ?t_64_361_276) ?m_357_280) ?a_356_281)))))))))))) +(assert (forall ((?t_66_369_284 c_type)) (forall ((?t_65_368_285 c_type)) (forall ((?p_367_286 c_unique)) (forall ((?l_366_287 c_unique)) (forall ((?m_365_288 c_unique)) (forall ((?a_364_289 Int)) (let ((?v_0 (type_pointer ?t_65_368_285))) (=> (not_in_pset (c_sort ?v_0 ?p_367_286) (c_sort (type_pset ?t_65_368_285) (pset_acc_range_right (c_sort (type_pset ?t_66_369_284) ?l_366_287) (c_sort (type_memory ?v_0 ?t_66_369_284) ?m_365_288) ?a_364_289))) (forall ((?p1_363_290 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_66_369_284) ?p1_363_290) (c_sort (type_pset ?t_66_369_284) ?l_366_287))) (forall ((?i_362_291 Int)) (let ((?v_1 (type_pointer ?t_66_369_284))) (=> (<= ?a_364_289 ?i_362_291) (not (= (acc (c_sort (type_memory ?v_0 ?t_66_369_284) ?m_365_288) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_363_290) ?i_362_291))) ?p_367_286)))))))))))))))) +(assert (forall ((?t_68_376_292 c_type)) (forall ((?t_67_375_293 c_type)) (forall ((?a_374_294 c_unique)) (forall ((?l_373_295 c_unique)) (forall ((?m1_372_296 c_unique)) (forall ((?m2_371_297 c_unique)) (forall ((?m3_370_298 c_unique)) (let ((?v_1 (c_sort type_alloc_table ?a_374_294)) (?v_0 (type_memory ?t_68_376_292 ?t_67_375_293))) (let ((?v_4 (c_sort ?v_0 ?m1_372_296)) (?v_2 (c_sort ?v_0 ?m2_371_297)) (?v_3 (c_sort (type_pset ?t_67_375_293) ?l_373_295)) (?v_5 (c_sort ?v_0 ?m3_370_298))) (=> (not_assigns ?v_1 ?v_4 ?v_2 ?v_3) (=> (not_assigns ?v_1 ?v_2 ?v_5 ?v_3) (not_assigns ?v_1 ?v_4 ?v_5 ?v_3))))))))))))) +(assert (forall ((?t_70_381_299 c_type)) (forall ((?t_69_380_300 c_type)) (forall ((?a_379_301 c_unique)) (forall ((?l_378_302 c_unique)) (forall ((?m_377_303 c_unique)) (let ((?v_0 (c_sort (type_memory ?t_70_381_299 ?t_69_380_300) ?m_377_303))) (not_assigns (c_sort type_alloc_table ?a_379_301) ?v_0 ?v_0 (c_sort (type_pset ?t_69_380_300) ?l_378_302))))))))) +(declare-fun valid_acc (c_ssorted) Bool) +(assert (forall ((?t_72_386_304 c_type)) (forall ((?t_71_385_305 c_type)) (forall ((?m1_384_306 c_unique)) (= (valid_acc (c_sort (type_memory (type_pointer ?t_71_385_305) ?t_72_386_304) ?m1_384_306)) (forall ((?p_383_307 c_unique)) (forall ((?a_382_308 c_unique)) (let ((?v_1 (type_pointer ?t_71_385_305)) (?v_0 (c_sort type_alloc_table ?a_382_308)) (?v_2 (c_sort (type_pointer ?t_72_386_304) ?p_383_307))) (=> (valid ?v_0 ?v_2) (valid ?v_0 (c_sort ?v_1 (acc (c_sort (type_memory ?v_1 ?t_72_386_304) ?m1_384_306) ?v_2)))))))))))) +(declare-fun valid_acc_range (c_ssorted Int) Bool) +(assert (forall ((?t_74_392_309 c_type)) (forall ((?t_73_391_310 c_type)) (forall ((?m1_390_311 c_unique)) (forall ((?size_389_312 Int)) (= (valid_acc_range (c_sort (type_memory (type_pointer ?t_73_391_310) ?t_74_392_309) ?m1_390_311) ?size_389_312) (forall ((?p_388_313 c_unique)) (forall ((?a_387_314 c_unique)) (let ((?v_1 (type_pointer ?t_73_391_310)) (?v_0 (c_sort type_alloc_table ?a_387_314)) (?v_2 (c_sort (type_pointer ?t_74_392_309) ?p_388_313))) (=> (valid ?v_0 ?v_2) (valid_range ?v_0 (c_sort ?v_1 (acc (c_sort (type_memory ?v_1 ?t_74_392_309) ?m1_390_311) ?v_2)) 0 (- ?size_389_312 1)))))))))))) +(assert (forall ((?t_76_398_315 c_type)) (forall ((?t_75_397_316 c_type)) (forall ((?m1_396_317 c_unique)) (forall ((?size_395_318 Int)) (forall ((?p_394_319 c_unique)) (forall ((?a_393_320 c_unique)) (let ((?v_1 (type_pointer ?t_75_397_316))) (let ((?v_2 (c_sort (type_memory ?v_1 ?t_76_398_315) ?m1_396_317)) (?v_0 (c_sort type_alloc_table ?a_393_320)) (?v_3 (c_sort (type_pointer ?t_76_398_315) ?p_394_319))) (=> (valid_acc_range ?v_2 ?size_395_318) (=> (valid ?v_0 ?v_3) (valid ?v_0 (c_sort ?v_1 (acc ?v_2 ?v_3)))))))))))))) +(declare-fun separation1 (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_78_404_321 c_type)) (forall ((?t_77_403_322 c_type)) (forall ((?m1_402_323 c_unique)) (forall ((?m2_401_324 c_unique)) (let ((?v_0 (type_memory (type_pointer ?t_77_403_322) ?t_78_404_321))) (= (separation1 (c_sort ?v_0 ?m1_402_323) (c_sort ?v_0 ?m2_401_324)) (forall ((?p_400_325 c_unique)) (forall ((?a_399_326 c_unique)) (let ((?v_1 (type_pointer ?t_77_403_322)) (?v_2 (c_sort (type_pointer ?t_78_404_321) ?p_400_325))) (=> (valid (c_sort type_alloc_table ?a_399_326) ?v_2) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_402_323) ?v_2))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_401_324) ?v_2)))))))))))))))) +(declare-fun separation1_range1 (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_80_412_327 c_type)) (forall ((?t_79_411_328 c_type)) (forall ((?m1_410_329 c_unique)) (forall ((?m2_409_330 c_unique)) (forall ((?size_408_331 Int)) (let ((?v_0 (type_memory (type_pointer ?t_79_411_328) ?t_80_412_327))) (= (separation1_range1 (c_sort ?v_0 ?m1_410_329) (c_sort ?v_0 ?m2_409_330) ?size_408_331) (forall ((?p_407_332 c_unique)) (forall ((?a_406_333 c_unique)) (=> (valid (c_sort type_alloc_table ?a_406_333) (c_sort (type_pointer ?t_80_412_327) ?p_407_332)) (forall ((?i_405_334 Int)) (let ((?v_1 (type_pointer ?t_79_411_328)) (?v_2 (type_pointer ?t_80_412_327))) (let ((?v_3 (c_sort ?v_2 ?p_407_332))) (=> (and (<= 0 ?i_405_334) (< ?i_405_334 ?size_408_331)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_410_329) (c_sort ?v_2 (shift ?v_3 ?i_405_334))))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_409_330) ?v_3)))))))))))))))))))) +(declare-fun separation1_range (c_ssorted Int) Bool) +(assert (forall ((?t_82_420_335 c_type)) (forall ((?t_81_419_336 c_type)) (forall ((?m_418_337 c_unique)) (forall ((?size_417_338 Int)) (= (separation1_range (c_sort (type_memory (type_pointer ?t_81_419_336) ?t_82_420_335) ?m_418_337) ?size_417_338) (forall ((?p_416_339 c_unique)) (forall ((?a_415_340 c_unique)) (=> (valid (c_sort type_alloc_table ?a_415_340) (c_sort (type_pointer ?t_82_420_335) ?p_416_339)) (forall ((?i1_414_341 Int)) (forall ((?i2_413_342 Int)) (let ((?v_0 (type_pointer ?t_81_419_336))) (let ((?v_2 (c_sort (type_memory ?v_0 ?t_82_420_335) ?m_418_337)) (?v_1 (type_pointer ?t_82_420_335))) (let ((?v_3 (c_sort ?v_1 ?p_416_339))) (=> (and (<= 0 ?i1_414_341) (< ?i1_414_341 ?size_417_338)) (=> (and (<= 0 ?i2_413_342) (< ?i2_413_342 ?size_417_338)) (=> (not (= ?i1_414_341 ?i2_413_342)) (not (= (base_addr (c_sort ?v_0 (acc ?v_2 (c_sort ?v_1 (shift ?v_3 ?i1_414_341))))) (base_addr (c_sort ?v_0 (acc ?v_2 (c_sort ?v_1 (shift ?v_3 ?i2_413_342)))))))))))))))))))))))) +(declare-fun separation2 (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_84_426_343 c_type)) (forall ((?t_83_425_344 c_type)) (forall ((?m1_424_345 c_unique)) (forall ((?m2_423_346 c_unique)) (let ((?v_0 (type_memory (type_pointer ?t_83_425_344) ?t_84_426_343))) (= (separation2 (c_sort ?v_0 ?m1_424_345) (c_sort ?v_0 ?m2_423_346)) (forall ((?p1_422_347 c_unique)) (forall ((?p2_421_348 c_unique)) (let ((?v_1 (type_pointer ?t_83_425_344)) (?v_2 (type_pointer ?t_84_426_343))) (=> (not (= ?p1_422_347 ?p2_421_348)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_424_345) (c_sort ?v_2 ?p1_422_347)))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_423_346) (c_sort ?v_2 ?p2_421_348))))))))))))))))) +(declare-fun separation2_range1 (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_86_435_349 c_type)) (forall ((?t_85_434_350 c_type)) (forall ((?m1_433_351 c_unique)) (forall ((?m2_432_352 c_unique)) (forall ((?size_431_353 Int)) (let ((?v_0 (type_memory (type_pointer ?t_85_434_350) ?t_86_435_349))) (= (separation2_range1 (c_sort ?v_0 ?m1_433_351) (c_sort ?v_0 ?m2_432_352) ?size_431_353) (forall ((?p_430_354 c_unique)) (forall ((?q_429_355 c_unique)) (forall ((?a_428_356 c_unique)) (forall ((?i_427_357 Int)) (let ((?v_1 (type_pointer ?t_85_434_350)) (?v_2 (type_pointer ?t_86_435_349))) (=> (and (<= 0 ?i_427_357) (< ?i_427_357 ?size_431_353)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_433_351) (c_sort ?v_2 (shift (c_sort ?v_2 ?p_430_354) ?i_427_357))))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_432_352) (c_sort ?v_2 ?q_429_355)))))))))))))))))))) +(declare-fun on_heap (c_ssorted c_ssorted) Bool) +(declare-fun on_stack (c_ssorted c_ssorted) Bool) +(declare-fun fresh (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_87_438_358 c_type)) (forall ((?a_437_359 c_unique)) (forall ((?p_436_360 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a_437_359)) (?v_1 (c_sort (type_pointer ?t_87_438_358) ?p_436_360))) (=> (fresh ?v_0 ?v_1) (not (valid ?v_0 ?v_1)))))))) +(assert (forall ((?t_88_442_361 c_type)) (forall ((?a_441_362 c_unique)) (forall ((?p_440_363 c_unique)) (=> (fresh (c_sort type_alloc_table ?a_441_362) (c_sort (type_pointer ?t_88_442_361) ?p_440_363)) (forall ((?i_439_364 Int)) (let ((?v_0 (type_pointer ?t_88_442_361))) (not (valid (c_sort type_alloc_table ?a_441_362) (c_sort ?v_0 (shift (c_sort ?v_0 ?p_440_363) ?i_439_364))))))))))) +(declare-fun alloc_extends (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_89_446_365 c_type)) (forall ((?a1_445_366 c_unique)) (forall ((?a2_444_367 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_445_366) (c_sort type_alloc_table ?a2_444_367)) (forall ((?q_443_368 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_89_446_365) ?q_443_368))) (=> (valid (c_sort type_alloc_table ?a1_445_366) ?v_0) (valid (c_sort type_alloc_table ?a2_444_367) ?v_0))))))))) +(assert (forall ((?t_90_451_369 c_type)) (forall ((?a1_450_370 c_unique)) (forall ((?a2_449_371 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_450_370) (c_sort type_alloc_table ?a2_449_371)) (forall ((?q_448_372 c_unique)) (forall ((?i_447_373 Int)) (let ((?v_0 (c_sort (type_pointer ?t_90_451_369) ?q_448_372))) (=> (valid_index (c_sort type_alloc_table ?a1_450_370) ?v_0 ?i_447_373) (valid_index (c_sort type_alloc_table ?a2_449_371) ?v_0 ?i_447_373)))))))))) +(assert (forall ((?t_91_457_374 c_type)) (forall ((?a1_456_375 c_unique)) (forall ((?a2_455_376 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_456_375) (c_sort type_alloc_table ?a2_455_376)) (forall ((?q_454_377 c_unique)) (forall ((?i_453_378 Int)) (forall ((?j_452_379 Int)) (let ((?v_0 (c_sort (type_pointer ?t_91_457_374) ?q_454_377))) (=> (valid_range (c_sort type_alloc_table ?a1_456_375) ?v_0 ?i_453_378 ?j_452_379) (valid_range (c_sort type_alloc_table ?a2_455_376) ?v_0 ?i_453_378 ?j_452_379))))))))))) +(assert (forall ((?a_458_380 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a_458_380))) (alloc_extends ?v_0 ?v_0)))) +(assert (forall ((?a1_461_381 c_unique)) (forall ((?a2_460_382 c_unique)) (forall ((?a3_459_383 c_unique)) (let ((?v_1 (c_sort type_alloc_table ?a1_461_381)) (?v_0 (c_sort type_alloc_table ?a2_460_382)) (?v_2 (c_sort type_alloc_table ?a3_459_383))) (=> (alloc_extends ?v_1 ?v_0) (=> (alloc_extends ?v_0 ?v_2) (alloc_extends ?v_1 ?v_2)))))))) +(declare-fun free_stack (c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?t_92_466_384 c_type)) (forall ((?a1_465_385 c_unique)) (forall ((?a2_464_386 c_unique)) (forall ((?a3_463_387 c_unique)) (=> (free_stack (c_sort type_alloc_table ?a1_465_385) (c_sort type_alloc_table ?a2_464_386) (c_sort type_alloc_table ?a3_463_387)) (forall ((?p_462_388 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a2_464_386)) (?v_1 (c_sort (type_pointer ?t_92_466_384) ?p_462_388))) (=> (valid ?v_0 ?v_1) (=> (on_heap ?v_0 ?v_1) (valid (c_sort type_alloc_table ?a3_463_387) ?v_1))))))))))) +(assert (forall ((?t_93_471_389 c_type)) (forall ((?a1_470_390 c_unique)) (forall ((?a2_469_391 c_unique)) (forall ((?a3_468_392 c_unique)) (=> (free_stack (c_sort type_alloc_table ?a1_470_390) (c_sort type_alloc_table ?a2_469_391) (c_sort type_alloc_table ?a3_468_392)) (forall ((?p_467_393 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a1_470_390)) (?v_1 (c_sort (type_pointer ?t_93_471_389) ?p_467_393))) (=> (valid ?v_0 ?v_1) (=> (on_stack ?v_0 ?v_1) (valid (c_sort type_alloc_table ?a3_468_392) ?v_1))))))))))) +(declare-fun null () c_unique) +(assert (forall ((?t_94_475_394 c_type)) (forall ((?a_474_395 c_unique)) (not (valid (c_sort type_alloc_table ?a_474_395) (c_sort (type_pointer ?t_94_475_394) null)))))) +(declare-fun type_global () c_type) +(assert (not (forall ((?t c_unique)) (forall ((?n Int)) (forall ((?alloc c_unique)) (forall ((?intM_global c_unique)) (=> (valid_range (c_sort type_alloc_table ?alloc) (c_sort (type_pointer type_global) ?t) 0 ?n) (forall ((?mutable_n Int)) (=> (and (<= ?mutable_n ?n) (forall ((?i_495_419 Int)) (let ((?v_0 (type_pointer type_global))) (=> (and (<= ?mutable_n ?i_495_419) (< ?i_495_419 ?n)) (= (ss2Int (c_sort c_int (acc (c_sort (type_memory c_int type_global) ?intM_global) (c_sort ?v_0 (shift (c_sort ?v_0 ?t) ?i_495_419))))) 0))))) (forall ((?mutable_n0 Int)) (=> (= ?mutable_n0 (- ?mutable_n 1)) (=> (< ?mutable_n0 0) (=> (not (= 1 0)) (forall ((?i Int)) (let ((?v_1 (type_pointer type_global))) (=> (and (<= 0 ?i) (< ?i ?n)) (= (ss2Int (c_sort c_int (acc (c_sort (type_memory c_int type_global) ?intM_global) (c_sort ?v_1 (shift (c_sort ?v_1 ?t) ?i))))) 0))))))))))))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/smtlib46f14a.smt2 b/test/regress/regress1/quantifiers/smtlib46f14a.smt2 new file mode 100644 index 000000000..fa0c85470 --- /dev/null +++ b/test/regress/regress1/quantifiers/smtlib46f14a.smt2 @@ -0,0 +1,205 @@ +(set-logic AUFLIRA) +(set-info :source |http://proval.lri.fr/why-benchmarks |) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-sort Unit 0) +(declare-sort c_unique 0) +(declare-sort c_ssorted 0) +(declare-sort c_type 0) +(declare-sort c_Boolean 0) +(declare-fun c_sort (c_type c_unique) c_ssorted) +(declare-fun c_Boolean_true () c_Boolean) +(declare-fun c_Boolean_false () c_Boolean) +(assert (forall ((?b_22_1 c_Boolean)) (or (= c_Boolean_true ?b_22_1) (= c_Boolean_false ?b_22_1)))) +(assert (not (= c_Boolean_true c_Boolean_false))) +(declare-fun int2U (Int) c_unique) +(declare-fun ss2Int (c_ssorted) Int) +(declare-fun real2U (Real) c_unique) +(declare-fun ss2Real (c_ssorted) Real) +(declare-fun bool2U (c_Boolean) c_unique) +(declare-fun ss2Bool (c_ssorted) c_Boolean) +(declare-fun c_int () c_type) +(declare-fun c_bool () c_type) +(declare-fun c_real () c_type) +(declare-fun c_unit () c_type) +(declare-fun c_ref (c_unique) c_unique) +(assert (forall ((?t_21_2 c_type)) (forall ((?x_20_3 c_unique)) (forall ((?y_19_4 c_unique)) (=> (= (c_sort ?t_21_2 ?x_20_3) (c_sort ?t_21_2 ?y_19_4)) (= ?x_20_3 ?y_19_4)))))) +(assert (forall ((?x_18_5 Int)) (= (ss2Int (c_sort c_int (int2U ?x_18_5))) ?x_18_5))) +(assert (forall ((?x_17_6 Int)) (forall ((?y_16_7 Int)) (=> (= (int2U ?x_17_6) (int2U ?y_16_7)) (= ?x_17_6 ?y_16_7))))) +(assert (forall ((?x_15_8 Real)) (forall ((?y_14_9 Real)) (=> (= (real2U ?x_15_8) (real2U ?y_14_9)) (= ?x_15_8 ?y_14_9))))) +(assert (forall ((?x_13_10 c_Boolean)) (forall ((?y_12_11 c_Boolean)) (=> (= (bool2U ?x_13_10) (bool2U ?y_12_11)) (= ?x_13_10 ?y_12_11))))) +(assert (forall ((?x_11_12 c_ssorted)) (forall ((?y_10_13 c_ssorted)) (=> (= (ss2Int ?x_11_12) (ss2Int ?y_10_13)) (= ?x_11_12 ?y_10_13))))) +(assert (forall ((?x_9_14 c_ssorted)) (forall ((?y_8_15 c_ssorted)) (=> (= (ss2Real ?x_9_14) (ss2Real ?y_8_15)) (= ?x_9_14 ?y_8_15))))) +(assert (forall ((?x_7_16 c_ssorted)) (forall ((?y_6_17 c_ssorted)) (=> (= (ss2Bool ?x_7_16) (ss2Bool ?y_6_17)) (= ?x_7_16 ?y_6_17))))) +(assert (forall ((?x_5_18 Real)) (= (ss2Real (c_sort c_real (real2U ?x_5_18))) ?x_5_18))) +(assert (forall ((?x_4_19 c_Boolean)) (= (ss2Bool (c_sort c_bool (bool2U ?x_4_19))) ?x_4_19))) +(assert (forall ((?x_3_20 c_unique)) (= (int2U (ss2Int (c_sort c_int ?x_3_20))) ?x_3_20))) +(assert (forall ((?x_2_21 c_unique)) (= (real2U (ss2Real (c_sort c_real ?x_2_21))) ?x_2_21))) +(assert (forall ((?x_1_22 c_unique)) (= (bool2U (ss2Bool (c_sort c_bool ?x_1_22))) ?x_1_22))) +(declare-fun eq_int (Int Int) Bool) +(declare-fun neq_int (Int Int) Bool) +(declare-fun lt_int_bool (Int Int) c_Boolean) +(declare-fun le_int_bool (Int Int) c_Boolean) +(declare-fun gt_int_bool (Int Int) c_Boolean) +(declare-fun ge_int_bool (Int Int) c_Boolean) +(declare-fun eq_int_bool (Int Int) c_Boolean) +(declare-fun neq_int_bool (Int Int) c_Boolean) +(assert (forall ((?x_40_23 Int)) (forall ((?y_39_24 Int)) (= (= (lt_int_bool ?x_40_23 ?y_39_24) c_Boolean_true) (< ?x_40_23 ?y_39_24))))) +(assert (forall ((?x_42_25 Int)) (forall ((?y_41_26 Int)) (= (= (le_int_bool ?x_42_25 ?y_41_26) c_Boolean_true) (<= ?x_42_25 ?y_41_26))))) +(assert (forall ((?x_44_27 Int)) (forall ((?y_43_28 Int)) (= (= (gt_int_bool ?x_44_27 ?y_43_28) c_Boolean_true) (> ?x_44_27 ?y_43_28))))) +(assert (forall ((?x_46_29 Int)) (forall ((?y_45_30 Int)) (= (= (ge_int_bool ?x_46_29 ?y_45_30) c_Boolean_true) (>= ?x_46_29 ?y_45_30))))) +(assert (forall ((?x_48_31 Int)) (forall ((?y_47_32 Int)) (= (= (eq_int_bool ?x_48_31 ?y_47_32) c_Boolean_true) (= ?x_48_31 ?y_47_32))))) +(assert (forall ((?x_50_33 Int)) (forall ((?y_49_34 Int)) (= (= (neq_int_bool ?x_50_33 ?y_49_34) c_Boolean_true) (not (= ?x_50_33 ?y_49_34)))))) +(declare-fun add_real (Real Real) Real) +(declare-fun sub_real (Real Real) Real) +(declare-fun mul_real (Real Real) Real) +(declare-fun div_real (Real Real) Real) +(declare-fun pow_real (Real Real) Real) +(declare-fun neg_real (Real) Real) +(declare-fun abs_real (Real) Real) +(declare-fun sqrt_real (Real) Real) +(declare-fun real_of_int (Int) Real) +(declare-fun int_of_real (Real) Int) +(declare-fun lt_real (Real Real) Bool) +(declare-fun le_real (Real Real) Bool) +(declare-fun gt_real (Real Real) Bool) +(declare-fun ge_real (Real Real) Bool) +(declare-fun eq_real (Real Real) Bool) +(declare-fun neq_real (Real Real) Bool) +(declare-fun eq_bool (c_Boolean c_Boolean) Bool) +(declare-fun neq_bool (c_Boolean c_Boolean) Bool) +(declare-fun eq_unit (c_ssorted c_ssorted) Bool) +(declare-fun neq_unit (c_ssorted c_ssorted) Bool) +(declare-fun smtlib__ite (c_Boolean c_ssorted c_ssorted) c_unique) +(assert (forall ((?t_1_76_35 c_type)) (forall ((?x_75_36 c_unique)) (forall ((?y_74_37 c_unique)) (= (smtlib__ite c_Boolean_true (c_sort ?t_1_76_35 ?x_75_36) (c_sort ?t_1_76_35 ?y_74_37)) ?x_75_36))))) +(assert (forall ((?t_2_79_38 c_type)) (forall ((?x_78_39 c_unique)) (forall ((?y_77_40 c_unique)) (= (smtlib__ite c_Boolean_false (c_sort ?t_2_79_38 ?x_78_39) (c_sort ?t_2_79_38 ?y_77_40)) ?y_77_40))))) +(declare-fun bw_compl (Int) Int) +(declare-fun bw_and (Int Int) Int) +(declare-fun bw_xor (Int Int) Int) +(declare-fun bw_or (Int Int) Int) +(declare-fun lsl (Int Int) Int) +(declare-fun lsr (Int Int) Int) +(declare-fun non_int (Int) Int) +(declare-fun type_pointer (c_type) c_type) +(declare-fun type_addr (c_type) c_type) +(declare-fun type_alloc_table () c_type) +(declare-fun block_length (c_ssorted c_ssorted) Int) +(declare-fun base_addr (c_ssorted) c_unique) +(declare-fun offset (c_ssorted) Int) +(declare-fun shift (c_ssorted Int) c_unique) +(declare-fun sub_pointer (c_ssorted c_ssorted) Int) +(declare-fun lt_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_3_88_41 c_type)) (forall ((?p1_87_42 c_unique)) (forall ((?p2_86_43 c_unique)) (let ((?v_0 (type_pointer ?t_3_88_41))) (let ((?v_1 (c_sort ?v_0 ?p1_87_42)) (?v_2 (c_sort ?v_0 ?p2_86_43))) (= (lt_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (< (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun le_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_4_91_44 c_type)) (forall ((?p1_90_45 c_unique)) (forall ((?p2_89_46 c_unique)) (let ((?v_0 (type_pointer ?t_4_91_44))) (let ((?v_1 (c_sort ?v_0 ?p1_90_45)) (?v_2 (c_sort ?v_0 ?p2_89_46))) (= (le_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (<= (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun gt_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_5_94_47 c_type)) (forall ((?p1_93_48 c_unique)) (forall ((?p2_92_49 c_unique)) (let ((?v_0 (type_pointer ?t_5_94_47))) (let ((?v_1 (c_sort ?v_0 ?p1_93_48)) (?v_2 (c_sort ?v_0 ?p2_92_49))) (= (gt_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (> (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun ge_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_6_97_50 c_type)) (forall ((?p1_96_51 c_unique)) (forall ((?p2_95_52 c_unique)) (let ((?v_0 (type_pointer ?t_6_97_50))) (let ((?v_1 (c_sort ?v_0 ?p1_96_51)) (?v_2 (c_sort ?v_0 ?p2_95_52))) (= (ge_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (>= (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun valid (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_7_104_53 c_type)) (forall ((?a_103_54 c_unique)) (forall ((?p_102_55 c_unique)) (let ((?v_2 (c_sort type_alloc_table ?a_103_54)) (?v_0 (c_sort (type_pointer ?t_7_104_53) ?p_102_55))) (let ((?v_1 (offset ?v_0))) (= (valid ?v_2 ?v_0) (and (<= 0 ?v_1) (< ?v_1 (block_length ?v_2 ?v_0)))))))))) +(declare-fun valid_index (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_8_108_56 c_type)) (forall ((?a_107_57 c_unique)) (forall ((?p_106_58 c_unique)) (forall ((?i_105_59 Int)) (let ((?v_2 (c_sort type_alloc_table ?a_107_57)) (?v_0 (c_sort (type_pointer ?t_8_108_56) ?p_106_58))) (let ((?v_1 (+ (offset ?v_0) ?i_105_59))) (= (valid_index ?v_2 ?v_0 ?i_105_59) (and (<= 0 ?v_1) (< ?v_1 (block_length ?v_2 ?v_0))))))))))) +(declare-fun valid_range (c_ssorted c_ssorted Int Int) Bool) +(assert (forall ((?t_9_113_60 c_type)) (forall ((?a_112_61 c_unique)) (forall ((?p_111_62 c_unique)) (forall ((?i_110_63 Int)) (forall ((?j_109_64 Int)) (let ((?v_2 (c_sort type_alloc_table ?a_112_61)) (?v_0 (c_sort (type_pointer ?t_9_113_60) ?p_111_62))) (let ((?v_1 (offset ?v_0))) (= (valid_range ?v_2 ?v_0 ?i_110_63 ?j_109_64) (and (<= 0 (+ ?v_1 ?i_110_63)) (< (+ ?v_1 ?j_109_64) (block_length ?v_2 ?v_0)))))))))))) +(assert (forall ((?t_10_116_65 c_type)) (forall ((?p_115_66 c_unique)) (forall ((?i_114_67 Int)) (let ((?v_0 (type_pointer ?t_10_116_65))) (let ((?v_1 (c_sort ?v_0 ?p_115_66))) (= (offset (c_sort ?v_0 (shift ?v_1 ?i_114_67))) (+ (offset ?v_1) ?i_114_67)))))))) +(assert (forall ((?t_11_118_68 c_type)) (forall ((?p_117_69 c_unique)) (= (shift (c_sort (type_pointer ?t_11_118_68) ?p_117_69) 0) ?p_117_69)))) +(assert (forall ((?t_12_122_70 c_type)) (forall ((?p_121_71 c_unique)) (forall ((?i_120_72 Int)) (forall ((?j_119_73 Int)) (let ((?v_0 (type_pointer ?t_12_122_70))) (let ((?v_1 (c_sort ?v_0 ?p_121_71))) (= (shift (c_sort ?v_0 (shift ?v_1 ?i_120_72)) ?j_119_73) (shift ?v_1 (+ ?i_120_72 ?j_119_73)))))))))) +(assert (forall ((?t_13_125_74 c_type)) (forall ((?p_124_75 c_unique)) (forall ((?i_123_76 Int)) (let ((?v_0 (type_pointer ?t_13_125_74))) (let ((?v_1 (c_sort ?v_0 ?p_124_75))) (= (base_addr (c_sort ?v_0 (shift ?v_1 ?i_123_76))) (base_addr ?v_1)))))))) +(assert (forall ((?t_14_129_77 c_type)) (forall ((?a_128_78 c_unique)) (forall ((?p_127_79 c_unique)) (forall ((?i_126_80 Int)) (let ((?v_1 (c_sort type_alloc_table ?a_128_78)) (?v_0 (type_pointer ?t_14_129_77))) (let ((?v_2 (c_sort ?v_0 ?p_127_79))) (= (block_length ?v_1 (c_sort ?v_0 (shift ?v_2 ?i_126_80))) (block_length ?v_1 ?v_2))))))))) +(assert (forall ((?t_15_133_81 c_type)) (forall ((?a_132_82 c_unique)) (forall ((?p1_131_83 c_unique)) (forall ((?p2_130_84 c_unique)) (let ((?v_0 (type_pointer ?t_15_133_81))) (let ((?v_1 (c_sort ?v_0 ?p1_131_83)) (?v_3 (c_sort ?v_0 ?p2_130_84)) (?v_2 (c_sort type_alloc_table ?a_132_82))) (=> (= (base_addr ?v_1) (base_addr ?v_3)) (= (block_length ?v_2 ?v_1) (block_length ?v_2 ?v_3)))))))))) +(assert (forall ((?t_16_136_85 c_type)) (forall ((?p1_135_86 c_unique)) (forall ((?p2_134_87 c_unique)) (let ((?v_0 (type_pointer ?t_16_136_85))) (let ((?v_1 (c_sort ?v_0 ?p1_135_86)) (?v_2 (c_sort ?v_0 ?p2_134_87))) (=> (and (= (base_addr ?v_1) (base_addr ?v_2)) (= (offset ?v_1) (offset ?v_2))) (= ?p1_135_86 ?p2_134_87)))))))) +(assert (forall ((?t_17_139_88 c_type)) (forall ((?p1_138_89 c_unique)) (forall ((?p2_137_90 c_unique)) (let ((?v_0 (type_pointer ?t_17_139_88))) (let ((?v_1 (c_sort ?v_0 ?p1_138_89)) (?v_2 (c_sort ?v_0 ?p2_137_90))) (=> (= ?p1_138_89 ?p2_137_90) (and (= (base_addr ?v_1) (base_addr ?v_2)) (= (offset ?v_1) (offset ?v_2)))))))))) +(assert (forall ((?t_18_144_91 c_type)) (forall ((?p1_143_92 c_unique)) (forall ((?p2_142_93 c_unique)) (forall ((?i_141_94 Int)) (forall ((?j_140_95 Int)) (let ((?v_0 (type_pointer ?t_18_144_91))) (let ((?v_1 (c_sort ?v_0 ?p1_143_92)) (?v_2 (c_sort ?v_0 ?p2_142_93))) (=> (not (= (base_addr ?v_1) (base_addr ?v_2))) (not (= (shift ?v_1 ?i_141_94) (shift ?v_2 ?j_140_95)))))))))))) +(assert (forall ((?t_19_149_96 c_type)) (forall ((?p1_148_97 c_unique)) (forall ((?p2_147_98 c_unique)) (forall ((?i_146_99 Int)) (forall ((?j_145_100 Int)) (let ((?v_0 (type_pointer ?t_19_149_96))) (let ((?v_1 (c_sort ?v_0 ?p1_148_97)) (?v_2 (c_sort ?v_0 ?p2_147_98))) (=> (not (= (+ (offset ?v_1) ?i_146_99) (+ (offset ?v_2) ?j_145_100))) (not (= (shift ?v_1 ?i_146_99) (shift ?v_2 ?j_145_100)))))))))))) +(assert (forall ((?t_20_154_101 c_type)) (forall ((?p1_153_102 c_unique)) (forall ((?p2_152_103 c_unique)) (forall ((?i_151_104 Int)) (forall ((?j_150_105 Int)) (let ((?v_0 (type_pointer ?t_20_154_101))) (let ((?v_1 (c_sort ?v_0 ?p1_153_102)) (?v_2 (c_sort ?v_0 ?p2_152_103))) (=> (= (base_addr ?v_1) (base_addr ?v_2)) (=> (= (+ (offset ?v_1) ?i_151_104) (+ (offset ?v_2) ?j_150_105)) (= (shift ?v_1 ?i_151_104) (shift ?v_2 ?j_150_105)))))))))))) +(assert (forall ((?t_21_158_106 c_type)) (forall ((?a_157_107 c_unique)) (forall ((?p_156_108 c_unique)) (forall ((?i_155_109 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_157_107)) (?v_1 (type_pointer ?t_21_158_106))) (let ((?v_2 (c_sort ?v_1 ?p_156_108))) (=> (valid_index ?v_0 ?v_2 ?i_155_109) (valid ?v_0 (c_sort ?v_1 (shift ?v_2 ?i_155_109))))))))))) +(assert (forall ((?t_22_164_110 c_type)) (forall ((?a_163_111 c_unique)) (forall ((?p_162_112 c_unique)) (forall ((?i_161_113 Int)) (forall ((?j_160_114 Int)) (forall ((?k_159_115 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_163_111)) (?v_1 (type_pointer ?t_22_164_110))) (let ((?v_2 (c_sort ?v_1 ?p_162_112))) (=> (valid_range ?v_0 ?v_2 ?i_161_113 ?j_160_114) (=> (and (<= ?i_161_113 ?k_159_115) (<= ?k_159_115 ?j_160_114)) (valid ?v_0 (c_sort ?v_1 (shift ?v_2 ?k_159_115)))))))))))))) +(assert (forall ((?t_23_169_116 c_type)) (forall ((?a_168_117 c_unique)) (forall ((?p_167_118 c_unique)) (forall ((?i_166_119 Int)) (forall ((?j_165_120 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_168_117)) (?v_1 (c_sort (type_pointer ?t_23_169_116) ?p_167_118))) (=> (valid_range ?v_0 ?v_1 ?i_166_119 ?j_165_120) (=> (and (<= ?i_166_119 0) (<= 0 ?j_165_120)) (valid ?v_0 ?v_1)))))))))) +(assert (forall ((?t_24_175_121 c_type)) (forall ((?a_174_122 c_unique)) (forall ((?p_173_123 c_unique)) (forall ((?i_172_124 Int)) (forall ((?j_171_125 Int)) (forall ((?k_170_126 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_174_122)) (?v_1 (c_sort (type_pointer ?t_24_175_121) ?p_173_123))) (=> (valid_range ?v_0 ?v_1 ?i_172_124 ?j_171_125) (=> (and (<= ?i_172_124 ?k_170_126) (<= ?k_170_126 ?j_171_125)) (valid_index ?v_0 ?v_1 ?k_170_126))))))))))) +(assert (forall ((?t_25_178_127 c_type)) (forall ((?p1_177_128 c_unique)) (forall ((?p2_176_129 c_unique)) (let ((?v_0 (type_pointer ?t_25_178_127))) (let ((?v_1 (c_sort ?v_0 ?p1_177_128)) (?v_2 (c_sort ?v_0 ?p2_176_129))) (=> (= (base_addr ?v_1) (base_addr ?v_2)) (= (sub_pointer ?v_1 ?v_2) (- (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun type_memory (c_type c_type) c_type) +(declare-fun acc (c_ssorted c_ssorted) c_unique) +(declare-fun upd (c_ssorted c_ssorted c_ssorted) c_unique) +(assert (forall ((?t_27_212_130 c_type)) (forall ((?t_26_211_131 c_type)) (forall ((?m_210_132 c_unique)) (forall ((?p_209_133 c_unique)) (forall ((?a_208_134 c_unique)) (let ((?v_0 (type_memory ?t_26_211_131 ?t_27_212_130)) (?v_1 (c_sort (type_pointer ?t_27_212_130) ?p_209_133))) (= (acc (c_sort ?v_0 (upd (c_sort ?v_0 ?m_210_132) ?v_1 (c_sort ?t_26_211_131 ?a_208_134))) ?v_1) ?a_208_134)))))))) +(assert (forall ((?t_29_218_135 c_type)) (forall ((?t_28_217_136 c_type)) (forall ((?m_216_137 c_unique)) (forall ((?p1_215_138 c_unique)) (forall ((?p2_214_139 c_unique)) (forall ((?a_213_140 c_unique)) (let ((?v_0 (type_memory ?t_28_217_136 ?t_29_218_135))) (let ((?v_2 (c_sort ?v_0 ?m_216_137)) (?v_1 (type_pointer ?t_29_218_135))) (let ((?v_3 (c_sort ?v_1 ?p2_214_139))) (=> (not (= ?p1_215_138 ?p2_214_139)) (= (acc (c_sort ?v_0 (upd ?v_2 (c_sort ?v_1 ?p1_215_138) (c_sort ?t_28_217_136 ?a_213_140))) ?v_3) (acc ?v_2 ?v_3))))))))))))) +(assert (not (= c_Boolean_false c_Boolean_true))) +(declare-fun type_pset (c_type) c_type) +(declare-fun pset_empty () c_unique) +(declare-fun pset_singleton (c_ssorted) c_unique) +(declare-fun pset_star (c_ssorted c_ssorted) c_unique) +(declare-fun pset_all (c_ssorted) c_unique) +(declare-fun pset_range (c_ssorted Int Int) c_unique) +(declare-fun pset_range_left (c_ssorted Int) c_unique) +(declare-fun pset_range_right (c_ssorted Int) c_unique) +(declare-fun pset_acc_all (c_ssorted c_ssorted) c_unique) +(declare-fun pset_acc_range (c_ssorted c_ssorted Int Int) c_unique) +(declare-fun pset_acc_range_left (c_ssorted c_ssorted Int) c_unique) +(declare-fun pset_acc_range_right (c_ssorted c_ssorted Int) c_unique) +(declare-fun pset_union (c_ssorted c_ssorted) c_unique) +(declare-fun not_in_pset (c_ssorted c_ssorted) Bool) +(declare-fun not_assigns (c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?t_31_225_141 c_type)) (forall ((?t_30_224_142 c_type)) (forall ((?a_223_143 c_unique)) (forall ((?m1_222_144 c_unique)) (forall ((?m2_221_145 c_unique)) (forall ((?l_220_146 c_unique)) (let ((?v_0 (type_memory ?t_30_224_142 ?t_31_225_141))) (= (not_assigns (c_sort type_alloc_table ?a_223_143) (c_sort ?v_0 ?m1_222_144) (c_sort ?v_0 ?m2_221_145) (c_sort (type_pset ?t_31_225_141) ?l_220_146)) (forall ((?p_219_147 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_31_225_141) ?p_219_147))) (=> (valid (c_sort type_alloc_table ?a_223_143) ?v_1) (=> (not_in_pset ?v_1 (c_sort (type_pset ?t_31_225_141) ?l_220_146)) (= (acc (c_sort ?v_0 ?m2_221_145) ?v_1) (acc (c_sort ?v_0 ?m1_222_144) ?v_1))))))))))))))) +(assert (forall ((?t_32_227_148 c_type)) (forall ((?p_226_149 c_unique)) (not_in_pset (c_sort (type_pointer ?t_32_227_148) ?p_226_149) (c_sort (type_pset ?t_32_227_148) pset_empty))))) +(assert (forall ((?t_33_230_150 c_type)) (forall ((?p1_229_151 c_unique)) (forall ((?p2_228_152 c_unique)) (let ((?v_0 (type_pointer ?t_33_230_150))) (=> (not (= ?p1_229_151 ?p2_228_152)) (not_in_pset (c_sort ?v_0 ?p1_229_151) (c_sort (type_pset ?t_33_230_150) (pset_singleton (c_sort ?v_0 ?p2_228_152)))))))))) +(assert (forall ((?t_34_233_153 c_type)) (forall ((?p1_232_154 c_unique)) (forall ((?p2_231_155 c_unique)) (let ((?v_0 (type_pointer ?t_34_233_153))) (=> (not_in_pset (c_sort ?v_0 ?p1_232_154) (c_sort (type_pset ?t_34_233_153) (pset_singleton (c_sort ?v_0 ?p2_231_155)))) (not (= ?p1_232_154 ?p2_231_155)))))))) +(assert (forall ((?t_35_235_156 c_type)) (forall ((?p_234_157 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_35_235_156) ?p_234_157))) (not (not_in_pset ?v_0 (c_sort (type_pset ?t_35_235_156) (pset_singleton ?v_0)))))))) +(assert (forall ((?t_36_239_158 c_type)) (forall ((?l1_238_159 c_unique)) (forall ((?l2_237_160 c_unique)) (forall ((?p_236_161 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_36_239_158) ?p_236_161)) (?v_1 (type_pset ?t_36_239_158))) (let ((?v_2 (c_sort ?v_1 ?l1_238_159)) (?v_3 (c_sort ?v_1 ?l2_237_160))) (=> (and (not_in_pset ?v_0 ?v_2) (not_in_pset ?v_0 ?v_3)) (not_in_pset ?v_0 (c_sort ?v_1 (pset_union ?v_2 ?v_3))))))))))) +(assert (forall ((?t_37_243_162 c_type)) (forall ((?l1_242_163 c_unique)) (forall ((?l2_241_164 c_unique)) (forall ((?p_240_165 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_37_243_162) ?p_240_165)) (?v_0 (type_pset ?t_37_243_162))) (let ((?v_2 (c_sort ?v_0 ?l1_242_163))) (=> (not_in_pset ?v_1 (c_sort ?v_0 (pset_union ?v_2 (c_sort ?v_0 ?l2_241_164)))) (not_in_pset ?v_1 ?v_2))))))))) +(assert (forall ((?t_38_247_166 c_type)) (forall ((?l1_246_167 c_unique)) (forall ((?l2_245_168 c_unique)) (forall ((?p_244_169 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_38_247_166) ?p_244_169)) (?v_0 (type_pset ?t_38_247_166))) (let ((?v_2 (c_sort ?v_0 ?l2_245_168))) (=> (not_in_pset ?v_1 (c_sort ?v_0 (pset_union (c_sort ?v_0 ?l1_246_167) ?v_2))) (not_in_pset ?v_1 ?v_2))))))))) +(assert (forall ((?t_40_253_170 c_type)) (forall ((?t_39_252_171 c_type)) (forall ((?l_251_172 c_unique)) (forall ((?m_250_173 c_unique)) (forall ((?p_249_174 c_unique)) (let ((?v_0 (type_pointer ?t_40_253_170))) (=> (forall ((?p1_248_175 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_39_252_171) ?p1_248_175))) (=> (= ?p_249_174 (acc (c_sort (type_memory ?v_0 ?t_39_252_171) ?m_250_173) ?v_1)) (not_in_pset ?v_1 (c_sort (type_pset ?t_39_252_171) ?l_251_172))))) (not_in_pset (c_sort ?v_0 ?p_249_174) (c_sort (type_pset ?t_40_253_170) (pset_star (c_sort (type_pset ?t_39_252_171) ?l_251_172) (c_sort (type_memory ?v_0 ?t_39_252_171) ?m_250_173)))))))))))) +(assert (forall ((?t_42_259_176 c_type)) (forall ((?t_41_258_177 c_type)) (forall ((?l_257_178 c_unique)) (forall ((?m_256_179 c_unique)) (forall ((?p_255_180 c_unique)) (let ((?v_0 (type_pointer ?t_42_259_176))) (=> (not_in_pset (c_sort ?v_0 ?p_255_180) (c_sort (type_pset ?t_42_259_176) (pset_star (c_sort (type_pset ?t_41_258_177) ?l_257_178) (c_sort (type_memory ?v_0 ?t_41_258_177) ?m_256_179)))) (forall ((?p1_254_181 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_41_258_177) ?p1_254_181))) (=> (= ?p_255_180 (acc (c_sort (type_memory ?v_0 ?t_41_258_177) ?m_256_179) ?v_1)) (not_in_pset ?v_1 (c_sort (type_pset ?t_41_258_177) ?l_257_178))))))))))))) +(assert (forall ((?t_43_263_182 c_type)) (forall ((?p_262_183 c_unique)) (forall ((?l_261_184 c_unique)) (let ((?v_0 (type_pset ?t_43_263_182))) (=> (forall ((?p1_260_185 c_unique)) (let ((?v_1 (type_pointer ?t_43_263_182))) (let ((?v_2 (c_sort ?v_1 ?p1_260_185))) (=> (not (not_in_pset ?v_2 (c_sort ?v_0 ?l_261_184))) (not (= (base_addr (c_sort ?v_1 ?p_262_183)) (base_addr ?v_2))))))) (not_in_pset (c_sort (type_pointer ?t_43_263_182) ?p_262_183) (c_sort ?v_0 (pset_all (c_sort ?v_0 ?l_261_184)))))))))) +(assert (forall ((?t_44_267_186 c_type)) (forall ((?p_266_187 c_unique)) (forall ((?l_265_188 c_unique)) (let ((?v_0 (type_pset ?t_44_267_186))) (=> (not_in_pset (c_sort (type_pointer ?t_44_267_186) ?p_266_187) (c_sort ?v_0 (pset_all (c_sort ?v_0 ?l_265_188)))) (forall ((?p1_264_189 c_unique)) (let ((?v_1 (type_pointer ?t_44_267_186))) (let ((?v_2 (c_sort ?v_1 ?p1_264_189))) (=> (not (not_in_pset ?v_2 (c_sort ?v_0 ?l_265_188))) (not (= (base_addr (c_sort ?v_1 ?p_266_187)) (base_addr ?v_2))))))))))))) +(assert (forall ((?t_45_274_190 c_type)) (forall ((?p_273_191 c_unique)) (forall ((?l_272_192 c_unique)) (forall ((?a_271_193 Int)) (forall ((?b_270_194 Int)) (let ((?v_0 (type_pset ?t_45_274_190))) (=> (forall ((?p1_269_195 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_45_274_190) ?p1_269_195) (c_sort ?v_0 ?l_272_192)) (forall ((?i_268_196 Int)) (=> (and (<= ?a_271_193 ?i_268_196) (<= ?i_268_196 ?b_270_194)) (not (= ?p_273_191 (shift (c_sort (type_pointer ?t_45_274_190) ?p1_269_195) ?i_268_196))))))) (not_in_pset (c_sort (type_pointer ?t_45_274_190) ?p_273_191) (c_sort ?v_0 (pset_range (c_sort ?v_0 ?l_272_192) ?a_271_193 ?b_270_194))))))))))) +(assert (forall ((?t_46_281_197 c_type)) (forall ((?p_280_198 c_unique)) (forall ((?l_279_199 c_unique)) (forall ((?a_278_200 Int)) (forall ((?b_277_201 Int)) (let ((?v_0 (type_pset ?t_46_281_197))) (=> (not_in_pset (c_sort (type_pointer ?t_46_281_197) ?p_280_198) (c_sort ?v_0 (pset_range (c_sort ?v_0 ?l_279_199) ?a_278_200 ?b_277_201))) (forall ((?p1_276_202 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_46_281_197) ?p1_276_202) (c_sort ?v_0 ?l_279_199))) (forall ((?i_275_203 Int)) (=> (and (<= ?a_278_200 ?i_275_203) (<= ?i_275_203 ?b_277_201)) (not (= (shift (c_sort (type_pointer ?t_46_281_197) ?p1_276_202) ?i_275_203) ?p_280_198)))))))))))))) +(assert (forall ((?t_47_287_204 c_type)) (forall ((?p_286_205 c_unique)) (forall ((?l_285_206 c_unique)) (forall ((?a_284_207 Int)) (let ((?v_0 (type_pset ?t_47_287_204))) (=> (forall ((?p1_283_208 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_47_287_204) ?p1_283_208) (c_sort ?v_0 ?l_285_206)) (forall ((?i_282_209 Int)) (=> (<= ?i_282_209 ?a_284_207) (not (= ?p_286_205 (shift (c_sort (type_pointer ?t_47_287_204) ?p1_283_208) ?i_282_209))))))) (not_in_pset (c_sort (type_pointer ?t_47_287_204) ?p_286_205) (c_sort ?v_0 (pset_range_left (c_sort ?v_0 ?l_285_206) ?a_284_207)))))))))) +(assert (forall ((?t_48_293_210 c_type)) (forall ((?p_292_211 c_unique)) (forall ((?l_291_212 c_unique)) (forall ((?a_290_213 Int)) (let ((?v_0 (type_pset ?t_48_293_210))) (=> (not_in_pset (c_sort (type_pointer ?t_48_293_210) ?p_292_211) (c_sort ?v_0 (pset_range_left (c_sort ?v_0 ?l_291_212) ?a_290_213))) (forall ((?p1_289_214 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_48_293_210) ?p1_289_214) (c_sort ?v_0 ?l_291_212))) (forall ((?i_288_215 Int)) (=> (<= ?i_288_215 ?a_290_213) (not (= (shift (c_sort (type_pointer ?t_48_293_210) ?p1_289_214) ?i_288_215) ?p_292_211))))))))))))) +(assert (forall ((?t_49_299_216 c_type)) (forall ((?p_298_217 c_unique)) (forall ((?l_297_218 c_unique)) (forall ((?a_296_219 Int)) (let ((?v_0 (type_pset ?t_49_299_216))) (=> (forall ((?p1_295_220 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_49_299_216) ?p1_295_220) (c_sort ?v_0 ?l_297_218)) (forall ((?i_294_221 Int)) (=> (<= ?a_296_219 ?i_294_221) (not (= ?p_298_217 (shift (c_sort (type_pointer ?t_49_299_216) ?p1_295_220) ?i_294_221))))))) (not_in_pset (c_sort (type_pointer ?t_49_299_216) ?p_298_217) (c_sort ?v_0 (pset_range_right (c_sort ?v_0 ?l_297_218) ?a_296_219)))))))))) +(assert (forall ((?t_50_305_222 c_type)) (forall ((?p_304_223 c_unique)) (forall ((?l_303_224 c_unique)) (forall ((?a_302_225 Int)) (let ((?v_0 (type_pset ?t_50_305_222))) (=> (not_in_pset (c_sort (type_pointer ?t_50_305_222) ?p_304_223) (c_sort ?v_0 (pset_range_right (c_sort ?v_0 ?l_303_224) ?a_302_225))) (forall ((?p1_301_226 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_50_305_222) ?p1_301_226) (c_sort ?v_0 ?l_303_224))) (forall ((?i_300_227 Int)) (=> (<= ?a_302_225 ?i_300_227) (not (= (shift (c_sort (type_pointer ?t_50_305_222) ?p1_301_226) ?i_300_227) ?p_304_223))))))))))))) +(assert (forall ((?t_52_312_228 c_type)) (forall ((?t_51_311_229 c_type)) (forall ((?p_310_230 c_unique)) (forall ((?l_309_231 c_unique)) (forall ((?m_308_232 c_unique)) (let ((?v_0 (type_pointer ?t_51_311_229))) (=> (forall ((?p1_307_233 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_52_312_228) ?p1_307_233) (c_sort (type_pset ?t_52_312_228) ?l_309_231))) (forall ((?i_306_234 Int)) (let ((?v_1 (type_pointer ?t_52_312_228))) (not (= ?p_310_230 (acc (c_sort (type_memory ?v_0 ?t_52_312_228) ?m_308_232) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_307_233) ?i_306_234))))))))) (not_in_pset (c_sort ?v_0 ?p_310_230) (c_sort (type_pset ?t_51_311_229) (pset_acc_all (c_sort (type_pset ?t_52_312_228) ?l_309_231) (c_sort (type_memory ?v_0 ?t_52_312_228) ?m_308_232)))))))))))) +(assert (forall ((?t_54_319_235 c_type)) (forall ((?t_53_318_236 c_type)) (forall ((?p_317_237 c_unique)) (forall ((?l_316_238 c_unique)) (forall ((?m_315_239 c_unique)) (let ((?v_0 (type_pointer ?t_53_318_236))) (=> (not_in_pset (c_sort ?v_0 ?p_317_237) (c_sort (type_pset ?t_53_318_236) (pset_acc_all (c_sort (type_pset ?t_54_319_235) ?l_316_238) (c_sort (type_memory ?v_0 ?t_54_319_235) ?m_315_239)))) (forall ((?p1_314_240 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_54_319_235) ?p1_314_240) (c_sort (type_pset ?t_54_319_235) ?l_316_238))) (forall ((?i_313_241 Int)) (let ((?v_1 (type_pointer ?t_54_319_235))) (not (= (acc (c_sort (type_memory ?v_0 ?t_54_319_235) ?m_315_239) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_314_240) ?i_313_241))) ?p_317_237)))))))))))))) +(assert (forall ((?t_56_328_242 c_type)) (forall ((?t_55_327_243 c_type)) (forall ((?p_326_244 c_unique)) (forall ((?l_325_245 c_unique)) (forall ((?m_324_246 c_unique)) (forall ((?a_323_247 Int)) (forall ((?b_322_248 Int)) (let ((?v_0 (type_pointer ?t_55_327_243))) (=> (forall ((?p1_321_249 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_56_328_242) ?p1_321_249) (c_sort (type_pset ?t_56_328_242) ?l_325_245))) (forall ((?i_320_250 Int)) (let ((?v_1 (type_pointer ?t_56_328_242))) (=> (and (<= ?a_323_247 ?i_320_250) (<= ?i_320_250 ?b_322_248)) (not (= ?p_326_244 (acc (c_sort (type_memory ?v_0 ?t_56_328_242) ?m_324_246) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_321_249) ?i_320_250)))))))))) (not_in_pset (c_sort ?v_0 ?p_326_244) (c_sort (type_pset ?t_55_327_243) (pset_acc_range (c_sort (type_pset ?t_56_328_242) ?l_325_245) (c_sort (type_memory ?v_0 ?t_56_328_242) ?m_324_246) ?a_323_247 ?b_322_248))))))))))))) +(assert (forall ((?t_58_337_251 c_type)) (forall ((?t_57_336_252 c_type)) (forall ((?p_335_253 c_unique)) (forall ((?l_334_254 c_unique)) (forall ((?m_333_255 c_unique)) (forall ((?a_332_256 Int)) (forall ((?b_331_257 Int)) (let ((?v_0 (type_pointer ?t_57_336_252))) (=> (not_in_pset (c_sort ?v_0 ?p_335_253) (c_sort (type_pset ?t_57_336_252) (pset_acc_range (c_sort (type_pset ?t_58_337_251) ?l_334_254) (c_sort (type_memory ?v_0 ?t_58_337_251) ?m_333_255) ?a_332_256 ?b_331_257))) (forall ((?p1_330_258 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_58_337_251) ?p1_330_258) (c_sort (type_pset ?t_58_337_251) ?l_334_254))) (forall ((?i_329_259 Int)) (let ((?v_1 (type_pointer ?t_58_337_251))) (=> (and (<= ?a_332_256 ?i_329_259) (<= ?i_329_259 ?b_331_257)) (not (= (acc (c_sort (type_memory ?v_0 ?t_58_337_251) ?m_333_255) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_330_258) ?i_329_259))) ?p_335_253))))))))))))))))) +(assert (forall ((?t_60_345_260 c_type)) (forall ((?t_59_344_261 c_type)) (forall ((?p_343_262 c_unique)) (forall ((?l_342_263 c_unique)) (forall ((?m_341_264 c_unique)) (forall ((?a_340_265 Int)) (let ((?v_0 (type_pointer ?t_59_344_261))) (=> (forall ((?p1_339_266 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_60_345_260) ?p1_339_266) (c_sort (type_pset ?t_60_345_260) ?l_342_263))) (forall ((?i_338_267 Int)) (let ((?v_1 (type_pointer ?t_60_345_260))) (=> (<= ?i_338_267 ?a_340_265) (not (= ?p_343_262 (acc (c_sort (type_memory ?v_0 ?t_60_345_260) ?m_341_264) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_339_266) ?i_338_267)))))))))) (not_in_pset (c_sort ?v_0 ?p_343_262) (c_sort (type_pset ?t_59_344_261) (pset_acc_range_left (c_sort (type_pset ?t_60_345_260) ?l_342_263) (c_sort (type_memory ?v_0 ?t_60_345_260) ?m_341_264) ?a_340_265)))))))))))) +(assert (forall ((?t_62_353_268 c_type)) (forall ((?t_61_352_269 c_type)) (forall ((?p_351_270 c_unique)) (forall ((?l_350_271 c_unique)) (forall ((?m_349_272 c_unique)) (forall ((?a_348_273 Int)) (let ((?v_0 (type_pointer ?t_61_352_269))) (=> (not_in_pset (c_sort ?v_0 ?p_351_270) (c_sort (type_pset ?t_61_352_269) (pset_acc_range_left (c_sort (type_pset ?t_62_353_268) ?l_350_271) (c_sort (type_memory ?v_0 ?t_62_353_268) ?m_349_272) ?a_348_273))) (forall ((?p1_347_274 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_62_353_268) ?p1_347_274) (c_sort (type_pset ?t_62_353_268) ?l_350_271))) (forall ((?i_346_275 Int)) (let ((?v_1 (type_pointer ?t_62_353_268))) (=> (<= ?i_346_275 ?a_348_273) (not (= (acc (c_sort (type_memory ?v_0 ?t_62_353_268) ?m_349_272) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_347_274) ?i_346_275))) ?p_351_270)))))))))))))))) +(assert (forall ((?t_64_361_276 c_type)) (forall ((?t_63_360_277 c_type)) (forall ((?p_359_278 c_unique)) (forall ((?l_358_279 c_unique)) (forall ((?m_357_280 c_unique)) (forall ((?a_356_281 Int)) (let ((?v_0 (type_pointer ?t_63_360_277))) (=> (forall ((?p1_355_282 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_64_361_276) ?p1_355_282) (c_sort (type_pset ?t_64_361_276) ?l_358_279))) (forall ((?i_354_283 Int)) (let ((?v_1 (type_pointer ?t_64_361_276))) (=> (<= ?a_356_281 ?i_354_283) (not (= ?p_359_278 (acc (c_sort (type_memory ?v_0 ?t_64_361_276) ?m_357_280) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_355_282) ?i_354_283)))))))))) (not_in_pset (c_sort ?v_0 ?p_359_278) (c_sort (type_pset ?t_63_360_277) (pset_acc_range_right (c_sort (type_pset ?t_64_361_276) ?l_358_279) (c_sort (type_memory ?v_0 ?t_64_361_276) ?m_357_280) ?a_356_281)))))))))))) +(assert (forall ((?t_66_369_284 c_type)) (forall ((?t_65_368_285 c_type)) (forall ((?p_367_286 c_unique)) (forall ((?l_366_287 c_unique)) (forall ((?m_365_288 c_unique)) (forall ((?a_364_289 Int)) (let ((?v_0 (type_pointer ?t_65_368_285))) (=> (not_in_pset (c_sort ?v_0 ?p_367_286) (c_sort (type_pset ?t_65_368_285) (pset_acc_range_right (c_sort (type_pset ?t_66_369_284) ?l_366_287) (c_sort (type_memory ?v_0 ?t_66_369_284) ?m_365_288) ?a_364_289))) (forall ((?p1_363_290 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_66_369_284) ?p1_363_290) (c_sort (type_pset ?t_66_369_284) ?l_366_287))) (forall ((?i_362_291 Int)) (let ((?v_1 (type_pointer ?t_66_369_284))) (=> (<= ?a_364_289 ?i_362_291) (not (= (acc (c_sort (type_memory ?v_0 ?t_66_369_284) ?m_365_288) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_363_290) ?i_362_291))) ?p_367_286)))))))))))))))) +(assert (forall ((?t_68_376_292 c_type)) (forall ((?t_67_375_293 c_type)) (forall ((?a_374_294 c_unique)) (forall ((?l_373_295 c_unique)) (forall ((?m1_372_296 c_unique)) (forall ((?m2_371_297 c_unique)) (forall ((?m3_370_298 c_unique)) (let ((?v_1 (c_sort type_alloc_table ?a_374_294)) (?v_0 (type_memory ?t_68_376_292 ?t_67_375_293))) (let ((?v_4 (c_sort ?v_0 ?m1_372_296)) (?v_2 (c_sort ?v_0 ?m2_371_297)) (?v_3 (c_sort (type_pset ?t_67_375_293) ?l_373_295)) (?v_5 (c_sort ?v_0 ?m3_370_298))) (=> (not_assigns ?v_1 ?v_4 ?v_2 ?v_3) (=> (not_assigns ?v_1 ?v_2 ?v_5 ?v_3) (not_assigns ?v_1 ?v_4 ?v_5 ?v_3))))))))))))) +(assert (forall ((?t_70_381_299 c_type)) (forall ((?t_69_380_300 c_type)) (forall ((?a_379_301 c_unique)) (forall ((?l_378_302 c_unique)) (forall ((?m_377_303 c_unique)) (let ((?v_0 (c_sort (type_memory ?t_70_381_299 ?t_69_380_300) ?m_377_303))) (not_assigns (c_sort type_alloc_table ?a_379_301) ?v_0 ?v_0 (c_sort (type_pset ?t_69_380_300) ?l_378_302))))))))) +(declare-fun valid_acc (c_ssorted) Bool) +(assert (forall ((?t_72_386_304 c_type)) (forall ((?t_71_385_305 c_type)) (forall ((?m1_384_306 c_unique)) (= (valid_acc (c_sort (type_memory (type_pointer ?t_71_385_305) ?t_72_386_304) ?m1_384_306)) (forall ((?p_383_307 c_unique)) (forall ((?a_382_308 c_unique)) (let ((?v_1 (type_pointer ?t_71_385_305)) (?v_0 (c_sort type_alloc_table ?a_382_308)) (?v_2 (c_sort (type_pointer ?t_72_386_304) ?p_383_307))) (=> (valid ?v_0 ?v_2) (valid ?v_0 (c_sort ?v_1 (acc (c_sort (type_memory ?v_1 ?t_72_386_304) ?m1_384_306) ?v_2)))))))))))) +(declare-fun valid_acc_range (c_ssorted Int) Bool) +(assert (forall ((?t_74_392_309 c_type)) (forall ((?t_73_391_310 c_type)) (forall ((?m1_390_311 c_unique)) (forall ((?size_389_312 Int)) (= (valid_acc_range (c_sort (type_memory (type_pointer ?t_73_391_310) ?t_74_392_309) ?m1_390_311) ?size_389_312) (forall ((?p_388_313 c_unique)) (forall ((?a_387_314 c_unique)) (let ((?v_1 (type_pointer ?t_73_391_310)) (?v_0 (c_sort type_alloc_table ?a_387_314)) (?v_2 (c_sort (type_pointer ?t_74_392_309) ?p_388_313))) (=> (valid ?v_0 ?v_2) (valid_range ?v_0 (c_sort ?v_1 (acc (c_sort (type_memory ?v_1 ?t_74_392_309) ?m1_390_311) ?v_2)) 0 (- ?size_389_312 1)))))))))))) +(assert (forall ((?t_76_398_315 c_type)) (forall ((?t_75_397_316 c_type)) (forall ((?m1_396_317 c_unique)) (forall ((?size_395_318 Int)) (forall ((?p_394_319 c_unique)) (forall ((?a_393_320 c_unique)) (let ((?v_1 (type_pointer ?t_75_397_316))) (let ((?v_2 (c_sort (type_memory ?v_1 ?t_76_398_315) ?m1_396_317)) (?v_0 (c_sort type_alloc_table ?a_393_320)) (?v_3 (c_sort (type_pointer ?t_76_398_315) ?p_394_319))) (=> (valid_acc_range ?v_2 ?size_395_318) (=> (valid ?v_0 ?v_3) (valid ?v_0 (c_sort ?v_1 (acc ?v_2 ?v_3)))))))))))))) +(declare-fun separation1 (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_78_404_321 c_type)) (forall ((?t_77_403_322 c_type)) (forall ((?m1_402_323 c_unique)) (forall ((?m2_401_324 c_unique)) (let ((?v_0 (type_memory (type_pointer ?t_77_403_322) ?t_78_404_321))) (= (separation1 (c_sort ?v_0 ?m1_402_323) (c_sort ?v_0 ?m2_401_324)) (forall ((?p_400_325 c_unique)) (forall ((?a_399_326 c_unique)) (let ((?v_1 (type_pointer ?t_77_403_322)) (?v_2 (c_sort (type_pointer ?t_78_404_321) ?p_400_325))) (=> (valid (c_sort type_alloc_table ?a_399_326) ?v_2) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_402_323) ?v_2))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_401_324) ?v_2)))))))))))))))) +(declare-fun separation1_range1 (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_80_412_327 c_type)) (forall ((?t_79_411_328 c_type)) (forall ((?m1_410_329 c_unique)) (forall ((?m2_409_330 c_unique)) (forall ((?size_408_331 Int)) (let ((?v_0 (type_memory (type_pointer ?t_79_411_328) ?t_80_412_327))) (= (separation1_range1 (c_sort ?v_0 ?m1_410_329) (c_sort ?v_0 ?m2_409_330) ?size_408_331) (forall ((?p_407_332 c_unique)) (forall ((?a_406_333 c_unique)) (=> (valid (c_sort type_alloc_table ?a_406_333) (c_sort (type_pointer ?t_80_412_327) ?p_407_332)) (forall ((?i_405_334 Int)) (let ((?v_1 (type_pointer ?t_79_411_328)) (?v_2 (type_pointer ?t_80_412_327))) (let ((?v_3 (c_sort ?v_2 ?p_407_332))) (=> (and (<= 0 ?i_405_334) (< ?i_405_334 ?size_408_331)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_410_329) (c_sort ?v_2 (shift ?v_3 ?i_405_334))))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_409_330) ?v_3)))))))))))))))))))) +(declare-fun separation1_range (c_ssorted Int) Bool) +(assert (forall ((?t_82_420_335 c_type)) (forall ((?t_81_419_336 c_type)) (forall ((?m_418_337 c_unique)) (forall ((?size_417_338 Int)) (= (separation1_range (c_sort (type_memory (type_pointer ?t_81_419_336) ?t_82_420_335) ?m_418_337) ?size_417_338) (forall ((?p_416_339 c_unique)) (forall ((?a_415_340 c_unique)) (=> (valid (c_sort type_alloc_table ?a_415_340) (c_sort (type_pointer ?t_82_420_335) ?p_416_339)) (forall ((?i1_414_341 Int)) (forall ((?i2_413_342 Int)) (let ((?v_0 (type_pointer ?t_81_419_336))) (let ((?v_2 (c_sort (type_memory ?v_0 ?t_82_420_335) ?m_418_337)) (?v_1 (type_pointer ?t_82_420_335))) (let ((?v_3 (c_sort ?v_1 ?p_416_339))) (=> (and (<= 0 ?i1_414_341) (< ?i1_414_341 ?size_417_338)) (=> (and (<= 0 ?i2_413_342) (< ?i2_413_342 ?size_417_338)) (=> (not (= ?i1_414_341 ?i2_413_342)) (not (= (base_addr (c_sort ?v_0 (acc ?v_2 (c_sort ?v_1 (shift ?v_3 ?i1_414_341))))) (base_addr (c_sort ?v_0 (acc ?v_2 (c_sort ?v_1 (shift ?v_3 ?i2_413_342)))))))))))))))))))))))) +(declare-fun separation2 (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_84_426_343 c_type)) (forall ((?t_83_425_344 c_type)) (forall ((?m1_424_345 c_unique)) (forall ((?m2_423_346 c_unique)) (let ((?v_0 (type_memory (type_pointer ?t_83_425_344) ?t_84_426_343))) (= (separation2 (c_sort ?v_0 ?m1_424_345) (c_sort ?v_0 ?m2_423_346)) (forall ((?p1_422_347 c_unique)) (forall ((?p2_421_348 c_unique)) (let ((?v_1 (type_pointer ?t_83_425_344)) (?v_2 (type_pointer ?t_84_426_343))) (=> (not (= ?p1_422_347 ?p2_421_348)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_424_345) (c_sort ?v_2 ?p1_422_347)))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_423_346) (c_sort ?v_2 ?p2_421_348))))))))))))))))) +(declare-fun separation2_range1 (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_86_435_349 c_type)) (forall ((?t_85_434_350 c_type)) (forall ((?m1_433_351 c_unique)) (forall ((?m2_432_352 c_unique)) (forall ((?size_431_353 Int)) (let ((?v_0 (type_memory (type_pointer ?t_85_434_350) ?t_86_435_349))) (= (separation2_range1 (c_sort ?v_0 ?m1_433_351) (c_sort ?v_0 ?m2_432_352) ?size_431_353) (forall ((?p_430_354 c_unique)) (forall ((?q_429_355 c_unique)) (forall ((?a_428_356 c_unique)) (forall ((?i_427_357 Int)) (let ((?v_1 (type_pointer ?t_85_434_350)) (?v_2 (type_pointer ?t_86_435_349))) (=> (and (<= 0 ?i_427_357) (< ?i_427_357 ?size_431_353)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_433_351) (c_sort ?v_2 (shift (c_sort ?v_2 ?p_430_354) ?i_427_357))))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_432_352) (c_sort ?v_2 ?q_429_355)))))))))))))))))))) +(declare-fun on_heap (c_ssorted c_ssorted) Bool) +(declare-fun on_stack (c_ssorted c_ssorted) Bool) +(declare-fun fresh (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_87_438_358 c_type)) (forall ((?a_437_359 c_unique)) (forall ((?p_436_360 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a_437_359)) (?v_1 (c_sort (type_pointer ?t_87_438_358) ?p_436_360))) (=> (fresh ?v_0 ?v_1) (not (valid ?v_0 ?v_1)))))))) +(assert (forall ((?t_88_442_361 c_type)) (forall ((?a_441_362 c_unique)) (forall ((?p_440_363 c_unique)) (=> (fresh (c_sort type_alloc_table ?a_441_362) (c_sort (type_pointer ?t_88_442_361) ?p_440_363)) (forall ((?i_439_364 Int)) (let ((?v_0 (type_pointer ?t_88_442_361))) (not (valid (c_sort type_alloc_table ?a_441_362) (c_sort ?v_0 (shift (c_sort ?v_0 ?p_440_363) ?i_439_364))))))))))) +(declare-fun alloc_extends (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_89_446_365 c_type)) (forall ((?a1_445_366 c_unique)) (forall ((?a2_444_367 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_445_366) (c_sort type_alloc_table ?a2_444_367)) (forall ((?q_443_368 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_89_446_365) ?q_443_368))) (=> (valid (c_sort type_alloc_table ?a1_445_366) ?v_0) (valid (c_sort type_alloc_table ?a2_444_367) ?v_0))))))))) +(assert (forall ((?t_90_451_369 c_type)) (forall ((?a1_450_370 c_unique)) (forall ((?a2_449_371 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_450_370) (c_sort type_alloc_table ?a2_449_371)) (forall ((?q_448_372 c_unique)) (forall ((?i_447_373 Int)) (let ((?v_0 (c_sort (type_pointer ?t_90_451_369) ?q_448_372))) (=> (valid_index (c_sort type_alloc_table ?a1_450_370) ?v_0 ?i_447_373) (valid_index (c_sort type_alloc_table ?a2_449_371) ?v_0 ?i_447_373)))))))))) +(assert (forall ((?t_91_457_374 c_type)) (forall ((?a1_456_375 c_unique)) (forall ((?a2_455_376 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_456_375) (c_sort type_alloc_table ?a2_455_376)) (forall ((?q_454_377 c_unique)) (forall ((?i_453_378 Int)) (forall ((?j_452_379 Int)) (let ((?v_0 (c_sort (type_pointer ?t_91_457_374) ?q_454_377))) (=> (valid_range (c_sort type_alloc_table ?a1_456_375) ?v_0 ?i_453_378 ?j_452_379) (valid_range (c_sort type_alloc_table ?a2_455_376) ?v_0 ?i_453_378 ?j_452_379))))))))))) +(assert (forall ((?a_458_380 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a_458_380))) (alloc_extends ?v_0 ?v_0)))) +(assert (forall ((?a1_461_381 c_unique)) (forall ((?a2_460_382 c_unique)) (forall ((?a3_459_383 c_unique)) (let ((?v_1 (c_sort type_alloc_table ?a1_461_381)) (?v_0 (c_sort type_alloc_table ?a2_460_382)) (?v_2 (c_sort type_alloc_table ?a3_459_383))) (=> (alloc_extends ?v_1 ?v_0) (=> (alloc_extends ?v_0 ?v_2) (alloc_extends ?v_1 ?v_2)))))))) +(declare-fun free_stack (c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?t_92_466_384 c_type)) (forall ((?a1_465_385 c_unique)) (forall ((?a2_464_386 c_unique)) (forall ((?a3_463_387 c_unique)) (=> (free_stack (c_sort type_alloc_table ?a1_465_385) (c_sort type_alloc_table ?a2_464_386) (c_sort type_alloc_table ?a3_463_387)) (forall ((?p_462_388 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a2_464_386)) (?v_1 (c_sort (type_pointer ?t_92_466_384) ?p_462_388))) (=> (valid ?v_0 ?v_1) (=> (on_heap ?v_0 ?v_1) (valid (c_sort type_alloc_table ?a3_463_387) ?v_1))))))))))) +(assert (forall ((?t_93_471_389 c_type)) (forall ((?a1_470_390 c_unique)) (forall ((?a2_469_391 c_unique)) (forall ((?a3_468_392 c_unique)) (=> (free_stack (c_sort type_alloc_table ?a1_470_390) (c_sort type_alloc_table ?a2_469_391) (c_sort type_alloc_table ?a3_468_392)) (forall ((?p_467_393 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a1_470_390)) (?v_1 (c_sort (type_pointer ?t_93_471_389) ?p_467_393))) (=> (valid ?v_0 ?v_1) (=> (on_stack ?v_0 ?v_1) (valid (c_sort type_alloc_table ?a3_468_392) ?v_1))))))))))) +(declare-fun null () c_unique) +(assert (forall ((?t_94_475_394 c_type)) (forall ((?a_474_395 c_unique)) (not (valid (c_sort type_alloc_table ?a_474_395) (c_sort (type_pointer ?t_94_475_394) null)))))) +(declare-fun type_global () c_type) +(assert (not (forall ((?alloc c_unique)) (forall ((?b Int)) (forall ((?t c_unique)) (=> (and (= ?b 0) (valid_range (c_sort type_alloc_table ?alloc) (c_sort (type_pointer type_global) ?t) 0 9)) (forall ((?b0 Int)) (=> (= ?b0 (+ ?b 1)) (forall ((?result c_unique)) (let ((?v_0 (type_pointer type_global))) (let ((?v_2 (c_sort ?v_0 ?result))) (let ((?v_1 (offset ?v_2))) (=> (= ?result (shift (c_sort ?v_0 ?t) ?b)) (and (<= 0 ?v_1) (< ?v_1 (block_length (c_sort type_alloc_table ?alloc) ?v_2)))))))))))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/smtlibf957ea.smt2 b/test/regress/regress1/quantifiers/smtlibf957ea.smt2 new file mode 100644 index 000000000..aa82255ef --- /dev/null +++ b/test/regress/regress1/quantifiers/smtlibf957ea.smt2 @@ -0,0 +1,212 @@ +(set-logic AUFLIRA) +(set-info :source |http://proval.lri.fr/why-benchmarks |) +(set-info :smt-lib-version 2.0) +(set-info :category "industrial") +(set-info :status unsat) +(declare-sort Unit 0) +(declare-sort c_unique 0) +(declare-sort c_ssorted 0) +(declare-sort c_type 0) +(declare-sort c_Boolean 0) +(declare-fun whydivide (Int Int) Int) +(declare-fun % (Int Int) Int) +(declare-fun c_sort (c_type c_unique) c_ssorted) +(declare-fun c_Boolean_true () c_Boolean) +(declare-fun c_Boolean_false () c_Boolean) +(assert (forall ((?b_22_1 c_Boolean)) (or (= c_Boolean_true ?b_22_1) (= c_Boolean_false ?b_22_1)))) +(assert (not (= c_Boolean_true c_Boolean_false))) +(declare-fun int2U (Int) c_unique) +(declare-fun ss2Int (c_ssorted) Int) +(declare-fun real2U (Real) c_unique) +(declare-fun ss2Real (c_ssorted) Real) +(declare-fun bool2U (c_Boolean) c_unique) +(declare-fun ss2Bool (c_ssorted) c_Boolean) +(declare-fun c_int () c_type) +(declare-fun c_bool () c_type) +(declare-fun c_real () c_type) +(declare-fun c_unit () c_type) +(declare-fun c_ref (c_unique) c_unique) +(assert (forall ((?t_21_2 c_type)) (forall ((?x_20_3 c_unique)) (forall ((?y_19_4 c_unique)) (=> (= (c_sort ?t_21_2 ?x_20_3) (c_sort ?t_21_2 ?y_19_4)) (= ?x_20_3 ?y_19_4)))))) +(assert (forall ((?x_18_5 Int)) (= (ss2Int (c_sort c_int (int2U ?x_18_5))) ?x_18_5))) +(assert (forall ((?x_17_6 Int)) (forall ((?y_16_7 Int)) (=> (= (int2U ?x_17_6) (int2U ?y_16_7)) (= ?x_17_6 ?y_16_7))))) +(assert (forall ((?x_15_8 Real)) (forall ((?y_14_9 Real)) (=> (= (real2U ?x_15_8) (real2U ?y_14_9)) (= ?x_15_8 ?y_14_9))))) +(assert (forall ((?x_13_10 c_Boolean)) (forall ((?y_12_11 c_Boolean)) (=> (= (bool2U ?x_13_10) (bool2U ?y_12_11)) (= ?x_13_10 ?y_12_11))))) +(assert (forall ((?x_11_12 c_ssorted)) (forall ((?y_10_13 c_ssorted)) (=> (= (ss2Int ?x_11_12) (ss2Int ?y_10_13)) (= ?x_11_12 ?y_10_13))))) +(assert (forall ((?x_9_14 c_ssorted)) (forall ((?y_8_15 c_ssorted)) (=> (= (ss2Real ?x_9_14) (ss2Real ?y_8_15)) (= ?x_9_14 ?y_8_15))))) +(assert (forall ((?x_7_16 c_ssorted)) (forall ((?y_6_17 c_ssorted)) (=> (= (ss2Bool ?x_7_16) (ss2Bool ?y_6_17)) (= ?x_7_16 ?y_6_17))))) +(assert (forall ((?x_5_18 Real)) (= (ss2Real (c_sort c_real (real2U ?x_5_18))) ?x_5_18))) +(assert (forall ((?x_4_19 c_Boolean)) (= (ss2Bool (c_sort c_bool (bool2U ?x_4_19))) ?x_4_19))) +(assert (forall ((?x_3_20 c_unique)) (= (int2U (ss2Int (c_sort c_int ?x_3_20))) ?x_3_20))) +(assert (forall ((?x_2_21 c_unique)) (= (real2U (ss2Real (c_sort c_real ?x_2_21))) ?x_2_21))) +(assert (forall ((?x_1_22 c_unique)) (= (bool2U (ss2Bool (c_sort c_bool ?x_1_22))) ?x_1_22))) +(declare-fun eq_int (Int Int) Bool) +(declare-fun neq_int (Int Int) Bool) +(declare-fun lt_int_bool (Int Int) c_Boolean) +(declare-fun le_int_bool (Int Int) c_Boolean) +(declare-fun gt_int_bool (Int Int) c_Boolean) +(declare-fun ge_int_bool (Int Int) c_Boolean) +(declare-fun eq_int_bool (Int Int) c_Boolean) +(declare-fun neq_int_bool (Int Int) c_Boolean) +(assert (forall ((?x_40_23 Int)) (forall ((?y_39_24 Int)) (= (= (lt_int_bool ?x_40_23 ?y_39_24) c_Boolean_true) (< ?x_40_23 ?y_39_24))))) +(assert (forall ((?x_42_25 Int)) (forall ((?y_41_26 Int)) (= (= (le_int_bool ?x_42_25 ?y_41_26) c_Boolean_true) (<= ?x_42_25 ?y_41_26))))) +(assert (forall ((?x_44_27 Int)) (forall ((?y_43_28 Int)) (= (= (gt_int_bool ?x_44_27 ?y_43_28) c_Boolean_true) (> ?x_44_27 ?y_43_28))))) +(assert (forall ((?x_46_29 Int)) (forall ((?y_45_30 Int)) (= (= (ge_int_bool ?x_46_29 ?y_45_30) c_Boolean_true) (>= ?x_46_29 ?y_45_30))))) +(assert (forall ((?x_48_31 Int)) (forall ((?y_47_32 Int)) (= (= (eq_int_bool ?x_48_31 ?y_47_32) c_Boolean_true) (= ?x_48_31 ?y_47_32))))) +(assert (forall ((?x_50_33 Int)) (forall ((?y_49_34 Int)) (= (= (neq_int_bool ?x_50_33 ?y_49_34) c_Boolean_true) (not (= ?x_50_33 ?y_49_34)))))) +(declare-fun add_real (Real Real) Real) +(declare-fun sub_real (Real Real) Real) +(declare-fun mul_real (Real Real) Real) +(declare-fun div_real (Real Real) Real) +(declare-fun pow_real (Real Real) Real) +(declare-fun neg_real (Real) Real) +(declare-fun abs_real (Real) Real) +(declare-fun sqrt_real (Real) Real) +(declare-fun real_of_int (Int) Real) +(declare-fun int_of_real (Real) Int) +(declare-fun lt_real (Real Real) Bool) +(declare-fun le_real (Real Real) Bool) +(declare-fun gt_real (Real Real) Bool) +(declare-fun ge_real (Real Real) Bool) +(declare-fun eq_real (Real Real) Bool) +(declare-fun neq_real (Real Real) Bool) +(declare-fun eq_bool (c_Boolean c_Boolean) Bool) +(declare-fun neq_bool (c_Boolean c_Boolean) Bool) +(declare-fun eq_unit (c_ssorted c_ssorted) Bool) +(declare-fun neq_unit (c_ssorted c_ssorted) Bool) +(declare-fun smtlib__ite (c_Boolean c_ssorted c_ssorted) c_unique) +(assert (forall ((?t_1_76_35 c_type)) (forall ((?x_75_36 c_unique)) (forall ((?y_74_37 c_unique)) (= (smtlib__ite c_Boolean_true (c_sort ?t_1_76_35 ?x_75_36) (c_sort ?t_1_76_35 ?y_74_37)) ?x_75_36))))) +(assert (forall ((?t_2_79_38 c_type)) (forall ((?x_78_39 c_unique)) (forall ((?y_77_40 c_unique)) (= (smtlib__ite c_Boolean_false (c_sort ?t_2_79_38 ?x_78_39) (c_sort ?t_2_79_38 ?y_77_40)) ?y_77_40))))) +(declare-fun bw_compl (Int) Int) +(declare-fun bw_and (Int Int) Int) +(declare-fun bw_xor (Int Int) Int) +(declare-fun bw_or (Int Int) Int) +(declare-fun lsl (Int Int) Int) +(declare-fun lsr (Int Int) Int) +(declare-fun non_int (Int) Int) +(declare-fun type_pointer (c_type) c_type) +(declare-fun type_addr (c_type) c_type) +(declare-fun type_alloc_table () c_type) +(declare-fun block_length (c_ssorted c_ssorted) Int) +(declare-fun base_addr (c_ssorted) c_unique) +(declare-fun offset (c_ssorted) Int) +(declare-fun shift (c_ssorted Int) c_unique) +(declare-fun sub_pointer (c_ssorted c_ssorted) Int) +(declare-fun lt_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_3_88_41 c_type)) (forall ((?p1_87_42 c_unique)) (forall ((?p2_86_43 c_unique)) (let ((?v_0 (type_pointer ?t_3_88_41))) (let ((?v_1 (c_sort ?v_0 ?p1_87_42)) (?v_2 (c_sort ?v_0 ?p2_86_43))) (= (lt_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (< (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun le_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_4_91_44 c_type)) (forall ((?p1_90_45 c_unique)) (forall ((?p2_89_46 c_unique)) (let ((?v_0 (type_pointer ?t_4_91_44))) (let ((?v_1 (c_sort ?v_0 ?p1_90_45)) (?v_2 (c_sort ?v_0 ?p2_89_46))) (= (le_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (<= (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun gt_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_5_94_47 c_type)) (forall ((?p1_93_48 c_unique)) (forall ((?p2_92_49 c_unique)) (let ((?v_0 (type_pointer ?t_5_94_47))) (let ((?v_1 (c_sort ?v_0 ?p1_93_48)) (?v_2 (c_sort ?v_0 ?p2_92_49))) (= (gt_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (> (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun ge_pointer (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_6_97_50 c_type)) (forall ((?p1_96_51 c_unique)) (forall ((?p2_95_52 c_unique)) (let ((?v_0 (type_pointer ?t_6_97_50))) (let ((?v_1 (c_sort ?v_0 ?p1_96_51)) (?v_2 (c_sort ?v_0 ?p2_95_52))) (= (ge_pointer ?v_1 ?v_2) (and (= (base_addr ?v_1) (base_addr ?v_2)) (>= (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun valid (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_7_104_53 c_type)) (forall ((?a_103_54 c_unique)) (forall ((?p_102_55 c_unique)) (let ((?v_2 (c_sort type_alloc_table ?a_103_54)) (?v_0 (c_sort (type_pointer ?t_7_104_53) ?p_102_55))) (let ((?v_1 (offset ?v_0))) (= (valid ?v_2 ?v_0) (and (<= 0 ?v_1) (< ?v_1 (block_length ?v_2 ?v_0)))))))))) +(declare-fun valid_index (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_8_108_56 c_type)) (forall ((?a_107_57 c_unique)) (forall ((?p_106_58 c_unique)) (forall ((?i_105_59 Int)) (let ((?v_2 (c_sort type_alloc_table ?a_107_57)) (?v_0 (c_sort (type_pointer ?t_8_108_56) ?p_106_58))) (let ((?v_1 (+ (offset ?v_0) ?i_105_59))) (= (valid_index ?v_2 ?v_0 ?i_105_59) (and (<= 0 ?v_1) (< ?v_1 (block_length ?v_2 ?v_0))))))))))) +(declare-fun valid_range (c_ssorted c_ssorted Int Int) Bool) +(assert (forall ((?t_9_113_60 c_type)) (forall ((?a_112_61 c_unique)) (forall ((?p_111_62 c_unique)) (forall ((?i_110_63 Int)) (forall ((?j_109_64 Int)) (let ((?v_2 (c_sort type_alloc_table ?a_112_61)) (?v_0 (c_sort (type_pointer ?t_9_113_60) ?p_111_62))) (let ((?v_1 (offset ?v_0))) (= (valid_range ?v_2 ?v_0 ?i_110_63 ?j_109_64) (and (<= 0 (+ ?v_1 ?i_110_63)) (< (+ ?v_1 ?j_109_64) (block_length ?v_2 ?v_0)))))))))))) +(assert (forall ((?t_10_116_65 c_type)) (forall ((?p_115_66 c_unique)) (forall ((?i_114_67 Int)) (let ((?v_0 (type_pointer ?t_10_116_65))) (let ((?v_1 (c_sort ?v_0 ?p_115_66))) (= (offset (c_sort ?v_0 (shift ?v_1 ?i_114_67))) (+ (offset ?v_1) ?i_114_67)))))))) +(assert (forall ((?t_11_118_68 c_type)) (forall ((?p_117_69 c_unique)) (= (shift (c_sort (type_pointer ?t_11_118_68) ?p_117_69) 0) ?p_117_69)))) +(assert (forall ((?t_12_122_70 c_type)) (forall ((?p_121_71 c_unique)) (forall ((?i_120_72 Int)) (forall ((?j_119_73 Int)) (let ((?v_0 (type_pointer ?t_12_122_70))) (let ((?v_1 (c_sort ?v_0 ?p_121_71))) (= (shift (c_sort ?v_0 (shift ?v_1 ?i_120_72)) ?j_119_73) (shift ?v_1 (+ ?i_120_72 ?j_119_73)))))))))) +(assert (forall ((?t_13_125_74 c_type)) (forall ((?p_124_75 c_unique)) (forall ((?i_123_76 Int)) (let ((?v_0 (type_pointer ?t_13_125_74))) (let ((?v_1 (c_sort ?v_0 ?p_124_75))) (= (base_addr (c_sort ?v_0 (shift ?v_1 ?i_123_76))) (base_addr ?v_1)))))))) +(assert (forall ((?t_14_129_77 c_type)) (forall ((?a_128_78 c_unique)) (forall ((?p_127_79 c_unique)) (forall ((?i_126_80 Int)) (let ((?v_1 (c_sort type_alloc_table ?a_128_78)) (?v_0 (type_pointer ?t_14_129_77))) (let ((?v_2 (c_sort ?v_0 ?p_127_79))) (= (block_length ?v_1 (c_sort ?v_0 (shift ?v_2 ?i_126_80))) (block_length ?v_1 ?v_2))))))))) +(assert (forall ((?t_15_133_81 c_type)) (forall ((?a_132_82 c_unique)) (forall ((?p1_131_83 c_unique)) (forall ((?p2_130_84 c_unique)) (let ((?v_0 (type_pointer ?t_15_133_81))) (let ((?v_1 (c_sort ?v_0 ?p1_131_83)) (?v_3 (c_sort ?v_0 ?p2_130_84)) (?v_2 (c_sort type_alloc_table ?a_132_82))) (=> (= (base_addr ?v_1) (base_addr ?v_3)) (= (block_length ?v_2 ?v_1) (block_length ?v_2 ?v_3)))))))))) +(assert (forall ((?t_16_136_85 c_type)) (forall ((?p1_135_86 c_unique)) (forall ((?p2_134_87 c_unique)) (let ((?v_0 (type_pointer ?t_16_136_85))) (let ((?v_1 (c_sort ?v_0 ?p1_135_86)) (?v_2 (c_sort ?v_0 ?p2_134_87))) (=> (and (= (base_addr ?v_1) (base_addr ?v_2)) (= (offset ?v_1) (offset ?v_2))) (= ?p1_135_86 ?p2_134_87)))))))) +(assert (forall ((?t_17_139_88 c_type)) (forall ((?p1_138_89 c_unique)) (forall ((?p2_137_90 c_unique)) (let ((?v_0 (type_pointer ?t_17_139_88))) (let ((?v_1 (c_sort ?v_0 ?p1_138_89)) (?v_2 (c_sort ?v_0 ?p2_137_90))) (=> (= ?p1_138_89 ?p2_137_90) (and (= (base_addr ?v_1) (base_addr ?v_2)) (= (offset ?v_1) (offset ?v_2)))))))))) +(assert (forall ((?t_18_144_91 c_type)) (forall ((?p1_143_92 c_unique)) (forall ((?p2_142_93 c_unique)) (forall ((?i_141_94 Int)) (forall ((?j_140_95 Int)) (let ((?v_0 (type_pointer ?t_18_144_91))) (let ((?v_1 (c_sort ?v_0 ?p1_143_92)) (?v_2 (c_sort ?v_0 ?p2_142_93))) (=> (not (= (base_addr ?v_1) (base_addr ?v_2))) (not (= (shift ?v_1 ?i_141_94) (shift ?v_2 ?j_140_95)))))))))))) +(assert (forall ((?t_19_149_96 c_type)) (forall ((?p1_148_97 c_unique)) (forall ((?p2_147_98 c_unique)) (forall ((?i_146_99 Int)) (forall ((?j_145_100 Int)) (let ((?v_0 (type_pointer ?t_19_149_96))) (let ((?v_1 (c_sort ?v_0 ?p1_148_97)) (?v_2 (c_sort ?v_0 ?p2_147_98))) (=> (not (= (+ (offset ?v_1) ?i_146_99) (+ (offset ?v_2) ?j_145_100))) (not (= (shift ?v_1 ?i_146_99) (shift ?v_2 ?j_145_100)))))))))))) +(assert (forall ((?t_20_154_101 c_type)) (forall ((?p1_153_102 c_unique)) (forall ((?p2_152_103 c_unique)) (forall ((?i_151_104 Int)) (forall ((?j_150_105 Int)) (let ((?v_0 (type_pointer ?t_20_154_101))) (let ((?v_1 (c_sort ?v_0 ?p1_153_102)) (?v_2 (c_sort ?v_0 ?p2_152_103))) (=> (= (base_addr ?v_1) (base_addr ?v_2)) (=> (= (+ (offset ?v_1) ?i_151_104) (+ (offset ?v_2) ?j_150_105)) (= (shift ?v_1 ?i_151_104) (shift ?v_2 ?j_150_105)))))))))))) +(assert (forall ((?t_21_158_106 c_type)) (forall ((?a_157_107 c_unique)) (forall ((?p_156_108 c_unique)) (forall ((?i_155_109 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_157_107)) (?v_1 (type_pointer ?t_21_158_106))) (let ((?v_2 (c_sort ?v_1 ?p_156_108))) (=> (valid_index ?v_0 ?v_2 ?i_155_109) (valid ?v_0 (c_sort ?v_1 (shift ?v_2 ?i_155_109))))))))))) +(assert (forall ((?t_22_164_110 c_type)) (forall ((?a_163_111 c_unique)) (forall ((?p_162_112 c_unique)) (forall ((?i_161_113 Int)) (forall ((?j_160_114 Int)) (forall ((?k_159_115 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_163_111)) (?v_1 (type_pointer ?t_22_164_110))) (let ((?v_2 (c_sort ?v_1 ?p_162_112))) (=> (valid_range ?v_0 ?v_2 ?i_161_113 ?j_160_114) (=> (and (<= ?i_161_113 ?k_159_115) (<= ?k_159_115 ?j_160_114)) (valid ?v_0 (c_sort ?v_1 (shift ?v_2 ?k_159_115)))))))))))))) +(assert (forall ((?t_23_169_116 c_type)) (forall ((?a_168_117 c_unique)) (forall ((?p_167_118 c_unique)) (forall ((?i_166_119 Int)) (forall ((?j_165_120 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_168_117)) (?v_1 (c_sort (type_pointer ?t_23_169_116) ?p_167_118))) (=> (valid_range ?v_0 ?v_1 ?i_166_119 ?j_165_120) (=> (and (<= ?i_166_119 0) (<= 0 ?j_165_120)) (valid ?v_0 ?v_1)))))))))) +(assert (forall ((?t_24_175_121 c_type)) (forall ((?a_174_122 c_unique)) (forall ((?p_173_123 c_unique)) (forall ((?i_172_124 Int)) (forall ((?j_171_125 Int)) (forall ((?k_170_126 Int)) (let ((?v_0 (c_sort type_alloc_table ?a_174_122)) (?v_1 (c_sort (type_pointer ?t_24_175_121) ?p_173_123))) (=> (valid_range ?v_0 ?v_1 ?i_172_124 ?j_171_125) (=> (and (<= ?i_172_124 ?k_170_126) (<= ?k_170_126 ?j_171_125)) (valid_index ?v_0 ?v_1 ?k_170_126))))))))))) +(assert (forall ((?t_25_178_127 c_type)) (forall ((?p1_177_128 c_unique)) (forall ((?p2_176_129 c_unique)) (let ((?v_0 (type_pointer ?t_25_178_127))) (let ((?v_1 (c_sort ?v_0 ?p1_177_128)) (?v_2 (c_sort ?v_0 ?p2_176_129))) (=> (= (base_addr ?v_1) (base_addr ?v_2)) (= (sub_pointer ?v_1 ?v_2) (- (offset ?v_1) (offset ?v_2)))))))))) +(declare-fun type_memory (c_type c_type) c_type) +(declare-fun acc (c_ssorted c_ssorted) c_unique) +(declare-fun upd (c_ssorted c_ssorted c_ssorted) c_unique) +(assert (forall ((?t_27_212_130 c_type)) (forall ((?t_26_211_131 c_type)) (forall ((?m_210_132 c_unique)) (forall ((?p_209_133 c_unique)) (forall ((?a_208_134 c_unique)) (let ((?v_0 (type_memory ?t_26_211_131 ?t_27_212_130)) (?v_1 (c_sort (type_pointer ?t_27_212_130) ?p_209_133))) (= (acc (c_sort ?v_0 (upd (c_sort ?v_0 ?m_210_132) ?v_1 (c_sort ?t_26_211_131 ?a_208_134))) ?v_1) ?a_208_134)))))))) +(assert (forall ((?t_29_218_135 c_type)) (forall ((?t_28_217_136 c_type)) (forall ((?m_216_137 c_unique)) (forall ((?p1_215_138 c_unique)) (forall ((?p2_214_139 c_unique)) (forall ((?a_213_140 c_unique)) (let ((?v_0 (type_memory ?t_28_217_136 ?t_29_218_135))) (let ((?v_2 (c_sort ?v_0 ?m_216_137)) (?v_1 (type_pointer ?t_29_218_135))) (let ((?v_3 (c_sort ?v_1 ?p2_214_139))) (=> (not (= ?p1_215_138 ?p2_214_139)) (= (acc (c_sort ?v_0 (upd ?v_2 (c_sort ?v_1 ?p1_215_138) (c_sort ?t_28_217_136 ?a_213_140))) ?v_3) (acc ?v_2 ?v_3))))))))))))) +(assert (not (= c_Boolean_false c_Boolean_true))) +(declare-fun type_pset (c_type) c_type) +(declare-fun pset_empty () c_unique) +(declare-fun pset_singleton (c_ssorted) c_unique) +(declare-fun pset_star (c_ssorted c_ssorted) c_unique) +(declare-fun pset_all (c_ssorted) c_unique) +(declare-fun pset_range (c_ssorted Int Int) c_unique) +(declare-fun pset_range_left (c_ssorted Int) c_unique) +(declare-fun pset_range_right (c_ssorted Int) c_unique) +(declare-fun pset_acc_all (c_ssorted c_ssorted) c_unique) +(declare-fun pset_acc_range (c_ssorted c_ssorted Int Int) c_unique) +(declare-fun pset_acc_range_left (c_ssorted c_ssorted Int) c_unique) +(declare-fun pset_acc_range_right (c_ssorted c_ssorted Int) c_unique) +(declare-fun pset_union (c_ssorted c_ssorted) c_unique) +(declare-fun not_in_pset (c_ssorted c_ssorted) Bool) +(declare-fun not_assigns (c_ssorted c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?t_31_225_141 c_type)) (forall ((?t_30_224_142 c_type)) (forall ((?a_223_143 c_unique)) (forall ((?m1_222_144 c_unique)) (forall ((?m2_221_145 c_unique)) (forall ((?l_220_146 c_unique)) (let ((?v_0 (type_memory ?t_30_224_142 ?t_31_225_141))) (= (not_assigns (c_sort type_alloc_table ?a_223_143) (c_sort ?v_0 ?m1_222_144) (c_sort ?v_0 ?m2_221_145) (c_sort (type_pset ?t_31_225_141) ?l_220_146)) (forall ((?p_219_147 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_31_225_141) ?p_219_147))) (=> (valid (c_sort type_alloc_table ?a_223_143) ?v_1) (=> (not_in_pset ?v_1 (c_sort (type_pset ?t_31_225_141) ?l_220_146)) (= (acc (c_sort ?v_0 ?m2_221_145) ?v_1) (acc (c_sort ?v_0 ?m1_222_144) ?v_1))))))))))))))) +(assert (forall ((?t_32_227_148 c_type)) (forall ((?p_226_149 c_unique)) (not_in_pset (c_sort (type_pointer ?t_32_227_148) ?p_226_149) (c_sort (type_pset ?t_32_227_148) pset_empty))))) +(assert (forall ((?t_33_230_150 c_type)) (forall ((?p1_229_151 c_unique)) (forall ((?p2_228_152 c_unique)) (let ((?v_0 (type_pointer ?t_33_230_150))) (=> (not (= ?p1_229_151 ?p2_228_152)) (not_in_pset (c_sort ?v_0 ?p1_229_151) (c_sort (type_pset ?t_33_230_150) (pset_singleton (c_sort ?v_0 ?p2_228_152)))))))))) +(assert (forall ((?t_34_233_153 c_type)) (forall ((?p1_232_154 c_unique)) (forall ((?p2_231_155 c_unique)) (let ((?v_0 (type_pointer ?t_34_233_153))) (=> (not_in_pset (c_sort ?v_0 ?p1_232_154) (c_sort (type_pset ?t_34_233_153) (pset_singleton (c_sort ?v_0 ?p2_231_155)))) (not (= ?p1_232_154 ?p2_231_155)))))))) +(assert (forall ((?t_35_235_156 c_type)) (forall ((?p_234_157 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_35_235_156) ?p_234_157))) (not (not_in_pset ?v_0 (c_sort (type_pset ?t_35_235_156) (pset_singleton ?v_0)))))))) +(assert (forall ((?t_36_239_158 c_type)) (forall ((?l1_238_159 c_unique)) (forall ((?l2_237_160 c_unique)) (forall ((?p_236_161 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_36_239_158) ?p_236_161)) (?v_1 (type_pset ?t_36_239_158))) (let ((?v_2 (c_sort ?v_1 ?l1_238_159)) (?v_3 (c_sort ?v_1 ?l2_237_160))) (=> (and (not_in_pset ?v_0 ?v_2) (not_in_pset ?v_0 ?v_3)) (not_in_pset ?v_0 (c_sort ?v_1 (pset_union ?v_2 ?v_3))))))))))) +(assert (forall ((?t_37_243_162 c_type)) (forall ((?l1_242_163 c_unique)) (forall ((?l2_241_164 c_unique)) (forall ((?p_240_165 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_37_243_162) ?p_240_165)) (?v_0 (type_pset ?t_37_243_162))) (let ((?v_2 (c_sort ?v_0 ?l1_242_163))) (=> (not_in_pset ?v_1 (c_sort ?v_0 (pset_union ?v_2 (c_sort ?v_0 ?l2_241_164)))) (not_in_pset ?v_1 ?v_2))))))))) +(assert (forall ((?t_38_247_166 c_type)) (forall ((?l1_246_167 c_unique)) (forall ((?l2_245_168 c_unique)) (forall ((?p_244_169 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_38_247_166) ?p_244_169)) (?v_0 (type_pset ?t_38_247_166))) (let ((?v_2 (c_sort ?v_0 ?l2_245_168))) (=> (not_in_pset ?v_1 (c_sort ?v_0 (pset_union (c_sort ?v_0 ?l1_246_167) ?v_2))) (not_in_pset ?v_1 ?v_2))))))))) +(assert (forall ((?t_40_253_170 c_type)) (forall ((?t_39_252_171 c_type)) (forall ((?l_251_172 c_unique)) (forall ((?m_250_173 c_unique)) (forall ((?p_249_174 c_unique)) (let ((?v_0 (type_pointer ?t_40_253_170))) (=> (forall ((?p1_248_175 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_39_252_171) ?p1_248_175))) (=> (= ?p_249_174 (acc (c_sort (type_memory ?v_0 ?t_39_252_171) ?m_250_173) ?v_1)) (not_in_pset ?v_1 (c_sort (type_pset ?t_39_252_171) ?l_251_172))))) (not_in_pset (c_sort ?v_0 ?p_249_174) (c_sort (type_pset ?t_40_253_170) (pset_star (c_sort (type_pset ?t_39_252_171) ?l_251_172) (c_sort (type_memory ?v_0 ?t_39_252_171) ?m_250_173)))))))))))) +(assert (forall ((?t_42_259_176 c_type)) (forall ((?t_41_258_177 c_type)) (forall ((?l_257_178 c_unique)) (forall ((?m_256_179 c_unique)) (forall ((?p_255_180 c_unique)) (let ((?v_0 (type_pointer ?t_42_259_176))) (=> (not_in_pset (c_sort ?v_0 ?p_255_180) (c_sort (type_pset ?t_42_259_176) (pset_star (c_sort (type_pset ?t_41_258_177) ?l_257_178) (c_sort (type_memory ?v_0 ?t_41_258_177) ?m_256_179)))) (forall ((?p1_254_181 c_unique)) (let ((?v_1 (c_sort (type_pointer ?t_41_258_177) ?p1_254_181))) (=> (= ?p_255_180 (acc (c_sort (type_memory ?v_0 ?t_41_258_177) ?m_256_179) ?v_1)) (not_in_pset ?v_1 (c_sort (type_pset ?t_41_258_177) ?l_257_178))))))))))))) +(assert (forall ((?t_43_263_182 c_type)) (forall ((?p_262_183 c_unique)) (forall ((?l_261_184 c_unique)) (let ((?v_0 (type_pset ?t_43_263_182))) (=> (forall ((?p1_260_185 c_unique)) (let ((?v_1 (type_pointer ?t_43_263_182))) (let ((?v_2 (c_sort ?v_1 ?p1_260_185))) (=> (not (not_in_pset ?v_2 (c_sort ?v_0 ?l_261_184))) (not (= (base_addr (c_sort ?v_1 ?p_262_183)) (base_addr ?v_2))))))) (not_in_pset (c_sort (type_pointer ?t_43_263_182) ?p_262_183) (c_sort ?v_0 (pset_all (c_sort ?v_0 ?l_261_184)))))))))) +(assert (forall ((?t_44_267_186 c_type)) (forall ((?p_266_187 c_unique)) (forall ((?l_265_188 c_unique)) (let ((?v_0 (type_pset ?t_44_267_186))) (=> (not_in_pset (c_sort (type_pointer ?t_44_267_186) ?p_266_187) (c_sort ?v_0 (pset_all (c_sort ?v_0 ?l_265_188)))) (forall ((?p1_264_189 c_unique)) (let ((?v_1 (type_pointer ?t_44_267_186))) (let ((?v_2 (c_sort ?v_1 ?p1_264_189))) (=> (not (not_in_pset ?v_2 (c_sort ?v_0 ?l_265_188))) (not (= (base_addr (c_sort ?v_1 ?p_266_187)) (base_addr ?v_2))))))))))))) +(assert (forall ((?t_45_274_190 c_type)) (forall ((?p_273_191 c_unique)) (forall ((?l_272_192 c_unique)) (forall ((?a_271_193 Int)) (forall ((?b_270_194 Int)) (let ((?v_0 (type_pset ?t_45_274_190))) (=> (forall ((?p1_269_195 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_45_274_190) ?p1_269_195) (c_sort ?v_0 ?l_272_192)) (forall ((?i_268_196 Int)) (=> (and (<= ?a_271_193 ?i_268_196) (<= ?i_268_196 ?b_270_194)) (not (= ?p_273_191 (shift (c_sort (type_pointer ?t_45_274_190) ?p1_269_195) ?i_268_196))))))) (not_in_pset (c_sort (type_pointer ?t_45_274_190) ?p_273_191) (c_sort ?v_0 (pset_range (c_sort ?v_0 ?l_272_192) ?a_271_193 ?b_270_194))))))))))) +(assert (forall ((?t_46_281_197 c_type)) (forall ((?p_280_198 c_unique)) (forall ((?l_279_199 c_unique)) (forall ((?a_278_200 Int)) (forall ((?b_277_201 Int)) (let ((?v_0 (type_pset ?t_46_281_197))) (=> (not_in_pset (c_sort (type_pointer ?t_46_281_197) ?p_280_198) (c_sort ?v_0 (pset_range (c_sort ?v_0 ?l_279_199) ?a_278_200 ?b_277_201))) (forall ((?p1_276_202 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_46_281_197) ?p1_276_202) (c_sort ?v_0 ?l_279_199))) (forall ((?i_275_203 Int)) (=> (and (<= ?a_278_200 ?i_275_203) (<= ?i_275_203 ?b_277_201)) (not (= (shift (c_sort (type_pointer ?t_46_281_197) ?p1_276_202) ?i_275_203) ?p_280_198)))))))))))))) +(assert (forall ((?t_47_287_204 c_type)) (forall ((?p_286_205 c_unique)) (forall ((?l_285_206 c_unique)) (forall ((?a_284_207 Int)) (let ((?v_0 (type_pset ?t_47_287_204))) (=> (forall ((?p1_283_208 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_47_287_204) ?p1_283_208) (c_sort ?v_0 ?l_285_206)) (forall ((?i_282_209 Int)) (=> (<= ?i_282_209 ?a_284_207) (not (= ?p_286_205 (shift (c_sort (type_pointer ?t_47_287_204) ?p1_283_208) ?i_282_209))))))) (not_in_pset (c_sort (type_pointer ?t_47_287_204) ?p_286_205) (c_sort ?v_0 (pset_range_left (c_sort ?v_0 ?l_285_206) ?a_284_207)))))))))) +(assert (forall ((?t_48_293_210 c_type)) (forall ((?p_292_211 c_unique)) (forall ((?l_291_212 c_unique)) (forall ((?a_290_213 Int)) (let ((?v_0 (type_pset ?t_48_293_210))) (=> (not_in_pset (c_sort (type_pointer ?t_48_293_210) ?p_292_211) (c_sort ?v_0 (pset_range_left (c_sort ?v_0 ?l_291_212) ?a_290_213))) (forall ((?p1_289_214 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_48_293_210) ?p1_289_214) (c_sort ?v_0 ?l_291_212))) (forall ((?i_288_215 Int)) (=> (<= ?i_288_215 ?a_290_213) (not (= (shift (c_sort (type_pointer ?t_48_293_210) ?p1_289_214) ?i_288_215) ?p_292_211))))))))))))) +(assert (forall ((?t_49_299_216 c_type)) (forall ((?p_298_217 c_unique)) (forall ((?l_297_218 c_unique)) (forall ((?a_296_219 Int)) (let ((?v_0 (type_pset ?t_49_299_216))) (=> (forall ((?p1_295_220 c_unique)) (or (not_in_pset (c_sort (type_pointer ?t_49_299_216) ?p1_295_220) (c_sort ?v_0 ?l_297_218)) (forall ((?i_294_221 Int)) (=> (<= ?a_296_219 ?i_294_221) (not (= ?p_298_217 (shift (c_sort (type_pointer ?t_49_299_216) ?p1_295_220) ?i_294_221))))))) (not_in_pset (c_sort (type_pointer ?t_49_299_216) ?p_298_217) (c_sort ?v_0 (pset_range_right (c_sort ?v_0 ?l_297_218) ?a_296_219)))))))))) +(assert (forall ((?t_50_305_222 c_type)) (forall ((?p_304_223 c_unique)) (forall ((?l_303_224 c_unique)) (forall ((?a_302_225 Int)) (let ((?v_0 (type_pset ?t_50_305_222))) (=> (not_in_pset (c_sort (type_pointer ?t_50_305_222) ?p_304_223) (c_sort ?v_0 (pset_range_right (c_sort ?v_0 ?l_303_224) ?a_302_225))) (forall ((?p1_301_226 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_50_305_222) ?p1_301_226) (c_sort ?v_0 ?l_303_224))) (forall ((?i_300_227 Int)) (=> (<= ?a_302_225 ?i_300_227) (not (= (shift (c_sort (type_pointer ?t_50_305_222) ?p1_301_226) ?i_300_227) ?p_304_223))))))))))))) +(assert (forall ((?t_52_312_228 c_type)) (forall ((?t_51_311_229 c_type)) (forall ((?p_310_230 c_unique)) (forall ((?l_309_231 c_unique)) (forall ((?m_308_232 c_unique)) (let ((?v_0 (type_pointer ?t_51_311_229))) (=> (forall ((?p1_307_233 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_52_312_228) ?p1_307_233) (c_sort (type_pset ?t_52_312_228) ?l_309_231))) (forall ((?i_306_234 Int)) (let ((?v_1 (type_pointer ?t_52_312_228))) (not (= ?p_310_230 (acc (c_sort (type_memory ?v_0 ?t_52_312_228) ?m_308_232) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_307_233) ?i_306_234))))))))) (not_in_pset (c_sort ?v_0 ?p_310_230) (c_sort (type_pset ?t_51_311_229) (pset_acc_all (c_sort (type_pset ?t_52_312_228) ?l_309_231) (c_sort (type_memory ?v_0 ?t_52_312_228) ?m_308_232)))))))))))) +(assert (forall ((?t_54_319_235 c_type)) (forall ((?t_53_318_236 c_type)) (forall ((?p_317_237 c_unique)) (forall ((?l_316_238 c_unique)) (forall ((?m_315_239 c_unique)) (let ((?v_0 (type_pointer ?t_53_318_236))) (=> (not_in_pset (c_sort ?v_0 ?p_317_237) (c_sort (type_pset ?t_53_318_236) (pset_acc_all (c_sort (type_pset ?t_54_319_235) ?l_316_238) (c_sort (type_memory ?v_0 ?t_54_319_235) ?m_315_239)))) (forall ((?p1_314_240 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_54_319_235) ?p1_314_240) (c_sort (type_pset ?t_54_319_235) ?l_316_238))) (forall ((?i_313_241 Int)) (let ((?v_1 (type_pointer ?t_54_319_235))) (not (= (acc (c_sort (type_memory ?v_0 ?t_54_319_235) ?m_315_239) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_314_240) ?i_313_241))) ?p_317_237)))))))))))))) +(assert (forall ((?t_56_328_242 c_type)) (forall ((?t_55_327_243 c_type)) (forall ((?p_326_244 c_unique)) (forall ((?l_325_245 c_unique)) (forall ((?m_324_246 c_unique)) (forall ((?a_323_247 Int)) (forall ((?b_322_248 Int)) (let ((?v_0 (type_pointer ?t_55_327_243))) (=> (forall ((?p1_321_249 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_56_328_242) ?p1_321_249) (c_sort (type_pset ?t_56_328_242) ?l_325_245))) (forall ((?i_320_250 Int)) (let ((?v_1 (type_pointer ?t_56_328_242))) (=> (and (<= ?a_323_247 ?i_320_250) (<= ?i_320_250 ?b_322_248)) (not (= ?p_326_244 (acc (c_sort (type_memory ?v_0 ?t_56_328_242) ?m_324_246) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_321_249) ?i_320_250)))))))))) (not_in_pset (c_sort ?v_0 ?p_326_244) (c_sort (type_pset ?t_55_327_243) (pset_acc_range (c_sort (type_pset ?t_56_328_242) ?l_325_245) (c_sort (type_memory ?v_0 ?t_56_328_242) ?m_324_246) ?a_323_247 ?b_322_248))))))))))))) +(assert (forall ((?t_58_337_251 c_type)) (forall ((?t_57_336_252 c_type)) (forall ((?p_335_253 c_unique)) (forall ((?l_334_254 c_unique)) (forall ((?m_333_255 c_unique)) (forall ((?a_332_256 Int)) (forall ((?b_331_257 Int)) (let ((?v_0 (type_pointer ?t_57_336_252))) (=> (not_in_pset (c_sort ?v_0 ?p_335_253) (c_sort (type_pset ?t_57_336_252) (pset_acc_range (c_sort (type_pset ?t_58_337_251) ?l_334_254) (c_sort (type_memory ?v_0 ?t_58_337_251) ?m_333_255) ?a_332_256 ?b_331_257))) (forall ((?p1_330_258 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_58_337_251) ?p1_330_258) (c_sort (type_pset ?t_58_337_251) ?l_334_254))) (forall ((?i_329_259 Int)) (let ((?v_1 (type_pointer ?t_58_337_251))) (=> (and (<= ?a_332_256 ?i_329_259) (<= ?i_329_259 ?b_331_257)) (not (= (acc (c_sort (type_memory ?v_0 ?t_58_337_251) ?m_333_255) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_330_258) ?i_329_259))) ?p_335_253))))))))))))))))) +(assert (forall ((?t_60_345_260 c_type)) (forall ((?t_59_344_261 c_type)) (forall ((?p_343_262 c_unique)) (forall ((?l_342_263 c_unique)) (forall ((?m_341_264 c_unique)) (forall ((?a_340_265 Int)) (let ((?v_0 (type_pointer ?t_59_344_261))) (=> (forall ((?p1_339_266 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_60_345_260) ?p1_339_266) (c_sort (type_pset ?t_60_345_260) ?l_342_263))) (forall ((?i_338_267 Int)) (let ((?v_1 (type_pointer ?t_60_345_260))) (=> (<= ?i_338_267 ?a_340_265) (not (= ?p_343_262 (acc (c_sort (type_memory ?v_0 ?t_60_345_260) ?m_341_264) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_339_266) ?i_338_267)))))))))) (not_in_pset (c_sort ?v_0 ?p_343_262) (c_sort (type_pset ?t_59_344_261) (pset_acc_range_left (c_sort (type_pset ?t_60_345_260) ?l_342_263) (c_sort (type_memory ?v_0 ?t_60_345_260) ?m_341_264) ?a_340_265)))))))))))) +(assert (forall ((?t_62_353_268 c_type)) (forall ((?t_61_352_269 c_type)) (forall ((?p_351_270 c_unique)) (forall ((?l_350_271 c_unique)) (forall ((?m_349_272 c_unique)) (forall ((?a_348_273 Int)) (let ((?v_0 (type_pointer ?t_61_352_269))) (=> (not_in_pset (c_sort ?v_0 ?p_351_270) (c_sort (type_pset ?t_61_352_269) (pset_acc_range_left (c_sort (type_pset ?t_62_353_268) ?l_350_271) (c_sort (type_memory ?v_0 ?t_62_353_268) ?m_349_272) ?a_348_273))) (forall ((?p1_347_274 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_62_353_268) ?p1_347_274) (c_sort (type_pset ?t_62_353_268) ?l_350_271))) (forall ((?i_346_275 Int)) (let ((?v_1 (type_pointer ?t_62_353_268))) (=> (<= ?i_346_275 ?a_348_273) (not (= (acc (c_sort (type_memory ?v_0 ?t_62_353_268) ?m_349_272) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_347_274) ?i_346_275))) ?p_351_270)))))))))))))))) +(assert (forall ((?t_64_361_276 c_type)) (forall ((?t_63_360_277 c_type)) (forall ((?p_359_278 c_unique)) (forall ((?l_358_279 c_unique)) (forall ((?m_357_280 c_unique)) (forall ((?a_356_281 Int)) (let ((?v_0 (type_pointer ?t_63_360_277))) (=> (forall ((?p1_355_282 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_64_361_276) ?p1_355_282) (c_sort (type_pset ?t_64_361_276) ?l_358_279))) (forall ((?i_354_283 Int)) (let ((?v_1 (type_pointer ?t_64_361_276))) (=> (<= ?a_356_281 ?i_354_283) (not (= ?p_359_278 (acc (c_sort (type_memory ?v_0 ?t_64_361_276) ?m_357_280) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_355_282) ?i_354_283)))))))))) (not_in_pset (c_sort ?v_0 ?p_359_278) (c_sort (type_pset ?t_63_360_277) (pset_acc_range_right (c_sort (type_pset ?t_64_361_276) ?l_358_279) (c_sort (type_memory ?v_0 ?t_64_361_276) ?m_357_280) ?a_356_281)))))))))))) +(assert (forall ((?t_66_369_284 c_type)) (forall ((?t_65_368_285 c_type)) (forall ((?p_367_286 c_unique)) (forall ((?l_366_287 c_unique)) (forall ((?m_365_288 c_unique)) (forall ((?a_364_289 Int)) (let ((?v_0 (type_pointer ?t_65_368_285))) (=> (not_in_pset (c_sort ?v_0 ?p_367_286) (c_sort (type_pset ?t_65_368_285) (pset_acc_range_right (c_sort (type_pset ?t_66_369_284) ?l_366_287) (c_sort (type_memory ?v_0 ?t_66_369_284) ?m_365_288) ?a_364_289))) (forall ((?p1_363_290 c_unique)) (=> (not (not_in_pset (c_sort (type_pointer ?t_66_369_284) ?p1_363_290) (c_sort (type_pset ?t_66_369_284) ?l_366_287))) (forall ((?i_362_291 Int)) (let ((?v_1 (type_pointer ?t_66_369_284))) (=> (<= ?a_364_289 ?i_362_291) (not (= (acc (c_sort (type_memory ?v_0 ?t_66_369_284) ?m_365_288) (c_sort ?v_1 (shift (c_sort ?v_1 ?p1_363_290) ?i_362_291))) ?p_367_286)))))))))))))))) +(assert (forall ((?t_68_376_292 c_type)) (forall ((?t_67_375_293 c_type)) (forall ((?a_374_294 c_unique)) (forall ((?l_373_295 c_unique)) (forall ((?m1_372_296 c_unique)) (forall ((?m2_371_297 c_unique)) (forall ((?m3_370_298 c_unique)) (let ((?v_1 (c_sort type_alloc_table ?a_374_294)) (?v_0 (type_memory ?t_68_376_292 ?t_67_375_293))) (let ((?v_4 (c_sort ?v_0 ?m1_372_296)) (?v_2 (c_sort ?v_0 ?m2_371_297)) (?v_3 (c_sort (type_pset ?t_67_375_293) ?l_373_295)) (?v_5 (c_sort ?v_0 ?m3_370_298))) (=> (not_assigns ?v_1 ?v_4 ?v_2 ?v_3) (=> (not_assigns ?v_1 ?v_2 ?v_5 ?v_3) (not_assigns ?v_1 ?v_4 ?v_5 ?v_3))))))))))))) +(assert (forall ((?t_70_381_299 c_type)) (forall ((?t_69_380_300 c_type)) (forall ((?a_379_301 c_unique)) (forall ((?l_378_302 c_unique)) (forall ((?m_377_303 c_unique)) (let ((?v_0 (c_sort (type_memory ?t_70_381_299 ?t_69_380_300) ?m_377_303))) (not_assigns (c_sort type_alloc_table ?a_379_301) ?v_0 ?v_0 (c_sort (type_pset ?t_69_380_300) ?l_378_302))))))))) +(declare-fun valid_acc (c_ssorted) Bool) +(assert (forall ((?t_72_386_304 c_type)) (forall ((?t_71_385_305 c_type)) (forall ((?m1_384_306 c_unique)) (= (valid_acc (c_sort (type_memory (type_pointer ?t_71_385_305) ?t_72_386_304) ?m1_384_306)) (forall ((?p_383_307 c_unique)) (forall ((?a_382_308 c_unique)) (let ((?v_1 (type_pointer ?t_71_385_305)) (?v_0 (c_sort type_alloc_table ?a_382_308)) (?v_2 (c_sort (type_pointer ?t_72_386_304) ?p_383_307))) (=> (valid ?v_0 ?v_2) (valid ?v_0 (c_sort ?v_1 (acc (c_sort (type_memory ?v_1 ?t_72_386_304) ?m1_384_306) ?v_2)))))))))))) +(declare-fun valid_acc_range (c_ssorted Int) Bool) +(assert (forall ((?t_74_392_309 c_type)) (forall ((?t_73_391_310 c_type)) (forall ((?m1_390_311 c_unique)) (forall ((?size_389_312 Int)) (= (valid_acc_range (c_sort (type_memory (type_pointer ?t_73_391_310) ?t_74_392_309) ?m1_390_311) ?size_389_312) (forall ((?p_388_313 c_unique)) (forall ((?a_387_314 c_unique)) (let ((?v_1 (type_pointer ?t_73_391_310)) (?v_0 (c_sort type_alloc_table ?a_387_314)) (?v_2 (c_sort (type_pointer ?t_74_392_309) ?p_388_313))) (=> (valid ?v_0 ?v_2) (valid_range ?v_0 (c_sort ?v_1 (acc (c_sort (type_memory ?v_1 ?t_74_392_309) ?m1_390_311) ?v_2)) 0 (- ?size_389_312 1)))))))))))) +(assert (forall ((?t_76_398_315 c_type)) (forall ((?t_75_397_316 c_type)) (forall ((?m1_396_317 c_unique)) (forall ((?size_395_318 Int)) (forall ((?p_394_319 c_unique)) (forall ((?a_393_320 c_unique)) (let ((?v_1 (type_pointer ?t_75_397_316))) (let ((?v_2 (c_sort (type_memory ?v_1 ?t_76_398_315) ?m1_396_317)) (?v_0 (c_sort type_alloc_table ?a_393_320)) (?v_3 (c_sort (type_pointer ?t_76_398_315) ?p_394_319))) (=> (valid_acc_range ?v_2 ?size_395_318) (=> (valid ?v_0 ?v_3) (valid ?v_0 (c_sort ?v_1 (acc ?v_2 ?v_3)))))))))))))) +(declare-fun separation1 (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_78_404_321 c_type)) (forall ((?t_77_403_322 c_type)) (forall ((?m1_402_323 c_unique)) (forall ((?m2_401_324 c_unique)) (let ((?v_0 (type_memory (type_pointer ?t_77_403_322) ?t_78_404_321))) (= (separation1 (c_sort ?v_0 ?m1_402_323) (c_sort ?v_0 ?m2_401_324)) (forall ((?p_400_325 c_unique)) (forall ((?a_399_326 c_unique)) (let ((?v_1 (type_pointer ?t_77_403_322)) (?v_2 (c_sort (type_pointer ?t_78_404_321) ?p_400_325))) (=> (valid (c_sort type_alloc_table ?a_399_326) ?v_2) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_402_323) ?v_2))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_401_324) ?v_2)))))))))))))))) +(declare-fun separation1_range1 (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_80_412_327 c_type)) (forall ((?t_79_411_328 c_type)) (forall ((?m1_410_329 c_unique)) (forall ((?m2_409_330 c_unique)) (forall ((?size_408_331 Int)) (let ((?v_0 (type_memory (type_pointer ?t_79_411_328) ?t_80_412_327))) (= (separation1_range1 (c_sort ?v_0 ?m1_410_329) (c_sort ?v_0 ?m2_409_330) ?size_408_331) (forall ((?p_407_332 c_unique)) (forall ((?a_406_333 c_unique)) (=> (valid (c_sort type_alloc_table ?a_406_333) (c_sort (type_pointer ?t_80_412_327) ?p_407_332)) (forall ((?i_405_334 Int)) (let ((?v_1 (type_pointer ?t_79_411_328)) (?v_2 (type_pointer ?t_80_412_327))) (let ((?v_3 (c_sort ?v_2 ?p_407_332))) (=> (and (<= 0 ?i_405_334) (< ?i_405_334 ?size_408_331)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_410_329) (c_sort ?v_2 (shift ?v_3 ?i_405_334))))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_409_330) ?v_3)))))))))))))))))))) +(declare-fun separation1_range (c_ssorted Int) Bool) +(assert (forall ((?t_82_420_335 c_type)) (forall ((?t_81_419_336 c_type)) (forall ((?m_418_337 c_unique)) (forall ((?size_417_338 Int)) (= (separation1_range (c_sort (type_memory (type_pointer ?t_81_419_336) ?t_82_420_335) ?m_418_337) ?size_417_338) (forall ((?p_416_339 c_unique)) (forall ((?a_415_340 c_unique)) (=> (valid (c_sort type_alloc_table ?a_415_340) (c_sort (type_pointer ?t_82_420_335) ?p_416_339)) (forall ((?i1_414_341 Int)) (forall ((?i2_413_342 Int)) (let ((?v_0 (type_pointer ?t_81_419_336))) (let ((?v_2 (c_sort (type_memory ?v_0 ?t_82_420_335) ?m_418_337)) (?v_1 (type_pointer ?t_82_420_335))) (let ((?v_3 (c_sort ?v_1 ?p_416_339))) (=> (and (<= 0 ?i1_414_341) (< ?i1_414_341 ?size_417_338)) (=> (and (<= 0 ?i2_413_342) (< ?i2_413_342 ?size_417_338)) (=> (not (= ?i1_414_341 ?i2_413_342)) (not (= (base_addr (c_sort ?v_0 (acc ?v_2 (c_sort ?v_1 (shift ?v_3 ?i1_414_341))))) (base_addr (c_sort ?v_0 (acc ?v_2 (c_sort ?v_1 (shift ?v_3 ?i2_413_342)))))))))))))))))))))))) +(declare-fun separation2 (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_84_426_343 c_type)) (forall ((?t_83_425_344 c_type)) (forall ((?m1_424_345 c_unique)) (forall ((?m2_423_346 c_unique)) (let ((?v_0 (type_memory (type_pointer ?t_83_425_344) ?t_84_426_343))) (= (separation2 (c_sort ?v_0 ?m1_424_345) (c_sort ?v_0 ?m2_423_346)) (forall ((?p1_422_347 c_unique)) (forall ((?p2_421_348 c_unique)) (let ((?v_1 (type_pointer ?t_83_425_344)) (?v_2 (type_pointer ?t_84_426_343))) (=> (not (= ?p1_422_347 ?p2_421_348)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_424_345) (c_sort ?v_2 ?p1_422_347)))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_423_346) (c_sort ?v_2 ?p2_421_348))))))))))))))))) +(declare-fun separation2_range1 (c_ssorted c_ssorted Int) Bool) +(assert (forall ((?t_86_435_349 c_type)) (forall ((?t_85_434_350 c_type)) (forall ((?m1_433_351 c_unique)) (forall ((?m2_432_352 c_unique)) (forall ((?size_431_353 Int)) (let ((?v_0 (type_memory (type_pointer ?t_85_434_350) ?t_86_435_349))) (= (separation2_range1 (c_sort ?v_0 ?m1_433_351) (c_sort ?v_0 ?m2_432_352) ?size_431_353) (forall ((?p_430_354 c_unique)) (forall ((?q_429_355 c_unique)) (forall ((?a_428_356 c_unique)) (forall ((?i_427_357 Int)) (let ((?v_1 (type_pointer ?t_85_434_350)) (?v_2 (type_pointer ?t_86_435_349))) (=> (and (<= 0 ?i_427_357) (< ?i_427_357 ?size_431_353)) (not (= (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m1_433_351) (c_sort ?v_2 (shift (c_sort ?v_2 ?p_430_354) ?i_427_357))))) (base_addr (c_sort ?v_1 (acc (c_sort ?v_0 ?m2_432_352) (c_sort ?v_2 ?q_429_355)))))))))))))))))))) +(declare-fun on_heap (c_ssorted c_ssorted) Bool) +(declare-fun on_stack (c_ssorted c_ssorted) Bool) +(declare-fun fresh (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_87_438_358 c_type)) (forall ((?a_437_359 c_unique)) (forall ((?p_436_360 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a_437_359)) (?v_1 (c_sort (type_pointer ?t_87_438_358) ?p_436_360))) (=> (fresh ?v_0 ?v_1) (not (valid ?v_0 ?v_1)))))))) +(assert (forall ((?t_88_442_361 c_type)) (forall ((?a_441_362 c_unique)) (forall ((?p_440_363 c_unique)) (=> (fresh (c_sort type_alloc_table ?a_441_362) (c_sort (type_pointer ?t_88_442_361) ?p_440_363)) (forall ((?i_439_364 Int)) (let ((?v_0 (type_pointer ?t_88_442_361))) (not (valid (c_sort type_alloc_table ?a_441_362) (c_sort ?v_0 (shift (c_sort ?v_0 ?p_440_363) ?i_439_364))))))))))) +(declare-fun alloc_extends (c_ssorted c_ssorted) Bool) +(assert (forall ((?t_89_446_365 c_type)) (forall ((?a1_445_366 c_unique)) (forall ((?a2_444_367 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_445_366) (c_sort type_alloc_table ?a2_444_367)) (forall ((?q_443_368 c_unique)) (let ((?v_0 (c_sort (type_pointer ?t_89_446_365) ?q_443_368))) (=> (valid (c_sort type_alloc_table ?a1_445_366) ?v_0) (valid (c_sort type_alloc_table ?a2_444_367) ?v_0))))))))) +(assert (forall ((?t_90_451_369 c_type)) (forall ((?a1_450_370 c_unique)) (forall ((?a2_449_371 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_450_370) (c_sort type_alloc_table ?a2_449_371)) (forall ((?q_448_372 c_unique)) (forall ((?i_447_373 Int)) (let ((?v_0 (c_sort (type_pointer ?t_90_451_369) ?q_448_372))) (=> (valid_index (c_sort type_alloc_table ?a1_450_370) ?v_0 ?i_447_373) (valid_index (c_sort type_alloc_table ?a2_449_371) ?v_0 ?i_447_373)))))))))) +(assert (forall ((?t_91_457_374 c_type)) (forall ((?a1_456_375 c_unique)) (forall ((?a2_455_376 c_unique)) (=> (alloc_extends (c_sort type_alloc_table ?a1_456_375) (c_sort type_alloc_table ?a2_455_376)) (forall ((?q_454_377 c_unique)) (forall ((?i_453_378 Int)) (forall ((?j_452_379 Int)) (let ((?v_0 (c_sort (type_pointer ?t_91_457_374) ?q_454_377))) (=> (valid_range (c_sort type_alloc_table ?a1_456_375) ?v_0 ?i_453_378 ?j_452_379) (valid_range (c_sort type_alloc_table ?a2_455_376) ?v_0 ?i_453_378 ?j_452_379))))))))))) +(assert (forall ((?a_458_380 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a_458_380))) (alloc_extends ?v_0 ?v_0)))) +(assert (forall ((?a1_461_381 c_unique)) (forall ((?a2_460_382 c_unique)) (forall ((?a3_459_383 c_unique)) (let ((?v_1 (c_sort type_alloc_table ?a1_461_381)) (?v_0 (c_sort type_alloc_table ?a2_460_382)) (?v_2 (c_sort type_alloc_table ?a3_459_383))) (=> (alloc_extends ?v_1 ?v_0) (=> (alloc_extends ?v_0 ?v_2) (alloc_extends ?v_1 ?v_2)))))))) +(declare-fun free_stack (c_ssorted c_ssorted c_ssorted) Bool) +(assert (forall ((?t_92_466_384 c_type)) (forall ((?a1_465_385 c_unique)) (forall ((?a2_464_386 c_unique)) (forall ((?a3_463_387 c_unique)) (=> (free_stack (c_sort type_alloc_table ?a1_465_385) (c_sort type_alloc_table ?a2_464_386) (c_sort type_alloc_table ?a3_463_387)) (forall ((?p_462_388 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a2_464_386)) (?v_1 (c_sort (type_pointer ?t_92_466_384) ?p_462_388))) (=> (valid ?v_0 ?v_1) (=> (on_heap ?v_0 ?v_1) (valid (c_sort type_alloc_table ?a3_463_387) ?v_1))))))))))) +(assert (forall ((?t_93_471_389 c_type)) (forall ((?a1_470_390 c_unique)) (forall ((?a2_469_391 c_unique)) (forall ((?a3_468_392 c_unique)) (=> (free_stack (c_sort type_alloc_table ?a1_470_390) (c_sort type_alloc_table ?a2_469_391) (c_sort type_alloc_table ?a3_468_392)) (forall ((?p_467_393 c_unique)) (let ((?v_0 (c_sort type_alloc_table ?a1_470_390)) (?v_1 (c_sort (type_pointer ?t_93_471_389) ?p_467_393))) (=> (valid ?v_0 ?v_1) (=> (on_stack ?v_0 ?v_1) (valid (c_sort type_alloc_table ?a3_468_392) ?v_1))))))))))) +(declare-fun null () c_unique) +(assert (forall ((?t_94_475_394 c_type)) (forall ((?a_474_395 c_unique)) (not (valid (c_sort type_alloc_table ?a_474_395) (c_sort (type_pointer ?t_94_475_394) null)))))) +(declare-fun type_global () c_type) +(assert (= (% 2800 14) 0)) +(assert (forall ((?c_478_396 Int)) (let ((?v_0 (* ?c_478_396 2))) (=> (> ?v_0 0) (> ?v_0 1))))) +(assert (forall ((?c_479_397 Int)) (=> (= (% ?c_479_397 14) 0) (= (% (- ?c_479_397 14) 14) 0)))) +(assert (forall ((?c_480_398 Int)) (=> (= (% ?c_480_398 14) 0) (=> (> ?c_480_398 0) (>= ?c_480_398 14))))) +(assert (= (whydivide 10000 5) 2000)) +(assert (not (forall ((?a Int)) (forall ((?alloc c_unique)) (forall ((?b Int)) (forall ((?c Int)) (forall ((?f c_unique)) (=> (and (and (and (= ?b 0) (= ?c 2800)) (= ?a 10000)) (valid_range (c_sort type_alloc_table ?alloc) (c_sort (type_pointer type_global) ?f) 0 2800)) (forall ((?b0 Int)) (forall ((?intM_global0 c_unique)) (=> (and (and (<= 0 ?b0) (<= ?b0 2800)) (forall ((?i_0_481_408 Int)) (let ((?v_0 (type_pointer type_global))) (=> (and (<= 0 ?i_0_481_408) (< ?i_0_481_408 ?b0)) (= (ss2Int (c_sort c_int (acc (c_sort (type_memory c_int type_global) ?intM_global0) (c_sort ?v_0 (shift (c_sort ?v_0 ?f) ?i_0_481_408))))) 2000))))) (=> (= (- ?b0 ?c) 0) (= (% ?c 14) 0))))))))))))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2 b/test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2 new file mode 100644 index 000000000..9243654b4 --- /dev/null +++ b/test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2 @@ -0,0 +1,185 @@ +; COMMAND-LINE: --lang=smt2.5 +; EXPECT: unsat +(set-logic ALL_SUPPORTED) +(set-info :status unsat) +(declare-sort A$ 0) +(declare-sort B$ 0) +(declare-sort A_set$ 0) +(declare-sort B_set$ 0) +(declare-sort A_a_fun$ 0) +(declare-sort A_b_fun$ 0) +(declare-sort B_a_fun$ 0) +(declare-sort B_b_fun$ 0) +(declare-sort A_stream_set$ 0) +(declare-sort B_stream_set$ 0) +(declare-sort A_a_stream_fun$ 0) +(declare-sort A_b_stream_fun$ 0) +(declare-sort A_stream_a_fun$ 0) +(declare-sort A_stream_b_fun$ 0) +(declare-sort B_a_stream_fun$ 0) +(declare-sort B_b_stream_fun$ 0) +(declare-sort B_stream_a_fun$ 0) +(declare-sort B_stream_b_fun$ 0) +(declare-sort A_stream_stream_set$ 0) +(declare-sort B_stream_stream_set$ 0) +(declare-sort A_stream_a_stream_fun$ 0) +(declare-sort B_stream_b_stream_fun$ 0) +(declare-sort A_stream_stream_a_stream_stream_fun$ 0) +(declare-sort B_stream_stream_b_stream_stream_fun$ 0) +(declare-sort A_stream_stream_stream_a_stream_stream_stream_fun$ 0) +(declare-sort B_stream_stream_stream_b_stream_stream_stream_fun$ 0) +(declare-datatypes () ((Nat$ (zero$) (suc$ (pred$ Nat$))))) +(declare-codatatypes () ((A_stream$ (sCons$ (shd$ A$) (stl$ A_stream$))) + (B_stream$ (sCons$a (shd$a B$) (stl$a B_stream$))) + (B_stream_stream$ (sCons$b (shd$b B_stream$) (stl$b B_stream_stream$))) + (B_stream_stream_stream$ (sCons$c (shd$c B_stream_stream$) (stl$c B_stream_stream_stream$))) + (A_stream_stream$ (sCons$d (shd$d A_stream$) (stl$d A_stream_stream$))) + (A_stream_stream_stream$ (sCons$e (shd$e A_stream_stream$) (stl$e A_stream_stream_stream$))))) +(declare-fun f$ () B_a_fun$) +(declare-fun x$ () B$) +(declare-fun id$ () B_b_fun$) +(declare-fun id$a () A_a_fun$) +(declare-fun id$b () B_stream_stream_b_stream_stream_fun$) +(declare-fun id$c () A_stream_stream_a_stream_stream_fun$) +(declare-fun id$d () A_stream_a_stream_fun$) +(declare-fun id$e () B_stream_b_stream_fun$) +(declare-fun id$f () B_stream_stream_stream_b_stream_stream_stream_fun$) +(declare-fun id$g () A_stream_stream_stream_a_stream_stream_stream_fun$) +(declare-fun smap$ (B_a_fun$ B_stream$) A_stream$) +(declare-fun snth$ (B_stream_stream$ Nat$) B_stream$) +(declare-fun sdrop$ (Nat$ B_stream_stream$) B_stream_stream$) +(declare-fun smap$a (B_b_fun$) B_stream_b_stream_fun$) +(declare-fun smap$b (A_a_fun$) A_stream_a_stream_fun$) +(declare-fun smap$c (B_stream_stream_b_stream_stream_fun$) B_stream_stream_stream_b_stream_stream_stream_fun$) +(declare-fun smap$d (A_stream_stream_a_stream_stream_fun$) A_stream_stream_stream_a_stream_stream_stream_fun$) +(declare-fun smap$e (A_stream_a_stream_fun$) A_stream_stream_a_stream_stream_fun$) +(declare-fun smap$f (B_stream_b_stream_fun$) B_stream_stream_b_stream_stream_fun$) +(declare-fun smap$g (B_b_stream_fun$ B_stream$) B_stream_stream$) +(declare-fun smap$h (B_a_stream_fun$ B_stream$) A_stream_stream$) +(declare-fun smap$i (A_b_stream_fun$ A_stream$) B_stream_stream$) +(declare-fun smap$j (A_a_stream_fun$ A_stream$) A_stream_stream$) +(declare-fun smap$k (A_b_fun$ A_stream$) B_stream$) +(declare-fun smap$l (B_stream_b_fun$ B_stream_stream$) B_stream$) +(declare-fun smap$m (A_stream_b_fun$ A_stream_stream$) B_stream$) +(declare-fun smap$n (B_stream_a_fun$ B_stream_stream$) A_stream$) +(declare-fun smap$o (A_stream_a_fun$ A_stream_stream$) A_stream$) +(declare-fun snth$a (B_stream$ Nat$) B$) +(declare-fun snth$b (A_stream_stream$ Nat$) A_stream$) +(declare-fun snth$c (A_stream$ Nat$) A$) +(declare-fun member$ (B_stream$ B_stream_set$) Bool) +(declare-fun sdrop$a (Nat$ B_stream$) B_stream$) +(declare-fun sdrop$b (Nat$ A_stream_stream$) A_stream_stream$) +(declare-fun sdrop$c (Nat$ A_stream$) A_stream$) +(declare-fun fun_app$ (B_b_stream_fun$ B$) B_stream$) +(declare-fun member$a (B$ B_set$) Bool) +(declare-fun member$b (A$ A_set$) Bool) +(declare-fun member$c (A_stream$ A_stream_set$) Bool) +(declare-fun member$d (B_stream_stream$ B_stream_stream_set$) Bool) +(declare-fun member$e (A_stream_stream$ A_stream_stream_set$) Bool) +(declare-fun streams$ (B_set$) B_stream_set$) +(declare-fun fun_app$a (A_a_stream_fun$ A$) A_stream$) +(declare-fun fun_app$b (B_a_fun$ B$) A$) +(declare-fun fun_app$c (B_stream_b_stream_fun$ B_stream$) B_stream$) +(declare-fun fun_app$d (B_b_fun$ B$) B$) +(declare-fun fun_app$e (A_stream_a_stream_fun$ A_stream$) A_stream$) +(declare-fun fun_app$f (A_a_fun$ A$) A$) +(declare-fun fun_app$g (B_stream_stream_stream_b_stream_stream_stream_fun$ B_stream_stream_stream$) B_stream_stream_stream$) +(declare-fun fun_app$h (A_stream_stream_stream_a_stream_stream_stream_fun$ A_stream_stream_stream$) A_stream_stream_stream$) +(declare-fun fun_app$i (A_stream_stream_a_stream_stream_fun$ A_stream_stream$) A_stream_stream$) +(declare-fun fun_app$j (B_stream_stream_b_stream_stream_fun$ B_stream_stream$) B_stream_stream$) +(declare-fun fun_app$k (B_a_stream_fun$ B$) A_stream$) +(declare-fun fun_app$l (A_b_stream_fun$ A$) B_stream$) +(declare-fun fun_app$m (A_b_fun$ A$) B$) +(declare-fun fun_app$n (B_stream_b_fun$ B_stream$) B$) +(declare-fun fun_app$o (A_stream_b_fun$ A_stream$) B$) +(declare-fun fun_app$p (B_stream_a_fun$ B_stream$) A$) +(declare-fun fun_app$q (A_stream_a_fun$ A_stream$) A$) +(declare-fun siterate$ (B_b_fun$) B_b_stream_fun$) +(declare-fun streams$a (A_set$) A_stream_set$) +(declare-fun streams$b (B_stream_set$) B_stream_stream_set$) +(declare-fun streams$c (A_stream_set$) A_stream_stream_set$) +(declare-fun siterate$a (A_a_fun$) A_a_stream_fun$) +(assert (! (not (= (smap$ f$ (fun_app$ (siterate$ id$) x$)) (fun_app$a (siterate$a id$a) (fun_app$b f$ x$)))) :named a0)) +(assert (! (forall ((?v0 B_b_fun$) (?v1 B$)) (= (fun_app$c (smap$a ?v0) (fun_app$ (siterate$ ?v0) ?v1)) (fun_app$ (siterate$ ?v0) (fun_app$d ?v0 ?v1)))) :named a1)) +(assert (! (forall ((?v0 A_a_fun$) (?v1 A$)) (= (fun_app$e (smap$b ?v0) (fun_app$a (siterate$a ?v0) ?v1)) (fun_app$a (siterate$a ?v0) (fun_app$f ?v0 ?v1)))) :named a2)) +(assert (! (forall ((?v0 B_stream_stream_stream$)) (= (fun_app$g (smap$c id$b) ?v0) ?v0)) :named a3)) +(assert (! (forall ((?v0 A_stream_stream_stream$)) (= (fun_app$h (smap$d id$c) ?v0) ?v0)) :named a4)) +(assert (! (forall ((?v0 A_stream_stream$)) (= (fun_app$i (smap$e id$d) ?v0) ?v0)) :named a5)) +(assert (! (forall ((?v0 B_stream_stream$)) (= (fun_app$j (smap$f id$e) ?v0) ?v0)) :named a6)) +(assert (! (forall ((?v0 B_stream$)) (= (fun_app$c (smap$a id$) ?v0) ?v0)) :named a7)) +(assert (! (forall ((?v0 A_stream$)) (= (fun_app$e (smap$b id$a) ?v0) ?v0)) :named a8)) +(assert (! (= (smap$c id$b) id$f) :named a9)) +(assert (! (= (smap$d id$c) id$g) :named a10)) +(assert (! (= (smap$e id$d) id$c) :named a11)) +(assert (! (= (smap$f id$e) id$b) :named a12)) +(assert (! (= (smap$a id$) id$e) :named a13)) +(assert (! (= (smap$b id$a) id$d) :named a14)) +(assert (! (forall ((?v0 B_stream_stream$)) (! (= (fun_app$j id$b ?v0) ?v0) :pattern ((fun_app$j id$b ?v0)))) :named a15)) +(assert (! (forall ((?v0 A_stream_stream$)) (! (= (fun_app$i id$c ?v0) ?v0) :pattern ((fun_app$i id$c ?v0)))) :named a16)) +(assert (! (forall ((?v0 A_stream$)) (! (= (fun_app$e id$d ?v0) ?v0) :pattern ((fun_app$e id$d ?v0)))) :named a17)) +(assert (! (forall ((?v0 B_stream$)) (! (= (fun_app$c id$e ?v0) ?v0) :pattern ((fun_app$c id$e ?v0)))) :named a18)) +(assert (! (forall ((?v0 B$)) (! (= (fun_app$d id$ ?v0) ?v0) :pattern ((fun_app$d id$ ?v0)))) :named a19)) +(assert (! (forall ((?v0 A$)) (! (= (fun_app$f id$a ?v0) ?v0) :pattern ((fun_app$f id$a ?v0)))) :named a20)) +(assert (! (forall ((?v0 B_stream_stream$)) (! (= (fun_app$j id$b ?v0) ?v0) :pattern ((fun_app$j id$b ?v0)))) :named a21)) +(assert (! (forall ((?v0 A_stream_stream$)) (! (= (fun_app$i id$c ?v0) ?v0) :pattern ((fun_app$i id$c ?v0)))) :named a22)) +(assert (! (forall ((?v0 A_stream$)) (! (= (fun_app$e id$d ?v0) ?v0) :pattern ((fun_app$e id$d ?v0)))) :named a23)) +(assert (! (forall ((?v0 B_stream$)) (! (= (fun_app$c id$e ?v0) ?v0) :pattern ((fun_app$c id$e ?v0)))) :named a24)) +(assert (! (forall ((?v0 B$)) (! (= (fun_app$d id$ ?v0) ?v0) :pattern ((fun_app$d id$ ?v0)))) :named a25)) +(assert (! (forall ((?v0 A$)) (! (= (fun_app$f id$a ?v0) ?v0) :pattern ((fun_app$f id$a ?v0)))) :named a26)) +(assert (! (forall ((?v0 B_b_stream_fun$) (?v1 B_stream$) (?v2 Nat$)) (= (snth$ (smap$g ?v0 ?v1) ?v2) (fun_app$ ?v0 (snth$a ?v1 ?v2)))) :named a27)) +(assert (! (forall ((?v0 B_a_stream_fun$) (?v1 B_stream$) (?v2 Nat$)) (= (snth$b (smap$h ?v0 ?v1) ?v2) (fun_app$k ?v0 (snth$a ?v1 ?v2)))) :named a28)) +(assert (! (forall ((?v0 A_b_stream_fun$) (?v1 A_stream$) (?v2 Nat$)) (= (snth$ (smap$i ?v0 ?v1) ?v2) (fun_app$l ?v0 (snth$c ?v1 ?v2)))) :named a29)) +(assert (! (forall ((?v0 A_a_stream_fun$) (?v1 A_stream$) (?v2 Nat$)) (= (snth$b (smap$j ?v0 ?v1) ?v2) (fun_app$a ?v0 (snth$c ?v1 ?v2)))) :named a30)) +(assert (! (forall ((?v0 A_b_fun$) (?v1 A_stream$) (?v2 Nat$)) (= (snth$a (smap$k ?v0 ?v1) ?v2) (fun_app$m ?v0 (snth$c ?v1 ?v2)))) :named a31)) +(assert (! (forall ((?v0 A_a_fun$) (?v1 A_stream$) (?v2 Nat$)) (= (snth$c (fun_app$e (smap$b ?v0) ?v1) ?v2) (fun_app$f ?v0 (snth$c ?v1 ?v2)))) :named a32)) +(assert (! (forall ((?v0 B_b_fun$) (?v1 B_stream$) (?v2 Nat$)) (= (snth$a (fun_app$c (smap$a ?v0) ?v1) ?v2) (fun_app$d ?v0 (snth$a ?v1 ?v2)))) :named a33)) +(assert (! (forall ((?v0 B_a_fun$) (?v1 B_stream$) (?v2 Nat$)) (= (snth$c (smap$ ?v0 ?v1) ?v2) (fun_app$b ?v0 (snth$a ?v1 ?v2)))) :named a34)) +(assert (! (forall ((?v0 Nat$) (?v1 B_b_stream_fun$) (?v2 B_stream$)) (= (sdrop$ ?v0 (smap$g ?v1 ?v2)) (smap$g ?v1 (sdrop$a ?v0 ?v2)))) :named a35)) +(assert (! (forall ((?v0 Nat$) (?v1 B_a_stream_fun$) (?v2 B_stream$)) (= (sdrop$b ?v0 (smap$h ?v1 ?v2)) (smap$h ?v1 (sdrop$a ?v0 ?v2)))) :named a36)) +(assert (! (forall ((?v0 Nat$) (?v1 A_b_stream_fun$) (?v2 A_stream$)) (= (sdrop$ ?v0 (smap$i ?v1 ?v2)) (smap$i ?v1 (sdrop$c ?v0 ?v2)))) :named a37)) +(assert (! (forall ((?v0 Nat$) (?v1 A_a_stream_fun$) (?v2 A_stream$)) (= (sdrop$b ?v0 (smap$j ?v1 ?v2)) (smap$j ?v1 (sdrop$c ?v0 ?v2)))) :named a38)) +(assert (! (forall ((?v0 Nat$) (?v1 A_b_fun$) (?v2 A_stream$)) (= (sdrop$a ?v0 (smap$k ?v1 ?v2)) (smap$k ?v1 (sdrop$c ?v0 ?v2)))) :named a39)) +(assert (! (forall ((?v0 Nat$) (?v1 A_a_fun$) (?v2 A_stream$)) (= (sdrop$c ?v0 (fun_app$e (smap$b ?v1) ?v2)) (fun_app$e (smap$b ?v1) (sdrop$c ?v0 ?v2)))) :named a40)) +(assert (! (forall ((?v0 Nat$) (?v1 B_b_fun$) (?v2 B_stream$)) (= (sdrop$a ?v0 (fun_app$c (smap$a ?v1) ?v2)) (fun_app$c (smap$a ?v1) (sdrop$a ?v0 ?v2)))) :named a41)) +(assert (! (forall ((?v0 Nat$) (?v1 B_a_fun$) (?v2 B_stream$)) (= (sdrop$c ?v0 (smap$ ?v1 ?v2)) (smap$ ?v1 (sdrop$a ?v0 ?v2)))) :named a42)) +(assert (! (forall ((?v0 B_b_stream_fun$) (?v1 B_stream$)) (= (shd$b (smap$g ?v0 ?v1)) (fun_app$ ?v0 (shd$a ?v1)))) :named a43)) +(assert (! (forall ((?v0 B_a_stream_fun$) (?v1 B_stream$)) (= (shd$d (smap$h ?v0 ?v1)) (fun_app$k ?v0 (shd$a ?v1)))) :named a44)) +(assert (! (forall ((?v0 A_b_stream_fun$) (?v1 A_stream$)) (= (shd$b (smap$i ?v0 ?v1)) (fun_app$l ?v0 (shd$ ?v1)))) :named a45)) +(assert (! (forall ((?v0 A_a_stream_fun$) (?v1 A_stream$)) (= (shd$d (smap$j ?v0 ?v1)) (fun_app$a ?v0 (shd$ ?v1)))) :named a46)) +(assert (! (forall ((?v0 A_b_fun$) (?v1 A_stream$)) (= (shd$a (smap$k ?v0 ?v1)) (fun_app$m ?v0 (shd$ ?v1)))) :named a47)) +(assert (! (forall ((?v0 A_a_fun$) (?v1 A_stream$)) (= (shd$ (fun_app$e (smap$b ?v0) ?v1)) (fun_app$f ?v0 (shd$ ?v1)))) :named a48)) +(assert (! (forall ((?v0 B_b_fun$) (?v1 B_stream$)) (= (shd$a (fun_app$c (smap$a ?v0) ?v1)) (fun_app$d ?v0 (shd$a ?v1)))) :named a49)) +(assert (! (forall ((?v0 B_a_fun$) (?v1 B_stream$)) (= (shd$ (smap$ ?v0 ?v1)) (fun_app$b ?v0 (shd$a ?v1)))) :named a50)) +(assert (! (forall ((?v0 B_b_stream_fun$) (?v1 B_stream$)) (= (stl$b (smap$g ?v0 ?v1)) (smap$g ?v0 (stl$a ?v1)))) :named a51)) +(assert (! (forall ((?v0 B_a_stream_fun$) (?v1 B_stream$)) (= (stl$d (smap$h ?v0 ?v1)) (smap$h ?v0 (stl$a ?v1)))) :named a52)) +(assert (! (forall ((?v0 A_b_stream_fun$) (?v1 A_stream$)) (= (stl$b (smap$i ?v0 ?v1)) (smap$i ?v0 (stl$ ?v1)))) :named a53)) +(assert (! (forall ((?v0 A_a_stream_fun$) (?v1 A_stream$)) (= (stl$d (smap$j ?v0 ?v1)) (smap$j ?v0 (stl$ ?v1)))) :named a54)) +(assert (! (forall ((?v0 A_b_fun$) (?v1 A_stream$)) (= (stl$a (smap$k ?v0 ?v1)) (smap$k ?v0 (stl$ ?v1)))) :named a55)) +(assert (! (forall ((?v0 A_a_fun$) (?v1 A_stream$)) (= (stl$ (fun_app$e (smap$b ?v0) ?v1)) (fun_app$e (smap$b ?v0) (stl$ ?v1)))) :named a56)) +(assert (! (forall ((?v0 B_b_fun$) (?v1 B_stream$)) (= (stl$a (fun_app$c (smap$a ?v0) ?v1)) (fun_app$c (smap$a ?v0) (stl$a ?v1)))) :named a57)) +(assert (! (forall ((?v0 B_a_fun$) (?v1 B_stream$)) (= (stl$ (smap$ ?v0 ?v1)) (smap$ ?v0 (stl$a ?v1)))) :named a58)) +(assert (! (forall ((?v0 B_b_stream_fun$) (?v1 B_stream$) (?v2 B_stream_stream$)) (= (= (smap$g ?v0 ?v1) ?v2) (forall ((?v3 Nat$)) (= (fun_app$ ?v0 (snth$a ?v1 ?v3)) (snth$ ?v2 ?v3))))) :named a59)) +(assert (! (forall ((?v0 B_a_stream_fun$) (?v1 B_stream$) (?v2 A_stream_stream$)) (= (= (smap$h ?v0 ?v1) ?v2) (forall ((?v3 Nat$)) (= (fun_app$k ?v0 (snth$a ?v1 ?v3)) (snth$b ?v2 ?v3))))) :named a60)) +(assert (! (forall ((?v0 A_b_stream_fun$) (?v1 A_stream$) (?v2 B_stream_stream$)) (= (= (smap$i ?v0 ?v1) ?v2) (forall ((?v3 Nat$)) (= (fun_app$l ?v0 (snth$c ?v1 ?v3)) (snth$ ?v2 ?v3))))) :named a61)) +(assert (! (forall ((?v0 A_a_stream_fun$) (?v1 A_stream$) (?v2 A_stream_stream$)) (= (= (smap$j ?v0 ?v1) ?v2) (forall ((?v3 Nat$)) (= (fun_app$a ?v0 (snth$c ?v1 ?v3)) (snth$b ?v2 ?v3))))) :named a62)) +(assert (! (forall ((?v0 A_b_fun$) (?v1 A_stream$) (?v2 B_stream$)) (= (= (smap$k ?v0 ?v1) ?v2) (forall ((?v3 Nat$)) (= (fun_app$m ?v0 (snth$c ?v1 ?v3)) (snth$a ?v2 ?v3))))) :named a63)) +(assert (! (forall ((?v0 A_a_fun$) (?v1 A_stream$) (?v2 A_stream$)) (= (= (fun_app$e (smap$b ?v0) ?v1) ?v2) (forall ((?v3 Nat$)) (= (fun_app$f ?v0 (snth$c ?v1 ?v3)) (snth$c ?v2 ?v3))))) :named a64)) +(assert (! (forall ((?v0 B_b_fun$) (?v1 B_stream$) (?v2 B_stream$)) (= (= (fun_app$c (smap$a ?v0) ?v1) ?v2) (forall ((?v3 Nat$)) (= (fun_app$d ?v0 (snth$a ?v1 ?v3)) (snth$a ?v2 ?v3))))) :named a65)) +(assert (! (forall ((?v0 B_a_fun$) (?v1 B_stream$) (?v2 A_stream$)) (= (= (smap$ ?v0 ?v1) ?v2) (forall ((?v3 Nat$)) (= (fun_app$b ?v0 (snth$a ?v1 ?v3)) (snth$c ?v2 ?v3))))) :named a66)) +(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_a_fun$) (?v3 A_set$)) (=> (and (member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (member$a ?v4 ?v1) (member$b (fun_app$b ?v2 ?v4) ?v3)))) (member$c (smap$ ?v2 ?v0) (streams$a ?v3)))) :named a67)) +(assert (! (forall ((?v0 A_stream$) (?v1 A_set$) (?v2 A_b_fun$) (?v3 B_set$)) (=> (and (member$c ?v0 (streams$a ?v1)) (forall ((?v4 A$)) (=> (member$b ?v4 ?v1) (member$a (fun_app$m ?v2 ?v4) ?v3)))) (member$ (smap$k ?v2 ?v0) (streams$ ?v3)))) :named a68)) +(assert (! (forall ((?v0 A_stream$) (?v1 A_set$) (?v2 A_a_fun$) (?v3 A_set$)) (=> (and (member$c ?v0 (streams$a ?v1)) (forall ((?v4 A$)) (=> (member$b ?v4 ?v1) (member$b (fun_app$f ?v2 ?v4) ?v3)))) (member$c (fun_app$e (smap$b ?v2) ?v0) (streams$a ?v3)))) :named a69)) +(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_b_fun$) (?v3 B_set$)) (=> (and (member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (member$a ?v4 ?v1) (member$a (fun_app$d ?v2 ?v4) ?v3)))) (member$ (fun_app$c (smap$a ?v2) ?v0) (streams$ ?v3)))) :named a70)) +(assert (! (forall ((?v0 B_stream_stream$) (?v1 B_stream_set$) (?v2 B_stream_b_fun$) (?v3 B_set$)) (=> (and (member$d ?v0 (streams$b ?v1)) (forall ((?v4 B_stream$)) (=> (member$ ?v4 ?v1) (member$a (fun_app$n ?v2 ?v4) ?v3)))) (member$ (smap$l ?v2 ?v0) (streams$ ?v3)))) :named a71)) +(assert (! (forall ((?v0 A_stream_stream$) (?v1 A_stream_set$) (?v2 A_stream_b_fun$) (?v3 B_set$)) (=> (and (member$e ?v0 (streams$c ?v1)) (forall ((?v4 A_stream$)) (=> (member$c ?v4 ?v1) (member$a (fun_app$o ?v2 ?v4) ?v3)))) (member$ (smap$m ?v2 ?v0) (streams$ ?v3)))) :named a72)) +(assert (! (forall ((?v0 B_stream_stream$) (?v1 B_stream_set$) (?v2 B_stream_a_fun$) (?v3 A_set$)) (=> (and (member$d ?v0 (streams$b ?v1)) (forall ((?v4 B_stream$)) (=> (member$ ?v4 ?v1) (member$b (fun_app$p ?v2 ?v4) ?v3)))) (member$c (smap$n ?v2 ?v0) (streams$a ?v3)))) :named a73)) +(assert (! (forall ((?v0 A_stream_stream$) (?v1 A_stream_set$) (?v2 A_stream_a_fun$) (?v3 A_set$)) (=> (and (member$e ?v0 (streams$c ?v1)) (forall ((?v4 A_stream$)) (=> (member$c ?v4 ?v1) (member$b (fun_app$q ?v2 ?v4) ?v3)))) (member$c (smap$o ?v2 ?v0) (streams$a ?v3)))) :named a74)) +(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_b_stream_fun$) (?v3 B_stream_set$)) (=> (and (member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (member$a ?v4 ?v1) (member$ (fun_app$ ?v2 ?v4) ?v3)))) (member$d (smap$g ?v2 ?v0) (streams$b ?v3)))) :named a75)) +(assert (! (forall ((?v0 B_stream$) (?v1 B_set$) (?v2 B_a_stream_fun$) (?v3 A_stream_set$)) (=> (and (member$ ?v0 (streams$ ?v1)) (forall ((?v4 B$)) (=> (member$a ?v4 ?v1) (member$c (fun_app$k ?v2 ?v4) ?v3)))) (member$e (smap$h ?v2 ?v0) (streams$c ?v3)))) :named a76)) +(assert (! (forall ((?v0 B_b_fun$) (?v1 B$)) (= (shd$a (fun_app$ (siterate$ ?v0) ?v1)) ?v1)) :named a77)) +(assert (! (forall ((?v0 A_a_fun$) (?v1 A$)) (= (shd$ (fun_app$a (siterate$a ?v0) ?v1)) ?v1)) :named a78)) +(assert (! (forall ((?v0 B_b_fun$) (?v1 B$)) (= (stl$a (fun_app$ (siterate$ ?v0) ?v1)) (fun_app$ (siterate$ ?v0) (fun_app$d ?v0 ?v1)))) :named a79)) +(assert (! (forall ((?v0 A_a_fun$) (?v1 A$)) (= (stl$ (fun_app$a (siterate$a ?v0) ?v1)) (fun_app$a (siterate$a ?v0) (fun_app$f ?v0 ?v1)))) :named a80)) +(assert (! (forall ((?v0 B_b_fun$) (?v1 B$)) (= (fun_app$ (siterate$ ?v0) ?v1) (sCons$a ?v1 (fun_app$ (siterate$ ?v0) (fun_app$d ?v0 ?v1))))) :named a81)) +(assert (! (forall ((?v0 A_a_fun$) (?v1 A$)) (= (fun_app$a (siterate$a ?v0) ?v1) (sCons$ ?v1 (fun_app$a (siterate$a ?v0) (fun_app$f ?v0 ?v1))))) :named a82)) +(check-sat) diff --git a/test/regress/regress1/quantifiers/subtype-param-unk.smt2 b/test/regress/regress1/quantifiers/subtype-param-unk.smt2 new file mode 100644 index 000000000..f3ee6a86a --- /dev/null +++ b/test/regress/regress1/quantifiers/subtype-param-unk.smt2 @@ -0,0 +1,24 @@ +; COMMAND-LINE: --lang=smt2.5 +; EXPECT: (error "argument type is not a subtype of the function's argument type: +; EXPECT: argument: x +; EXPECT: has type: (List Int) +; EXPECT: not subtype: (List Real) +; EXPECT: in term : (R (as x (List Real)))") +; EXIT: 1 + +; this will fail if type rule for APPLY_UF requires arguments to be subtypes +(set-logic ALL_SUPPORTED) + +(declare-datatypes (T) ((List (cons (hd T) (tl (List T))) (nil)))) + +(declare-fun R ((List Real)) Bool) +(assert (forall ((x (List Int))) (R x))) +(declare-fun j1 () (List Real)) +(assert (not (R j1))) + +(declare-fun Q ((Array Int Real)) Bool) +(assert (forall ((x (Array Int Int))) (Q x))) +(declare-fun j2 () (Array Int Real)) +(assert (not (Q j2))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/subtype-param.smt2 b/test/regress/regress1/quantifiers/subtype-param.smt2 new file mode 100644 index 000000000..860c03b6f --- /dev/null +++ b/test/regress/regress1/quantifiers/subtype-param.smt2 @@ -0,0 +1,24 @@ +; COMMAND-LINE: --lang=smt2.5 +; EXPECT: (error "argument type is not a subtype of the function's argument type: +; EXPECT: argument: x +; EXPECT: has type: (Array Int Int) +; EXPECT: not subtype: (Array Int Real) +; EXPECT: in term : (Q (as x (Array Int Real)))") +; EXIT: 1 + +(set-logic ALL_SUPPORTED) +(set-info :status unsat) + +(declare-datatypes (T) ((List (cons (hd T) (tl (List T))) (nil)))) + +(declare-fun R ((List Real)) Bool) +(assert (forall ((x (List Real))) (R x))) + +(declare-fun Q ((Array Int Real)) Bool) +(assert (forall ((x (Array Int Int))) (Q x))) + +(declare-fun k1 () (List Int)) +(declare-fun k2 () (Array Real Int)) +(assert (or (not (R k1)) (not (Q k2)))) + +(check-sat) diff --git a/test/regress/regress1/quantifiers/symmetric_unsat_7.smt2 b/test/regress/regress1/quantifiers/symmetric_unsat_7.smt2 new file mode 100644 index 000000000..6acf4a3c6 --- /dev/null +++ b/test/regress/regress1/quantifiers/symmetric_unsat_7.smt2 @@ -0,0 +1,34 @@ +(set-logic AUFLIRA) +(set-info :source | Example extracted from Peter Baumgartner's talk at CADE-21: Logical Engineering with Instance-Based Methods. + +It was translated to SMT-LIB by Leonardo de Moura |) +(set-info :smt-lib-version 2.0) +(set-info :category "crafted") +(set-info :status unsat) +(declare-fun symmetric ((Array Int (Array Int Real)) Int) Bool) +(declare-fun n () Int) +(declare-fun a0 () (Array Int (Array Int Real))) +(declare-fun e0 () Real) +(declare-fun a1 () (Array Int (Array Int Real))) +(declare-fun e1 () Real) +(declare-fun a2 () (Array Int (Array Int Real))) +(declare-fun e2 () Real) +(declare-fun a3 () (Array Int (Array Int Real))) +(declare-fun e3 () Real) +(declare-fun a4 () (Array Int (Array Int Real))) +(declare-fun e4 () Real) +(declare-fun a5 () (Array Int (Array Int Real))) +(declare-fun e5 () Real) +(declare-fun a6 () (Array Int (Array Int Real))) +(declare-fun e6 () Real) +(assert (forall ((?a (Array Int (Array Int Real))) (?n Int)) (= (symmetric ?a ?n) (forall ((?i Int) (?j Int)) (=> (and (<= 1 ?i) (<= ?i ?n) (<= 1 ?j) (<= ?j ?n)) (= (select (select ?a ?i) ?j) (select (select ?a ?j) ?i))))))) +(assert (symmetric a0 n)) +(assert (= a1 (store a0 0 (store (select a0 0) 0 e0)))) +(assert (= a2 (store a1 1 (store (select a1 1) 1 e1)))) +(assert (= a3 (store a2 2 (store (select a2 2) 2 e2)))) +(assert (= a4 (store a3 3 (store (select a3 3) 3 e3)))) +(assert (= a5 (store a4 4 (store (select a4 4) 4 e4)))) +(assert (= a6 (store a5 5 (store (select a5 5) 5 e5)))) +(assert (not (symmetric a6 n))) +(check-sat) +(exit) diff --git a/test/regress/regress1/quantifiers/z3.620661-no-fv-trigger.smt2 b/test/regress/regress1/quantifiers/z3.620661-no-fv-trigger.smt2 new file mode 100644 index 000000000..aad2a4691 --- /dev/null +++ b/test/regress/regress1/quantifiers/z3.620661-no-fv-trigger.smt2 @@ -0,0 +1,87 @@ +(set-logic AUFNIRA) +(set-info :status unsat) +(declare-sort S1 0) +(declare-sort S2 0) +(declare-sort S3 0) +(declare-sort S4 0) +(declare-sort S5 0) +(declare-sort S6 0) +(declare-sort S7 0) +(declare-sort S8 0) +(declare-sort S9 0) +(declare-sort S10 0) +(declare-sort S11 0) +(declare-sort S12 0) +(declare-sort S13 0) +(declare-fun f1 () S1) +(declare-fun f2 () S1) +(declare-fun f3 (S2 Real) Real) +(declare-fun f4 (S3 Real) S2) +(declare-fun f5 () S3) +(declare-fun f6 (S4 Int) Int) +(declare-fun f7 (S5 Int) S4) +(declare-fun f8 () S5) +(declare-fun f9 () S2) +(declare-fun f10 () Real) +(declare-fun f11 () Real) +(declare-fun f12 () S2) +(declare-fun f13 (S7 S6) Real) +(declare-fun f14 () S7) +(declare-fun f15 () S2) +(declare-fun f16 () S2) +(declare-fun f17 (S8 Int) S6) +(declare-fun f18 () S8) +(declare-fun f19 (S9 S6) Int) +(declare-fun f20 () S9) +(declare-fun f21 (S10 Real) S7) +(declare-fun f22 () S10) +(declare-fun f23 () S2) +(declare-fun f24 (S11 S6) S6) +(declare-fun f25 (S12 S6) S11) +(declare-fun f26 () S12) +(declare-fun f27 () S12) +(declare-fun f28 (S13 Int) S9) +(declare-fun f29 () S13) +(declare-fun f30 () S2) +(declare-fun f31 () S4) +(assert (not (= f1 f2))) +(assert (forall ((?v0 Real) (?v1 Real)) (= (f3 (f4 f5 ?v0) ?v1) (* ?v0 ?v1)))) +(assert (forall ((?v0 Int) (?v1 Int)) (= (f6 (f7 f8 ?v0) ?v1) (* ?v0 ?v1)))) +(assert (not (= (f3 f9 (- f10 f11)) (- (f3 f9 f10))))) +(assert (= (f3 f9 f11) 0.0)) +(assert (forall ((?v0 Real)) (= (f3 f9 (+ f11 ?v0)) (- (f3 f9 ?v0))))) +(assert (= (f3 f9 (/ f11 2.0)) 1.0)) +(assert (= (f3 f9 (/ f11 6.0)) (/ 1.0 2.0))) +(assert (= (f3 f9 (* 2.0 f11)) 0.0)) +(assert (= (f3 f9 (* (/ 3.0 2.0) f11)) (- 1.0))) +(assert (let ((?v_0 2.0)) (<= (/ f11 ?v_0) ?v_0))) +(assert (let ((?v_0 2.0)) (< (/ f11 ?v_0) ?v_0))) +(assert (< (- (* 2.0 f11)) f11)) +(assert (< (- (/ f11 2.0)) 0.0)) +(assert (<= 2.0 f11)) +(assert (<= 0.0 (/ f11 2.0))) +(assert (< 0.0 (/ f11 2.0))) +(assert (< f11 4.0)) +(assert (<= 0.0 f11)) +(assert (< 0.0 f11)) +(assert (let ((?v_0 2.0)) (not (= (/ f11 ?v_0) ?v_0)))) +(assert (not (= (/ f11 2.0) 0.0))) +(assert (not (< f11 0.0))) +(assert (not (= f11 0.0))) +(assert (forall ((?v0 S6) (?v1 S6)) (= (= (f13 f14 ?v0) (f13 f14 ?v1)) (= ?v0 ?v1)))) +(assert (forall ((?v0 S6) (?v1 S6)) (= (< (f13 f14 ?v0) (f13 f14 ?v1)) (< (f19 f20 ?v0) (f19 f20 ?v1))))) +(assert (forall ((?v0 S6) (?v1 S6)) (= (<= (f13 f14 ?v0) (f13 f14 ?v1)) (<= (f19 f20 ?v0) (f19 f20 ?v1))))) +(assert (forall ((?v0 S6) (?v1 S6)) (let ((?v_0 (f19 f20 ?v1)) (?v_1 (f19 f20 ?v0))) (=> (<= ?v_1 ?v_0) (= (f13 f14 (f17 f18 (- ?v_0 ?v_1))) (- (f13 f14 ?v1) (f13 f14 ?v0))))))) +(assert (forall ((?v0 Real) (?v1 Real)) (exists ((?v2 Real) (?v3 Real)) (and (= ?v0 (* ?v2 (f3 f15 ?v3))) (= ?v1 (* ?v2 (f3 f9 ?v3))))))) +(assert (< 1.0 (f3 f16 2.0))) +(assert (< 0.0 (f3 f16 2.0))) +(assert (<= 0.0 (f3 f16 2.0))) +(assert (forall ((?v0 Real) (?v1 Real)) (<= 0.0 (f3 f16 (+ (* ?v0 ?v0) (* ?v1 ?v1)))))) +(assert (forall ((?v0 Real) (?v1 Real)) (=> (<= ?v0 ?v1) (<= (f3 f16 ?v0) (f3 f16 ?v1))))) +(assert (forall ((?v0 Real) (?v1 Real)) (=> (< ?v0 ?v1) (< (f3 f16 ?v0) (f3 f16 ?v1))))) +(assert (forall ((?v0 Real)) (let ((?v_0 0.0)) (=> (<= ?v_0 ?v0) (=> (= (f3 f16 ?v0) ?v_0) (= ?v0 ?v_0)))))) +(assert (forall ((?v0 Real)) (=> (< 0.0 ?v0) (< (/ ?v0 (f3 f16 2.0)) ?v0)))) +(assert (forall ((?v0 Real)) (let ((?v_0 0.0)) (=> (<= ?v_0 ?v0) (<= ?v_0 (f3 f16 ?v0)))))) +(assert (forall ((?v0 Real)) (let ((?v_0 1.0)) (=> (<= ?v_0 ?v0) (<= ?v_0 (f3 f16 ?v0)))))) +(check-sat) +(exit) |