--- a/Admin/Windows/launch4j/isabelle.xml Mon Mar 28 17:16:42 2022 +0200
+++ b/Admin/Windows/launch4j/isabelle.xml Tue Mar 29 12:55:25 2022 +0200
@@ -15,7 +15,7 @@
<manifest></manifest>
<icon>{ICON}</icon>
<classPath>
- <mainClass>isabelle.jedit.Main</mainClass>
+ <mainClass>isabelle.jedit.JEdit_Main</mainClass>
{CLASSPATH}
</classPath>
<singleInstance>
--- a/Admin/components/components.sha1 Mon Mar 28 17:16:42 2022 +0200
+++ b/Admin/components/components.sha1 Tue Mar 29 12:55:25 2022 +0200
@@ -1,482 +1,486 @@
-59a71e08c34ff01f3f5c4af00db5e16369527eb7 Haskabelle-2013.tar.gz
-23a96ff4951d72f4024b6e8843262eda988bc151 Haskabelle-2014.tar.gz
-eccff31931fb128c1dd522cfc85495c9b66e67af Haskabelle-2015.tar.gz
-ed740867925dcf58692c8d3e350c28e3b4d4a60f Isabelle_app-20210126.tar.gz
-8ee375cfc38972f080dbc78f07b68dac03efe968 ProofGeneral-3.7.1.1.tar.gz
-847b52c0676b5eb0fbf0476f64fc08c2d72afd0c ProofGeneral-4.1.tar.gz
-8e0b2b432755ef11d964e20637d1bc567d1c0477 ProofGeneral-4.2-1.tar.gz
-51e1e0f399e934020565b2301358452c0bcc8a5e ProofGeneral-4.2-2.tar.gz
-8472221c876a430cde325841ce52893328302712 ProofGeneral-4.2.tar.gz
-ce750fb7f26f6f51c03c6e78096a57b8eaf11d21 apache-commons-20211211.tar.gz
-fbe83b522cb37748ac1b3c943ad71704fdde2f82 bash_process-1.1.1.tar.gz
-bb9ef498cd594b4289221b96146d529c899da209 bash_process-1.1.tar.gz
-81250148f8b89ac3587908fb20645081d7f53207 bash_process-1.2.1.tar.gz
-97b2491382130a841b3bbaebdcf8720c4d4fb227 bash_process-1.2.2.tar.gz
-5c5b7c18cc1dc2a4d22b997dac196da09eaca868 bash_process-1.2.3-1.tar.gz
-48b01bd9436e243ffcb7297f08b498d0c0875ed9 bash_process-1.2.3.tar.gz
-11815d5f3af0de9022e903ed8702c136591f06fe bash_process-1.2.4-1.tar.gz
-729486311833e4eff0fbf2d8041dddad520ca88c bash_process-1.2.4-2.tar.gz
-7ae9ec8aab2d8a811842d9dc67d8bf6c179e11ee bash_process-1.2.4.tar.gz
-9e21f447bfa0431ae5097301d553dd6df3c58218 bash_process-1.2.tar.gz
-a65ce644b6094d41e9f991ef851cf05eff5dd0a9 bib2xhtml-20171221.tar.gz
-4085dd6060a32d7e0d2e3f874c463a9964fd409b bib2xhtml-20190409.tar.gz
-f92cff635dfba5d4d77f469307369226c868542c cakeml-2.0.tar.gz
-e7ffe4238b61a3c1ee87aca4421e7a612e09b836 ci-extras-1.tar.gz
-e880f31f59bd403fb72fcd3b5afb413c3831a21c csdp-6.1-1.tar.gz
-2659100ba8e28e7cb0ecb554178ee5315d4a87f5 csdp-6.1.1.tar.gz
-a2bd94f4f9281dc70dfda66cf28016c2ffef7ed7 csdp-6.1.tar.gz
-ec17080269737e4a97b4424a379924c09b338ca2 csdp-6.2.0.tar.gz
-70105fd6fbfd1a868383fc510772b95234325d31 csdp-6.x.tar.gz
-2f6417b8e96a0e4e8354fe0f1a253c18fb55d9a7 cvc3-2.4.1.tar.gz
-d70bfbe63590153c07709dea7084fbc39c669841 cvc4-1.5-1.tar.gz
-541eac340464c5d34b70bb163ae277cc8829c40f cvc4-1.5-2.tar.gz
-1a44895d2a440091a15cc92d7f77a06a2e432507 cvc4-1.5-3.tar.gz
-c0d8d5929b00e113752d8bf5d11241cd3bccafce cvc4-1.5-4.tar.gz
-ffb0d4739c10eb098eb092baef13eccf94a79bad cvc4-1.5-5.tar.gz
-3682476dc5e915cf260764fa5b86f1ebdab57507 cvc4-1.5.tar.gz
-a5e02b5e990da4275dc5d4480c3b72fc73160c28 cvc4-1.5pre-1.tar.gz
-4d9658fd2688ae8ac78da8fdfcbf85960f871b71 cvc4-1.5pre-2.tar.gz
-b01fdb93f2dc2b8bcfd41c6091d91b37d6e240f9 cvc4-1.5pre-3.tar.gz
-76ff6103b8560f0e2778bbfbdb05f5fa18f850b7 cvc4-1.5pre-4.tar.gz
-03aec2ec5757301c9df149f115d1f4f1d2cafd9e cvc4-1.5pre.tar.gz
-e99560d0b7cb9bafde2b0ec1a3a95af315918a25 cvc4-1.8.tar.gz
-842d9526f37b928cf9e22f141884365129990d63 cygwin-20130110.tar.gz
-cb3b0706d208f104b800267697204f6d82f7b48a cygwin-20130114.tar.gz
-3b44cca04855016d5f8cfb5101b2e0579ab80197 cygwin-20130117.tar.gz
-1fde9ddf0fa4f398965113d0c0c4f0e97c78d008 cygwin-20130716.tar.gz
-a03735a53c2963eb0b453f6a7282d3419f28bf38 cygwin-20130916.tar.gz
-7470125fc46e24ee188bdaacc6d560e01b6fa839 cygwin-20140520.tar.gz
-db4dedae026981c5f001be283180abc1962b79ad cygwin-20140521.tar.gz
-acbc4bf161ad21e96ecfe506266ccdbd288f8a6f cygwin-20140530.tar.gz
-3dc680d9eb85276e8c3e9f6057dad0efe2d5aa41 cygwin-20140626.tar.gz
-8e562dfe57a2f894f9461f4addedb88afa108152 cygwin-20140725.tar.gz
-238d8e30e8e22495b7ea3f5ec36e852e97fe8bbf cygwin-20140813.tar.gz
-629b8fbe35952d1551cd2a7ff08db697f6dff870 cygwin-20141024.tar.gz
-ce93d0b3b2743c4f4e5bba30c2889b3b7bc22f2c cygwin-20150410.tar.gz
-fa712dd5ec66ad16add1779d68aa171ff5694064 cygwin-20151210.tar.gz
-056b843d5a3b69ecf8a52c06f2ce6e696dd275f9 cygwin-20151221.tar.gz
-44f3a530f727e43a9413226c2423c9ca3e4c0cf5 cygwin-20161002.tar.gz
-dd56dd16d861fc6e1a008bf5e9da6f33ed6eb820 cygwin-20161022.tar.gz
-d9ad7aae99d54e3b9813151712eb88a441613f04 cygwin-20161024.tar.gz
-f8eb6a0f722e3cfe3775d1204c5c7063ee1f008e cygwin-20170828.tar.gz
-c22048912b010a5a0b4f2a3eb4d318d6953761e4 cygwin-20170930.tar.gz
-5a3919e665947b820fd7f57787280c7512be3782 cygwin-20180604.tar.gz
-2aa049170e8088de59bd70eed8220f552093932d cygwin-20190320.tar.gz
-fb898e263fcf6f847d97f564fe49ea0760bb453f cygwin-20190322.tar.gz
-cd01fac0ab4fdb50a2bbb6416da3f15a4d540da1 cygwin-20190524.tar.gz
-caa616fbab14c1fce790a87db5c4758c1322cf28 cygwin-20200116.tar.gz
-f053a9ab01f0be9cb456560f7eff66a8e7ba2fd2 cygwin-20200323.tar.gz
-0107343cd2562618629f73b2581168f0045c3234 cygwin-20201002.tar.gz
-a3d481401b633c0ee6abf1da07d75da94076574c cygwin-20201130.tar.gz
-5b1820b87b25d8f2d237515d9854e3ce54ee331b cygwin-20211002.tar.gz
-5dff30be394d88dd83ea584fa6f8063bdcdc21fd cygwin-20211004.tar.gz
-fffaae24da4d274d34b8dc79a76b478b87ec31dd cygwin-20211007.tar.gz
-0fe549949a025d65d52d6deca30554de8fca3b6e e-1.5.tar.gz
-2e293256a134eb8e5b1a283361b15eb812fbfbf1 e-1.6-1.tar.gz
-e1919e72416cbd7ac8de5455caba8901acc7b44d e-1.6-2.tar.gz
-b98a98025d1f7e560ca6864a53296137dae736b4 e-1.6.tar.gz
-c11b25c919e2ec44fe2b6ac2086337b456344e97 e-1.8.tar.gz
-a895a96ec7e6fcc275114bb9b4c92b20fac73dba e-2.0-1.tar.gz
-2ebd7e3067a2cdae3cb8b073345827013978d74b e-2.0-2.tar.gz
-fac44556dd16f666a2c186be30aa6d8c67228bb9 e-2.0-3.tar.gz
-5d36fb62912cfcff7f3b99a6266c578aafc288b7 e-2.0-4.tar.gz
-3223c51c0b16fe00ced4ae903041fff858e61742 e-2.0-5.tar.gz
-6b962a6b4539b7ca4199977973c61a8c98a492e8 e-2.0.tar.gz
-66449a7b68b7d85a7189e10735a81069356123b6 e-2.5-1.tar.gz
-813b66ca151d7a39b5cacb39ab52acabc2a54845 e-2.5.tar.gz
-6e63f9f354b8c06035952845b987080699a12d55 e-2.6-1.tar.gz
-a3bebab5df4294dac2dd7fd2065a94df00e0b3ff e-2.6.tar.gz
-6d34b18ca0aa1e10bab6413045d079188c0e2dfb exec_process-1.0.1.tar.gz
-8b9bffd10e396d965e815418295f2ee2849bea75 exec_process-1.0.2.tar.gz
-e6aada354da11e533af2dee3dcdd96c06479b053 exec_process-1.0.3.tar.gz
-ae7ee5becb26512f18c609e83b34612918bae5f0 exec_process-1.0.tar.gz
-7a4b46752aa60c1ee6c53a2c128dedc8255a4568 flatlaf-0.46-1.tar.gz
-ed5cbc216389b655dac21a19e770a02a96867b85 flatlaf-0.46.tar.gz
-d37b38b9a27a6541c644e22eeebe9a339282173d flatlaf-1.0-rc1.tar.gz
-dac46ce81cee10fb36a9d39b414dec7b7b671545 flatlaf-1.0-rc2.tar.gz
-d94e6da7299004890c04a7b395a3f2d381a3281e flatlaf-1.0-rc3.tar.gz
-7ca3e6a8c9bd837990e64d89e7fa07a7e7cf78ff flatlaf-1.0.tar.gz
-9908e5ab721f1c0035c0ab04dc7ad0bd00a8db27 flatlaf-1.2.tar.gz
-9534b721b7b78344f3225067ee4df28a5440b87e flatlaf-1.6.4.tar.gz
-212a0f1f867511722024cc60156fd71872a16f92 flatlaf-1.6.tar.gz
-f339234ec18369679be0095264e0c0af7762f351 gnu-utils-20210414.tar.gz
-71259aa46134e6cf2c6473b4fc408051b3336490 gnu-utils-20211030.tar.gz
-683acd94761ef460cca1a628f650355370de5afb hol-light-bundle-0.5-126.tar.gz
-989234b3799fe8750f3c24825d1f717c24fb0214 idea-icons-20210508.tar.gz
-20b53cfc3ffc5b15c1eabc91846915b49b4c0367 isabelle_fonts-20151021.tar.gz
-736844204b2ef83974cd9f0a215738b767958c41 isabelle_fonts-20151104.tar.gz
-9502c1aea938021f154adadff254c5c55da344bd isabelle_fonts-20151106.tar.gz
-f5c63689a394b974ac0d365debda577c6fa31c07 isabelle_fonts-20151107.tar.gz
-812101680b75f7fa9ee8e138ea6314fa4824ea2d isabelle_fonts-20151229.tar.gz
-2730e1475c7d655655882e75743e0b451725a274 isabelle_fonts-20151231.tar.gz
-1f004a6bf20088a7e8f1b3d4153aa85de6fc1091 isabelle_fonts-20160101.tar.gz
-379d51ef3b71452dac34ba905def3daa8b590f2e isabelle_fonts-20160102.tar.gz
-878536aab1eaf1a52da560c20bb41ab942971fa3 isabelle_fonts-20160227.tar.gz
-8ff0eedf0191d808ecc58c6b3149a4697f29ab21 isabelle_fonts-20160812-1.tar.gz
-9283e3b0b4c7239f57b18e076ec8bb21021832cb isabelle_fonts-20160812.tar.gz
-620cffeb125e198b91a716da116f754d6cc8174b isabelle_fonts-20160830.tar.gz
-b70690c85c05d0ca5bc29287abd20142f6ddcfb0 isabelle_fonts-20171222.tar.gz
-c17c482e411bbaf992498041a3e1dea80336aaa6 isabelle_fonts-20171230.tar.gz
-3affbb306baff37c360319b21cbaa2cc96ebb282 isabelle_fonts-20180113.tar.gz
-bee32019e5d7cf096ef2ea1d836c732e9a7628cc isabelle_fonts-20181124.tar.gz
-f249bc2c85bd2af9eee509de17187a766b74ab86 isabelle_fonts-20181129.tar.gz
-928b5320073d04d93bcc5bc4347b6d01632b9d45 isabelle_fonts-20190210.tar.gz
-dfcdf9a757b9dc36cee87f82533b43c58ba84abe isabelle_fonts-20190309.tar.gz
-95e3acf038df7fdeeacd8b4769930e6f57bf3692 isabelle_fonts-20190406.tar.gz
-dabcf5085d67c99159007007ff0e9bf775e423d1 isabelle_fonts-20190409.tar.gz
-76827987c70051719e117138858930d42041f57d isabelle_fonts-20190717.tar.gz
-abc8aea3ae471f9313917008ac90e5c1c99e17da isabelle_fonts-20210317.tar.gz
-3ff9195aab574fc75ca3b77af0adb33f9b6d7b74 isabelle_fonts-20210318.tar.gz
-b166b4bd583b6442a5d75eab06f7adbb66919d6d isabelle_fonts-20210319.tar.gz
-9467ad54a9ac10a6e7e8db5458d8d2a5516eba96 isabelle_fonts-20210321.tar.gz
-1f7a0b9829ecac6552b21e995ad0f0ac168634f3 isabelle_fonts-20210322.tar.gz
-667000ce6dd6ea3c2d11601a41c206060468807d isabelle_fonts-20211004.tar.gz
-916adccd2f40c55116b68b92ce1eccb24d4dd9a2 isabelle_setup-20210630.tar.gz
-c611e363287fcc9bdd93c33bef85fa4e66cd3f37 isabelle_setup-20210701.tar.gz
-a0e7527448ef0f7ce164a38a50dc26e98de3cad6 isabelle_setup-20210709.tar.gz
-e413706694b0968245ee15183af2d464814ce0a4 isabelle_setup-20210711.tar.gz
-d2c9fd7b73457a460111edd6eb93a133272935fb isabelle_setup-20210715.tar.gz
-a5f478ba1088f67c2c86dc2fa7764b6d884e5ae5 isabelle_setup-20210716-1.tar.gz
-79fad009cb22aa5e7cb4aed3c810ad5f61790293 isabelle_setup-20210716.tar.gz
-692a39f716998e556ec9559c9ca362fc8fc9d5b6 isabelle_setup-20210717-1.tar.gz
-7322d6d84d75c486a58ed36630431db4499e3232 isabelle_setup-20210717-2.tar.gz
-14f8508bcae9140815bb23e430e26d2cbc504b81 isabelle_setup-20210717.tar.gz
-ca801d5c380ea896ee32b309ff19ae5f34538963 isabelle_setup-20210718.tar.gz
-ac9739e38e4fbbfce1a71a0987a57b22f83922d3 isabelle_setup-20210724-1.tar.gz
-4554679cc8ea31e539655810a14d14216b383d0e isabelle_setup-20210724-2.tar.gz
-127a75ae33e97480d352087fcb9b47a632d77169 isabelle_setup-20210724.tar.gz
-309909ec6d43ae460338e9af54c1b2a48adcb1ec isabelle_setup-20210726.tar.gz
-a14ce46c62c64c3413f3cc9239242e33570d0f3d isabelle_setup-20210922.tar.gz
-b22066a9dcde6f813352dcf6404ac184440a22df isabelle_setup-20211109.tar.gz
-0b2206f914336dec4923dd0479d8cee4b904f544 jdk-11+28.tar.gz
-e12574d838ed55ef2845acf1152329572ab0cc56 jdk-11.0.10+9.tar.gz
-3e05213cad47dbef52804fe329395db9b4e57f39 jdk-11.0.2+9.tar.gz
-06ac8993b5bebd02c70f1bd18ce13075f01115f3 jdk-11.0.3+7.tar.gz
-e7e3cc9b0550c1e5d71197ad8c30f92b622d7183 jdk-11.0.4+11.tar.gz
-49007a84a2643a204ce4406770dfd574b97880d9 jdk-11.0.5+10.tar.gz
-3c250e98eb82f98afc6744ddc9170d293f0677e1 jdk-11.0.6+10.tar.gz
-76cf7a141e15db30bd975089c65c833b58092aa7 jdk-11.0.9+11.tar.gz
-71d19df63816e9be1c4c5eb44aea7a44cfadb319 jdk-11.tar.gz
-72455a2fdb6cced9cd563f4d5d6134f7a6c34913 jdk-15.0.1+9.tar.gz
-e8ae300e61b0b121018456d50010b555bc96ce10 jdk-15.0.2+7.tar.gz
-a426a32ad34014953c0f7d4cc6f44199572e1c38 jdk-17+35.tar.gz
-85707cfe369d0d32accbe3d96a0730c87e8639b5 jdk-17.0.1+12.tar.gz
-699ab2d723b2f1df151a7dbcbdf33ddad36c7978 jdk-17.0.2+8.tar.gz
-8d83e433c1419e0c0cc5fd1762903d11b4a5752c jdk-6u31.tar.gz
-38d2d2a91c66714c18430e136e7e5191af3996e6 jdk-7u11.tar.gz
-d765bc4ad2f34d494429b2a8c1563c49db224944 jdk-7u13.tar.gz
-13a265e4b706ece26fdfa6fc9f4a3dd1366016d2 jdk-7u21.tar.gz
-5080274f8721a18111a7f614793afe6c88726739 jdk-7u25.tar.gz
-dd24d63afd6d17b29ec9cb2b2464d4ff2e02de2c jdk-7u40.tar.gz
-ec740ee9ffd43551ddf1e5b91641405116af6291 jdk-7u6.tar.gz
-71b629b2ce83dbb69967c4785530afce1bec3809 jdk-7u60.tar.gz
-e119f4cbfa2a39a53b9578d165d0dc44b59527b7 jdk-7u65.tar.gz
-d6d1c42989433839fe64f34eb77298ef6627aed4 jdk-7u67.tar.gz
-b66039bc6dc2bdb2992133743005e1e4fc58ae24 jdk-7u72.tar.gz
-d980055694ddfae430ee001c7ee877d535e97252 jdk-7u76.tar.gz
-baa6de37bb6f7a104ce5fe6506bca3d2572d601a jdk-7u80.tar.gz
-7d5b152ac70f720bb9e783fa45ecadcf95069584 jdk-7u9.tar.gz
-baf275a68d3f799a841932e4e9a95a1a604058ae jdk-8u102.tar.gz
-5442f1015a0657259be0590b04572cd933431df7 jdk-8u11.tar.gz
-741de6a4a805a0f9fb917d1845409e99346c2747 jdk-8u112.tar.gz
-ae7df8bd0c18eb40237cf54cc28933f4893b9c92 jdk-8u121.tar.gz
-51531a3a0c16e180ed95cb7d2bd680c2ec0aa553 jdk-8u131.tar.gz
-e45edcf184f608d6f4a7b966d65a5d3289462693 jdk-8u144.tar.gz
-264e806b9300a4fb3b6e15ba0e2c664d4ea698c8 jdk-8u152.tar.gz
-84b04d877a2ea3a4e2082297b540e14f76722bc5 jdk-8u162.tar.gz
-87303a0de3fd595aa3857c8f7cececa036d6ed18 jdk-8u172.tar.gz
-9ae0338a5277d8749b4b4c7e65fc627319d98b27 jdk-8u181.tar.gz
-cfecb1383faaf027ffbabfcd77a0b6a6521e0969 jdk-8u20.tar.gz
-44ffeeae219782d40ce6822b580e608e72fd4c76 jdk-8u31.tar.gz
-c95ebf7777beb3e7ef10c0cf3f734cb78f9828e4 jdk-8u5.tar.gz
-4132cf52d5025bf330d53b96a5c6466fef432377 jdk-8u51.tar.gz
-74df343671deba03be7caa49de217d78b693f817 jdk-8u60.tar.gz
-dfb087bd64c3e5da79430e0ba706b9abc559c090 jdk-8u66.tar.gz
-2ac389babd15aa5ddd1a424c1509e1c459e6fbb1 jdk-8u72.tar.gz
-caa0cf65481b6207f66437576643f41dabae3c83 jdk-8u92.tar.gz
-778fd85c827ec49d2d658a832d20e63916186b0d jedit-20210715.tar.gz
-beb99f2cb0bd4e595c5c597d3970c46aa21616e4 jedit-20210717.tar.gz
-33dd96cd83f2c6a26c035b7a0ee57624655224c5 jedit-20210724.tar.gz
-0e4fd4d66388ddc760fa5fbd8d4a9a3b77cf59c7 jedit-20210802.tar.gz
-258d527819583d740a3aa52dfef630eed389f8c6 jedit-20211019.tar.gz
-f4f3fcbd54488297a5d2fcd23a2595912d5ba80b jedit-20211103.tar.gz
-44775a22f42a9d665696bfb49e53c79371c394b0 jedit_build-20111217.tar.gz
-a242a688810f2bccf24587b0062ce8027bf77fa2 jedit_build-20120304.tar.gz
-4c948dee53f74361c097c08f49a1a5ff9b17bd1d jedit_build-20120307.tar.gz
-9c221fe71af8a063fcffcce21672a97aea0a8d5b jedit_build-20120313.tar.gz
-ed72630f307729df08fdedb095f0af8725f81b9c jedit_build-20120327.tar.gz
-6425f622625024c1de27f3730d6811f6370a19cd jedit_build-20120414.tar.gz
-7b012f725ec1cc102dc259df178d511cc7890bba jedit_build-20120813.tar.gz
-8e1d36f5071e3def2cb281f7fefe9f52352cb88f jedit_build-20120903.tar.gz
-8fa0c67f59beba369ab836562eed4e56382f672a jedit_build-20121201.tar.gz
-06e9be2627ebb95c45a9bcfa025d2eeef086b408 jedit_build-20130104.tar.gz
-c85c0829b8170f25aa65ec6852f505ce2a50639b jedit_build-20130628.tar.gz
-5de3e399be2507f684b49dfd13da45228214bbe4 jedit_build-20130905.tar.gz
-87136818fd5528d97288f5b06bd30c787229eb0d jedit_build-20130910.tar.gz
-c63189cbe39eb8104235a0928f579d9523de78a9 jedit_build-20130925.tar.gz
-65cc13054be20d3a60474d406797c32a976d7db7 jedit_build-20130926.tar.gz
-30ca171f745adf12b65c798c660ac77f9c0f9b4b jedit_build-20131106.tar.gz
-054c1300128f8abd0f46a3e92c756ccdb96ff2af jedit_build-20140405.tar.gz
-4a963665537ea66c69de4d761846541ebdbf69f2 jedit_build-20140511.tar.gz
-a9d637a30f6a87a3583f265da51e63e3619cff52 jedit_build-20140722.tar.gz
-f29391c53d85715f8454e1aaa304fbccc352928f jedit_build-20141018.tar.gz
-d7206d4c9d14d3f4c8115422b7391ffbcc6e80b4 jedit_build-20141026.tar.gz
-f15d36abc1780875a46b6dbd4568e43b776d5db6 jedit_build-20141104.tar.gz
-14ce124c897abfa23713928dc034d6ef0e1c5031 jedit_build-20150228.tar.gz
-b5f7115384c167559211768eb5fe98138864473b jedit_build-20151023.tar.gz
-8ba7b6791be788f316427cdcd805daeaa6935190 jedit_build-20151124.tar.gz
-c70c5a6c565d435a09a8639f8afd3de360708e1c jedit_build-20160330.tar.gz
-d4e1496c257659cf15458d718f4663cdd95a404e jedit_build-20161024.tar.gz
-d806c1c26b571b5b4ef05ea11e8b9cf936518e06 jedit_build-20170319.tar.gz
-7bcb202e13358dd750e964b2f747664428b5d8b3 jedit_build-20180417.tar.gz
-23c8a05687d05a6937f7d600ac3aa19e3ce59c9c jedit_build-20180504.tar.gz
-9c64ee0705e5284b507ca527196081979d689519 jedit_build-20181025.tar.gz
-cfa65bf8720b9b798ffa0986bafbc8437f44f758 jedit_build-20181026.tar.gz
-847492b75b38468268f9ea424d27d53f2d95cef4 jedit_build-20181203.tar.gz
-536a38ed527115b4bf2545a2137ec57b6ffad718 jedit_build-20190120.tar.gz
-58b9f03e5ec0b85f8123c31f5d8092dae5803773 jedit_build-20190130.tar.gz
-ec0aded5f2655e2de8bc4427106729e797584f2f jedit_build-20190224.tar.gz
-1e53598a02ec8d8736b15f480cbe2c84767a7827 jedit_build-20190508.tar.gz
-b9c6f49d3f6ebe2e85a50595ce7412d01a4314ac jedit_build-20190717.tar.gz
-1c753beb93e92e95e99e8ead23a68346bd1af44a jedit_build-20200610.tar.gz
-533b1ee6459f59bcbe4f09e214ad2cb990fb6952 jedit_build-20200908.tar.gz
-f9966b5ed26740bb5b8bddbfe947fcefaea43d4d jedit_build-20201223.tar.gz
-0bdbd36eda5992396e9c6b66aa24259d4dd7559c jedit_build-20210201.tar.gz
-a0744f1948abdde4bfb51dd4769b619e7444baf1 jedit_build-20210510-1.tar.gz
-837d6c8f72ecb21ad59a2544c69aadc9f05684c6 jedit_build-20210510.tar.gz
-7bdae3d24b10261f6cb277446cf9ecab6062bd6f jedit_build-20210708.tar.gz
-0bd2bc2d9a491ba5fc8dd99df27c04f11a72e8fa jfreechart-1.0.14-1.tar.gz
-8122526f1fc362ddae1a328bdbc2152853186fee jfreechart-1.0.14.tar.gz
-d911f63a5c9b4c7335bb73f805cb1711ce017a84 jfreechart-1.5.0.tar.gz
-d84b7d8ef273afec55284327fca7dd20f5ecb77a jfreechart-1.5.1.tar.gz
-6fa0c221ef55919b684449f0111a8112358e94ff jfreechart-1.5.3.tar.gz
-c8a19a36adf6cefa779d85f22ded2f4654e68ea5 jortho-1.0-1.tar.gz
-2155e0bdbd29cd3d2905454de2e7203b9661d239 jortho-1.0-2.tar.gz
-ffe179867cf5ffaabbb6bb096db9bdc0d7110065 jortho-1.0.tar.gz
-6c737137cc597fc920943783382e928ea79e3feb kodkodi-1.2.16.tar.gz
-afb04f4048a87bb888fe7b05b0139cb060c7925b kodkodi-1.5.2-1.tar.gz
-5f95c96bb99927f3a026050f85bd056f37a9189e kodkodi-1.5.2.tar.gz
-0634a946b216f7f07f1a0f7e28cf345daa28828f kodkodi-1.5.3.tar.gz
-52e95b3493d71902f9df89d0bb59d0046a5f0c63 kodkodi-1.5.4-1.tar.gz
-267189c637de26cf304d699cfa95389da002b250 kodkodi-1.5.4.tar.gz
-3ecdade953bb455ed2907952be287d7e5cf6533b kodkodi-1.5.5.tar.gz
-8aa939f5127290eb9a99952d375be9ffbf90c43b kodkodi-1.5.6-1.tar.gz
-6b12bf3f40b16fae8ff22aa39171fa018d107cb3 kodkodi-1.5.6.tar.gz
-c8b2e632f3ab959a4e037833a45e6360c8b72a99 kodkodi-1.5.7.tar.gz
-377e36efb8608e6c828c7718d890e97fde2006a4 linux_app-20131007.tar.gz
-759848095e2ad506083d92b5646947e3c32f27a0 linux_app-20191223.tar.gz
-1a449ce69ac874e21804595d16aaaf5a0d0d0c10 linux_app-20200110.tar.gz
-0aab4f73ff7f5e36f33276547e10897e1e56fb1d macos_app-20130716.tar.gz
-ad5d0e640ce3609a885cecab645389a2204e03bb macos_app-20150916.tar.gz
-400af57ec5cd51f96928d9de00d077524a6fe316 macos_app-20181205.tar.gz
-3bc42b8e22f0be5ec5614f1914066164c83498f8 macos_app-20181208.tar.gz
-5fb1a2d21b220d0e588790c0203ac87c10ed0870 minisat-2.2.1-1.tar.gz
-ae76bfaade3bf72ff6b2d3aafcd52fa45609fcd1 minisat-2.2.1.tar.gz
-eda10c62da927a842c0a8881f726eac85e1cb4f7 naproche-20210122.tar.gz
-edcb517b7578db4eec1b6573b624f291776e11f6 naproche-20210124.tar.gz
-d858eb0ede6aea6b8cc40de63bd3a17f8f9f5300 naproche-20210129.tar.gz
-810ee0f35adada9bf970c33fd80b986ab2255bf3 naproche-20210201.tar.gz
-37bb6d934cfaf157efcadb349a0244d145ce15b0 naproche-20211211.tar.gz
-d098dd0873b1720a77dc4e060267f9a6c93f341a naproche-2d99afe5c349.tar.gz
-4a4e56fd03b7ba4edd38046f853873a90cf55d1a naproche-4ad61140062f.tar.gz
-77252e0b40f89825b9b5935f9f0c4cd5d4e7012a naproche-6d0d76ce2f2a.tar.gz
-9c02ecf93863c3289002c5e5ac45a83e2505984c naproche-755224402e36.tar.gz
-e1b34e8f54e7e5844873612635444fed434718a1 naproche-7d0947a91dd5.tar.gz
-26df569cee9c2fd91b9ac06714afd43f3b37a1dd nunchaku-0.3.tar.gz
-e573f2cbb57eb7b813ed5908753cfe2cb41033ca nunchaku-0.5.tar.gz
-3d7b7690dfd09e25ad56e64b519f61f06e3ab706 old_vampire-4.2.2.tar.gz
-fe57793aca175336deea4f5e9c0d949a197850ac opam-1.2.2.tar.gz
-eb499a18e7040ca0fe1ca824c9dcb2087c47c9ba opam-2.0.3-1.tar.gz
-002f74c9e65e650de2638bf54d7b012b8de76c28 opam-2.0.3.tar.gz
-ddb3b438430d9565adbf5e3d913bd52af8337511 opam-2.0.6.tar.gz
-fc66802c169f44511d3be30435eb89a11e635742 opam-2.0.7.tar.gz
-108e947d17e9aa6170872614492d8f647802f483 opam-2.1.0.tar.gz
-f8d0218371457eabe2b4214427d9570de92ed861 pdfjs-2.12.313.tar.gz
-1c8cb6a8f4cbeaedce2d6d1ba8fc7e2ab3663aeb polyml-5.4.1.tar.gz
-a3f9c159a0ee9a63b7a5d0c835ed9c2c908f8b56 polyml-5.5.0-1.tar.gz
-7d604a99355efbfc1459d80db3279ffa7ade3e39 polyml-5.5.0-2.tar.gz
-b3d776e6744f0cd2773d467bc2cfe1de3d1ca2fd polyml-5.5.0-3.tar.gz
-1812e9fa6d163f63edb93e37d1217640a166cf3e polyml-5.5.0.tar.gz
-36f5b8224f484721749682a3655c796a55a2718d polyml-5.5.1-1.tar.gz
-36f78f27291a9ceb13bf1120b62a45625afd44a6 polyml-5.5.1.tar.gz
-a588640dbf5da9ae15455b02ef709764a48637dc polyml-5.5.2-1.tar.gz
-4b690390946f7bfb777b89eb16d6f08987cca12f polyml-5.5.2-2.tar.gz
-5b31ad8556e41dfd6d5e85f407818be399aa3d2a polyml-5.5.2-3.tar.gz
-532f6e8814752aeb406c62fabcfd2cc05f8a7ca8 polyml-5.5.2.tar.gz
-1c53f699d35c0db6c7cf4ea51f2310adbd1d0dc5 polyml-5.5.3-20150820.tar.gz
-b4b624fb5f34d1dc814fb4fb469fafd7d7ea018a polyml-5.5.3-20150908.tar.gz
-b668e1f43a41608a8eb365c5e19db6c54c72748a polyml-5.5.3-20150911.tar.gz
-1f5cd9b1390dab13861f90dfc06d4180cc107587 polyml-5.5.3-20150916.tar.gz
-f78896e588e8ebb4da57bf0c95210b0f0fa9e551 polyml-5.6-1.tar.gz
-21fa0592b7dfd23269063f42604438165630c0f0 polyml-5.6-2.tar.gz
-03ba81e595fa6d6df069532d67ad3195c37d9046 polyml-5.6-20151123.tar.gz
-822f489c18e38ce5ef979ec21dccce4473e09be6 polyml-5.6-20151206.tar.gz
-bd6a448f0e0d5787747f4f30ca661f9c1868e4a7 polyml-5.6-20151223.tar.gz
-5b70c12c95a90d858f90c1945011289944ea8e17 polyml-5.6-20160118.tar.gz
-5b19dc93082803b82aa553a5cfb3e914606c0ffd polyml-5.6.tar.gz
-80b923fca3533bf291ff9da991f2262a98b68cc4 polyml-5.7-20170217.tar.gz
-381a70cecf0fdee47f6842e2bdb5107ed52adab6 polyml-5.7.1-1.tar.gz
-39dac33b569ac66f76126b8f4edc6d9227bd8a63 polyml-5.7.1-2.tar.gz
-0b896ccc35bd3f2541cd55e6f0ed14637ed9fc68 polyml-5.7.1-4.tar.gz
-262450ac9966abebae2e1d4f9ae703cfe0f5d8d9 polyml-5.7.1-5.tar.gz
-1aeb57877d694db7fe4d4395287cddf3bc77710b polyml-5.7.1-6.tar.gz
-e3e7e20b1e0e5d5d68df4cd4caa1e1a7410d46b6 polyml-5.7.1-7.tar.gz
-1430533c09b17f8be73798a47a5f409d43a04cf4 polyml-5.7.1-8.tar.gz
-171b5783b88522a35e4822b19ef8ba838c04f494 polyml-5.7.1.tar.gz
-5fbcab1da2b5eb97f24da2590ece189d55b3a105 polyml-5.7.tar.gz
-51e024225b460900da5279f0b91b217085f98cf9 polyml-5.8-20190220.tar.gz
-20a83fa58d497b533150defe39bcd4540529b25f polyml-5.8-20190306.tar.gz
-9f0e9cd10df4c3383b063eb076e8b698ca50c3d0 polyml-5.8.1-20191101.tar.gz
-f46deb909d645ac8c140968e4d32b5763beb9add polyml-5.8.1-20191113.tar.gz
-36a40a981b57daae0463d14940a8edf6fa1af179 polyml-5.8.1-20191114.tar.gz
-525b05536b08c11a1eae943fe6818a8622326084 polyml-5.8.1-20191124.tar.gz
-9043828803483ca14df64488dff014ad050a6d34 polyml-5.8.1-20200228.tar.gz
-1186607e2c43b77db86731f12fbedb531ca50a21 polyml-5.8.1-20200708.tar.gz
-22ae16bf7850e73b903d2ca8eb506da05b441cf3 polyml-5.8.1.tar.gz
-cb8e85387315f62dcfc6b21ec378186e58068f76 polyml-5.8.2.tar.gz
-d1fd6eced69dc1df7226432fcb824568e0994ff2 polyml-5.8.tar.gz
-fb40145228f84513a9b083b54678a7d61b9c34c4 polyml-5.9-5d4caa8f7148.tar.gz
-0f1c903b043acf7b221821d8b6374b3f943a122b polyml-5.9-610a153b941d.tar.gz
-5f00a47b8f5180b33e68fcc6c343b061957a0a98 polyml-5.9-960de0cd0795.tar.gz
-7056b285af67902b32f5049349a064f073f05860 polyml-5.9-cc80e2b43c38.tar.gz
-0c396bd6b46ff11a2432b91aab2be0248bd9b0a4 polyml-5.9.tar.gz
-49f1adfacdd6d29fa9f72035d94a31eaac411a97 polyml-test-0a6ebca445fc.tar.gz
-2a8c4421e0a03c0d6ad556b3c36c34eb11568adb polyml-test-1236652ebd55.tar.gz
-8e83fb5088cf265902b8da753a8eac5fe3f6a14b polyml-test-159dc81efc3b.tar.gz
-b80c17398293d0c8f8d9923427176efb33cf2d89 polyml-test-15c840d48c9a.tar.gz
-a0064c157a59e2706e18512a49a6dca914fa17fc polyml-test-1b2dcf8f5202.tar.gz
-4e6543dbbb2b2aa402fd61428e1c045c48f18b47 polyml-test-79534495ee94.tar.gz
-853ab0e9ff2b73790cc80a2d36cbff8b03e50a8e polyml-test-7a7b742897e9.tar.gz
-85bfda83d138e936fdafd68ed3627b1058e5c2c3 polyml-test-7e49fce62e3d.tar.gz
-c629cd499a724bbe37b962f727e4ff340c50299d polyml-test-8529546198aa.tar.gz
-7df4857d73dbc9edda25a6ad329e47639e70fadf polyml-test-8fda4fd22441.tar.gz
-2b7c02b67feb2f44dda6938a7244f4257e7c580c polyml-test-905dae2ebfda.tar.gz
-3dfdc58e5d9b28f038a725e05c9c2f2ce0bb2632 polyml-test-a3cfdf648da-1.tar.gz
-e2f075b0cc709f4f7f6492b725362f9010b2c6d1 polyml-test-a3cfdf648da-2.tar.gz
-33568f69ce813b7405386ddbefa14ad0342bb8f0 polyml-test-a3cfdf648da.tar.gz
-4bedaac4f1fb9a9199aa63695735063c47059003 polyml-test-a444f281ccec.tar.gz
-f3031692edcc5d8028a42861e4e40779f0f9d3e1 polyml-test-b68438d33c69.tar.gz
-cb2318cff6ea9293cd16a4435a4fe28ad9dbe0b8 polyml-test-cf46747fee61.tar.gz
-67ffed2f98864721bdb1e87f0ef250e4c69e6160 polyml-test-d68c6736402e.tar.gz
-b4ceeaac47f3baae41c2491a8368b03217946166 polyml-test-e7a662f8f9c4.tar.gz
-609c7d09d3ed01156ff91261e801e2403ff93729 polyml-test-e8d82343b692.tar.gz
-b6d87466e9b44e8ef4a2fac74c96b139080a506a polyml-test-f54aa41240d0.tar.gz
-d365f3fc11c2427cafc62b3c79951880a1476ebb polyml-test-f86ae3dc1686.tar.gz
-a619177143fea42a464f49bb864665407c07a16c polyml-test-fb4f42af00fa.tar.gz
-53123dc011b2d4b4e8fe307f3c9fa355718ad01a postgresql-42.1.1.tar.gz
-3a5d31377ec07a5069957f5477a4848cfc89a594 postgresql-42.1.4.tar.gz
-7d6ef4320d5163ceb052eb83c1cb3968f099a422 postgresql-42.2.18.tar.gz
-e7cd5c7955e9eb5ce8cd07feb97230b23d2eec40 postgresql-42.2.2.tar.gz
-1aaa38429dc9aa7b1095394d9a7ba3465f8d6e04 postgresql-42.2.24.tar.gz
-231b33c9c3c27d47e3ba01b399103d70509e0731 postgresql-42.2.5.tar.gz
-6335fbc0658e447b5b9bc48c9ad36e33a05bb72b postgresql-42.2.9.tar.gz
-f132329ca1045858ef456cc08b197c9eeea6881b postgresql-9.4.1212.tar.gz
-0885e1f1d8feaca78d2f204b6487e6eec6dfab4b scala-2.10.0.tar.gz
-f7dc7a4e1aea46408fd6e44b8cfacb33af61afbc scala-2.10.1.tar.gz
-207e4916336335386589c918c5e3f3dcc14698f2 scala-2.10.2.tar.gz
-21c8ee274ffa471ab54d4196ecd827bf3d43e591 scala-2.10.3.tar.gz
-d4688ddaf83037ca43b5bf271325fc53ae70e3aa scala-2.10.4.tar.gz
-44d12297a78988ffd34363535e6a8e0d94c1d8b5 scala-2.11.0.tar.gz
-14f20de82b25215a5e055631fb147356400625e6 scala-2.11.1.tar.gz
-4fe9590d08e55760b86755d3fab750e90ac6c380 scala-2.11.2.tar.gz
-27a296495b2167148de06314ed9a942f2dbe23fe scala-2.11.4.tar.gz
-4b24326541161ce65424293ca9da3e7c2c6ab452 scala-2.11.5.tar.gz
-e7cf20e3b27c894c6127c7a37042c1667f57385e scala-2.11.6.tar.gz
-4810c1b00719115df235be1c5991aa6ea7186134 scala-2.11.7.tar.gz
-3eca4b80710996fff87ed1340dcea2c5f6ebf4f7 scala-2.11.8.tar.gz
-0004e53f885fb165b50c95686dec40d99ab0bdbd scala-2.12.0.tar.gz
-059cbdc58d36e3ac1fffcccd9139ecd34f271882 scala-2.12.10.tar.gz
-82056106aa6fd37c159ea76d16096c20a749cccd scala-2.12.11.tar.gz
-fe7ff585acffaad7f0dd4a1d079134d15c26ed0d scala-2.12.12.tar.gz
-74a8c3dab3a25a87357996ab3e95d825dc820fd0 scala-2.12.2.tar.gz
-d66796a68ec3254b46b17b1f8ee5bcc56a93aacf scala-2.12.3.tar.gz
-1636556167dff2c191baf502c23f12e09181ef78 scala-2.12.4.tar.gz
-8171f494bba54fb0d01c887f889ab8fde7171c2a scala-2.12.5.tar.gz
-54c1b06fa2c5f6c2ab3d391ef342c0532cd7f392 scala-2.12.6.tar.gz
-02358f00acc138371324b6248fdb62eed791c6bd scala-2.12.7.tar.gz
-201c05ae9cc382ee6c08af49430e426f6bbe0d5a scala-2.12.8.tar.gz
-a0622fe75c3482ba7dc3ce74d58583b648a1ff0d scala-2.13.4-1.tar.gz
-ec53cce3c5edda1145ec5d13924a5f9418995c15 scala-2.13.4.tar.gz
-f51981baf34c020ad103b262f81796c37abcaa4a scala-2.13.5.tar.gz
-0a7cab09dec357dab7819273f2542ff1c3ea0968 scala-2.13.6.tar.gz
-1f8532dba290c6b2ef364632f3f92e71da93baba scala-2.13.7.tar.gz
-b447017e81600cc5e30dd61b5d4962f6da01aa80 scala-2.8.1.final.tar.gz
-5659440f6b86db29f0c9c0de7249b7e24a647126 scala-2.9.2.tar.gz
-abe7a3b50da529d557a478e9f631a22429418a67 smbc-0.4.1.tar.gz
-cbd491c0feba1d21019d05564e76dd04f592ccb4 spass-3.8ds-1.tar.gz
-edaa1268d82203067657aabcf0371ce7d4b579b9 spass-3.8ds-2.tar.gz
-43b5afbcad575ab6817d2289756ca22fd2ef43a9 spass-3.8ds.tar.gz
-b016a785f1f78855c00d351ff598355c3b87450f sqlite-jdbc-3.18.0-1.tar.gz
-b85b5bc071a59ef2a8326ceb1617d5a9a5be41cf sqlite-jdbc-3.18.0.tar.gz
-e56117a67ab01fb24c7fc054ede3160cefdac5f8 sqlite-jdbc-3.20.0.tar.gz
-27aeac6a91353d69f0438837798ac4ae6f9ff8c5 sqlite-jdbc-3.23.1.tar.gz
-4d17611857fa3a93944c1f159c0fd2a161967aaf sqlite-jdbc-3.27.2.1.tar.gz
-806be457eb79408fcc5a72aeca3f64b2d89a6b63 sqlite-jdbc-3.30.1.tar.gz
-cba2b194114216b226d75d49a70d1bd12b141ac8 sqlite-jdbc-3.32.3.2.tar.gz
-29306acd6ce9f4c87032b2c271c6df035fe7d4d3 sqlite-jdbc-3.34.0.tar.gz
-8a2ca4d02cfedbfe4dad4490f1ed3ddba33a009a sqlite-jdbc-3.36.0.3.tar.gz
-8d20968603f45a2c640081df1ace6a8b0527452a sqlite-jdbc-3.8.11.2.tar.gz
-2369f06e8d095f9ba26df938b1a96000e535afff ssh-java-20161009.tar.gz
-a2335d28b5b95d8d26500a53f1a9303fc5beaf36 ssh-java-20190323.tar.gz
-fdc415284e031ee3eb2f65828cbc6945736fe995 stack-1.9.1.tar.gz
-6e19948ff4a821e2052fc9b3ddd9ae343f4fcdbb stack-1.9.3.tar.gz
-f969443705aa8619e93af5b34ea98d15cd7efaf1 stack-2.1.3.tar.gz
-ebd0221d038966aa8bde075f1b0189ff867b02ca stack-2.5.1.tar.gz
-fa2d882ec45cbc8c7d2f3838b705a8316696dc66 stack-2.7.3.tar.gz
-1f4a2053cc1f34fa36c4d9d2ac906ad4ebc863fd sumatra_pdf-2.1.1.tar.gz
-601e08d048d8e50b0729429c8928b667d9b6bde9 sumatra_pdf-2.3.2.tar.gz
-14d46c2eb1a34821703da59d543433f581e91df3 sumatra_pdf-2.4.tar.gz
-44d67b6742919ce59a42368fc60e2afa210a3e42 sumatra_pdf-2.5.2.tar.gz
-89719a13bc92810730a430973684629426ed1b2a sumatra_pdf-3.0.tar.gz
-f5afcc82f8e734665d38867e99475d3ad0d5ed15 sumatra_pdf-3.1.1.tar.gz
-a45eca5c1277f42f87bb8dc12a3074ccf5488221 sumatra_pdf-3.1.2-1.tar.gz
-3b3239b2e6f8062b90d819f3703e30a50f4fa1e7 sumatra_pdf-3.1.2-2.tar.gz
-8486387f61557147ec06b1f637117c017c8f0528 sumatra_pdf-3.1.2.tar.gz
-e8648878f908e93d64a393231ab21fdac976a9c2 sumatra_pdf-3.3.3.tar.gz
-869ea6d8ea35c8ba68d7fcb028f16b2b7064c5fd vampire-1.0.tar.gz
-399f687b56575b93e730f68c91c989cb48aa34d8 vampire-4.2.2.tar.gz
-0402978ca952f08eea73e483b694928ac402a304 vampire-4.5.1-1.tar.gz
-26d9d171e169c6420a08aa99eda03ef5abb9c545 vampire-4.5.1.tar.gz
-4571c042efd6fc3097e105a528826959acd888a3 vampire-4.6.tar.gz
-98c5c79fef7256db9f64c8feea2edef0a789ce46 verit-2016post.tar.gz
-52ba18a6c96b53c5ae9b179d5a805a0c08f1da6d verit-2020.10-rmx-1.tar.gz
-b6706e74e20e14038e9b38f0acdb5639a134246a verit-2020.10-rmx.tar.gz
-d33e1e36139e86b9e9a48d8b46a6f90d7863a51c verit-2021.06-rmx-1.tar.gz
-c11d1120fcefaec79f099fe2be05b03cd2aed8b9 verit-2021.06-rmx.tar.gz
-b576fd5d89767c1067541d4839fb749c6a68d22c verit-2021.06.1-rmx.tar.gz
-19c6e5677b0a26cbc5805da79d00d06a66b7a671 verit-2021.06.2-rmx.tar.gz
-81d21dfd0ea5c58f375301f5166be9dbf8921a7a windows_app-20130716.tar.gz
-fe15e1079cf5ad86f3cbab4553722a0d20002d11 windows_app-20130905.tar.gz
-e6a43b7b3b21295853bd2a63b27ea20bd6102f5f windows_app-20130906.tar.gz
-8fe004aead867d4c82425afac481142bd3f01fb0 windows_app-20130908.tar.gz
-d273abdc7387462f77a127fa43095eed78332b5c windows_app-20130909.tar.gz
-c368908584e2bca38b3bcb20431d0c69399fc2f0 windows_app-20131130.tar.gz
-c3f5285481a95fde3c1961595b4dd0311ee7ac1f windows_app-20131201.tar.gz
-14807afcf69e50d49663d5b48f4b103f30ae842b windows_app-20150821.tar.gz
-ed106181510e825bf959025d8e0a2fc3f78e7a3f windows_app-20180417.tar.gz
-e809e4ab0d33cb413a7c47dd947e7dbdfcca1c24 windows_app-20181002.tar.gz
-9e96ba128a0617a9020a178781df49d48c997e19 windows_app-20181006.tar.gz
-1c36a840320dfa9bac8af25fc289a4df5ea3eccb xz-java-1.2-1.tar.gz
-2ae13aa17d0dc95ce254a52f1dba10929763a10d xz-java-1.2.tar.gz
-c22196148fcace5443a933238216cff5112948df xz-java-1.5.tar.gz
-4368ee09154dff42666a8c87e072261745619e51 xz-java-1.6.tar.gz
-63f5fa09e92a895cb9aea27d7142abc86c487d25 xz-java-1.8.tar.gz
-a06875bdadd653627a68d2083c5178c1264d8fc6 xz-java-1.9.tar.gz
-4530a1aa6f4498ee3d78d6000fa71a3f63bd077f yices-1.0.28.tar.gz
-3a8f77822278fe9250890e357248bc678d8fac95 z3-3.2-1.tar.gz
-12ae71acde43bd7bed1e005c43034b208c0cba4c z3-3.2.tar.gz
-d94a716502c8503d63952bcb4d4176fac8b28704 z3-4.0.tar.gz
-86e721296c400ada440e4a9ce11b9e845eec9e25 z3-4.3.0.tar.gz
-a8917c31b31c182edeec0aaa48870844960c8a61 z3-4.3.2pre-1.tar.gz
-06b30757ff23aefbc30479785c212685ffd39f4d z3-4.3.2pre.tar.gz
-ed37c451b9b748901295898bf713b24d22cc8c17 z3-4.4.0_4.4.1.tar.gz
-93e7e4bddc6afcf87fe2b6656cfcb1b1acd0a4f8 z3-4.4.0pre-1.tar.gz
-b1bc411c2083fc01577070b56b94514676f53854 z3-4.4.0pre-2.tar.gz
-4c366ab255d2e9343fb635d44d4d55ddd24c76d0 z3-4.4.0pre-3.tar.gz
-517ba7b94c1985416c5b411c8ae84456367eb231 z3-4.4.0pre.tar.gz
-6e5d7a65757cac970eb5ad28cd62130c99f42c23 z3-4.4.1.tar.gz
-aa20745f0b03e606b1a4149598e0c7572b63c657 z3-4.8.3.tar.gz
-9dfeb39c87393af7b6a34118507637aa53aca05e zipperposition-2.0-1.tar.gz
-b884c60653002a7811e3b652ae0515e825d98667 zipperposition-2.0.tar.gz
-b129ec4f8a4474953ec107536298ee08a01fbebc zipperposition-2.1-1.tar.gz
-5f53a77efb5cbe9d0c95d74a1588cc923bd711a7 zipperposition-2.1.tar.gz
+59a71e08c34ff01f3f5c4af00db5e16369527eb7 Haskabelle-2013.tar.gz
+23a96ff4951d72f4024b6e8843262eda988bc151 Haskabelle-2014.tar.gz
+eccff31931fb128c1dd522cfc85495c9b66e67af Haskabelle-2015.tar.gz
+ed740867925dcf58692c8d3e350c28e3b4d4a60f Isabelle_app-20210126.tar.gz
+8ee375cfc38972f080dbc78f07b68dac03efe968 ProofGeneral-3.7.1.1.tar.gz
+847b52c0676b5eb0fbf0476f64fc08c2d72afd0c ProofGeneral-4.1.tar.gz
+8e0b2b432755ef11d964e20637d1bc567d1c0477 ProofGeneral-4.2-1.tar.gz
+51e1e0f399e934020565b2301358452c0bcc8a5e ProofGeneral-4.2-2.tar.gz
+8472221c876a430cde325841ce52893328302712 ProofGeneral-4.2.tar.gz
+ce750fb7f26f6f51c03c6e78096a57b8eaf11d21 apache-commons-20211211.tar.gz
+fbe83b522cb37748ac1b3c943ad71704fdde2f82 bash_process-1.1.1.tar.gz
+bb9ef498cd594b4289221b96146d529c899da209 bash_process-1.1.tar.gz
+81250148f8b89ac3587908fb20645081d7f53207 bash_process-1.2.1.tar.gz
+97b2491382130a841b3bbaebdcf8720c4d4fb227 bash_process-1.2.2.tar.gz
+5c5b7c18cc1dc2a4d22b997dac196da09eaca868 bash_process-1.2.3-1.tar.gz
+48b01bd9436e243ffcb7297f08b498d0c0875ed9 bash_process-1.2.3.tar.gz
+11815d5f3af0de9022e903ed8702c136591f06fe bash_process-1.2.4-1.tar.gz
+729486311833e4eff0fbf2d8041dddad520ca88c bash_process-1.2.4-2.tar.gz
+7ae9ec8aab2d8a811842d9dc67d8bf6c179e11ee bash_process-1.2.4.tar.gz
+9e21f447bfa0431ae5097301d553dd6df3c58218 bash_process-1.2.tar.gz
+a65ce644b6094d41e9f991ef851cf05eff5dd0a9 bib2xhtml-20171221.tar.gz
+4085dd6060a32d7e0d2e3f874c463a9964fd409b bib2xhtml-20190409.tar.gz
+f92cff635dfba5d4d77f469307369226c868542c cakeml-2.0.tar.gz
+e7ffe4238b61a3c1ee87aca4421e7a612e09b836 ci-extras-1.tar.gz
+e880f31f59bd403fb72fcd3b5afb413c3831a21c csdp-6.1-1.tar.gz
+2659100ba8e28e7cb0ecb554178ee5315d4a87f5 csdp-6.1.1.tar.gz
+a2bd94f4f9281dc70dfda66cf28016c2ffef7ed7 csdp-6.1.tar.gz
+ec17080269737e4a97b4424a379924c09b338ca2 csdp-6.2.0.tar.gz
+70105fd6fbfd1a868383fc510772b95234325d31 csdp-6.x.tar.gz
+2f6417b8e96a0e4e8354fe0f1a253c18fb55d9a7 cvc3-2.4.1.tar.gz
+d70bfbe63590153c07709dea7084fbc39c669841 cvc4-1.5-1.tar.gz
+541eac340464c5d34b70bb163ae277cc8829c40f cvc4-1.5-2.tar.gz
+1a44895d2a440091a15cc92d7f77a06a2e432507 cvc4-1.5-3.tar.gz
+c0d8d5929b00e113752d8bf5d11241cd3bccafce cvc4-1.5-4.tar.gz
+ffb0d4739c10eb098eb092baef13eccf94a79bad cvc4-1.5-5.tar.gz
+3682476dc5e915cf260764fa5b86f1ebdab57507 cvc4-1.5.tar.gz
+a5e02b5e990da4275dc5d4480c3b72fc73160c28 cvc4-1.5pre-1.tar.gz
+4d9658fd2688ae8ac78da8fdfcbf85960f871b71 cvc4-1.5pre-2.tar.gz
+b01fdb93f2dc2b8bcfd41c6091d91b37d6e240f9 cvc4-1.5pre-3.tar.gz
+76ff6103b8560f0e2778bbfbdb05f5fa18f850b7 cvc4-1.5pre-4.tar.gz
+03aec2ec5757301c9df149f115d1f4f1d2cafd9e cvc4-1.5pre.tar.gz
+e99560d0b7cb9bafde2b0ec1a3a95af315918a25 cvc4-1.8.tar.gz
+842d9526f37b928cf9e22f141884365129990d63 cygwin-20130110.tar.gz
+cb3b0706d208f104b800267697204f6d82f7b48a cygwin-20130114.tar.gz
+3b44cca04855016d5f8cfb5101b2e0579ab80197 cygwin-20130117.tar.gz
+1fde9ddf0fa4f398965113d0c0c4f0e97c78d008 cygwin-20130716.tar.gz
+a03735a53c2963eb0b453f6a7282d3419f28bf38 cygwin-20130916.tar.gz
+7470125fc46e24ee188bdaacc6d560e01b6fa839 cygwin-20140520.tar.gz
+db4dedae026981c5f001be283180abc1962b79ad cygwin-20140521.tar.gz
+acbc4bf161ad21e96ecfe506266ccdbd288f8a6f cygwin-20140530.tar.gz
+3dc680d9eb85276e8c3e9f6057dad0efe2d5aa41 cygwin-20140626.tar.gz
+8e562dfe57a2f894f9461f4addedb88afa108152 cygwin-20140725.tar.gz
+238d8e30e8e22495b7ea3f5ec36e852e97fe8bbf cygwin-20140813.tar.gz
+629b8fbe35952d1551cd2a7ff08db697f6dff870 cygwin-20141024.tar.gz
+ce93d0b3b2743c4f4e5bba30c2889b3b7bc22f2c cygwin-20150410.tar.gz
+fa712dd5ec66ad16add1779d68aa171ff5694064 cygwin-20151210.tar.gz
+056b843d5a3b69ecf8a52c06f2ce6e696dd275f9 cygwin-20151221.tar.gz
+44f3a530f727e43a9413226c2423c9ca3e4c0cf5 cygwin-20161002.tar.gz
+dd56dd16d861fc6e1a008bf5e9da6f33ed6eb820 cygwin-20161022.tar.gz
+d9ad7aae99d54e3b9813151712eb88a441613f04 cygwin-20161024.tar.gz
+f8eb6a0f722e3cfe3775d1204c5c7063ee1f008e cygwin-20170828.tar.gz
+c22048912b010a5a0b4f2a3eb4d318d6953761e4 cygwin-20170930.tar.gz
+5a3919e665947b820fd7f57787280c7512be3782 cygwin-20180604.tar.gz
+2aa049170e8088de59bd70eed8220f552093932d cygwin-20190320.tar.gz
+fb898e263fcf6f847d97f564fe49ea0760bb453f cygwin-20190322.tar.gz
+cd01fac0ab4fdb50a2bbb6416da3f15a4d540da1 cygwin-20190524.tar.gz
+caa616fbab14c1fce790a87db5c4758c1322cf28 cygwin-20200116.tar.gz
+f053a9ab01f0be9cb456560f7eff66a8e7ba2fd2 cygwin-20200323.tar.gz
+0107343cd2562618629f73b2581168f0045c3234 cygwin-20201002.tar.gz
+a3d481401b633c0ee6abf1da07d75da94076574c cygwin-20201130.tar.gz
+5b1820b87b25d8f2d237515d9854e3ce54ee331b cygwin-20211002.tar.gz
+5dff30be394d88dd83ea584fa6f8063bdcdc21fd cygwin-20211004.tar.gz
+fffaae24da4d274d34b8dc79a76b478b87ec31dd cygwin-20211007.tar.gz
+0fe549949a025d65d52d6deca30554de8fca3b6e e-1.5.tar.gz
+2e293256a134eb8e5b1a283361b15eb812fbfbf1 e-1.6-1.tar.gz
+e1919e72416cbd7ac8de5455caba8901acc7b44d e-1.6-2.tar.gz
+b98a98025d1f7e560ca6864a53296137dae736b4 e-1.6.tar.gz
+c11b25c919e2ec44fe2b6ac2086337b456344e97 e-1.8.tar.gz
+a895a96ec7e6fcc275114bb9b4c92b20fac73dba e-2.0-1.tar.gz
+2ebd7e3067a2cdae3cb8b073345827013978d74b e-2.0-2.tar.gz
+fac44556dd16f666a2c186be30aa6d8c67228bb9 e-2.0-3.tar.gz
+5d36fb62912cfcff7f3b99a6266c578aafc288b7 e-2.0-4.tar.gz
+3223c51c0b16fe00ced4ae903041fff858e61742 e-2.0-5.tar.gz
+6b962a6b4539b7ca4199977973c61a8c98a492e8 e-2.0.tar.gz
+66449a7b68b7d85a7189e10735a81069356123b6 e-2.5-1.tar.gz
+813b66ca151d7a39b5cacb39ab52acabc2a54845 e-2.5.tar.gz
+6e63f9f354b8c06035952845b987080699a12d55 e-2.6-1.tar.gz
+a3bebab5df4294dac2dd7fd2065a94df00e0b3ff e-2.6.tar.gz
+6d34b18ca0aa1e10bab6413045d079188c0e2dfb exec_process-1.0.1.tar.gz
+8b9bffd10e396d965e815418295f2ee2849bea75 exec_process-1.0.2.tar.gz
+e6aada354da11e533af2dee3dcdd96c06479b053 exec_process-1.0.3.tar.gz
+ae7ee5becb26512f18c609e83b34612918bae5f0 exec_process-1.0.tar.gz
+7a4b46752aa60c1ee6c53a2c128dedc8255a4568 flatlaf-0.46-1.tar.gz
+ed5cbc216389b655dac21a19e770a02a96867b85 flatlaf-0.46.tar.gz
+d37b38b9a27a6541c644e22eeebe9a339282173d flatlaf-1.0-rc1.tar.gz
+dac46ce81cee10fb36a9d39b414dec7b7b671545 flatlaf-1.0-rc2.tar.gz
+d94e6da7299004890c04a7b395a3f2d381a3281e flatlaf-1.0-rc3.tar.gz
+7ca3e6a8c9bd837990e64d89e7fa07a7e7cf78ff flatlaf-1.0.tar.gz
+9908e5ab721f1c0035c0ab04dc7ad0bd00a8db27 flatlaf-1.2.tar.gz
+9534b721b7b78344f3225067ee4df28a5440b87e flatlaf-1.6.4.tar.gz
+212a0f1f867511722024cc60156fd71872a16f92 flatlaf-1.6.tar.gz
+f339234ec18369679be0095264e0c0af7762f351 gnu-utils-20210414.tar.gz
+71259aa46134e6cf2c6473b4fc408051b3336490 gnu-utils-20211030.tar.gz
+683acd94761ef460cca1a628f650355370de5afb hol-light-bundle-0.5-126.tar.gz
+989234b3799fe8750f3c24825d1f717c24fb0214 idea-icons-20210508.tar.gz
+20b53cfc3ffc5b15c1eabc91846915b49b4c0367 isabelle_fonts-20151021.tar.gz
+736844204b2ef83974cd9f0a215738b767958c41 isabelle_fonts-20151104.tar.gz
+9502c1aea938021f154adadff254c5c55da344bd isabelle_fonts-20151106.tar.gz
+f5c63689a394b974ac0d365debda577c6fa31c07 isabelle_fonts-20151107.tar.gz
+812101680b75f7fa9ee8e138ea6314fa4824ea2d isabelle_fonts-20151229.tar.gz
+2730e1475c7d655655882e75743e0b451725a274 isabelle_fonts-20151231.tar.gz
+1f004a6bf20088a7e8f1b3d4153aa85de6fc1091 isabelle_fonts-20160101.tar.gz
+379d51ef3b71452dac34ba905def3daa8b590f2e isabelle_fonts-20160102.tar.gz
+878536aab1eaf1a52da560c20bb41ab942971fa3 isabelle_fonts-20160227.tar.gz
+8ff0eedf0191d808ecc58c6b3149a4697f29ab21 isabelle_fonts-20160812-1.tar.gz
+9283e3b0b4c7239f57b18e076ec8bb21021832cb isabelle_fonts-20160812.tar.gz
+620cffeb125e198b91a716da116f754d6cc8174b isabelle_fonts-20160830.tar.gz
+b70690c85c05d0ca5bc29287abd20142f6ddcfb0 isabelle_fonts-20171222.tar.gz
+c17c482e411bbaf992498041a3e1dea80336aaa6 isabelle_fonts-20171230.tar.gz
+3affbb306baff37c360319b21cbaa2cc96ebb282 isabelle_fonts-20180113.tar.gz
+bee32019e5d7cf096ef2ea1d836c732e9a7628cc isabelle_fonts-20181124.tar.gz
+f249bc2c85bd2af9eee509de17187a766b74ab86 isabelle_fonts-20181129.tar.gz
+928b5320073d04d93bcc5bc4347b6d01632b9d45 isabelle_fonts-20190210.tar.gz
+dfcdf9a757b9dc36cee87f82533b43c58ba84abe isabelle_fonts-20190309.tar.gz
+95e3acf038df7fdeeacd8b4769930e6f57bf3692 isabelle_fonts-20190406.tar.gz
+dabcf5085d67c99159007007ff0e9bf775e423d1 isabelle_fonts-20190409.tar.gz
+76827987c70051719e117138858930d42041f57d isabelle_fonts-20190717.tar.gz
+abc8aea3ae471f9313917008ac90e5c1c99e17da isabelle_fonts-20210317.tar.gz
+3ff9195aab574fc75ca3b77af0adb33f9b6d7b74 isabelle_fonts-20210318.tar.gz
+b166b4bd583b6442a5d75eab06f7adbb66919d6d isabelle_fonts-20210319.tar.gz
+9467ad54a9ac10a6e7e8db5458d8d2a5516eba96 isabelle_fonts-20210321.tar.gz
+1f7a0b9829ecac6552b21e995ad0f0ac168634f3 isabelle_fonts-20210322.tar.gz
+667000ce6dd6ea3c2d11601a41c206060468807d isabelle_fonts-20211004.tar.gz
+916adccd2f40c55116b68b92ce1eccb24d4dd9a2 isabelle_setup-20210630.tar.gz
+c611e363287fcc9bdd93c33bef85fa4e66cd3f37 isabelle_setup-20210701.tar.gz
+a0e7527448ef0f7ce164a38a50dc26e98de3cad6 isabelle_setup-20210709.tar.gz
+e413706694b0968245ee15183af2d464814ce0a4 isabelle_setup-20210711.tar.gz
+d2c9fd7b73457a460111edd6eb93a133272935fb isabelle_setup-20210715.tar.gz
+a5f478ba1088f67c2c86dc2fa7764b6d884e5ae5 isabelle_setup-20210716-1.tar.gz
+79fad009cb22aa5e7cb4aed3c810ad5f61790293 isabelle_setup-20210716.tar.gz
+692a39f716998e556ec9559c9ca362fc8fc9d5b6 isabelle_setup-20210717-1.tar.gz
+7322d6d84d75c486a58ed36630431db4499e3232 isabelle_setup-20210717-2.tar.gz
+14f8508bcae9140815bb23e430e26d2cbc504b81 isabelle_setup-20210717.tar.gz
+ca801d5c380ea896ee32b309ff19ae5f34538963 isabelle_setup-20210718.tar.gz
+ac9739e38e4fbbfce1a71a0987a57b22f83922d3 isabelle_setup-20210724-1.tar.gz
+4554679cc8ea31e539655810a14d14216b383d0e isabelle_setup-20210724-2.tar.gz
+127a75ae33e97480d352087fcb9b47a632d77169 isabelle_setup-20210724.tar.gz
+309909ec6d43ae460338e9af54c1b2a48adcb1ec isabelle_setup-20210726.tar.gz
+a14ce46c62c64c3413f3cc9239242e33570d0f3d isabelle_setup-20210922.tar.gz
+b22066a9dcde6f813352dcf6404ac184440a22df isabelle_setup-20211109.tar.gz
+91c5d29e9fa40aee015e8e65ffea043e218c2fc5 isabelle_setup-20220323.tar.gz
+0b2206f914336dec4923dd0479d8cee4b904f544 jdk-11+28.tar.gz
+e12574d838ed55ef2845acf1152329572ab0cc56 jdk-11.0.10+9.tar.gz
+3e05213cad47dbef52804fe329395db9b4e57f39 jdk-11.0.2+9.tar.gz
+06ac8993b5bebd02c70f1bd18ce13075f01115f3 jdk-11.0.3+7.tar.gz
+e7e3cc9b0550c1e5d71197ad8c30f92b622d7183 jdk-11.0.4+11.tar.gz
+49007a84a2643a204ce4406770dfd574b97880d9 jdk-11.0.5+10.tar.gz
+3c250e98eb82f98afc6744ddc9170d293f0677e1 jdk-11.0.6+10.tar.gz
+76cf7a141e15db30bd975089c65c833b58092aa7 jdk-11.0.9+11.tar.gz
+71d19df63816e9be1c4c5eb44aea7a44cfadb319 jdk-11.tar.gz
+72455a2fdb6cced9cd563f4d5d6134f7a6c34913 jdk-15.0.1+9.tar.gz
+e8ae300e61b0b121018456d50010b555bc96ce10 jdk-15.0.2+7.tar.gz
+a426a32ad34014953c0f7d4cc6f44199572e1c38 jdk-17+35.tar.gz
+85707cfe369d0d32accbe3d96a0730c87e8639b5 jdk-17.0.1+12.tar.gz
+699ab2d723b2f1df151a7dbcbdf33ddad36c7978 jdk-17.0.2+8.tar.gz
+8d83e433c1419e0c0cc5fd1762903d11b4a5752c jdk-6u31.tar.gz
+38d2d2a91c66714c18430e136e7e5191af3996e6 jdk-7u11.tar.gz
+d765bc4ad2f34d494429b2a8c1563c49db224944 jdk-7u13.tar.gz
+13a265e4b706ece26fdfa6fc9f4a3dd1366016d2 jdk-7u21.tar.gz
+5080274f8721a18111a7f614793afe6c88726739 jdk-7u25.tar.gz
+dd24d63afd6d17b29ec9cb2b2464d4ff2e02de2c jdk-7u40.tar.gz
+ec740ee9ffd43551ddf1e5b91641405116af6291 jdk-7u6.tar.gz
+71b629b2ce83dbb69967c4785530afce1bec3809 jdk-7u60.tar.gz
+e119f4cbfa2a39a53b9578d165d0dc44b59527b7 jdk-7u65.tar.gz
+d6d1c42989433839fe64f34eb77298ef6627aed4 jdk-7u67.tar.gz
+b66039bc6dc2bdb2992133743005e1e4fc58ae24 jdk-7u72.tar.gz
+d980055694ddfae430ee001c7ee877d535e97252 jdk-7u76.tar.gz
+baa6de37bb6f7a104ce5fe6506bca3d2572d601a jdk-7u80.tar.gz
+7d5b152ac70f720bb9e783fa45ecadcf95069584 jdk-7u9.tar.gz
+baf275a68d3f799a841932e4e9a95a1a604058ae jdk-8u102.tar.gz
+5442f1015a0657259be0590b04572cd933431df7 jdk-8u11.tar.gz
+741de6a4a805a0f9fb917d1845409e99346c2747 jdk-8u112.tar.gz
+ae7df8bd0c18eb40237cf54cc28933f4893b9c92 jdk-8u121.tar.gz
+51531a3a0c16e180ed95cb7d2bd680c2ec0aa553 jdk-8u131.tar.gz
+e45edcf184f608d6f4a7b966d65a5d3289462693 jdk-8u144.tar.gz
+264e806b9300a4fb3b6e15ba0e2c664d4ea698c8 jdk-8u152.tar.gz
+84b04d877a2ea3a4e2082297b540e14f76722bc5 jdk-8u162.tar.gz
+87303a0de3fd595aa3857c8f7cececa036d6ed18 jdk-8u172.tar.gz
+9ae0338a5277d8749b4b4c7e65fc627319d98b27 jdk-8u181.tar.gz
+cfecb1383faaf027ffbabfcd77a0b6a6521e0969 jdk-8u20.tar.gz
+44ffeeae219782d40ce6822b580e608e72fd4c76 jdk-8u31.tar.gz
+c95ebf7777beb3e7ef10c0cf3f734cb78f9828e4 jdk-8u5.tar.gz
+4132cf52d5025bf330d53b96a5c6466fef432377 jdk-8u51.tar.gz
+74df343671deba03be7caa49de217d78b693f817 jdk-8u60.tar.gz
+dfb087bd64c3e5da79430e0ba706b9abc559c090 jdk-8u66.tar.gz
+2ac389babd15aa5ddd1a424c1509e1c459e6fbb1 jdk-8u72.tar.gz
+caa0cf65481b6207f66437576643f41dabae3c83 jdk-8u92.tar.gz
+778fd85c827ec49d2d658a832d20e63916186b0d jedit-20210715.tar.gz
+beb99f2cb0bd4e595c5c597d3970c46aa21616e4 jedit-20210717.tar.gz
+33dd96cd83f2c6a26c035b7a0ee57624655224c5 jedit-20210724.tar.gz
+0e4fd4d66388ddc760fa5fbd8d4a9a3b77cf59c7 jedit-20210802.tar.gz
+258d527819583d740a3aa52dfef630eed389f8c6 jedit-20211019.tar.gz
+f4f3fcbd54488297a5d2fcd23a2595912d5ba80b jedit-20211103.tar.gz
+44775a22f42a9d665696bfb49e53c79371c394b0 jedit_build-20111217.tar.gz
+a242a688810f2bccf24587b0062ce8027bf77fa2 jedit_build-20120304.tar.gz
+4c948dee53f74361c097c08f49a1a5ff9b17bd1d jedit_build-20120307.tar.gz
+9c221fe71af8a063fcffcce21672a97aea0a8d5b jedit_build-20120313.tar.gz
+ed72630f307729df08fdedb095f0af8725f81b9c jedit_build-20120327.tar.gz
+6425f622625024c1de27f3730d6811f6370a19cd jedit_build-20120414.tar.gz
+7b012f725ec1cc102dc259df178d511cc7890bba jedit_build-20120813.tar.gz
+8e1d36f5071e3def2cb281f7fefe9f52352cb88f jedit_build-20120903.tar.gz
+8fa0c67f59beba369ab836562eed4e56382f672a jedit_build-20121201.tar.gz
+06e9be2627ebb95c45a9bcfa025d2eeef086b408 jedit_build-20130104.tar.gz
+c85c0829b8170f25aa65ec6852f505ce2a50639b jedit_build-20130628.tar.gz
+5de3e399be2507f684b49dfd13da45228214bbe4 jedit_build-20130905.tar.gz
+87136818fd5528d97288f5b06bd30c787229eb0d jedit_build-20130910.tar.gz
+c63189cbe39eb8104235a0928f579d9523de78a9 jedit_build-20130925.tar.gz
+65cc13054be20d3a60474d406797c32a976d7db7 jedit_build-20130926.tar.gz
+30ca171f745adf12b65c798c660ac77f9c0f9b4b jedit_build-20131106.tar.gz
+054c1300128f8abd0f46a3e92c756ccdb96ff2af jedit_build-20140405.tar.gz
+4a963665537ea66c69de4d761846541ebdbf69f2 jedit_build-20140511.tar.gz
+a9d637a30f6a87a3583f265da51e63e3619cff52 jedit_build-20140722.tar.gz
+f29391c53d85715f8454e1aaa304fbccc352928f jedit_build-20141018.tar.gz
+d7206d4c9d14d3f4c8115422b7391ffbcc6e80b4 jedit_build-20141026.tar.gz
+f15d36abc1780875a46b6dbd4568e43b776d5db6 jedit_build-20141104.tar.gz
+14ce124c897abfa23713928dc034d6ef0e1c5031 jedit_build-20150228.tar.gz
+b5f7115384c167559211768eb5fe98138864473b jedit_build-20151023.tar.gz
+8ba7b6791be788f316427cdcd805daeaa6935190 jedit_build-20151124.tar.gz
+c70c5a6c565d435a09a8639f8afd3de360708e1c jedit_build-20160330.tar.gz
+d4e1496c257659cf15458d718f4663cdd95a404e jedit_build-20161024.tar.gz
+d806c1c26b571b5b4ef05ea11e8b9cf936518e06 jedit_build-20170319.tar.gz
+7bcb202e13358dd750e964b2f747664428b5d8b3 jedit_build-20180417.tar.gz
+23c8a05687d05a6937f7d600ac3aa19e3ce59c9c jedit_build-20180504.tar.gz
+9c64ee0705e5284b507ca527196081979d689519 jedit_build-20181025.tar.gz
+cfa65bf8720b9b798ffa0986bafbc8437f44f758 jedit_build-20181026.tar.gz
+847492b75b38468268f9ea424d27d53f2d95cef4 jedit_build-20181203.tar.gz
+536a38ed527115b4bf2545a2137ec57b6ffad718 jedit_build-20190120.tar.gz
+58b9f03e5ec0b85f8123c31f5d8092dae5803773 jedit_build-20190130.tar.gz
+ec0aded5f2655e2de8bc4427106729e797584f2f jedit_build-20190224.tar.gz
+1e53598a02ec8d8736b15f480cbe2c84767a7827 jedit_build-20190508.tar.gz
+b9c6f49d3f6ebe2e85a50595ce7412d01a4314ac jedit_build-20190717.tar.gz
+1c753beb93e92e95e99e8ead23a68346bd1af44a jedit_build-20200610.tar.gz
+533b1ee6459f59bcbe4f09e214ad2cb990fb6952 jedit_build-20200908.tar.gz
+f9966b5ed26740bb5b8bddbfe947fcefaea43d4d jedit_build-20201223.tar.gz
+0bdbd36eda5992396e9c6b66aa24259d4dd7559c jedit_build-20210201.tar.gz
+a0744f1948abdde4bfb51dd4769b619e7444baf1 jedit_build-20210510-1.tar.gz
+837d6c8f72ecb21ad59a2544c69aadc9f05684c6 jedit_build-20210510.tar.gz
+7bdae3d24b10261f6cb277446cf9ecab6062bd6f jedit_build-20210708.tar.gz
+0bd2bc2d9a491ba5fc8dd99df27c04f11a72e8fa jfreechart-1.0.14-1.tar.gz
+8122526f1fc362ddae1a328bdbc2152853186fee jfreechart-1.0.14.tar.gz
+d911f63a5c9b4c7335bb73f805cb1711ce017a84 jfreechart-1.5.0.tar.gz
+d84b7d8ef273afec55284327fca7dd20f5ecb77a jfreechart-1.5.1.tar.gz
+6fa0c221ef55919b684449f0111a8112358e94ff jfreechart-1.5.3.tar.gz
+c8a19a36adf6cefa779d85f22ded2f4654e68ea5 jortho-1.0-1.tar.gz
+2155e0bdbd29cd3d2905454de2e7203b9661d239 jortho-1.0-2.tar.gz
+ffe179867cf5ffaabbb6bb096db9bdc0d7110065 jortho-1.0.tar.gz
+6c737137cc597fc920943783382e928ea79e3feb kodkodi-1.2.16.tar.gz
+afb04f4048a87bb888fe7b05b0139cb060c7925b kodkodi-1.5.2-1.tar.gz
+5f95c96bb99927f3a026050f85bd056f37a9189e kodkodi-1.5.2.tar.gz
+0634a946b216f7f07f1a0f7e28cf345daa28828f kodkodi-1.5.3.tar.gz
+52e95b3493d71902f9df89d0bb59d0046a5f0c63 kodkodi-1.5.4-1.tar.gz
+267189c637de26cf304d699cfa95389da002b250 kodkodi-1.5.4.tar.gz
+3ecdade953bb455ed2907952be287d7e5cf6533b kodkodi-1.5.5.tar.gz
+8aa939f5127290eb9a99952d375be9ffbf90c43b kodkodi-1.5.6-1.tar.gz
+6b12bf3f40b16fae8ff22aa39171fa018d107cb3 kodkodi-1.5.6.tar.gz
+c8b2e632f3ab959a4e037833a45e6360c8b72a99 kodkodi-1.5.7.tar.gz
+377e36efb8608e6c828c7718d890e97fde2006a4 linux_app-20131007.tar.gz
+759848095e2ad506083d92b5646947e3c32f27a0 linux_app-20191223.tar.gz
+1a449ce69ac874e21804595d16aaaf5a0d0d0c10 linux_app-20200110.tar.gz
+0aab4f73ff7f5e36f33276547e10897e1e56fb1d macos_app-20130716.tar.gz
+ad5d0e640ce3609a885cecab645389a2204e03bb macos_app-20150916.tar.gz
+400af57ec5cd51f96928d9de00d077524a6fe316 macos_app-20181205.tar.gz
+3bc42b8e22f0be5ec5614f1914066164c83498f8 macos_app-20181208.tar.gz
+5fb1a2d21b220d0e588790c0203ac87c10ed0870 minisat-2.2.1-1.tar.gz
+ae76bfaade3bf72ff6b2d3aafcd52fa45609fcd1 minisat-2.2.1.tar.gz
+eda10c62da927a842c0a8881f726eac85e1cb4f7 naproche-20210122.tar.gz
+edcb517b7578db4eec1b6573b624f291776e11f6 naproche-20210124.tar.gz
+d858eb0ede6aea6b8cc40de63bd3a17f8f9f5300 naproche-20210129.tar.gz
+810ee0f35adada9bf970c33fd80b986ab2255bf3 naproche-20210201.tar.gz
+37bb6d934cfaf157efcadb349a0244d145ce15b0 naproche-20211211.tar.gz
+d098dd0873b1720a77dc4e060267f9a6c93f341a naproche-2d99afe5c349.tar.gz
+4a4e56fd03b7ba4edd38046f853873a90cf55d1a naproche-4ad61140062f.tar.gz
+77252e0b40f89825b9b5935f9f0c4cd5d4e7012a naproche-6d0d76ce2f2a.tar.gz
+9c02ecf93863c3289002c5e5ac45a83e2505984c naproche-755224402e36.tar.gz
+e1b34e8f54e7e5844873612635444fed434718a1 naproche-7d0947a91dd5.tar.gz
+26df569cee9c2fd91b9ac06714afd43f3b37a1dd nunchaku-0.3.tar.gz
+e573f2cbb57eb7b813ed5908753cfe2cb41033ca nunchaku-0.5.tar.gz
+3d7b7690dfd09e25ad56e64b519f61f06e3ab706 old_vampire-4.2.2.tar.gz
+fe57793aca175336deea4f5e9c0d949a197850ac opam-1.2.2.tar.gz
+eb499a18e7040ca0fe1ca824c9dcb2087c47c9ba opam-2.0.3-1.tar.gz
+002f74c9e65e650de2638bf54d7b012b8de76c28 opam-2.0.3.tar.gz
+ddb3b438430d9565adbf5e3d913bd52af8337511 opam-2.0.6.tar.gz
+fc66802c169f44511d3be30435eb89a11e635742 opam-2.0.7.tar.gz
+108e947d17e9aa6170872614492d8f647802f483 opam-2.1.0.tar.gz
+f8d0218371457eabe2b4214427d9570de92ed861 pdfjs-2.12.313.tar.gz
+1c8cb6a8f4cbeaedce2d6d1ba8fc7e2ab3663aeb polyml-5.4.1.tar.gz
+a3f9c159a0ee9a63b7a5d0c835ed9c2c908f8b56 polyml-5.5.0-1.tar.gz
+7d604a99355efbfc1459d80db3279ffa7ade3e39 polyml-5.5.0-2.tar.gz
+b3d776e6744f0cd2773d467bc2cfe1de3d1ca2fd polyml-5.5.0-3.tar.gz
+1812e9fa6d163f63edb93e37d1217640a166cf3e polyml-5.5.0.tar.gz
+36f5b8224f484721749682a3655c796a55a2718d polyml-5.5.1-1.tar.gz
+36f78f27291a9ceb13bf1120b62a45625afd44a6 polyml-5.5.1.tar.gz
+a588640dbf5da9ae15455b02ef709764a48637dc polyml-5.5.2-1.tar.gz
+4b690390946f7bfb777b89eb16d6f08987cca12f polyml-5.5.2-2.tar.gz
+5b31ad8556e41dfd6d5e85f407818be399aa3d2a polyml-5.5.2-3.tar.gz
+532f6e8814752aeb406c62fabcfd2cc05f8a7ca8 polyml-5.5.2.tar.gz
+1c53f699d35c0db6c7cf4ea51f2310adbd1d0dc5 polyml-5.5.3-20150820.tar.gz
+b4b624fb5f34d1dc814fb4fb469fafd7d7ea018a polyml-5.5.3-20150908.tar.gz
+b668e1f43a41608a8eb365c5e19db6c54c72748a polyml-5.5.3-20150911.tar.gz
+1f5cd9b1390dab13861f90dfc06d4180cc107587 polyml-5.5.3-20150916.tar.gz
+f78896e588e8ebb4da57bf0c95210b0f0fa9e551 polyml-5.6-1.tar.gz
+21fa0592b7dfd23269063f42604438165630c0f0 polyml-5.6-2.tar.gz
+03ba81e595fa6d6df069532d67ad3195c37d9046 polyml-5.6-20151123.tar.gz
+822f489c18e38ce5ef979ec21dccce4473e09be6 polyml-5.6-20151206.tar.gz
+bd6a448f0e0d5787747f4f30ca661f9c1868e4a7 polyml-5.6-20151223.tar.gz
+5b70c12c95a90d858f90c1945011289944ea8e17 polyml-5.6-20160118.tar.gz
+5b19dc93082803b82aa553a5cfb3e914606c0ffd polyml-5.6.tar.gz
+80b923fca3533bf291ff9da991f2262a98b68cc4 polyml-5.7-20170217.tar.gz
+381a70cecf0fdee47f6842e2bdb5107ed52adab6 polyml-5.7.1-1.tar.gz
+39dac33b569ac66f76126b8f4edc6d9227bd8a63 polyml-5.7.1-2.tar.gz
+0b896ccc35bd3f2541cd55e6f0ed14637ed9fc68 polyml-5.7.1-4.tar.gz
+262450ac9966abebae2e1d4f9ae703cfe0f5d8d9 polyml-5.7.1-5.tar.gz
+1aeb57877d694db7fe4d4395287cddf3bc77710b polyml-5.7.1-6.tar.gz
+e3e7e20b1e0e5d5d68df4cd4caa1e1a7410d46b6 polyml-5.7.1-7.tar.gz
+1430533c09b17f8be73798a47a5f409d43a04cf4 polyml-5.7.1-8.tar.gz
+171b5783b88522a35e4822b19ef8ba838c04f494 polyml-5.7.1.tar.gz
+5fbcab1da2b5eb97f24da2590ece189d55b3a105 polyml-5.7.tar.gz
+51e024225b460900da5279f0b91b217085f98cf9 polyml-5.8-20190220.tar.gz
+20a83fa58d497b533150defe39bcd4540529b25f polyml-5.8-20190306.tar.gz
+9f0e9cd10df4c3383b063eb076e8b698ca50c3d0 polyml-5.8.1-20191101.tar.gz
+f46deb909d645ac8c140968e4d32b5763beb9add polyml-5.8.1-20191113.tar.gz
+36a40a981b57daae0463d14940a8edf6fa1af179 polyml-5.8.1-20191114.tar.gz
+525b05536b08c11a1eae943fe6818a8622326084 polyml-5.8.1-20191124.tar.gz
+9043828803483ca14df64488dff014ad050a6d34 polyml-5.8.1-20200228.tar.gz
+1186607e2c43b77db86731f12fbedb531ca50a21 polyml-5.8.1-20200708.tar.gz
+22ae16bf7850e73b903d2ca8eb506da05b441cf3 polyml-5.8.1.tar.gz
+cb8e85387315f62dcfc6b21ec378186e58068f76 polyml-5.8.2.tar.gz
+d1fd6eced69dc1df7226432fcb824568e0994ff2 polyml-5.8.tar.gz
+fb40145228f84513a9b083b54678a7d61b9c34c4 polyml-5.9-5d4caa8f7148.tar.gz
+0f1c903b043acf7b221821d8b6374b3f943a122b polyml-5.9-610a153b941d.tar.gz
+5f00a47b8f5180b33e68fcc6c343b061957a0a98 polyml-5.9-960de0cd0795.tar.gz
+7056b285af67902b32f5049349a064f073f05860 polyml-5.9-cc80e2b43c38.tar.gz
+0c396bd6b46ff11a2432b91aab2be0248bd9b0a4 polyml-5.9.tar.gz
+49f1adfacdd6d29fa9f72035d94a31eaac411a97 polyml-test-0a6ebca445fc.tar.gz
+2a8c4421e0a03c0d6ad556b3c36c34eb11568adb polyml-test-1236652ebd55.tar.gz
+8e83fb5088cf265902b8da753a8eac5fe3f6a14b polyml-test-159dc81efc3b.tar.gz
+b80c17398293d0c8f8d9923427176efb33cf2d89 polyml-test-15c840d48c9a.tar.gz
+a0064c157a59e2706e18512a49a6dca914fa17fc polyml-test-1b2dcf8f5202.tar.gz
+4e6543dbbb2b2aa402fd61428e1c045c48f18b47 polyml-test-79534495ee94.tar.gz
+853ab0e9ff2b73790cc80a2d36cbff8b03e50a8e polyml-test-7a7b742897e9.tar.gz
+85bfda83d138e936fdafd68ed3627b1058e5c2c3 polyml-test-7e49fce62e3d.tar.gz
+c629cd499a724bbe37b962f727e4ff340c50299d polyml-test-8529546198aa.tar.gz
+7df4857d73dbc9edda25a6ad329e47639e70fadf polyml-test-8fda4fd22441.tar.gz
+2b7c02b67feb2f44dda6938a7244f4257e7c580c polyml-test-905dae2ebfda.tar.gz
+3dfdc58e5d9b28f038a725e05c9c2f2ce0bb2632 polyml-test-a3cfdf648da-1.tar.gz
+e2f075b0cc709f4f7f6492b725362f9010b2c6d1 polyml-test-a3cfdf648da-2.tar.gz
+33568f69ce813b7405386ddbefa14ad0342bb8f0 polyml-test-a3cfdf648da.tar.gz
+4bedaac4f1fb9a9199aa63695735063c47059003 polyml-test-a444f281ccec.tar.gz
+f3031692edcc5d8028a42861e4e40779f0f9d3e1 polyml-test-b68438d33c69.tar.gz
+cb2318cff6ea9293cd16a4435a4fe28ad9dbe0b8 polyml-test-cf46747fee61.tar.gz
+67ffed2f98864721bdb1e87f0ef250e4c69e6160 polyml-test-d68c6736402e.tar.gz
+b4ceeaac47f3baae41c2491a8368b03217946166 polyml-test-e7a662f8f9c4.tar.gz
+609c7d09d3ed01156ff91261e801e2403ff93729 polyml-test-e8d82343b692.tar.gz
+b6d87466e9b44e8ef4a2fac74c96b139080a506a polyml-test-f54aa41240d0.tar.gz
+d365f3fc11c2427cafc62b3c79951880a1476ebb polyml-test-f86ae3dc1686.tar.gz
+a619177143fea42a464f49bb864665407c07a16c polyml-test-fb4f42af00fa.tar.gz
+53123dc011b2d4b4e8fe307f3c9fa355718ad01a postgresql-42.1.1.tar.gz
+3a5d31377ec07a5069957f5477a4848cfc89a594 postgresql-42.1.4.tar.gz
+7d6ef4320d5163ceb052eb83c1cb3968f099a422 postgresql-42.2.18.tar.gz
+e7cd5c7955e9eb5ce8cd07feb97230b23d2eec40 postgresql-42.2.2.tar.gz
+1aaa38429dc9aa7b1095394d9a7ba3465f8d6e04 postgresql-42.2.24.tar.gz
+231b33c9c3c27d47e3ba01b399103d70509e0731 postgresql-42.2.5.tar.gz
+6335fbc0658e447b5b9bc48c9ad36e33a05bb72b postgresql-42.2.9.tar.gz
+f132329ca1045858ef456cc08b197c9eeea6881b postgresql-9.4.1212.tar.gz
+0885e1f1d8feaca78d2f204b6487e6eec6dfab4b scala-2.10.0.tar.gz
+f7dc7a4e1aea46408fd6e44b8cfacb33af61afbc scala-2.10.1.tar.gz
+207e4916336335386589c918c5e3f3dcc14698f2 scala-2.10.2.tar.gz
+21c8ee274ffa471ab54d4196ecd827bf3d43e591 scala-2.10.3.tar.gz
+d4688ddaf83037ca43b5bf271325fc53ae70e3aa scala-2.10.4.tar.gz
+44d12297a78988ffd34363535e6a8e0d94c1d8b5 scala-2.11.0.tar.gz
+14f20de82b25215a5e055631fb147356400625e6 scala-2.11.1.tar.gz
+4fe9590d08e55760b86755d3fab750e90ac6c380 scala-2.11.2.tar.gz
+27a296495b2167148de06314ed9a942f2dbe23fe scala-2.11.4.tar.gz
+4b24326541161ce65424293ca9da3e7c2c6ab452 scala-2.11.5.tar.gz
+e7cf20e3b27c894c6127c7a37042c1667f57385e scala-2.11.6.tar.gz
+4810c1b00719115df235be1c5991aa6ea7186134 scala-2.11.7.tar.gz
+3eca4b80710996fff87ed1340dcea2c5f6ebf4f7 scala-2.11.8.tar.gz
+0004e53f885fb165b50c95686dec40d99ab0bdbd scala-2.12.0.tar.gz
+059cbdc58d36e3ac1fffcccd9139ecd34f271882 scala-2.12.10.tar.gz
+82056106aa6fd37c159ea76d16096c20a749cccd scala-2.12.11.tar.gz
+fe7ff585acffaad7f0dd4a1d079134d15c26ed0d scala-2.12.12.tar.gz
+74a8c3dab3a25a87357996ab3e95d825dc820fd0 scala-2.12.2.tar.gz
+d66796a68ec3254b46b17b1f8ee5bcc56a93aacf scala-2.12.3.tar.gz
+1636556167dff2c191baf502c23f12e09181ef78 scala-2.12.4.tar.gz
+8171f494bba54fb0d01c887f889ab8fde7171c2a scala-2.12.5.tar.gz
+54c1b06fa2c5f6c2ab3d391ef342c0532cd7f392 scala-2.12.6.tar.gz
+02358f00acc138371324b6248fdb62eed791c6bd scala-2.12.7.tar.gz
+201c05ae9cc382ee6c08af49430e426f6bbe0d5a scala-2.12.8.tar.gz
+a0622fe75c3482ba7dc3ce74d58583b648a1ff0d scala-2.13.4-1.tar.gz
+ec53cce3c5edda1145ec5d13924a5f9418995c15 scala-2.13.4.tar.gz
+f51981baf34c020ad103b262f81796c37abcaa4a scala-2.13.5.tar.gz
+0a7cab09dec357dab7819273f2542ff1c3ea0968 scala-2.13.6.tar.gz
+1f8532dba290c6b2ef364632f3f92e71da93baba scala-2.13.7.tar.gz
+b447017e81600cc5e30dd61b5d4962f6da01aa80 scala-2.8.1.final.tar.gz
+5659440f6b86db29f0c9c0de7249b7e24a647126 scala-2.9.2.tar.gz
+abe7a3b50da529d557a478e9f631a22429418a67 smbc-0.4.1.tar.gz
+cbd491c0feba1d21019d05564e76dd04f592ccb4 spass-3.8ds-1.tar.gz
+edaa1268d82203067657aabcf0371ce7d4b579b9 spass-3.8ds-2.tar.gz
+43b5afbcad575ab6817d2289756ca22fd2ef43a9 spass-3.8ds.tar.gz
+b016a785f1f78855c00d351ff598355c3b87450f sqlite-jdbc-3.18.0-1.tar.gz
+b85b5bc071a59ef2a8326ceb1617d5a9a5be41cf sqlite-jdbc-3.18.0.tar.gz
+e56117a67ab01fb24c7fc054ede3160cefdac5f8 sqlite-jdbc-3.20.0.tar.gz
+27aeac6a91353d69f0438837798ac4ae6f9ff8c5 sqlite-jdbc-3.23.1.tar.gz
+4d17611857fa3a93944c1f159c0fd2a161967aaf sqlite-jdbc-3.27.2.1.tar.gz
+806be457eb79408fcc5a72aeca3f64b2d89a6b63 sqlite-jdbc-3.30.1.tar.gz
+cba2b194114216b226d75d49a70d1bd12b141ac8 sqlite-jdbc-3.32.3.2.tar.gz
+29306acd6ce9f4c87032b2c271c6df035fe7d4d3 sqlite-jdbc-3.34.0.tar.gz
+8a2ca4d02cfedbfe4dad4490f1ed3ddba33a009a sqlite-jdbc-3.36.0.3.tar.gz
+8d20968603f45a2c640081df1ace6a8b0527452a sqlite-jdbc-3.8.11.2.tar.gz
+2369f06e8d095f9ba26df938b1a96000e535afff ssh-java-20161009.tar.gz
+a2335d28b5b95d8d26500a53f1a9303fc5beaf36 ssh-java-20190323.tar.gz
+fdc415284e031ee3eb2f65828cbc6945736fe995 stack-1.9.1.tar.gz
+6e19948ff4a821e2052fc9b3ddd9ae343f4fcdbb stack-1.9.3.tar.gz
+f969443705aa8619e93af5b34ea98d15cd7efaf1 stack-2.1.3.tar.gz
+ebd0221d038966aa8bde075f1b0189ff867b02ca stack-2.5.1.tar.gz
+fa2d882ec45cbc8c7d2f3838b705a8316696dc66 stack-2.7.3.tar.gz
+1f4a2053cc1f34fa36c4d9d2ac906ad4ebc863fd sumatra_pdf-2.1.1.tar.gz
+601e08d048d8e50b0729429c8928b667d9b6bde9 sumatra_pdf-2.3.2.tar.gz
+14d46c2eb1a34821703da59d543433f581e91df3 sumatra_pdf-2.4.tar.gz
+44d67b6742919ce59a42368fc60e2afa210a3e42 sumatra_pdf-2.5.2.tar.gz
+89719a13bc92810730a430973684629426ed1b2a sumatra_pdf-3.0.tar.gz
+f5afcc82f8e734665d38867e99475d3ad0d5ed15 sumatra_pdf-3.1.1.tar.gz
+a45eca5c1277f42f87bb8dc12a3074ccf5488221 sumatra_pdf-3.1.2-1.tar.gz
+3b3239b2e6f8062b90d819f3703e30a50f4fa1e7 sumatra_pdf-3.1.2-2.tar.gz
+8486387f61557147ec06b1f637117c017c8f0528 sumatra_pdf-3.1.2.tar.gz
+e8648878f908e93d64a393231ab21fdac976a9c2 sumatra_pdf-3.3.3.tar.gz
+869ea6d8ea35c8ba68d7fcb028f16b2b7064c5fd vampire-1.0.tar.gz
+399f687b56575b93e730f68c91c989cb48aa34d8 vampire-4.2.2.tar.gz
+0402978ca952f08eea73e483b694928ac402a304 vampire-4.5.1-1.tar.gz
+26d9d171e169c6420a08aa99eda03ef5abb9c545 vampire-4.5.1.tar.gz
+4571c042efd6fc3097e105a528826959acd888a3 vampire-4.6.tar.gz
+98c5c79fef7256db9f64c8feea2edef0a789ce46 verit-2016post.tar.gz
+52ba18a6c96b53c5ae9b179d5a805a0c08f1da6d verit-2020.10-rmx-1.tar.gz
+b6706e74e20e14038e9b38f0acdb5639a134246a verit-2020.10-rmx.tar.gz
+d33e1e36139e86b9e9a48d8b46a6f90d7863a51c verit-2021.06-rmx-1.tar.gz
+c11d1120fcefaec79f099fe2be05b03cd2aed8b9 verit-2021.06-rmx.tar.gz
+b576fd5d89767c1067541d4839fb749c6a68d22c verit-2021.06.1-rmx.tar.gz
+19c6e5677b0a26cbc5805da79d00d06a66b7a671 verit-2021.06.2-rmx.tar.gz
+c4666a6d8080b5e376b50471fd2d9edeb1f9c988 vscode_extension-20220324.tar.gz
+86c952d739d1eb868be88898982d4870a3d8c2dc vscode_extension-20220325.tar.gz
+67b271186631f84efd97246bf85f6d8cfaa5edfd vscodium-1.65.2.tar.gz
+81d21dfd0ea5c58f375301f5166be9dbf8921a7a windows_app-20130716.tar.gz
+fe15e1079cf5ad86f3cbab4553722a0d20002d11 windows_app-20130905.tar.gz
+e6a43b7b3b21295853bd2a63b27ea20bd6102f5f windows_app-20130906.tar.gz
+8fe004aead867d4c82425afac481142bd3f01fb0 windows_app-20130908.tar.gz
+d273abdc7387462f77a127fa43095eed78332b5c windows_app-20130909.tar.gz
+c368908584e2bca38b3bcb20431d0c69399fc2f0 windows_app-20131130.tar.gz
+c3f5285481a95fde3c1961595b4dd0311ee7ac1f windows_app-20131201.tar.gz
+14807afcf69e50d49663d5b48f4b103f30ae842b windows_app-20150821.tar.gz
+ed106181510e825bf959025d8e0a2fc3f78e7a3f windows_app-20180417.tar.gz
+e809e4ab0d33cb413a7c47dd947e7dbdfcca1c24 windows_app-20181002.tar.gz
+9e96ba128a0617a9020a178781df49d48c997e19 windows_app-20181006.tar.gz
+1c36a840320dfa9bac8af25fc289a4df5ea3eccb xz-java-1.2-1.tar.gz
+2ae13aa17d0dc95ce254a52f1dba10929763a10d xz-java-1.2.tar.gz
+c22196148fcace5443a933238216cff5112948df xz-java-1.5.tar.gz
+4368ee09154dff42666a8c87e072261745619e51 xz-java-1.6.tar.gz
+63f5fa09e92a895cb9aea27d7142abc86c487d25 xz-java-1.8.tar.gz
+a06875bdadd653627a68d2083c5178c1264d8fc6 xz-java-1.9.tar.gz
+4530a1aa6f4498ee3d78d6000fa71a3f63bd077f yices-1.0.28.tar.gz
+3a8f77822278fe9250890e357248bc678d8fac95 z3-3.2-1.tar.gz
+12ae71acde43bd7bed1e005c43034b208c0cba4c z3-3.2.tar.gz
+d94a716502c8503d63952bcb4d4176fac8b28704 z3-4.0.tar.gz
+86e721296c400ada440e4a9ce11b9e845eec9e25 z3-4.3.0.tar.gz
+a8917c31b31c182edeec0aaa48870844960c8a61 z3-4.3.2pre-1.tar.gz
+06b30757ff23aefbc30479785c212685ffd39f4d z3-4.3.2pre.tar.gz
+ed37c451b9b748901295898bf713b24d22cc8c17 z3-4.4.0_4.4.1.tar.gz
+93e7e4bddc6afcf87fe2b6656cfcb1b1acd0a4f8 z3-4.4.0pre-1.tar.gz
+b1bc411c2083fc01577070b56b94514676f53854 z3-4.4.0pre-2.tar.gz
+4c366ab255d2e9343fb635d44d4d55ddd24c76d0 z3-4.4.0pre-3.tar.gz
+517ba7b94c1985416c5b411c8ae84456367eb231 z3-4.4.0pre.tar.gz
+6e5d7a65757cac970eb5ad28cd62130c99f42c23 z3-4.4.1.tar.gz
+aa20745f0b03e606b1a4149598e0c7572b63c657 z3-4.8.3.tar.gz
+9dfeb39c87393af7b6a34118507637aa53aca05e zipperposition-2.0-1.tar.gz
+b884c60653002a7811e3b652ae0515e825d98667 zipperposition-2.0.tar.gz
+b129ec4f8a4474953ec107536298ee08a01fbebc zipperposition-2.1-1.tar.gz
+5f53a77efb5cbe9d0c95d74a1588cc923bd711a7 zipperposition-2.1.tar.gz
--- a/Admin/components/main Mon Mar 28 17:16:42 2022 +0200
+++ b/Admin/components/main Tue Mar 29 12:55:25 2022 +0200
@@ -9,7 +9,7 @@
flatlaf-1.6.4
idea-icons-20210508
isabelle_fonts-20211004
-isabelle_setup-20211109
+isabelle_setup-20220323
jdk-17.0.2+8
jedit-20211103
jfreechart-1.5.3
@@ -29,6 +29,8 @@
stack-2.7.3
vampire-4.6
verit-2021.06.2-rmx
+vscode_extension-20220325
+vscodium-1.65.2
xz-java-1.9
z3-4.4.0_4.4.1
zipperposition-2.1-1
--- a/Admin/lib/Tools/build_setup Mon Mar 28 17:16:42 2022 +0200
+++ b/Admin/lib/Tools/build_setup Tue Mar 29 12:55:25 2022 +0200
@@ -11,7 +11,7 @@
function usage()
{
echo
- echo "Usage: isabelle $PRG [OPTIONS] COMPONENT_DIR"
+ echo "Usage: isabelle $PRG COMPONENT_DIR"
echo
echo " Build component for Isabelle/Java setup tool."
echo
--- a/NEWS Mon Mar 28 17:16:42 2022 +0200
+++ b/NEWS Tue Mar 29 12:55:25 2022 +0200
@@ -15,9 +15,16 @@
*** Isabelle/VSCode Prover IDE ***
-* Command-line tools "isabelle vscode_setup" and "isabelle vscode"
-provide convenient access to a well-defined version of VSCodium
-(open-source distribution of VSCode without MS telemetry).
+* VSCodium, an open-source distribution of VSCode without MS telemetry,
+has been bundled with Isabelle as add-on component. The command-line
+tool "isabelle vscode" automatically configures it as Isabelle/VSCode
+and starts the application. This includes special support for the
+UTF-8-Isabelle encoding and the corresponding Isabelle fonts.
+
+* Command-line tools "isabelle electron" and "isabelle node" provide
+access to the underlying technologies of VSCodium, for use in other
+applications. This essentially provides a freely programmable Chromium
+browser engine that works uniformly on all platforms.
*** HOL ***
@@ -79,6 +86,8 @@
* Meson
- Added support for polymorphic "using" facts. Minor INCOMPATIBILITY.
+* (Co)datatype package:
+ - Lemma map_ident_strong is now generated for all BNFs.
*** System ***
--- a/etc/build.props Mon Mar 28 17:16:42 2022 +0200
+++ b/etc/build.props Tue Mar 29 12:55:25 2022 +0200
@@ -1,6 +1,6 @@
title = Isabelle/Scala
module = $ISABELLE_HOME/lib/classes/isabelle.jar
-main = isabelle.jedit.Main
+main = isabelle.jedit.JEdit_Main
resources = \
lib/services/java.nio.charset.spi.CharsetProvider:META-INF/services/ \
lib/logo/isabelle_transparent-32.gif:isabelle/ \
@@ -219,11 +219,10 @@
src/Tools/VSCode/src/lsp.scala \
src/Tools/VSCode/src/preview_panel.scala \
src/Tools/VSCode/src/state_panel.scala \
- src/Tools/VSCode/src/textmate_grammar.scala \
+ src/Tools/VSCode/src/vscode_main.scala \
src/Tools/VSCode/src/vscode_model.scala \
src/Tools/VSCode/src/vscode_rendering.scala \
src/Tools/VSCode/src/vscode_resources.scala \
- src/Tools/VSCode/src/vscode_setup.scala \
src/Tools/VSCode/src/vscode_spell_checker.scala \
src/Tools/jEdit/src/active.scala \
src/Tools/jEdit/src/base_plugin.scala \
@@ -247,6 +246,7 @@
src/Tools/jEdit/src/jedit_bibtex.scala \
src/Tools/jEdit/src/jedit_editor.scala \
src/Tools/jEdit/src/jedit_lib.scala \
+ src/Tools/jEdit/src/jedit_main.scala \
src/Tools/jEdit/src/jedit_options.scala \
src/Tools/jEdit/src/jedit_plugins.scala \
src/Tools/jEdit/src/jedit_rendering.scala \
@@ -254,7 +254,6 @@
src/Tools/jEdit/src/jedit_sessions.scala \
src/Tools/jEdit/src/jedit_spell_checker.scala \
src/Tools/jEdit/src/keymap_merge.scala \
- src/Tools/jEdit/src/main.scala \
src/Tools/jEdit/src/main_plugin.scala \
src/Tools/jEdit/src/monitor_dockable.scala \
src/Tools/jEdit/src/output_dockable.scala \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/Tools/electron Tue Mar 29 12:55:25 2022 +0200
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+#
+# Author: Makarius
+#
+# DESCRIPTION: run the Electron.js framework within the Isabelle environment
+
+if [ -z "$ISABELLE_VSCODIUM_ELECTRON" ]; then
+ echo '*** Undefined $ISABELLE_VSCODIUM_ELECTRON: missing "vscodium" component'
+ exit 2
+else
+ exec "$ISABELLE_VSCODIUM_ELECTRON" "$@"
+fi
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/Tools/node Tue Mar 29 12:55:25 2022 +0200
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+#
+# Author: Makarius
+#
+# DESCRIPTION: run the Node.js framework within the Isabelle environment
+
+if [ -z "$ISABELLE_VSCODIUM_ELECTRON" ]; then
+ echo '*** Undefined $ISABELLE_VSCODIUM_ELECTRON: missing "vscodium" component'
+ exit 2
+else
+ export ELECTRON_RUN_AS_NODE=1
+ exec "$ISABELLE_VSCODIUM_ELECTRON" "$@"
+fi
--- a/lib/Tools/vscode Mon Mar 28 17:16:42 2022 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-#!/usr/bin/env bash
-#
-# Author: Makarius
-#
-# DESCRIPTION: run Isabelle/VSCode (requires "vscodium-X.YY.Z" component)
-
-isabelle vscode_setup || exit "$?"
-
-exec "$ISABELLE_VSCODIUM_HOME/vscodium" \
- --locale en-US \
- --user-data-dir "$(platform_path "$ISABELLE_VSCODE_SETTINGS"/user-data)" \
- --extensions-dir "$(platform_path "$ISABELLE_VSCODE_SETTINGS"/extensions)" \
- "$@"
--- a/src/Doc/Datatypes/Datatypes.thy Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Doc/Datatypes/Datatypes.thy Tue Mar 29 12:55:25 2022 +0200
@@ -982,6 +982,9 @@
\item[\<open>t.\<close>\hthm{map_ident}\rm:] ~ \\
@{thm list.map_ident[no_vars]}
+\item[\<open>t.\<close>\hthm{map_ident_strong}\rm:] ~ \\
+@{thm list.map_ident_strong[no_vars]}
+
\item[\<open>t.\<close>\hthm{map_transfer} \<open>[transfer_rule]\<close>\rm:] ~ \\
@{thm list.map_transfer[no_vars]} \\
The \<open>[transfer_rule]\<close> attribute is set by the \<open>transfer\<close> plugin
--- a/src/Doc/JEdit/JEdit.thy Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Doc/JEdit/JEdit.thy Tue Mar 29 12:55:25 2022 +0200
@@ -263,7 +263,7 @@
session \<^verbatim>\<open>ROOT\<close> entry in the editor to facilitate editing of the main
session. The \<^verbatim>\<open>-A\<close> option specifies and alternative ancestor session for
option \<^verbatim>\<open>-R\<close>: this allows to restructure the hierarchy of session images on
- the spot.
+ the spot. Options \<^verbatim>\<open>-R\<close> and \<^verbatim>\<open>-l\<close> are mutually exclusive.
The \<^verbatim>\<open>-i\<close> option includes additional sessions into the name-space of
theories: multiple occurrences are possible.
--- a/src/Doc/System/Environment.thy Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Doc/System/Environment.thy Tue Mar 29 12:55:25 2022 +0200
@@ -459,7 +459,7 @@
text \<open>
The subsequent example creates a raw Java process on the command-line and
invokes the main Isabelle application entry point:
- @{verbatim [display] \<open>isabelle_java -Djava.awt.headless=false isabelle.jedit.Main\<close>}
+ @{verbatim [display] \<open>isabelle_java -Djava.awt.headless=false isabelle.jedit.JEdit_Main\<close>}
\<close>
--- a/src/HOL/Decision_Procs/Cooper.thy Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Decision_Procs/Cooper.thy Tue Mar 29 12:55:25 2022 +0200
@@ -316,7 +316,7 @@
else if q = F then f p
else
let fp = f p
- in case fp of T \<Rightarrow> T | F \<Rightarrow> q | _ \<Rightarrow> Or (f p) q)"
+ in case fp of T \<Rightarrow> T | F \<Rightarrow> q | _ \<Rightarrow> Or fp q)"
definition evaldjf :: "('a \<Rightarrow> fm) \<Rightarrow> 'a list \<Rightarrow> fm"
where "evaldjf f ps = foldr (djf f) ps F"
--- a/src/HOL/Induct/QuoDataType.thy Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Induct/QuoDataType.thy Tue Mar 29 12:55:25 2022 +0200
@@ -5,6 +5,11 @@
section\<open>Defining an Initial Algebra by Quotienting a Free Algebra\<close>
+text \<open>For Lawrence Paulson's paper ``Defining functions on equivalence classes''
+\emph{ACM Transactions on Computational Logic} \textbf{7}:40 (2006), 658--675,
+illustrating bare-bones quotient constructions. Any comparison using lifting and transfer
+should be done in a separate theory.\<close>
+
theory QuoDataType imports Main begin
subsection\<open>Defining the Free Algebra\<close>
@@ -163,9 +168,7 @@
by (auto simp add: Msg_def quotient_def intro: msgrel_refl)
lemma inj_on_Abs_Msg: "inj_on Abs_Msg Msg"
-apply (rule inj_on_inverseI)
-apply (erule Abs_Msg_inverse)
-done
+ by (meson Abs_Msg_inject inj_onI)
text\<open>Reduces equality on abstractions to equality on representatives\<close>
declare inj_on_Abs_Msg [THEN inj_on_eq_iff, simp]
@@ -203,11 +206,8 @@
text\<open>Case analysis on the representation of a msg as an equivalence class.\<close>
lemma eq_Abs_Msg [case_names Abs_Msg, cases type: msg]:
- "(!!U. z = Abs_Msg(msgrel``{U}) ==> P) ==> P"
-apply (rule Rep_Msg [of z, unfolded Msg_def, THEN quotientE])
-apply (drule arg_cong [where f=Abs_Msg])
-apply (auto simp add: Rep_Msg_inverse intro: msgrel_refl)
-done
+ "(\<And>U. z = Abs_Msg (msgrel `` {U}) \<Longrightarrow> P) \<Longrightarrow> P"
+ by (metis Abs_Msg_cases Msg_def quotientE)
text\<open>Establishing these two equations is the point of the whole exercise\<close>
theorem CD_eq [simp]: "Crypt K (Decrypt K X) = X"
@@ -234,32 +234,40 @@
UN_equiv_class [OF equiv_msgrel nonces_congruent])
lemma nonces_MPair [simp]: "nonces (MPair X Y) = nonces X \<union> nonces Y"
-apply (cases X, cases Y)
-apply (simp add: nonces_def MPair
- UN_equiv_class [OF equiv_msgrel nonces_congruent])
-done
+proof -
+ have "\<And>U V. \<lbrakk>X = Abs_Msg (msgrel `` {U}); Y = Abs_Msg (msgrel `` {V})\<rbrakk>
+ \<Longrightarrow> nonces (MPair X Y) = nonces X \<union> nonces Y"
+ by (simp add: nonces_def MPair
+ UN_equiv_class [OF equiv_msgrel nonces_congruent])
+ then show ?thesis
+ by (meson eq_Abs_Msg)
+qed
lemma nonces_Crypt [simp]: "nonces (Crypt K X) = nonces X"
-apply (cases X)
-apply (simp add: nonces_def Crypt
- UN_equiv_class [OF equiv_msgrel nonces_congruent])
-done
+proof -
+ have "\<And>U. X = Abs_Msg (msgrel `` {U}) \<Longrightarrow> nonces (Crypt K X) = nonces X"
+ by (simp add: nonces_def Crypt UN_equiv_class [OF equiv_msgrel nonces_congruent])
+ then show ?thesis
+ by (meson eq_Abs_Msg)
+qed
lemma nonces_Decrypt [simp]: "nonces (Decrypt K X) = nonces X"
-apply (cases X)
-apply (simp add: nonces_def Decrypt
- UN_equiv_class [OF equiv_msgrel nonces_congruent])
-done
+proof -
+ have "\<And>U. X = Abs_Msg (msgrel `` {U}) \<Longrightarrow> nonces (Decrypt K X) = nonces X"
+ by (simp add: nonces_def Decrypt UN_equiv_class [OF equiv_msgrel nonces_congruent])
+ then show ?thesis
+ by (meson eq_Abs_Msg)
+qed
subsection\<open>The Abstract Function to Return the Left Part\<close>
definition
- left :: "msg \<Rightarrow> msg" where
- "left X = Abs_Msg (\<Union>U \<in> Rep_Msg X. msgrel``{freeleft U})"
+ left :: "msg \<Rightarrow> msg"
+ where "left X = Abs_Msg (\<Union>U \<in> Rep_Msg X. msgrel``{freeleft U})"
lemma left_congruent: "(\<lambda>U. msgrel `` {freeleft U}) respects msgrel"
-by (auto simp add: congruent_def msgrel_imp_eqv_freeleft)
+ by (auto simp add: congruent_def msgrel_imp_eqv_freeleft)
text\<open>Now prove the four equations for \<^term>\<open>left\<close>\<close>
@@ -268,69 +276,51 @@
UN_equiv_class [OF equiv_msgrel left_congruent])
lemma left_MPair [simp]: "left (MPair X Y) = X"
-apply (cases X, cases Y)
-apply (simp add: left_def MPair
- UN_equiv_class [OF equiv_msgrel left_congruent])
-done
+ by (cases X, cases Y) (simp add: left_def MPair UN_equiv_class [OF equiv_msgrel left_congruent])
lemma left_Crypt [simp]: "left (Crypt K X) = left X"
-apply (cases X)
-apply (simp add: left_def Crypt
- UN_equiv_class [OF equiv_msgrel left_congruent])
-done
+ by (cases X) (simp add: left_def Crypt UN_equiv_class [OF equiv_msgrel left_congruent])
lemma left_Decrypt [simp]: "left (Decrypt K X) = left X"
-apply (cases X)
-apply (simp add: left_def Decrypt
- UN_equiv_class [OF equiv_msgrel left_congruent])
-done
+ by (metis CD_eq left_Crypt)
subsection\<open>The Abstract Function to Return the Right Part\<close>
definition
- right :: "msg \<Rightarrow> msg" where
- "right X = Abs_Msg (\<Union>U \<in> Rep_Msg X. msgrel``{freeright U})"
+ right :: "msg \<Rightarrow> msg"
+ where "right X = Abs_Msg (\<Union>U \<in> Rep_Msg X. msgrel``{freeright U})"
lemma right_congruent: "(\<lambda>U. msgrel `` {freeright U}) respects msgrel"
-by (auto simp add: congruent_def msgrel_imp_eqv_freeright)
+ by (auto simp add: congruent_def msgrel_imp_eqv_freeright)
text\<open>Now prove the four equations for \<^term>\<open>right\<close>\<close>
lemma right_Nonce [simp]: "right (Nonce N) = Nonce N"
-by (simp add: right_def Nonce_def
- UN_equiv_class [OF equiv_msgrel right_congruent])
+ by (simp add: right_def Nonce_def
+ UN_equiv_class [OF equiv_msgrel right_congruent])
lemma right_MPair [simp]: "right (MPair X Y) = Y"
-apply (cases X, cases Y)
-apply (simp add: right_def MPair
- UN_equiv_class [OF equiv_msgrel right_congruent])
-done
+ by (cases X, cases Y) (simp add: right_def MPair UN_equiv_class [OF equiv_msgrel right_congruent])
lemma right_Crypt [simp]: "right (Crypt K X) = right X"
-apply (cases X)
-apply (simp add: right_def Crypt
- UN_equiv_class [OF equiv_msgrel right_congruent])
-done
+ by (cases X) (simp add: right_def Crypt UN_equiv_class [OF equiv_msgrel right_congruent])
lemma right_Decrypt [simp]: "right (Decrypt K X) = right X"
-apply (cases X)
-apply (simp add: right_def Decrypt
- UN_equiv_class [OF equiv_msgrel right_congruent])
-done
+ by (metis CD_eq right_Crypt)
subsection\<open>Injectivity Properties of Some Constructors\<close>
lemma NONCE_imp_eq: "NONCE m \<sim> NONCE n \<Longrightarrow> m = n"
-by (drule msgrel_imp_eq_freenonces, simp)
+ by (drule msgrel_imp_eq_freenonces, simp)
text\<open>Can also be proved using the function \<^term>\<open>nonces\<close>\<close>
lemma Nonce_Nonce_eq [iff]: "(Nonce m = Nonce n) = (m = n)"
-by (auto simp add: Nonce_def msgrel_refl dest: NONCE_imp_eq)
+ by (auto simp add: Nonce_def msgrel_refl dest: NONCE_imp_eq)
lemma MPAIR_imp_eqv_left: "MPAIR X Y \<sim> MPAIR X' Y' \<Longrightarrow> X \<sim> X'"
-by (drule msgrel_imp_eqv_freeleft, simp)
+ by (drule msgrel_imp_eqv_freeleft, simp)
lemma MPair_imp_eq_left:
assumes eq: "MPair X Y = MPair X' Y'" shows "X = X'"
@@ -341,33 +331,27 @@
qed
lemma MPAIR_imp_eqv_right: "MPAIR X Y \<sim> MPAIR X' Y' \<Longrightarrow> Y \<sim> Y'"
-by (drule msgrel_imp_eqv_freeright, simp)
+ by (drule msgrel_imp_eqv_freeright, simp)
-lemma MPair_imp_eq_right: "MPair X Y = MPair X' Y' \<Longrightarrow> Y = Y'"
-apply (cases X, cases X', cases Y, cases Y')
-apply (simp add: MPair)
-apply (erule MPAIR_imp_eqv_right)
-done
+lemma MPair_imp_eq_right: "MPair X Y = MPair X' Y' \<Longrightarrow> Y = Y'"
+ by (metis right_MPair)
theorem MPair_MPair_eq [iff]: "(MPair X Y = MPair X' Y') = (X=X' & Y=Y')"
-by (blast dest: MPair_imp_eq_left MPair_imp_eq_right)
+ by (blast dest: MPair_imp_eq_left MPair_imp_eq_right)
lemma NONCE_neqv_MPAIR: "NONCE m \<sim> MPAIR X Y \<Longrightarrow> False"
-by (drule msgrel_imp_eq_freediscrim, simp)
+ by (drule msgrel_imp_eq_freediscrim, simp)
theorem Nonce_neq_MPair [iff]: "Nonce N \<noteq> MPair X Y"
-apply (cases X, cases Y)
-apply (simp add: Nonce_def MPair)
-apply (blast dest: NONCE_neqv_MPAIR)
-done
+ by (cases X, cases Y) (use MPair NONCE_neqv_MPAIR Nonce_def in fastforce)
text\<open>Example suggested by a referee\<close>
theorem Crypt_Nonce_neq_Nonce: "Crypt K (Nonce M) \<noteq> Nonce N"
-by (auto simp add: Nonce_def Crypt dest: msgrel_imp_eq_freediscrim)
+ by (auto simp add: Nonce_def Crypt dest: msgrel_imp_eq_freediscrim)
text\<open>...and many similar results\<close>
theorem Crypt2_Nonce_neq_Nonce: "Crypt K (Crypt K' (Nonce M)) \<noteq> Nonce N"
-by (auto simp add: Nonce_def Crypt dest: msgrel_imp_eq_freediscrim)
+ by (auto simp add: Nonce_def Crypt dest: msgrel_imp_eq_freediscrim)
theorem Crypt_Crypt_eq [iff]: "(Crypt K X = Crypt K X') = (X=X')"
proof
@@ -428,32 +412,27 @@
"discrim X = the_elem (\<Union>U \<in> Rep_Msg X. {freediscrim U})"
lemma discrim_congruent: "(\<lambda>U. {freediscrim U}) respects msgrel"
-by (auto simp add: congruent_def msgrel_imp_eq_freediscrim)
+ by (auto simp add: congruent_def msgrel_imp_eq_freediscrim)
text\<open>Now prove the four equations for \<^term>\<open>discrim\<close>\<close>
lemma discrim_Nonce [simp]: "discrim (Nonce N) = 0"
-by (simp add: discrim_def Nonce_def
- UN_equiv_class [OF equiv_msgrel discrim_congruent])
+ by (simp add: discrim_def Nonce_def
+ UN_equiv_class [OF equiv_msgrel discrim_congruent])
lemma discrim_MPair [simp]: "discrim (MPair X Y) = 1"
-apply (cases X, cases Y)
-apply (simp add: discrim_def MPair
- UN_equiv_class [OF equiv_msgrel discrim_congruent])
-done
+proof -
+ have "\<And>U V. discrim (MPair (Abs_Msg (msgrel `` {U})) (Abs_Msg (msgrel `` {V}))) = 1"
+ by (simp add: discrim_def MPair UN_equiv_class [OF equiv_msgrel discrim_congruent])
+ then show ?thesis
+ by (metis eq_Abs_Msg)
+qed
lemma discrim_Crypt [simp]: "discrim (Crypt K X) = discrim X + 2"
-apply (cases X)
-apply (simp add: discrim_def Crypt
- UN_equiv_class [OF equiv_msgrel discrim_congruent])
-done
+ by (cases X) (use Crypt UN_equiv_class discrim_congruent discrim_def equiv_msgrel in fastforce)
lemma discrim_Decrypt [simp]: "discrim (Decrypt K X) = discrim X - 2"
-apply (cases X)
-apply (simp add: discrim_def Decrypt
- UN_equiv_class [OF equiv_msgrel discrim_congruent])
-done
-
+ by (cases X) (use Decrypt UN_equiv_class discrim_congruent discrim_def equiv_msgrel in fastforce)
end
--- a/src/HOL/Induct/QuoNestedDataType.thy Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Induct/QuoNestedDataType.thy Tue Mar 29 12:55:25 2022 +0200
@@ -5,6 +5,11 @@
section\<open>Quotienting a Free Algebra Involving Nested Recursion\<close>
+text \<open>This is the development promised in Lawrence Paulson's paper ``Defining functions on equivalence classes''
+\emph{ACM Transactions on Computational Logic} \textbf{7}:40 (2006), 658--675,
+illustrating bare-bones quotient constructions. Any comparison using lifting and transfer
+should be done in a separate theory.\<close>
+
theory QuoNestedDataType imports Main begin
subsection\<open>Defining the Free Algebra\<close>
@@ -26,7 +31,7 @@
exprel :: "(freeExp * freeExp) set"
and exp_rel :: "[freeExp, freeExp] => bool" (infixl "\<sim>" 50)
where
- "X \<sim> Y == (X,Y) \<in> exprel"
+ "X \<sim> Y \<equiv> (X,Y) \<in> exprel"
| ASSOC: "PLUS X (PLUS Y Z) \<sim> PLUS (PLUS X Y) Z"
| VAR: "VAR N \<sim> VAR N"
| PLUS: "\<lbrakk>X \<sim> X'; Y \<sim> Y'\<rbrakk> \<Longrightarrow> PLUS X Y \<sim> PLUS X' Y'"
@@ -54,17 +59,9 @@
theorem equiv_list_exprel: "equiv UNIV (listrel exprel)"
using equiv_listrel [OF equiv_exprel] by simp
-
-lemma FNCALL_Nil: "FNCALL F [] \<sim> FNCALL F []"
-apply (rule exprel.intros)
-apply (rule listrel.intros)
-done
-
lemma FNCALL_Cons:
- "\<lbrakk>X \<sim> X'; (Xs,Xs') \<in> listrel(exprel)\<rbrakk>
- \<Longrightarrow> FNCALL F (X#Xs) \<sim> FNCALL F (X'#Xs')"
-by (blast intro: exprel.intros listrel.intros)
-
+ "\<lbrakk>X \<sim> X'; (Xs,Xs') \<in> listrel(exprel)\<rbrakk> \<Longrightarrow> FNCALL F (X#Xs) \<sim> FNCALL F (X'#Xs')"
+ by (blast intro: exprel.intros listrel.intros)
subsection\<open>Some Functions on the Free Algebra\<close>
@@ -75,8 +72,8 @@
be lifted to the initial algebra, to serve as an example of that process.
Note that the "free" refers to the free datatype rather than to the concept
of a free variable.\<close>
-primrec freevars :: "freeExp \<Rightarrow> nat set"
- and freevars_list :: "freeExp list \<Rightarrow> nat set" where
+primrec freevars :: "freeExp \<Rightarrow> nat set" and freevars_list :: "freeExp list \<Rightarrow> nat set"
+ where
"freevars (VAR N) = {N}"
| "freevars (PLUS X Y) = freevars X \<union> freevars Y"
| "freevars (FNCALL F Xs) = freevars_list Xs"
@@ -88,11 +85,11 @@
equivalence relation. It also helps us prove that Variable
(the abstract constructor) is injective\<close>
theorem exprel_imp_eq_freevars: "U \<sim> V \<Longrightarrow> freevars U = freevars V"
-apply (induct set: exprel)
-apply (erule_tac [4] listrel.induct)
-apply (simp_all add: Un_assoc)
-done
-
+proof (induct set: exprel)
+ case (FNCALL Xs Xs' F)
+ then show ?case
+ by (induct rule: listrel.induct) auto
+qed (simp_all add: Un_assoc)
subsubsection\<open>Functions for Freeness\<close>
@@ -127,20 +124,24 @@
| "freeargs (PLUS X Y) = []"
| "freeargs (FNCALL F Xs) = Xs"
+
theorem exprel_imp_eqv_freeargs:
assumes "U \<sim> V"
shows "(freeargs U, freeargs V) \<in> listrel exprel"
-proof -
- from equiv_list_exprel have sym: "sym (listrel exprel)" by (rule equivE)
- from equiv_list_exprel have trans: "trans (listrel exprel)" by (rule equivE)
- from assms show ?thesis
- apply induct
- apply (erule_tac [4] listrel.induct)
- apply (simp_all add: listrel.intros)
- apply (blast intro: symD [OF sym])
- apply (blast intro: transD [OF trans])
- done
-qed
+ using assms
+proof induction
+ case (FNCALL Xs Xs' F)
+ then show ?case
+ by (simp add: listrel_iff_nth)
+next
+ case (SYM X Y)
+ then show ?case
+ by (meson equivE equiv_list_exprel symD)
+next
+ case (TRANS X Y Z)
+ then show ?case
+ by (meson equivE equiv_list_exprel transD)
+qed (use listrel.simps in auto)
subsection\<open>The Initial Algebra: A Quotiented Message Type\<close>
@@ -165,24 +166,22 @@
definition
FnCall :: "[nat, exp list] \<Rightarrow> exp" where
"FnCall F Xs =
- Abs_Exp (\<Union>Us \<in> listset (map Rep_Exp Xs). exprel `` {FNCALL F Us})"
+ Abs_Exp (\<Union>Us \<in> listset (map Rep_Exp Xs). exprel``{FNCALL F Us})"
text\<open>Reduces equality of equivalence classes to the \<^term>\<open>exprel\<close> relation:
- \<^term>\<open>(exprel `` {x} = exprel `` {y}) = ((x,y) \<in> exprel)\<close>\<close>
+ \<^term>\<open>(exprel``{x} = exprel``{y}) = ((x,y) \<in> exprel)\<close>\<close>
lemmas equiv_exprel_iff = eq_equiv_class_iff [OF equiv_exprel UNIV_I UNIV_I]
declare equiv_exprel_iff [simp]
text\<open>All equivalence classes belong to set of representatives\<close>
-lemma [simp]: "exprel``{U} \<in> Exp"
-by (auto simp add: Exp_def quotient_def intro: exprel_refl)
+lemma exprel_in_Exp [simp]: "exprel``{U} \<in> Exp"
+ by (simp add: Exp_def quotientI)
lemma inj_on_Abs_Exp: "inj_on Abs_Exp Exp"
-apply (rule inj_on_inverseI)
-apply (erule Abs_Exp_inverse)
-done
+ by (meson Abs_Exp_inject inj_onI)
text\<open>Reduces equality on abstractions to equality on representatives\<close>
declare inj_on_Abs_Exp [THEN inj_on_eq_iff, simp]
@@ -192,11 +191,8 @@
text\<open>Case analysis on the representation of a exp as an equivalence class.\<close>
lemma eq_Abs_Exp [case_names Abs_Exp, cases type: exp]:
- "(!!U. z = Abs_Exp(exprel``{U}) ==> P) ==> P"
-apply (rule Rep_Exp [of z, unfolded Exp_def, THEN quotientE])
-apply (drule arg_cong [where f=Abs_Exp])
-apply (auto simp add: Rep_Exp_inverse intro: exprel_refl)
-done
+ "(\<And>U. z = Abs_Exp (exprel``{U}) \<Longrightarrow> P) \<Longrightarrow> P"
+ by (metis Abs_Exp_cases Exp_def quotientE)
subsection\<open>Every list of abstract expressions can be expressed in terms of a
@@ -204,25 +200,17 @@
definition
Abs_ExpList :: "freeExp list => exp list" where
- "Abs_ExpList Xs = map (%U. Abs_Exp(exprel``{U})) Xs"
+ "Abs_ExpList Xs \<equiv> map (\<lambda>U. Abs_Exp(exprel``{U})) Xs"
-lemma Abs_ExpList_Nil [simp]: "Abs_ExpList [] == []"
-by (simp add: Abs_ExpList_def)
+lemma Abs_ExpList_Nil [simp]: "Abs_ExpList [] = []"
+ by (simp add: Abs_ExpList_def)
lemma Abs_ExpList_Cons [simp]:
- "Abs_ExpList (X#Xs) == Abs_Exp (exprel``{X}) # Abs_ExpList Xs"
-by (simp add: Abs_ExpList_def)
+ "Abs_ExpList (X#Xs) = Abs_Exp (exprel``{X}) # Abs_ExpList Xs"
+ by (simp add: Abs_ExpList_def)
lemma ExpList_rep: "\<exists>Us. z = Abs_ExpList Us"
-apply (induct z)
-apply (rename_tac [2] a b)
-apply (rule_tac [2] z=a in eq_Abs_Exp)
-apply (auto simp add: Abs_ExpList_def Cons_eq_map_conv intro: exprel_refl)
-done
-
-lemma eq_Abs_ExpList [case_names Abs_ExpList]:
- "(!!Us. z = Abs_ExpList Us ==> P) ==> P"
-by (rule exE [OF ExpList_rep], blast)
+ by (smt (verit, del_insts) Abs_ExpList_def eq_Abs_Exp ex_map_conv)
subsubsection\<open>Characteristic Equations for the Abstract Constructors\<close>
@@ -230,7 +218,7 @@
lemma Plus: "Plus (Abs_Exp(exprel``{U})) (Abs_Exp(exprel``{V})) =
Abs_Exp (exprel``{PLUS U V})"
proof -
- have "(\<lambda>U V. exprel `` {PLUS U V}) respects2 exprel"
+ have "(\<lambda>U V. exprel``{PLUS U V}) respects2 exprel"
by (auto simp add: congruent2_def exprel.PLUS)
thus ?thesis
by (simp add: Plus_def UN_equiv_class2 [OF equiv_exprel equiv_exprel])
@@ -246,26 +234,26 @@
by (simp add: FnCall_def)
lemma FnCall_respects:
- "(\<lambda>Us. exprel `` {FNCALL F Us}) respects (listrel exprel)"
+ "(\<lambda>Us. exprel``{FNCALL F Us}) respects (listrel exprel)"
by (auto simp add: congruent_def exprel.FNCALL)
lemma FnCall_sing:
"FnCall F [Abs_Exp(exprel``{U})] = Abs_Exp (exprel``{FNCALL F [U]})"
proof -
- have "(\<lambda>U. exprel `` {FNCALL F [U]}) respects exprel"
+ have "(\<lambda>U. exprel``{FNCALL F [U]}) respects exprel"
by (auto simp add: congruent_def FNCALL_Cons listrel.intros)
thus ?thesis
by (simp add: FnCall_def UN_equiv_class [OF equiv_exprel])
qed
lemma listset_Rep_Exp_Abs_Exp:
- "listset (map Rep_Exp (Abs_ExpList Us)) = listrel exprel `` {Us}"
+ "listset (map Rep_Exp (Abs_ExpList Us)) = listrel exprel``{Us}"
by (induct Us) (simp_all add: listrel_Cons Abs_ExpList_def)
lemma FnCall:
"FnCall F (Abs_ExpList Us) = Abs_Exp (exprel``{FNCALL F Us})"
proof -
- have "(\<lambda>Us. exprel `` {FNCALL F Us}) respects (listrel exprel)"
+ have "(\<lambda>Us. exprel``{FNCALL F Us}) respects (listrel exprel)"
by (auto simp add: congruent_def exprel.FNCALL)
thus ?thesis
by (simp add: FnCall_def UN_equiv_class [OF equiv_list_exprel]
@@ -275,15 +263,14 @@
text\<open>Establishing this equation is the point of the whole exercise\<close>
theorem Plus_assoc: "Plus X (Plus Y Z) = Plus (Plus X Y) Z"
-by (cases X, cases Y, cases Z, simp add: Plus exprel.ASSOC)
+ by (cases X, cases Y, cases Z, simp add: Plus exprel.ASSOC)
subsection\<open>The Abstract Function to Return the Set of Variables\<close>
definition
- vars :: "exp \<Rightarrow> nat set" where
- "vars X = (\<Union>U \<in> Rep_Exp X. freevars U)"
+ vars :: "exp \<Rightarrow> nat set" where "vars X \<equiv> (\<Union>U \<in> Rep_Exp X. freevars U)"
lemma vars_respects: "freevars respects exprel"
by (auto simp add: congruent_def exprel_imp_eq_freevars)
@@ -301,62 +288,73 @@
UN_equiv_class [OF equiv_exprel vars_respects])
lemma vars_Plus [simp]: "vars (Plus X Y) = vars X \<union> vars Y"
-apply (cases X, cases Y)
-apply (simp add: vars_def Plus
- UN_equiv_class [OF equiv_exprel vars_respects])
-done
+proof -
+ have "\<And>U V. \<lbrakk>X = Abs_Exp (exprel``{U}); Y = Abs_Exp (exprel``{V})\<rbrakk>
+ \<Longrightarrow> vars (Plus X Y) = vars X \<union> vars Y"
+ by (simp add: vars_def Plus UN_equiv_class [OF equiv_exprel vars_respects])
+ then show ?thesis
+ by (meson eq_Abs_Exp)
+qed
lemma vars_FnCall [simp]: "vars (FnCall F Xs) = vars_list Xs"
-apply (cases Xs rule: eq_Abs_ExpList)
-apply (simp add: FnCall)
-apply (induct_tac Us)
-apply (simp_all add: vars_def UN_equiv_class [OF equiv_exprel vars_respects])
-done
+proof -
+ have "vars (Abs_Exp (exprel``{FNCALL F Us})) = vars_list (Abs_ExpList Us)" for Us
+ by (induct Us) (auto simp: vars_def UN_equiv_class [OF equiv_exprel vars_respects])
+ then show ?thesis
+ by (metis ExpList_rep FnCall)
+qed
lemma vars_FnCall_Nil: "vars (FnCall F Nil) = {}"
-by simp
+ by simp
lemma vars_FnCall_Cons: "vars (FnCall F (X#Xs)) = vars X \<union> vars_list Xs"
-by simp
+ by simp
subsection\<open>Injectivity Properties of Some Constructors\<close>
lemma VAR_imp_eq: "VAR m \<sim> VAR n \<Longrightarrow> m = n"
-by (drule exprel_imp_eq_freevars, simp)
+ by (drule exprel_imp_eq_freevars, simp)
text\<open>Can also be proved using the function \<^term>\<open>vars\<close>\<close>
lemma Var_Var_eq [iff]: "(Var m = Var n) = (m = n)"
-by (auto simp add: Var_def exprel_refl dest: VAR_imp_eq)
+ by (auto simp add: Var_def exprel_refl dest: VAR_imp_eq)
lemma VAR_neqv_PLUS: "VAR m \<sim> PLUS X Y \<Longrightarrow> False"
-by (drule exprel_imp_eq_freediscrim, simp)
+ using exprel_imp_eq_freediscrim by force
theorem Var_neq_Plus [iff]: "Var N \<noteq> Plus X Y"
-apply (cases X, cases Y)
-apply (simp add: Var_def Plus)
-apply (blast dest: VAR_neqv_PLUS)
-done
+proof -
+ have "\<And>U V. \<lbrakk>X = Abs_Exp (exprel``{U}); Y = Abs_Exp (exprel``{V})\<rbrakk> \<Longrightarrow> Var N \<noteq> Plus X Y"
+ using Plus VAR_neqv_PLUS Var_def by force
+ then show ?thesis
+ by (meson eq_Abs_Exp)
+qed
theorem Var_neq_FnCall [iff]: "Var N \<noteq> FnCall F Xs"
-apply (cases Xs rule: eq_Abs_ExpList)
-apply (auto simp add: FnCall Var_def)
-apply (drule exprel_imp_eq_freediscrim, simp)
-done
+proof -
+ have "\<And>Us. Var N \<noteq> FnCall F (Abs_ExpList Us)"
+ using FnCall Var_def exprel_imp_eq_freediscrim by fastforce
+ then show ?thesis
+ by (metis ExpList_rep)
+qed
subsection\<open>Injectivity of \<^term>\<open>FnCall\<close>\<close>
definition
- "fun" :: "exp \<Rightarrow> nat" where
- "fun X = the_elem (\<Union>U \<in> Rep_Exp X. {freefun U})"
+ "fun" :: "exp \<Rightarrow> nat"
+ where "fun X \<equiv> the_elem (\<Union>U \<in> Rep_Exp X. {freefun U})"
-lemma fun_respects: "(%U. {freefun U}) respects exprel"
-by (auto simp add: congruent_def exprel_imp_eq_freefun)
+lemma fun_respects: "(\<lambda>U. {freefun U}) respects exprel"
+ by (auto simp add: congruent_def exprel_imp_eq_freefun)
lemma fun_FnCall [simp]: "fun (FnCall F Xs) = F"
-apply (cases Xs rule: eq_Abs_ExpList)
-apply (simp add: FnCall fun_def UN_equiv_class [OF equiv_exprel fun_respects])
-done
+proof -
+ have "\<And>Us. fun (FnCall F (Abs_ExpList Us)) = F"
+ using FnCall UN_equiv_class [OF equiv_exprel] fun_def fun_respects by fastforce
+ then show ?thesis
+ by (metis ExpList_rep)
+qed
definition
args :: "exp \<Rightarrow> exp list" where
@@ -368,25 +366,19 @@
"(y, z) \<in> listrel exprel \<Longrightarrow> Abs_ExpList (y) = Abs_ExpList (z)"
by (induct set: listrel) simp_all
-lemma args_respects: "(%U. {Abs_ExpList (freeargs U)}) respects exprel"
-by (auto simp add: congruent_def Abs_ExpList_eq exprel_imp_eqv_freeargs)
+lemma args_respects: "(\<lambda>U. {Abs_ExpList (freeargs U)}) respects exprel"
+ by (auto simp add: congruent_def Abs_ExpList_eq exprel_imp_eqv_freeargs)
lemma args_FnCall [simp]: "args (FnCall F Xs) = Xs"
-apply (cases Xs rule: eq_Abs_ExpList)
-apply (simp add: FnCall args_def UN_equiv_class [OF equiv_exprel args_respects])
-done
-
+proof -
+ have "\<And>Us. Xs = Abs_ExpList Us \<Longrightarrow> args (FnCall F Xs) = Xs"
+ by (simp add: FnCall args_def UN_equiv_class [OF equiv_exprel args_respects])
+ then show ?thesis
+ by (metis ExpList_rep)
+qed
-lemma FnCall_FnCall_eq [iff]:
- "(FnCall F Xs = FnCall F' Xs') = (F=F' & Xs=Xs')"
-proof
- assume "FnCall F Xs = FnCall F' Xs'"
- hence "fun (FnCall F Xs) = fun (FnCall F' Xs')"
- and "args (FnCall F Xs) = args (FnCall F' Xs')" by auto
- thus "F=F' & Xs=Xs'" by simp
-next
- assume "F=F' & Xs=Xs'" thus "FnCall F Xs = FnCall F' Xs'" by simp
-qed
+lemma FnCall_FnCall_eq [iff]: "(FnCall F Xs = FnCall F' Xs') \<longleftrightarrow> (F=F' \<and> Xs=Xs')"
+ by (metis args_FnCall fun_FnCall)
subsection\<open>The Abstract Discriminator\<close>
@@ -403,21 +395,23 @@
text\<open>Now prove the four equations for \<^term>\<open>discrim\<close>\<close>
lemma discrim_Var [simp]: "discrim (Var N) = 0"
-by (simp add: discrim_def Var_def
- UN_equiv_class [OF equiv_exprel discrim_respects])
+ by (simp add: discrim_def Var_def UN_equiv_class [OF equiv_exprel discrim_respects])
lemma discrim_Plus [simp]: "discrim (Plus X Y) = 1"
-apply (cases X, cases Y)
-apply (simp add: discrim_def Plus
- UN_equiv_class [OF equiv_exprel discrim_respects])
-done
+proof -
+ have "\<And>U V. \<lbrakk>X = Abs_Exp (exprel``{U}); Y = Abs_Exp (exprel``{V})\<rbrakk> \<Longrightarrow> discrim (Plus X Y) = 1"
+ by (simp add: discrim_def Plus UN_equiv_class [OF equiv_exprel discrim_respects])
+ then show ?thesis
+ by (meson eq_Abs_Exp)
+qed
lemma discrim_FnCall [simp]: "discrim (FnCall F Xs) = 2"
-apply (rule_tac z=Xs in eq_Abs_ExpList)
-apply (simp add: discrim_def FnCall
- UN_equiv_class [OF equiv_exprel discrim_respects])
-done
-
+proof -
+ have "discrim (FnCall F (Abs_ExpList Us)) = 2" for Us
+ by (simp add: discrim_def FnCall UN_equiv_class [OF equiv_exprel discrim_respects])
+ then show ?thesis
+ by (metis ExpList_rep)
+qed
text\<open>The structural induction rule for the abstract type\<close>
theorem exp_inducts:
@@ -428,15 +422,15 @@
and Cons: "\<And>exp list. \<lbrakk>P1 exp; P2 list\<rbrakk> \<Longrightarrow> P2 (exp # list)"
shows "P1 exp" and "P2 list"
proof -
- obtain U where exp: "exp = (Abs_Exp (exprel `` {U}))" by (cases exp)
- obtain Us where list: "list = Abs_ExpList Us" by (rule eq_Abs_ExpList)
- have "P1 (Abs_Exp (exprel `` {U}))" and "P2 (Abs_ExpList Us)"
+ obtain U where exp: "exp = (Abs_Exp (exprel``{U}))" by (cases exp)
+ obtain Us where list: "list = Abs_ExpList Us" by (metis ExpList_rep)
+ have "P1 (Abs_Exp (exprel``{U}))" and "P2 (Abs_ExpList Us)"
proof (induct U and Us rule: compat_freeExp.induct compat_freeExp_list.induct)
case (VAR nat)
with V show ?case by (simp add: Var_def)
next
case (PLUS X Y)
- with P [of "Abs_Exp (exprel `` {X})" "Abs_Exp (exprel `` {Y})"]
+ with P [of "Abs_Exp (exprel``{X})" "Abs_Exp (exprel``{Y})"]
show ?case by (simp add: Plus)
next
case (FNCALL nat list)
--- a/src/HOL/Library/Equipollence.thy Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Library/Equipollence.thy Tue Mar 29 12:55:25 2022 +0200
@@ -378,17 +378,22 @@
lemma times_0_eqpoll: "{} \<times> A \<approx> {}"
by (simp add: eqpoll_iff_bijections)
+lemma Sigma_inj_lepoll_mono:
+ assumes h: "inj_on h A" "h ` A \<subseteq> C" and "\<And>x. x \<in> A \<Longrightarrow> B x \<lesssim> D (h x)"
+ shows "Sigma A B \<lesssim> Sigma C D"
+proof -
+ have "\<And>x. x \<in> A \<Longrightarrow> \<exists>f. inj_on f (B x) \<and> f ` (B x) \<subseteq> D (h x)"
+ by (meson assms lepoll_def)
+ then obtain f where "\<And>x. x \<in> A \<Longrightarrow> inj_on (f x) (B x) \<and> f x ` B x \<subseteq> D (h x)"
+ by metis
+ with h show ?thesis
+ unfolding lepoll_def inj_on_def
+ by (rule_tac x="\<lambda>(x,y). (h x, f x y)" in exI) force
+qed
+
lemma Sigma_lepoll_mono:
assumes "A \<subseteq> C" "\<And>x. x \<in> A \<Longrightarrow> B x \<lesssim> D x" shows "Sigma A B \<lesssim> Sigma C D"
-proof -
- have "\<And>x. x \<in> A \<Longrightarrow> \<exists>f. inj_on f (B x) \<and> f ` (B x) \<subseteq> D x"
- by (meson assms lepoll_def)
- then obtain f where "\<And>x. x \<in> A \<Longrightarrow> inj_on (f x) (B x) \<and> f x ` B x \<subseteq> D x"
- by metis
- with \<open>A \<subseteq> C\<close> show ?thesis
- unfolding lepoll_def inj_on_def
- by (rule_tac x="\<lambda>(x,y). (x, f x y)" in exI) force
-qed
+ using Sigma_inj_lepoll_mono [of id] assms by auto
lemma sum_times_distrib_eqpoll: "(A <+> B) \<times> C \<approx> (A \<times> C) <+> (B \<times> C)"
unfolding eqpoll_def
@@ -397,6 +402,18 @@
by (rule bij_betw_byWitness [where f' = "case_sum (\<lambda>(x,z). (Inl x, z)) (\<lambda>(y,z). (Inr y, z))"]) auto
qed
+lemma Sigma_eqpoll_cong:
+ assumes h: "bij_betw h A C" and BD: "\<And>x. x \<in> A \<Longrightarrow> B x \<approx> D (h x)"
+ shows "Sigma A B \<approx> Sigma C D"
+proof (intro lepoll_antisym)
+ show "Sigma A B \<lesssim> Sigma C D"
+ by (metis Sigma_inj_lepoll_mono bij_betw_def eqpoll_imp_lepoll subset_refl assms)
+ have "inj_on (inv_into A h) C \<and> inv_into A h ` C \<subseteq> A"
+ by (metis bij_betw_def bij_betw_inv_into h set_eq_subset)
+ then show "Sigma C D \<lesssim> Sigma A B"
+ by (smt (verit, best) BD Sigma_inj_lepoll_mono bij_betw_inv_into_right eqpoll_sym h image_subset_iff lepoll_refl lepoll_trans2)
+qed
+
lemma prod_insert_eqpoll:
assumes "a \<notin> A" shows "insert a A \<times> B \<approx> B <+> A \<times> B"
unfolding eqpoll_def
--- a/src/HOL/ROOT Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/ROOT Tue Mar 29 12:55:25 2022 +0200
@@ -663,7 +663,6 @@
Conditional_Parametricity_Examples
Cubic_Quartic
Datatype_Record_Examples
- Dedekind_Real
Erdoes_Szekeres
Eval_Examples
Executable_Relation
@@ -689,7 +688,6 @@
Peano_Axioms
Perm_Fragments
PresburgerEx
- Primrec
Pythagoras
Quicksort
Radix_Sort
--- a/src/HOL/Real.thy Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Real.thy Tue Mar 29 12:55:25 2022 +0200
@@ -15,8 +15,8 @@
text \<open>
This theory contains a formalization of the real numbers as equivalence
- classes of Cauchy sequences of rationals. See
- \<^file>\<open>~~/src/HOL/ex/Dedekind_Real.thy\<close> for an alternative construction using
+ classes of Cauchy sequences of rationals. See the AFP entry
+ @{text Dedekind_Real} for an alternative construction using
Dedekind cuts.
\<close>
--- a/src/HOL/SMT.thy Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/SMT.thy Tue Mar 29 12:55:25 2022 +0200
@@ -623,10 +623,11 @@
ML_file \<open>Tools/SMT/z3_isar.ML\<close>
ML_file \<open>Tools/SMT/smt_solver.ML\<close>
ML_file \<open>Tools/SMT/cvc4_interface.ML\<close>
+ML_file \<open>Tools/SMT/lethe_proof.ML\<close>
+ML_file \<open>Tools/SMT/lethe_isar.ML\<close>
+ML_file \<open>Tools/SMT/lethe_proof_parse.ML\<close>
ML_file \<open>Tools/SMT/cvc4_proof_parse.ML\<close>
ML_file \<open>Tools/SMT/verit_proof.ML\<close>
-ML_file \<open>Tools/SMT/verit_isar.ML\<close>
-ML_file \<open>Tools/SMT/verit_proof_parse.ML\<close>
ML_file \<open>Tools/SMT/conj_disj_perm.ML\<close>
ML_file \<open>Tools/SMT/smt_replay_methods.ML\<close>
ML_file \<open>Tools/SMT/smt_replay.ML\<close>
@@ -635,6 +636,7 @@
ML_file \<open>Tools/SMT/z3_replay_rules.ML\<close>
ML_file \<open>Tools/SMT/z3_replay_methods.ML\<close>
ML_file \<open>Tools/SMT/z3_replay.ML\<close>
+ML_file \<open>Tools/SMT/lethe_replay_methods.ML\<close>
ML_file \<open>Tools/SMT/verit_replay_methods.ML\<close>
ML_file \<open>Tools/SMT/verit_replay.ML\<close>
ML_file \<open>Tools/SMT/smt_systems.ML\<close>
@@ -888,7 +890,6 @@
"(if P then \<not> Q else R) \<or> \<not> P \<or> Q"
"(if P then Q else \<not> R) \<or> P \<or> R"
by auto
-
hide_type (open) symb_list pattern
hide_const (open) Symb_Nil Symb_Cons trigger pat nopat fun_app z3div z3mod
--- a/src/HOL/SMT_Examples/Boogie_Dijkstra.certs Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/SMT_Examples/Boogie_Dijkstra.certs Tue Mar 29 12:55:25 2022 +0200
@@ -2982,3 +2982,2987 @@
(let ((@x10164 (unit-resolution (def-axiom (or (not $x10073) $x5237 (not $x10274))) (unit-resolution (def-axiom (or $x10274 (not $x5238))) @x10279 $x10274) (or (not $x10073) $x5237))))
(unit-resolution (unit-resolution @x10164 (unit-resolution @x10020 @x3468 $x10073) $x5237) @x10120 false))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+671dbbaa69af094b25770f7444428c704a1576bd 2983 0
+unsat
+((set-logic AUFLIA)
+(declare-fun ?v0!20 () B_Vertex$)
+(declare-fun ?v0!19 () B_Vertex$)
+(declare-fun ?v1!18 () B_Vertex$)
+(declare-fun ?v0!17 () B_Vertex$)
+(declare-fun ?v1!16 () B_Vertex$)
+(declare-fun ?v0!15 () B_Vertex$)
+(declare-fun ?v0!14 () B_Vertex$)
+(declare-fun ?v0!13 () B_Vertex$)
+(declare-fun ?v0!12 () B_Vertex$)
+(declare-fun ?v0!11 () B_Vertex$)
+(declare-fun ?v1!10 () B_Vertex$)
+(declare-fun ?v1!9 (B_Vertex$) B_Vertex$)
+(declare-fun ?v0!8 () B_Vertex$)
+(declare-fun ?v1!7 (B_Vertex$) B_Vertex$)
+(declare-fun ?v1!6 (B_Vertex$) B_Vertex$)
+(declare-fun ?v0!5 () B_Vertex$)
+(declare-fun ?v0!4 () B_Vertex$)
+(declare-fun ?v1!3 () B_Vertex$)
+(declare-fun ?v0!2 () B_Vertex$)
+(declare-fun ?v1!1 () B_Vertex$)
+(declare-fun ?v0!0 () B_Vertex$)
+(proof
+(let ((?x260 (fun_upd$ v_b_Visited_G_1$ v_b_v_G_1$ true)))
+(let (($x5237 (fun_app$ ?x260 ?v0!20)))
+(let (($x9037 (not $x5237)))
+(let (($x261 (= v_b_Visited_G_2$ ?x260)))
+(let (($x3724 (forall ((?v1 B_Vertex$) )(! (let ((?x1906 (v_b_SP_G_2$ ?v0!20)))
+(let ((?x1907 (* (- 1) ?x1906)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let (($x2237 (= (+ ?x268 ?x1907 (b_G$ (pair$ ?v1 ?v0!20))) 0)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x295 (not $x286)))
+(or (>= (+ ?x268 ?x1907) 0) $x295 (not $x2237)))))))) :pattern ( (v_b_SP_G_2$ ?v1) ) :pattern ( (fun_app$ v_b_Visited_G_2$ ?v1) ) :pattern ( (pair$ ?v1 ?v0!20) ) :qid k!38))
+))
+(let (($x3729 (not $x3724)))
+(let ((?x1906 (v_b_SP_G_2$ ?v0!20)))
+(let ((?x1907 (* (- 1) ?x1906)))
+(let ((?x1908 (+ b_Infinity$ ?x1907)))
+(let (($x1909 (<= ?x1908 0)))
+(let (($x1904 (= ?v0!20 b_Source$)))
+(let (($x3715 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x298 (v_b_SP_G_2$ ?v0)))
+(let ((?x1258 (* (- 1) ?x298)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x1277 (>= (+ ?x152 ?x268 ?x1258) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x295 (not $x286)))
+(or $x295 $x917 $x1277))))))))) :pattern ( (pair$ ?v1 ?v0) ) :qid k!38))
+))
+(let (($x3720 (not $x3715)))
+(let (($x3732 (or $x3720 $x1904 $x1909 $x3729)))
+(let (($x3735 (not $x3732)))
+(let ((?x1888 (v_b_SP_G_2$ ?v0!19)))
+(let ((?x1889 (* (- 1) ?x1888)))
+(let ((?x1887 (v_b_SP_G_2$ ?v1!18)))
+(let ((?x1879 (pair$ ?v1!18 ?v0!19)))
+(let ((?x1880 (b_G$ ?x1879)))
+(let (($x1891 (>= (+ ?x1880 ?x1887 ?x1889) 0)))
+(let (($x1883 (<= (+ b_Infinity$ (* (- 1) ?x1880)) 0)))
+(let (($x1878 (fun_app$ v_b_Visited_G_2$ ?v1!18)))
+(let (($x2786 (not $x1878)))
+(let (($x2801 (or $x2786 $x1883 $x1891)))
+(let (($x2806 (not $x2801)))
+(let (($x3738 (or $x2806 $x3735)))
+(let (($x3741 (not $x3738)))
+(let (($x3707 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let (($x1257 (>= (+ (v_b_SP_G_2$ ?v1) (* (- 1) (v_b_SP_G_2$ ?v0))) 0)))
+(let (($x296 (fun_app$ v_b_Visited_G_2$ ?v0)))
+(let (($x2763 (not $x296)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(or $x286 $x2763 $x1257))))) :pattern ( (v_b_SP_G_2$ ?v1) (v_b_SP_G_2$ ?v0) ) :qid k!38))
+))
+(let (($x3712 (not $x3707)))
+(let (($x3744 (or $x3712 $x3741)))
+(let (($x3747 (not $x3744)))
+(let (($x1864 (>= (+ (v_b_SP_G_2$ ?v1!16) (* (- 1) (v_b_SP_G_2$ ?v0!17))) 0)))
+(let (($x1857 (fun_app$ v_b_Visited_G_2$ ?v0!17)))
+(let (($x2740 (not $x1857)))
+(let (($x1855 (fun_app$ v_b_Visited_G_2$ ?v1!16)))
+(let (($x2755 (or $x1855 $x2740 $x1864)))
+(let (($x2760 (not $x2755)))
+(let (($x3750 (or $x2760 $x3747)))
+(let (($x3753 (not $x3750)))
+(let (($x3698 (forall ((?v0 B_Vertex$) )(! (let ((?x268 (v_b_SP_G_2$ ?v0)))
+(>= ?x268 0)) :pattern ( (v_b_SP_G_2$ ?v0) ) :qid k!38))
+))
+(let (($x3703 (not $x3698)))
+(let (($x3756 (or $x3703 $x3753)))
+(let (($x3759 (not $x3756)))
+(let ((?x1841 (v_b_SP_G_2$ ?v0!15)))
+(let (($x1842 (>= ?x1841 0)))
+(let (($x1843 (not $x1842)))
+(let (($x3762 (or $x1843 $x3759)))
+(let (($x3765 (not $x3762)))
+(let ((?x291 (v_b_SP_G_2$ b_Source$)))
+(let (($x292 (= ?x291 0)))
+(let (($x768 (not $x292)))
+(let (($x3768 (or $x768 $x3765)))
+(let (($x3771 (not $x3768)))
+(let (($x3774 (or $x768 $x3771)))
+(let (($x3777 (not $x3774)))
+(let (($x3690 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let (($x273 (= ?x268 ?x171)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v0)))
+(let (($x295 (not $x286)))
+(or $x295 $x273)))))) :pattern ( (fun_app$ v_b_Visited_G_2$ ?v0) ) :pattern ( (v_b_SP_G_2$ ?v0) ) :pattern ( (fun_app$a v_b_SP_G_1$ ?v0) ) :qid k!38))
+))
+(let (($x3695 (not $x3690)))
+(let (($x3780 (or $x3695 $x3777)))
+(let (($x3783 (not $x3780)))
+(let ((?x1822 (fun_app$a v_b_SP_G_1$ ?v0!14)))
+(let ((?x1821 (v_b_SP_G_2$ ?v0!14)))
+(let (($x1823 (= ?x1821 ?x1822)))
+(let (($x1824 (or (not (fun_app$ v_b_Visited_G_2$ ?v0!14)) $x1823)))
+(let (($x1825 (not $x1824)))
+(let (($x3786 (or $x1825 $x3783)))
+(let (($x3789 (not $x3786)))
+(let (($x3681 (forall ((?v0 B_Vertex$) )(! (>= (+ (fun_app$a v_b_SP_G_1$ ?v0) (* (- 1) (v_b_SP_G_2$ ?v0))) 0) :pattern ( (fun_app$a v_b_SP_G_1$ ?v0) ) :pattern ( (v_b_SP_G_2$ ?v0) ) :qid k!38))
+))
+(let (($x3686 (not $x3681)))
+(let (($x3792 (or $x3686 $x3789)))
+(let (($x3795 (not $x3792)))
+(let ((?x1804 (v_b_SP_G_2$ ?v0!13)))
+(let ((?x1805 (* (- 1) ?x1804)))
+(let ((?x1803 (fun_app$a v_b_SP_G_1$ ?v0!13)))
+(let ((?x1806 (+ ?x1803 ?x1805)))
+(let (($x1807 (>= ?x1806 0)))
+(let (($x1808 (not $x1807)))
+(let (($x3798 (or $x1808 $x3795)))
+(let (($x3801 (not $x3798)))
+(let (($x3673 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let (($x273 (= ?x268 ?x171)))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let ((?x1168 (* (- 1) ?x254)))
+(let (($x1170 (<= (+ ?x171 ?x1168 (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0)))) 0)))
+(let (($x1164 (<= (+ b_Infinity$ (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0)))) 0)))
+(let (($x2712 (or $x1164 $x1170)))
+(let (($x2713 (not $x2712)))
+(or $x2713 $x273)))))))))) :pattern ( (pair$ v_b_v_G_1$ ?v0) ) :pattern ( (fun_app$a v_b_SP_G_1$ ?v0) ) :pattern ( (v_b_SP_G_2$ ?v0) ) :qid k!38))
+))
+(let (($x3678 (not $x3673)))
+(let (($x3665 (forall ((?v0 B_Vertex$) )(! (let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let ((?x1181 (* (- 1) ?x268)))
+(let ((?x263 (b_G$ (pair$ v_b_v_G_1$ ?v0))))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let (($x1180 (= (+ ?x254 ?x263 ?x1181) 0)))
+(let (($x1170 (<= (+ (fun_app$a v_b_SP_G_1$ ?v0) (* (- 1) ?x254) (* (- 1) ?x263)) 0)))
+(let (($x1164 (<= (+ b_Infinity$ (* (- 1) ?x263)) 0)))
+(or $x1164 $x1170 $x1180)))))))) :pattern ( (pair$ v_b_v_G_1$ ?v0) ) :pattern ( (fun_app$a v_b_SP_G_1$ ?v0) ) :pattern ( (v_b_SP_G_2$ ?v0) ) :qid k!38))
+))
+(let (($x3670 (not $x3665)))
+(let (($x2930 (not $x261)))
+(let (($x3655 (forall ((?v0 B_Vertex$) )(! (let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let ((?x1168 (* (- 1) ?x254)))
+(let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(or $x175 (>= (+ ?x171 ?x1168) 0)))))) :pattern ( (fun_app$ v_b_Visited_G_1$ ?v0) ) :pattern ( (fun_app$a v_b_SP_G_1$ ?v0) ) :qid k!38))
+))
+(let (($x3660 (not $x3655)))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let ((?x1168 (* (- 1) ?x254)))
+(let ((?x1207 (+ b_Infinity$ ?x1168)))
+(let (($x1208 (<= ?x1207 0)))
+(let (($x252 (fun_app$ v_b_Visited_G_1$ v_b_v_G_1$)))
+(let ((?x1770 (fun_app$a v_b_SP_G_1$ ?v0!12)))
+(let ((?x1771 (* (- 1) ?x1770)))
+(let ((?x1772 (+ b_Infinity$ ?x1771)))
+(let (($x1773 (<= ?x1772 0)))
+(let (($x1768 (fun_app$ v_b_Visited_G_1$ ?v0!12)))
+(let (($x3804 (or $x1768 $x1773 $x252 $x1208 $x3660 $x2930 $x3670 $x3678 $x3801)))
+(let (($x3807 (not $x3804)))
+(let ((?x242 (fun_app$a v_b_SP_G_3$ b_Source$)))
+(let (($x243 (= ?x242 0)))
+(let (($x3617 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x1135 (>= (+ ?x152 ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ ?v0))) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x1094 (<= (+ b_Infinity$ (* (- 1) ?x227)) 0)))
+(or $x1094 $x917 $x1135)))))) :pattern ( (pair$ ?v1 ?v0) ) :qid k!38))
+))
+(let (($x3622 (not $x3617)))
+(let (($x3625 (or $x3622 $x243)))
+(let (($x3628 (not $x3625)))
+(let ((?x1729 (fun_app$a v_b_SP_G_3$ ?v0!11)))
+(let ((?x1730 (* (- 1) ?x1729)))
+(let ((?x1721 (pair$ ?v1!10 ?v0!11)))
+(let ((?x1722 (b_G$ ?x1721)))
+(let ((?x1716 (fun_app$a v_b_SP_G_3$ ?v1!10)))
+(let ((?x2201 (+ ?x1716 ?x1722 ?x1730)))
+(let (($x2204 (>= ?x2201 0)))
+(let (($x1725 (<= (+ b_Infinity$ (* (- 1) ?x1722)) 0)))
+(let (($x1719 (<= (+ b_Infinity$ (* (- 1) ?x1716)) 0)))
+(let (($x2640 (or $x1719 $x1725 $x2204)))
+(let (($x2645 (not $x2640)))
+(let (($x3631 (or $x2645 $x3628)))
+(let (($x3634 (not $x3631)))
+(let (($x3609 (forall ((?v0 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v0)))
+(let ((?x2186 (+ ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ (?v1!9 ?v0))) (* (- 1) (b_G$ (pair$ (?v1!9 ?v0) ?v0))))))
+(let (($x2187 (= ?x2186 0)))
+(let (($x2171 (<= (+ ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ (?v1!9 ?v0)))) 0)))
+(let (($x2612 (not (or $x2171 (not $x2187)))))
+(let (($x1094 (<= (+ b_Infinity$ (* (- 1) ?x227)) 0)))
+(let (($x123 (= ?v0 b_Source$)))
+(or $x123 $x1094 $x2612)))))))) :pattern ( (fun_app$a v_b_SP_G_3$ ?v0) ) :qid k!38))
+))
+(let (($x3614 (not $x3609)))
+(let (($x3637 (or $x3614 $x3634)))
+(let (($x3640 (not $x3637)))
+(let (($x3595 (forall ((?v1 B_Vertex$) )(! (let ((?x1656 (fun_app$a v_b_SP_G_3$ ?v0!8)))
+(let ((?x1657 (* (- 1) ?x1656)))
+(let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let (($x2143 (= (+ ?x227 ?x1657 (b_G$ (pair$ ?v1 ?v0!8))) 0)))
+(or (>= (+ ?x227 ?x1657) 0) (not $x2143)))))) :pattern ( (fun_app$a v_b_SP_G_3$ ?v1) ) :pattern ( (pair$ ?v1 ?v0!8) ) :qid k!38))
+))
+(let (($x3600 (not $x3595)))
+(let (($x1659 (<= (+ b_Infinity$ (* (- 1) (fun_app$a v_b_SP_G_3$ ?v0!8))) 0)))
+(let (($x1654 (= ?v0!8 b_Source$)))
+(let (($x3603 (or $x1654 $x1659 $x3600)))
+(let (($x3606 (not $x3603)))
+(let (($x3643 (or $x3606 $x3640)))
+(let (($x3646 (not $x3643)))
+(let (($x217 (= v_b_oldSP_G_1$ v_b_oldSP_G_0$)))
+(let (($x2704 (not $x217)))
+(let (($x214 (= v_b_SP_G_3$ v_b_SP_G_1$)))
+(let (($x2703 (not $x214)))
+(let (($x212 (= v_b_v_G_2$ v_b_v_G_0$)))
+(let (($x2702 (not $x212)))
+(let (($x209 (= v_b_Visited_G_3$ v_b_Visited_G_1$)))
+(let (($x2701 (not $x209)))
+(let (($x3585 (forall ((?v0 B_Vertex$) )(! (let (($x997 (<= (+ b_Infinity$ (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(or $x175 $x997))) :pattern ( (fun_app$ v_b_Visited_G_1$ ?v0) ) :pattern ( (fun_app$a v_b_SP_G_1$ ?v0) ) :qid k!38))
+))
+(let (($x3590 (not $x3585)))
+(let (($x3649 (or $x3590 $x2701 $x2702 $x2703 $x2704 $x3646)))
+(let (($x3652 (not $x3649)))
+(let (($x3810 (or $x3652 $x3807)))
+(let (($x3813 (not $x3810)))
+(let (($x3576 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x2123 (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ (?v1!7 ?v0))) (* (- 1) (b_G$ (pair$ (?v1!7 ?v0) ?v0))))))
+(let (($x2124 (= ?x2123 0)))
+(let (($x2108 (<= (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ (?v1!7 ?v0)))) 0)))
+(let (($x2546 (not (or $x2108 (not (fun_app$ v_b_Visited_G_1$ (?v1!7 ?v0))) (not $x2124)))))
+(let (($x997 (<= (+ b_Infinity$ (* (- 1) ?x171)) 0)))
+(let (($x123 (= ?v0 b_Source$)))
+(or $x123 $x997 $x2546)))))))) :pattern ( (fun_app$a v_b_SP_G_1$ ?v0) ) :qid k!38))
+))
+(let (($x3581 (not $x3576)))
+(let (($x3568 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x985 (>= (+ ?x152 ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x176 (not $x175)))
+(or $x176 $x917 $x985))))))) :pattern ( (pair$ ?v1 ?v0) ) :qid k!38))
+))
+(let (($x3573 (not $x3568)))
+(let (($x3560 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let (($x1010 (>= (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(or $x175 (not (fun_app$ v_b_Visited_G_1$ ?v0)) $x1010)))) :pattern ( (fun_app$ v_b_Visited_G_1$ ?v1) (fun_app$ v_b_Visited_G_1$ ?v0) ) :qid k!38))
+))
+(let (($x3565 (not $x3560)))
+(let (($x3551 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(>= ?x171 0)) :pattern ( (fun_app$a v_b_SP_G_1$ ?v0) ) :qid k!38))
+))
+(let (($x3556 (not $x3551)))
+(let ((?x169 (fun_app$a v_b_SP_G_1$ b_Source$)))
+(let (($x170 (= ?x169 0)))
+(let (($x2947 (not $x170)))
+(let (($x3542 (forall ((?v0 B_Vertex$) )(! (let ((?x124 (v_b_SP_G_0$ ?v0)))
+(let ((?x2085 (+ ?x124 (* (- 1) (v_b_SP_G_0$ (?v1!6 ?v0))) (* (- 1) (b_G$ (pair$ (?v1!6 ?v0) ?v0))))))
+(let (($x2086 (= ?x2085 0)))
+(let (($x2070 (<= (+ ?x124 (* (- 1) (v_b_SP_G_0$ (?v1!6 ?v0)))) 0)))
+(let (($x2473 (not (or $x2070 (not (fun_app$ v_b_Visited_G_0$ (?v1!6 ?v0))) (not $x2086)))))
+(let (($x942 (<= (+ b_Infinity$ (* (- 1) ?x124)) 0)))
+(let (($x123 (= ?v0 b_Source$)))
+(or $x123 $x942 $x2473)))))))) :pattern ( (v_b_SP_G_0$ ?v0) ) :qid k!38))
+))
+(let (($x3547 (not $x3542)))
+(let (($x3816 (or $x3547 $x2947 $x3556 $x3565 $x3573 $x3581 $x3813)))
+(let (($x3819 (not $x3816)))
+(let (($x3528 (forall ((?v1 B_Vertex$) )(! (let ((?x1535 (v_b_SP_G_0$ ?v0!5)))
+(let ((?x1536 (* (- 1) ?x1535)))
+(let ((?x124 (v_b_SP_G_0$ ?v1)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x134 (not $x133)))
+(or (>= (+ ?x124 ?x1536) 0) $x134 (not (= (+ ?x124 ?x1536 (b_G$ (pair$ ?v1 ?v0!5))) 0)))))))) :pattern ( (v_b_SP_G_0$ ?v1) ) :pattern ( (fun_app$ v_b_Visited_G_0$ ?v1) ) :pattern ( (pair$ ?v1 ?v0!5) ) :qid k!38))
+))
+(let (($x3533 (not $x3528)))
+(let ((?x1535 (v_b_SP_G_0$ ?v0!5)))
+(let ((?x1536 (* (- 1) ?x1535)))
+(let ((?x1537 (+ b_Infinity$ ?x1536)))
+(let (($x1538 (<= ?x1537 0)))
+(let (($x1533 (= ?v0!5 b_Source$)))
+(let (($x3536 (or $x1533 $x1538 $x3533)))
+(let (($x1534 (not $x1533)))
+(let ((@x5072 (unit-resolution (def-axiom (or $x3536 $x1534)) (hypothesis (not $x3536)) $x1534)))
+(let (($x5500 (= b_Infinity$ ?x1535)))
+(let (($x6555 (not $x5500)))
+(let (($x1539 (not $x1538)))
+(let ((@x5027 (unit-resolution (def-axiom (or $x3536 $x1539)) (hypothesis (not $x3536)) $x1539)))
+(let ((@x5583 (symm (commutativity (= $x5500 (= ?x1535 b_Infinity$))) (= (= ?x1535 b_Infinity$) $x5500))))
+(let (($x5648 (= ?x1535 b_Infinity$)))
+(let (($x3488 (forall ((?v0 B_Vertex$) )(! (let (($x123 (= ?v0 b_Source$)))
+(or $x123 (= (v_b_SP_G_0$ ?v0) b_Infinity$))) :pattern ( (v_b_SP_G_0$ ?v0) ) :qid k!38))
+))
+(let (($x355 (forall ((?v0 B_Vertex$) )(! (let (($x123 (= ?v0 b_Source$)))
+(or $x123 (= (v_b_SP_G_0$ ?v0) b_Infinity$))) :qid k!38))
+))
+(let (($x123 (= ?0 b_Source$)))
+(let (($x352 (or $x123 (= (v_b_SP_G_0$ ?0) b_Infinity$))))
+(let (($x135 (forall ((?v0 B_Vertex$) )(! (let (($x133 (fun_app$ v_b_Visited_G_0$ ?v0)))
+(not $x133)) :qid k!38))
+))
+(let (($x349 (forall ((?v0 B_Vertex$) )(! (let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(or $x128 (= (v_b_SP_G_0$ ?v0) 0)))) :qid k!38))
+))
+(let (($x885 (and $x349 $x355 $x135)))
+(let (($x1324 (forall ((?v0 B_Vertex$) )(! (let (($x1318 (exists ((?v1 B_Vertex$) )(! (let ((?x298 (v_b_SP_G_2$ ?v0)))
+(let ((?x1258 (* (- 1) ?x298)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x1301 (= (+ ?x152 ?x268 ?x1258) 0)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x1257 (>= (+ ?x268 ?x1258) 0)))
+(let (($x1304 (not $x1257)))
+(and $x1304 $x286 $x1301))))))))) :qid k!38))
+))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x1295 (and $x128 (not (<= (+ b_Infinity$ (* (- 1) (v_b_SP_G_2$ ?v0))) 0)))))
+(or (not $x1295) $x1318))))) :qid k!38))
+))
+(let (($x1284 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x298 (v_b_SP_G_2$ ?v0)))
+(let ((?x1258 (* (- 1) ?x298)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x1277 (>= (+ ?x152 ?x268 ?x1258) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x918 (not $x917)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x1271 (and $x286 $x918)))
+(let (($x1274 (not $x1271)))
+(or $x1274 $x1277))))))))))) :qid k!38))
+))
+(let (($x1287 (not $x1284)))
+(let (($x1327 (or $x1287 $x1324)))
+(let (($x1330 (and $x1284 $x1327)))
+(let (($x1265 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let (($x1257 (>= (+ (v_b_SP_G_2$ ?v1) (* (- 1) (v_b_SP_G_2$ ?v0))) 0)))
+(let (($x296 (fun_app$ v_b_Visited_G_2$ ?v0)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x295 (not $x286)))
+(let (($x297 (and $x295 $x296)))
+(let (($x659 (not $x297)))
+(or $x659 $x1257))))))) :qid k!38))
+))
+(let (($x1268 (not $x1265)))
+(let (($x1333 (or $x1268 $x1330)))
+(let (($x1336 (and $x1265 $x1333)))
+(let (($x1251 (forall ((?v0 B_Vertex$) )(! (let ((?x268 (v_b_SP_G_2$ ?v0)))
+(>= ?x268 0)) :qid k!38))
+))
+(let (($x1254 (not $x1251)))
+(let (($x1339 (or $x1254 $x1336)))
+(let (($x1342 (and $x1251 $x1339)))
+(let (($x1345 (or $x768 $x1342)))
+(let (($x1348 (and $x292 $x1345)))
+(let (($x647 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let (($x273 (= ?x268 ?x171)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v0)))
+(let (($x295 (not $x286)))
+(or $x295 $x273)))))) :qid k!38))
+))
+(let (($x780 (not $x647)))
+(let (($x1351 (or $x780 $x1348)))
+(let (($x1354 (and $x647 $x1351)))
+(let (($x1242 (forall ((?v0 B_Vertex$) )(! (>= (+ (fun_app$a v_b_SP_G_1$ ?v0) (* (- 1) (v_b_SP_G_2$ ?v0))) 0) :qid k!38))
+))
+(let (($x1245 (not $x1242)))
+(let (($x1357 (or $x1245 $x1354)))
+(let (($x1360 (and $x1242 $x1357)))
+(let (($x1194 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let (($x273 (= ?x268 ?x171)))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let ((?x1168 (* (- 1) ?x254)))
+(let (($x1170 (<= (+ ?x171 ?x1168 (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0)))) 0)))
+(let (($x1164 (<= (+ b_Infinity$ (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0)))) 0)))
+(let (($x1174 (and (not $x1164) (not $x1170))))
+(or $x1174 $x273))))))))) :qid k!38))
+))
+(let (($x1188 (forall ((?v0 B_Vertex$) )(! (let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let ((?x1181 (* (- 1) ?x268)))
+(let ((?x263 (b_G$ (pair$ v_b_v_G_1$ ?v0))))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let (($x1180 (= (+ ?x254 ?x263 ?x1181) 0)))
+(let (($x1170 (<= (+ (fun_app$a v_b_SP_G_1$ ?v0) (* (- 1) ?x254) (* (- 1) ?x263)) 0)))
+(let (($x1174 (and (not (<= (+ b_Infinity$ (* (- 1) ?x263)) 0)) (not $x1170))))
+(let (($x1177 (not $x1174)))
+(or $x1177 $x1180))))))))) :qid k!38))
+))
+(let (($x1204 (forall ((?v0 B_Vertex$) )(! (let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let ((?x1168 (* (- 1) ?x254)))
+(let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(or $x175 (>= (+ ?x171 ?x1168) 0)))))) :qid k!38))
+))
+(let (($x1209 (not $x1208)))
+(let (($x253 (not $x252)))
+(let (($x1075 (exists ((?v0 B_Vertex$) )(! (let (($x997 (<= (+ b_Infinity$ (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x998 (not $x997)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(let (($x176 (not $x175)))
+(and $x176 $x998))))) :qid k!38))
+))
+(let (($x1230 (and $x1075 $x253 $x1209 $x1204 $x261 $x1188 $x1194)))
+(let (($x1235 (not $x1230)))
+(let (($x1363 (or $x1235 $x1360)))
+(let (($x1141 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x1135 (>= (+ ?x152 ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ ?v0))) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x918 (not $x917)))
+(let (($x1094 (<= (+ b_Infinity$ (* (- 1) ?x227)) 0)))
+(let (($x1095 (not $x1094)))
+(let (($x1129 (and $x1095 $x918)))
+(let (($x1132 (not $x1129)))
+(or $x1132 $x1135)))))))))) :qid k!38))
+))
+(let (($x1144 (not $x1141)))
+(let (($x1147 (or $x1144 $x243)))
+(let (($x1150 (and $x1141 $x1147)))
+(let (($x1123 (forall ((?v0 B_Vertex$) )(! (let (($x1117 (exists ((?v1 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(and (not (>= (+ ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ ?v0))) 0)) (= (+ ?x152 ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ ?v0))) 0)))) :qid k!38))
+))
+(let (($x1094 (<= (+ b_Infinity$ (* (- 1) (fun_app$a v_b_SP_G_3$ ?v0))) 0)))
+(let (($x1095 (not $x1094)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x1098 (and $x128 $x1095)))
+(let (($x1101 (not $x1098)))
+(or $x1101 $x1117)))))))) :qid k!38))
+))
+(let (($x1126 (not $x1123)))
+(let (($x1153 (or $x1126 $x1150)))
+(let (($x1156 (and $x1123 $x1153)))
+(let (($x1078 (not $x1075)))
+(let (($x1084 (and $x1078 $x209 $x212 $x214 $x217)))
+(let (($x1089 (not $x1084)))
+(let (($x1159 (or $x1089 $x1156)))
+(let (($x1366 (and $x1159 $x1363)))
+(let (($x1032 (forall ((?v0 B_Vertex$) )(! (let (($x1026 (exists ((?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x1007 (= (+ ?x152 ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x1010 (>= (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x1012 (not $x1010)))
+(and $x1012 $x175 $x1007))))))) :qid k!38))
+))
+(let (($x997 (<= (+ b_Infinity$ (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x998 (not $x997)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x1001 (and $x128 $x998)))
+(let (($x1004 (not $x1001)))
+(or $x1004 $x1026)))))))) :qid k!38))
+))
+(let (($x992 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x985 (>= (+ ?x152 ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x918 (not $x917)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x978 (and $x175 $x918)))
+(let (($x981 (not $x978)))
+(or $x981 $x985))))))))) :qid k!38))
+))
+(let (($x1040 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let (($x1010 (>= (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x177 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x176 (not $x175)))
+(let (($x178 (and $x176 $x177)))
+(let (($x398 (not $x178)))
+(or $x398 $x1010)))))))) :qid k!38))
+))
+(let (($x1046 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(>= ?x171 0)) :qid k!38))
+))
+(let (($x975 (forall ((?v0 B_Vertex$) )(! (let (($x969 (exists ((?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x124 (v_b_SP_G_0$ ?v1)))
+(let (($x952 (= (+ ?x124 (* (- 1) (v_b_SP_G_0$ ?v0)) ?x152) 0)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x902 (>= (+ ?x124 (* (- 1) (v_b_SP_G_0$ ?v0))) 0)))
+(let (($x955 (not $x902)))
+(and $x955 $x133 $x952))))))) :qid k!38))
+))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x946 (and $x128 (not (<= (+ b_Infinity$ (* (- 1) (v_b_SP_G_0$ ?v0))) 0)))))
+(let (($x949 (not $x946)))
+(or $x949 $x969)))))) :qid k!38))
+))
+(let (($x1064 (and $x975 $x170 $x1046 $x1040 $x992 $x1032)))
+(let (($x1069 (not $x1064)))
+(let (($x1369 (or $x1069 $x1366)))
+(let (($x1372 (and $x975 $x1369)))
+(let (($x934 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x124 (v_b_SP_G_0$ ?v1)))
+(let (($x928 (>= (+ ?x124 (* (- 1) (v_b_SP_G_0$ ?v0)) ?x152) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x918 (not $x917)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x921 (and $x133 $x918)))
+(let (($x924 (not $x921)))
+(or $x924 $x928))))))))) :qid k!38))
+))
+(let (($x937 (not $x934)))
+(let (($x1375 (or $x937 $x1372)))
+(let (($x1378 (and $x934 $x1375)))
+(let (($x909 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let (($x902 (>= (+ (v_b_SP_G_0$ ?v1) (* (- 1) (v_b_SP_G_0$ ?v0))) 0)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x134 (not $x133)))
+(let (($x146 (and $x134 (fun_app$ v_b_Visited_G_0$ ?v0))))
+(let (($x377 (not $x146)))
+(or $x377 $x902)))))) :qid k!38))
+))
+(let (($x912 (not $x909)))
+(let (($x1381 (or $x912 $x1378)))
+(let (($x1384 (and $x909 $x1381)))
+(let (($x894 (forall ((?v0 B_Vertex$) )(! (let ((?x124 (v_b_SP_G_0$ ?v0)))
+(>= ?x124 0)) :qid k!38))
+))
+(let (($x897 (not $x894)))
+(let (($x1387 (or $x897 $x1384)))
+(let (($x1390 (and $x894 $x1387)))
+(let ((?x141 (v_b_SP_G_0$ b_Source$)))
+(let (($x142 (= ?x141 0)))
+(let (($x864 (not $x142)))
+(let (($x1393 (or $x864 $x1390)))
+(let (($x1396 (and $x142 $x1393)))
+(let (($x1402 (not (or (not $x885) $x1396))))
+(let (($x315 (forall ((?v0 B_Vertex$) )(! (let (($x313 (exists ((?v1 B_Vertex$) )(! (let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x311 (and $x286 (= (v_b_SP_G_2$ ?v0) (+ (v_b_SP_G_2$ ?v1) (b_G$ (pair$ ?v1 ?v0)))))))
+(let ((?x298 (v_b_SP_G_2$ ?v0)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let (($x309 (< ?x268 ?x298)))
+(and $x309 $x311)))))) :qid k!38))
+))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x308 (and $x128 (< (v_b_SP_G_2$ ?v0) b_Infinity$))))
+(=> $x308 $x313))))) :qid k!38))
+))
+(let (($x316 (and $x315 false)))
+(let (($x317 (=> $x316 true)))
+(let (($x318 (and $x315 $x317)))
+(let (($x306 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let ((?x303 (+ ?x268 ?x152)))
+(let ((?x298 (v_b_SP_G_2$ ?v0)))
+(let (($x153 (< ?x152 b_Infinity$)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x302 (and $x286 $x153)))
+(=> $x302 (<= ?x298 ?x303))))))))) :qid k!38))
+))
+(let (($x319 (=> $x306 $x318)))
+(let (($x301 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let ((?x298 (v_b_SP_G_2$ ?v0)))
+(let (($x299 (<= ?x298 ?x268)))
+(let (($x296 (fun_app$ v_b_Visited_G_2$ ?v0)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x295 (not $x286)))
+(let (($x297 (and $x295 $x296)))
+(=> $x297 $x299)))))))) :qid k!38))
+))
+(let (($x321 (=> $x301 (and $x306 $x319))))
+(let (($x294 (forall ((?v0 B_Vertex$) )(! (let ((?x268 (v_b_SP_G_2$ ?v0)))
+(<= 0 ?x268)) :qid k!38))
+))
+(let (($x323 (=> $x294 (and $x301 $x321))))
+(let (($x325 (=> $x292 (and $x294 $x323))))
+(let (($x288 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let (($x273 (= ?x268 ?x171)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v0)))
+(=> $x286 $x273))))) :qid k!38))
+))
+(let (($x290 (and $x288 (and true true))))
+(let (($x327 (=> $x290 (and $x292 $x325))))
+(let (($x285 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x268 (v_b_SP_G_2$ ?v0)))
+(<= ?x268 ?x171))) :qid k!38))
+))
+(let (($x329 (=> $x285 (and $x288 $x327))))
+(let (($x275 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let (($x273 (= ?x268 ?x171)))
+(let ((?x263 (b_G$ (pair$ v_b_v_G_1$ ?v0))))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let ((?x265 (+ ?x254 ?x263)))
+(let (($x267 (and (< ?x263 b_Infinity$) (< ?x265 ?x171))))
+(let (($x272 (not $x267)))
+(=> $x272 $x273))))))))) :qid k!38))
+))
+(let (($x271 (forall ((?v0 B_Vertex$) )(! (let ((?x263 (b_G$ (pair$ v_b_v_G_1$ ?v0))))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let ((?x265 (+ ?x254 ?x263)))
+(let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let (($x269 (= ?x268 ?x265)))
+(let (($x267 (and (< ?x263 b_Infinity$) (< ?x265 (fun_app$a v_b_SP_G_1$ ?v0)))))
+(=> $x267 $x269))))))) :qid k!38))
+))
+(let (($x258 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let (($x256 (<= ?x254 ?x171)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(let (($x176 (not $x175)))
+(=> $x176 $x256)))))) :qid k!38))
+))
+(let (($x255 (< ?x254 b_Infinity$)))
+(let (($x206 (exists ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let (($x188 (< ?x171 b_Infinity$)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(let (($x176 (not $x175)))
+(and $x176 $x188))))) :qid k!38))
+))
+(let (($x281 (and $x206 (and $x253 (and $x255 (and $x258 (and $x261 (and $x271 $x275))))))))
+(let (($x282 (and true $x281)))
+(let (($x283 (and true $x282)))
+(let (($x331 (=> $x283 (and $x285 $x329))))
+(let (($x245 (and $x243 (=> $x243 true))))
+(let (($x241 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let ((?x232 (+ ?x227 ?x152)))
+(let ((?x230 (fun_app$a v_b_SP_G_3$ ?v0)))
+(let (($x153 (< ?x152 b_Infinity$)))
+(let (($x228 (< ?x227 b_Infinity$)))
+(let (($x238 (and $x228 $x153)))
+(=> $x238 (<= ?x230 ?x232))))))))) :qid k!38))
+))
+(let (($x246 (=> $x241 $x245)))
+(let (($x237 (forall ((?v0 B_Vertex$) )(! (let (($x235 (exists ((?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let ((?x232 (+ ?x227 ?x152)))
+(let ((?x230 (fun_app$a v_b_SP_G_3$ ?v0)))
+(let (($x231 (< ?x227 ?x230)))
+(and $x231 (= ?x230 ?x232))))))) :qid k!38))
+))
+(let ((?x227 (fun_app$a v_b_SP_G_3$ ?v0)))
+(let (($x228 (< ?x227 b_Infinity$)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x229 (and $x128 $x228)))
+(=> $x229 $x235))))))) :qid k!38))
+))
+(let (($x248 (=> $x237 (and $x241 $x246))))
+(let (($x222 (and true (and $x209 (and $x212 (and $x214 (and $x217 true)))))))
+(let (($x223 (and true $x222)))
+(let (($x207 (not $x206)))
+(let (($x225 (and true (and $x207 $x223))))
+(let (($x226 (and true $x225)))
+(let (($x250 (=> $x226 (and $x237 $x248))))
+(let (($x196 (forall ((?v0 B_Vertex$) )(! (let (($x194 (exists ((?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x184 (+ ?x171 ?x152)))
+(let ((?x179 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x190 (< ?x171 ?x179)))
+(and $x190 (and $x175 (= ?x179 ?x184))))))))) :qid k!38))
+))
+(let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let (($x188 (< ?x171 b_Infinity$)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x189 (and $x128 $x188)))
+(=> $x189 $x194))))))) :qid k!38))
+))
+(let (($x197 (and $x196 true)))
+(let (($x187 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x184 (+ ?x171 ?x152)))
+(let ((?x179 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let (($x153 (< ?x152 b_Infinity$)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x183 (and $x175 $x153)))
+(=> $x183 (<= ?x179 ?x184))))))))) :qid k!38))
+))
+(let (($x182 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x179 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let (($x180 (<= ?x179 ?x171)))
+(let (($x177 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x176 (not $x175)))
+(let (($x178 (and $x176 $x177)))
+(=> $x178 $x180)))))))) :qid k!38))
+))
+(let (($x173 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(<= 0 ?x171)) :qid k!38))
+))
+(let (($x202 (and true (and $x170 (and $x173 (and $x182 (and $x187 $x197)))))))
+(let (($x203 (and true $x202)))
+(let (($x167 (forall ((?v0 B_Vertex$) )(! (let (($x165 (exists ((?v1 B_Vertex$) )(! (let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x163 (and $x133 (= (v_b_SP_G_0$ ?v0) (+ (v_b_SP_G_0$ ?v1) (b_G$ (pair$ ?v1 ?v0)))))))
+(and (< (v_b_SP_G_0$ ?v1) (v_b_SP_G_0$ ?v0)) $x163))) :qid k!38))
+))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x160 (and $x128 (< (v_b_SP_G_0$ ?v0) b_Infinity$))))
+(=> $x160 $x165))))) :qid k!38))
+))
+(let (($x333 (=> (and $x167 $x203) (and $x250 $x331))))
+(let (($x158 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x147 (v_b_SP_G_0$ ?v0)))
+(let (($x156 (<= ?x147 (+ (v_b_SP_G_0$ ?v1) (b_G$ (pair$ ?v1 ?v0))))))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x153 (< ?x152 b_Infinity$)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x154 (and $x133 $x153)))
+(=> $x154 $x156))))))) :qid k!38))
+))
+(let (($x335 (=> $x158 (and $x167 $x333))))
+(let (($x150 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x124 (v_b_SP_G_0$ ?v1)))
+(let ((?x147 (v_b_SP_G_0$ ?v0)))
+(let (($x148 (<= ?x147 ?x124)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x134 (not $x133)))
+(let (($x146 (and $x134 (fun_app$ v_b_Visited_G_0$ ?v0))))
+(=> $x146 $x148))))))) :qid k!38))
+))
+(let (($x337 (=> $x150 (and $x158 $x335))))
+(let (($x144 (forall ((?v0 B_Vertex$) )(! (let ((?x124 (v_b_SP_G_0$ ?v0)))
+(<= 0 ?x124)) :qid k!38))
+))
+(let (($x339 (=> $x144 (and $x150 $x337))))
+(let (($x341 (=> $x142 (and $x144 $x339))))
+(let (($x131 (forall ((?v0 B_Vertex$) )(! (let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(=> $x128 (= (v_b_SP_G_0$ ?v0) b_Infinity$)))) :qid k!38))
+))
+(let (($x127 (forall ((?v0 B_Vertex$) )(! (let (($x123 (= ?v0 b_Source$)))
+(=> $x123 (= (v_b_SP_G_0$ ?v0) 0))) :qid k!38))
+))
+(let (($x139 (and true (and $x127 (and $x131 (and $x135 true))))))
+(let (($x140 (and true $x139)))
+(let (($x343 (=> $x140 (and $x142 $x341))))
+(let (($x344 (not $x343)))
+(let (($x705 (forall ((?v0 B_Vertex$) )(! (let (($x693 (exists ((?v1 B_Vertex$) )(! (let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x666 (+ ?x152 ?x268)))
+(let ((?x298 (v_b_SP_G_2$ ?v0)))
+(let (($x684 (= ?x298 ?x666)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x687 (and $x286 $x684)))
+(let (($x309 (< ?x268 ?x298)))
+(and $x309 $x687))))))))) :qid k!38))
+))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x308 (and $x128 (< (v_b_SP_G_2$ ?v0) b_Infinity$))))
+(or (not $x308) $x693))))) :qid k!38))
+))
+(let (($x681 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x666 (+ ?x152 ?x268)))
+(let ((?x298 (v_b_SP_G_2$ ?v0)))
+(let (($x669 (<= ?x298 ?x666)))
+(or (not (and (fun_app$ v_b_Visited_G_2$ ?v1) (< ?x152 b_Infinity$))) $x669)))))) :qid k!38))
+))
+(let (($x733 (or (not $x681) $x705)))
+(let (($x738 (and $x681 $x733)))
+(let (($x663 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let ((?x298 (v_b_SP_G_2$ ?v0)))
+(let (($x299 (<= ?x298 ?x268)))
+(let (($x296 (fun_app$ v_b_Visited_G_2$ ?v0)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x295 (not $x286)))
+(let (($x297 (and $x295 $x296)))
+(let (($x659 (not $x297)))
+(or $x659 $x299))))))))) :qid k!38))
+))
+(let (($x745 (or (not $x663) $x738)))
+(let (($x750 (and $x663 $x745)))
+(let (($x757 (or (not $x294) $x750)))
+(let (($x762 (and $x294 $x757)))
+(let (($x769 (or $x768 $x762)))
+(let (($x774 (and $x292 $x769)))
+(let (($x781 (or $x780 $x774)))
+(let (($x786 (and $x647 $x781)))
+(let (($x793 (or (not $x285) $x786)))
+(let (($x798 (and $x285 $x793)))
+(let (($x612 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let (($x273 (= ?x268 ?x171)))
+(let ((?x263 (b_G$ (pair$ v_b_v_G_1$ ?v0))))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let ((?x265 (+ ?x254 ?x263)))
+(let (($x267 (and (< ?x263 b_Infinity$) (< ?x265 ?x171))))
+(or $x267 $x273)))))))) :qid k!38))
+))
+(let (($x606 (forall ((?v0 B_Vertex$) )(! (let ((?x263 (b_G$ (pair$ v_b_v_G_1$ ?v0))))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let ((?x265 (+ ?x254 ?x263)))
+(let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let (($x269 (= ?x268 ?x265)))
+(let (($x267 (and (< ?x263 b_Infinity$) (< ?x265 (fun_app$a v_b_SP_G_1$ ?v0)))))
+(let (($x272 (not $x267)))
+(or $x272 $x269)))))))) :qid k!38))
+))
+(let (($x615 (and $x606 $x612)))
+(let (($x618 (and $x261 $x615)))
+(let (($x600 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let (($x256 (<= ?x254 ?x171)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(or $x175 $x256))))) :qid k!38))
+))
+(let (($x621 (and $x600 $x618)))
+(let (($x624 (and $x255 $x621)))
+(let (($x627 (and $x253 $x624)))
+(let (($x630 (and $x206 $x627)))
+(let (($x805 (or (not $x630) $x798)))
+(let (($x552 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x516 (+ ?x152 ?x227)))
+(let ((?x230 (fun_app$a v_b_SP_G_3$ ?v0)))
+(let (($x540 (<= ?x230 ?x516)))
+(or (not (and (< ?x227 b_Infinity$) (< ?x152 b_Infinity$))) $x540)))))) :qid k!38))
+))
+(let (($x568 (or (not $x552) $x243)))
+(let (($x573 (and $x552 $x568)))
+(let (($x537 (forall ((?v0 B_Vertex$) )(! (let (($x525 (exists ((?v1 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x516 (+ ?x152 ?x227)))
+(let ((?x230 (fun_app$a v_b_SP_G_3$ ?v0)))
+(let (($x519 (= ?x230 ?x516)))
+(let (($x231 (< ?x227 ?x230)))
+(and $x231 $x519))))))) :qid k!38))
+))
+(let ((?x227 (fun_app$a v_b_SP_G_3$ ?v0)))
+(let (($x228 (< ?x227 b_Infinity$)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x229 (and $x128 $x228)))
+(or (not $x229) $x525))))))) :qid k!38))
+))
+(let (($x580 (or (not $x537) $x573)))
+(let (($x585 (and $x537 $x580)))
+(let (($x592 (or (not (and $x207 (and $x209 (and $x212 (and $x214 $x217))))) $x585)))
+(let (($x810 (and $x592 $x805)))
+(let (($x444 (forall ((?v0 B_Vertex$) )(! (let (($x432 (exists ((?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x405 (+ ?x152 ?x171)))
+(let ((?x179 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let (($x423 (= ?x179 ?x405)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x426 (and $x175 $x423)))
+(let (($x190 (< ?x171 ?x179)))
+(and $x190 $x426))))))))) :qid k!38))
+))
+(let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let (($x188 (< ?x171 b_Infinity$)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x189 (and $x128 $x188)))
+(or (not $x189) $x432))))))) :qid k!38))
+))
+(let (($x420 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x405 (+ ?x152 ?x171)))
+(let ((?x179 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let (($x408 (<= ?x179 ?x405)))
+(or (not (and (fun_app$ v_b_Visited_G_1$ ?v1) (< ?x152 b_Infinity$))) $x408)))))) :qid k!38))
+))
+(let (($x454 (and $x420 $x444)))
+(let (($x402 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x179 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let (($x180 (<= ?x179 ?x171)))
+(let (($x177 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x176 (not $x175)))
+(let (($x178 (and $x176 $x177)))
+(let (($x398 (not $x178)))
+(or $x398 $x180))))))))) :qid k!38))
+))
+(let (($x457 (and $x402 $x454)))
+(let (($x460 (and $x173 $x457)))
+(let (($x463 (and $x170 $x460)))
+(let (($x395 (forall ((?v0 B_Vertex$) )(! (let (($x165 (exists ((?v1 B_Vertex$) )(! (let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x163 (and $x133 (= (v_b_SP_G_0$ ?v0) (+ (v_b_SP_G_0$ ?v1) (b_G$ (pair$ ?v1 ?v0)))))))
+(and (< (v_b_SP_G_0$ ?v1) (v_b_SP_G_0$ ?v0)) $x163))) :qid k!38))
+))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x160 (and $x128 (< (v_b_SP_G_0$ ?v0) b_Infinity$))))
+(or (not $x160) $x165))))) :qid k!38))
+))
+(let (($x477 (and $x395 $x463)))
+(let (($x817 (or (not $x477) $x810)))
+(let (($x822 (and $x395 $x817)))
+(let (($x388 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x147 (v_b_SP_G_0$ ?v0)))
+(let (($x156 (<= ?x147 (+ (v_b_SP_G_0$ ?v1) (b_G$ (pair$ ?v1 ?v0))))))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x153 (< ?x152 b_Infinity$)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x154 (and $x133 $x153)))
+(or (not $x154) $x156))))))) :qid k!38))
+))
+(let (($x829 (or (not $x388) $x822)))
+(let (($x834 (and $x388 $x829)))
+(let (($x381 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x124 (v_b_SP_G_0$ ?v1)))
+(let ((?x147 (v_b_SP_G_0$ ?v0)))
+(let (($x148 (<= ?x147 ?x124)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x134 (not $x133)))
+(let (($x146 (and $x134 (fun_app$ v_b_Visited_G_0$ ?v0))))
+(let (($x377 (not $x146)))
+(or $x377 $x148)))))))) :qid k!38))
+))
+(let (($x841 (or (not $x381) $x834)))
+(let (($x846 (and $x381 $x841)))
+(let (($x853 (or (not $x144) $x846)))
+(let (($x858 (and $x144 $x853)))
+(let (($x865 (or $x864 $x858)))
+(let (($x870 (and $x142 $x865)))
+(let (($x877 (or (not (and $x349 (and $x355 $x135))) $x870)))
+(let (($x1318 (exists ((?v1 B_Vertex$) )(! (let ((?x298 (v_b_SP_G_2$ ?0)))
+(let ((?x1258 (* (- 1) ?x298)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?0))))
+(let (($x1301 (= (+ ?x152 ?x268 ?x1258) 0)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x1257 (>= (+ ?x268 ?x1258) 0)))
+(let (($x1304 (not $x1257)))
+(and $x1304 $x286 $x1301))))))))) :qid k!38))
+))
+(let (($x128 (not $x123)))
+(let (($x1295 (and $x128 (not (<= (+ b_Infinity$ (* (- 1) (v_b_SP_G_2$ ?0))) 0)))))
+(let (($x693 (exists ((?v1 B_Vertex$) )(! (let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?0))))
+(let ((?x666 (+ ?x152 ?x268)))
+(let ((?x298 (v_b_SP_G_2$ ?0)))
+(let (($x684 (= ?x298 ?x666)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x687 (and $x286 $x684)))
+(let (($x309 (< ?x268 ?x298)))
+(and $x309 $x687))))))))) :qid k!38))
+))
+(let (($x700 (or (not (and $x128 (< (v_b_SP_G_2$ ?0) b_Infinity$))) $x693)))
+(let ((?x298 (v_b_SP_G_2$ ?1)))
+(let ((?x1258 (* (- 1) ?x298)))
+(let ((?x268 (v_b_SP_G_2$ ?0)))
+(let ((?x152 (b_G$ (pair$ ?0 ?1))))
+(let (($x1301 (= (+ ?x152 ?x268 ?x1258) 0)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?0)))
+(let (($x1257 (>= (+ ?x268 ?x1258) 0)))
+(let (($x1304 (not $x1257)))
+(let (($x1313 (and $x1304 $x286 $x1301)))
+(let ((?x666 (+ ?x152 ?x268)))
+(let (($x684 (= ?x298 ?x666)))
+(let (($x687 (and $x286 $x684)))
+(let (($x309 (< ?x268 ?x298)))
+(let (($x690 (and $x309 $x687)))
+(let ((@x1312 (monotonicity (rewrite (= $x309 $x1304)) (monotonicity (rewrite (= $x684 $x1301)) (= $x687 (and $x286 $x1301))) (= $x690 (and $x1304 (and $x286 $x1301))))))
+(let ((@x1317 (trans @x1312 (rewrite (= (and $x1304 (and $x286 $x1301)) $x1313)) (= $x690 $x1313))))
+(let (($x1293 (= (< ?x268 b_Infinity$) (not (<= (+ b_Infinity$ (* (- 1) ?x268)) 0)))))
+(let ((@x1297 (monotonicity (rewrite $x1293) (= (and $x128 (< ?x268 b_Infinity$)) $x1295))))
+(let ((@x1300 (monotonicity @x1297 (= (not (and $x128 (< ?x268 b_Infinity$))) (not $x1295)))))
+(let ((@x1323 (monotonicity @x1300 (quant-intro @x1317 (= $x693 $x1318)) (= $x700 (or (not $x1295) $x1318)))))
+(let (($x1277 (>= (+ ?x152 ?x268 ?x1258) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x918 (not $x917)))
+(let (($x1271 (and $x286 $x918)))
+(let (($x1274 (not $x1271)))
+(let (($x1281 (or $x1274 $x1277)))
+(let (($x669 (<= ?x298 ?x666)))
+(let (($x676 (or (not (and $x286 (< ?x152 b_Infinity$))) $x669)))
+(let ((@x920 (rewrite (= (< ?x152 b_Infinity$) $x918))))
+(let ((@x1276 (monotonicity (monotonicity @x920 (= (and $x286 (< ?x152 b_Infinity$)) $x1271)) (= (not (and $x286 (< ?x152 b_Infinity$))) $x1274))))
+(let ((@x1286 (quant-intro (monotonicity @x1276 (rewrite (= $x669 $x1277)) (= $x676 $x1281)) (= $x681 $x1284))))
+(let ((@x1329 (monotonicity (monotonicity @x1286 (= (not $x681) $x1287)) (quant-intro @x1323 (= $x705 $x1324)) (= $x733 $x1327))))
+(let (($x296 (fun_app$ v_b_Visited_G_2$ ?1)))
+(let (($x295 (not $x286)))
+(let (($x297 (and $x295 $x296)))
+(let (($x659 (not $x297)))
+(let (($x1262 (or $x659 $x1257)))
+(let (($x299 (<= ?x298 ?x268)))
+(let (($x660 (or $x659 $x299)))
+(let ((@x1267 (quant-intro (monotonicity (rewrite (= $x299 $x1257)) (= $x660 $x1262)) (= $x663 $x1265))))
+(let ((@x1335 (monotonicity (monotonicity @x1267 (= (not $x663) $x1268)) (monotonicity @x1286 @x1329 (= $x738 $x1330)) (= $x745 $x1333))))
+(let ((@x1253 (quant-intro (rewrite (= (<= 0 ?x268) (>= ?x268 0))) (= $x294 $x1251))))
+(let ((@x1341 (monotonicity (monotonicity @x1253 (= (not $x294) $x1254)) (monotonicity @x1267 @x1335 (= $x750 $x1336)) (= $x757 $x1339))))
+(let ((@x1347 (monotonicity (monotonicity @x1253 @x1341 (= $x762 $x1342)) (= $x769 $x1345))))
+(let ((@x1356 (monotonicity (monotonicity (monotonicity @x1347 (= $x774 $x1348)) (= $x781 $x1351)) (= $x786 $x1354))))
+(let (($x1238 (>= (+ (fun_app$a v_b_SP_G_1$ ?0) (* (- 1) ?x268)) 0)))
+(let ((@x1244 (quant-intro (rewrite (= (<= ?x268 (fun_app$a v_b_SP_G_1$ ?0)) $x1238)) (= $x285 $x1242))))
+(let ((@x1359 (monotonicity (monotonicity @x1244 (= (not $x285) $x1245)) @x1356 (= $x793 $x1357))))
+(let (($x1227 (and $x1075 (and $x253 (and $x1209 (and $x1204 (and $x261 (and $x1188 $x1194))))))))
+(let (($x1225 (= $x627 (and $x253 (and $x1209 (and $x1204 (and $x261 (and $x1188 $x1194))))))))
+(let ((?x171 (fun_app$a v_b_SP_G_1$ ?0)))
+(let (($x273 (= ?x268 ?x171)))
+(let (($x1170 (<= (+ ?x171 ?x1168 (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?0)))) 0)))
+(let (($x1164 (<= (+ b_Infinity$ (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?0)))) 0)))
+(let (($x1174 (and (not $x1164) (not $x1170))))
+(let (($x1191 (or $x1174 $x273)))
+(let (($x267 (and (< (b_G$ (pair$ v_b_v_G_1$ ?0)) b_Infinity$) (< (+ ?x254 (b_G$ (pair$ v_b_v_G_1$ ?0))) ?x171))))
+(let (($x609 (or $x267 $x273)))
+(let ((@x1173 (rewrite (= (< (+ ?x254 (b_G$ (pair$ v_b_v_G_1$ ?0))) ?x171) (not $x1170)))))
+(let ((@x1167 (rewrite (= (< (b_G$ (pair$ v_b_v_G_1$ ?0)) b_Infinity$) (not $x1164)))))
+(let ((@x1193 (monotonicity (monotonicity @x1167 @x1173 (= $x267 $x1174)) (= $x609 $x1191))))
+(let (($x1180 (= (+ ?x254 (b_G$ (pair$ v_b_v_G_1$ ?0)) (* (- 1) ?x268)) 0)))
+(let (($x1177 (not $x1174)))
+(let (($x1185 (or $x1177 $x1180)))
+(let ((?x263 (b_G$ (pair$ v_b_v_G_1$ ?0))))
+(let ((?x265 (+ ?x254 ?x263)))
+(let (($x269 (= ?x268 ?x265)))
+(let (($x272 (not $x267)))
+(let (($x603 (or $x272 $x269)))
+(let ((@x1179 (monotonicity (monotonicity @x1167 @x1173 (= $x267 $x1174)) (= $x272 $x1177))))
+(let ((@x1190 (quant-intro (monotonicity @x1179 (rewrite (= $x269 $x1180)) (= $x603 $x1185)) (= $x606 $x1188))))
+(let ((@x1214 (monotonicity @x1190 (quant-intro @x1193 (= $x612 $x1194)) (= $x615 (and $x1188 $x1194)))))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?0)))
+(let (($x1201 (or $x175 (>= (+ ?x171 ?x1168) 0))))
+(let (($x256 (<= ?x254 ?x171)))
+(let (($x597 (or $x175 $x256)))
+(let ((@x1203 (monotonicity (rewrite (= $x256 (>= (+ ?x171 ?x1168) 0))) (= $x597 $x1201))))
+(let ((@x1220 (monotonicity (quant-intro @x1203 (= $x600 $x1204)) (monotonicity @x1214 (= $x618 (and $x261 (and $x1188 $x1194)))) (= $x621 (and $x1204 (and $x261 (and $x1188 $x1194)))))))
+(let ((@x1223 (monotonicity (rewrite (= $x255 $x1209)) @x1220 (= $x624 (and $x1209 (and $x1204 (and $x261 (and $x1188 $x1194))))))))
+(let (($x997 (<= (+ b_Infinity$ (* (- 1) ?x171)) 0)))
+(let (($x998 (not $x997)))
+(let (($x176 (not $x175)))
+(let (($x1072 (and $x176 $x998)))
+(let ((@x1074 (monotonicity (rewrite (= (< ?x171 b_Infinity$) $x998)) (= (and $x176 (< ?x171 b_Infinity$)) $x1072))))
+(let ((@x1229 (monotonicity (quant-intro @x1074 (= $x206 $x1075)) (monotonicity @x1223 $x1225) (= $x630 $x1227))))
+(let ((@x1237 (monotonicity (trans @x1229 (rewrite (= $x1227 $x1230)) (= $x630 $x1230)) (= (not $x630) $x1235))))
+(let ((@x1365 (monotonicity @x1237 (monotonicity @x1244 @x1359 (= $x798 $x1360)) (= $x805 $x1363))))
+(let ((?x227 (fun_app$a v_b_SP_G_3$ ?0)))
+(let (($x1135 (>= (+ ?x152 ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ ?1))) 0)))
+(let (($x1094 (<= (+ b_Infinity$ (* (- 1) ?x227)) 0)))
+(let (($x1095 (not $x1094)))
+(let (($x1129 (and $x1095 $x918)))
+(let (($x1132 (not $x1129)))
+(let (($x1138 (or $x1132 $x1135)))
+(let ((?x516 (+ ?x152 ?x227)))
+(let ((?x230 (fun_app$a v_b_SP_G_3$ ?1)))
+(let (($x540 (<= ?x230 ?x516)))
+(let (($x547 (or (not (and (< ?x227 b_Infinity$) (< ?x152 b_Infinity$))) $x540)))
+(let ((@x1131 (monotonicity (rewrite (= (< ?x227 b_Infinity$) $x1095)) @x920 (= (and (< ?x227 b_Infinity$) (< ?x152 b_Infinity$)) $x1129))))
+(let ((@x1134 (monotonicity @x1131 (= (not (and (< ?x227 b_Infinity$) (< ?x152 b_Infinity$))) $x1132))))
+(let ((@x1143 (quant-intro (monotonicity @x1134 (rewrite (= $x540 $x1135)) (= $x547 $x1138)) (= $x552 $x1141))))
+(let ((@x1149 (monotonicity (monotonicity @x1143 (= (not $x552) $x1144)) (= $x568 $x1147))))
+(let (($x1117 (exists ((?v1 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?0))))
+(and (not (>= (+ ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ ?0))) 0)) (= (+ ?x152 ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ ?0))) 0)))) :qid k!38))
+))
+(let (($x1098 (and $x128 $x1095)))
+(let (($x1101 (not $x1098)))
+(let (($x1120 (or $x1101 $x1117)))
+(let (($x525 (exists ((?v1 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?0))))
+(let ((?x516 (+ ?x152 ?x227)))
+(let ((?x230 (fun_app$a v_b_SP_G_3$ ?0)))
+(let (($x519 (= ?x230 ?x516)))
+(let (($x231 (< ?x227 ?x230)))
+(and $x231 $x519))))))) :qid k!38))
+))
+(let (($x532 (or (not (and $x128 (< ?x227 b_Infinity$))) $x525)))
+(let (($x1114 (and (not (>= (+ ?x227 (* (- 1) ?x230)) 0)) (= (+ ?x152 ?x227 (* (- 1) ?x230)) 0))))
+(let (($x519 (= ?x230 ?x516)))
+(let (($x231 (< ?x227 ?x230)))
+(let (($x522 (and $x231 $x519)))
+(let ((@x1116 (monotonicity (rewrite (= $x231 (not (>= (+ ?x227 (* (- 1) ?x230)) 0)))) (rewrite (= $x519 (= (+ ?x152 ?x227 (* (- 1) ?x230)) 0))) (= $x522 $x1114))))
+(let ((@x1100 (monotonicity (rewrite (= (< ?x227 b_Infinity$) $x1095)) (= (and $x128 (< ?x227 b_Infinity$)) $x1098))))
+(let ((@x1122 (monotonicity (monotonicity @x1100 (= (not (and $x128 (< ?x227 b_Infinity$))) $x1101)) (quant-intro @x1116 (= $x525 $x1117)) (= $x532 $x1120))))
+(let ((@x1128 (monotonicity (quant-intro @x1122 (= $x537 $x1123)) (= (not $x537) $x1126))))
+(let ((@x1155 (monotonicity @x1128 (monotonicity @x1143 @x1149 (= $x573 $x1150)) (= $x580 $x1153))))
+(let ((@x1086 (rewrite (= (and $x1078 (and $x209 (and $x212 (and $x214 $x217)))) $x1084))))
+(let (($x488 (and $x209 (and $x212 (and $x214 $x217)))))
+(let (($x502 (and $x207 $x488)))
+(let ((@x1083 (monotonicity (monotonicity (quant-intro @x1074 (= $x206 $x1075)) (= $x207 $x1078)) (= $x502 (and $x1078 $x488)))))
+(let ((@x1091 (monotonicity (trans @x1083 @x1086 (= $x502 $x1084)) (= (not $x502) $x1089))))
+(let ((@x1161 (monotonicity @x1091 (monotonicity (quant-intro @x1122 (= $x537 $x1123)) @x1155 (= $x585 $x1156)) (= $x592 $x1159))))
+(let (($x1065 (= (and $x975 (and $x170 (and $x1046 (and $x1040 (and $x992 $x1032))))) $x1064)))
+(let (($x1062 (= $x477 (and $x975 (and $x170 (and $x1046 (and $x1040 (and $x992 $x1032))))))))
+(let (($x1026 (exists ((?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?0))))
+(let (($x1007 (= (+ ?x152 ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?0))) 0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x1010 (>= (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?0))) 0)))
+(let (($x1012 (not $x1010)))
+(and $x1012 $x175 $x1007))))))) :qid k!38))
+))
+(let (($x1001 (and $x128 $x998)))
+(let (($x1004 (not $x1001)))
+(let (($x1029 (or $x1004 $x1026)))
+(let (($x432 (exists ((?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?0))))
+(let ((?x405 (+ ?x152 ?x171)))
+(let ((?x179 (fun_app$a v_b_SP_G_1$ ?0)))
+(let (($x423 (= ?x179 ?x405)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x426 (and $x175 $x423)))
+(let (($x190 (< ?x171 ?x179)))
+(and $x190 $x426))))))))) :qid k!38))
+))
+(let (($x439 (or (not (and $x128 (< ?x171 b_Infinity$))) $x432)))
+(let (($x1007 (= (+ ?x152 ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?1))) 0)))
+(let (($x1010 (>= (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?1))) 0)))
+(let (($x1012 (not $x1010)))
+(let (($x1021 (and $x1012 $x175 $x1007)))
+(let ((?x405 (+ ?x152 ?x171)))
+(let ((?x179 (fun_app$a v_b_SP_G_1$ ?1)))
+(let (($x423 (= ?x179 ?x405)))
+(let (($x426 (and $x175 $x423)))
+(let (($x190 (< ?x171 ?x179)))
+(let (($x429 (and $x190 $x426)))
+(let ((@x1020 (monotonicity (rewrite (= $x190 $x1012)) (monotonicity (rewrite (= $x423 $x1007)) (= $x426 (and $x175 $x1007))) (= $x429 (and $x1012 (and $x175 $x1007))))))
+(let ((@x1025 (trans @x1020 (rewrite (= (and $x1012 (and $x175 $x1007)) $x1021)) (= $x429 $x1021))))
+(let ((@x1003 (monotonicity (rewrite (= (< ?x171 b_Infinity$) $x998)) (= (and $x128 (< ?x171 b_Infinity$)) $x1001))))
+(let ((@x1031 (monotonicity (monotonicity @x1003 (= (not (and $x128 (< ?x171 b_Infinity$))) $x1004)) (quant-intro @x1025 (= $x432 $x1026)) (= $x439 $x1029))))
+(let (($x985 (>= (+ ?x152 ?x171 (* (- 1) ?x179)) 0)))
+(let (($x978 (and $x175 $x918)))
+(let (($x981 (not $x978)))
+(let (($x989 (or $x981 $x985)))
+(let (($x408 (<= ?x179 ?x405)))
+(let (($x415 (or (not (and $x175 (< ?x152 b_Infinity$))) $x408)))
+(let ((@x983 (monotonicity (monotonicity @x920 (= (and $x175 (< ?x152 b_Infinity$)) $x978)) (= (not (and $x175 (< ?x152 b_Infinity$))) $x981))))
+(let ((@x994 (quant-intro (monotonicity @x983 (rewrite (= $x408 $x985)) (= $x415 $x989)) (= $x420 $x992))))
+(let ((@x1051 (monotonicity @x994 (quant-intro @x1031 (= $x444 $x1032)) (= $x454 (and $x992 $x1032)))))
+(let (($x177 (fun_app$ v_b_Visited_G_1$ ?1)))
+(let (($x178 (and $x176 $x177)))
+(let (($x398 (not $x178)))
+(let (($x1037 (or $x398 $x1010)))
+(let (($x180 (<= ?x179 ?x171)))
+(let (($x399 (or $x398 $x180)))
+(let ((@x1042 (quant-intro (monotonicity (rewrite (= $x180 $x1010)) (= $x399 $x1037)) (= $x402 $x1040))))
+(let ((@x1048 (quant-intro (rewrite (= (<= 0 ?x171) (>= ?x171 0))) (= $x173 $x1046))))
+(let ((@x1057 (monotonicity @x1048 (monotonicity @x1042 @x1051 (= $x457 (and $x1040 (and $x992 $x1032)))) (= $x460 (and $x1046 (and $x1040 (and $x992 $x1032)))))))
+(let ((@x1060 (monotonicity @x1057 (= $x463 (and $x170 (and $x1046 (and $x1040 (and $x992 $x1032))))))))
+(let (($x969 (exists ((?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?0))))
+(let ((?x124 (v_b_SP_G_0$ ?v1)))
+(let (($x952 (= (+ ?x124 (* (- 1) (v_b_SP_G_0$ ?0)) ?x152) 0)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x902 (>= (+ ?x124 (* (- 1) (v_b_SP_G_0$ ?0))) 0)))
+(let (($x955 (not $x902)))
+(and $x955 $x133 $x952))))))) :qid k!38))
+))
+(let (($x946 (and $x128 (not (<= (+ b_Infinity$ (* (- 1) (v_b_SP_G_0$ ?0))) 0)))))
+(let (($x949 (not $x946)))
+(let (($x972 (or $x949 $x969)))
+(let (($x165 (exists ((?v1 B_Vertex$) )(! (let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x163 (and $x133 (= (v_b_SP_G_0$ ?0) (+ (v_b_SP_G_0$ ?v1) (b_G$ (pair$ ?v1 ?0)))))))
+(and (< (v_b_SP_G_0$ ?v1) (v_b_SP_G_0$ ?0)) $x163))) :qid k!38))
+))
+(let (($x392 (or (not (and $x128 (< (v_b_SP_G_0$ ?0) b_Infinity$))) $x165)))
+(let (($x952 (= (+ (v_b_SP_G_0$ ?0) (* (- 1) (v_b_SP_G_0$ ?1)) ?x152) 0)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?0)))
+(let (($x902 (>= (+ (v_b_SP_G_0$ ?0) (* (- 1) (v_b_SP_G_0$ ?1))) 0)))
+(let (($x955 (not $x902)))
+(let (($x964 (and $x955 $x133 $x952)))
+(let (($x164 (and (< (v_b_SP_G_0$ ?0) (v_b_SP_G_0$ ?1)) (and $x133 (= (v_b_SP_G_0$ ?1) (+ (v_b_SP_G_0$ ?0) ?x152))))))
+(let (($x959 (= (and $x133 (= (v_b_SP_G_0$ ?1) (+ (v_b_SP_G_0$ ?0) ?x152))) (and $x133 $x952))))
+(let ((@x954 (rewrite (= (= (v_b_SP_G_0$ ?1) (+ (v_b_SP_G_0$ ?0) ?x152)) $x952))))
+(let ((@x963 (monotonicity (rewrite (= (< (v_b_SP_G_0$ ?0) (v_b_SP_G_0$ ?1)) $x955)) (monotonicity @x954 $x959) (= $x164 (and $x955 (and $x133 $x952))))))
+(let ((@x968 (trans @x963 (rewrite (= (and $x955 (and $x133 $x952)) $x964)) (= $x164 $x964))))
+(let (($x944 (= (< (v_b_SP_G_0$ ?0) b_Infinity$) (not (<= (+ b_Infinity$ (* (- 1) (v_b_SP_G_0$ ?0))) 0)))))
+(let ((@x948 (monotonicity (rewrite $x944) (= (and $x128 (< (v_b_SP_G_0$ ?0) b_Infinity$)) $x946))))
+(let ((@x951 (monotonicity @x948 (= (not (and $x128 (< (v_b_SP_G_0$ ?0) b_Infinity$))) $x949))))
+(let ((@x977 (quant-intro (monotonicity @x951 (quant-intro @x968 (= $x165 $x969)) (= $x392 $x972)) (= $x395 $x975))))
+(let ((@x1071 (monotonicity (trans (monotonicity @x977 @x1060 $x1062) (rewrite $x1065) (= $x477 $x1064)) (= (not $x477) $x1069))))
+(let ((@x1371 (monotonicity @x1071 (monotonicity @x1161 @x1365 (= $x810 $x1366)) (= $x817 $x1369))))
+(let (($x928 (>= (+ (v_b_SP_G_0$ ?0) (* (- 1) (v_b_SP_G_0$ ?1)) ?x152) 0)))
+(let (($x921 (and $x133 $x918)))
+(let (($x924 (not $x921)))
+(let (($x931 (or $x924 $x928)))
+(let ((?x147 (v_b_SP_G_0$ ?1)))
+(let (($x156 (<= ?x147 (+ (v_b_SP_G_0$ ?0) ?x152))))
+(let (($x385 (or (not (and $x133 (< ?x152 b_Infinity$))) $x156)))
+(let ((@x926 (monotonicity (monotonicity @x920 (= (and $x133 (< ?x152 b_Infinity$)) $x921)) (= (not (and $x133 (< ?x152 b_Infinity$))) $x924))))
+(let ((@x936 (quant-intro (monotonicity @x926 (rewrite (= $x156 $x928)) (= $x385 $x931)) (= $x388 $x934))))
+(let ((@x1377 (monotonicity (monotonicity @x936 (= (not $x388) $x937)) (monotonicity @x977 @x1371 (= $x822 $x1372)) (= $x829 $x1375))))
+(let (($x134 (not $x133)))
+(let (($x146 (and $x134 (fun_app$ v_b_Visited_G_0$ ?1))))
+(let (($x377 (not $x146)))
+(let (($x906 (or $x377 $x902)))
+(let ((?x124 (v_b_SP_G_0$ ?0)))
+(let (($x148 (<= ?x147 ?x124)))
+(let (($x378 (or $x377 $x148)))
+(let ((@x911 (quant-intro (monotonicity (rewrite (= $x148 $x902)) (= $x378 $x906)) (= $x381 $x909))))
+(let ((@x1383 (monotonicity (monotonicity @x911 (= (not $x381) $x912)) (monotonicity @x936 @x1377 (= $x834 $x1378)) (= $x841 $x1381))))
+(let ((@x896 (quant-intro (rewrite (= (<= 0 ?x124) (>= ?x124 0))) (= $x144 $x894))))
+(let ((@x1389 (monotonicity (monotonicity @x896 (= (not $x144) $x897)) (monotonicity @x911 @x1383 (= $x846 $x1384)) (= $x853 $x1387))))
+(let ((@x1395 (monotonicity (monotonicity @x896 @x1389 (= $x858 $x1390)) (= $x865 $x1393))))
+(let ((@x890 (monotonicity (rewrite (= (and $x349 (and $x355 $x135)) $x885)) (= (not (and $x349 (and $x355 $x135))) (not $x885)))))
+(let ((@x1401 (monotonicity @x890 (monotonicity @x1395 (= $x870 $x1396)) (= $x877 (or (not $x885) $x1396)))))
+(let (($x313 (exists ((?v1 B_Vertex$) )(! (let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x311 (and $x286 (= (v_b_SP_G_2$ ?0) (+ (v_b_SP_G_2$ ?v1) (b_G$ (pair$ ?v1 ?0)))))))
+(let ((?x298 (v_b_SP_G_2$ ?0)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let (($x309 (< ?x268 ?x298)))
+(and $x309 $x311)))))) :qid k!38))
+))
+(let (($x308 (and $x128 (< ?x268 b_Infinity$))))
+(let (($x314 (=> $x308 $x313)))
+(let ((@x686 (monotonicity (rewrite (= (+ ?x268 ?x152) ?x666)) (= (= ?x298 (+ ?x268 ?x152)) $x684))))
+(let ((@x692 (monotonicity (monotonicity @x686 (= (and $x286 (= ?x298 (+ ?x268 ?x152))) $x687)) (= (and $x309 (and $x286 (= ?x298 (+ ?x268 ?x152)))) $x690))))
+(let ((@x698 (monotonicity (quant-intro @x692 (= $x313 $x693)) (= $x314 (=> $x308 $x693)))))
+(let ((@x707 (quant-intro (trans @x698 (rewrite (= (=> $x308 $x693) $x700)) (= $x314 $x700)) (= $x315 $x705))))
+(let ((@x714 (trans (monotonicity @x707 (= $x316 (and $x705 false))) (rewrite (= (and $x705 false) false)) (= $x316 false))))
+(let ((@x721 (trans (monotonicity @x714 (= $x317 (=> false true))) (rewrite (= (=> false true) true)) (= $x317 true))))
+(let ((@x728 (trans (monotonicity @x707 @x721 (= $x318 (and $x705 true))) (rewrite (= (and $x705 true) $x705)) (= $x318 $x705))))
+(let (($x153 (< ?x152 b_Infinity$)))
+(let (($x302 (and $x286 $x153)))
+(let (($x305 (=> $x302 (<= ?x298 (+ ?x268 ?x152)))))
+(let ((@x671 (monotonicity (rewrite (= (+ ?x268 ?x152) ?x666)) (= (<= ?x298 (+ ?x268 ?x152)) $x669))))
+(let ((@x680 (trans (monotonicity @x671 (= $x305 (=> $x302 $x669))) (rewrite (= (=> $x302 $x669) $x676)) (= $x305 $x676))))
+(let ((@x731 (monotonicity (quant-intro @x680 (= $x306 $x681)) @x728 (= $x319 (=> $x681 $x705)))))
+(let ((@x740 (monotonicity (quant-intro @x680 (= $x306 $x681)) (trans @x731 (rewrite (= (=> $x681 $x705) $x733)) (= $x319 $x733)) (= (and $x306 $x319) $x738))))
+(let ((@x743 (monotonicity (quant-intro (rewrite (= (=> $x297 $x299) $x660)) (= $x301 $x663)) @x740 (= $x321 (=> $x663 $x738)))))
+(let ((@x752 (monotonicity (quant-intro (rewrite (= (=> $x297 $x299) $x660)) (= $x301 $x663)) (trans @x743 (rewrite (= (=> $x663 $x738) $x745)) (= $x321 $x745)) (= (and $x301 $x321) $x750))))
+(let ((@x761 (trans (monotonicity @x752 (= $x323 (=> $x294 $x750))) (rewrite (= (=> $x294 $x750) $x757)) (= $x323 $x757))))
+(let ((@x767 (monotonicity (monotonicity @x761 (= (and $x294 $x323) $x762)) (= $x325 (=> $x292 $x762)))))
+(let ((@x776 (monotonicity (trans @x767 (rewrite (= (=> $x292 $x762) $x769)) (= $x325 $x769)) (= (and $x292 $x325) $x774))))
+(let ((@x649 (quant-intro (rewrite (= (=> $x286 $x273) (or $x295 $x273))) (= $x288 $x647))))
+(let ((@x654 (monotonicity @x649 (rewrite (= (and true true) true)) (= $x290 (and $x647 true)))))
+(let ((@x779 (monotonicity (trans @x654 (rewrite (= (and $x647 true) $x647)) (= $x290 $x647)) @x776 (= $x327 (=> $x647 $x774)))))
+(let ((@x788 (monotonicity @x649 (trans @x779 (rewrite (= (=> $x647 $x774) $x781)) (= $x327 $x781)) (= (and $x288 $x327) $x786))))
+(let ((@x797 (trans (monotonicity @x788 (= $x329 (=> $x285 $x786))) (rewrite (= (=> $x285 $x786) $x793)) (= $x329 $x793))))
+(let (($x628 (= (and $x253 (and $x255 (and $x258 (and $x261 (and $x271 $x275))))) $x627)))
+(let ((@x617 (monotonicity (quant-intro (rewrite (= (=> $x267 $x269) $x603)) (= $x271 $x606)) (quant-intro (rewrite (= (=> $x272 $x273) $x609)) (= $x275 $x612)) (= (and $x271 $x275) $x615))))
+(let ((@x623 (monotonicity (quant-intro (rewrite (= (=> $x176 $x256) $x597)) (= $x258 $x600)) (monotonicity @x617 (= (and $x261 (and $x271 $x275)) $x618)) (= (and $x258 (and $x261 (and $x271 $x275))) $x621))))
+(let ((@x626 (monotonicity @x623 (= (and $x255 (and $x258 (and $x261 (and $x271 $x275)))) $x624))))
+(let ((@x635 (monotonicity (monotonicity (monotonicity @x626 $x628) (= $x281 $x630)) (= $x282 (and true $x630)))))
+(let ((@x641 (monotonicity (trans @x635 (rewrite (= (and true $x630) $x630)) (= $x282 $x630)) (= $x283 (and true $x630)))))
+(let ((@x803 (monotonicity (trans @x641 (rewrite (= (and true $x630) $x630)) (= $x283 $x630)) (monotonicity @x797 (= (and $x285 $x329) $x798)) (= $x331 (=> $x630 $x798)))))
+(let ((@x559 (monotonicity (rewrite (= (=> $x243 true) true)) (= $x245 (and $x243 true)))))
+(let (($x228 (< ?x227 b_Infinity$)))
+(let (($x238 (and $x228 $x153)))
+(let (($x240 (=> $x238 (<= ?x230 (+ ?x227 ?x152)))))
+(let ((@x542 (monotonicity (rewrite (= (+ ?x227 ?x152) ?x516)) (= (<= ?x230 (+ ?x227 ?x152)) $x540))))
+(let ((@x551 (trans (monotonicity @x542 (= $x240 (=> $x238 $x540))) (rewrite (= (=> $x238 $x540) $x547)) (= $x240 $x547))))
+(let ((@x566 (monotonicity (quant-intro @x551 (= $x241 $x552)) (trans @x559 (rewrite (= (and $x243 true) $x243)) (= $x245 $x243)) (= $x246 (=> $x552 $x243)))))
+(let ((@x575 (monotonicity (quant-intro @x551 (= $x241 $x552)) (trans @x566 (rewrite (= (=> $x552 $x243) $x568)) (= $x246 $x568)) (= (and $x241 $x246) $x573))))
+(let (($x235 (exists ((?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?0))))
+(let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let ((?x232 (+ ?x227 ?x152)))
+(let ((?x230 (fun_app$a v_b_SP_G_3$ ?0)))
+(let (($x231 (< ?x227 ?x230)))
+(and $x231 (= ?x230 ?x232))))))) :qid k!38))
+))
+(let (($x229 (and $x128 $x228)))
+(let (($x236 (=> $x229 $x235)))
+(let ((@x521 (monotonicity (rewrite (= (+ ?x227 ?x152) ?x516)) (= (= ?x230 (+ ?x227 ?x152)) $x519))))
+(let ((@x527 (quant-intro (monotonicity @x521 (= (and $x231 (= ?x230 (+ ?x227 ?x152))) $x522)) (= $x235 $x525))))
+(let ((@x536 (trans (monotonicity @x527 (= $x236 (=> $x229 $x525))) (rewrite (= (=> $x229 $x525) $x532)) (= $x236 $x532))))
+(let ((@x578 (monotonicity (quant-intro @x536 (= $x237 $x537)) @x575 (= $x248 (=> $x537 $x573)))))
+(let ((@x587 (monotonicity (quant-intro @x536 (= $x237 $x537)) (trans @x578 (rewrite (= (=> $x537 $x573) $x580)) (= $x248 $x580)) (= (and $x237 $x248) $x585))))
+(let (($x486 (= (and $x212 (and $x214 (and $x217 true))) (and $x212 (and $x214 $x217)))))
+(let ((@x484 (monotonicity (rewrite (= (and $x217 true) $x217)) (= (and $x214 (and $x217 true)) (and $x214 $x217)))))
+(let ((@x490 (monotonicity (monotonicity @x484 $x486) (= (and $x209 (and $x212 (and $x214 (and $x217 true)))) $x488))))
+(let ((@x497 (trans (monotonicity @x490 (= $x222 (and true $x488))) (rewrite (= (and true $x488) $x488)) (= $x222 $x488))))
+(let ((@x501 (trans (monotonicity @x497 (= $x223 (and true $x488))) (rewrite (= (and true $x488) $x488)) (= $x223 $x488))))
+(let ((@x507 (monotonicity (monotonicity @x501 (= (and $x207 $x223) $x502)) (= $x225 (and true $x502)))))
+(let ((@x513 (monotonicity (trans @x507 (rewrite (= (and true $x502) $x502)) (= $x225 $x502)) (= $x226 (and true $x502)))))
+(let ((@x590 (monotonicity (trans @x513 (rewrite (= (and true $x502) $x502)) (= $x226 $x502)) @x587 (= $x250 (=> $x502 $x585)))))
+(let ((@x812 (monotonicity (trans @x590 (rewrite (= (=> $x502 $x585) $x592)) (= $x250 $x592)) (trans @x803 (rewrite (= (=> $x630 $x798) $x805)) (= $x331 $x805)) (= (and $x250 $x331) $x810))))
+(let (($x194 (exists ((?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?0))))
+(let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x184 (+ ?x171 ?x152)))
+(let ((?x179 (fun_app$a v_b_SP_G_1$ ?0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x190 (< ?x171 ?x179)))
+(and $x190 (and $x175 (= ?x179 ?x184))))))))) :qid k!38))
+))
+(let (($x188 (< ?x171 b_Infinity$)))
+(let (($x189 (and $x128 $x188)))
+(let (($x195 (=> $x189 $x194)))
+(let ((@x425 (monotonicity (rewrite (= (+ ?x171 ?x152) ?x405)) (= (= ?x179 (+ ?x171 ?x152)) $x423))))
+(let ((@x431 (monotonicity (monotonicity @x425 (= (and $x175 (= ?x179 (+ ?x171 ?x152))) $x426)) (= (and $x190 (and $x175 (= ?x179 (+ ?x171 ?x152)))) $x429))))
+(let ((@x437 (monotonicity (quant-intro @x431 (= $x194 $x432)) (= $x195 (=> $x189 $x432)))))
+(let ((@x446 (quant-intro (trans @x437 (rewrite (= (=> $x189 $x432) $x439)) (= $x195 $x439)) (= $x196 $x444))))
+(let ((@x453 (trans (monotonicity @x446 (= $x197 (and $x444 true))) (rewrite (= (and $x444 true) $x444)) (= $x197 $x444))))
+(let (($x183 (and $x175 $x153)))
+(let (($x186 (=> $x183 (<= ?x179 (+ ?x171 ?x152)))))
+(let ((@x410 (monotonicity (rewrite (= (+ ?x171 ?x152) ?x405)) (= (<= ?x179 (+ ?x171 ?x152)) $x408))))
+(let ((@x419 (trans (monotonicity @x410 (= $x186 (=> $x183 $x408))) (rewrite (= (=> $x183 $x408) $x415)) (= $x186 $x415))))
+(let ((@x456 (monotonicity (quant-intro @x419 (= $x187 $x420)) @x453 (= (and $x187 $x197) $x454))))
+(let ((@x459 (monotonicity (quant-intro (rewrite (= (=> $x178 $x180) $x399)) (= $x182 $x402)) @x456 (= (and $x182 (and $x187 $x197)) $x457))))
+(let ((@x465 (monotonicity (monotonicity @x459 (= (and $x173 (and $x182 (and $x187 $x197))) $x460)) (= (and $x170 (and $x173 (and $x182 (and $x187 $x197)))) $x463))))
+(let ((@x472 (trans (monotonicity @x465 (= $x202 (and true $x463))) (rewrite (= (and true $x463) $x463)) (= $x202 $x463))))
+(let ((@x476 (trans (monotonicity @x472 (= $x203 (and true $x463))) (rewrite (= (and true $x463) $x463)) (= $x203 $x463))))
+(let ((@x397 (quant-intro (rewrite (= (=> (and $x128 (< ?x124 b_Infinity$)) $x165) $x392)) (= $x167 $x395))))
+(let ((@x815 (monotonicity (monotonicity @x397 @x476 (= (and $x167 $x203) $x477)) @x812 (= $x333 (=> $x477 $x810)))))
+(let ((@x824 (monotonicity @x397 (trans @x815 (rewrite (= (=> $x477 $x810) $x817)) (= $x333 $x817)) (= (and $x167 $x333) $x822))))
+(let ((@x390 (quant-intro (rewrite (= (=> (and $x133 $x153) $x156) $x385)) (= $x158 $x388))))
+(let ((@x833 (trans (monotonicity @x390 @x824 (= $x335 (=> $x388 $x822))) (rewrite (= (=> $x388 $x822) $x829)) (= $x335 $x829))))
+(let ((@x839 (monotonicity (quant-intro (rewrite (= (=> $x146 $x148) $x378)) (= $x150 $x381)) (monotonicity @x390 @x833 (= (and $x158 $x335) $x834)) (= $x337 (=> $x381 $x834)))))
+(let ((@x848 (monotonicity (quant-intro (rewrite (= (=> $x146 $x148) $x378)) (= $x150 $x381)) (trans @x839 (rewrite (= (=> $x381 $x834) $x841)) (= $x337 $x841)) (= (and $x150 $x337) $x846))))
+(let ((@x857 (trans (monotonicity @x848 (= $x339 (=> $x144 $x846))) (rewrite (= (=> $x144 $x846) $x853)) (= $x339 $x853))))
+(let ((@x863 (monotonicity (monotonicity @x857 (= (and $x144 $x339) $x858)) (= $x341 (=> $x142 $x858)))))
+(let ((@x872 (monotonicity (trans @x863 (rewrite (= (=> $x142 $x858) $x865)) (= $x341 $x865)) (= (and $x142 $x341) $x870))))
+(let (($x363 (and $x349 (and $x355 $x135))))
+(let (($x366 (and true $x363)))
+(let ((@x357 (quant-intro (rewrite (= (=> $x128 (= ?x124 b_Infinity$)) $x352)) (= $x131 $x355))))
+(let ((@x362 (monotonicity @x357 (rewrite (= (and $x135 true) $x135)) (= (and $x131 (and $x135 true)) (and $x355 $x135)))))
+(let ((@x351 (quant-intro (rewrite (= (=> $x123 (= ?x124 0)) (or $x128 (= ?x124 0)))) (= $x127 $x349))))
+(let ((@x365 (monotonicity @x351 @x362 (= (and $x127 (and $x131 (and $x135 true))) $x363))))
+(let ((@x372 (trans (monotonicity @x365 (= $x139 $x366)) (rewrite (= $x366 $x363)) (= $x139 $x363))))
+(let ((@x376 (trans (monotonicity @x372 (= $x140 $x366)) (rewrite (= $x366 $x363)) (= $x140 $x363))))
+(let ((@x881 (trans (monotonicity @x376 @x872 (= $x343 (=> $x363 $x870))) (rewrite (= (=> $x363 $x870) $x877)) (= $x343 $x877))))
+(let ((@x1406 (trans (monotonicity @x881 (= $x344 (not $x877))) (monotonicity @x1401 (= (not $x877) $x1402)) (= $x344 $x1402))))
+(let ((@x1408 (not-or-elim (mp (asserted $x344) @x1406 $x1402) $x885)))
+(let ((@x1458 (mp~ (and-elim @x1408 $x355) (nnf-pos (refl (~ $x352 $x352)) (~ $x355 $x355)) $x355)))
+(let ((@x3493 (mp @x1458 (quant-intro (refl (= $x352 $x352)) (= $x355 $x3488)) $x3488)))
+(let ((@x5494 (rewrite (= (or (not $x3488) (or $x1533 $x5648)) (or (not $x3488) $x1533 $x5648)))))
+(let ((@x5498 (mp ((_ quant-inst ?v0!5) (or (not $x3488) (or $x1533 $x5648))) @x5494 (or (not $x3488) $x1533 $x5648))))
+(let ((@x6448 (unit-resolution (hypothesis $x6555) (mp (unit-resolution @x5498 @x3493 (hypothesis $x1534) $x5648) @x5583 $x5500) false)))
+(let ((@x3189 (unit-resolution (lemma @x6448 (or $x5500 $x1533)) (unit-resolution ((_ th-lemma arith triangle-eq) (or $x6555 $x1538)) @x5027 $x6555) @x5072 false)))
+(let (($x3539 (not $x3536)))
+(let (($x3822 (or $x3539 $x3819)))
+(let (($x3825 (not $x3822)))
+(let (($x3519 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x124 (v_b_SP_G_0$ ?v1)))
+(let (($x928 (>= (+ ?x124 (* (- 1) (v_b_SP_G_0$ ?v0)) ?x152) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x134 (not $x133)))
+(or $x134 $x917 $x928))))))) :pattern ( (pair$ ?v1 ?v0) ) :qid k!38))
+))
+(let (($x3524 (not $x3519)))
+(let (($x3828 (or $x3524 $x3825)))
+(let (($x3831 (not $x3828)))
+(let ((?x1517 (v_b_SP_G_0$ ?v0!4)))
+(let ((?x1518 (* (- 1) ?x1517)))
+(let ((?x1516 (v_b_SP_G_0$ ?v1!3)))
+(let ((?x1508 (pair$ ?v1!3 ?v0!4)))
+(let ((?x1509 (b_G$ ?x1508)))
+(let ((?x2040 (+ ?x1509 ?x1516 ?x1518)))
+(let (($x2043 (>= ?x2040 0)))
+(let (($x1512 (<= (+ b_Infinity$ (* (- 1) ?x1509)) 0)))
+(let (($x1507 (fun_app$ v_b_Visited_G_0$ ?v1!3)))
+(let (($x2389 (not $x1507)))
+(let (($x2404 (or $x2389 $x1512 $x2043)))
+(let (($x3495 (forall ((?v0 B_Vertex$) )(! (let (($x133 (fun_app$ v_b_Visited_G_0$ ?v0)))
+(not $x133)) :pattern ( (fun_app$ v_b_Visited_G_0$ ?v0) ) :qid k!38))
+))
+(let ((@x1463 (mp~ (and-elim @x1408 $x135) (nnf-pos (refl (~ $x134 $x134)) (~ $x135 $x135)) $x135)))
+(let ((@x3500 (mp @x1463 (quant-intro (refl (= $x134 $x134)) (= $x135 $x3495)) $x3495)))
+(let ((@x4007 (unit-resolution ((_ quant-inst ?v1!3) (or (not $x3495) $x2389)) @x3500 (hypothesis $x1507) false)))
+(let (($x2409 (not $x2404)))
+(let (($x3834 (or $x2409 $x3831)))
+(let (($x3837 (not $x3834)))
+(let (($x3510 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let (($x902 (>= (+ (v_b_SP_G_0$ ?v1) (* (- 1) (v_b_SP_G_0$ ?v0))) 0)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(or $x133 (not (fun_app$ v_b_Visited_G_0$ ?v0)) $x902))) :pattern ( (v_b_SP_G_0$ ?v1) (v_b_SP_G_0$ ?v0) ) :qid k!38))
+))
+(let (($x3515 (not $x3510)))
+(let (($x3840 (or $x3515 $x3837)))
+(let (($x3843 (not $x3840)))
+(let (($x1493 (>= (+ (v_b_SP_G_0$ ?v1!1) (* (- 1) (v_b_SP_G_0$ ?v0!2))) 0)))
+(let (($x1486 (fun_app$ v_b_Visited_G_0$ ?v0!2)))
+(let (($x2343 (not $x1486)))
+(let (($x1484 (fun_app$ v_b_Visited_G_0$ ?v1!1)))
+(let (($x2358 (or $x1484 $x2343 $x1493)))
+(let (($x2363 (not $x2358)))
+(let (($x3846 (or $x2363 $x3843)))
+(let (($x3849 (not $x3846)))
+(let (($x3501 (forall ((?v0 B_Vertex$) )(! (let ((?x124 (v_b_SP_G_0$ ?v0)))
+(>= ?x124 0)) :pattern ( (v_b_SP_G_0$ ?v0) ) :qid k!38))
+))
+(let (($x3506 (not $x3501)))
+(let (($x3852 (or $x3506 $x3849)))
+(let (($x3855 (not $x3852)))
+(let ((?x1470 (v_b_SP_G_0$ ?v0!0)))
+(let (($x1471 (>= ?x1470 0)))
+(let (($x1472 (not $x1471)))
+(let ((@x5071 (hypothesis $x1472)))
+(let (($x5774 (<= ?x1470 0)))
+(let (($x82 (<= b_Infinity$ 0)))
+(let (($x83 (not $x82)))
+(let ((@x86 (mp (asserted (< 0 b_Infinity$)) (rewrite (= (< 0 b_Infinity$) $x83)) $x83)))
+(let (($x5117 (= b_Infinity$ ?x1470)))
+(let ((@x5579 (symm (commutativity (= $x5117 (= ?x1470 b_Infinity$))) (= (= ?x1470 b_Infinity$) $x5117))))
+(let (($x3131 (= ?x1470 b_Infinity$)))
+(let (($x5739 (= ?v0!0 b_Source$)))
+(let (($x5713 (not $x5739)))
+(let ((@x5595 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x1470 0)) $x1471)) @x5071 (not (= ?x1470 0)))))
+(let (($x3482 (forall ((?v0 B_Vertex$) )(! (let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(or $x128 (= (v_b_SP_G_0$ ?v0) 0)))) :pattern ( (v_b_SP_G_0$ ?v0) ) :qid k!38))
+))
+(let ((@x3486 (quant-intro (refl (= (or $x128 (= ?x124 0)) (or $x128 (= ?x124 0)))) (= $x349 $x3482))))
+(let ((@x1452 (nnf-pos (refl (~ (or $x128 (= ?x124 0)) (or $x128 (= ?x124 0)))) (~ $x349 $x349))))
+(let ((@x3487 (mp (mp~ (and-elim @x1408 $x349) @x1452 $x349) @x3486 $x3482)))
+(let (($x5769 (= (or (not $x3482) (or $x5713 (= ?x1470 0))) (or (not $x3482) $x5713 (= ?x1470 0)))))
+(let ((@x5448 (mp ((_ quant-inst ?v0!0) (or (not $x3482) (or $x5713 (= ?x1470 0)))) (rewrite $x5769) (or (not $x3482) $x5713 (= ?x1470 0)))))
+(let ((@x6281 (rewrite (= (or (not $x3488) (or $x5739 $x3131)) (or (not $x3488) $x5739 $x3131)))))
+(let ((@x6173 (mp ((_ quant-inst ?v0!0) (or (not $x3488) (or $x5739 $x3131))) @x6281 (or (not $x3488) $x5739 $x3131))))
+(let ((@x6446 (mp (unit-resolution @x6173 @x3493 (unit-resolution @x5448 @x3487 @x5595 $x5713) $x3131) @x5579 $x5117)))
+(let ((@x6386 ((_ th-lemma arith triangle-eq) (or (not $x5117) (<= (+ b_Infinity$ (* (- 1) ?x1470)) 0)))))
+(let ((@x6387 (unit-resolution @x6386 @x6446 (<= (+ b_Infinity$ (* (- 1) ?x1470)) 0))))
+(let ((@x3142 (lemma ((_ th-lemma arith farkas 1 -1 1) (hypothesis $x5774) @x6387 @x86 false) (or (not $x5774) $x1471))))
+(let ((@x5085 (unit-resolution @x3142 (unit-resolution ((_ th-lemma arith farkas 1 1) (or $x5774 $x1471)) @x5071 $x5774) @x5071 false)))
+(let (($x3858 (or $x1472 $x3855)))
+(let (($x3861 (not $x3858)))
+(let (($x3864 (or $x864 $x3861)))
+(let (($x3867 (not $x3864)))
+(let (($x5885 (not $x3482)))
+(let (($x3145 (or $x5885 $x142)))
+(let ((@x4320 (monotonicity (rewrite (= (= b_Source$ b_Source$) true)) (= (not (= b_Source$ b_Source$)) (not true)))))
+(let ((@x5484 (trans @x4320 (rewrite (= (not true) false)) (= (not (= b_Source$ b_Source$)) false))))
+(let ((@x5457 (monotonicity @x5484 (= (or (not (= b_Source$ b_Source$)) $x142) (or false $x142)))))
+(let ((@x5606 (trans @x5457 (rewrite (= (or false $x142) $x142)) (= (or (not (= b_Source$ b_Source$)) $x142) $x142))))
+(let ((@x4948 (monotonicity @x5606 (= (or $x5885 (or (not (= b_Source$ b_Source$)) $x142)) $x3145))))
+(let ((@x5799 (trans @x4948 (rewrite (= $x3145 $x3145)) (= (or $x5885 (or (not (= b_Source$ b_Source$)) $x142)) $x3145))))
+(let ((@x5800 (mp ((_ quant-inst b_Source$) (or $x5885 (or (not (= b_Source$ b_Source$)) $x142))) @x5799 $x3145)))
+(let (($x3870 (or $x864 $x3867)))
+(let (($x2843 (forall ((?v1 B_Vertex$) )(! (let ((?x1906 (v_b_SP_G_2$ ?v0!20)))
+(let ((?x1907 (* (- 1) ?x1906)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let (($x2237 (= (+ ?x268 ?x1907 (b_G$ (pair$ ?v1 ?v0!20))) 0)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x295 (not $x286)))
+(or (>= (+ ?x268 ?x1907) 0) $x295 (not $x2237)))))))) :qid k!38))
+))
+(let (($x2828 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x298 (v_b_SP_G_2$ ?v0)))
+(let ((?x1258 (* (- 1) ?x298)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x1277 (>= (+ ?x152 ?x268 ?x1258) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x295 (not $x286)))
+(or $x295 $x917 $x1277))))))))) :qid k!38))
+))
+(let (($x2852 (not (or (not $x2828) $x1904 $x1909 (not $x2843)))))
+(let (($x2857 (or $x2806 $x2852)))
+(let (($x2783 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let (($x1257 (>= (+ (v_b_SP_G_2$ ?v1) (* (- 1) (v_b_SP_G_2$ ?v0))) 0)))
+(let (($x296 (fun_app$ v_b_Visited_G_2$ ?v0)))
+(let (($x2763 (not $x296)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(or $x286 $x2763 $x1257))))) :qid k!38))
+))
+(let (($x2866 (not (or (not $x2783) (not $x2857)))))
+(let (($x2871 (or $x2760 $x2866)))
+(let (($x2879 (not (or $x1254 (not $x2871)))))
+(let (($x2884 (or $x1843 $x2879)))
+(let (($x2892 (not (or $x768 (not $x2884)))))
+(let (($x2897 (or $x768 $x2892)))
+(let (($x2905 (not (or $x780 (not $x2897)))))
+(let (($x2910 (or $x1825 $x2905)))
+(let (($x2918 (not (or $x1245 (not $x2910)))))
+(let (($x2923 (or $x1808 $x2918)))
+(let (($x2737 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let (($x273 (= ?x268 ?x171)))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let ((?x1168 (* (- 1) ?x254)))
+(let (($x1170 (<= (+ ?x171 ?x1168 (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0)))) 0)))
+(let (($x1164 (<= (+ b_Infinity$ (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0)))) 0)))
+(let (($x2712 (or $x1164 $x1170)))
+(let (($x2713 (not $x2712)))
+(or $x2713 $x273)))))))))) :qid k!38))
+))
+(let (($x2731 (forall ((?v0 B_Vertex$) )(! (let ((?x268 (v_b_SP_G_2$ ?v0)))
+(let ((?x1181 (* (- 1) ?x268)))
+(let ((?x263 (b_G$ (pair$ v_b_v_G_1$ ?v0))))
+(let ((?x254 (fun_app$a v_b_SP_G_1$ v_b_v_G_1$)))
+(let (($x1180 (= (+ ?x254 ?x263 ?x1181) 0)))
+(let (($x1170 (<= (+ (fun_app$a v_b_SP_G_1$ ?v0) (* (- 1) ?x254) (* (- 1) ?x263)) 0)))
+(let (($x1164 (<= (+ b_Infinity$ (* (- 1) ?x263)) 0)))
+(or $x1164 $x1170 $x1180)))))))) :qid k!38))
+))
+(let (($x2934 (or $x1768 $x1773 $x252 $x1208 (not $x1204) $x2930 (not $x2731) (not $x2737) (not $x2923))))
+(let (($x2935 (not $x2934)))
+(let (($x2667 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x1135 (>= (+ ?x152 ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ ?v0))) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x1094 (<= (+ b_Infinity$ (* (- 1) ?x227)) 0)))
+(or $x1094 $x917 $x1135)))))) :qid k!38))
+))
+(let (($x2675 (not (or (not $x2667) $x243))))
+(let (($x2680 (or $x2645 $x2675)))
+(let (($x2623 (forall ((?v0 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v0)))
+(let ((?x2186 (+ ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ (?v1!9 ?v0))) (* (- 1) (b_G$ (pair$ (?v1!9 ?v0) ?v0))))))
+(let (($x2187 (= ?x2186 0)))
+(let (($x2171 (<= (+ ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ (?v1!9 ?v0)))) 0)))
+(let (($x2612 (not (or $x2171 (not $x2187)))))
+(let (($x1094 (<= (+ b_Infinity$ (* (- 1) ?x227)) 0)))
+(let (($x123 (= ?v0 b_Source$)))
+(or $x123 $x1094 $x2612)))))))) :qid k!38))
+))
+(let (($x2689 (not (or (not $x2623) (not $x2680)))))
+(let (($x2586 (forall ((?v1 B_Vertex$) )(! (let ((?x1656 (fun_app$a v_b_SP_G_3$ ?v0!8)))
+(let ((?x1657 (* (- 1) ?x1656)))
+(let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let (($x2143 (= (+ ?x227 ?x1657 (b_G$ (pair$ ?v1 ?v0!8))) 0)))
+(or (>= (+ ?x227 ?x1657) 0) (not $x2143)))))) :qid k!38))
+))
+(let (($x2594 (not (or $x1654 $x1659 (not $x2586)))))
+(let (($x2694 (or $x2594 $x2689)))
+(let (($x2571 (forall ((?v0 B_Vertex$) )(! (let (($x997 (<= (+ b_Infinity$ (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(or $x175 $x997))) :qid k!38))
+))
+(let (($x2707 (not (or (not $x2571) $x2701 $x2702 $x2703 $x2704 (not $x2694)))))
+(let (($x2940 (or $x2707 $x2935)))
+(let (($x2557 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x2123 (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ (?v1!7 ?v0))) (* (- 1) (b_G$ (pair$ (?v1!7 ?v0) ?v0))))))
+(let (($x2124 (= ?x2123 0)))
+(let (($x2108 (<= (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ (?v1!7 ?v0)))) 0)))
+(let (($x2546 (not (or $x2108 (not (fun_app$ v_b_Visited_G_1$ (?v1!7 ?v0))) (not $x2124)))))
+(let (($x997 (<= (+ b_Infinity$ (* (- 1) ?x171)) 0)))
+(let (($x123 (= ?v0 b_Source$)))
+(or $x123 $x997 $x2546)))))))) :qid k!38))
+))
+(let (($x2529 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let (($x985 (>= (+ ?x152 ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(let (($x176 (not $x175)))
+(or $x176 $x917 $x985))))))) :qid k!38))
+))
+(let (($x2507 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v1)))
+(let (($x1010 (>= (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v1)))
+(or $x175 (not (fun_app$ v_b_Visited_G_1$ ?v0)) $x1010)))) :qid k!38))
+))
+(let (($x2484 (forall ((?v0 B_Vertex$) )(! (let ((?x124 (v_b_SP_G_0$ ?v0)))
+(let ((?x2085 (+ ?x124 (* (- 1) (v_b_SP_G_0$ (?v1!6 ?v0))) (* (- 1) (b_G$ (pair$ (?v1!6 ?v0) ?v0))))))
+(let (($x2086 (= ?x2085 0)))
+(let (($x2070 (<= (+ ?x124 (* (- 1) (v_b_SP_G_0$ (?v1!6 ?v0)))) 0)))
+(let (($x2473 (not (or $x2070 (not (fun_app$ v_b_Visited_G_0$ (?v1!6 ?v0))) (not $x2086)))))
+(let (($x942 (<= (+ b_Infinity$ (* (- 1) ?x124)) 0)))
+(let (($x123 (= ?v0 b_Source$)))
+(or $x123 $x942 $x2473)))))))) :qid k!38))
+))
+(let (($x2953 (or (not $x2484) $x2947 (not $x1046) (not $x2507) (not $x2529) (not $x2557) (not $x2940))))
+(let (($x2954 (not $x2953)))
+(let (($x2446 (forall ((?v1 B_Vertex$) )(! (let ((?x1535 (v_b_SP_G_0$ ?v0!5)))
+(let ((?x1536 (* (- 1) ?x1535)))
+(let ((?x124 (v_b_SP_G_0$ ?v1)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x134 (not $x133)))
+(or (>= (+ ?x124 ?x1536) 0) $x134 (not (= (+ ?x124 ?x1536 (b_G$ (pair$ ?v1 ?v0!5))) 0)))))))) :qid k!38))
+))
+(let (($x2454 (not (or $x1533 $x1538 (not $x2446)))))
+(let (($x2959 (or $x2454 $x2954)))
+(let (($x2431 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x152 (b_G$ (pair$ ?v1 ?v0))))
+(let ((?x124 (v_b_SP_G_0$ ?v1)))
+(let (($x928 (>= (+ ?x124 (* (- 1) (v_b_SP_G_0$ ?v0)) ?x152) 0)))
+(let (($x917 (<= (+ b_Infinity$ (* (- 1) ?x152)) 0)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x134 (not $x133)))
+(or $x134 $x917 $x928))))))) :qid k!38))
+))
+(let (($x2968 (not (or (not $x2431) (not $x2959)))))
+(let (($x2973 (or $x2409 $x2968)))
+(let (($x2386 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let (($x902 (>= (+ (v_b_SP_G_0$ ?v1) (* (- 1) (v_b_SP_G_0$ ?v0))) 0)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(or $x133 (not (fun_app$ v_b_Visited_G_0$ ?v0)) $x902))) :qid k!38))
+))
+(let (($x2982 (not (or (not $x2386) (not $x2973)))))
+(let (($x2987 (or $x2363 $x2982)))
+(let (($x2995 (not (or $x897 (not $x2987)))))
+(let (($x3000 (or $x1472 $x2995)))
+(let (($x3008 (not (or $x864 (not $x3000)))))
+(let (($x3013 (or $x864 $x3008)))
+(let (($x2832 (or (>= (+ ?x268 ?x1907) 0) $x295 (not (= (+ ?x268 ?x1907 (b_G$ (pair$ ?0 ?v0!20))) 0)))))
+(let ((@x3731 (monotonicity (quant-intro (refl (= $x2832 $x2832)) (= $x2843 $x3724)) (= (not $x2843) $x3729))))
+(let ((@x3719 (quant-intro (refl (= (or $x295 $x917 $x1277) (or $x295 $x917 $x1277))) (= $x2828 $x3715))))
+(let ((@x3734 (monotonicity (monotonicity @x3719 (= (not $x2828) $x3720)) @x3731 (= (or (not $x2828) $x1904 $x1909 (not $x2843)) $x3732))))
+(let ((@x3743 (monotonicity (monotonicity (monotonicity @x3734 (= $x2852 $x3735)) (= $x2857 $x3738)) (= (not $x2857) $x3741))))
+(let ((@x3711 (quant-intro (refl (= (or $x286 (not $x296) $x1257) (or $x286 (not $x296) $x1257))) (= $x2783 $x3707))))
+(let ((@x3746 (monotonicity (monotonicity @x3711 (= (not $x2783) $x3712)) @x3743 (= (or (not $x2783) (not $x2857)) $x3744))))
+(let ((@x3755 (monotonicity (monotonicity (monotonicity @x3746 (= $x2866 $x3747)) (= $x2871 $x3750)) (= (not $x2871) $x3753))))
+(let ((@x3702 (quant-intro (refl (= (>= ?x268 0) (>= ?x268 0))) (= $x1251 $x3698))))
+(let ((@x3758 (monotonicity (monotonicity @x3702 (= $x1254 $x3703)) @x3755 (= (or $x1254 (not $x2871)) $x3756))))
+(let ((@x3767 (monotonicity (monotonicity (monotonicity @x3758 (= $x2879 $x3759)) (= $x2884 $x3762)) (= (not $x2884) $x3765))))
+(let ((@x3773 (monotonicity (monotonicity @x3767 (= (or $x768 (not $x2884)) $x3768)) (= $x2892 $x3771))))
+(let ((@x3779 (monotonicity (monotonicity @x3773 (= $x2897 $x3774)) (= (not $x2897) $x3777))))
+(let ((@x3694 (quant-intro (refl (= (or $x295 $x273) (or $x295 $x273))) (= $x647 $x3690))))
+(let ((@x3782 (monotonicity (monotonicity @x3694 (= $x780 $x3695)) @x3779 (= (or $x780 (not $x2897)) $x3780))))
+(let ((@x3791 (monotonicity (monotonicity (monotonicity @x3782 (= $x2905 $x3783)) (= $x2910 $x3786)) (= (not $x2910) $x3789))))
+(let ((@x3688 (monotonicity (quant-intro (refl (= $x1238 $x1238)) (= $x1242 $x3681)) (= $x1245 $x3686))))
+(let ((@x3797 (monotonicity (monotonicity @x3688 @x3791 (= (or $x1245 (not $x2910)) $x3792)) (= $x2918 $x3795))))
+(let ((@x3803 (monotonicity (monotonicity @x3797 (= $x2923 $x3798)) (= (not $x2923) $x3801))))
+(let ((@x3675 (refl (= (or (not (or $x1164 $x1170)) $x273) (or (not (or $x1164 $x1170)) $x273)))))
+(let ((@x3680 (monotonicity (quant-intro @x3675 (= $x2737 $x3673)) (= (not $x2737) $x3678))))
+(let ((@x3669 (quant-intro (refl (= (or $x1164 $x1170 $x1180) (or $x1164 $x1170 $x1180))) (= $x2731 $x3665))))
+(let ((@x3662 (monotonicity (quant-intro (refl (= $x1201 $x1201)) (= $x1204 $x3655)) (= (not $x1204) $x3660))))
+(let ((@x3806 (monotonicity @x3662 (monotonicity @x3669 (= (not $x2731) $x3670)) @x3680 @x3803 (= $x2934 $x3804))))
+(let ((@x3621 (quant-intro (refl (= (or $x1094 $x917 $x1135) (or $x1094 $x917 $x1135))) (= $x2667 $x3617))))
+(let ((@x3627 (monotonicity (monotonicity @x3621 (= (not $x2667) $x3622)) (= (or (not $x2667) $x243) $x3625))))
+(let ((@x3636 (monotonicity (monotonicity (monotonicity @x3627 (= $x2675 $x3628)) (= $x2680 $x3631)) (= (not $x2680) $x3634))))
+(let ((?x2186 (+ ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ (?v1!9 ?0))) (* (- 1) (b_G$ (pair$ (?v1!9 ?0) ?0))))))
+(let (($x2187 (= ?x2186 0)))
+(let (($x2171 (<= (+ ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ (?v1!9 ?0)))) 0)))
+(let (($x2612 (not (or $x2171 (not $x2187)))))
+(let (($x2618 (or $x123 $x1094 $x2612)))
+(let ((@x3616 (monotonicity (quant-intro (refl (= $x2618 $x2618)) (= $x2623 $x3609)) (= (not $x2623) $x3614))))
+(let ((@x3642 (monotonicity (monotonicity @x3616 @x3636 (= (or (not $x2623) (not $x2680)) $x3637)) (= $x2689 $x3640))))
+(let ((?x1656 (fun_app$a v_b_SP_G_3$ ?v0!8)))
+(let ((?x1657 (* (- 1) ?x1656)))
+(let (($x2143 (= (+ ?x227 ?x1657 (b_G$ (pair$ ?0 ?v0!8))) 0)))
+(let (($x2575 (or (>= (+ ?x227 ?x1657) 0) (not $x2143))))
+(let ((@x3602 (monotonicity (quant-intro (refl (= $x2575 $x2575)) (= $x2586 $x3595)) (= (not $x2586) $x3600))))
+(let ((@x3608 (monotonicity (monotonicity @x3602 (= (or $x1654 $x1659 (not $x2586)) $x3603)) (= $x2594 $x3606))))
+(let ((@x3648 (monotonicity (monotonicity @x3608 @x3642 (= $x2694 $x3643)) (= (not $x2694) $x3646))))
+(let ((@x3589 (quant-intro (refl (= (or $x175 $x997) (or $x175 $x997))) (= $x2571 $x3585))))
+(let ((@x3651 (monotonicity (monotonicity @x3589 (= (not $x2571) $x3590)) @x3648 (= (or (not $x2571) $x2701 $x2702 $x2703 $x2704 (not $x2694)) $x3649))))
+(let ((@x3812 (monotonicity (monotonicity @x3651 (= $x2707 $x3652)) (monotonicity @x3806 (= $x2935 $x3807)) (= $x2940 $x3810))))
+(let ((?x2123 (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ (?v1!7 ?0))) (* (- 1) (b_G$ (pair$ (?v1!7 ?0) ?0))))))
+(let (($x2124 (= ?x2123 0)))
+(let (($x2108 (<= (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ (?v1!7 ?0)))) 0)))
+(let (($x2546 (not (or $x2108 (not (fun_app$ v_b_Visited_G_1$ (?v1!7 ?0))) (not $x2124)))))
+(let (($x2552 (or $x123 $x997 $x2546)))
+(let ((@x3583 (monotonicity (quant-intro (refl (= $x2552 $x2552)) (= $x2557 $x3576)) (= (not $x2557) $x3581))))
+(let ((@x3572 (quant-intro (refl (= (or $x176 $x917 $x985) (or $x176 $x917 $x985))) (= $x2529 $x3568))))
+(let ((@x3564 (quant-intro (refl (= (or $x175 (not $x177) $x1010) (or $x175 (not $x177) $x1010))) (= $x2507 $x3560))))
+(let ((@x3555 (quant-intro (refl (= (>= ?x171 0) (>= ?x171 0))) (= $x1046 $x3551))))
+(let ((?x2085 (+ ?x124 (* (- 1) (v_b_SP_G_0$ (?v1!6 ?0))) (* (- 1) (b_G$ (pair$ (?v1!6 ?0) ?0))))))
+(let (($x2086 (= ?x2085 0)))
+(let (($x2070 (<= (+ ?x124 (* (- 1) (v_b_SP_G_0$ (?v1!6 ?0)))) 0)))
+(let (($x2473 (not (or $x2070 (not (fun_app$ v_b_Visited_G_0$ (?v1!6 ?0))) (not $x2086)))))
+(let (($x942 (<= (+ b_Infinity$ (* (- 1) ?x124)) 0)))
+(let (($x2479 (or $x123 $x942 $x2473)))
+(let ((@x3549 (monotonicity (quant-intro (refl (= $x2479 $x2479)) (= $x2484 $x3542)) (= (not $x2484) $x3547))))
+(let ((@x3818 (monotonicity @x3549 (monotonicity @x3555 (= (not $x1046) $x3556)) (monotonicity @x3564 (= (not $x2507) $x3565)) (monotonicity @x3572 (= (not $x2529) $x3573)) @x3583 (monotonicity @x3812 (= (not $x2940) $x3813)) (= $x2953 $x3816))))
+(let (($x2435 (or (>= (+ ?x124 ?x1536) 0) $x134 (not (= (+ ?x124 ?x1536 (b_G$ (pair$ ?0 ?v0!5))) 0)))))
+(let ((@x3535 (monotonicity (quant-intro (refl (= $x2435 $x2435)) (= $x2446 $x3528)) (= (not $x2446) $x3533))))
+(let ((@x3541 (monotonicity (monotonicity @x3535 (= (or $x1533 $x1538 (not $x2446)) $x3536)) (= $x2454 $x3539))))
+(let ((@x3824 (monotonicity @x3541 (monotonicity @x3818 (= $x2954 $x3819)) (= $x2959 $x3822))))
+(let ((@x3523 (quant-intro (refl (= (or $x134 $x917 $x928) (or $x134 $x917 $x928))) (= $x2431 $x3519))))
+(let ((@x3830 (monotonicity (monotonicity @x3523 (= (not $x2431) $x3524)) (monotonicity @x3824 (= (not $x2959) $x3825)) (= (or (not $x2431) (not $x2959)) $x3828))))
+(let ((@x3839 (monotonicity (monotonicity (monotonicity @x3830 (= $x2968 $x3831)) (= $x2973 $x3834)) (= (not $x2973) $x3837))))
+(let (($x2381 (or $x133 (not (fun_app$ v_b_Visited_G_0$ ?1)) $x902)))
+(let ((@x3517 (monotonicity (quant-intro (refl (= $x2381 $x2381)) (= $x2386 $x3510)) (= (not $x2386) $x3515))))
+(let ((@x3845 (monotonicity (monotonicity @x3517 @x3839 (= (or (not $x2386) (not $x2973)) $x3840)) (= $x2982 $x3843))))
+(let ((@x3851 (monotonicity (monotonicity @x3845 (= $x2987 $x3846)) (= (not $x2987) $x3849))))
+(let ((@x3505 (quant-intro (refl (= (>= ?x124 0) (>= ?x124 0))) (= $x894 $x3501))))
+(let ((@x3854 (monotonicity (monotonicity @x3505 (= $x897 $x3506)) @x3851 (= (or $x897 (not $x2987)) $x3852))))
+(let ((@x3863 (monotonicity (monotonicity (monotonicity @x3854 (= $x2995 $x3855)) (= $x3000 $x3858)) (= (not $x3000) $x3861))))
+(let ((@x3869 (monotonicity (monotonicity @x3863 (= (or $x864 (not $x3000)) $x3864)) (= $x3008 $x3867))))
+(let (($x2246 (forall ((?v1 B_Vertex$) )(! (let ((?x1906 (v_b_SP_G_2$ ?v0!20)))
+(let ((?x1907 (* (- 1) ?x1906)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let (($x2237 (= (+ ?x268 ?x1907 (b_G$ (pair$ ?v1 ?v0!20))) 0)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x2240 (and (not (>= (+ ?x268 ?x1907) 0)) $x286 $x2237)))
+(not $x2240))))))) :qid k!38))
+))
+(let (($x1910 (not $x1909)))
+(let (($x1905 (not $x1904)))
+(let (($x2255 (and $x1284 $x1905 $x1910 $x2246)))
+(let (($x1886 (not (and $x1878 (not $x1883)))))
+(let (($x1892 (or $x1886 $x1891)))
+(let (($x1893 (not $x1892)))
+(let (($x2260 (or $x1893 $x2255)))
+(let (($x2263 (and $x1265 $x2260)))
+(let (($x1859 (not (and (not $x1855) $x1857))))
+(let (($x1865 (or $x1859 $x1864)))
+(let (($x1866 (not $x1865)))
+(let (($x2266 (or $x1866 $x2263)))
+(let (($x2269 (and $x1251 $x2266)))
+(let (($x2272 (or $x1843 $x2269)))
+(let (($x2275 (and $x292 $x2272)))
+(let (($x2278 (or $x768 $x2275)))
+(let (($x2281 (and $x647 $x2278)))
+(let (($x2284 (or $x1825 $x2281)))
+(let (($x2287 (and $x1242 $x2284)))
+(let (($x2290 (or $x1808 $x2287)))
+(let (($x1774 (not $x1773)))
+(let (($x1769 (not $x1768)))
+(let (($x2296 (and $x1769 $x1774 $x253 $x1209 $x1204 $x261 $x1188 $x1194 $x2290)))
+(let (($x1744 (not $x243)))
+(let (($x1747 (and $x1141 $x1744)))
+(let (($x1728 (not (and (not $x1719) (not $x1725)))))
+(let (($x2207 (or $x1728 $x2204)))
+(let (($x2210 (not $x2207)))
+(let (($x2213 (or $x2210 $x1747)))
+(let (($x2198 (forall ((?v0 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v0)))
+(let ((?x2186 (+ ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ (?v1!9 ?v0))) (* (- 1) (b_G$ (pair$ (?v1!9 ?v0) ?v0))))))
+(let (($x2187 (= ?x2186 0)))
+(let (($x2171 (<= (+ ?x227 (* (- 1) (fun_app$a v_b_SP_G_3$ (?v1!9 ?v0)))) 0)))
+(let (($x2192 (and (not $x2171) $x2187)))
+(let (($x1094 (<= (+ b_Infinity$ (* (- 1) ?x227)) 0)))
+(let (($x1095 (not $x1094)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x1098 (and $x128 $x1095)))
+(let (($x1101 (not $x1098)))
+(or $x1101 $x2192)))))))))))) :qid k!38))
+))
+(let (($x2216 (and $x2198 $x2213)))
+(let (($x2152 (forall ((?v1 B_Vertex$) )(! (let ((?x1656 (fun_app$a v_b_SP_G_3$ ?v0!8)))
+(let ((?x1657 (* (- 1) ?x1656)))
+(let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let (($x2143 (= (+ ?x227 ?x1657 (b_G$ (pair$ ?v1 ?v0!8))) 0)))
+(let (($x2146 (and (not (>= (+ ?x227 ?x1657) 0)) $x2143)))
+(not $x2146)))))) :qid k!38))
+))
+(let (($x1660 (not $x1659)))
+(let (($x1655 (not $x1654)))
+(let (($x2158 (and $x1655 $x1660 $x2152)))
+(let (($x2219 (or $x2158 $x2216)))
+(let (($x1636 (forall ((?v0 B_Vertex$) )(! (let (($x997 (<= (+ b_Infinity$ (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0))) 0)))
+(let (($x998 (not $x997)))
+(let (($x175 (fun_app$ v_b_Visited_G_1$ ?v0)))
+(let (($x176 (not $x175)))
+(let (($x1072 (and $x176 $x998)))
+(not $x1072)))))) :qid k!38))
+))
+(let (($x2225 (and $x1636 $x209 $x212 $x214 $x217 $x2219)))
+(let (($x2301 (or $x2225 $x2296)))
+(let (($x2135 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x2123 (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ (?v1!7 ?v0))) (* (- 1) (b_G$ (pair$ (?v1!7 ?v0) ?v0))))))
+(let (($x2124 (= ?x2123 0)))
+(let ((?x1608 (?v1!7 ?v0)))
+(let (($x1613 (fun_app$ v_b_Visited_G_1$ ?x1608)))
+(let (($x2129 (and (not (<= (+ ?x171 (* (- 1) (fun_app$a v_b_SP_G_1$ ?x1608))) 0)) $x1613 $x2124)))
+(let (($x997 (<= (+ b_Infinity$ (* (- 1) ?x171)) 0)))
+(let (($x998 (not $x997)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x1001 (and $x128 $x998)))
+(let (($x1004 (not $x1001)))
+(or $x1004 $x2129))))))))))))) :qid k!38))
+))
+(let (($x2097 (forall ((?v0 B_Vertex$) )(! (let ((?x124 (v_b_SP_G_0$ ?v0)))
+(let ((?x2085 (+ ?x124 (* (- 1) (v_b_SP_G_0$ (?v1!6 ?v0))) (* (- 1) (b_G$ (pair$ (?v1!6 ?v0) ?v0))))))
+(let (($x2086 (= ?x2085 0)))
+(let ((?x1573 (?v1!6 ?v0)))
+(let (($x1578 (fun_app$ v_b_Visited_G_0$ ?x1573)))
+(let (($x2091 (and (not (<= (+ ?x124 (* (- 1) (v_b_SP_G_0$ ?x1573))) 0)) $x1578 $x2086)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x946 (and $x128 (not (<= (+ b_Infinity$ (* (- 1) ?x124)) 0)))))
+(let (($x949 (not $x946)))
+(or $x949 $x2091))))))))))) :qid k!38))
+))
+(let (($x2310 (and $x2097 $x170 $x1046 $x1040 $x992 $x2135 $x2301)))
+(let (($x1562 (forall ((?v1 B_Vertex$) )(! (let ((?x1535 (v_b_SP_G_0$ ?v0!5)))
+(let ((?x1536 (* (- 1) ?x1535)))
+(let ((?x124 (v_b_SP_G_0$ ?v1)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(let (($x1549 (and (not (>= (+ ?x124 ?x1536) 0)) $x133 (= (+ ?x124 ?x1536 (b_G$ (pair$ ?v1 ?v0!5))) 0))))
+(not $x1549)))))) :qid k!38))
+))
+(let (($x2057 (and $x1534 $x1539 $x1562)))
+(let (($x2315 (or $x2057 $x2310)))
+(let (($x2318 (and $x934 $x2315)))
+(let (($x1515 (not (and $x1507 (not $x1512)))))
+(let (($x2046 (or $x1515 $x2043)))
+(let (($x2049 (not $x2046)))
+(let (($x2321 (or $x2049 $x2318)))
+(let (($x2324 (and $x909 $x2321)))
+(let (($x1488 (not (and (not $x1484) $x1486))))
+(let (($x1494 (or $x1488 $x1493)))
+(let (($x1495 (not $x1494)))
+(let (($x2327 (or $x1495 $x2324)))
+(let (($x2330 (and $x894 $x2327)))
+(let (($x2333 (or $x1472 $x2330)))
+(let (($x2336 (and $x142 $x2333)))
+(let (($x2339 (or $x864 $x2336)))
+(let ((@x2937 (rewrite (= (and $x1769 $x1774 $x253 $x1209 $x1204 $x261 $x2731 $x2737 $x2923) $x2935))))
+(let (($x2237 (= (+ ?x268 ?x1907 (b_G$ (pair$ ?0 ?v0!20))) 0)))
+(let (($x2240 (and (not (>= (+ ?x268 ?x1907) 0)) $x286 $x2237)))
+(let (($x2243 (not $x2240)))
+(let ((@x2838 (monotonicity (rewrite (= $x2240 (not $x2832))) (= $x2243 (not (not $x2832))))))
+(let ((@x2845 (quant-intro (trans @x2838 (rewrite (= (not (not $x2832)) $x2832)) (= $x2243 $x2832)) (= $x2246 $x2843))))
+(let ((@x2815 (monotonicity (rewrite (= $x1271 (not (or $x295 $x917)))) (= $x1274 (not (not (or $x295 $x917)))))))
+(let ((@x2819 (trans @x2815 (rewrite (= (not (not (or $x295 $x917))) (or $x295 $x917))) (= $x1274 (or $x295 $x917)))))
+(let ((@x2827 (trans (monotonicity @x2819 (= $x1281 (or (or $x295 $x917) $x1277))) (rewrite (= (or (or $x295 $x917) $x1277) (or $x295 $x917 $x1277))) (= $x1281 (or $x295 $x917 $x1277)))))
+(let ((@x2848 (monotonicity (quant-intro @x2827 (= $x1284 $x2828)) @x2845 (= $x2255 (and $x2828 $x1905 $x1910 $x2843)))))
+(let ((@x2856 (trans @x2848 (rewrite (= (and $x2828 $x1905 $x1910 $x2843) $x2852)) (= $x2255 $x2852))))
+(let ((@x2793 (monotonicity (rewrite (= (and $x1878 (not $x1883)) (not (or $x2786 $x1883)))) (= $x1886 (not (not (or $x2786 $x1883)))))))
+(let ((@x2797 (trans @x2793 (rewrite (= (not (not (or $x2786 $x1883))) (or $x2786 $x1883))) (= $x1886 (or $x2786 $x1883)))))
+(let ((@x2805 (trans (monotonicity @x2797 (= $x1892 (or (or $x2786 $x1883) $x1891))) (rewrite (= (or (or $x2786 $x1883) $x1891) $x2801)) (= $x1892 $x2801))))
+(let ((@x2859 (monotonicity (monotonicity @x2805 (= $x1893 $x2806)) @x2856 (= $x2260 $x2857))))
+(let ((@x2780 (rewrite (= (or (or $x286 (not $x296)) $x1257) (or $x286 (not $x296) $x1257)))))
+(let ((@x2772 (rewrite (= (not (not (or $x286 (not $x296)))) (or $x286 (not $x296))))))
+(let ((@x2770 (monotonicity (rewrite (= $x297 (not (or $x286 (not $x296))))) (= $x659 (not (not (or $x286 (not $x296))))))))
+(let ((@x2777 (monotonicity (trans @x2770 @x2772 (= $x659 (or $x286 (not $x296)))) (= $x1262 (or (or $x286 (not $x296)) $x1257)))))
+(let ((@x2785 (quant-intro (trans @x2777 @x2780 (= $x1262 (or $x286 (not $x296) $x1257))) (= $x1265 $x2783))))
+(let ((@x2870 (trans (monotonicity @x2785 @x2859 (= $x2263 (and $x2783 $x2857))) (rewrite (= (and $x2783 $x2857) $x2866)) (= $x2263 $x2866))))
+(let ((@x2747 (monotonicity (rewrite (= (and (not $x1855) $x1857) (not (or $x1855 $x2740)))) (= $x1859 (not (not (or $x1855 $x2740)))))))
+(let ((@x2751 (trans @x2747 (rewrite (= (not (not (or $x1855 $x2740))) (or $x1855 $x2740))) (= $x1859 (or $x1855 $x2740)))))
+(let ((@x2759 (trans (monotonicity @x2751 (= $x1865 (or (or $x1855 $x2740) $x1864))) (rewrite (= (or (or $x1855 $x2740) $x1864) $x2755)) (= $x1865 $x2755))))
+(let ((@x2873 (monotonicity (monotonicity @x2759 (= $x1866 $x2760)) @x2870 (= $x2266 $x2871))))
+(let ((@x2883 (trans (monotonicity @x2873 (= $x2269 (and $x1251 $x2871))) (rewrite (= (and $x1251 $x2871) $x2879)) (= $x2269 $x2879))))
+(let ((@x2889 (monotonicity (monotonicity @x2883 (= $x2272 $x2884)) (= $x2275 (and $x292 $x2884)))))
+(let ((@x2899 (monotonicity (trans @x2889 (rewrite (= (and $x292 $x2884) $x2892)) (= $x2275 $x2892)) (= $x2278 $x2897))))
+(let ((@x2909 (trans (monotonicity @x2899 (= $x2281 (and $x647 $x2897))) (rewrite (= (and $x647 $x2897) $x2905)) (= $x2281 $x2905))))
+(let ((@x2915 (monotonicity (monotonicity @x2909 (= $x2284 $x2910)) (= $x2287 (and $x1242 $x2910)))))
+(let ((@x2925 (monotonicity (trans @x2915 (rewrite (= (and $x1242 $x2910) $x2918)) (= $x2287 $x2918)) (= $x2290 $x2923))))
+(let ((@x2736 (monotonicity (rewrite (= $x1174 (not (or $x1164 $x1170)))) (= $x1191 (or (not (or $x1164 $x1170)) $x273)))))
+(let ((@x2718 (monotonicity (rewrite (= $x1174 (not (or $x1164 $x1170)))) (= $x1177 (not (not (or $x1164 $x1170)))))))
+(let ((@x2722 (trans @x2718 (rewrite (= (not (not (or $x1164 $x1170))) (or $x1164 $x1170))) (= $x1177 (or $x1164 $x1170)))))
+(let ((@x2730 (trans (monotonicity @x2722 (= $x1185 (or (or $x1164 $x1170) $x1180))) (rewrite (= (or (or $x1164 $x1170) $x1180) (or $x1164 $x1170 $x1180))) (= $x1185 (or $x1164 $x1170 $x1180)))))
+(let ((@x2928 (monotonicity (quant-intro @x2730 (= $x1188 $x2731)) (quant-intro @x2736 (= $x1194 $x2737)) @x2925 (= $x2296 (and $x1769 $x1774 $x253 $x1209 $x1204 $x261 $x2731 $x2737 $x2923)))))
+(let ((@x2654 (monotonicity (rewrite (= $x1129 (not (or $x1094 $x917)))) (= $x1132 (not (not (or $x1094 $x917)))))))
+(let ((@x2658 (trans @x2654 (rewrite (= (not (not (or $x1094 $x917))) (or $x1094 $x917))) (= $x1132 (or $x1094 $x917)))))
+(let ((@x2666 (trans (monotonicity @x2658 (= $x1138 (or (or $x1094 $x917) $x1135))) (rewrite (= (or (or $x1094 $x917) $x1135) (or $x1094 $x917 $x1135))) (= $x1138 (or $x1094 $x917 $x1135)))))
+(let ((@x2672 (monotonicity (quant-intro @x2666 (= $x1141 $x2667)) (= $x1747 (and $x2667 $x1744)))))
+(let ((@x2632 (monotonicity (rewrite (= (and (not $x1719) (not $x1725)) (not (or $x1719 $x1725)))) (= $x1728 (not (not (or $x1719 $x1725)))))))
+(let ((@x2636 (trans @x2632 (rewrite (= (not (not (or $x1719 $x1725))) (or $x1719 $x1725))) (= $x1728 (or $x1719 $x1725)))))
+(let ((@x2644 (trans (monotonicity @x2636 (= $x2207 (or (or $x1719 $x1725) $x2204))) (rewrite (= (or (or $x1719 $x1725) $x2204) $x2640)) (= $x2207 $x2640))))
+(let ((@x2682 (monotonicity (monotonicity @x2644 (= $x2210 $x2645)) (trans @x2672 (rewrite (= (and $x2667 $x1744) $x2675)) (= $x1747 $x2675)) (= $x2213 $x2680))))
+(let ((@x2605 (monotonicity (rewrite (= $x1098 (not (or $x123 $x1094)))) (= $x1101 (not (not (or $x123 $x1094)))))))
+(let ((@x2609 (trans @x2605 (rewrite (= (not (not (or $x123 $x1094))) (or $x123 $x1094))) (= $x1101 (or $x123 $x1094)))))
+(let ((@x2617 (monotonicity @x2609 (rewrite (= (and (not $x2171) $x2187) $x2612)) (= (or $x1101 (and (not $x2171) $x2187)) (or (or $x123 $x1094) $x2612)))))
+(let ((@x2622 (trans @x2617 (rewrite (= (or (or $x123 $x1094) $x2612) $x2618)) (= (or $x1101 (and (not $x2171) $x2187)) $x2618))))
+(let ((@x2685 (monotonicity (quant-intro @x2622 (= $x2198 $x2623)) @x2682 (= $x2216 (and $x2623 $x2680)))))
+(let (($x2146 (and (not (>= (+ ?x227 ?x1657) 0)) $x2143)))
+(let (($x2149 (not $x2146)))
+(let ((@x2581 (monotonicity (rewrite (= $x2146 (not $x2575))) (= $x2149 (not (not $x2575))))))
+(let ((@x2588 (quant-intro (trans @x2581 (rewrite (= (not (not $x2575)) $x2575)) (= $x2149 $x2575)) (= $x2152 $x2586))))
+(let ((@x2598 (trans (monotonicity @x2588 (= $x2158 (and $x1655 $x1660 $x2586))) (rewrite (= (and $x1655 $x1660 $x2586) $x2594)) (= $x2158 $x2594))))
+(let ((@x2696 (monotonicity @x2598 (trans @x2685 (rewrite (= (and $x2623 $x2680) $x2689)) (= $x2216 $x2689)) (= $x2219 $x2694))))
+(let ((@x2566 (monotonicity (rewrite (= $x1072 (not (or $x175 $x997)))) (= (not $x1072) (not (not (or $x175 $x997)))))))
+(let ((@x2570 (trans @x2566 (rewrite (= (not (not (or $x175 $x997))) (or $x175 $x997))) (= (not $x1072) (or $x175 $x997)))))
+(let ((@x2699 (monotonicity (quant-intro @x2570 (= $x1636 $x2571)) @x2696 (= $x2225 (and $x2571 $x209 $x212 $x214 $x217 $x2694)))))
+(let ((@x2711 (trans @x2699 (rewrite (= (and $x2571 $x209 $x212 $x214 $x217 $x2694) $x2707)) (= $x2225 $x2707))))
+(let ((?x1608 (?v1!7 ?0)))
+(let (($x1613 (fun_app$ v_b_Visited_G_1$ ?x1608)))
+(let (($x2129 (and (not $x2108) $x1613 $x2124)))
+(let (($x2132 (or $x1004 $x2129)))
+(let ((@x2538 (monotonicity (rewrite (= $x1001 (not (or $x123 $x997)))) (= $x1004 (not (not (or $x123 $x997)))))))
+(let ((@x2542 (trans @x2538 (rewrite (= (not (not (or $x123 $x997))) (or $x123 $x997))) (= $x1004 (or $x123 $x997)))))
+(let ((@x2551 (monotonicity @x2542 (rewrite (= $x2129 $x2546)) (= $x2132 (or (or $x123 $x997) $x2546)))))
+(let ((@x2556 (trans @x2551 (rewrite (= (or (or $x123 $x997) $x2546) $x2552)) (= $x2132 $x2552))))
+(let ((@x2516 (monotonicity (rewrite (= $x978 (not (or $x176 $x917)))) (= $x981 (not (not (or $x176 $x917)))))))
+(let ((@x2520 (trans @x2516 (rewrite (= (not (not (or $x176 $x917))) (or $x176 $x917))) (= $x981 (or $x176 $x917)))))
+(let ((@x2528 (trans (monotonicity @x2520 (= $x989 (or (or $x176 $x917) $x985))) (rewrite (= (or (or $x176 $x917) $x985) (or $x176 $x917 $x985))) (= $x989 (or $x176 $x917 $x985)))))
+(let ((@x2504 (rewrite (= (or (or $x175 (not $x177)) $x1010) (or $x175 (not $x177) $x1010)))))
+(let ((@x2496 (rewrite (= (not (not (or $x175 (not $x177)))) (or $x175 (not $x177))))))
+(let ((@x2494 (monotonicity (rewrite (= $x178 (not (or $x175 (not $x177))))) (= $x398 (not (not (or $x175 (not $x177))))))))
+(let ((@x2501 (monotonicity (trans @x2494 @x2496 (= $x398 (or $x175 (not $x177)))) (= $x1037 (or (or $x175 (not $x177)) $x1010)))))
+(let ((@x2509 (quant-intro (trans @x2501 @x2504 (= $x1037 (or $x175 (not $x177) $x1010))) (= $x1040 $x2507))))
+(let ((?x1573 (?v1!6 ?0)))
+(let (($x1578 (fun_app$ v_b_Visited_G_0$ ?x1573)))
+(let (($x2091 (and (not $x2070) $x1578 $x2086)))
+(let (($x2094 (or $x949 $x2091)))
+(let ((@x2465 (monotonicity (rewrite (= $x946 (not (or $x123 $x942)))) (= $x949 (not (not (or $x123 $x942)))))))
+(let ((@x2469 (trans @x2465 (rewrite (= (not (not (or $x123 $x942))) (or $x123 $x942))) (= $x949 (or $x123 $x942)))))
+(let ((@x2478 (monotonicity @x2469 (rewrite (= $x2091 $x2473)) (= $x2094 (or (or $x123 $x942) $x2473)))))
+(let ((@x2483 (trans @x2478 (rewrite (= (or (or $x123 $x942) $x2473) $x2479)) (= $x2094 $x2479))))
+(let ((@x2945 (monotonicity (quant-intro @x2483 (= $x2097 $x2484)) @x2509 (quant-intro @x2528 (= $x992 $x2529)) (quant-intro @x2556 (= $x2135 $x2557)) (monotonicity @x2711 (trans @x2928 @x2937 (= $x2296 $x2935)) (= $x2301 $x2940)) (= $x2310 (and $x2484 $x170 $x1046 $x2507 $x2529 $x2557 $x2940)))))
+(let ((@x2958 (trans @x2945 (rewrite (= (and $x2484 $x170 $x1046 $x2507 $x2529 $x2557 $x2940) $x2954)) (= $x2310 $x2954))))
+(let (($x1549 (and (not (>= (+ ?x124 ?x1536) 0)) $x133 (= (+ ?x124 ?x1536 (b_G$ (pair$ ?0 ?v0!5))) 0))))
+(let (($x1559 (not $x1549)))
+(let ((@x2441 (monotonicity (rewrite (= $x1549 (not $x2435))) (= $x1559 (not (not $x2435))))))
+(let ((@x2448 (quant-intro (trans @x2441 (rewrite (= (not (not $x2435)) $x2435)) (= $x1559 $x2435)) (= $x1562 $x2446))))
+(let ((@x2458 (trans (monotonicity @x2448 (= $x2057 (and $x1534 $x1539 $x2446))) (rewrite (= (and $x1534 $x1539 $x2446) $x2454)) (= $x2057 $x2454))))
+(let ((@x2418 (monotonicity (rewrite (= $x921 (not (or $x134 $x917)))) (= $x924 (not (not (or $x134 $x917)))))))
+(let ((@x2422 (trans @x2418 (rewrite (= (not (not (or $x134 $x917))) (or $x134 $x917))) (= $x924 (or $x134 $x917)))))
+(let ((@x2430 (trans (monotonicity @x2422 (= $x931 (or (or $x134 $x917) $x928))) (rewrite (= (or (or $x134 $x917) $x928) (or $x134 $x917 $x928))) (= $x931 (or $x134 $x917 $x928)))))
+(let ((@x2964 (monotonicity (quant-intro @x2430 (= $x934 $x2431)) (monotonicity @x2458 @x2958 (= $x2315 $x2959)) (= $x2318 (and $x2431 $x2959)))))
+(let ((@x2396 (monotonicity (rewrite (= (and $x1507 (not $x1512)) (not (or $x2389 $x1512)))) (= $x1515 (not (not (or $x2389 $x1512)))))))
+(let ((@x2400 (trans @x2396 (rewrite (= (not (not (or $x2389 $x1512))) (or $x2389 $x1512))) (= $x1515 (or $x2389 $x1512)))))
+(let ((@x2408 (trans (monotonicity @x2400 (= $x2046 (or (or $x2389 $x1512) $x2043))) (rewrite (= (or (or $x2389 $x1512) $x2043) $x2404)) (= $x2046 $x2404))))
+(let ((@x2975 (monotonicity (monotonicity @x2408 (= $x2049 $x2409)) (trans @x2964 (rewrite (= (and $x2431 $x2959) $x2968)) (= $x2318 $x2968)) (= $x2321 $x2973))))
+(let (($x2382 (= (or (or $x133 (not (fun_app$ v_b_Visited_G_0$ ?1))) $x902) $x2381)))
+(let (($x2379 (= $x906 (or (or $x133 (not (fun_app$ v_b_Visited_G_0$ ?1))) $x902))))
+(let (($x2367 (or $x133 (not (fun_app$ v_b_Visited_G_0$ ?1)))))
+(let ((@x2373 (monotonicity (rewrite (= $x146 (not $x2367))) (= $x377 (not (not $x2367))))))
+(let ((@x2380 (monotonicity (trans @x2373 (rewrite (= (not (not $x2367)) $x2367)) (= $x377 $x2367)) $x2379)))
+(let ((@x2388 (quant-intro (trans @x2380 (rewrite $x2382) (= $x906 $x2381)) (= $x909 $x2386))))
+(let ((@x2986 (trans (monotonicity @x2388 @x2975 (= $x2324 (and $x2386 $x2973))) (rewrite (= (and $x2386 $x2973) $x2982)) (= $x2324 $x2982))))
+(let ((@x2350 (monotonicity (rewrite (= (and (not $x1484) $x1486) (not (or $x1484 $x2343)))) (= $x1488 (not (not (or $x1484 $x2343)))))))
+(let ((@x2354 (trans @x2350 (rewrite (= (not (not (or $x1484 $x2343))) (or $x1484 $x2343))) (= $x1488 (or $x1484 $x2343)))))
+(let ((@x2362 (trans (monotonicity @x2354 (= $x1494 (or (or $x1484 $x2343) $x1493))) (rewrite (= (or (or $x1484 $x2343) $x1493) $x2358)) (= $x1494 $x2358))))
+(let ((@x2989 (monotonicity (monotonicity @x2362 (= $x1495 $x2363)) @x2986 (= $x2327 $x2987))))
+(let ((@x2999 (trans (monotonicity @x2989 (= $x2330 (and $x894 $x2987))) (rewrite (= (and $x894 $x2987) $x2995)) (= $x2330 $x2995))))
+(let ((@x3005 (monotonicity (monotonicity @x2999 (= $x2333 $x3000)) (= $x2336 (and $x142 $x3000)))))
+(let ((@x3015 (monotonicity (trans @x3005 (rewrite (= (and $x142 $x3000) $x3008)) (= $x2336 $x3008)) (= $x2339 $x3013))))
+(let (($x1933 (forall ((?v1 B_Vertex$) )(! (let ((?x1906 (v_b_SP_G_2$ ?v0!20)))
+(let ((?x1907 (* (- 1) ?x1906)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(let (($x1920 (and (not (>= (+ ?x268 ?x1907) 0)) $x286 (= (+ (b_G$ (pair$ ?v1 ?v0!20)) ?x268 ?x1907) 0))))
+(not $x1920)))))) :qid k!38))
+))
+(let (($x1927 (not (not (and $x1905 $x1910)))))
+(let (($x1937 (and $x1927 $x1933)))
+(let (($x1942 (and $x1284 $x1937)))
+(let (($x1946 (or $x1893 $x1942)))
+(let (($x1950 (and $x1265 $x1946)))
+(let (($x1954 (or $x1866 $x1950)))
+(let (($x1958 (and $x1251 $x1954)))
+(let (($x1962 (or $x1843 $x1958)))
+(let (($x1837 (not $x768)))
+(let (($x1966 (and $x1837 $x1962)))
+(let (($x1970 (or $x768 $x1966)))
+(let (($x1974 (and $x647 $x1970)))
+(let (($x1978 (or $x1825 $x1974)))
+(let (($x1982 (and $x1242 $x1978)))
+(let (($x1986 (or $x1808 $x1982)))
+(let (($x1796 (and (and $x1769 $x1774) $x253 $x1209 $x1204 $x261 $x1188 $x1194)))
+(let (($x1990 (and $x1796 $x1986)))
+(let (($x1734 (not (or $x1728 (>= (+ ?x1722 ?x1716 ?x1730) 0)))))
+(let (($x1751 (or $x1734 $x1747)))
+(let (($x1708 (forall ((?v0 B_Vertex$) )(! (let ((?x227 (fun_app$a v_b_SP_G_3$ ?v0)))
+(let ((?x1092 (* (- 1) ?x227)))
+(let ((?x1694 (fun_app$a v_b_SP_G_3$ (?v1!9 ?v0))))
+(let ((?x1699 (b_G$ (pair$ (?v1!9 ?v0) ?v0))))
+(let (($x1701 (= (+ ?x1699 ?x1694 ?x1092) 0)))
+(let (($x1702 (and (not (>= (+ ?x1694 ?x1092) 0)) $x1701)))
+(let (($x1094 (<= (+ b_Infinity$ ?x1092) 0)))
+(let (($x1095 (not $x1094)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x1098 (and $x128 $x1095)))
+(let (($x1101 (not $x1098)))
+(or $x1101 $x1702))))))))))))) :qid k!38))
+))
+(let (($x1755 (and $x1708 $x1751)))
+(let (($x1682 (forall ((?v1 B_Vertex$) )(! (let ((?x1656 (fun_app$a v_b_SP_G_3$ ?v0!8)))
+(let ((?x1657 (* (- 1) ?x1656)))
+(let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(let (($x1670 (and (not (>= (+ ?x227 ?x1657) 0)) (= (+ (b_G$ (pair$ ?v1 ?v0!8)) ?x227 ?x1657) 0))))
+(not $x1670))))) :qid k!38))
+))
+(let (($x1676 (not (not (and $x1655 $x1660)))))
+(let (($x1686 (and $x1676 $x1682)))
+(let (($x1759 (or $x1686 $x1755)))
+(let (($x1647 (and $x1636 $x209 $x212 $x214 $x217)))
+(let (($x1763 (and $x1647 $x1759)))
+(let (($x1994 (or $x1763 $x1990)))
+(let (($x1624 (forall ((?v0 B_Vertex$) )(! (let ((?x171 (fun_app$a v_b_SP_G_1$ ?v0)))
+(let ((?x995 (* (- 1) ?x171)))
+(let ((?x1608 (?v1!7 ?v0)))
+(let ((?x1609 (fun_app$a v_b_SP_G_1$ ?x1608)))
+(let ((?x1615 (b_G$ (pair$ ?x1608 ?v0))))
+(let (($x1617 (= (+ ?x1615 ?x1609 ?x995) 0)))
+(let (($x1613 (fun_app$ v_b_Visited_G_1$ ?x1608)))
+(let (($x1618 (and (not (>= (+ ?x1609 ?x995) 0)) $x1613 $x1617)))
+(let (($x997 (<= (+ b_Infinity$ ?x995) 0)))
+(let (($x998 (not $x997)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x1001 (and $x128 $x998)))
+(let (($x1004 (not $x1001)))
+(or $x1004 $x1618))))))))))))))) :qid k!38))
+))
+(let (($x1589 (forall ((?v0 B_Vertex$) )(! (let ((?x1580 (b_G$ (pair$ (?v1!6 ?v0) ?v0))))
+(let ((?x124 (v_b_SP_G_0$ ?v0)))
+(let ((?x940 (* (- 1) ?x124)))
+(let ((?x1573 (?v1!6 ?v0)))
+(let ((?x1574 (v_b_SP_G_0$ ?x1573)))
+(let (($x1582 (= (+ ?x1574 ?x940 ?x1580) 0)))
+(let (($x1578 (fun_app$ v_b_Visited_G_0$ ?x1573)))
+(let (($x1583 (and (not (>= (+ ?x1574 ?x940) 0)) $x1578 $x1582)))
+(let (($x123 (= ?v0 b_Source$)))
+(let (($x128 (not $x123)))
+(let (($x946 (and $x128 (not (<= (+ b_Infinity$ ?x940) 0)))))
+(let (($x949 (not $x946)))
+(or $x949 $x1583))))))))))))) :qid k!38))
+))
+(let (($x1627 (and $x1589 $x170 $x1046 $x1040 $x992 $x1624)))
+(let (($x1998 (and $x1627 $x1994)))
+(let (($x1556 (not (not (and $x1534 $x1539)))))
+(let (($x1566 (and $x1556 $x1562)))
+(let (($x2002 (or $x1566 $x1998)))
+(let (($x2006 (and $x934 $x2002)))
+(let (($x1522 (not (or $x1515 (>= (+ ?x1516 ?x1518 ?x1509) 0)))))
+(let (($x2010 (or $x1522 $x2006)))
+(let (($x2014 (and $x909 $x2010)))
+(let (($x2018 (or $x1495 $x2014)))
+(let (($x2022 (and $x894 $x2018)))
+(let (($x2026 (or $x1472 $x2022)))
+(let (($x1466 (not $x864)))
+(let (($x2030 (and $x1466 $x2026)))
+(let (($x2034 (or $x864 $x2030)))
+(let (($x1920 (and (not (>= (+ ?x268 ?x1907) 0)) $x286 (= (+ (b_G$ (pair$ ?0 ?v0!20)) ?x268 ?x1907) 0))))
+(let (($x1930 (not $x1920)))
+(let (($x2235 (= (+ (b_G$ (pair$ ?0 ?v0!20)) ?x268 ?x1907) (+ ?x268 ?x1907 (b_G$ (pair$ ?0 ?v0!20))))))
+(let ((@x2239 (monotonicity (rewrite $x2235) (= (= (+ (b_G$ (pair$ ?0 ?v0!20)) ?x268 ?x1907) 0) $x2237))))
+(let ((@x2248 (quant-intro (monotonicity (monotonicity @x2239 (= $x1920 $x2240)) (= $x1930 $x2243)) (= $x1933 $x2246))))
+(let ((@x2251 (monotonicity (rewrite (= $x1927 (and $x1905 $x1910))) @x2248 (= $x1937 (and (and $x1905 $x1910) $x2246)))))
+(let ((@x2259 (trans (monotonicity @x2251 (= $x1942 (and $x1284 (and (and $x1905 $x1910) $x2246)))) (rewrite (= (and $x1284 (and (and $x1905 $x1910) $x2246)) $x2255)) (= $x1942 $x2255))))
+(let ((@x2268 (monotonicity (monotonicity (monotonicity @x2259 (= $x1946 $x2260)) (= $x1950 $x2263)) (= $x1954 $x2266))))
+(let ((@x2277 (monotonicity (rewrite (= $x1837 $x292)) (monotonicity (monotonicity @x2268 (= $x1958 $x2269)) (= $x1962 $x2272)) (= $x1966 $x2275))))
+(let ((@x2286 (monotonicity (monotonicity (monotonicity @x2277 (= $x1970 $x2278)) (= $x1974 $x2281)) (= $x1978 $x2284))))
+(let ((@x2295 (monotonicity (monotonicity (monotonicity @x2286 (= $x1982 $x2287)) (= $x1986 $x2290)) (= $x1990 (and $x1796 $x2290)))))
+(let ((@x2206 (monotonicity (rewrite (= (+ ?x1722 ?x1716 ?x1730) ?x2201)) (= (>= (+ ?x1722 ?x1716 ?x1730) 0) $x2204))))
+(let ((@x2209 (monotonicity @x2206 (= (or $x1728 (>= (+ ?x1722 ?x1716 ?x1730) 0)) $x2207))))
+(let (($x2192 (and (not $x2171) $x2187)))
+(let (($x2195 (or $x1101 $x2192)))
+(let ((?x1092 (* (- 1) ?x227)))
+(let ((?x1694 (fun_app$a v_b_SP_G_3$ (?v1!9 ?0))))
+(let ((?x1699 (b_G$ (pair$ (?v1!9 ?0) ?0))))
+(let (($x1701 (= (+ ?x1699 ?x1694 ?x1092) 0)))
+(let (($x1702 (and (not (>= (+ ?x1694 ?x1092) 0)) $x1701)))
+(let (($x1705 (or $x1101 $x1702)))
+(let ((@x2184 (monotonicity (rewrite (= (+ ?x1699 ?x1694 ?x1092) (+ ?x1092 ?x1694 ?x1699))) (= $x1701 (= (+ ?x1092 ?x1694 ?x1699) 0)))))
+(let ((@x2191 (trans @x2184 (rewrite (= (= (+ ?x1092 ?x1694 ?x1699) 0) $x2187)) (= $x1701 $x2187))))
+(let ((@x2168 (monotonicity (rewrite (= (+ ?x1694 ?x1092) (+ ?x1092 ?x1694))) (= (>= (+ ?x1694 ?x1092) 0) (>= (+ ?x1092 ?x1694) 0)))))
+(let ((@x2175 (trans @x2168 (rewrite (= (>= (+ ?x1092 ?x1694) 0) $x2171)) (= (>= (+ ?x1694 ?x1092) 0) $x2171))))
+(let ((@x2194 (monotonicity (monotonicity @x2175 (= (not (>= (+ ?x1694 ?x1092) 0)) (not $x2171))) @x2191 (= $x1702 $x2192))))
+(let ((@x2218 (monotonicity (quant-intro (monotonicity @x2194 (= $x1705 $x2195)) (= $x1708 $x2198)) (monotonicity (monotonicity @x2209 (= $x1734 $x2210)) (= $x1751 $x2213)) (= $x1755 $x2216))))
+(let (($x1670 (and (not (>= (+ ?x227 ?x1657) 0)) (= (+ (b_G$ (pair$ ?0 ?v0!8)) ?x227 ?x1657) 0))))
+(let (($x1679 (not $x1670)))
+(let (($x2141 (= (+ (b_G$ (pair$ ?0 ?v0!8)) ?x227 ?x1657) (+ ?x227 ?x1657 (b_G$ (pair$ ?0 ?v0!8))))))
+(let ((@x2145 (monotonicity (rewrite $x2141) (= (= (+ (b_G$ (pair$ ?0 ?v0!8)) ?x227 ?x1657) 0) $x2143))))
+(let ((@x2154 (quant-intro (monotonicity (monotonicity @x2145 (= $x1670 $x2146)) (= $x1679 $x2149)) (= $x1682 $x2152))))
+(let ((@x2157 (monotonicity (rewrite (= $x1676 (and $x1655 $x1660))) @x2154 (= $x1686 (and (and $x1655 $x1660) $x2152)))))
+(let ((@x2162 (trans @x2157 (rewrite (= (and (and $x1655 $x1660) $x2152) $x2158)) (= $x1686 $x2158))))
+(let ((@x2224 (monotonicity (monotonicity @x2162 @x2218 (= $x1759 $x2219)) (= $x1763 (and $x1647 $x2219)))))
+(let ((@x2303 (monotonicity (trans @x2224 (rewrite (= (and $x1647 $x2219) $x2225)) (= $x1763 $x2225)) (trans @x2295 (rewrite (= (and $x1796 $x2290) $x2296)) (= $x1990 $x2296)) (= $x1994 $x2301))))
+(let ((?x995 (* (- 1) ?x171)))
+(let ((?x1609 (fun_app$a v_b_SP_G_1$ ?x1608)))
+(let ((?x1615 (b_G$ (pair$ ?x1608 ?0))))
+(let (($x1617 (= (+ ?x1615 ?x1609 ?x995) 0)))
+(let (($x1618 (and (not (>= (+ ?x1609 ?x995) 0)) $x1613 $x1617)))
+(let (($x1621 (or $x1004 $x1618)))
+(let ((@x2121 (monotonicity (rewrite (= (+ ?x1615 ?x1609 ?x995) (+ ?x995 ?x1609 ?x1615))) (= $x1617 (= (+ ?x995 ?x1609 ?x1615) 0)))))
+(let ((@x2128 (trans @x2121 (rewrite (= (= (+ ?x995 ?x1609 ?x1615) 0) $x2124)) (= $x1617 $x2124))))
+(let ((@x2105 (monotonicity (rewrite (= (+ ?x1609 ?x995) (+ ?x995 ?x1609))) (= (>= (+ ?x1609 ?x995) 0) (>= (+ ?x995 ?x1609) 0)))))
+(let ((@x2112 (trans @x2105 (rewrite (= (>= (+ ?x995 ?x1609) 0) $x2108)) (= (>= (+ ?x1609 ?x995) 0) $x2108))))
+(let ((@x2131 (monotonicity (monotonicity @x2112 (= (not (>= (+ ?x1609 ?x995) 0)) (not $x2108))) @x2128 (= $x1618 $x2129))))
+(let (($x1582 (= (+ (v_b_SP_G_0$ ?x1573) (* (- 1) ?x124) (b_G$ (pair$ ?x1573 ?0))) 0)))
+(let (($x1583 (and (not (>= (+ (v_b_SP_G_0$ ?x1573) (* (- 1) ?x124)) 0)) $x1578 $x1582)))
+(let (($x1586 (or $x949 $x1583)))
+(let (($x2081 (= (+ (* (- 1) ?x124) (v_b_SP_G_0$ ?x1573) (b_G$ (pair$ ?x1573 ?0))) 0)))
+(let (($x2079 (= (+ (v_b_SP_G_0$ ?x1573) (* (- 1) ?x124) (b_G$ (pair$ ?x1573 ?0))) (+ (* (- 1) ?x124) (v_b_SP_G_0$ ?x1573) (b_G$ (pair$ ?x1573 ?0))))))
+(let ((@x2090 (trans (monotonicity (rewrite $x2079) (= $x1582 $x2081)) (rewrite (= $x2081 $x2086)) (= $x1582 $x2086))))
+(let (($x2076 (= (not (>= (+ (v_b_SP_G_0$ ?x1573) (* (- 1) ?x124)) 0)) (not $x2070))))
+(let (($x1576 (>= (+ (v_b_SP_G_0$ ?x1573) (* (- 1) ?x124)) 0)))
+(let (($x2063 (= (+ (v_b_SP_G_0$ ?x1573) (* (- 1) ?x124)) (+ (* (- 1) ?x124) (v_b_SP_G_0$ ?x1573)))))
+(let ((@x2067 (monotonicity (rewrite $x2063) (= $x1576 (>= (+ (* (- 1) ?x124) (v_b_SP_G_0$ ?x1573)) 0)))))
+(let ((@x2074 (trans @x2067 (rewrite (= (>= (+ (* (- 1) ?x124) (v_b_SP_G_0$ ?x1573)) 0) $x2070)) (= $x1576 $x2070))))
+(let ((@x2096 (monotonicity (monotonicity (monotonicity @x2074 $x2076) @x2090 (= $x1583 $x2091)) (= $x1586 $x2094))))
+(let ((@x2306 (monotonicity (quant-intro @x2096 (= $x1589 $x2097)) (quant-intro (monotonicity @x2131 (= $x1621 $x2132)) (= $x1624 $x2135)) (= $x1627 (and $x2097 $x170 $x1046 $x1040 $x992 $x2135)))))
+(let ((@x2309 (monotonicity @x2306 @x2303 (= $x1998 (and (and $x2097 $x170 $x1046 $x1040 $x992 $x2135) $x2301)))))
+(let ((@x2314 (trans @x2309 (rewrite (= (and (and $x2097 $x170 $x1046 $x1040 $x992 $x2135) $x2301) $x2310)) (= $x1998 $x2310))))
+(let ((@x2056 (monotonicity (rewrite (= $x1556 (and $x1534 $x1539))) (= $x1566 (and (and $x1534 $x1539) $x1562)))))
+(let ((@x2061 (trans @x2056 (rewrite (= (and (and $x1534 $x1539) $x1562) $x2057)) (= $x1566 $x2057))))
+(let ((@x2320 (monotonicity (monotonicity @x2061 @x2314 (= $x2002 $x2315)) (= $x2006 $x2318))))
+(let ((@x2045 (monotonicity (rewrite (= (+ ?x1516 ?x1518 ?x1509) ?x2040)) (= (>= (+ ?x1516 ?x1518 ?x1509) 0) $x2043))))
+(let ((@x2048 (monotonicity @x2045 (= (or $x1515 (>= (+ ?x1516 ?x1518 ?x1509) 0)) $x2046))))
+(let ((@x2323 (monotonicity (monotonicity @x2048 (= $x1522 $x2049)) @x2320 (= $x2010 $x2321))))
+(let ((@x2332 (monotonicity (monotonicity (monotonicity @x2323 (= $x2014 $x2324)) (= $x2018 $x2327)) (= $x2022 $x2330))))
+(let ((@x2338 (monotonicity (rewrite (= $x1466 $x142)) (monotonicity @x2332 (= $x2026 $x2333)) (= $x2030 $x2336))))
+(let (($x1921 (exists ((?v1 B_Vertex$) )(! (let ((?x1906 (v_b_SP_G_2$ ?v0!20)))
+(let ((?x1907 (* (- 1) ?x1906)))
+(let ((?x268 (v_b_SP_G_2$ ?v1)))
+(let (($x286 (fun_app$ v_b_Visited_G_2$ ?v1)))
+(and (not (>= (+ ?x268 ?x1907) 0)) $x286 (= (+ (b_G$ (pair$ ?v1 ?v0!20)) ?x268 ?x1907) 0)))))) :qid k!38))
+))
+(let ((@x1939 (nnf-neg (refl (~ $x1927 $x1927)) (nnf-neg (refl (~ $x1930 $x1930)) (~ (not $x1921) $x1933)) (~ (not (or (not (and $x1905 $x1910)) $x1921)) $x1937))))
+(let ((@x1941 (trans (sk (~ (not $x1324) (not (or (not (and $x1905 $x1910)) $x1921)))) @x1939 (~ (not $x1324) $x1937))))
+(let ((@x1902 (nnf-neg (nnf-pos (refl (~ $x1281 $x1281)) (~ $x1284 $x1284)) (~ (not $x1287) $x1284))))
+(let ((@x1949 (nnf-neg (sk (~ $x1287 $x1893)) (nnf-neg @x1902 @x1941 (~ (not $x1327) $x1942)) (~ (not $x1330) $x1946))))
+(let ((@x1875 (nnf-neg (nnf-pos (refl (~ $x1262 $x1262)) (~ $x1265 $x1265)) (~ (not $x1268) $x1265))))
+(let ((@x1957 (nnf-neg (sk (~ $x1268 $x1866)) (nnf-neg @x1875 @x1949 (~ (not $x1333) $x1950)) (~ (not $x1336) $x1954))))
+(let ((@x1852 (nnf-neg (nnf-pos (refl (~ (>= ?x268 0) (>= ?x268 0))) (~ $x1251 $x1251)) (~ (not $x1254) $x1251))))
+(let ((@x1965 (nnf-neg (sk (~ $x1254 $x1843)) (nnf-neg @x1852 @x1957 (~ (not $x1339) $x1958)) (~ (not $x1342) $x1962))))
+(let ((@x1973 (nnf-neg (refl (~ $x768 $x768)) (nnf-neg (refl (~ $x1837 $x1837)) @x1965 (~ (not $x1345) $x1966)) (~ (not $x1348) $x1970))))
+(let ((@x1834 (nnf-neg (nnf-pos (refl (~ (or $x295 $x273) (or $x295 $x273))) (~ $x647 $x647)) (~ (not $x780) $x647))))
+(let ((@x1981 (nnf-neg (sk (~ $x780 $x1825)) (nnf-neg @x1834 @x1973 (~ (not $x1351) $x1974)) (~ (not $x1354) $x1978))))
+(let ((@x1817 (nnf-neg (nnf-pos (refl (~ $x1238 $x1238)) (~ $x1242 $x1242)) (~ (not $x1245) $x1242))))
+(let ((@x1989 (nnf-neg (sk (~ $x1245 $x1808)) (nnf-neg @x1817 @x1981 (~ (not $x1357) $x1982)) (~ (not $x1360) $x1986))))
+(let ((@x1798 (monotonicity (sk (~ $x1075 (and $x1769 $x1774))) (refl (~ $x253 $x253)) (refl (~ $x1209 $x1209)) (nnf-pos (refl (~ $x1201 $x1201)) (~ $x1204 $x1204)) (refl (~ $x261 $x261)) (nnf-pos (refl (~ $x1185 $x1185)) (~ $x1188 $x1188)) (nnf-pos (refl (~ $x1191 $x1191)) (~ $x1194 $x1194)) (~ $x1230 $x1796))))
+(let ((@x1993 (nnf-neg (nnf-neg @x1798 (~ (not $x1235) $x1796)) @x1989 (~ (not $x1363) $x1990))))
+(let ((@x1743 (nnf-neg (nnf-pos (refl (~ $x1138 $x1138)) (~ $x1141 $x1141)) (~ (not $x1144) $x1141))))
+(let ((@x1754 (nnf-neg (sk (~ $x1144 $x1734)) (nnf-neg @x1743 (refl (~ $x1744 $x1744)) (~ (not $x1147) $x1747)) (~ (not $x1150) $x1751))))
+(let ((@x1710 (nnf-pos (monotonicity (refl (~ $x1101 $x1101)) (sk (~ $x1117 $x1702)) (~ $x1120 $x1705)) (~ $x1123 $x1708))))
+(let ((@x1758 (nnf-neg (nnf-neg @x1710 (~ (not $x1126) $x1708)) @x1754 (~ (not $x1153) $x1755))))
+(let (($x1671 (exists ((?v1 B_Vertex$) )(! (let ((?x1656 (fun_app$a v_b_SP_G_3$ ?v0!8)))
+(let ((?x1657 (* (- 1) ?x1656)))
+(let ((?x227 (fun_app$a v_b_SP_G_3$ ?v1)))
+(and (not (>= (+ ?x227 ?x1657) 0)) (= (+ (b_G$ (pair$ ?v1 ?v0!8)) ?x227 ?x1657) 0))))) :qid k!38))
+))
+(let ((@x1688 (nnf-neg (refl (~ $x1676 $x1676)) (nnf-neg (refl (~ $x1679 $x1679)) (~ (not $x1671) $x1682)) (~ (not (or (not (and $x1655 $x1660)) $x1671)) $x1686))))
+(let ((@x1690 (trans (sk (~ $x1126 (not (or (not (and $x1655 $x1660)) $x1671)))) @x1688 (~ $x1126 $x1686))))
+(let ((@x1649 (monotonicity (nnf-neg (refl (~ (not $x1072) (not $x1072))) (~ $x1078 $x1636)) (refl (~ $x209 $x209)) (refl (~ $x212 $x212)) (refl (~ $x214 $x214)) (refl (~ $x217 $x217)) (~ $x1084 $x1647))))
+(let ((@x1766 (nnf-neg (nnf-neg @x1649 (~ (not $x1089) $x1647)) (nnf-neg @x1690 @x1758 (~ (not $x1156) $x1759)) (~ (not $x1159) $x1763))))
+(let ((@x1626 (nnf-pos (monotonicity (refl (~ $x1004 $x1004)) (sk (~ $x1026 $x1618)) (~ $x1029 $x1621)) (~ $x1032 $x1624))))
+(let ((@x1591 (nnf-pos (monotonicity (refl (~ $x949 $x949)) (sk (~ $x969 $x1583)) (~ $x972 $x1586)) (~ $x975 $x1589))))
+(let ((@x1629 (monotonicity @x1591 (refl (~ $x170 $x170)) (nnf-pos (refl (~ (>= ?x171 0) (>= ?x171 0))) (~ $x1046 $x1046)) (nnf-pos (refl (~ $x1037 $x1037)) (~ $x1040 $x1040)) (nnf-pos (refl (~ $x989 $x989)) (~ $x992 $x992)) @x1626 (~ $x1064 $x1627))))
+(let ((@x2001 (nnf-neg (nnf-neg @x1629 (~ (not $x1069) $x1627)) (nnf-neg @x1766 @x1993 (~ (not $x1366) $x1994)) (~ (not $x1369) $x1998))))
+(let (($x1550 (exists ((?v1 B_Vertex$) )(! (let ((?x1535 (v_b_SP_G_0$ ?v0!5)))
+(let ((?x1536 (* (- 1) ?x1535)))
+(let ((?x124 (v_b_SP_G_0$ ?v1)))
+(let (($x133 (fun_app$ v_b_Visited_G_0$ ?v1)))
+(and (not (>= (+ ?x124 ?x1536) 0)) $x133 (= (+ ?x124 ?x1536 (b_G$ (pair$ ?v1 ?v0!5))) 0)))))) :qid k!38))
+))
+(let ((@x1568 (nnf-neg (refl (~ $x1556 $x1556)) (nnf-neg (refl (~ $x1559 $x1559)) (~ (not $x1550) $x1562)) (~ (not (or (not (and $x1534 $x1539)) $x1550)) $x1566))))
+(let ((@x1570 (trans (sk (~ (not $x975) (not (or (not (and $x1534 $x1539)) $x1550)))) @x1568 (~ (not $x975) $x1566))))
+(let ((@x1531 (nnf-neg (nnf-pos (refl (~ $x931 $x931)) (~ $x934 $x934)) (~ (not $x937) $x934))))
+(let ((@x2009 (nnf-neg @x1531 (nnf-neg @x1570 @x2001 (~ (not $x1372) $x2002)) (~ (not $x1375) $x2006))))
+(let ((@x1504 (nnf-neg (nnf-pos (refl (~ $x906 $x906)) (~ $x909 $x909)) (~ (not $x912) $x909))))
+(let ((@x2017 (nnf-neg @x1504 (nnf-neg (sk (~ $x937 $x1522)) @x2009 (~ (not $x1378) $x2010)) (~ (not $x1381) $x2014))))
+(let ((@x1481 (nnf-neg (nnf-pos (refl (~ (>= ?x124 0) (>= ?x124 0))) (~ $x894 $x894)) (~ (not $x897) $x894))))
+(let ((@x2025 (nnf-neg @x1481 (nnf-neg (sk (~ $x912 $x1495)) @x2017 (~ (not $x1384) $x2018)) (~ (not $x1387) $x2022))))
+(let ((@x2033 (nnf-neg (refl (~ $x1466 $x1466)) (nnf-neg (sk (~ $x897 $x1472)) @x2025 (~ (not $x1390) $x2026)) (~ (not $x1393) $x2030))))
+(let ((@x2037 (mp~ (not-or-elim (mp (asserted $x344) @x1406 $x1402) (not $x1396)) (nnf-neg (refl (~ $x864 $x864)) @x2033 (~ (not $x1396) $x2034)) $x2034)))
+(let ((@x3873 (mp (mp (mp @x2037 (monotonicity @x2338 (= $x2034 $x2339)) $x2339) @x3015 $x3013) (monotonicity @x3869 (= $x3013 $x3870)) $x3870)))
+(let ((@x4276 (unit-resolution @x3873 (lemma (unit-resolution @x5800 @x3487 (hypothesis $x864) false) $x142) $x3867)))
+(let ((@x4278 (unit-resolution (def-axiom (or $x3861 $x1472 $x3855)) (unit-resolution (def-axiom (or $x3864 $x3858)) @x4276 $x3858) (lemma @x5085 $x1471) $x3855)))
+(let ((@x3051 (unit-resolution ((_ quant-inst ?v0!2) (or (not $x3495) $x2343)) @x3500 (hypothesis $x1486) false)))
+(let ((@x4352 (unit-resolution (def-axiom (or $x3849 $x2363 $x3843)) (unit-resolution (def-axiom (or $x2358 $x1486)) (lemma @x3051 $x2343) $x2358) (unit-resolution (def-axiom (or $x3852 $x3846)) @x4278 $x3846) $x3843)))
+(let ((@x4355 (unit-resolution (def-axiom (or $x3837 $x2409 $x3831)) (unit-resolution (def-axiom (or $x3840 $x3834)) @x4352 $x3834) (unit-resolution (def-axiom (or $x2404 $x1507)) (lemma @x4007 $x2389) $x2404) $x3831)))
+(let ((@x4357 (unit-resolution (def-axiom (or $x3825 $x3539 $x3819)) (unit-resolution (def-axiom (or $x3828 $x3822)) @x4355 $x3822) (lemma @x3189 $x3536) $x3819)))
+(let ((@x4135 (unit-resolution (def-axiom (or $x3816 $x170)) @x4357 $x170)))
+(let ((@x4159 (hypothesis $x3652)))
+(let ((@x4139 (unit-resolution (def-axiom (or $x3649 $x214)) @x4159 $x214)))
+(let ((@x4149 (unit-resolution (def-axiom (or $x3625 $x1744)) (trans (monotonicity @x4139 (= ?x242 ?x169)) @x4135 $x243) $x3625)))
+(let (($x1720 (not $x1719)))
+(let ((@x3125 (hypothesis $x2645)))
+(let (($x4264 (>= (+ ?x1716 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v1!10))) 0)))
+(let ((@x4002 (symm (hypothesis $x214) (= v_b_SP_G_1$ v_b_SP_G_3$))))
+(let ((@x5768 (symm (monotonicity @x4002 (= (fun_app$a v_b_SP_G_1$ ?v1!10) ?x1716)) (= ?x1716 (fun_app$a v_b_SP_G_1$ ?v1!10)))))
+(let ((@x5656 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x1716 (fun_app$a v_b_SP_G_1$ ?v1!10))) $x4264)) @x5768 $x4264)))
+(let (($x5398 (<= (+ b_Infinity$ (* (- 1) (fun_app$a v_b_SP_G_1$ ?v1!10))) 0)))
+(let (($x5689 (fun_app$ v_b_Visited_G_1$ ?v1!10)))
+(let (($x6142 (not $x5689)))
+(let ((?x5569 (fun_app$a v_b_SP_G_1$ ?v1!10)))
+(let ((?x5512 (fun_app$a v_b_SP_G_1$ ?v0!11)))
+(let ((?x5709 (* (- 1) ?x5512)))
+(let ((?x4184 (+ ?x1722 ?x5709 ?x5569)))
+(let (($x4211 (>= ?x4184 0)))
+(let ((?x4266 (+ ?x1729 ?x5709)))
+(let (($x4267 (<= ?x4266 0)))
+(let ((@x4273 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x1729 ?x5512)) $x4267)) (symm (monotonicity @x4002 (= ?x5512 ?x1729)) (= ?x1729 ?x5512)) $x4267)))
+(let ((@x4363 ((_ th-lemma arith farkas 1 -1 -1 1) (hypothesis $x4267) (hypothesis $x4264) (hypothesis $x4211) (hypothesis (not $x2204)) false)))
+(let ((@x4274 (unit-resolution (lemma @x4363 (or (not $x4211) (not $x4267) (not $x4264) $x2204)) @x4273 @x5656 (unit-resolution (def-axiom (or $x2640 (not $x2204))) @x3125 (not $x2204)) (not $x4211))))
+(let (($x4220 (or $x3573 $x6142 $x1725 $x4211)))
+(let (($x5674 (or $x6142 $x1725 (>= (+ ?x1722 ?x5569 ?x5709) 0))))
+(let (($x4221 (or $x3573 $x5674)))
+(let ((@x4210 (monotonicity (rewrite (= (+ ?x1722 ?x5569 ?x5709) ?x4184)) (= (>= (+ ?x1722 ?x5569 ?x5709) 0) $x4211))))
+(let ((@x4224 (monotonicity (monotonicity @x4210 (= $x5674 (or $x6142 $x1725 $x4211))) (= $x4221 (or $x3573 (or $x6142 $x1725 $x4211))))))
+(let ((@x4227 (trans @x4224 (rewrite (= (or $x3573 (or $x6142 $x1725 $x4211)) $x4220)) (= $x4221 $x4220))))
+(let ((@x4360 (unit-resolution (mp ((_ quant-inst ?v0!11 ?v1!10) $x4221) @x4227 $x4220) (unit-resolution (def-axiom (or $x3816 $x3568)) @x4357 $x3568) (unit-resolution (def-axiom (or $x2640 (not $x1725))) @x3125 (not $x1725)) (or $x6142 $x4211))))
+(let (($x5857 (or $x5689 $x5398)))
+(let ((@x5652 (mp ((_ quant-inst ?v1!10) (or $x3590 $x5857)) (rewrite (= (or $x3590 $x5857) (or $x3590 $x5689 $x5398))) (or $x3590 $x5689 $x5398))))
+(let ((@x4367 (unit-resolution (unit-resolution @x5652 (hypothesis $x3585) $x5857) (unit-resolution @x4360 @x4274 $x6142) $x5398)))
+(let ((@x4362 ((_ th-lemma arith farkas -1 1 1) @x4367 @x5656 (unit-resolution (def-axiom (or $x2640 $x1720)) @x3125 $x1720) false)))
+(let ((@x4151 (unit-resolution (lemma @x4362 (or $x2640 $x3590 $x2703)) (unit-resolution (def-axiom (or $x3649 $x3585)) @x4159 $x3585) @x4139 $x2640)))
+(let ((@x4161 (unit-resolution (def-axiom (or $x3637 $x3631)) (unit-resolution (def-axiom (or $x3634 $x2645 $x3628)) @x4151 @x4149 $x3634) $x3637)))
+(let ((@x4158 (unit-resolution (def-axiom (or $x3646 $x3606 $x3640)) @x4161 (unit-resolution (def-axiom (or $x3649 $x3643)) @x4159 $x3643) $x3606)))
+(let (($x3139 (<= (+ b_Infinity$ (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0!8))) 0)))
+(let ((?x5112 (fun_app$a v_b_SP_G_1$ ?v0!8)))
+(let ((?x5119 (* (- 1) ?x5112)))
+(let ((?x3935 (?v1!7 ?v0!8)))
+(let ((?x3976 (pair$ ?x3935 ?v0!8)))
+(let ((?x3971 (b_G$ ?x3976)))
+(let ((?x3928 (fun_app$a v_b_SP_G_1$ ?x3935)))
+(let ((?x3958 (+ ?x3928 ?x3971 ?x5119)))
+(let (($x3970 (= ?x3958 0)))
+(let (($x3980 (not $x3970)))
+(let (($x3930 (fun_app$ v_b_Visited_G_1$ ?x3935)))
+(let (($x3959 (not $x3930)))
+(let (($x3890 (>= (+ ?x3928 ?x5119) 0)))
+(let (($x4009 (or $x3890 $x3959 $x3980)))
+(let ((?x4378 (fun_app$a v_b_SP_G_3$ ?x3935)))
+(let ((?x4397 (* (- 1) ?x4378)))
+(let ((?x4601 (+ ?x3928 ?x4397)))
+(let (($x4605 (>= ?x4601 0)))
+(let ((@x4642 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x3928 ?x4378)) $x4605)) (symm (monotonicity (hypothesis $x214) (= ?x4378 ?x3928)) (= ?x3928 ?x4378)) $x4605)))
+(let ((?x4137 (+ ?x1656 ?x5119)))
+(let (($x4122 (>= ?x4137 0)))
+(let ((@x4625 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x1656 ?x5112)) $x4122)) (symm (monotonicity @x4002 (= ?x5112 ?x1656)) (= ?x1656 ?x5112)) $x4122)))
+(let (($x4065 (<= ?x3958 0)))
+(let ((@x5126 (unit-resolution (def-axiom (or $x4009 $x3970)) (hypothesis (not $x4009)) $x3970)))
+(let (($x4604 (<= ?x4601 0)))
+(let ((@x5858 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x3928 ?x4378)) $x4604)) (symm (monotonicity (hypothesis $x214) (= ?x4378 ?x3928)) (= ?x3928 ?x4378)) $x4604)))
+(let (($x4121 (<= ?x4137 0)))
+(let ((@x5140 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x1656 ?x5112)) $x4121)) (symm (monotonicity @x4002 (= ?x5112 ?x1656)) (= ?x1656 ?x5112)) $x4121)))
+(let (($x4058 (>= ?x3958 0)))
+(let (($x4399 (<= (+ ?x1656 ?x4397) 0)))
+(let (($x4338 (not $x4399)))
+(let ((@x4989 (unit-resolution (def-axiom (or $x4009 (not $x3890))) (hypothesis (not $x4009)) (not $x3890))))
+(let ((@x5003 (unit-resolution ((_ th-lemma arith assign-bounds -1 1 -1) (or $x4338 (not $x4122) $x3890 (not $x4605))) @x4989 @x4625 @x4642 $x4338)))
+(let (($x4758 (not $x4605)))
+(let (($x4757 (not $x4122)))
+(let (($x4898 (or $x4399 $x3600 (not $x4058) (not $x4121) (not $x4604) (not $x4065) $x4757 $x4758)))
+(let ((?x5665 (* (- 1) ?x3971)))
+(let ((?x4417 (+ ?x1656 ?x5665 ?x4397)))
+(let (($x4445 (>= ?x4417 0)))
+(let ((@x5038 (unit-resolution ((_ th-lemma arith assign-bounds 1 -1 -1) (or $x4445 (not $x4065) $x4757 $x4758)) (hypothesis $x4065) (hypothesis $x4122) (hypothesis $x4605) $x4445)))
+(let (($x4444 (<= ?x4417 0)))
+(let ((@x4331 (unit-resolution ((_ th-lemma arith assign-bounds 1 -1 -1) (or $x4444 (not $x4058) (not $x4121) (not $x4604))) (hypothesis $x4058) (hypothesis $x4121) (hypothesis $x4604) $x4444)))
+(let (($x4418 (= ?x4417 0)))
+(let (($x4428 (not $x4418)))
+(let (($x4430 (or $x4399 $x4428)))
+(let (($x4447 (or $x3600 $x4399 $x4428)))
+(let (($x4384 (>= (+ ?x4378 ?x1657) 0)))
+(let (($x4388 (or $x4384 (not (= (+ ?x4378 ?x1657 ?x3971) 0)))))
+(let (($x4432 (or $x3600 $x4388)))
+(let ((@x4414 (monotonicity (rewrite (= (+ ?x4378 ?x1657 ?x3971) (+ ?x1657 ?x3971 ?x4378))) (= (= (+ ?x4378 ?x1657 ?x3971) 0) (= (+ ?x1657 ?x3971 ?x4378) 0)))))
+(let ((@x4427 (trans @x4414 (rewrite (= (= (+ ?x1657 ?x3971 ?x4378) 0) $x4418)) (= (= (+ ?x4378 ?x1657 ?x3971) 0) $x4418))))
+(let ((@x4396 (monotonicity (rewrite (= (+ ?x4378 ?x1657) (+ ?x1657 ?x4378))) (= $x4384 (>= (+ ?x1657 ?x4378) 0)))))
+(let ((@x4406 (trans @x4396 (rewrite (= (>= (+ ?x1657 ?x4378) 0) $x4399)) (= $x4384 $x4399))))
+(let ((@x4446 (monotonicity @x4406 (monotonicity @x4427 (= (not (= (+ ?x4378 ?x1657 ?x3971) 0)) $x4428)) (= $x4388 $x4430))))
+(let ((@x4442 (trans (monotonicity @x4446 (= $x4432 (or $x3600 $x4430))) (rewrite (= (or $x3600 $x4430) $x4447)) (= $x4432 $x4447))))
+(let ((@x5041 (unit-resolution (mp ((_ quant-inst (?v1!7 ?v0!8)) $x4432) @x4442 $x4447) (hypothesis $x3595) $x4430)))
+(let ((@x4897 (unit-resolution ((_ th-lemma arith triangle-eq) (or $x4418 (not $x4444) (not $x4445))) (unit-resolution @x5041 (hypothesis $x4338) $x4428) @x4331 @x5038 false)))
+(let ((@x3135 (unit-resolution (lemma @x4897 $x4898) @x5003 (unit-resolution ((_ th-lemma arith triangle-eq) (or $x3980 $x4058)) @x5126 $x4058) (hypothesis $x3595) @x5140 @x5858 (unit-resolution ((_ th-lemma arith triangle-eq) (or $x3980 $x4065)) @x5126 $x4065) @x4625 @x4642 false)))
+(let ((@x4168 (unit-resolution (lemma @x3135 (or $x4009 $x3600 $x2703)) (unit-resolution (def-axiom (or $x3603 $x3595)) @x4158 $x3595) @x4139 $x4009)))
+(let ((@x4189 (unit-resolution (def-axiom (or $x3816 $x3576)) @x4357 $x3576)))
+(let (($x4014 (not $x4009)))
+(let (($x4042 (or $x3581 $x1654 $x3139 $x4014)))
+(let (($x3956 (<= (+ ?x5112 (* (- 1) ?x3928)) 0)))
+(let (($x3033 (or $x1654 $x3139 (not (or $x3956 $x3959 (not (= (+ ?x5112 (* (- 1) ?x3928) ?x5665) 0)))))))
+(let (($x4043 (or $x3581 $x3033)))
+(let (($x3964 (= (not (or $x3956 $x3959 (not (= (+ ?x5112 (* (- 1) ?x3928) ?x5665) 0)))) $x4014)))
+(let (($x4010 (= (or $x3956 $x3959 (not (= (+ ?x5112 (* (- 1) ?x3928) ?x5665) 0))) $x4009)))
+(let (($x5977 (= (+ ?x5112 (* (- 1) ?x3928) ?x5665) 0)))
+(let ((@x3929 (rewrite (= (+ ?x5112 (* (- 1) ?x3928) ?x5665) (+ (* (- 1) ?x3928) ?x5665 ?x5112)))))
+(let ((@x3957 (monotonicity @x3929 (= $x5977 (= (+ (* (- 1) ?x3928) ?x5665 ?x5112) 0)))))
+(let ((@x3988 (trans @x3957 (rewrite (= (= (+ (* (- 1) ?x3928) ?x5665 ?x5112) 0) $x3970)) (= $x5977 $x3970))))
+(let ((@x3898 (monotonicity (rewrite (= (+ ?x5112 (* (- 1) ?x3928)) (+ (* (- 1) ?x3928) ?x5112))) (= $x3956 (<= (+ (* (- 1) ?x3928) ?x5112) 0)))))
+(let ((@x3927 (trans @x3898 (rewrite (= (<= (+ (* (- 1) ?x3928) ?x5112) 0) $x3890)) (= $x3956 $x3890))))
+(let ((@x4011 (monotonicity (monotonicity @x3927 (monotonicity @x3988 (= (not $x5977) $x3980)) $x4010) $x3964)))
+(let ((@x4050 (monotonicity (monotonicity @x4011 (= $x3033 (or $x1654 $x3139 $x4014))) (= $x4043 (or $x3581 (or $x1654 $x3139 $x4014))))))
+(let ((@x4053 (trans @x4050 (rewrite (= (or $x3581 (or $x1654 $x3139 $x4014)) $x4042)) (= $x4043 $x4042))))
+(let ((@x4248 (unit-resolution (mp ((_ quant-inst ?v0!8) $x4043) @x4053 $x4042) @x4189 (unit-resolution (def-axiom (or $x3603 $x1655)) @x4158 $x1655) (or $x3139 $x4014))))
+(let (($x4136 (= ?x1656 ?x5112)))
+(let ((@x4235 (monotonicity (symm @x4139 (= v_b_SP_G_1$ v_b_SP_G_3$)) (= ?x5112 ?x1656))))
+(let ((@x4237 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x4136) $x4122)) (symm @x4235 $x4136) $x4122)))
+(let ((@x4238 ((_ th-lemma arith farkas 1 -1 1) @x4237 (unit-resolution @x4248 @x4168 $x3139) (unit-resolution (def-axiom (or $x3603 $x1660)) @x4158 $x1660) false)))
+(let ((@x4802 (unit-resolution (def-axiom (or $x3813 $x3652 $x3807)) (lemma @x4238 $x3649) (unit-resolution (def-axiom (or $x3816 $x3810)) @x4357 $x3810) $x3807)))
+(let ((@x6739 (symm (unit-resolution (def-axiom (or $x3804 $x261)) @x4802 $x261) (= ?x260 v_b_Visited_G_2$))))
+(let ((@x10168 (symm (monotonicity @x6739 (= $x5237 (fun_app$ v_b_Visited_G_2$ ?v0!20))) (= (fun_app$ v_b_Visited_G_2$ ?v0!20) $x5237))))
+(let ((@x10119 (monotonicity @x10168 (= (not (fun_app$ v_b_Visited_G_2$ ?v0!20)) $x9037))))
+(let (($x4298 (fun_app$ v_b_Visited_G_2$ ?v0!20)))
+(let (($x4299 (not $x4298)))
+(let ((?x4413 (fun_app$a v_b_SP_G_1$ ?v0!20)))
+(let ((?x4438 (* (- 1) ?x4413)))
+(let ((?x4439 (+ ?x1906 ?x4438)))
+(let (($x6002 (>= ?x4439 0)))
+(let (($x9479 (not $x6002)))
+(let ((@x9476 (hypothesis $x6002)))
+(let (($x9588 (or (not (<= (+ ?x1906 (* (- 1) (v_b_SP_G_2$ (?v1!7 ?v0!20)))) 0)) $x9479)))
+(let ((?x4661 (?v1!7 ?v0!20)))
+(let ((?x4662 (fun_app$a v_b_SP_G_1$ ?x4661)))
+(let ((?x4663 (* (- 1) ?x4662)))
+(let ((?x4664 (+ ?x4413 ?x4663)))
+(let (($x4665 (<= ?x4664 0)))
+(let ((?x4668 (pair$ ?x4661 ?v0!20)))
+(let ((?x4669 (b_G$ ?x4668)))
+(let ((?x4670 (* (- 1) ?x4669)))
+(let ((?x4671 (+ ?x4413 ?x4663 ?x4670)))
+(let (($x4672 (= ?x4671 0)))
+(let (($x4673 (not $x4672)))
+(let (($x4666 (fun_app$ v_b_Visited_G_1$ ?x4661)))
+(let (($x4667 (not $x4666)))
+(let (($x4674 (or $x4665 $x4667 $x4673)))
+(let (($x4675 (not $x4674)))
+(let (($x1884 (not $x1883)))
+(let ((@x8699 (hypothesis $x2806)))
+(let (($x7517 (<= (+ b_Infinity$ (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0!19)))) 0)))
+(let ((?x7554 (pair$ v_b_v_G_1$ ?v0!19)))
+(let ((?x7555 (b_G$ ?x7554)))
+(let ((?x7388 (fun_app$a v_b_SP_G_1$ ?v0!19)))
+(let ((?x7461 (* (- 1) ?x7388)))
+(let (($x4944 (>= (+ ?x254 ?x7461 ?x7555) 0)))
+(let (($x8378 (or $x7517 $x4944)))
+(let ((?x7471 (+ ?x254 ?x1889 ?x7555)))
+(let (($x6876 (= ?x7471 0)))
+(let (($x8868 (not $x6876)))
+(let (($x6123 (>= ?x7471 0)))
+(let (($x8149 (not $x6123)))
+(let ((?x7512 (* (- 1) ?x7555)))
+(let ((?x9069 (+ ?x1880 ?x7512)))
+(let (($x8504 (>= ?x9069 0)))
+(let (($x6383 (= ?v1!18 v_b_v_G_1$)))
+(let (($x5168 (fun_app$ v_b_Visited_G_1$ ?v1!18)))
+(let (($x6179 (not $x5168)))
+(let (($x7401 (<= (+ ?x1888 ?x7461) 0)))
+(let ((?x5283 (b_G$ (pair$ v_b_v_G_1$ ?v0!13))))
+(let ((?x5139 (+ ?x254 ?x1805 ?x5283)))
+(let (($x4859 (= ?x5139 0)))
+(let (($x4202 (>= (+ ?x254 (* (- 1) ?x1803) ?x5283) 0)))
+(let (($x3165 (<= (+ b_Infinity$ (* (- 1) ?x5283)) 0)))
+(let (($x4930 (or $x3165 $x4202)))
+(let (($x4933 (not $x4930)))
+(let ((@x4771 (monotonicity (commutativity (= (= ?x1803 ?x1804) (= ?x1804 ?x1803))) (= (not (= ?x1803 ?x1804)) (not (= ?x1804 ?x1803))))))
+(let (($x4765 (not (= ?x1803 ?x1804))))
+(let ((@x4772 (mp (unit-resolution ((_ th-lemma arith triangle-eq) (or $x4765 $x1807)) (hypothesis $x1808) $x4765) @x4771 (not (= ?x1804 ?x1803)))))
+(let (($x4288 (= ?x1804 ?x1803)))
+(let (($x4284 (or $x4933 $x4288)))
+(let ((@x4803 (unit-resolution (def-axiom (or $x3804 $x3673)) @x4802 $x3673)))
+(let (($x4290 (or $x3678 $x4933 $x4288)))
+(let (($x4289 (or (not (or $x3165 (<= (+ ?x1803 ?x1168 (* (- 1) ?x5283)) 0))) $x4288)))
+(let (($x4291 (or $x3678 $x4289)))
+(let (($x3167 (<= (+ ?x1803 ?x1168 (* (- 1) ?x5283)) 0)))
+(let ((@x4198 (rewrite (= (+ ?x1803 ?x1168 (* (- 1) ?x5283)) (+ ?x1168 ?x1803 (* (- 1) ?x5283))))))
+(let ((@x4195 (monotonicity @x4198 (= $x3167 (<= (+ ?x1168 ?x1803 (* (- 1) ?x5283)) 0)))))
+(let ((@x5138 (trans @x4195 (rewrite (= (<= (+ ?x1168 ?x1803 (* (- 1) ?x5283)) 0) $x4202)) (= $x3167 $x4202))))
+(let ((@x4283 (monotonicity (monotonicity @x5138 (= (or $x3165 $x3167) $x4930)) (= (not (or $x3165 $x3167)) $x4933))))
+(let ((@x4294 (monotonicity (monotonicity @x4283 (= $x4289 $x4284)) (= $x4291 (or $x3678 $x4284)))))
+(let ((@x5050 (mp ((_ quant-inst ?v0!13) $x4291) (trans @x4294 (rewrite (= (or $x3678 $x4284) $x4290)) (= $x4291 $x4290)) $x4290)))
+(let ((@x4805 (unit-resolution (def-axiom (or $x4930 (not $x3165))) (unit-resolution (unit-resolution @x5050 @x4803 $x4284) @x4772 $x4933) (not $x3165))))
+(let ((@x4788 (unit-resolution (def-axiom (or $x4930 (not $x4202))) (unit-resolution (unit-resolution @x5050 @x4803 $x4284) @x4772 $x4933) (not $x4202))))
+(let (($x5127 (or $x3165 $x4202 $x4859)))
+(let ((@x4789 (unit-resolution (def-axiom (or $x3804 $x3665)) @x4802 $x3665)))
+(let (($x5129 (or $x3670 $x3165 $x4202 $x4859)))
+(let (($x4192 (or $x3165 $x3167 (= (+ ?x254 ?x5283 ?x1805) 0))))
+(let (($x5130 (or $x3670 $x4192)))
+(let ((@x4861 (monotonicity (rewrite (= (+ ?x254 ?x5283 ?x1805) ?x5139)) (= (= (+ ?x254 ?x5283 ?x1805) 0) $x4859))))
+(let ((@x5135 (monotonicity (monotonicity @x5138 @x4861 (= $x4192 $x5127)) (= $x5130 (or $x3670 $x5127)))))
+(let ((@x5160 (mp ((_ quant-inst ?v0!13) $x5130) (trans @x5135 (rewrite (= (or $x3670 $x5127) $x5129)) (= $x5130 $x5129)) $x5129)))
+(let ((@x4787 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x4859) (>= ?x5139 0))) (unit-resolution (unit-resolution @x5160 @x4789 $x5127) @x4788 @x4805 $x4859) (>= ?x5139 0))))
+(let ((@x4795 (unit-resolution ((_ th-lemma arith farkas 1 1) (or (<= ?x1806 0) $x1807)) (hypothesis $x1808) (<= ?x1806 0))))
+(let ((@x5162 (unit-resolution (def-axiom (or $x3801 $x1808 $x3795)) (unit-resolution (def-axiom (or $x3804 $x3798)) @x4802 $x3798) $x3798)))
+(let ((@x4711 (unit-resolution @x5162 (lemma ((_ th-lemma arith farkas 1 -1 1) @x4795 @x4788 @x4787 false) $x1807) $x3795)))
+(let ((@x4714 (unit-resolution (def-axiom (or $x3792 $x3681)) @x4711 $x3681)))
+(let (($x6395 (or $x3686 $x7401)))
+(let ((@x8489 (monotonicity (rewrite (= (+ ?x7388 ?x1889) (+ ?x1889 ?x7388))) (= (>= (+ ?x7388 ?x1889) 0) (>= (+ ?x1889 ?x7388) 0)))))
+(let ((@x7634 (trans @x8489 (rewrite (= (>= (+ ?x1889 ?x7388) 0) $x7401)) (= (>= (+ ?x7388 ?x1889) 0) $x7401))))
+(let ((@x8284 (trans (monotonicity @x7634 (= (or $x3686 (>= (+ ?x7388 ?x1889) 0)) $x6395)) (rewrite (= $x6395 $x6395)) (= (or $x3686 (>= (+ ?x7388 ?x1889) 0)) $x6395))))
+(let ((@x8710 (unit-resolution (mp ((_ quant-inst ?v0!19) (or $x3686 (>= (+ ?x7388 ?x1889) 0))) @x8284 $x6395) @x4714 $x7401)))
+(let (($x8129 (>= (+ ?x1887 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v1!18))) 0)))
+(let ((?x6950 (fun_app$a v_b_SP_G_1$ ?v1!18)))
+(let (($x6951 (= ?x1887 ?x6950)))
+(let (($x1819 (fun_app$ v_b_Visited_G_2$ ?v0!14)))
+(let (($x3393 (not $x1823)))
+(let (($x5543 (fun_app$ v_b_Visited_G_1$ ?v0!14)))
+(let (($x5064 (= ?v0!14 v_b_v_G_1$)))
+(let (($x6244 (or $x5064 $x5543)))
+(let (($x5974 (fun_app$ ?x260 ?v0!14)))
+(let (($x6373 (= $x5974 $x6244)))
+(let (($x3463 (forall ((?v0 B_Vertex_bool_fun$) (?v1 B_Vertex$) (?v2 Bool) (?v3 B_Vertex$) )(! (let (($x63 (fun_app$ (fun_upd$ ?v0 ?v1 ?v2) ?v3)))
+(= $x63 (ite (= ?v3 ?v1) ?v2 (fun_app$ ?v0 ?v3)))) :pattern ( (fun_app$ (fun_upd$ ?v0 ?v1 ?v2) ?v3) ) :qid k!34))
+))
+(let (($x73 (forall ((?v0 B_Vertex_bool_fun$) (?v1 B_Vertex$) (?v2 Bool) (?v3 B_Vertex$) )(! (let (($x63 (fun_app$ (fun_upd$ ?v0 ?v1 ?v2) ?v3)))
+(= $x63 (ite (= ?v3 ?v1) ?v2 (fun_app$ ?v0 ?v3)))) :qid k!34))
+))
+(let (($x63 (fun_app$ (fun_upd$ ?3 ?2 ?1) ?0)))
+(let (($x70 (= $x63 (ite (= ?0 ?2) ?1 (fun_app$ ?3 ?0)))))
+(let (($x68 (forall ((?v0 B_Vertex_bool_fun$) (?v1 B_Vertex$) (?v2 Bool) (?v3 B_Vertex$) )(! (let (($x63 (fun_app$ (fun_upd$ ?v0 ?v1 ?v2) ?v3)))
+(= $x63 (ite (= ?v3 ?v1) ?v2 (fun_app$ ?v0 ?v3)))) :qid k!34))
+))
+(let ((@x72 (rewrite (= (= $x63 (ite (= ?0 ?2) ?1 (fun_app$ ?3 ?0))) $x70))))
+(let ((@x1438 (mp~ (mp (asserted $x68) (quant-intro @x72 (= $x68 $x73)) $x73) (nnf-pos (refl (~ $x70 $x70)) (~ $x73 $x73)) $x73)))
+(let ((@x3468 (mp @x1438 (quant-intro (refl (= $x70 $x70)) (= $x73 $x3463)) $x3463)))
+(let (($x4134 (not $x3463)))
+(let (($x5805 (or $x4134 $x6373)))
+(let ((@x5853 (monotonicity (rewrite (= (ite $x5064 true $x5543) $x6244)) (= (= $x5974 (ite $x5064 true $x5543)) $x6373))))
+(let ((@x3152 (monotonicity @x5853 (= (or $x4134 (= $x5974 (ite $x5064 true $x5543))) $x5805))))
+(let ((@x4912 (trans @x3152 (rewrite (= $x5805 $x5805)) (= (or $x4134 (= $x5974 (ite $x5064 true $x5543))) $x5805))))
+(let ((@x4913 (mp ((_ quant-inst v_b_Visited_G_1$ v_b_v_G_1$ true ?v0!14) (or $x4134 (= $x5974 (ite $x5064 true $x5543)))) @x4912 $x5805)))
+(let ((@x5240 (mp (hypothesis $x1819) (symm (monotonicity @x6739 (= $x5974 $x1819)) (= $x1819 $x5974)) $x5974)))
+(let ((@x5728 (unit-resolution (def-axiom (or (not $x6373) (not $x5974) $x6244)) @x5240 (unit-resolution @x4913 @x3468 $x6373) $x6244)))
+(let ((@x7078 (hypothesis $x3393)))
+(let ((?x3063 (v_b_SP_G_2$ v_b_v_G_1$)))
+(let (($x3024 (= ?x3063 ?x254)))
+(let ((?x3076 (pair$ v_b_v_G_1$ v_b_v_G_1$)))
+(let ((?x3077 (b_G$ ?x3076)))
+(let (($x3038 (>= ?x3077 0)))
+(let (($x3080 (<= (+ b_Infinity$ (* (- 1) ?x3077)) 0)))
+(let (($x4540 (or $x3080 $x3038)))
+(let (($x6342 (= ?x3077 0)))
+(let (($x3469 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (or (not (= ?v0 ?v1)) (= (b_G$ (pair$ ?v0 ?v1)) 0)) :pattern ( (pair$ ?v0 ?v1) ) :qid k!36))
+))
+(let (($x95 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (or (not (= ?v0 ?v1)) (= (b_G$ (pair$ ?v0 ?v1)) 0)) :qid k!36))
+))
+(let (($x92 (or (not (= ?1 ?0)) (= (b_G$ (pair$ ?1 ?0)) 0))))
+(let (($x89 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let (($x80 (= ?v0 ?v1)))
+(=> $x80 (= (b_G$ (pair$ ?v0 ?v1)) 0))) :qid k!36))
+))
+(let ((@x94 (rewrite (= (=> (= ?1 ?0) (= (b_G$ (pair$ ?1 ?0)) 0)) $x92))))
+(let ((@x1443 (mp~ (mp (asserted $x89) (quant-intro @x94 (= $x89 $x95)) $x95) (nnf-pos (refl (~ $x92 $x92)) (~ $x95 $x95)) $x95)))
+(let ((@x3474 (mp @x1443 (quant-intro (refl (= $x92 $x92)) (= $x95 $x3469)) $x3469)))
+(let (($x3045 (not $x3469)))
+(let (($x6595 (or $x3045 $x6342)))
+(let ((@x6585 (monotonicity (rewrite (= (= v_b_v_G_1$ v_b_v_G_1$) true)) (= (not (= v_b_v_G_1$ v_b_v_G_1$)) (not true)))))
+(let ((@x6587 (trans @x6585 (rewrite (= (not true) false)) (= (not (= v_b_v_G_1$ v_b_v_G_1$)) false))))
+(let ((@x6590 (monotonicity @x6587 (= (or (not (= v_b_v_G_1$ v_b_v_G_1$)) $x6342) (or false $x6342)))))
+(let ((@x6594 (trans @x6590 (rewrite (= (or false $x6342) $x6342)) (= (or (not (= v_b_v_G_1$ v_b_v_G_1$)) $x6342) $x6342))))
+(let ((@x6599 (monotonicity @x6594 (= (or $x3045 (or (not (= v_b_v_G_1$ v_b_v_G_1$)) $x6342)) $x6595))))
+(let ((@x6602 (trans @x6599 (rewrite (= $x6595 $x6595)) (= (or $x3045 (or (not (= v_b_v_G_1$ v_b_v_G_1$)) $x6342)) $x6595))))
+(let ((@x6603 (mp ((_ quant-inst v_b_v_G_1$ v_b_v_G_1$) (or $x3045 (or (not (= v_b_v_G_1$ v_b_v_G_1$)) $x6342))) @x6602 $x6595)))
+(let ((@x6616 (lemma (unit-resolution @x6603 @x3474 (hypothesis (not $x6342)) false) $x6342)))
+(let ((@x7085 (unit-resolution (def-axiom (or $x4540 (not $x3038))) (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x6342) $x3038)) @x6616 $x3038) $x4540)))
+(let (($x4579 (not $x4540)))
+(let (($x4550 (or $x4579 $x3024)))
+(let (($x4556 (or $x3678 $x4579 $x3024)))
+(let (($x3874 (or (not (or $x3080 (<= (+ ?x254 ?x1168 (* (- 1) ?x3077)) 0))) $x3024)))
+(let (($x4557 (or $x3678 $x3874)))
+(let (($x3062 (<= (+ ?x254 ?x1168 (* (- 1) ?x3077)) 0)))
+(let ((@x4468 (monotonicity (rewrite (= (+ ?x254 ?x1168 (* (- 1) ?x3077)) (* (- 1) ?x3077))) (= $x3062 (<= (* (- 1) ?x3077) 0)))))
+(let ((@x4485 (trans @x4468 (rewrite (= (<= (* (- 1) ?x3077) 0) $x3038)) (= $x3062 $x3038))))
+(let ((@x4549 (monotonicity (monotonicity @x4485 (= (or $x3080 $x3062) $x4540)) (= (not (or $x3080 $x3062)) $x4579))))
+(let ((@x4561 (monotonicity (monotonicity @x4549 (= $x3874 $x4550)) (= $x4557 (or $x3678 $x4550)))))
+(let ((@x4574 (mp ((_ quant-inst v_b_v_G_1$) $x4557) (trans @x4561 (rewrite (= (or $x3678 $x4550) $x4556)) (= $x4557 $x4556)) $x4556)))
+(let ((@x7095 (trans (monotonicity (hypothesis $x5064) (= ?x1821 ?x3063)) (unit-resolution (unit-resolution @x4574 @x4803 $x4550) @x7085 $x3024) (= ?x1821 ?x254))))
+(let ((@x7096 (trans @x7095 (symm (monotonicity (hypothesis $x5064) (= ?x1822 ?x254)) (= ?x254 ?x1822)) $x1823)))
+(let ((@x6504 (unit-resolution (lemma (unit-resolution @x7078 @x7096 false) (or (not $x5064) $x1823)) @x7078 (not $x5064))))
+(let ((@x6501 (unit-resolution (def-axiom (or (not $x6244) $x5064 $x5543)) @x6504 (or (not $x6244) $x5543))))
+(let (($x6879 (>= (+ ?x254 (* (- 1) ?x1822)) 0)))
+(let (($x7105 (not $x6879)))
+(let (($x6372 (>= (+ ?x254 (* (- 1) ?x1822) (b_G$ (pair$ v_b_v_G_1$ ?v0!14))) 0)))
+(let (($x6043 (not $x6372)))
+(let (($x5623 (<= (+ b_Infinity$ (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0!14)))) 0)))
+(let (($x6328 (or $x5623 $x6372)))
+(let (($x5555 (not $x6328)))
+(let (($x5565 (or $x3678 $x5555 $x1823)))
+(let (($x5711 (<= (+ ?x1822 ?x1168 (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0!14)))) 0)))
+(let (($x5760 (or (not (or $x5623 $x5711)) $x1823)))
+(let (($x5490 (or $x3678 $x5760)))
+(let (($x5031 (<= (+ ?x1168 ?x1822 (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0!14)))) 0)))
+(let (($x5019 (= (+ ?x1822 ?x1168 (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0!14)))) (+ ?x1168 ?x1822 (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v0!14)))))))
+(let ((@x6180 (trans (monotonicity (rewrite $x5019) (= $x5711 $x5031)) (rewrite (= $x5031 $x6372)) (= $x5711 $x6372))))
+(let ((@x5556 (monotonicity (monotonicity @x6180 (= (or $x5623 $x5711) $x6328)) (= (not (or $x5623 $x5711)) $x5555))))
+(let ((@x4918 (monotonicity (monotonicity @x5556 (= $x5760 (or $x5555 $x1823))) (= $x5490 (or $x3678 (or $x5555 $x1823))))))
+(let ((@x6362 (trans @x4918 (rewrite (= (or $x3678 (or $x5555 $x1823)) $x5565)) (= $x5490 $x5565))))
+(let ((@x6339 (unit-resolution (def-axiom (or $x6328 $x6043)) (unit-resolution (mp ((_ quant-inst ?v0!14) $x5490) @x6362 $x5565) @x4803 @x7078 $x5555) $x6043)))
+(let ((?x5617 (pair$ v_b_v_G_1$ ?v0!14)))
+(let ((?x5621 (b_G$ ?x5617)))
+(let (($x6266 (>= ?x5621 0)))
+(let ((@x6636 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x5621 0)) $x6266)) (hypothesis (not $x6266)) (not (= ?x5621 0)))))
+(let (($x6078 (= v_b_v_G_1$ ?v0!14)))
+(let (($x6076 (<= ?x5621 0)))
+(let ((@x6410 (unit-resolution ((_ th-lemma arith farkas 1 1) (or $x6266 $x6076)) (hypothesis (not $x6266)) $x6076)))
+(let (($x6080 (or $x6078 (not $x6076))))
+(let (($x3475 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let (($x80 (= ?v0 ?v1)))
+(or $x80 (not (<= (b_G$ (pair$ ?v0 ?v1)) 0)))) :pattern ( (pair$ ?v0 ?v1) ) :qid k!37))
+))
+(let (($x116 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let (($x80 (= ?v0 ?v1)))
+(or $x80 (not (<= (b_G$ (pair$ ?v0 ?v1)) 0)))) :qid k!37))
+))
+(let (($x80 (= ?1 ?0)))
+(let (($x113 (or $x80 (not (<= (b_G$ (pair$ ?1 ?0)) 0)))))
+(let (($x101 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x29 (pair$ ?v0 ?v1)))
+(let ((?x81 (b_G$ ?x29)))
+(let (($x98 (< 0 ?x81)))
+(=> (not (= ?v0 ?v1)) $x98)))) :qid k!37))
+))
+(let (($x106 (forall ((?v0 B_Vertex$) (?v1 B_Vertex$) )(! (let ((?x29 (pair$ ?v0 ?v1)))
+(let ((?x81 (b_G$ ?x29)))
+(let (($x98 (< 0 ?x81)))
+(let (($x80 (= ?v0 ?v1)))
+(or $x80 $x98))))) :qid k!37))
+))
+(let ((?x29 (pair$ ?1 ?0)))
+(let ((?x81 (b_G$ ?x29)))
+(let (($x98 (< 0 ?x81)))
+(let ((@x115 (monotonicity (rewrite (= $x98 (not (<= ?x81 0)))) (= (or $x80 $x98) $x113))))
+(let ((@x108 (quant-intro (rewrite (= (=> (not $x80) $x98) (or $x80 $x98))) (= $x101 $x106))))
+(let ((@x121 (mp (asserted $x101) (trans @x108 (quant-intro @x115 (= $x106 $x116)) (= $x101 $x116)) $x116)))
+(let ((@x3480 (mp (mp~ @x121 (nnf-pos (refl (~ $x113 $x113)) (~ $x116 $x116)) $x116) (quant-intro (refl (= $x113 $x113)) (= $x116 $x3475)) $x3475)))
+(let ((@x6389 (mp ((_ quant-inst v_b_v_G_1$ ?v0!14) (or (not $x3475) $x6080)) (rewrite (= (or (not $x3475) $x6080) (or (not $x3475) $x6078 (not $x6076)))) (or (not $x3475) $x6078 (not $x6076)))))
+(let (($x6086 (= ?x5621 0)))
+(let (($x6096 (or (not $x6078) $x6086)))
+(let ((@x6264 (mp ((_ quant-inst v_b_v_G_1$ ?v0!14) (or $x3045 $x6096)) (rewrite (= (or $x3045 $x6096) (or $x3045 (not $x6078) $x6086))) (or $x3045 (not $x6078) $x6086))))
+(let ((@x6993 (unit-resolution (unit-resolution @x6264 @x3474 $x6096) (unit-resolution (unit-resolution @x6389 @x3480 $x6080) @x6410 $x6078) @x6636 false)))
+(let ((@x7107 (lemma ((_ th-lemma arith farkas 1 -1 1) (hypothesis $x6266) (hypothesis $x6043) (hypothesis $x6879) false) (or (not $x6266) $x6372 $x7105))))
+(let ((@x6134 (unit-resolution (unit-resolution @x7107 (lemma @x6993 $x6266) (or $x6372 $x7105)) @x6339 $x7105)))
+(let ((@x6066 (unit-resolution (def-axiom (or $x3804 $x253)) @x4802 $x253)))
+(let ((@x6683 (unit-resolution (def-axiom (or $x3816 $x3560)) @x4357 $x3560)))
+(let (($x6034 (= (or $x3565 (or $x252 (not $x5543) $x6879)) (or $x3565 $x252 (not $x5543) $x6879))))
+(let ((@x6556 (mp ((_ quant-inst ?v0!14 v_b_v_G_1$) (or $x3565 (or $x252 (not $x5543) $x6879))) (rewrite $x6034) (or $x3565 $x252 (not $x5543) $x6879))))
+(let ((@x6850 (unit-resolution @x6556 @x6683 @x6066 @x6134 (unit-resolution @x6501 @x5728 $x5543) false)))
+(let ((@x5791 (unit-resolution (lemma @x6850 $x1824) (unit-resolution (def-axiom (or $x1824 $x3393)) (hypothesis $x1825) $x3393) (unit-resolution (def-axiom (or $x1824 $x1819)) (hypothesis $x1825) $x1819) false)))
+(let ((@x9261 (unit-resolution (def-axiom (or $x3789 $x1825 $x3783)) (unit-resolution (def-axiom (or $x3792 $x3786)) @x4711 $x3786) $x3786)))
+(let ((@x9263 (unit-resolution (def-axiom (or $x3780 $x3690)) (unit-resolution @x9261 (lemma @x5791 $x1824) $x3783) $x3690)))
+(let ((@x6271 (mp ((_ quant-inst ?v1!18) (or $x3695 (or $x2786 $x6951))) (rewrite (= (or $x3695 (or $x2786 $x6951)) (or $x3695 $x2786 $x6951))) (or $x3695 $x2786 $x6951))))
+(let ((@x5205 (unit-resolution @x6271 @x9263 (unit-resolution (def-axiom (or $x2801 $x1878)) @x8699 $x1878) $x6951)))
+(let ((@x8621 ((_ th-lemma arith assign-bounds -1 -1 1) (or (not (>= (+ ?x1880 ?x6950 ?x7461) 0)) (not $x7401) $x1891 (not $x8129)))))
+(let ((@x8189 (unit-resolution @x8621 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x6951) $x8129)) @x5205 $x8129) (unit-resolution (def-axiom (or $x2801 (not $x1891))) @x8699 (not $x1891)) @x8710 (not (>= (+ ?x1880 ?x6950 ?x7461) 0)))))
+(let (($x5620 (= (or $x3573 (or $x6179 $x1883 (>= (+ ?x1880 ?x6950 ?x7461) 0))) (or $x3573 $x6179 $x1883 (>= (+ ?x1880 ?x6950 ?x7461) 0)))))
+(let ((@x7205 (mp ((_ quant-inst ?v0!19 ?v1!18) (or $x3573 (or $x6179 $x1883 (>= (+ ?x1880 ?x6950 ?x7461) 0)))) (rewrite $x5620) (or $x3573 $x6179 $x1883 (>= (+ ?x1880 ?x6950 ?x7461) 0)))))
+(let ((@x8192 (unit-resolution @x7205 (unit-resolution (def-axiom (or $x3816 $x3568)) @x4357 $x3568) (unit-resolution (def-axiom (or $x2801 $x1884)) @x8699 $x1884) (or $x6179 (>= (+ ?x1880 ?x6950 ?x7461) 0)))))
+(let (($x8059 (or $x6383 $x5168)))
+(let (($x4914 (fun_app$ ?x260 ?v1!18)))
+(let (($x8555 (= $x4914 $x8059)))
+(let (($x7052 (or $x4134 $x8555)))
+(let ((@x8554 (monotonicity (rewrite (= (ite $x6383 true $x5168) $x8059)) (= (= $x4914 (ite $x6383 true $x5168)) $x8555))))
+(let ((@x8280 (monotonicity @x8554 (= (or $x4134 (= $x4914 (ite $x6383 true $x5168))) $x7052))))
+(let ((@x7080 (trans @x8280 (rewrite (= $x7052 $x7052)) (= (or $x4134 (= $x4914 (ite $x6383 true $x5168))) $x7052))))
+(let ((@x7791 (mp ((_ quant-inst v_b_Visited_G_1$ v_b_v_G_1$ true ?v1!18) (or $x4134 (= $x4914 (ite $x6383 true $x5168)))) @x7080 $x7052)))
+(let ((@x8161 (mp (unit-resolution (def-axiom (or $x2801 $x1878)) @x8699 $x1878) (symm (monotonicity @x6739 (= $x4914 $x1878)) (= $x1878 $x4914)) $x4914)))
+(let ((@x8162 (unit-resolution (def-axiom (or (not $x8555) (not $x4914) $x8059)) @x8161 (unit-resolution @x7791 @x3468 $x8555) $x8059)))
+(let ((@x8163 (unit-resolution (def-axiom (or (not $x8059) $x6383 $x5168)) @x8162 (unit-resolution @x8192 @x8189 $x6179) $x6383)))
+(let ((@x5864 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x1880 ?x7555)) $x8504)) (monotonicity (monotonicity @x8163 (= ?x1879 ?x7554)) (= ?x1880 ?x7555)) $x8504)))
+(let (($x7609 (>= (+ ?x1887 (* (- 1) ?x3063)) 0)))
+(let ((@x5835 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x1887 ?x3063)) $x7609)) (monotonicity @x8163 (= ?x1887 ?x3063)) $x7609)))
+(let ((?x3064 (* (- 1) ?x3063)))
+(let ((?x3904 (+ ?x254 ?x3064)))
+(let (($x3905 (<= ?x3904 0)))
+(let (($x4587 (= ?x254 ?x3063)))
+(let ((@x8351 (mp (unit-resolution (unit-resolution @x4574 @x4803 $x4550) @x7085 $x3024) (symm (commutativity (= $x4587 $x3024)) (= $x3024 $x4587)) $x4587)))
+(let ((@x8148 ((_ th-lemma arith farkas 1 -1 1 -1 1) (hypothesis $x6123) (hypothesis (not $x1891)) (hypothesis $x7609) (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x4587) $x3905)) @x8351 $x3905) (hypothesis $x8504) false)))
+(let ((@x6098 (unit-resolution (lemma @x8148 (or $x8149 $x1891 (not $x7609) (not $x8504))) (unit-resolution (def-axiom (or $x2801 (not $x1891))) @x8699 (not $x1891)) @x5835 @x5864 $x8149)))
+(let ((@x8175 (unit-resolution (def-axiom (or $x8378 (not $x7517))) (hypothesis (not $x8378)) (not $x7517))))
+(let (($x7000 (not $x4944)))
+(let ((@x8640 (unit-resolution (def-axiom (or $x8378 $x7000)) (hypothesis (not $x8378)) $x7000)))
+(let (($x6310 (or $x7517 $x4944 $x6876)))
+(let (($x7071 (or $x3670 $x7517 $x4944 $x6876)))
+(let (($x7524 (<= (+ ?x7388 ?x1168 ?x7512) 0)))
+(let (($x7589 (or $x7517 $x7524 (= (+ ?x254 ?x7555 ?x1889) 0))))
+(let (($x6768 (or $x3670 $x7589)))
+(let ((@x6946 (monotonicity (rewrite (= (+ ?x254 ?x7555 ?x1889) ?x7471)) (= (= (+ ?x254 ?x7555 ?x1889) 0) $x6876))))
+(let ((@x7308 (monotonicity (rewrite (= (+ ?x7388 ?x1168 ?x7512) (+ ?x1168 ?x7388 ?x7512))) (= $x7524 (<= (+ ?x1168 ?x7388 ?x7512) 0)))))
+(let ((@x8377 (trans @x7308 (rewrite (= (<= (+ ?x1168 ?x7388 ?x7512) 0) $x4944)) (= $x7524 $x4944))))
+(let ((@x6639 (monotonicity (monotonicity @x8377 @x6946 (= $x7589 $x6310)) (= $x6768 (or $x3670 $x6310)))))
+(let ((@x6030 (mp ((_ quant-inst ?v0!19) $x6768) (trans @x6639 (rewrite (= (or $x3670 $x6310) $x7071)) (= $x6768 $x7071)) $x7071)))
+(let ((@x8762 (unit-resolution (unit-resolution @x6030 @x4789 $x6310) @x8640 @x8175 (hypothesis $x8868) false)))
+(let ((@x8475 (unit-resolution (lemma @x8762 (or $x8378 $x6876)) (unit-resolution ((_ th-lemma arith triangle-eq) (or $x8868 $x6123)) @x6098 $x8868) $x8378)))
+(let ((@x8713 (lemma ((_ th-lemma arith farkas -1 -1 1) @x8710 (hypothesis $x8149) (hypothesis $x4944) false) (or $x7000 $x6123))))
+(let ((@x7808 (unit-resolution (def-axiom (or (not $x8378) $x7517 $x4944)) (unit-resolution @x8713 @x6098 $x7000) @x8475 $x7517)))
+(let ((@x7807 ((_ th-lemma arith farkas 1 -1 1) @x5864 @x7808 (unit-resolution (def-axiom (or $x2801 $x1884)) @x8699 $x1884) false)))
+(let (($x3381 (not $x1864)))
+(let ((@x6859 (hypothesis $x2760)))
+(let ((@x6910 (unit-resolution (def-axiom (or $x2755 $x3381)) @x6859 $x3381)))
+(let (($x6437 (<= (+ ?x254 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v1!16))) 0)))
+(let (($x4947 (fun_app$ v_b_Visited_G_1$ ?v1!16)))
+(let (($x6336 (= ?v1!16 v_b_v_G_1$)))
+(let (($x8534 (or $x6336 $x4947)))
+(let (($x6263 (fun_app$ ?x260 ?v1!16)))
+(let (($x6346 (= $x6263 $x8534)))
+(let (($x8582 (or $x4134 $x6346)))
+(let ((@x8309 (monotonicity (rewrite (= (ite $x6336 true $x4947) $x8534)) (= (= $x6263 (ite $x6336 true $x4947)) $x6346))))
+(let ((@x8586 (monotonicity @x8309 (= (or $x4134 (= $x6263 (ite $x6336 true $x4947))) $x8582))))
+(let ((@x8591 (trans @x8586 (rewrite (= $x8582 $x8582)) (= (or $x4134 (= $x6263 (ite $x6336 true $x4947))) $x8582))))
+(let ((@x8592 (mp ((_ quant-inst v_b_Visited_G_1$ v_b_v_G_1$ true ?v1!16) (or $x4134 (= $x6263 (ite $x6336 true $x4947)))) @x8591 $x8582)))
+(let ((@x7062 (monotonicity (symm (monotonicity @x6739 (= $x6263 $x1855)) (= $x1855 $x6263)) (= (not $x1855) (not $x6263)))))
+(let ((@x7109 (mp (unit-resolution (def-axiom (or $x2755 (not $x1855))) @x6859 (not $x1855)) @x7062 (not $x6263))))
+(let ((@x7053 (unit-resolution (def-axiom (or (not $x6346) $x6263 (not $x8534))) @x7109 (unit-resolution @x8592 @x3468 $x6346) (not $x8534))))
+(let (($x7664 (or $x4947 $x6437)))
+(let ((@x7108 (unit-resolution (def-axiom (or $x3804 $x3655)) @x4802 $x3655)))
+(let (($x6930 (or $x3660 $x4947 $x6437)))
+(let (($x7189 (>= (+ (fun_app$a v_b_SP_G_1$ ?v1!16) ?x1168) 0)))
+(let (($x7192 (or $x4947 $x7189)))
+(let (($x7392 (or $x3660 $x7192)))
+(let ((@x6696 (rewrite (= (>= (+ ?x1168 (fun_app$a v_b_SP_G_1$ ?v1!16)) 0) $x6437))))
+(let (($x7657 (= (+ (fun_app$a v_b_SP_G_1$ ?v1!16) ?x1168) (+ ?x1168 (fun_app$a v_b_SP_G_1$ ?v1!16)))))
+(let ((@x6394 (monotonicity (rewrite $x7657) (= $x7189 (>= (+ ?x1168 (fun_app$a v_b_SP_G_1$ ?v1!16)) 0)))))
+(let ((@x7789 (monotonicity (monotonicity (trans @x6394 @x6696 (= $x7189 $x6437)) (= $x7192 $x7664)) (= $x7392 (or $x3660 $x7664)))))
+(let ((@x7788 (mp ((_ quant-inst ?v1!16) $x7392) (trans @x7789 (rewrite (= (or $x3660 $x7664) $x6930)) (= $x7392 $x6930)) $x6930)))
+(let ((@x7110 (unit-resolution (unit-resolution @x7788 @x7108 $x7664) (unit-resolution (def-axiom (or $x8534 (not $x4947))) @x7053 (not $x4947)) $x6437)))
+(let (($x6906 (<= (+ (v_b_SP_G_2$ ?v0!17) (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0!17))) 0)))
+(let (($x7394 (or $x3686 $x6906)))
+(let (($x6869 (>= (+ (fun_app$a v_b_SP_G_1$ ?v0!17) (* (- 1) (v_b_SP_G_2$ ?v0!17))) 0)))
+(let (($x7794 (>= (+ (* (- 1) (v_b_SP_G_2$ ?v0!17)) (fun_app$a v_b_SP_G_1$ ?v0!17)) 0)))
+(let (($x7505 (= (+ (fun_app$a v_b_SP_G_1$ ?v0!17) (* (- 1) (v_b_SP_G_2$ ?v0!17))) (+ (* (- 1) (v_b_SP_G_2$ ?v0!17)) (fun_app$a v_b_SP_G_1$ ?v0!17)))))
+(let ((@x6937 (trans (monotonicity (rewrite $x7505) (= $x6869 $x7794)) (rewrite (= $x7794 $x6906)) (= $x6869 $x6906))))
+(let ((@x7419 (trans (monotonicity @x6937 (= (or $x3686 $x6869) $x7394)) (rewrite (= $x7394 $x7394)) (= (or $x3686 $x6869) $x7394))))
+(let (($x6920 (>= (+ (v_b_SP_G_2$ ?v1!16) (* (- 1) (fun_app$a v_b_SP_G_1$ ?v1!16))) 0)))
+(let ((?x6958 (fun_app$a v_b_SP_G_1$ ?v1!16)))
+(let ((?x1860 (v_b_SP_G_2$ ?v1!16)))
+(let (($x6841 (= ?x1860 ?x6958)))
+(let (($x7027 (>= (+ ?x254 (b_G$ (pair$ v_b_v_G_1$ ?v1!16)) (* (- 1) ?x6958)) 0)))
+(let (($x6231 (<= (+ b_Infinity$ (* (- 1) (b_G$ (pair$ v_b_v_G_1$ ?v1!16)))) 0)))
+(let (($x7455 (or $x6231 $x7027)))
+(let ((?x6824 (pair$ v_b_v_G_1$ ?v1!16)))
+(let ((?x6825 (b_G$ ?x6824)))
+(let ((?x6938 (* (- 1) ?x1860)))
+(let ((?x6929 (+ ?x254 ?x6938 ?x6825)))
+(let (($x7553 (= ?x6929 0)))
+(let (($x7206 (not $x7553)))
+(let (($x6067 (<= ?x6929 0)))
+(let (($x6919 (not $x6067)))
+(let (($x6631 (fun_app$ v_b_Visited_G_1$ ?v0!17)))
+(let (($x6844 (= ?v0!17 v_b_v_G_1$)))
+(let (($x6265 (or $x6844 $x6631)))
+(let (($x6895 (fun_app$ ?x260 ?v0!17)))
+(let (($x6665 (= $x6895 $x6265)))
+(let (($x5717 (or $x4134 $x6665)))
+(let ((@x6990 (monotonicity (rewrite (= (ite $x6844 true $x6631) $x6265)) (= (= $x6895 (ite $x6844 true $x6631)) $x6665))))
+(let ((@x7528 (monotonicity @x6990 (= (or $x4134 (= $x6895 (ite $x6844 true $x6631))) $x5717))))
+(let ((@x7133 (trans @x7528 (rewrite (= $x5717 $x5717)) (= (or $x4134 (= $x6895 (ite $x6844 true $x6631))) $x5717))))
+(let ((@x7043 (mp ((_ quant-inst v_b_Visited_G_1$ v_b_v_G_1$ true ?v0!17) (or $x4134 (= $x6895 (ite $x6844 true $x6631)))) @x7133 $x5717)))
+(let ((@x7214 (mp (unit-resolution (def-axiom (or $x2755 $x1857)) @x6859 $x1857) (symm (monotonicity @x6739 (= $x6895 $x1857)) (= $x1857 $x6895)) $x6895)))
+(let ((@x7215 (unit-resolution (def-axiom (or (not $x6665) (not $x6895) $x6265)) @x7214 (unit-resolution @x7043 @x3468 $x6665) $x6265)))
+(let (($x7558 (<= ?x6825 0)))
+(let (($x7559 (not $x7558)))
+(let ((@x6953 (symm (commutativity (= (= v_b_v_G_1$ ?v1!16) $x6336)) (= $x6336 (= v_b_v_G_1$ ?v1!16)))))
+(let ((@x6769 (mp (hypothesis (not $x6336)) (monotonicity @x6953 (= (not $x6336) (not (= v_b_v_G_1$ ?v1!16)))) (not (= v_b_v_G_1$ ?v1!16)))))
+(let (($x7557 (= v_b_v_G_1$ ?v1!16)))
+(let (($x7560 (or $x7557 $x7559)))
+(let ((@x5992 (mp ((_ quant-inst v_b_v_G_1$ ?v1!16) (or (not $x3475) $x7560)) (rewrite (= (or (not $x3475) $x7560) (or (not $x3475) $x7557 $x7559))) (or (not $x3475) $x7557 $x7559))))
+(let ((@x6161 (hypothesis $x3381)))
+(let ((?x6285 (fun_app$a v_b_SP_G_1$ ?v0!17)))
+(let ((?x6904 (* (- 1) ?x6285)))
+(let ((?x7131 (+ ?x254 ?x6904)))
+(let (($x6000 (>= ?x7131 0)))
+(let (($x6858 (not $x6844)))
+(let ((?x1861 (v_b_SP_G_2$ ?v0!17)))
+(let (($x6188 (= ?x1861 ?x3063)))
+(let (($x5847 (not $x6188)))
+(let ((?x5089 (+ ?x1861 ?x3064)))
+(let (($x5848 (<= ?x5089 0)))
+(let (($x6925 (not $x5848)))
+(let ((@x6267 (hypothesis $x6067)))
+(let (($x3906 (>= ?x3904 0)))
+(let (($x4341 (or $x3686 $x3906)))
+(let ((@x4906 ((_ quant-inst v_b_v_G_1$) $x4341)))
+(let ((@x6160 (unit-resolution @x4906 @x4714 $x3906)))
+(let ((@x6971 (lemma ((_ th-lemma arith farkas 1 1 1 1 1) @x6267 (hypothesis $x5848) @x6161 @x6160 (hypothesis $x7559) false) (or $x6925 $x6919 $x1864 $x7558))))
+(let ((@x6928 (unit-resolution @x6971 @x6267 @x6161 (unit-resolution (unit-resolution @x5992 @x3480 $x7560) @x6769 $x7559) $x6925)))
+(let ((@x6532 ((_ th-lemma arith triangle-eq) (or $x5847 $x5848))))
+(let ((@x5114 (unit-resolution (hypothesis $x5847) (monotonicity (hypothesis $x6844) $x6188) false)))
+(let ((@x5115 (lemma @x5114 (or $x6858 $x6188))))
+(let ((@x8623 (def-axiom (or (not $x6265) $x6844 $x6631))))
+(let ((@x4834 (unit-resolution @x8623 (unit-resolution @x5115 (unit-resolution @x6532 @x6928 $x5847) $x6858) (hypothesis $x6265) $x6631)))
+(let (($x5475 (= (or $x3565 (or $x252 (not $x6631) $x6000)) (or $x3565 $x252 (not $x6631) $x6000))))
+(let ((@x5735 (mp ((_ quant-inst ?v0!17 v_b_v_G_1$) (or $x3565 (or $x252 (not $x6631) $x6000))) (rewrite $x5475) (or $x3565 $x252 (not $x6631) $x6000))))
+(let ((@x6914 ((_ th-lemma arith farkas 1 1 1 1 1) @x6267 (unit-resolution @x5735 @x6683 @x6066 @x4834 $x6000) (unit-resolution (mp ((_ quant-inst ?v0!17) (or $x3686 $x6869)) @x7419 $x7394) @x4714 $x6906) @x6161 (unit-resolution (unit-resolution @x5992 @x3480 $x7560) @x6769 $x7559) false)))
+(let ((@x7217 (unit-resolution (lemma @x6914 (or $x6919 $x1864 (not $x6265) $x6336)) @x6910 @x7215 (unit-resolution (def-axiom (or $x8534 (not $x6336))) @x7053 (not $x6336)) $x6919)))
+(let ((@x6357 (unit-resolution (def-axiom (or $x7455 (not $x6231))) (hypothesis (not $x7455)) (not $x6231))))
+(let ((@x6426 (unit-resolution (def-axiom (or $x7455 (not $x7027))) (hypothesis (not $x7455)) (not $x7027))))
+(let (($x7603 (or $x6231 $x7027 $x7553)))
+(let (($x5113 (or $x3670 $x6231 $x7027 $x7553)))
+(let (($x6826 (<= (+ ?x6958 ?x1168 (* (- 1) ?x6825)) 0)))
+(let (($x6927 (or $x6231 $x6826 (= (+ ?x254 ?x6825 ?x6938) 0))))
+(let (($x7688 (or $x3670 $x6927)))
+(let ((@x7602 (monotonicity (rewrite (= (+ ?x254 ?x6825 ?x6938) ?x6929)) (= (= (+ ?x254 ?x6825 ?x6938) 0) $x7553))))
+(let ((@x7947 (rewrite (= (+ ?x6958 ?x1168 (* (- 1) ?x6825)) (+ ?x1168 (* (- 1) ?x6825) ?x6958)))))
+(let ((@x7737 (monotonicity @x7947 (= $x6826 (<= (+ ?x1168 (* (- 1) ?x6825) ?x6958) 0)))))
+(let ((@x8385 (trans @x7737 (rewrite (= (<= (+ ?x1168 (* (- 1) ?x6825) ?x6958) 0) $x7027)) (= $x6826 $x7027))))
+(let ((@x6604 (monotonicity (monotonicity @x8385 @x7602 (= $x6927 $x7603)) (= $x7688 (or $x3670 $x7603)))))
+(let ((@x7391 (mp ((_ quant-inst ?v1!16) $x7688) (trans @x6604 (rewrite (= (or $x3670 $x7603) $x5113)) (= $x7688 $x5113)) $x5113)))
+(let ((@x4197 (unit-resolution (unit-resolution @x7391 @x4789 $x7603) @x6426 @x6357 (hypothesis $x7206) false)))
+(let ((@x7250 (unit-resolution (lemma @x4197 (or $x7455 $x7553)) (unit-resolution ((_ th-lemma arith triangle-eq) (or $x7206 $x6067)) @x7217 $x7206) $x7455)))
+(let (($x7639 (not $x7455)))
+(let (($x7673 (or $x7639 $x6841)))
+(let (($x7669 (or $x3678 $x7639 $x6841)))
+(let ((@x7671 (monotonicity (monotonicity @x8385 (= (or $x6231 $x6826) $x7455)) (= (not (or $x6231 $x6826)) $x7639))))
+(let ((@x7677 (monotonicity (monotonicity @x7671 (= (or (not (or $x6231 $x6826)) $x6841) $x7673)) (= (or $x3678 (or (not (or $x6231 $x6826)) $x6841)) (or $x3678 $x7673)))))
+(let ((@x7387 (trans @x7677 (rewrite (= (or $x3678 $x7673) $x7669)) (= (or $x3678 (or (not (or $x6231 $x6826)) $x6841)) $x7669))))
+(let ((@x7252 (unit-resolution (mp ((_ quant-inst ?v1!16) (or $x3678 (or (not (or $x6231 $x6826)) $x6841))) @x7387 $x7669) @x4803 $x7673)))
+(let ((@x7315 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x6841) $x6920)) (unit-resolution @x7252 @x7250 $x6841) $x6920)))
+(let ((@x7323 (unit-resolution ((_ th-lemma arith assign-bounds -1 1 -1 -1) (or (not $x6000) (not $x6437) (not $x6920) (not $x6906) $x1864)) @x7315 (unit-resolution (mp ((_ quant-inst ?v0!17) (or $x3686 $x6869)) @x7419 $x7394) @x4714 $x6906) @x7110 @x6910 (not $x6000))))
+(let ((@x7351 (unit-resolution ((_ th-lemma arith assign-bounds -1 1 -1 1) (or $x6925 (not $x3906) (not $x6437) (not $x6920) $x1864)) @x7315 @x6160 @x7110 @x6910 $x6925)))
+(let ((@x7364 (unit-resolution @x8623 (unit-resolution @x5115 (unit-resolution @x6532 @x7351 $x5847) $x6858) @x7215 $x6631)))
+(let (($x6106 (not (<= (b_G$ (pair$ v_b_v_G_1$ ?v0!15)) 0))))
+(let (($x5808 (= v_b_v_G_1$ ?v0!15)))
+(let (($x5324 (not $x5808)))
+(let ((@x6624 (symm (commutativity (= $x5808 (= ?v0!15 v_b_v_G_1$))) (= (= ?v0!15 v_b_v_G_1$) $x5808))))
+(let (($x6044 (= ?v0!15 v_b_v_G_1$)))
+(let (($x6867 (not $x6044)))
+(let (($x5521 (fun_app$ v_b_Visited_G_1$ ?v0!15)))
+(let (($x6849 (or $x6044 $x5521)))
+(let (($x6408 (fun_app$ ?x260 ?v0!15)))
+(let (($x6494 (= $x6408 $x6849)))
+(let (($x5683 (or $x4134 $x6494)))
+(let ((@x6072 (monotonicity (rewrite (= (ite $x6044 true $x5521) $x6849)) (= (= $x6408 (ite $x6044 true $x5521)) $x6494))))
+(let ((@x6772 (monotonicity @x6072 (= (or $x4134 (= $x6408 (ite $x6044 true $x5521))) $x5683))))
+(let ((@x5812 (trans @x6772 (rewrite (= $x5683 $x5683)) (= (or $x4134 (= $x6408 (ite $x6044 true $x5521))) $x5683))))
+(let ((@x5804 (mp ((_ quant-inst v_b_Visited_G_1$ v_b_v_G_1$ true ?v0!15) (or $x4134 (= $x6408 (ite $x6044 true $x5521)))) @x5812 $x5683)))
+(let ((@x6715 (symm (monotonicity @x6739 (= $x6408 (fun_app$ v_b_Visited_G_2$ ?v0!15))) (= (fun_app$ v_b_Visited_G_2$ ?v0!15) $x6408))))
+(let ((@x6719 (monotonicity @x6715 (= (not (fun_app$ v_b_Visited_G_2$ ?v0!15)) (not $x6408)))))
+(let (($x6151 (fun_app$ v_b_Visited_G_2$ ?v0!15)))
+(let (($x6527 (not $x6151)))
+(let ((@x6833 (hypothesis $x1843)))
+(let (($x6836 (or (not (>= (+ ?x1841 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0!15))) 0)) $x1842)))
+(let (($x6830 (>= (+ ?x1841 (* (- 1) (fun_app$a v_b_SP_G_1$ ?v0!15))) 0)))
+(let ((?x6459 (fun_app$a v_b_SP_G_1$ ?v0!15)))
+(let (($x6119 (>= ?x6459 0)))
+(let ((@x4713 (unit-resolution (def-axiom (or $x3816 $x3551)) @x4357 $x3551)))
+(let ((@x6834 ((_ th-lemma arith farkas -1 1 1) @x6833 (unit-resolution ((_ quant-inst ?v0!15) (or $x3556 $x6119)) @x4713 $x6119) (hypothesis $x6830) false)))
+(let ((@x6656 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x1841 ?x6459)) $x6830)) (unit-resolution (lemma @x6834 $x6836) @x6833 (not $x6830)) (not (= ?x1841 ?x6459)))))
+(let (($x6618 (= (or $x3695 (or $x6527 (= ?x1841 ?x6459))) (or $x3695 $x6527 (= ?x1841 ?x6459)))))
+(let ((@x6610 (mp ((_ quant-inst ?v0!15) (or $x3695 (or $x6527 (= ?x1841 ?x6459)))) (rewrite $x6618) (or $x3695 $x6527 (= ?x1841 ?x6459)))))
+(let ((@x6720 (mp (unit-resolution @x6610 (hypothesis $x3690) @x6656 $x6527) @x6719 (not $x6408))))
+(let ((@x6725 (unit-resolution (def-axiom (or (not $x6494) $x6408 (not $x6849))) @x6720 (unit-resolution @x5804 @x3468 $x6494) (not $x6849))))
+(let ((@x6488 (mp (unit-resolution (def-axiom (or $x6849 $x6867)) @x6725 $x6867) (monotonicity @x6624 (= $x6867 $x5324)) $x5324)))
+(let (($x6164 (or $x5808 $x6106)))
+(let ((@x5318 (mp ((_ quant-inst v_b_v_G_1$ ?v0!15) (or (not $x3475) $x6164)) (rewrite (= (or (not $x3475) $x6164) (or (not $x3475) $x5808 $x6106))) (or (not $x3475) $x5808 $x6106))))
+(let (($x3157 (>= ?x169 0)))
+(let ((?x4056 (+ ?x169 ?x1168)))
+(let (($x6181 (<= ?x4056 0)))
+(let (($x3907 (= v_b_v_G_1$ b_Source$)))
+(let ((?x3908 (?v1!7 v_b_v_G_1$)))
+(let ((?x3915 (pair$ ?x3908 v_b_v_G_1$)))
+(let ((?x3916 (b_G$ ?x3915)))
+(let ((?x3917 (* (- 1) ?x3916)))
+(let ((?x3909 (fun_app$a v_b_SP_G_1$ ?x3908)))
+(let ((?x3910 (* (- 1) ?x3909)))
+(let ((?x3918 (+ ?x254 ?x3910 ?x3917)))
+(let (($x3919 (= ?x3918 0)))
+(let (($x3913 (fun_app$ v_b_Visited_G_1$ ?x3908)))
+(let (($x3914 (not $x3913)))
+(let ((?x3911 (+ ?x254 ?x3910)))
+(let (($x3912 (<= ?x3911 0)))
+(let (($x3921 (or $x3912 $x3914 (not $x3919))))
+(let (($x4342 (>= ?x3911 0)))
+(let (($x6807 (not $x4342)))
+(let ((@x6790 (hypothesis $x4342)))
+(let (($x5838 (>= ?x3909 0)))
+(let ((?x6528 (pair$ v_b_v_G_1$ ?v0!15)))
+(let ((?x6529 (b_G$ ?x6528)))
+(let ((?x6364 (* (- 1) ?x1841)))
+(let ((?x5981 (+ ?x254 ?x6364 ?x6529)))
+(let (($x6866 (<= ?x5981 0)))
+(let (($x6554 (= ?x5981 0)))
+(let (($x5936 (>= (+ ?x254 (* (- 1) ?x6459) ?x6529) 0)))
+(let (($x6303 (<= (+ b_Infinity$ (* (- 1) ?x6529)) 0)))
+(let (($x3933 (or $x6303 $x5936)))
+(let (($x6288 (not $x3933)))
+(let (($x6486 (= ?x1841 ?x6459)))
+(let (($x6685 (or $x3678 $x6288 $x6486)))
+(let (($x6462 (or (not (or $x6303 (<= (+ ?x6459 ?x1168 (* (- 1) ?x6529)) 0))) $x6486)))
+(let (($x6686 (or $x3678 $x6462)))
+(let (($x5681 (<= (+ ?x6459 ?x1168 (* (- 1) ?x6529)) 0)))
+(let ((@x3990 (rewrite (= (+ ?x6459 ?x1168 (* (- 1) ?x6529)) (+ ?x1168 ?x6459 (* (- 1) ?x6529))))))
+(let ((@x4138 (monotonicity @x3990 (= $x5681 (<= (+ ?x1168 ?x6459 (* (- 1) ?x6529)) 0)))))
+(let ((@x3932 (trans @x4138 (rewrite (= (<= (+ ?x1168 ?x6459 (* (- 1) ?x6529)) 0) $x5936)) (= $x5681 $x5936))))
+(let ((@x6693 (monotonicity (monotonicity @x3932 (= (or $x6303 $x5681) $x3933)) (= (not (or $x6303 $x5681)) $x6288))))
+(let ((@x6509 (monotonicity (monotonicity @x6693 (= $x6462 (or $x6288 $x6486))) (= $x6686 (or $x3678 (or $x6288 $x6486))))))
+(let ((@x5868 (trans @x6509 (rewrite (= (or $x3678 (or $x6288 $x6486)) $x6685)) (= $x6686 $x6685))))
+(let ((@x6885 (unit-resolution (def-axiom (or $x3933 (not $x6303))) (hypothesis $x6288) (not $x6303))))
+(let ((@x6886 (unit-resolution (def-axiom (or $x3933 (not $x5936))) (hypothesis $x6288) (not $x5936))))
+(let (($x4983 (or $x6303 $x5936 $x6554)))
+(let (($x3903 (or $x3670 $x6303 $x5936 $x6554)))
+(let (($x5258 (or $x6303 $x5681 (= (+ ?x254 ?x6529 ?x6364) 0))))
+(let (($x4854 (or $x3670 $x5258)))
+(let ((@x4987 (monotonicity (rewrite (= (+ ?x254 ?x6529 ?x6364) ?x5981)) (= (= (+ ?x254 ?x6529 ?x6364) 0) $x6554))))
+(let ((@x5496 (monotonicity (monotonicity @x3932 @x4987 (= $x5258 $x4983)) (= $x4854 (or $x3670 $x4983)))))
+(let ((@x5069 (mp ((_ quant-inst ?v0!15) $x4854) (trans @x5496 (rewrite (= (or $x3670 $x4983) $x3903)) (= $x4854 $x3903)) $x3903)))
+(let ((@x6888 (unit-resolution (unit-resolution @x5069 @x4789 $x4983) @x6886 @x6885 (hypothesis (not $x6554)) false)))
+(let ((@x6099 (unit-resolution (lemma @x6888 (or $x3933 $x6554)) (unit-resolution (mp ((_ quant-inst ?v0!15) $x6686) @x5868 $x6685) @x4803 @x6656 $x6288) $x6554)))
+(let ((@x6871 ((_ th-lemma arith farkas 1 1 1 1 1) @x6833 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x6554) $x6866)) @x6099 $x6866) (unit-resolution ((_ quant-inst (?v1!7 v_b_v_G_1$)) (or $x3556 $x5838)) @x4713 $x5838) @x6790 (unit-resolution (unit-resolution @x5318 @x3480 $x6164) @x6488 $x6106) false)))
+(let ((@x6225 (unit-resolution (lemma @x6871 (or $x3695 $x1842 $x6807)) (hypothesis $x3690) @x6833 $x6807)))
+(let ((@x3174 (def-axiom (or $x3921 (not $x3912)))))
+(let ((@x6645 (unit-resolution @x3174 (unit-resolution ((_ th-lemma arith farkas 1 1) (or $x4342 $x3912)) @x6225 $x3912) $x3921)))
+(let (($x3922 (not $x3921)))
+(let (($x4599 (or $x3581 $x3907 $x1208 $x3922)))
+(let ((@x4617 (mp ((_ quant-inst v_b_v_G_1$) (or $x3581 (or $x3907 $x1208 $x3922))) (rewrite (= (or $x3581 (or $x3907 $x1208 $x3922)) $x4599)) $x4599)))
+(let ((@x6649 (unit-resolution @x4617 @x4189 (unit-resolution (def-axiom (or $x3804 $x1209)) @x4802 $x1209) (or $x3907 $x3922))))
+(let ((@x5588 (symm (monotonicity (unit-resolution @x6649 @x6645 $x3907) (= ?x254 ?x169)) (= ?x169 ?x254))))
+(let ((@x5241 ((_ th-lemma arith farkas 1 1 1 1 1) @x6833 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x6554) $x6866)) @x6099 $x6866) (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x169 ?x254)) $x6181)) @x5588 $x6181) (unit-resolution ((_ th-lemma arith triangle-eq) (or $x2947 $x3157)) @x4135 $x3157) (unit-resolution (unit-resolution @x5318 @x3480 $x6164) @x6488 $x6106) false)))
+(let ((@x8742 (unit-resolution (def-axiom (or $x3780 $x3774)) (unit-resolution @x9261 (lemma @x5791 $x1824) $x3783) $x3774)))
+(let (($x4076 (= ?x291 ?x169)))
+(let (($x4073 (<= (+ ?x169 ?x1168 (* (- 1) (b_G$ (pair$ v_b_v_G_1$ b_Source$)))) 0)))
+(let (($x4071 (<= (+ b_Infinity$ (* (- 1) (b_G$ (pair$ v_b_v_G_1$ b_Source$)))) 0)))
+(let (($x4074 (or $x4071 $x4073)))
+(let (($x3924 (>= ?x254 0)))
+(let (($x4636 (or $x3556 $x3924)))
+(let ((@x4637 ((_ quant-inst v_b_v_G_1$) $x4636)))
+(let (($x4075 (not $x4074)))
+(let ((@x5775 (hypothesis $x4075)))
+(let ((?x4061 (pair$ v_b_v_G_1$ b_Source$)))
+(let ((?x4062 (b_G$ ?x4061)))
+(let (($x5863 (>= ?x4062 0)))
+(let (($x5333 (= ?x4062 0)))
+(let (($x5329 (<= ?x4062 0)))
+(let (($x4173 (<= ?x291 0)))
+(let ((?x4078 (* (- 1) ?x291)))
+(let ((?x4144 (+ ?x169 ?x4078)))
+(let (($x4145 (>= ?x4144 0)))
+(let (($x4905 (or $x3686 $x4145)))
+(let ((@x5229 ((_ quant-inst b_Source$) $x4905)))
+(let (($x3158 (<= ?x169 0)))
+(let ((@x4838 (unit-resolution ((_ th-lemma arith triangle-eq) (or $x2947 $x3158)) @x4135 $x3158)))
+(let ((@x4827 (unit-resolution ((_ th-lemma arith assign-bounds -1 1) (or $x4173 (not $x3158) (not $x4145))) @x4838 (unit-resolution @x5229 @x4714 $x4145) $x4173)))
+(let ((?x4096 (+ ?x254 ?x4078 ?x4062)))
+(let (($x4116 (<= ?x4096 0)))
+(let (($x4099 (= ?x4096 0)))
+(let (($x4102 (or $x4071 $x4073 $x4099)))
+(let (($x4105 (or $x3670 $x4071 $x4073 $x4099)))
+(let (($x4095 (or $x4071 $x4073 (= (+ ?x254 ?x4062 ?x4078) 0))))
+(let (($x4106 (or $x3670 $x4095)))
+(let ((@x4101 (monotonicity (rewrite (= (+ ?x254 ?x4062 ?x4078) ?x4096)) (= (= (+ ?x254 ?x4062 ?x4078) 0) $x4099))))
+(let ((@x4110 (monotonicity (monotonicity @x4101 (= $x4095 $x4102)) (= $x4106 (or $x3670 $x4102)))))
+(let ((@x4115 (mp ((_ quant-inst b_Source$) $x4106) (trans @x4110 (rewrite (= (or $x3670 $x4102) $x4105)) (= $x4106 $x4105)) $x4105)))
+(let ((@x5780 (unit-resolution (unit-resolution @x4115 (hypothesis $x3665) $x4102) (unit-resolution (def-axiom (or $x4074 (not $x4073))) @x5775 (not $x4073)) (unit-resolution (def-axiom (or $x4074 (not $x4071))) @x5775 (not $x4071)) (hypothesis (not $x4099)) false)))
+(let ((@x4831 (unit-resolution (lemma @x5780 (or $x4074 $x4099 $x3670)) @x4789 (or $x4074 $x4099))))
+(let ((@x4846 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x4099) $x4116)) (unit-resolution @x4831 @x5775 $x4099) $x4116)))
+(let ((@x5939 ((_ th-lemma arith farkas -1 1 -1 1) (hypothesis $x3924) (hypothesis $x4173) (hypothesis (not $x5329)) (hypothesis $x4116) false)))
+(let ((@x4867 (unit-resolution (lemma @x5939 (or $x5329 (not $x3924) (not $x4173) (not $x4116))) (unit-resolution @x4637 @x4713 $x3924) (or $x5329 (not $x4173) (not $x4116)))))
+(let (($x5274 (= (or (not $x3475) (or $x3907 (not $x5329))) (or (not $x3475) $x3907 (not $x5329)))))
+(let ((@x5275 (mp ((_ quant-inst v_b_v_G_1$ b_Source$) (or (not $x3475) (or $x3907 (not $x5329)))) (rewrite $x5274) (or (not $x3475) $x3907 (not $x5329)))))
+(let ((@x5099 (rewrite (= (or $x3045 (or (not $x3907) $x5333)) (or $x3045 (not $x3907) $x5333)))))
+(let ((@x5081 (mp ((_ quant-inst v_b_v_G_1$ b_Source$) (or $x3045 (or (not $x3907) $x5333))) @x5099 (or $x3045 (not $x3907) $x5333))))
+(let ((@x4868 (unit-resolution @x5081 @x3474 (unit-resolution @x5275 @x3480 (unit-resolution @x4867 @x4846 @x4827 $x5329) $x3907) $x5333)))
+(let ((@x4872 ((_ th-lemma arith farkas -1 1 1 1) @x4838 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x5333) $x5863)) @x4868 $x5863) (unit-resolution (def-axiom (or $x4074 (not $x4073))) @x5775 (not $x4073)) (unit-resolution @x4637 @x4713 $x3924) false)))
+(let (($x4077 (or $x4075 $x4076)))
+(let (($x5055 (or $x3678 $x4075 $x4076)))
+(let ((@x5303 (mp ((_ quant-inst b_Source$) (or $x3678 $x4077)) (rewrite (= (or $x3678 $x4077) $x5055)) $x5055)))
+(let ((@x8878 (unit-resolution (unit-resolution @x5303 @x4803 $x4077) (lemma @x4872 $x4074) $x4076)))
+(let ((@x9287 (unit-resolution (def-axiom (or $x3777 $x768 $x3771)) (mp @x8878 (monotonicity @x4135 (= $x4076 $x292)) $x292) (or $x3777 $x3771))))
+(let ((@x8755 (unit-resolution (def-axiom (or $x3768 $x3762)) (unit-resolution @x9287 @x8742 $x3771) $x3762)))
+(let ((@x8979 (unit-resolution (def-axiom (or $x3765 $x1843 $x3759)) @x8755 (unit-resolution (lemma @x5241 (or $x3695 $x1842)) @x9263 $x1842) $x3759)))
+(let ((@x9416 (unit-resolution (def-axiom (or $x3753 $x2760 $x3747)) (unit-resolution (def-axiom (or $x3756 $x3750)) @x8979 $x3750) $x3750)))
+(let ((@x9452 (unit-resolution @x9416 (lemma (unit-resolution @x5735 @x6683 @x6066 @x7364 @x7323 false) $x2755) $x3747)))
+(let ((@x9454 (unit-resolution (def-axiom (or $x3741 $x2806 $x3735)) (unit-resolution (def-axiom (or $x3744 $x3738)) @x9452 $x3738) $x3738)))
+(let ((@x9455 (unit-resolution @x9454 (lemma @x7807 $x2801) $x3735)))
+(let ((@x9475 (unit-resolution (def-axiom (or $x3732 $x1910)) @x9455 $x1910)))
+(let ((@x9478 ((_ th-lemma arith farkas -1 1 1) (hypothesis (<= (+ b_Infinity$ ?x4438) 0)) @x9476 @x9475 false)))
+(let ((@x9241 (unit-resolution (lemma @x9478 (or $x9479 (not (<= (+ b_Infinity$ ?x4438) 0)))) @x9476 (not (<= (+ b_Infinity$ ?x4438) 0)))))
+(let (($x4660 (<= (+ b_Infinity$ ?x4438) 0)))
+(let (($x8499 (or $x3581 $x1904 $x4660 $x4675)))
+(let ((@x7305 (mp ((_ quant-inst ?v0!20) (or $x3581 (or $x1904 $x4660 $x4675))) (rewrite (= (or $x3581 (or $x1904 $x4660 $x4675)) $x8499)) $x8499)))
+(let ((@x9599 (unit-resolution @x7305 @x4189 (unit-resolution (def-axiom (or $x3732 $x1905)) @x9455 $x1905) (or $x4660 $x4675))))
+(let ((@x9582 (unit-resolution @x9599 @x9241 $x4675)))
+(let ((?x4717 (v_b_SP_G_2$ ?x4661)))
+(let ((?x4720 (* (- 1) ?x4717)))
+(let ((?x4721 (+ ?x4662 ?x4720)))
+(let (($x4728 (>= ?x4721 0)))
+(let ((@x9586 ((_ th-lemma arith farkas 1 1 -1 1) @x9476 (unit-resolution ((_ quant-inst (?v1!7 ?v0!20)) (or $x3686 $x4728)) @x4714 $x4728) (hypothesis (<= (+ ?x1906 ?x4720) 0)) (unit-resolution (def-axiom (or $x4674 (not $x4665))) @x9582 (not $x4665)) false)))
+(let ((@x8898 (unit-resolution (lemma @x9586 $x9588) @x9476 (not (<= (+ ?x1906 ?x4720) 0)))))
+(let ((?x7341 (+ ?x1906 ?x4670 ?x4720)))
+(let (($x7121 (= ?x7341 0)))
+(let (($x5719 (<= ?x7341 0)))
+(let (($x4844 (<= (+ b_Infinity$ ?x4670) 0)))
+(let (($x8387 (not $x4844)))
+(let (($x7025 (>= ?x4671 0)))
+(let ((@x8158 (unit-resolution ((_ th-lemma arith triangle-eq) (or $x4673 $x7025)) (unit-resolution (def-axiom (or $x4674 $x4672)) @x9582 $x4672) $x7025)))
+(let (($x4825 (>= ?x4662 0)))
+(let ((@x8897 (unit-resolution ((_ th-lemma arith assign-bounds -1 -1 -1 -1) (or $x8387 (not $x4825) (not $x7025) $x1909 $x9479)) @x9475 (or $x8387 (not $x4825) (not $x7025) $x9479))))
+(let ((@x8874 (unit-resolution @x8897 (unit-resolution ((_ quant-inst (?v1!7 ?v0!20)) (or $x3556 $x4825)) @x4713 $x4825) @x9476 @x8158 $x8387)))
+(let (($x4709 (fun_app$ v_b_Visited_G_2$ ?x4661)))
+(let ((@x6057 (monotonicity (symm (hypothesis $x261) (= ?x260 v_b_Visited_G_2$)) (= (fun_app$ ?x260 ?x4661) $x4709))))
+(let ((@x6061 (monotonicity (symm @x6057 (= $x4709 (fun_app$ ?x260 ?x4661))) (= (not $x4709) (not (fun_app$ ?x260 ?x4661))))))
+(let (($x6003 (fun_app$ ?x260 ?x4661)))
+(let (($x6010 (= ?x4661 v_b_v_G_1$)))
+(let (($x6013 (or $x6010 $x4666)))
+(let (($x6016 (= $x6003 $x6013)))
+(let (($x6019 (or $x4134 $x6016)))
+(let ((@x6018 (monotonicity (rewrite (= (ite $x6010 true $x4666) $x6013)) (= (= $x6003 (ite $x6010 true $x4666)) $x6016))))
+(let ((@x6023 (monotonicity @x6018 (= (or $x4134 (= $x6003 (ite $x6010 true $x4666))) $x6019))))
+(let ((@x6026 (trans @x6023 (rewrite (= $x6019 $x6019)) (= (or $x4134 (= $x6003 (ite $x6010 true $x4666))) $x6019))))
+(let ((@x6027 (mp ((_ quant-inst v_b_Visited_G_1$ v_b_v_G_1$ true (?v1!7 ?v0!20)) (or $x4134 (= $x6003 (ite $x6010 true $x4666)))) @x6026 $x6019)))
+(let ((@x6050 (unit-resolution (def-axiom (or (not $x6016) $x6003 (not $x6013))) (unit-resolution (def-axiom (or $x6013 $x4667)) (hypothesis $x4666) $x6013) (or (not $x6016) $x6003))))
+(let ((@x6063 (unit-resolution (unit-resolution @x6050 (unit-resolution @x6027 @x3468 $x6016) $x6003) (mp (hypothesis (not $x4709)) @x6061 (not $x6003)) false)))
+(let ((@x8957 (unit-resolution (lemma @x6063 (or $x4709 $x2930 $x4667)) (unit-resolution (def-axiom (or $x3804 $x261)) @x4802 $x261) (or $x4709 $x4667))))
+(let ((@x8892 (unit-resolution @x8957 (unit-resolution (def-axiom (or $x4674 $x4666)) @x9582 $x4666) $x4709)))
+(let (($x4710 (not $x4709)))
+(let (($x6183 (or $x3720 $x4710 $x4844 $x5719)))
+(let (($x4848 (>= (+ ?x4669 ?x4717 ?x1907) 0)))
+(let (($x4849 (or $x4710 $x4844 $x4848)))
+(let (($x7891 (or $x3720 $x4849)))
+(let ((@x7340 (monotonicity (rewrite (= (+ ?x4669 ?x4717 ?x1907) (+ ?x1907 ?x4669 ?x4717))) (= $x4848 (>= (+ ?x1907 ?x4669 ?x4717) 0)))))
+(let ((@x7415 (trans @x7340 (rewrite (= (>= (+ ?x1907 ?x4669 ?x4717) 0) $x5719)) (= $x4848 $x5719))))
+(let ((@x7922 (monotonicity (monotonicity @x7415 (= $x4849 (or $x4710 $x4844 $x5719))) (= $x7891 (or $x3720 (or $x4710 $x4844 $x5719))))))
+(let ((@x7119 (trans @x7922 (rewrite (= (or $x3720 (or $x4710 $x4844 $x5719)) $x6183)) (= $x7891 $x6183))))
+(let ((@x8954 (unit-resolution (mp ((_ quant-inst ?v0!20 (?v1!7 ?v0!20)) $x7891) @x7119 $x6183) (unit-resolution (def-axiom (or $x3732 $x3715)) @x9455 $x3715) @x8892 (or $x4844 $x5719))))
+(let (($x8133 (>= ?x7341 0)))
+(let ((@x9055 (unit-resolution ((_ th-lemma arith assign-bounds -1 -1 -1) (or $x8133 (not $x7025) $x9479 (not $x4728))) (unit-resolution ((_ quant-inst (?v1!7 ?v0!20)) (or $x3686 $x4728)) @x4714 $x4728) @x8158 @x9476 $x8133)))
+(let ((@x9049 (unit-resolution ((_ th-lemma arith triangle-eq) (or $x7121 (not $x5719) (not $x8133))) @x9055 (unit-resolution @x8954 @x8874 $x5719) $x7121)))
+(let (($x7918 (not $x7121)))
+(let ((?x4888 (+ ?x1906 ?x4720)))
+(let (($x7874 (<= ?x4888 0)))
+(let (($x8072 (or $x3729 $x7874 $x4710 $x7918)))
+(let (($x4877 (>= (+ ?x4717 ?x1907) 0)))
+(let (($x4881 (or $x4877 $x4710 (not (= (+ ?x4717 ?x1907 ?x4669) 0)))))
+(let (($x8040 (or $x3729 $x4881)))
+(let ((@x6258 (monotonicity (rewrite (= (+ ?x4717 ?x1907 ?x4669) (+ ?x1907 ?x4669 ?x4717))) (= (= (+ ?x4717 ?x1907 ?x4669) 0) (= (+ ?x1907 ?x4669 ?x4717) 0)))))
+(let ((@x7178 (trans @x6258 (rewrite (= (= (+ ?x1907 ?x4669 ?x4717) 0) $x7121)) (= (= (+ ?x4717 ?x1907 ?x4669) 0) $x7121))))
+(let ((@x7871 (monotonicity (rewrite (= (+ ?x4717 ?x1907) (+ ?x1907 ?x4717))) (= $x4877 (>= (+ ?x1907 ?x4717) 0)))))
+(let ((@x7892 (trans @x7871 (rewrite (= (>= (+ ?x1907 ?x4717) 0) $x7874)) (= $x4877 $x7874))))
+(let ((@x8041 (monotonicity @x7892 (monotonicity @x7178 (= (not (= (+ ?x4717 ?x1907 ?x4669) 0)) $x7918)) (= $x4881 (or $x7874 $x4710 $x7918)))))
+(let ((@x8107 (trans (monotonicity @x8041 (= $x8040 (or $x3729 (or $x7874 $x4710 $x7918)))) (rewrite (= (or $x3729 (or $x7874 $x4710 $x7918)) $x8072)) (= $x8040 $x8072))))
+(let ((@x9051 (unit-resolution (mp ((_ quant-inst (?v1!7 ?v0!20)) $x8040) @x8107 $x8072) (unit-resolution (def-axiom (or $x3732 $x3724)) @x9455 $x3724) @x8892 (or $x7874 $x7918))))
+(let ((@x10024 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not (= ?x1906 ?x4413)) $x6002)) (lemma (unit-resolution @x9051 @x9049 @x8898 false) $x9479) (not (= ?x1906 ?x4413)))))
+(let (($x4420 (= ?x1906 ?x4413)))
+(let (($x4423 (or $x4299 $x4420)))
+(let (($x8830 (or $x3695 $x4299 $x4420)))
+(let ((@x8691 (mp ((_ quant-inst ?v0!20) (or $x3695 $x4423)) (rewrite (= (or $x3695 $x4423) $x8830)) $x8830)))
+(let ((@x10120 (mp (unit-resolution (unit-resolution @x8691 @x9263 $x4423) @x10024 $x4299) @x10119 $x9037)))
+(let (($x4629 (fun_app$ v_b_Visited_G_1$ ?v0!20)))
+(let (($x5238 (= ?v0!20 v_b_v_G_1$)))
+(let (($x10274 (or $x5238 $x4629)))
+(let (($x10073 (= $x5237 $x10274)))
+(let (($x10506 (or $x4134 $x10073)))
+(let ((@x10500 (monotonicity (rewrite (= (ite $x5238 true $x4629) $x10274)) (= (= $x5237 (ite $x5238 true $x4629)) $x10073))))
+(let ((@x10183 (monotonicity @x10500 (= (or $x4134 (= $x5237 (ite $x5238 true $x4629))) $x10506))))
+(let ((@x10372 (trans @x10183 (rewrite (= $x10506 $x10506)) (= (or $x4134 (= $x5237 (ite $x5238 true $x4629))) $x10506))))
+(let ((@x10020 (mp ((_ quant-inst v_b_Visited_G_1$ v_b_v_G_1$ true ?v0!20) (or $x4134 (= $x5237 (ite $x5238 true $x4629)))) @x10372 $x10506)))
+(let ((?x4454 (pair$ v_b_v_G_1$ ?v0!20)))
+(let ((?x4455 (b_G$ ?x4454)))
+(let ((?x4507 (+ ?x254 ?x1907 ?x4455)))
+(let (($x4527 (<= ?x4507 0)))
+(let (($x8001 (= ?x4507 0)))
+(let ((?x9161 (+ ?x254 ?x4438 ?x4455)))
+(let (($x9165 (>= ?x9161 0)))
+(let ((?x4456 (* (- 1) ?x4455)))
+(let ((?x4457 (+ b_Infinity$ ?x4456)))
+(let (($x4458 (<= ?x4457 0)))
+(let (($x8810 (or $x4458 $x9165)))
+(let (($x8814 (not $x8810)))
+(let (($x8919 (or $x8814 $x4420)))
+(let (($x8679 (or $x3678 $x8814 $x4420)))
+(let (($x4463 (or (not (or $x4458 (<= (+ ?x4413 ?x1168 ?x4456) 0))) $x4420)))
+(let (($x9386 (or $x3678 $x4463)))
+(let ((@x9164 (monotonicity (rewrite (= (+ ?x4413 ?x1168 ?x4456) (+ ?x1168 ?x4413 ?x4456))) (= (<= (+ ?x4413 ?x1168 ?x4456) 0) (<= (+ ?x1168 ?x4413 ?x4456) 0)))))
+(let ((@x8891 (trans @x9164 (rewrite (= (<= (+ ?x1168 ?x4413 ?x4456) 0) $x9165)) (= (<= (+ ?x4413 ?x1168 ?x4456) 0) $x9165))))
+(let ((@x8813 (monotonicity @x8891 (= (or $x4458 (<= (+ ?x4413 ?x1168 ?x4456) 0)) $x8810))))
+(let ((@x8815 (monotonicity @x8813 (= (not (or $x4458 (<= (+ ?x4413 ?x1168 ?x4456) 0))) $x8814))))
+(let ((@x9295 (monotonicity (monotonicity @x8815 (= $x4463 $x8919)) (= $x9386 (or $x3678 $x8919)))))
+(let ((@x9441 (mp ((_ quant-inst ?v0!20) $x9386) (trans @x9295 (rewrite (= (or $x3678 $x8919) $x8679)) (= $x9386 $x8679)) $x8679)))
+(let ((@x9984 (unit-resolution (def-axiom (or $x8810 (not $x4458))) (hypothesis $x8814) (not $x4458))))
+(let ((@x9985 (unit-resolution (def-axiom (or $x8810 (not $x9165))) (hypothesis $x8814) (not $x9165))))
+(let (($x8926 (or $x4458 $x9165 $x8001)))
+(let (($x8928 (or $x3670 $x4458 $x9165 $x8001)))
+(let (($x4460 (<= (+ ?x4413 ?x1168 ?x4456) 0)))
+(let (($x4506 (or $x4458 $x4460 (= (+ ?x254 ?x4455 ?x1907) 0))))
+(let (($x8929 (or $x3670 $x4506)))
+(let ((@x8925 (monotonicity (rewrite (= (+ ?x254 ?x4455 ?x1907) ?x4507)) (= (= (+ ?x254 ?x4455 ?x1907) 0) $x8001))))
+(let ((@x8953 (monotonicity (monotonicity @x8891 @x8925 (= $x4506 $x8926)) (= $x8929 (or $x3670 $x8926)))))
+(let ((@x8682 (mp ((_ quant-inst ?v0!20) $x8929) (trans @x8953 (rewrite (= (or $x3670 $x8926) $x8928)) (= $x8929 $x8928)) $x8928)))
+(let ((@x9987 (unit-resolution (unit-resolution @x8682 @x4789 $x8926) @x9985 @x9984 (hypothesis (not $x8001)) false)))
+(let ((@x10276 (unit-resolution (lemma @x9987 (or $x8810 $x8001)) (unit-resolution (unit-resolution @x9441 @x4803 $x8919) @x10024 $x8814) $x8001)))
+(let ((?x4401 (+ ?x1906 ?x3064)))
+(let (($x6992 (<= ?x4401 0)))
+(let ((?x4566 (+ ?x1906 ?x3064 ?x4456)))
+(let (($x6987 (= ?x4566 0)))
+(let (($x4590 (>= ?x4566 0)))
+(let ((@x9966 (unit-resolution ((_ th-lemma arith assign-bounds 1 -1) (or (not $x4527) $x4590 (not $x3906))) @x6160 (or (not $x4527) $x4590))))
+(let (($x4589 (<= ?x4566 0)))
+(let (($x4181 (>= ?x3063 0)))
+(let (($x6279 (or $x3703 $x4181)))
+(let ((@x6374 ((_ quant-inst v_b_v_G_1$) $x6279)))
+(let ((@x9257 (unit-resolution @x6374 (unit-resolution (def-axiom (or $x3756 $x3698)) @x8979 $x3698) $x4181)))
+(let (($x4146 (fun_app$ v_b_Visited_G_2$ v_b_v_G_1$)))
+(let (($x3097 (fun_app$ ?x260 v_b_v_G_1$)))
+(let (($x3456 (forall ((?v0 B_Vertex_bool_fun$) (?v1 B_Vertex$) (?v2 Bool) )(! (= (fun_app$ (fun_upd$ ?v0 ?v1 ?v2) ?v1) ?v2) :pattern ( (fun_upd$ ?v0 ?v1 ?v2) ) :qid k!33))
+))
+(let (($x55 (forall ((?v0 B_Vertex_bool_fun$) (?v1 B_Vertex$) (?v2 Bool) )(! (= (fun_app$ (fun_upd$ ?v0 ?v1 ?v2) ?v1) ?v2) :qid k!33))
+))
+(let (($x52 (= (fun_app$ (fun_upd$ ?2 ?1 ?0) ?1) ?0)))
+(let (($x50 (forall ((?v0 B_Vertex_bool_fun$) (?v1 B_Vertex$) (?v2 Bool) )(! (= (fun_app$ (fun_upd$ ?v0 ?v1 ?v2) ?v1) ?v2) :qid k!33))
+))
+(let ((@x54 (rewrite (= (= (fun_app$ (fun_upd$ ?2 ?1 ?0) ?1) ?0) $x52))))
+(let ((@x1427 (mp~ (mp (asserted $x50) (quant-intro @x54 (= $x50 $x55)) $x55) (nnf-pos (refl (~ $x52 $x52)) (~ $x55 $x55)) $x55)))
+(let ((@x3461 (mp @x1427 (quant-intro (refl (= $x52 $x52)) (= $x55 $x3456)) $x3456)))
+(let (($x4383 (or (not $x3456) $x3097)))
+(let ((@x4480 (monotonicity (rewrite (= (= $x3097 true) $x3097)) (= (or (not $x3456) (= $x3097 true)) $x4383))))
+(let ((@x4483 (trans @x4480 (rewrite (= $x4383 $x4383)) (= (or (not $x3456) (= $x3097 true)) $x4383))))
+(let ((@x4484 (mp ((_ quant-inst v_b_Visited_G_1$ v_b_v_G_1$ true) (or (not $x3456) (= $x3097 true))) @x4483 $x4383)))
+(let ((@x9972 (mp (unit-resolution @x4484 @x3461 $x3097) (monotonicity @x6739 (= $x3097 $x4146)) $x4146)))
+(let ((@x5439 (unit-resolution ((_ th-lemma arith farkas 1 1) (or $x4590 $x4589)) (hypothesis (not $x4589)) $x4590)))
+(let (($x4147 (not $x4146)))
+(let (($x5371 (or $x3720 $x4147 $x4458 $x4589)))
+(let ((?x5354 (+ ?x4455 ?x3063 ?x1907)))
+(let (($x5355 (>= ?x5354 0)))
+(let (($x5358 (or $x4147 $x4458 $x5355)))
+(let (($x5372 (or $x3720 $x5358)))
+(let ((@x5363 (monotonicity (rewrite (= ?x5354 (+ ?x1907 ?x3063 ?x4455))) (= $x5355 (>= (+ ?x1907 ?x3063 ?x4455) 0)))))
+(let ((@x5367 (trans @x5363 (rewrite (= (>= (+ ?x1907 ?x3063 ?x4455) 0) $x4589)) (= $x5355 $x4589))))
+(let ((@x5376 (monotonicity (monotonicity @x5367 (= $x5358 (or $x4147 $x4458 $x4589))) (= $x5372 (or $x3720 (or $x4147 $x4458 $x4589))))))
+(let ((@x5380 (trans @x5376 (rewrite (= (or $x3720 (or $x4147 $x4458 $x4589)) $x5371)) (= $x5372 $x5371))))
+(let ((@x5381 (mp ((_ quant-inst ?v0!20 v_b_v_G_1$) $x5372) @x5380 $x5371)))
+(let ((@x5443 (unit-resolution @x5381 (hypothesis $x3715) (hypothesis $x4146) (hypothesis (not $x4589)) $x4458)))
+(let ((@x5447 (lemma ((_ th-lemma arith farkas 1 1 1 1) @x5443 (hypothesis $x4181) @x5439 (hypothesis $x1910) false) (or $x4589 (not $x4181) $x1909 $x3720 $x4147))))
+(let ((@x9976 (unit-resolution (unit-resolution @x5447 @x9972 (or $x4589 (not $x4181) $x1909 $x3720)) @x9257 (or $x4589 $x1909 $x3720))))
+(let ((@x9977 (unit-resolution @x9976 (unit-resolution (def-axiom (or $x3732 $x3715)) @x9455 $x3715) @x9475 $x4589)))
+(let ((@x9991 (unit-resolution ((_ th-lemma arith triangle-eq) (or $x6987 (not $x4589) (not $x4590))) @x9977 (or $x6987 (not $x4590)))))
+(let ((@x9992 (unit-resolution @x9991 (unit-resolution @x9966 (hypothesis $x4527) $x4590) $x6987)))
+(let (($x7023 (not $x6987)))
+(let (($x6921 (or $x3729 $x6992 $x4147 $x7023)))
+(let (($x4536 (>= (+ ?x3063 ?x1907) 0)))
+(let (($x4548 (or $x4536 $x4147 (not (= (+ ?x3063 ?x1907 ?x4455) 0)))))
+(let (($x8524 (or $x3729 $x4548)))
+(let ((@x7245 (monotonicity (rewrite (= (+ ?x3063 ?x1907 ?x4455) (+ ?x1907 ?x3063 ?x4455))) (= (= (+ ?x3063 ?x1907 ?x4455) 0) (= (+ ?x1907 ?x3063 ?x4455) 0)))))
+(let ((@x7022 (trans @x7245 (rewrite (= (= (+ ?x1907 ?x3063 ?x4455) 0) $x6987)) (= (= (+ ?x3063 ?x1907 ?x4455) 0) $x6987))))
+(let ((@x7049 (monotonicity (rewrite (= (+ ?x3063 ?x1907) (+ ?x1907 ?x3063))) (= $x4536 (>= (+ ?x1907 ?x3063) 0)))))
+(let ((@x8373 (trans @x7049 (rewrite (= (>= (+ ?x1907 ?x3063) 0) $x6992)) (= $x4536 $x6992))))
+(let ((@x7936 (monotonicity @x8373 (monotonicity @x7022 (= (not (= (+ ?x3063 ?x1907 ?x4455) 0)) $x7023)) (= $x4548 (or $x6992 $x4147 $x7023)))))
+(let ((@x8581 (trans (monotonicity @x7936 (= $x8524 (or $x3729 (or $x6992 $x4147 $x7023)))) (rewrite (= (or $x3729 (or $x6992 $x4147 $x7023)) $x6921)) (= $x8524 $x6921))))
+(let ((@x8053 (mp ((_ quant-inst v_b_v_G_1$) $x8524) @x8581 $x6921)))
+(let ((@x9995 (unit-resolution @x8053 (unit-resolution (def-axiom (or $x3732 $x3724)) @x9455 $x3724) @x9972 (or $x6992 $x7023))))
+(let (($x5406 (<= ?x4455 0)))
+(let (($x5407 (not $x5406)))
+(let (($x5405 (= v_b_v_G_1$ ?v0!20)))
+(let (($x5409 (not $x5405)))
+(let ((@x10003 (monotonicity (symm (commutativity (= $x5405 $x5238)) (= $x5238 $x5405)) (= (not $x5238) $x5409))))
+(let (($x5408 (or $x5405 $x5407)))
+(let (($x3099 (not $x3475)))
+(let (($x9955 (or $x3099 $x5405 $x5407)))
+(let ((@x9962 (mp ((_ quant-inst v_b_v_G_1$ ?v0!20) (or $x3099 $x5408)) (rewrite (= (or $x3099 $x5408) $x9955)) $x9955)))
+(let ((@x10006 (unit-resolution (unit-resolution @x9962 @x3480 $x5408) (mp (hypothesis (not $x5238)) @x10003 $x5409) $x5407)))
+(let ((@x10007 ((_ th-lemma arith farkas -1 -1 1 1) @x6160 @x10006 (hypothesis $x4527) (unit-resolution @x9995 @x9992 $x6992) false)))
+(let ((@x10279 (unit-resolution (lemma @x10007 (or (not $x4527) $x5238)) (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x8001) $x4527)) @x10276 $x4527) $x5238)))
+(let ((@x10164 (unit-resolution (def-axiom (or (not $x10073) $x5237 (not $x10274))) (unit-resolution (def-axiom (or $x10274 (not $x5238))) @x10279 $x10274) (or (not $x10073) $x5237))))
+(unit-resolution (unit-resolution @x10164 (unit-resolution @x10020 @x3468 $x10073) $x5237) @x10120 false))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+
--- a/src/HOL/SMT_Examples/Boogie_Max.certs Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/SMT_Examples/Boogie_Max.certs Tue Mar 29 12:55:25 2022 +0200
@@ -1,4 +1,4 @@
-ae712ba60be9be1bab4bc3570ac5c4aec9bad512 778 0
+c35b5996e10ca92422b72151cf73d5012ace7376 778 0
unsat
((set-logic AUFLIA)
(declare-fun ?v0!3 () Int)
--- a/src/HOL/SMT_Examples/SMT_Examples.certs Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/SMT_Examples/SMT_Examples.certs Tue Mar 29 12:55:25 2022 +0200
@@ -1,11 +1,11 @@
-f4ff5c44833ca360a0e6110670545870e993732e 6 0
+a734af99f317b55130e169b140843e673d0bbf01 6 0
unsat
((set-logic AUFLIA)
(proof
(let ((@x30 (rewrite (= (not true) false))))
(mp (asserted (not true)) @x30 false))))
-44c9e70361e406cdaa5515db0484a14de1f3823e 7 0
+eb38970c345df6ae8f92f5d2a32e1df00c1810c4 7 0
unsat
((set-logic AUFLIA)
(proof
@@ -13,7 +13,7 @@
(let ((@x40 (trans @x36 (rewrite (= (not true) false)) (= (not (or p$ (not p$))) false))))
(mp (asserted (not (or p$ (not p$)))) @x40 false)))))
-642064746d4dfc4babb357dafe234a81ef017f2c 9 0
+90627d309f442a71678bb840dcccd56e1b045c47 9 0
unsat
((set-logic AUFLIA)
(proof
@@ -23,7 +23,7 @@
(let ((@x47 (trans @x43 (rewrite (= (not true) false)) (= (not (= (and p$ true) p$)) false))))
(mp (asserted (not (= (and p$ true) p$))) @x47 false)))))))
-0a1454d805d51972201b1f0614ae4d2b1ee0c238 13 0
+2e6261dc2fb735b96a2f84163499f5c9d8e8eedd 13 0
unsat
((set-logic AUFLIA)
(proof
@@ -37,7 +37,7 @@
(let (($x29 (or p$ q$)))
(mp (and-elim (not-or-elim @x44 (and $x29 (not p$))) $x29) @x58 false)))))))))))
-34112335b57502835b641cecdefffafb46f85d80 11 0
+fe66a69b0868f46c9e6ca7e18abaa9fea0c65469 11 0
unsat
((set-logic AUFLIA)
(proof
@@ -49,7 +49,7 @@
(let ((@x45 (trans (monotonicity (rewrite (= $x34 true)) (= $x35 (not true))) (rewrite (= (not true) false)) (= $x35 false))))
(mp (asserted $x35) @x45 false)))))))))
-20bc477eba70622207284dac695d9d5d493c254c 23 0
+b277fe65c25f9907a259feaedc5175c049c9c801 23 0
unsat
((set-logic AUFLIA)
(proof
@@ -73,7 +73,7 @@
(let ((@x58 (monotonicity (trans @x49 (rewrite (= (=> $x31 $x44) $x51)) (= $x37 $x51)) (= $x38 $x56))))
(mp (asserted $x38) (trans @x58 @x67 (= $x38 false)) false)))))))))))))))))))))
-31d9c9d3ff37ebd83ab46c7b87647ef17b2c57d5 24 0
+dff507d4f869feeb53f9c0e7c162387d22d810bc 24 0
unsat
((set-logic AUFLIA)
(proof
@@ -98,7 +98,7 @@
(let ((@x82 (trans (monotonicity @x75 (= $x37 (not true))) (rewrite (= (not true) false)) (= $x37 false))))
(mp (asserted $x37) @x82 false))))))))))))))))))))))
-330b2c9cc52cf5f35a134a2209b0d4127652f7c0 39 0
+fe2fe85fa0d71650d19542c615cfac479267b69e 39 0
unsat
((set-logic AUFLIA)
(proof
@@ -138,7 +138,7 @@
(let ((@x40 (mp (asserted (or a$ (or b$ (or c$ d$)))) (rewrite (= (or a$ (or b$ (or c$ d$))) $x37)) $x37)))
(mp @x40 @x202 false)))))))))))))))))))))))))))))))))))))
-ad87d7e797bdb9354f6592e3ce911c29af823c87 27 0
+8dc4f44af8f07f7b856e596119d1bf43f2c6acd5 27 0
unsat
((set-logic AUFLIA)
(proof
@@ -166,7 +166,7 @@
(let ((@x61 ((_ quant-inst a$ b$) $x149)))
(unit-resolution @x61 @x485 @x57 false)))))))))))))))))))
-475916706487c818c9d90b517b53e98cbd0b98a4 637 0
+fbb0a55c0a093161da67da5e523c4888aceb6463 637 0
unsat
((set-logic AUFLIA)
(proof
@@ -804,7 +804,7 @@
(let ((@x1722 (unit-resolution @x1662 (unit-resolution @x472 @x1718 $x467) (unit-resolution @x565 @x1715 $x482) $x355)))
(unit-resolution @x1647 @x1722 (unit-resolution @x472 @x1718 $x467) (unit-resolution @x565 @x1715 $x482) (unit-resolution @x480 @x1718 $x397) false)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-53d98ae38981e94d40d6d86fc0074ee3a2e0fb7e 38 0
+66bb17e2a985817e38bb524b89cc9e978af0b717 38 0
unsat
((set-logic AUFLIA)
(declare-fun ?v0!0 () Int)
@@ -843,7 +843,7 @@
(let ((@x79 (and-elim (mp @x72 @x77 (and $x48 $x63)) $x48)))
(unit-resolution @x79 @x81 false))))))))))))))))))))
-e22c0f9d8d283fe65facdddeef75c43b520c8702 53 0
+99dcee13708acddf74f37ffb7cd9ae6e8a0075ec 53 0
unsat
((set-logic AUFLIA)
(declare-fun ?v0!0 () A$)
@@ -897,7 +897,7 @@
(let ((@x161 ((_ quant-inst c$) $x160)))
(unit-resolution @x161 @x485 (unit-resolution @x525 @x485 $x517) false)))))))))))))))))))))))))))))))))))))))
-3b83f9f26b0c0bdbb99d25d8249a78edb7dbd8f3 53 0
+00c35e7818bb5885a6737b5ca032b22e4d0651de 53 0
unsat
((set-logic AUFLIA)
(declare-fun ?v0!3 () A$)
@@ -951,7 +951,15 @@
(let ((@x211 ((_ quant-inst c$) $x549)))
(unit-resolution @x211 @x199 (unit-resolution @x592 @x199 $x584) false)))))))))))))))))))))))))))))))))))))))
-c5dafcf16dd97b4d38e39a04bbc990e4ad5fdbd3 26 0
+c19ad9760d0e770b48c0b0ab02c85b7759923c37 7 0
+unsat
+((set-logic AUFLIA)
+(proof
+(let ((@x35 (monotonicity (rewrite (= (= 3 3) true)) (= (not (= 3 3)) (not true)))))
+(let ((@x39 (trans @x35 (rewrite (= (not true) false)) (= (not (= 3 3)) false))))
+(mp (asserted (not (= 3 3))) @x39 false)))))
+
+083a9501b1863f5626ecc25e47e5b4723fa35e4c 26 0
unsat
((set-logic AUFLIA)
(proof
@@ -978,15 +986,7 @@
(let ((@x70 ((_ quant-inst x$) $x156)))
(unit-resolution @x70 @x491 @x49 false)))))))))))))))))))
-c810fdd7e33dce88857a4a5d351d4d48aeec706d 7 0
-unsat
-((set-logic AUFLIA)
-(proof
-(let ((@x35 (monotonicity (rewrite (= (= 3 3) true)) (= (not (= 3 3)) (not true)))))
-(let ((@x39 (trans @x35 (rewrite (= (not true) false)) (= (not (= 3 3)) false))))
-(mp (asserted (not (= 3 3))) @x39 false)))))
-
-4405deb1e8af2d0b383b4c76fef214640ee54b60 7 0
+ca11536c17f1a809ef914163583a39e63cac09fe 7 0
unsat
((set-logic AUFLIRA)
(proof
@@ -994,7 +994,7 @@
(let ((@x39 (trans @x35 (rewrite (= (not true) false)) (= (not (= 3.0 3.0)) false))))
(mp (asserted (not (= 3.0 3.0))) @x39 false)))))
-9db6968bb918051eba4a8f252eb4d7b31abc0008 9 0
+2c3a6e6c7a46e7827f5375992c43691797675fb4 9 0
unsat
((set-logic AUFLIA)
(proof
@@ -1004,7 +1004,7 @@
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (+ 3 1) 4)) false))))
(mp (asserted (not (= (+ 3 1) 4))) @x48 false)))))))
-4236229b55c8c35ee3fdabff17499992a72bc2e9 16 0
+86d19ef9c3bc052a9b275d334060669ee12e3d9f 16 0
unsat
((set-logic AUFLIA)
(proof
@@ -1021,7 +1021,7 @@
(let ((@x63 (trans (monotonicity @x56 (= $x35 (not true))) (rewrite (= (not true) false)) (= $x35 false))))
(mp (asserted $x35) @x63 false))))))))))))))
-edfffa3c123ab0c63cd525084a50aa3c5ed5a484 11 0
+90702d41b7fbf1b5314911474ac4ef6b0a538702 11 0
unsat
((set-logic AUFLIA)
(proof
@@ -1033,7 +1033,20 @@
(let ((@x59 (trans @x55 (rewrite (= (not true) false)) (= (not (< 5 (ite (<= 3 8) 8 3))) false))))
(mp (asserted (not (< 5 (ite (<= 3 8) 8 3)))) @x59 false)))))))))
-f9514ad0d68d1d07ca6390dfeefcb474eb113622 88 0
+64a2205da8c28e8b966affffd8a102cee58f8182 12 0
+unsat
+((set-logic AUFLIA)
+(proof
+(let ((?x31 (p$ true)))
+(let (($x29 (< 2 3)))
+(let ((?x30 (p$ $x29)))
+(let (($x32 (= ?x30 ?x31)))
+(let ((@x42 (monotonicity (monotonicity (rewrite (= $x29 true)) $x32) (= $x32 (= ?x31 ?x31)))))
+(let ((@x49 (monotonicity (trans @x42 (rewrite (= (= ?x31 ?x31) true)) (= $x32 true)) (= (not $x32) (not true)))))
+(let ((@x53 (trans @x49 (rewrite (= (not true) false)) (= (not $x32) false))))
+(mp (asserted (not $x32)) @x53 false))))))))))
+
+55237afc0063a0033b90584d4ec259d5a3fd7fb2 88 0
unsat
((set-logic AUFLIRA)
(proof
@@ -1122,37 +1135,7 @@
(let ((@x234 (unit-resolution @x136 (unit-resolution @x138 (lemma @x231 (not $x134)) $x83) $x133)))
((_ th-lemma arith farkas -2 1 -1 -1 1) (unit-resolution @x138 (lemma @x231 (not $x134)) $x83) @x221 @x126 @x226 (unit-resolution @x159 @x234 $x149) false))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-dfe0238fb899e04c38457f444509fee29d6fc513 12 0
-unsat
-((set-logic AUFLIA)
-(proof
-(let ((?x31 (p$ true)))
-(let (($x29 (< 2 3)))
-(let ((?x30 (p$ $x29)))
-(let (($x32 (= ?x30 ?x31)))
-(let ((@x42 (monotonicity (monotonicity (rewrite (= $x29 true)) $x32) (= $x32 (= ?x31 ?x31)))))
-(let ((@x49 (monotonicity (trans @x42 (rewrite (= (= ?x31 ?x31) true)) (= $x32 true)) (= (not $x32) (not true)))))
-(let ((@x53 (trans @x49 (rewrite (= (not true) false)) (= (not $x32) false))))
-(mp (asserted (not $x32)) @x53 false))))))))))
-
-46bed4652ccbc7e1a58c0efb03590e49ee15643a 16 0
-unsat
-((set-logic AUFLIA)
-(proof
-(let (($x33 (< x$ 1)))
-(let ((?x37 (+ 3 x$)))
-(let (($x40 (<= 4 ?x37)))
-(let (($x43 (or $x40 $x33)))
-(let (($x46 (not $x43)))
-(let ((@x57 (monotonicity (rewrite (= $x40 (>= x$ 1))) (rewrite (= $x33 (not (>= x$ 1)))) (= $x43 (or (>= x$ 1) (not (>= x$ 1)))))))
-(let ((@x61 (trans @x57 (rewrite (= (or (>= x$ 1) (not (>= x$ 1))) true)) (= $x43 true))))
-(let ((@x68 (trans (monotonicity @x61 (= $x46 (not true))) (rewrite (= (not true) false)) (= $x46 false))))
-(let ((@x42 (monotonicity (rewrite (= (+ x$ 3) ?x37)) (= (<= 4 (+ x$ 3)) $x40))))
-(let ((@x48 (monotonicity (monotonicity @x42 (= (or (<= 4 (+ x$ 3)) $x33) $x43)) (= (not (or (<= 4 (+ x$ 3)) $x33)) $x46))))
-(let ((@x70 (trans @x48 @x68 (= (not (or (<= 4 (+ x$ 3)) $x33)) false))))
-(mp (asserted (not (or (<= 4 (+ x$ 3)) $x33))) @x70 false))))))))))))))
-
-ef89c4f1b53c97f5cf2e25105c9bb8f92779adb7 18 0
+75006e522c60f9ebc5a1fb2e97d7836a131ae07a 18 0
unsat
((set-logic AUFLIA)
(proof
@@ -1171,7 +1154,24 @@
(let ((@x83 (mp (asserted $x58) (trans (monotonicity @x66 (= $x58 $x67)) @x80 (= $x58 $x70)) $x70)))
(mp @x83 @x90 false))))))))))))))))
-77b18cda19c5fffd05747f5d9240aebf138e344d 11 0
+6e50a07d4733dc226c34529a521dbca5a402a4bc 16 0
+unsat
+((set-logic AUFLIA)
+(proof
+(let (($x33 (< x$ 1)))
+(let ((?x37 (+ 3 x$)))
+(let (($x40 (<= 4 ?x37)))
+(let (($x43 (or $x40 $x33)))
+(let (($x46 (not $x43)))
+(let ((@x57 (monotonicity (rewrite (= $x40 (>= x$ 1))) (rewrite (= $x33 (not (>= x$ 1)))) (= $x43 (or (>= x$ 1) (not (>= x$ 1)))))))
+(let ((@x61 (trans @x57 (rewrite (= (or (>= x$ 1) (not (>= x$ 1))) true)) (= $x43 true))))
+(let ((@x68 (trans (monotonicity @x61 (= $x46 (not true))) (rewrite (= (not true) false)) (= $x46 false))))
+(let ((@x42 (monotonicity (rewrite (= (+ x$ 3) ?x37)) (= (<= 4 (+ x$ 3)) $x40))))
+(let ((@x48 (monotonicity (monotonicity @x42 (= (or (<= 4 (+ x$ 3)) $x33) $x43)) (= (not (or (<= 4 (+ x$ 3)) $x33)) $x46))))
+(let ((@x70 (trans @x48 @x68 (= (not (or (<= 4 (+ x$ 3)) $x33)) false))))
+(mp (asserted (not (or (<= 4 (+ x$ 3)) $x33))) @x70 false))))))))))))))
+
+d6bf5820bec5d7ead5e685100a8340a2aff662a5 11 0
unsat
((set-logic AUFLIA)
(proof
@@ -1183,7 +1183,7 @@
(let ((@x57 (trans @x53 (rewrite (= (not true) false)) (= (not (not (= (+ 2 2) 5))) false))))
(mp (asserted (not (not (= (+ 2 2) 5)))) @x57 false)))))))))
-42e94ca5e1eca47637b565820dbeb8f0c3f0cfbe 19 0
+fed37fb0fa432306b32161f6e523d7ad41178ad7 19 0
unsat
((set-logic AUFLIRA)
(proof
@@ -1203,7 +1203,7 @@
(let ((@x67 (mp (asserted (not (< a$ 0.0))) @x66 $x58)))
((_ th-lemma arith farkas 7 3/2 1) @x67 @x52 @x40 false)))))))))))))))))
-0be06fbd57421bc1e05bb76b65b7d775f798777d 22 0
+a02473f328cfd27bbc383138b9013877d7082823 22 0
unsat
((set-logic AUFLIA)
(proof
@@ -1226,7 +1226,7 @@
(let ((@x78 (trans (monotonicity @x71 (= $x40 (not true))) (rewrite (= (not true) false)) (= $x40 false))))
(mp (asserted $x40) @x78 false))))))))))))))))))))
-d419775b36e6eb4a3ae9788e677f2c6bd6596508 159 0
+a84aad2a73200dc9fcbd27c3e18e7303dda77b8a 159 0
unsat
((set-logic AUFLIA)
(proof
@@ -1386,7 +1386,28 @@
(let ((@x433 (mp (not-or-elim @x205 (not $x57)) @x432 $x422)))
(unit-resolution @x433 @x488 (mp @x478 @x480 $x44) false)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-8eb414a6a3d3ad6d5e5412da8fced2ed014e80e6 878 0
+f4dbaa29f0930512af8d8cd1b59c69b2a627ac2b 20 0
+unsat
+((set-logic AUFLIRA)
+(proof
+(let ((?x30 (* 2.0 x$)))
+(let ((?x32 (+ ?x30 1.0)))
+(let ((?x28 (+ x$ x$)))
+(let (($x33 (< ?x28 ?x32)))
+(let (($x34 (or false $x33)))
+(let (($x35 (or $x33 $x34)))
+(let (($x36 (not $x35)))
+(let ((@x67 (monotonicity (rewrite (= (< ?x30 (+ 1.0 ?x30)) true)) (= (not (< ?x30 (+ 1.0 ?x30))) (not true)))))
+(let ((@x71 (trans @x67 (rewrite (= (not true) false)) (= (not (< ?x30 (+ 1.0 ?x30))) false))))
+(let ((?x40 (+ 1.0 ?x30)))
+(let (($x43 (< ?x30 ?x40)))
+(let ((@x45 (monotonicity (rewrite (= ?x28 ?x30)) (rewrite (= ?x32 ?x40)) (= $x33 $x43))))
+(let ((@x52 (trans (monotonicity @x45 (= $x34 (or false $x43))) (rewrite (= (or false $x43) $x43)) (= $x34 $x43))))
+(let ((@x59 (trans (monotonicity @x45 @x52 (= $x35 (or $x43 $x43))) (rewrite (= (or $x43 $x43) $x43)) (= $x35 $x43))))
+(let ((@x62 (monotonicity @x59 (= $x36 (not $x43)))))
+(mp (asserted $x36) (trans @x62 @x71 (= $x36 false)) false))))))))))))))))))
+
+55e13b57ccd7045141601604fad3c105a2794c19 878 0
unsat
((set-logic AUFLIA)
(proof
@@ -2265,28 +2286,7 @@
(let ((@x1972 (unit-resolution @x623 (unit-resolution @x625 (unit-resolution @x1804 @x1969 $x823) $x363) $x620)))
(unit-resolution @x926 @x1972 @x1966 false))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-acc0a8679fada55f807fa45c47b89f2dc4f0cc19 20 0
-unsat
-((set-logic AUFLIRA)
-(proof
-(let ((?x30 (* 2.0 x$)))
-(let ((?x32 (+ ?x30 1.0)))
-(let ((?x28 (+ x$ x$)))
-(let (($x33 (< ?x28 ?x32)))
-(let (($x34 (or false $x33)))
-(let (($x35 (or $x33 $x34)))
-(let (($x36 (not $x35)))
-(let ((@x67 (monotonicity (rewrite (= (< ?x30 (+ 1.0 ?x30)) true)) (= (not (< ?x30 (+ 1.0 ?x30))) (not true)))))
-(let ((@x71 (trans @x67 (rewrite (= (not true) false)) (= (not (< ?x30 (+ 1.0 ?x30))) false))))
-(let ((?x40 (+ 1.0 ?x30)))
-(let (($x43 (< ?x30 ?x40)))
-(let ((@x45 (monotonicity (rewrite (= ?x28 ?x30)) (rewrite (= ?x32 ?x40)) (= $x33 $x43))))
-(let ((@x52 (trans (monotonicity @x45 (= $x34 (or false $x43))) (rewrite (= (or false $x43) $x43)) (= $x34 $x43))))
-(let ((@x59 (trans (monotonicity @x45 @x52 (= $x35 (or $x43 $x43))) (rewrite (= (or $x43 $x43) $x43)) (= $x35 $x43))))
-(let ((@x62 (monotonicity @x59 (= $x36 (not $x43)))))
-(mp (asserted $x36) (trans @x62 @x71 (= $x36 false)) false))))))))))))))))))
-
-f2ecc8d02c730cd119d0a8be84bc5bf03ed0f98b 113 0
+faad33b2f84ccaf1e2790bec1489d8a4c6b742a9 113 0
unsat
((set-logic <null>)
(proof
@@ -2400,7 +2400,7 @@
(let ((@x74 (mp (asserted $x36) @x73 $x67)))
((_ th-lemma arith farkas -1 1 1) @x74 (unit-resolution ((_ th-lemma arith) (or false $x305)) (true-axiom true) $x305) @x332 false))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-2b90909cb79318775a857f179e3de90ebc09360b 112 0
+054d158bf38c0362154ef81cac0cc403f00fe2d7 112 0
unsat
((set-logic <null>)
(proof
@@ -2513,7 +2513,7 @@
(let ((@x70 (mp (asserted (not (< (+ x$ (+ ?x29 ?x29)) (+ x$ 3)))) @x69 $x63)))
((_ th-lemma arith farkas -1 1 1) @x70 @x331 (unit-resolution ((_ th-lemma arith) (or false $x319)) (true-axiom true) $x319) false)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-9e8bd1ccee1598c51f1f67ef729241282bee8975 32 0
+62c4b764a3697fd9b8f73fa2aa0e093ddab1835d 32 0
unsat
((set-logic <null>)
(proof
@@ -2546,7 +2546,7 @@
(let ((@x117 (unit-resolution ((_ th-lemma arith assign-bounds 1) (or $x102 (not $x100))) (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x95) $x100)) @x98 $x100) $x102)))
(unit-resolution ((_ th-lemma arith triangle-eq) (or $x28 (not $x101) (not $x102))) @x117 @x110 @x30 false))))))))))))))))))))))))))))))
-e975f8a0748f1ab04103c4bce1c336d67c9ddc7f 12 0
+cbe2ad2be523199183bc675f533d4cb9b488ff3c 12 0
unsat
((set-logic AUFLIA)
(proof
@@ -2559,7 +2559,7 @@
(let ((@x46 (trans @x42 (rewrite (= (not true) false)) (= $x29 false))))
(mp (asserted $x29) @x46 false)))))))))
-693a453fa295b294a12bfe4fc2548b88f93af81d 12 0
+9161d7d93581f36f7a468a5d2ec4a4f93f49bded 12 0
unsat
((set-logic AUFLIRA)
(proof
@@ -2572,7 +2572,7 @@
(let ((@x46 (trans @x42 (rewrite (= (not true) false)) (= $x29 false))))
(mp (asserted $x29) @x46 false)))))))))
-da9745bea43c7d7581f4f1a982ea54a4f665c150 22 0
+a6a1ed7d9ca2dde49ccb419a5c671f6cb54cc6db 22 0
unsat
((set-logic AUFLIA)
(proof
@@ -2595,7 +2595,7 @@
(let ((@x49 (mp~ (mp (asserted $x30) (monotonicity @x40 (= $x30 $x41)) $x41) @x48 $x46)))
(mp (mp @x49 @x54 $x52) (rewrite (= $x52 false)) false)))))))))))))
-d1b4498be99afb5671326f37a46458328653a778 22 0
+8d4ad6d4dd3d24ade2dee49ac9ccd7dc4eb5a126 22 0
unsat
((set-logic AUFLIRA)
(proof
@@ -2618,7 +2618,7 @@
(let ((@x48 (mp~ (mp (asserted $x29) (monotonicity @x39 (= $x29 $x40)) $x40) @x47 $x45)))
(mp (mp @x48 @x53 $x51) (rewrite (= $x51 false)) false)))))))))))))
-47b866c871f79f79347596e68e9f0a6717e9f9ae 31 0
+129394c26840800397440346d2be8228f88432bf 31 0
unsat
((set-logic AUFLIA)
(declare-fun ?v0!0 () Int)
@@ -2650,7 +2650,7 @@
(let ((@x74 (mp (mp~ (mp (asserted $x32) @x51 $x49) @x67 $x63) (quant-intro (rewrite (= $x60 $x54)) (= $x63 $x71)) $x71)))
(mp @x74 (rewrite (= $x71 false)) false))))))))))))))))))
-f8895baf351fb020e98a9589d9032cb37daead5c 22 0
+874267db756bf9fbfe33e5bcc1c8d446bb786208 22 0
unsat
((set-logic AUFLIA)
(declare-fun ?v1!0 () Int)
@@ -2673,7 +2673,7 @@
(let ((@x70 (trans (symm (and-elim @x65 (= ?v0!1 0)) (= 0 ?v0!1)) @x68 (= 0 ?v1!0))))
(mp (trans @x70 @x67 (= 0 1)) (rewrite (= (= 0 1) false)) false))))))))))))))))
-c6ae686b0a4faf5664648d4de310ae4c5a1de7ec 55 0
+a1990b1f2b40273080891d8099cbf8be7a3bff08 55 0
unsat
((set-logic AUFLIA)
(proof
@@ -2729,7 +2729,7 @@
(let ((@x50 (monotonicity @x47 (= $x36 $x48))))
(mp (asserted $x36) (trans @x50 @x101 (= $x36 false)) false)))))))))))))))))))))))))))
-326e4de3d7358a1ce81c3b38c63746b57dca63fa 42 0
+714d9704b498d8f69a61aec61e9ab9fbb7c490e0 42 0
unsat
((set-logic AUFLIA)
(proof
@@ -2772,7 +2772,7 @@
(let ((@x60 (monotonicity (quant-intro @x54 (= $x37 $x55)) (= $x38 $x58))))
(mp (asserted $x38) (trans @x60 @x97 (= $x38 false)) false))))))))))))))))))))))))))
-8948c34be010e83eefa29947fdeb482617c77a6d 32 0
+e41ae3e6173a8a45d2e1293e87000046d27321f4 32 0
unsat
((set-logic AUFLIA)
(proof
@@ -2805,7 +2805,7 @@
(let ((@x53 (monotonicity @x50 (= $x37 $x51))))
(mp (asserted $x37) (trans @x53 @x76 (= $x37 false)) false)))))))))))))))))))
-933b139b2a650c91137f9f7c9b004c8f0d9521d1 43 0
+349db302a77644aba10e708ffed825b615312604 43 0
unsat
((set-logic AUFLIA)
(declare-fun ?v0!1 () Int)
@@ -2849,7 +2849,7 @@
(let ((@x103 (not-or-elim @x102 $x81)))
(unit-resolution (unit-resolution ((_ th-lemma arith triangle-eq) (or $x87 $x84 $x93)) @x103 (or $x87 $x93)) @x106 @x105 false)))))))))))))))))))))))))))))))))
-b488c2ec223d613631144f2dcdf7e5867fbbb258 46 0
+b9376e0ba9a01161166fc671c9275872a16f237f 46 0
unsat
((set-logic AUFLIA)
(declare-fun ?v0!0 () Int)
@@ -2896,7 +2896,7 @@
(let ((@x109 (lemma @x108 $x84)))
(unit-resolution (unit-resolution (def-axiom (or $x88 $x83 $x86)) @x92 (or $x83 $x86)) (unit-resolution ((_ th-lemma arith farkas 1 1) (or $x93 $x85)) @x109 $x93) (unit-resolution ((_ th-lemma arith farkas 1 1) (or $x87 $x85)) @x109 $x87) false)))))))))))))))))))))))))))))))))
-da417520952f17eeef46bee85072a2ecad83fc46 31 0
+71f3749978d74887262db57fc45e685f1b58a1fe 31 0
unsat
((set-logic AUFLIA)
(proof
@@ -2928,7 +2928,7 @@
(let ((@x66 (mp~ (mp (asserted $x33) @x60 $x56) (nnf-pos (refl (~ $x53 $x53)) (~ $x56 $x56)) $x56)))
(unit-resolution @x66 @x464 false)))))))))))))))))))))))))
-623edcfe9613936b08dbdc0269a0746af35c83aa 62 0
+416c05cb2acf4da101c1b31aeeea71fb83ecd69a 62 0
unsat
((set-logic AUFLIA)
(declare-fun ?v0!1 () Int)
@@ -2991,7 +2991,7 @@
(let ((@x515 (unit-resolution (def-axiom (or z3name!0 $x220)) (unit-resolution @x131 @x238 $x88) $x220)))
(unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x220) (>= ?x96 3))) @x515 @x245 false))))))))))))))))))))))))))))))))))))))))))))))))))))))
-42b10c0c66daf8181b08c93c22f4ecaa3220e964 39 0
+742e196ba0cf000357e0842d69c2a9fdddbb46b5 39 0
unsat
((set-logic AUFLIA)
(proof
@@ -3031,7 +3031,53 @@
(let ((@x75 (trans @x71 (rewrite (= (not (not $x61)) $x61)) (= $x39 $x61))))
(mp (asserted $x39) (trans @x75 @x85 (= $x39 false)) false)))))))))))))))))))))))
-a32c06c0a3798bb49bc988f268a9de26ca0e273b 52 0
+d772bd969a6ce5898850d584bb29d59c8304fae6 45 0
+unsat
+((set-logic AUFLIRA)
+(declare-fun ?v1!1 () Int)
+(declare-fun ?v2!0 () Real)
+(proof
+(let (($x105 (<= ?v1!1 (- 1))))
+(let (($x107 (or (not (and (not (<= ?v1!1 0)) (not (<= ?v2!0 0.0)))) (not $x105))))
+(let (($x88 (forall ((?v1 Int) (?v2 Real) )(! (or (not (and (not (<= ?v1 0)) (not (<= ?v2 0.0)))) (not (<= ?v1 (- 1)))) :qid k!4))
+))
+(let (($x91 (not $x88)))
+(let (($x37 (exists ((?v0 Int) )(! (forall ((?v1 Int) (?v2 Real) )(! (let (($x31 (and (< 0 ?v1) (< 0.0 ?v2))))
+(=> $x31 (< (- 1) ?v1))) :qid k!4))
+ :qid k!4))
+))
+(let (($x27 (not $x37)))
+(let (($x54 (forall ((?v1 Int) (?v2 Real) )(! (let (($x42 (< (- 1) ?v1)))
+(or (not (and (< 0 ?v1) (< 0.0 ?v2))) $x42)) :qid k!4))
+))
+(let (($x85 (or (not (and (not (<= ?1 0)) (not (<= ?0 0.0)))) (not (<= ?1 (- 1))))))
+(let (($x42 (< (- 1) ?1)))
+(let (($x49 (or (not (and (< 0 ?1) (< 0.0 ?0))) $x42)))
+(let (($x79 (= (not (and (< 0 ?1) (< 0.0 ?0))) (not (and (not (<= ?1 0)) (not (<= ?0 0.0)))))))
+(let (($x31 (and (< 0 ?1) (< 0.0 ?0))))
+(let ((@x77 (monotonicity (rewrite (= (< 0 ?1) (not (<= ?1 0)))) (rewrite (= (< 0.0 ?0) (not (<= ?0 0.0)))) (= $x31 (and (not (<= ?1 0)) (not (<= ?0 0.0)))))))
+(let ((@x87 (monotonicity (monotonicity @x77 $x79) (rewrite (= $x42 (not (<= ?1 (- 1))))) (= $x49 $x85))))
+(let ((@x93 (monotonicity (quant-intro @x87 (= $x54 $x88)) (= (not $x54) $x91))))
+(let (($x57 (exists ((?v0 Int) )(! (forall ((?v1 Int) (?v2 Real) )(! (let (($x42 (< (- 1) ?v1)))
+(or (not (and (< 0 ?v1) (< 0.0 ?v2))) $x42)) :qid k!4))
+ :qid k!4))
+))
+(let (($x36 (forall ((?v1 Int) (?v2 Real) )(! (let (($x31 (and (< 0 ?v1) (< 0.0 ?v2))))
+(=> $x31 (< (- 1) ?v1))) :qid k!4))
+))
+(let ((@x44 (monotonicity (rewrite (= (- 1) (- 1))) (= (< (- 1) ?1) $x42))))
+(let ((@x47 (monotonicity @x44 (= (=> $x31 (< (- 1) ?1)) (=> $x31 $x42)))))
+(let ((@x53 (trans @x47 (rewrite (= (=> $x31 $x42) $x49)) (= (=> $x31 (< (- 1) ?1)) $x49))))
+(let ((@x63 (trans (quant-intro (quant-intro @x53 (= $x36 $x54)) (= $x37 $x57)) (elim-unused (= $x57 $x54)) (= $x37 $x54))))
+(let ((@x95 (trans (monotonicity @x63 (= $x27 (not $x54))) @x93 (= $x27 $x91))))
+(let ((@x111 (mp~ (mp (asserted $x27) @x95 $x91) (sk (~ $x91 (not $x107))) (not $x107))))
+(let ((@x117 (not-or-elim @x111 $x105)))
+(let (($x99 (<= ?v1!1 0)))
+(let (($x100 (not $x99)))
+(let ((@x115 (and-elim (not-or-elim @x111 (and $x100 (not (<= ?v2!0 0.0)))) $x100)))
+(unit-resolution ((_ th-lemma arith farkas 1 1) (or (not $x105) $x99)) @x115 @x117 false))))))))))))))))))))))))))))))
+
+aa1f4d1a333204b725ef94e682d891f7a12a55b7 52 0
unsat
((set-logic AUFLIA)
(declare-fun ?v1!1 () Int)
@@ -3084,53 +3130,7 @@
(let ((@x117 (and-elim (not-or-elim @x112 (and $x100 $x102)) $x102)))
((_ th-lemma arith farkas 1 1 1) @x117 @x116 @x118 false)))))))))))))))))))))))))))))))))))
-dd6dcae1cf0d709ea38f21e7928a94234cce9953 45 0
-unsat
-((set-logic AUFLIRA)
-(declare-fun ?v1!1 () Int)
-(declare-fun ?v2!0 () Real)
-(proof
-(let (($x105 (<= ?v1!1 (- 1))))
-(let (($x107 (or (not (and (not (<= ?v1!1 0)) (not (<= ?v2!0 0.0)))) (not $x105))))
-(let (($x88 (forall ((?v1 Int) (?v2 Real) )(! (or (not (and (not (<= ?v1 0)) (not (<= ?v2 0.0)))) (not (<= ?v1 (- 1)))) :qid k!4))
-))
-(let (($x91 (not $x88)))
-(let (($x37 (exists ((?v0 Int) )(! (forall ((?v1 Int) (?v2 Real) )(! (let (($x31 (and (< 0 ?v1) (< 0.0 ?v2))))
-(=> $x31 (< (- 1) ?v1))) :qid k!4))
- :qid k!4))
-))
-(let (($x27 (not $x37)))
-(let (($x54 (forall ((?v1 Int) (?v2 Real) )(! (let (($x42 (< (- 1) ?v1)))
-(or (not (and (< 0 ?v1) (< 0.0 ?v2))) $x42)) :qid k!4))
-))
-(let (($x85 (or (not (and (not (<= ?1 0)) (not (<= ?0 0.0)))) (not (<= ?1 (- 1))))))
-(let (($x42 (< (- 1) ?1)))
-(let (($x49 (or (not (and (< 0 ?1) (< 0.0 ?0))) $x42)))
-(let (($x79 (= (not (and (< 0 ?1) (< 0.0 ?0))) (not (and (not (<= ?1 0)) (not (<= ?0 0.0)))))))
-(let (($x31 (and (< 0 ?1) (< 0.0 ?0))))
-(let ((@x77 (monotonicity (rewrite (= (< 0 ?1) (not (<= ?1 0)))) (rewrite (= (< 0.0 ?0) (not (<= ?0 0.0)))) (= $x31 (and (not (<= ?1 0)) (not (<= ?0 0.0)))))))
-(let ((@x87 (monotonicity (monotonicity @x77 $x79) (rewrite (= $x42 (not (<= ?1 (- 1))))) (= $x49 $x85))))
-(let ((@x93 (monotonicity (quant-intro @x87 (= $x54 $x88)) (= (not $x54) $x91))))
-(let (($x57 (exists ((?v0 Int) )(! (forall ((?v1 Int) (?v2 Real) )(! (let (($x42 (< (- 1) ?v1)))
-(or (not (and (< 0 ?v1) (< 0.0 ?v2))) $x42)) :qid k!4))
- :qid k!4))
-))
-(let (($x36 (forall ((?v1 Int) (?v2 Real) )(! (let (($x31 (and (< 0 ?v1) (< 0.0 ?v2))))
-(=> $x31 (< (- 1) ?v1))) :qid k!4))
-))
-(let ((@x44 (monotonicity (rewrite (= (- 1) (- 1))) (= (< (- 1) ?1) $x42))))
-(let ((@x47 (monotonicity @x44 (= (=> $x31 (< (- 1) ?1)) (=> $x31 $x42)))))
-(let ((@x53 (trans @x47 (rewrite (= (=> $x31 $x42) $x49)) (= (=> $x31 (< (- 1) ?1)) $x49))))
-(let ((@x63 (trans (quant-intro (quant-intro @x53 (= $x36 $x54)) (= $x37 $x57)) (elim-unused (= $x57 $x54)) (= $x37 $x54))))
-(let ((@x95 (trans (monotonicity @x63 (= $x27 (not $x54))) @x93 (= $x27 $x91))))
-(let ((@x111 (mp~ (mp (asserted $x27) @x95 $x91) (sk (~ $x91 (not $x107))) (not $x107))))
-(let ((@x117 (not-or-elim @x111 $x105)))
-(let (($x99 (<= ?v1!1 0)))
-(let (($x100 (not $x99)))
-(let ((@x115 (and-elim (not-or-elim @x111 (and $x100 (not (<= ?v2!0 0.0)))) $x100)))
-(unit-resolution ((_ th-lemma arith farkas 1 1) (or (not $x105) $x99)) @x115 @x117 false))))))))))))))))))))))))))))))
-
-3eba422177cb1a37290b37910c836f326aae81a7 110 0
+658167ac53fd7dc613987fbbc3cae6d25535a8f0 110 0
unsat
((set-logic AUFLIA)
(proof
@@ -3241,7 +3241,7 @@
(let ((@x125 (mp (mp @x110 (quant-intro @x115 (= $x107 $x116)) $x116) (quant-intro (rewrite (= $x113 $x104)) (= $x116 $x122)) $x122)))
(mp (mp @x125 @x156 $x152) @x180 false))))))))))))))))))))))))))))))))))))))))))))))
-cf55ed5d5e3fbc48182cb17ef320bda064703b0c 23 0
+ec42cd87fa1228ca157b6059baa64bb1eb437d48 23 0
unsat
((set-logic AUFLIA)
(declare-fun ?v1!0 () Int)
@@ -3265,7 +3265,7 @@
(let ((@x73 (not-or-elim @x70 $x62)))
(unit-resolution ((_ th-lemma arith farkas 1 1) (or (not $x62) (not $x64))) @x73 @x74 false)))))))))))))))))
-47c99edbec21b5ca2d3944c6aeff150e7def6e0b 26 0
+e0b55f4468e9d2470373689927a3a9ab1ac26d87 26 0
unsat
((set-logic <null>)
(proof
@@ -3292,7 +3292,7 @@
(let ((@x73 (and-elim (not-or-elim (mp (asserted $x35) @x69 $x65) $x52) $x49)))
((_ th-lemma arith farkas 1 1 1) @x73 @x72 @x74 false))))))))))))))))))))))))
-d19214170f32152ce058c34f982fe481da9e80ff 26 0
+14471384dcc76beb9e9e05cc2b020e277bc6dec7 26 0
unsat
((set-logic <null>)
(proof
@@ -3319,7 +3319,7 @@
(let ((@x92 (trans @x88 (rewrite (= (not true) false)) (= $x39 false))))
(mp (asserted $x39) @x92 false))))))))))))))))))))))))
-6338e51142f708a9900dc576fef69c89a46c7f58 23 0
+251ff9654bce931059979b6f6ebb89ed7adb1f46 23 0
unsat
((set-logic <null>)
(proof
@@ -3343,7 +3343,7 @@
(let ((@x82 (trans (monotonicity @x75 (= $x39 (not true))) (rewrite (= (not true) false)) (= $x39 false))))
(mp (asserted $x39) @x82 false)))))))))))))))))))))
-760eefae5bab2da16eec8daa0cc978ac4329de62 51 0
+eaadcda722e0f2320e16a98d649f8db4cfbfc7ee 51 0
unsat
((set-logic <null>)
(proof
@@ -3395,7 +3395,7 @@
(let ((@x152 (trans (monotonicity @x145 (= $x52 (not true))) (rewrite (= (not true) false)) (= $x52 false))))
(mp (asserted $x52) @x152 false)))))))))))))))))))))))))))))))))))))))))))))))))
-12dc1d685081b4234b95f046bcf34da3681d7c1e 12 0
+97fbe4b306ce04830904de9c18fd2eef3d92ff14 12 0
unsat
((set-logic AUFLIA)
(proof
@@ -3408,7 +3408,7 @@
(let ((@x37 (rewrite (= $x34 $x32))))
(mp (asserted $x34) (trans @x37 @x39 (= $x34 false)) false))))))))))
-f2f21091bf9deb3a38832129de5449a872415f16 23 0
+c87ffca7b379061d55a2b7af6a0c81bd41a8c4dc 23 0
unsat
((set-logic AUFLIA)
(proof
@@ -3432,7 +3432,7 @@
(let ((@x70 (not-or-elim (mp (asserted $x36) (trans @x44 @x66 (= $x36 $x64)) $x64) $x45)))
(unit-resolution ((_ th-lemma arith farkas 1 1) $x61) @x70 @x71 false)))))))))))))))))))))
-dbe03d888710bfc170c0322723b6fe3d138c2de7 22 0
+61914002c318176ad9a312fe098a2c60b9897e26 22 0
unsat
((set-logic AUFLIA)
(proof
@@ -3455,7 +3455,7 @@
(let ((@x50 (monotonicity @x47 (= $x36 (not (< 0 (ite $x32 0 1)))))))
(mp (asserted $x36) (trans @x50 @x73 (= $x36 false)) false))))))))))))))))))))
-30cc2762602a7a30eb3ec186f081112e21381d17 37 0
+8b73614ff24556cd5cdf357f7135fa992f035643 37 0
unsat
((set-logic AUFLIA)
(proof
@@ -3493,7 +3493,7 @@
(let ((@x119 (not-or-elim (mp (asserted $x42) @x115 $x111) $x86)))
(unit-resolution ((_ th-lemma arith farkas 1 1) (or (not $x86) (not $x91))) @x119 @x126 false)))))))))))))))))))))))))))))))))))
-093b4bdc35e8040f16c5dca022c87a6f58a6b797 64 0
+89694a345fbe7a5ab77e70a58babfff7e73da738 64 0
unsat
((set-logic AUFLIA)
(proof
@@ -3558,7 +3558,74 @@
(let ((@x526 (unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x229) $x237)) (unit-resolution (def-axiom (or $x76 $x229)) @x533 $x229) $x237)))
((_ th-lemma arith farkas 1 1 1) (unit-resolution @x545 (unit-resolution @x552 @x565 $x234) $x337) @x533 @x526 false))))))))))))))))))))))))))))))))))))))))))))))))))))))
-c03c5a5464afed237861dfdc891e37969d566ebb 264 0
+b5fca6c6782410deb719c8da4ee5b4bae9e51cbe 23 0
+unsat
+((set-logic AUFLIA)
+(proof
+(let (($x40 (= x$ a$)))
+(let ((?x36 (pair$ x$ y$)))
+(let ((?x37 (fst$ ?x36)))
+(let (($x39 (= ?x37 a$)))
+(let ((@x50 (monotonicity (rewrite (= (=> $x39 $x40) (or (not $x39) $x40))) (= (not (=> $x39 $x40)) (not (or (not $x39) $x40))))))
+(let ((@x51 (not-or-elim (mp (asserted (not (=> $x39 $x40))) @x50 (not (or (not $x39) $x40))) $x39)))
+(let (($x56 (= ?x37 x$)))
+(let (($x478 (forall ((?v0 A$) (?v1 B$) )(! (= (fst$ (pair$ ?v0 ?v1)) ?v0) :pattern ( (pair$ ?v0 ?v1) ) :qid k!12))
+))
+(let (($x32 (forall ((?v0 A$) (?v1 B$) )(! (= (fst$ (pair$ ?v0 ?v1)) ?v0) :qid k!12))
+))
+(let (($x31 (= (fst$ (pair$ ?1 ?0)) ?1)))
+(let ((@x55 (mp~ (asserted $x32) (nnf-pos (refl (~ $x31 $x31)) (~ $x32 $x32)) $x32)))
+(let ((@x483 (mp @x55 (quant-intro (refl (= $x31 $x31)) (= $x32 $x478)) $x478)))
+(let (($x62 (or (not $x478) $x56)))
+(let ((@x149 ((_ quant-inst x$ y$) $x62)))
+(let ((@x150 (trans (symm (unit-resolution @x149 @x483 $x56) (= x$ ?x37)) @x51 $x40)))
+(let ((@x54 (not-or-elim (mp (asserted (not (=> $x39 $x40))) @x50 (not (or (not $x39) $x40))) (not $x40))))
+(unit-resolution @x54 @x150 false)))))))))))))))))))
+
+d8b36ba641e8fd3207b81ac452cde17bed425388 42 0
+unsat
+((set-logic AUFLIA)
+(proof
+(let ((?x59 (snd$a p2$)))
+(let ((?x58 (fst$a p1$)))
+(let (($x60 (= ?x58 ?x59)))
+(let ((?x55 (pair$ y$ x$)))
+(let (($x56 (= p2$ ?x55)))
+(let ((?x52 (pair$a x$ y$)))
+(let (($x53 (= p1$ ?x52)))
+(let (($x57 (and $x53 $x56)))
+(let ((@x70 (monotonicity (rewrite (= (=> $x57 $x60) (or (not $x57) $x60))) (= (not (=> $x57 $x60)) (not (or (not $x57) $x60))))))
+(let ((@x71 (not-or-elim (mp (asserted (not (=> $x57 $x60))) @x70 (not (or (not $x57) $x60))) $x57)))
+(let ((@x74 (and-elim @x71 $x56)))
+(let ((@x504 (symm (monotonicity @x74 (= ?x59 (snd$a ?x55))) (= (snd$a ?x55) ?x59))))
+(let ((?x100 (snd$a ?x55)))
+(let (($x185 (= ?x100 x$)))
+(let (($x534 (forall ((?v0 B$) (?v1 A$) )(! (= (snd$a (pair$ ?v0 ?v1)) ?v1) :pattern ( (pair$ ?v0 ?v1) ) :qid k!21))
+))
+(let (($x47 (forall ((?v0 B$) (?v1 A$) )(! (= (snd$a (pair$ ?v0 ?v1)) ?v1) :qid k!21))
+))
+(let (($x46 (= (snd$a (pair$ ?1 ?0)) ?0)))
+(let ((@x96 (mp~ (asserted $x47) (nnf-pos (refl (~ $x46 $x46)) (~ $x47 $x47)) $x47)))
+(let ((@x539 (mp @x96 (quant-intro (refl (= $x46 $x46)) (= $x47 $x534)) $x534)))
+(let (($x190 (or (not $x534) $x185)))
+(let ((@x191 ((_ quant-inst y$ x$) $x190)))
+(let ((?x187 (fst$a ?x52)))
+(let (($x188 (= ?x187 x$)))
+(let (($x522 (forall ((?v0 A$) (?v1 B$) )(! (= (fst$a (pair$a ?v0 ?v1)) ?v0) :pattern ( (pair$a ?v0 ?v1) ) :qid k!19))
+))
+(let (($x39 (forall ((?v0 A$) (?v1 B$) )(! (= (fst$a (pair$a ?v0 ?v1)) ?v0) :qid k!19))
+))
+(let (($x38 (= (fst$a (pair$a ?1 ?0)) ?1)))
+(let ((@x90 (mp~ (asserted $x39) (nnf-pos (refl (~ $x38 $x38)) (~ $x39 $x39)) $x39)))
+(let ((@x527 (mp @x90 (quant-intro (refl (= $x38 $x38)) (= $x39 $x522)) $x522)))
+(let (($x162 (or (not $x522) $x188)))
+(let ((@x292 ((_ quant-inst x$ y$) $x162)))
+(let ((@x505 (trans (monotonicity (and-elim @x71 $x53) (= ?x58 ?x187)) (unit-resolution @x292 @x527 $x188) (= ?x58 x$))))
+(let ((@x489 (trans @x505 (symm (unit-resolution @x191 @x539 $x185) (= x$ ?x100)) (= ?x58 ?x100))))
+(let ((@x76 (not-or-elim (mp (asserted (not (=> $x57 $x60))) @x70 (not (or (not $x57) $x60))) (not $x60))))
+(unit-resolution @x76 (trans @x489 @x504 $x60) false))))))))))))))))))))))))))))))))))))
+
+6bc8eb1ffd043b94d9f9af6ecb9089d7d193f8db 264 0
unsat
((set-logic AUFLIA)
(declare-fun ?v1!0 (Nat$) Nat$)
@@ -3823,74 +3890,7 @@
(let ((@x133 (not-or-elim (mp (asserted $x96) @x129 $x125) (not (>= ?x89 1)))))
((_ th-lemma arith farkas -4 1 1) @x133 (unit-resolution (def-axiom (or $x683 $x668)) @x479 $x668) @x551 false))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-60d94e0cd230c2f830228f101b7544d16a19dfd6 23 0
-unsat
-((set-logic AUFLIA)
-(proof
-(let (($x40 (= x$ a$)))
-(let ((?x36 (pair$ x$ y$)))
-(let ((?x37 (fst$ ?x36)))
-(let (($x39 (= ?x37 a$)))
-(let ((@x50 (monotonicity (rewrite (= (=> $x39 $x40) (or (not $x39) $x40))) (= (not (=> $x39 $x40)) (not (or (not $x39) $x40))))))
-(let ((@x51 (not-or-elim (mp (asserted (not (=> $x39 $x40))) @x50 (not (or (not $x39) $x40))) $x39)))
-(let (($x56 (= ?x37 x$)))
-(let (($x478 (forall ((?v0 A$) (?v1 B$) )(! (= (fst$ (pair$ ?v0 ?v1)) ?v0) :pattern ( (pair$ ?v0 ?v1) ) :qid k!12))
-))
-(let (($x32 (forall ((?v0 A$) (?v1 B$) )(! (= (fst$ (pair$ ?v0 ?v1)) ?v0) :qid k!12))
-))
-(let (($x31 (= (fst$ (pair$ ?1 ?0)) ?1)))
-(let ((@x55 (mp~ (asserted $x32) (nnf-pos (refl (~ $x31 $x31)) (~ $x32 $x32)) $x32)))
-(let ((@x483 (mp @x55 (quant-intro (refl (= $x31 $x31)) (= $x32 $x478)) $x478)))
-(let (($x62 (or (not $x478) $x56)))
-(let ((@x149 ((_ quant-inst x$ y$) $x62)))
-(let ((@x150 (trans (symm (unit-resolution @x149 @x483 $x56) (= x$ ?x37)) @x51 $x40)))
-(let ((@x54 (not-or-elim (mp (asserted (not (=> $x39 $x40))) @x50 (not (or (not $x39) $x40))) (not $x40))))
-(unit-resolution @x54 @x150 false)))))))))))))))))))
-
-abc6aef55894d3d204d52d3df341120d4c77014e 42 0
-unsat
-((set-logic AUFLIA)
-(proof
-(let ((?x59 (snd$a p2$)))
-(let ((?x58 (fst$a p1$)))
-(let (($x60 (= ?x58 ?x59)))
-(let ((?x55 (pair$ y$ x$)))
-(let (($x56 (= p2$ ?x55)))
-(let ((?x52 (pair$a x$ y$)))
-(let (($x53 (= p1$ ?x52)))
-(let (($x57 (and $x53 $x56)))
-(let ((@x70 (monotonicity (rewrite (= (=> $x57 $x60) (or (not $x57) $x60))) (= (not (=> $x57 $x60)) (not (or (not $x57) $x60))))))
-(let ((@x71 (not-or-elim (mp (asserted (not (=> $x57 $x60))) @x70 (not (or (not $x57) $x60))) $x57)))
-(let ((@x74 (and-elim @x71 $x56)))
-(let ((@x504 (symm (monotonicity @x74 (= ?x59 (snd$a ?x55))) (= (snd$a ?x55) ?x59))))
-(let ((?x100 (snd$a ?x55)))
-(let (($x185 (= ?x100 x$)))
-(let (($x534 (forall ((?v0 B$) (?v1 A$) )(! (= (snd$a (pair$ ?v0 ?v1)) ?v1) :pattern ( (pair$ ?v0 ?v1) ) :qid k!21))
-))
-(let (($x47 (forall ((?v0 B$) (?v1 A$) )(! (= (snd$a (pair$ ?v0 ?v1)) ?v1) :qid k!21))
-))
-(let (($x46 (= (snd$a (pair$ ?1 ?0)) ?0)))
-(let ((@x96 (mp~ (asserted $x47) (nnf-pos (refl (~ $x46 $x46)) (~ $x47 $x47)) $x47)))
-(let ((@x539 (mp @x96 (quant-intro (refl (= $x46 $x46)) (= $x47 $x534)) $x534)))
-(let (($x190 (or (not $x534) $x185)))
-(let ((@x191 ((_ quant-inst y$ x$) $x190)))
-(let ((?x187 (fst$a ?x52)))
-(let (($x188 (= ?x187 x$)))
-(let (($x522 (forall ((?v0 A$) (?v1 B$) )(! (= (fst$a (pair$a ?v0 ?v1)) ?v0) :pattern ( (pair$a ?v0 ?v1) ) :qid k!19))
-))
-(let (($x39 (forall ((?v0 A$) (?v1 B$) )(! (= (fst$a (pair$a ?v0 ?v1)) ?v0) :qid k!19))
-))
-(let (($x38 (= (fst$a (pair$a ?1 ?0)) ?1)))
-(let ((@x90 (mp~ (asserted $x39) (nnf-pos (refl (~ $x38 $x38)) (~ $x39 $x39)) $x39)))
-(let ((@x527 (mp @x90 (quant-intro (refl (= $x38 $x38)) (= $x39 $x522)) $x522)))
-(let (($x162 (or (not $x522) $x188)))
-(let ((@x292 ((_ quant-inst x$ y$) $x162)))
-(let ((@x505 (trans (monotonicity (and-elim @x71 $x53) (= ?x58 ?x187)) (unit-resolution @x292 @x527 $x188) (= ?x58 x$))))
-(let ((@x489 (trans @x505 (symm (unit-resolution @x191 @x539 $x185) (= x$ ?x100)) (= ?x58 ?x100))))
-(let ((@x76 (not-or-elim (mp (asserted (not (=> $x57 $x60))) @x70 (not (or (not $x57) $x60))) (not $x60))))
-(unit-resolution @x76 (trans @x489 @x504 $x60) false))))))))))))))))))))))))))))))))))))
-
-d251f21fb3589ab6ed61bce83e553bbcd5ee429c 51 0
+5e4cb132f817e2256c61e4ec223d6759992674e9 51 0
unsat
((set-logic AUFLIA)
(proof
@@ -3942,7 +3942,7 @@
(let ((@x78 (not-or-elim (mp (asserted (not (=> $x54 $x62))) @x72 (not (or (not $x54) $x62))) (not $x62))))
(unit-resolution @x78 @x462 false)))))))))))))))))))))))))))))))))))))))))))
-481375169802669da2461e9c7ce3d0e407b7bc16 24 0
+a7a12d91db289166a47592e85e858193337352b3 24 0
unsat
((set-logic AUFLIA)
(proof
@@ -3967,7 +3967,7 @@
(let ((@x80 (mp (not-or-elim @x70 (not $x44)) (rewrite (= (not $x44) $x77)) $x77)))
(mp @x80 @x93 false))))))))))))))))))))))
-847a42093e0c7ebac5b356b94c79945004bf96e9 45 0
+007c741fde1e8e6491cbd3c04ab271d45f47868f 45 0
unsat
((set-logic AUFLIA)
(proof
@@ -4013,7 +4013,7 @@
(let ((@x496 ((_ quant-inst x$) $x163)))
(unit-resolution @x496 @x508 (unit-resolution @x84 (lemma @x495 $x47) $x73) false)))))))))))))))))))))))))))))))))
-7db89748bff125dc0b538776ae3b570548832266 11 0
+1e460cc19bd04463ff2cfe3d4f84064a301cbc7a 11 0
unsat
((set-logic AUFLIA)
(proof
@@ -4025,19 +4025,19 @@
(let ((@x42 (trans (monotonicity (rewrite (= $x31 true)) (= $x32 (not true))) (rewrite (= (not true) false)) (= $x32 false))))
(mp (asserted $x32) @x42 false))))))))
-f60c850fda8f88ddfddcac265e198fed2855c01b 11 0
+45adc4aad0a65892aab62fc883141746ca482192 11 0
unsat
((set-logic AUFLIA)
(proof
-(let (($x29 (forall ((?v0 A$) )(! (g$ ?v0) :qid k!7))
+(let (($x29 (forall ((?v0 A$) )(! (p$ ?v0) :qid k!6))
))
-(let (($x30 (f$ $x29)))
-(let (($x31 (=> $x30 true)))
+(let (($x30 (not $x29)))
+(let (($x31 (or $x29 $x30)))
(let (($x32 (not $x31)))
(let ((@x42 (trans (monotonicity (rewrite (= $x31 true)) (= $x32 (not true))) (rewrite (= (not true) false)) (= $x32 false))))
(mp (asserted $x32) @x42 false))))))))
-f9e10e513fd0588f5d6c281610f4889bb0668a34 46 0
+dc9c699374a745fbbd7639b7a8a0668e412a34bb 46 0
unsat
((set-logic AUFLIA)
(proof
@@ -4084,7 +4084,7 @@
(let ((@x478 (mp ((_ quant-inst 3 42) (or (not $x52) $x171)) (trans (monotonicity @x131 $x137) (rewrite (= $x134 $x134)) $x137) $x134)))
(unit-resolution (unit-resolution @x478 @x78 $x168) (mp @x77 @x472 (not $x168)) false)))))))))))))))))))))))))))))))))))
-88fa92ffd8ea964848bdbb197defe1efa7fdd2e7 75 0
+85b5834715b5e4e1024c8904c8b28a8b2abf704f 75 0
unsat
((set-logic AUFLIA)
(proof
@@ -4160,19 +4160,19 @@
(let ((@x82 (asserted $x81)))
(unit-resolution @x82 @x466 false))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-f06072929c8d142e53379b87462f703ce8c8fca8 11 0
+41140cb6c9910268908cf109c82533c28c91e219 11 0
unsat
((set-logic AUFLIA)
(proof
-(let (($x29 (forall ((?v0 A$) )(! (p$ ?v0) :qid k!6))
+(let (($x29 (forall ((?v0 A$) )(! (g$ ?v0) :qid k!7))
))
-(let (($x30 (not $x29)))
-(let (($x31 (or $x29 $x30)))
+(let (($x30 (f$ $x29)))
+(let (($x31 (=> $x30 true)))
(let (($x32 (not $x31)))
(let ((@x42 (trans (monotonicity (rewrite (= $x31 true)) (= $x32 (not true))) (rewrite (= (not true) false)) (= $x32 false))))
(mp (asserted $x32) @x42 false))))))))
-c36d2d391586c8a6d1e6b8e7a73bd245b4c2def7 109 0
+4244be0c19336abc9efe7cacc29f63cb8c90bbc9 109 0
unsat
((set-logic AUFLIA)
(proof
@@ -4282,7 +4282,7 @@
(let ((@x81 (asserted $x80)))
(unit-resolution @x81 (trans @x397 ((_ th-lemma arith eq-propagate 1 1 -4 -4) @x410 @x422 @x428 @x438 (= ?x490 6)) $x79) false)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-703387d92be4ef7e4f1bc652b2328a3b33f53830 348 0
+341760516a6945174e657494d3881bda7f0b1219 348 0
unsat
((set-logic <null>)
(proof
@@ -4631,7 +4631,7 @@
(let ((@x895 (unit-resolution ((_ th-lemma arith triangle-eq) (or $x117 $x807 (not $x673))) @x891 (or $x807 (not $x673)))))
((_ th-lemma arith farkas -2 -2 1 -1 1 1) (unit-resolution @x895 @x889 $x807) @x485 @x745 @x488 (unit-resolution ((_ th-lemma arith triangle-eq) (or $x134 $x679)) @x584 $x679) (unit-resolution ((_ th-lemma arith) (or false $x564)) @x26 $x564) false)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-9c0ac00b9444829edc9751ffc537b6a41af5144b 64 0
+e7854e1b6f2371461d17d5751e574a95a9d2644d 64 0
unsat
((set-logic AUFLIA)
(proof
@@ -4696,7 +4696,7 @@
(let ((@x570 (mp ((_ quant-inst (sup$ ?x108) (sup$ ?x111) (sup$ ?x108)) (or $x251 (or $x160 $x247 $x117))) (rewrite (= (or $x251 (or $x160 $x247 $x117)) $x252)) $x252)))
(unit-resolution @x570 @x584 @x114 @x116 @x119 false)))))))))))))))))))))))))))))))))))))))
-3d46cc152552934c74a9b7e72f528acd2da80760 25 0
+53256a17fda698860255ca06ca403057a7847e4b 25 0
unsat
((set-logic AUFLIA)
(proof
@@ -4722,7 +4722,7 @@
(let ((@x258 ((_ quant-inst 1) $x257)))
(unit-resolution @x258 @x620 @x145 false))))))))))))))))))
-83f2e868ac360af426c9844684088eb79f31b9ad 101 0
+9b9a3d55dfc209ebb876a6eb9fcfbca8df90f899 101 0
unsat
((set-logic AUFLIA)
(proof
--- a/src/HOL/SMT_Examples/SMT_Examples_Verit.certs Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/SMT_Examples/SMT_Examples_Verit.certs Tue Mar 29 12:55:25 2022 +0200
@@ -1,16 +1,16 @@
-95a654bfff554e647800fe77ff2ba30347402e24 9 0
+ae54fcb9dfe8ac3652092131f8427bebbd05402c 9 0
unsat
-(assume a0 (! (not true) :named @p_1))
+(assume axiom0 (! (not true) :named @p_1))
(step t2 (cl (! (= @p_1 false) :named @p_2)) :rule not_simplify)
(step t3 (cl (! (not @p_2) :named @p_4) (! (not @p_1) :named @p_3) false) :rule equiv_pos2)
(step t4 (cl (not @p_3) true) :rule not_not)
(step t5 (cl @p_4 true false) :rule th_resolution :premises (t4 t3))
-(step t6 (cl false) :rule th_resolution :premises (a0 t2 t5))
+(step t6 (cl false) :rule th_resolution :premises (axiom0 t2 t5))
(step t7 (cl (not false)) :rule false)
(step t8 (cl) :rule resolution :premises (t6 t7))
-064ce4a7bbfaa11e79501270fc838c420c703181 12 0
+ef08efbe2a4fd690de84a4f2f024c061b9c72554 12 0
unsat
-(assume a0 (! (not (! (or p$ (not p$)) :named @p_1)) :named @p_2))
+(assume axiom0 (! (not (! (or p$ (not p$)) :named @p_1)) :named @p_2))
(step t2 (cl (= @p_1 true)) :rule or_simplify)
(step t3 (cl (= @p_2 (! (not true) :named @p_3))) :rule cong :premises (t2))
(step t4 (cl (= @p_3 false)) :rule not_simplify)
@@ -18,12 +18,12 @@
(step t6 (cl (! (not @p_4) :named @p_6) (! (not @p_2) :named @p_5) false) :rule equiv_pos2)
(step t7 (cl (not @p_5) @p_1) :rule not_not)
(step t8 (cl @p_6 @p_1 false) :rule th_resolution :premises (t7 t6))
-(step t9 (cl false) :rule th_resolution :premises (a0 t5 t8))
+(step t9 (cl false) :rule th_resolution :premises (axiom0 t5 t8))
(step t10 (cl (not false)) :rule false)
(step t11 (cl) :rule resolution :premises (t9 t10))
-d4888d8ad473d347e6ab6d509244a7583a7babd4 17 0
+b753d4b1e8a27c132b8339803a4e586242a9eed9 17 0
unsat
-(assume a0 (! (not (! (= (! (and p$ true) :named @p_1) p$) :named @p_3)) :named @p_5))
+(assume axiom0 (! (not (! (= (! (and p$ true) :named @p_1) p$) :named @p_3)) :named @p_5))
(step t2 (cl (= @p_1 (! (and p$) :named @p_2))) :rule and_simplify)
(step t3 (cl (= @p_2 p$)) :rule and_simplify)
(step t4 (cl @p_3) :rule trans :premises (t2 t3))
@@ -36,17 +36,17 @@
(step t11 (cl (! (not @p_7) :named @p_9) (! (not @p_5) :named @p_8) false) :rule equiv_pos2)
(step t12 (cl (not @p_8) @p_3) :rule not_not)
(step t13 (cl @p_9 @p_3 false) :rule th_resolution :premises (t12 t11))
-(step t14 (cl false) :rule th_resolution :premises (a0 t10 t13))
+(step t14 (cl false) :rule th_resolution :premises (axiom0 t10 t13))
(step t15 (cl (not false)) :rule false)
(step t16 (cl) :rule resolution :premises (t14 t15))
-337e2bffaa7ce02e1ab772f593ffdbb243d5e449 15 0
+3aef0472082a0952dd5c0083a53b60410a65fb15 15 0
unsat
-(assume a0 (! (not (! (=> (! (and (! (or p$ q$) :named @p_8) (! (not p$) :named @p_9)) :named @p_2) q$) :named @p_6)) :named @p_1))
+(assume axiom0 (! (not (! (=> (! (and (! (or p$ q$) :named @p_8) (! (not p$) :named @p_9)) :named @p_2) q$) :named @p_6)) :named @p_1))
(step t2 (cl (! (= @p_1 (! (and @p_2 (! (not q$) :named @p_10)) :named @p_4)) :named @p_3)) :rule bool_simplify)
(step t3 (cl (! (not @p_3) :named @p_7) (! (not @p_1) :named @p_5) @p_4) :rule equiv_pos2)
(step t4 (cl (not @p_5) @p_6) :rule not_not)
(step t5 (cl @p_7 @p_6 @p_4) :rule th_resolution :premises (t4 t3))
-(step t6 (cl @p_4) :rule th_resolution :premises (a0 t2 t5))
+(step t6 (cl @p_4) :rule th_resolution :premises (axiom0 t2 t5))
(step t7 (cl (! (= @p_4 (! (and @p_8 @p_9 @p_10) :named @p_12)) :named @p_11)) :rule ac_simp)
(step t8 (cl (not @p_11) (not @p_4) @p_12) :rule equiv_pos2)
(step t9 (cl @p_12) :rule th_resolution :premises (t6 t7 t8))
@@ -55,35 +55,35 @@
(step t12 (cl @p_9) :rule and :premises (t9))
(step t13 (cl @p_10) :rule and :premises (t9))
(step t14 (cl) :rule resolution :premises (t11 t12 t13))
-10d84ea161ad298d0be18624997ac708a1f26ba1 12 0
+a4d4a57bc38d3365a195600a7f29533d2f85c08f 12 0
unsat
-(assume a0 (! (not (! (=> (! (or (and a$ b$) (and c$ d$)) :named @p_1) @p_1) :named @p_6)) :named @p_2))
+(assume axiom0 (! (not (! (=> (! (or (and a$ b$) (and c$ d$)) :named @p_1) @p_1) :named @p_6)) :named @p_2))
(step t2 (cl (! (= @p_2 (! (and @p_1 (not @p_1)) :named @p_4)) :named @p_3)) :rule bool_simplify)
(step t3 (cl (! (not @p_3) :named @p_7) (! (not @p_2) :named @p_5) @p_4) :rule equiv_pos2)
(step t4 (cl (not @p_5) @p_6) :rule not_not)
(step t5 (cl @p_7 @p_6 @p_4) :rule th_resolution :premises (t4 t3))
-(step t6 (cl @p_4) :rule th_resolution :premises (a0 t2 t5))
+(step t6 (cl @p_4) :rule th_resolution :premises (axiom0 t2 t5))
(step t7 (cl (! (= @p_4 false) :named @p_8)) :rule and_simplify)
(step t8 (cl (not @p_8) (not @p_4) false) :rule equiv_pos2)
(step t9 (cl false) :rule th_resolution :premises (t6 t7 t8))
(step t10 (cl (not false)) :rule false)
(step t11 (cl) :rule resolution :premises (t9 t10))
-9edc95cdafbdeeaebc87884ea4bcc53a0e812967 12 0
+f8a0f590e48624e657155c162af04ac8e33a73bd 12 0
unsat
-(assume a0 (! (not (! (=> (! (or (and p1$ p2$) p3$) :named @p_2) (! (or (! (=> p1$ (or (and p3$ p2$) (and p1$ p3$))) :named @p_10) p1$) :named @p_3)) :named @p_7)) :named @p_1))
+(assume axiom0 (! (not (! (=> (! (or (and p1$ p2$) p3$) :named @p_2) (! (or (! (=> p1$ (or (and p3$ p2$) (and p1$ p3$))) :named @p_10) p1$) :named @p_3)) :named @p_7)) :named @p_1))
(step t2 (cl (! (= @p_1 (! (and @p_2 (! (not @p_3) :named @p_9)) :named @p_5)) :named @p_4)) :rule bool_simplify)
(step t3 (cl (! (not @p_4) :named @p_8) (! (not @p_1) :named @p_6) @p_5) :rule equiv_pos2)
(step t4 (cl (not @p_6) @p_7) :rule not_not)
(step t5 (cl @p_8 @p_7 @p_5) :rule th_resolution :premises (t4 t3))
-(step t6 (cl @p_5) :rule th_resolution :premises (a0 t2 t5))
+(step t6 (cl @p_5) :rule th_resolution :premises (axiom0 t2 t5))
(step t7 (cl @p_9) :rule and :premises (t6))
(step t8 (cl (not @p_10)) :rule not_or :premises (t7))
(step t9 (cl p1$) :rule not_implies1 :premises (t8))
(step t10 (cl (not p1$)) :rule not_or :premises (t7))
(step t11 (cl) :rule resolution :premises (t10 t9))
-f8dcc171fd9ab79494da2e1c5e4771e075fd9d51 29 0
+2815beadf2b8b0fa1acb410b1f6d788eddf2d2da 29 0
unsat
-(assume a0 (! (not (! (= (! (= (! (= (! (= (! (= (! (= (! (= (! (= (! (= p$ p$) :named @p_1) p$) :named @p_2) p$) :named @p_4) p$) :named @p_5) p$) :named @p_6) p$) :named @p_7) p$) :named @p_8) p$) :named @p_9) p$) :named @p_10)) :named @p_11))
+(assume axiom0 (! (not (! (= (! (= (! (= (! (= (! (= (! (= (! (= (! (= (! (= p$ p$) :named @p_1) p$) :named @p_2) p$) :named @p_4) p$) :named @p_5) p$) :named @p_6) p$) :named @p_7) p$) :named @p_8) p$) :named @p_9) p$) :named @p_10)) :named @p_11))
(step t2 (cl (= @p_1 true)) :rule equiv_simplify)
(step t3 (cl (= @p_2 (! (= true p$) :named @p_3))) :rule cong :premises (t2))
(step t4 (cl (= @p_3 p$)) :rule equiv_simplify)
@@ -108,13 +108,73 @@
(step t23 (cl (! (not @p_13) :named @p_15) (! (not @p_11) :named @p_14) false) :rule equiv_pos2)
(step t24 (cl (not @p_14) @p_10) :rule not_not)
(step t25 (cl @p_15 @p_10 false) :rule th_resolution :premises (t24 t23))
-(step t26 (cl false) :rule th_resolution :premises (a0 t22 t25))
+(step t26 (cl false) :rule th_resolution :premises (axiom0 t22 t25))
(step t27 (cl (not false)) :rule false)
(step t28 (cl) :rule resolution :premises (t26 t27))
-a331481eed4f18a666baadda4e1010ca7a295ccf 38 0
+324d7169fc854a8e46b44966c6d6829b24a059d5 59 0
unsat
-(assume a0 (! (forall ((?v0 A$) (?v1 A$)) (! (= (! (symm_f$ ?v0 ?v1) :named @p_2) (! (symm_f$ ?v1 ?v0) :named @p_6)) :named @p_8)) :named @p_1))
-(assume a1 (! (not (! (and (! (= a$ a$) :named @p_19) (! (= (symm_f$ a$ b$) (symm_f$ b$ a$)) :named @p_21)) :named @p_20)) :named @p_24))
+(assume axiom0 (! (or a$ (or b$ (or c$ d$))) :named @p_1))
+(assume axiom2 (! (or (! (not (! (or a$ (! (and c$ (! (not c$) :named @p_40)) :named @p_4)) :named @p_5)) :named @p_8) b$) :named @p_9))
+(assume axiom3 (! (or (! (not (! (and b$ (! (or x$ (not x$)) :named @p_13)) :named @p_14)) :named @p_17) c$) :named @p_18))
+(assume axiom4 (! (or (! (not (! (or d$ false) :named @p_22)) :named @p_24) c$) :named @p_25))
+(assume axiom5 (! (not (! (or c$ (! (and (! (not p$) :named @p_34) (! (or p$ (! (and q$ (not q$)) :named @p_29)) :named @p_30)) :named @p_33)) :named @p_36)) :named @p_39))
+(step t6 (cl (! (= @p_1 (! (or a$ b$ c$ d$) :named @p_3)) :named @p_2)) :rule ac_simp)
+(step t7 (cl (not @p_2) (not @p_1) @p_3) :rule equiv_pos2)
+(step t8 (cl @p_3) :rule th_resolution :premises (axiom0 t6 t7))
+(step t9 (cl (= @p_4 false)) :rule and_simplify)
+(step t10 (cl (= @p_5 (! (or a$ false) :named @p_6))) :rule cong :premises (t9))
+(step t11 (cl (= @p_6 (! (or a$) :named @p_7))) :rule or_simplify)
+(step t12 (cl (= @p_7 a$)) :rule or_simplify)
+(step t13 (cl (= @p_5 a$)) :rule trans :premises (t10 t11 t12))
+(step t14 (cl (= @p_8 (! (not a$) :named @p_10))) :rule cong :premises (t13))
+(step t15 (cl (! (= @p_9 (! (or @p_10 b$) :named @p_12)) :named @p_11)) :rule cong :premises (t14))
+(step t16 (cl (not @p_11) (not @p_9) @p_12) :rule equiv_pos2)
+(step t17 (cl @p_12) :rule th_resolution :premises (axiom2 t15 t16))
+(step t18 (cl (= @p_13 true)) :rule or_simplify)
+(step t19 (cl (= @p_14 (! (and b$ true) :named @p_15))) :rule cong :premises (t18))
+(step t20 (cl (= @p_15 (! (and b$) :named @p_16))) :rule and_simplify)
+(step t21 (cl (= @p_16 b$)) :rule and_simplify)
+(step t22 (cl (= @p_14 b$)) :rule trans :premises (t19 t20 t21))
+(step t23 (cl (= @p_17 (! (not b$) :named @p_19))) :rule cong :premises (t22))
+(step t24 (cl (! (= @p_18 (! (or @p_19 c$) :named @p_21)) :named @p_20)) :rule cong :premises (t23))
+(step t25 (cl (not @p_20) (not @p_18) @p_21) :rule equiv_pos2)
+(step t26 (cl @p_21) :rule th_resolution :premises (axiom3 t24 t25))
+(step t27 (cl (= @p_22 (! (or d$) :named @p_23))) :rule or_simplify)
+(step t28 (cl (= @p_23 d$)) :rule or_simplify)
+(step t29 (cl (= @p_22 d$)) :rule trans :premises (t27 t28))
+(step t30 (cl (= @p_24 (! (not d$) :named @p_26))) :rule cong :premises (t29))
+(step t31 (cl (! (= @p_25 (! (or @p_26 c$) :named @p_28)) :named @p_27)) :rule cong :premises (t30))
+(step t32 (cl (not @p_27) (not @p_25) @p_28) :rule equiv_pos2)
+(step t33 (cl @p_28) :rule th_resolution :premises (axiom4 t31 t32))
+(step t34 (cl (= @p_29 false)) :rule and_simplify)
+(step t35 (cl (= @p_30 (! (or p$ false) :named @p_31))) :rule cong :premises (t34))
+(step t36 (cl (= @p_31 (! (or p$) :named @p_32))) :rule or_simplify)
+(step t37 (cl (= @p_32 p$)) :rule or_simplify)
+(step t38 (cl (= @p_30 p$)) :rule trans :premises (t35 t36 t37))
+(step t39 (cl (= @p_33 (! (and @p_34 p$) :named @p_35))) :rule cong :premises (t38))
+(step t40 (cl (= @p_35 false)) :rule and_simplify)
+(step t41 (cl (= @p_33 false)) :rule trans :premises (t39 t40))
+(step t42 (cl (= @p_36 (! (or c$ false) :named @p_37))) :rule cong :premises (t41))
+(step t43 (cl (= @p_37 (! (or c$) :named @p_38))) :rule or_simplify)
+(step t44 (cl (= @p_38 c$)) :rule or_simplify)
+(step t45 (cl (= @p_36 c$)) :rule trans :premises (t42 t43 t44))
+(step t46 (cl (! (= @p_39 @p_40) :named @p_41)) :rule cong :premises (t45))
+(step t47 (cl (! (not @p_41) :named @p_43) (! (not @p_39) :named @p_42) @p_40) :rule equiv_pos2)
+(step t48 (cl (not @p_42) @p_36) :rule not_not)
+(step t49 (cl @p_43 @p_36 @p_40) :rule th_resolution :premises (t48 t47))
+(step t50 (cl @p_40) :rule th_resolution :premises (axiom5 t46 t49))
+(step t51 (cl a$ b$ c$ d$) :rule or :premises (t8))
+(step t52 (cl @p_10 b$) :rule or :premises (t17))
+(step t53 (cl @p_19 c$) :rule or :premises (t26))
+(step t54 (cl @p_26 c$) :rule or :premises (t33))
+(step t55 (cl @p_19) :rule resolution :premises (t53 t50))
+(step t56 (cl @p_26) :rule resolution :premises (t54 t50))
+(step t57 (cl a$) :rule resolution :premises (t51 t55 t50 t56))
+(step t58 (cl) :rule resolution :premises (t52 t55 t57))
+e724b7ec8c17b26e1986911ee66a23de60e69502 38 0
+unsat
+(assume axiom0 (! (forall ((?v0 A$) (?v1 A$)) (! (= (! (symm_f$ ?v0 ?v1) :named @p_2) (! (symm_f$ ?v1 ?v0) :named @p_6)) :named @p_8)) :named @p_1))
+(assume axiom1 (! (not (! (and (! (= a$ a$) :named @p_19) (! (= (symm_f$ a$ b$) (symm_f$ b$ a$)) :named @p_21)) :named @p_20)) :named @p_24))
(anchor :step t3 :args ((:= (?v0 A$) veriT_vr0) (:= (?v1 A$) veriT_vr1)))
(step t3.t1 (cl (! (= ?v0 veriT_vr0) :named @p_5)) :rule refl)
(step t3.t2 (cl (! (= ?v1 veriT_vr1) :named @p_4)) :rule refl)
@@ -125,7 +185,7 @@
(step t3.t7 (cl (= @p_8 (! (= @p_3 @p_7) :named @p_9))) :rule cong :premises (t3.t3 t3.t6))
(step t3 (cl (! (= @p_1 (! (forall ((veriT_vr0 A$) (veriT_vr1 A$)) @p_9) :named @p_11)) :named @p_10)) :rule bind)
(step t4 (cl (not @p_10) (not @p_1) @p_11) :rule equiv_pos2)
-(step t5 (cl @p_11) :rule th_resolution :premises (a0 t3 t4))
+(step t5 (cl @p_11) :rule th_resolution :premises (axiom0 t3 t4))
(anchor :step t6 :args ((:= (veriT_vr0 A$) veriT_vr2) (:= (veriT_vr1 A$) veriT_vr3)))
(step t6.t1 (cl (! (= veriT_vr0 veriT_vr2) :named @p_14)) :rule refl)
(step t6.t2 (cl (! (= veriT_vr1 veriT_vr3) :named @p_13)) :rule refl)
@@ -146,296 +206,171 @@
(step t15 (cl (! (not @p_25) :named @p_28) (! (not @p_24) :named @p_27) @p_26) :rule equiv_pos2)
(step t16 (cl (not @p_27) @p_20) :rule not_not)
(step t17 (cl @p_28 @p_20 @p_26) :rule th_resolution :premises (t16 t15))
-(step t18 (cl @p_26) :rule th_resolution :premises (a1 t14 t17))
+(step t18 (cl @p_26) :rule th_resolution :premises (axiom1 t14 t17))
(step t19 (cl (or (! (not @p_18) :named @p_29) @p_21)) :rule forall_inst :args ((:= veriT_vr2 a$) (:= veriT_vr3 b$)))
(step t20 (cl @p_29 @p_21) :rule or :premises (t19))
(step t21 (cl) :rule resolution :premises (t20 t8 t18))
-ef250e7a4e9499952e8416cff69ed029a37c7aa3 59 0
-unsat
-(assume a0 (! (or a$ (or b$ (or c$ d$))) :named @p_1))
-(assume a2 (! (or (! (not (! (or a$ (! (and c$ (! (not c$) :named @p_40)) :named @p_4)) :named @p_5)) :named @p_8) b$) :named @p_9))
-(assume a3 (! (or (! (not (! (and b$ (! (or x$ (not x$)) :named @p_13)) :named @p_14)) :named @p_17) c$) :named @p_18))
-(assume a4 (! (or (! (not (! (or d$ false) :named @p_22)) :named @p_24) c$) :named @p_25))
-(assume a5 (! (not (! (or c$ (! (and (! (not p$) :named @p_34) (! (or p$ (! (and q$ (not q$)) :named @p_29)) :named @p_30)) :named @p_33)) :named @p_36)) :named @p_39))
-(step t6 (cl (! (= @p_1 (! (or a$ b$ c$ d$) :named @p_3)) :named @p_2)) :rule ac_simp)
-(step t7 (cl (not @p_2) (not @p_1) @p_3) :rule equiv_pos2)
-(step t8 (cl @p_3) :rule th_resolution :premises (a0 t6 t7))
-(step t9 (cl (= @p_4 false)) :rule and_simplify)
-(step t10 (cl (= @p_5 (! (or a$ false) :named @p_6))) :rule cong :premises (t9))
-(step t11 (cl (= @p_6 (! (or a$) :named @p_7))) :rule or_simplify)
-(step t12 (cl (= @p_7 a$)) :rule or_simplify)
-(step t13 (cl (= @p_5 a$)) :rule trans :premises (t10 t11 t12))
-(step t14 (cl (= @p_8 (! (not a$) :named @p_10))) :rule cong :premises (t13))
-(step t15 (cl (! (= @p_9 (! (or @p_10 b$) :named @p_12)) :named @p_11)) :rule cong :premises (t14))
-(step t16 (cl (not @p_11) (not @p_9) @p_12) :rule equiv_pos2)
-(step t17 (cl @p_12) :rule th_resolution :premises (a2 t15 t16))
-(step t18 (cl (= @p_13 true)) :rule or_simplify)
-(step t19 (cl (= @p_14 (! (and b$ true) :named @p_15))) :rule cong :premises (t18))
-(step t20 (cl (= @p_15 (! (and b$) :named @p_16))) :rule and_simplify)
-(step t21 (cl (= @p_16 b$)) :rule and_simplify)
-(step t22 (cl (= @p_14 b$)) :rule trans :premises (t19 t20 t21))
-(step t23 (cl (= @p_17 (! (not b$) :named @p_19))) :rule cong :premises (t22))
-(step t24 (cl (! (= @p_18 (! (or @p_19 c$) :named @p_21)) :named @p_20)) :rule cong :premises (t23))
-(step t25 (cl (not @p_20) (not @p_18) @p_21) :rule equiv_pos2)
-(step t26 (cl @p_21) :rule th_resolution :premises (a3 t24 t25))
-(step t27 (cl (= @p_22 (! (or d$) :named @p_23))) :rule or_simplify)
-(step t28 (cl (= @p_23 d$)) :rule or_simplify)
-(step t29 (cl (= @p_22 d$)) :rule trans :premises (t27 t28))
-(step t30 (cl (= @p_24 (! (not d$) :named @p_26))) :rule cong :premises (t29))
-(step t31 (cl (! (= @p_25 (! (or @p_26 c$) :named @p_28)) :named @p_27)) :rule cong :premises (t30))
-(step t32 (cl (not @p_27) (not @p_25) @p_28) :rule equiv_pos2)
-(step t33 (cl @p_28) :rule th_resolution :premises (a4 t31 t32))
-(step t34 (cl (= @p_29 false)) :rule and_simplify)
-(step t35 (cl (= @p_30 (! (or p$ false) :named @p_31))) :rule cong :premises (t34))
-(step t36 (cl (= @p_31 (! (or p$) :named @p_32))) :rule or_simplify)
-(step t37 (cl (= @p_32 p$)) :rule or_simplify)
-(step t38 (cl (= @p_30 p$)) :rule trans :premises (t35 t36 t37))
-(step t39 (cl (= @p_33 (! (and @p_34 p$) :named @p_35))) :rule cong :premises (t38))
-(step t40 (cl (= @p_35 false)) :rule and_simplify)
-(step t41 (cl (= @p_33 false)) :rule trans :premises (t39 t40))
-(step t42 (cl (= @p_36 (! (or c$ false) :named @p_37))) :rule cong :premises (t41))
-(step t43 (cl (= @p_37 (! (or c$) :named @p_38))) :rule or_simplify)
-(step t44 (cl (= @p_38 c$)) :rule or_simplify)
-(step t45 (cl (= @p_36 c$)) :rule trans :premises (t42 t43 t44))
-(step t46 (cl (! (= @p_39 @p_40) :named @p_41)) :rule cong :premises (t45))
-(step t47 (cl (! (not @p_41) :named @p_43) (! (not @p_39) :named @p_42) @p_40) :rule equiv_pos2)
-(step t48 (cl (not @p_42) @p_36) :rule not_not)
-(step t49 (cl @p_43 @p_36 @p_40) :rule th_resolution :premises (t48 t47))
-(step t50 (cl @p_40) :rule th_resolution :premises (a5 t46 t49))
-(step t51 (cl a$ b$ c$ d$) :rule or :premises (t8))
-(step t52 (cl @p_10 b$) :rule or :premises (t17))
-(step t53 (cl @p_19 c$) :rule or :premises (t26))
-(step t54 (cl @p_26 c$) :rule or :premises (t33))
-(step t55 (cl @p_19) :rule resolution :premises (t53 t50))
-(step t56 (cl @p_26) :rule resolution :premises (t54 t50))
-(step t57 (cl a$) :rule resolution :premises (t51 t55 t50 t56))
-(step t58 (cl) :rule resolution :premises (t52 t55 t57))
-a73b15b00e6e103b31fc48e963d878be9038a417 64 0
+2b0e7825d38340699ae4fceb3006d5eb0b5a0628 333 0
unsat
-(define-fun veriT_sk0 () Int (! (choice ((veriT_vr2 Int)) (not (! (=> (! (p$ veriT_vr2) :named @p_20) (! (forall ((veriT_vr3 Int)) (! (or @p_20 (! (p$ veriT_vr3) :named @p_24)) :named @p_25)) :named @p_21)) :named @p_26))) :named @p_33))
-(define-fun veriT_sk1 () Int (! (choice ((veriT_vr3 Int)) (not (or (p$ @p_33) @p_24))) :named @p_37))
-(assume a0 (! (not (! (forall ((?v0 Int)) (! (=> (! (p$ ?v0) :named @p_1) (! (forall ((?v1 Int)) (! (or @p_1 (! (p$ ?v1) :named @p_8)) :named @p_10)) :named @p_4)) :named @p_12)) :named @p_2)) :named @p_14))
-(anchor :step t2 :args ((:= (?v0 Int) veriT_vr0)))
-(step t2.t1 (cl (! (= ?v0 veriT_vr0) :named @p_6)) :rule refl)
-(step t2.t2 (cl (! (= @p_1 (! (p$ veriT_vr0) :named @p_3)) :named @p_7)) :rule cong :premises (t2.t1))
-(anchor :step t2.t3 :args ((:= (?v1 Int) veriT_vr1)))
-(step t2.t3.t1 (cl @p_6) :rule refl)
-(step t2.t3.t2 (cl @p_7) :rule cong :premises (t2.t3.t1))
-(step t2.t3.t3 (cl (= ?v1 veriT_vr1)) :rule refl)
-(step t2.t3.t4 (cl (= @p_8 (! (p$ veriT_vr1) :named @p_9))) :rule cong :premises (t2.t3.t3))
-(step t2.t3.t5 (cl (= @p_10 (! (or @p_3 @p_9) :named @p_11))) :rule cong :premises (t2.t3.t2 t2.t3.t4))
-(step t2.t3 (cl (= @p_4 (! (forall ((veriT_vr1 Int)) @p_11) :named @p_5))) :rule bind)
-(step t2.t4 (cl (= @p_12 (! (=> @p_3 @p_5) :named @p_13))) :rule cong :premises (t2.t2 t2.t3))
-(step t2 (cl (= @p_2 (! (forall ((veriT_vr0 Int)) @p_13) :named @p_15))) :rule bind)
-(step t3 (cl (! (= @p_14 (! (not @p_15) :named @p_17)) :named @p_16)) :rule cong :premises (t2))
-(step t4 (cl (! (not @p_16) :named @p_19) (! (not @p_14) :named @p_18) @p_17) :rule equiv_pos2)
-(step t5 (cl (not @p_18) @p_2) :rule not_not)
-(step t6 (cl @p_19 @p_2 @p_17) :rule th_resolution :premises (t5 t4))
-(step t7 (cl @p_17) :rule th_resolution :premises (a0 t3 t6))
-(anchor :step t8 :args ((:= (veriT_vr0 Int) veriT_vr2)))
-(step t8.t1 (cl (! (= veriT_vr0 veriT_vr2) :named @p_22)) :rule refl)
-(step t8.t2 (cl (! (= @p_3 @p_20) :named @p_23)) :rule cong :premises (t8.t1))
-(anchor :step t8.t3 :args ((:= (veriT_vr1 Int) veriT_vr3)))
-(step t8.t3.t1 (cl @p_22) :rule refl)
-(step t8.t3.t2 (cl @p_23) :rule cong :premises (t8.t3.t1))
-(step t8.t3.t3 (cl (= veriT_vr1 veriT_vr3)) :rule refl)
-(step t8.t3.t4 (cl (= @p_9 @p_24)) :rule cong :premises (t8.t3.t3))
-(step t8.t3.t5 (cl (= @p_11 @p_25)) :rule cong :premises (t8.t3.t2 t8.t3.t4))
-(step t8.t3 (cl (= @p_5 @p_21)) :rule bind)
-(step t8.t4 (cl (= @p_13 @p_26)) :rule cong :premises (t8.t2 t8.t3))
-(step t8 (cl (= @p_15 (! (forall ((veriT_vr2 Int)) @p_26) :named @p_27))) :rule bind)
-(step t9 (cl (! (= @p_17 (! (not @p_27) :named @p_29)) :named @p_28)) :rule cong :premises (t8))
-(step t10 (cl (! (not @p_28) :named @p_31) (! (not @p_17) :named @p_30) @p_29) :rule equiv_pos2)
-(step t11 (cl (not @p_30) @p_15) :rule not_not)
-(step t12 (cl @p_31 @p_15 @p_29) :rule th_resolution :premises (t11 t10))
-(step t13 (cl @p_29) :rule th_resolution :premises (t7 t9 t12))
-(anchor :step t14 :args ((:= (veriT_vr2 Int) veriT_sk0)))
-(step t14.t1 (cl (! (= veriT_vr2 veriT_sk0) :named @p_35)) :rule refl)
-(step t14.t2 (cl (! (= @p_20 (! (p$ veriT_sk0) :named @p_32)) :named @p_36)) :rule cong :premises (t14.t1))
-(anchor :step t14.t3 :args ((:= (veriT_vr3 Int) veriT_sk1)))
-(step t14.t3.t1 (cl @p_35) :rule refl)
-(step t14.t3.t2 (cl @p_36) :rule cong :premises (t14.t3.t1))
-(step t14.t3.t3 (cl (= veriT_vr3 veriT_sk1)) :rule refl)
-(step t14.t3.t4 (cl (= @p_24 (! (p$ veriT_sk1) :named @p_38))) :rule cong :premises (t14.t3.t3))
-(step t14.t3.t5 (cl (= @p_25 (! (or @p_32 @p_38) :named @p_34))) :rule cong :premises (t14.t3.t2 t14.t3.t4))
-(step t14.t3 (cl (= @p_21 @p_34)) :rule sko_forall)
-(step t14.t4 (cl (= @p_26 (! (=> @p_32 @p_34) :named @p_39))) :rule cong :premises (t14.t2 t14.t3))
-(step t14 (cl (= @p_27 @p_39)) :rule sko_forall)
-(step t15 (cl (! (= @p_29 (! (not @p_39) :named @p_41)) :named @p_40)) :rule cong :premises (t14))
-(step t16 (cl (! (not @p_40) :named @p_43) (! (not @p_29) :named @p_42) @p_41) :rule equiv_pos2)
-(step t17 (cl (not @p_42) @p_27) :rule not_not)
-(step t18 (cl @p_43 @p_27 @p_41) :rule th_resolution :premises (t17 t16))
-(step t19 (cl @p_41) :rule th_resolution :premises (t13 t15 t18))
-(step t20 (cl (! (= @p_41 (! (and @p_32 (! (not @p_34) :named @p_48)) :named @p_45)) :named @p_44)) :rule bool_simplify)
-(step t21 (cl (! (not @p_44) :named @p_47) (! (not @p_41) :named @p_46) @p_45) :rule equiv_pos2)
-(step t22 (cl (not @p_46) @p_39) :rule not_not)
-(step t23 (cl @p_47 @p_39 @p_45) :rule th_resolution :premises (t22 t21))
-(step t24 (cl @p_45) :rule th_resolution :premises (t19 t20 t23))
-(step t25 (cl @p_32) :rule and :premises (t24))
-(step t26 (cl @p_48) :rule and :premises (t24))
-(step t27 (cl (not @p_32)) :rule not_or :premises (t26))
-(step t28 (cl) :rule resolution :premises (t27 t25))
-a5b152c08be1e0a4da353f094af8f11f36a16f52 333 0
-unsat
-(assume a0 (not x0$))
-(assume a1 (not x30$))
-(assume a2 (not x29$))
-(assume a3 (not x59$))
-(assume a4 (! (or x1$ (or x31$ x0$)) :named @p_57))
-(assume a6 (! (or x3$ (or x33$ x2$)) :named @p_60))
-(assume a7 (! (or x4$ (or x34$ x3$)) :named @p_63))
-(assume a8 (or x35$ x4$))
-(assume a9 (! (or x5$ (or x36$ x30$)) :named @p_66))
-(assume a11 (! (or x7$ (or x38$ (or x6$ x32$))) :named @p_69))
-(assume a13 (! (or x9$ (or x40$ (or x8$ x34$))) :named @p_72))
-(assume a16 (! (or x11$ (or x43$ (or x10$ x37$))) :named @p_75))
-(assume a18 (! (or x13$ (or x45$ (or x12$ x39$))) :named @p_78))
-(assume a20 (! (or x47$ (or x14$ x41$)) :named @p_81))
-(assume a21 (! (or x15$ (or x48$ x42$)) :named @p_84))
-(assume a23 (! (or x17$ (or x50$ (or x16$ x44$))) :named @p_87))
-(assume a25 (! (or x19$ (or x52$ (or x18$ x46$))) :named @p_90))
-(assume a28 (! (or x21$ (or x55$ (or x20$ x49$))) :named @p_93))
-(assume a30 (! (or x23$ (or x57$ (or x22$ x51$))) :named @p_96))
-(assume a32 (! (or x59$ (or x24$ x53$)) :named @p_99))
-(assume a33 (or x25$ x54$))
-(assume a35 (! (or x27$ (or x26$ x56$)) :named @p_102))
-(assume a37 (! (or x29$ (or x28$ x58$)) :named @p_105))
-(assume a41 (or (! (not x2$) :named @p_1) (! (not x32$) :named @p_2)))
-(assume a42 (or @p_1 (! (not x1$) :named @p_3)))
-(assume a43 (or @p_2 @p_3))
-(assume a47 (or (! (not x4$) :named @p_4) (! (not x34$) :named @p_5)))
-(assume a48 (or @p_4 (! (not x3$) :named @p_6)))
-(assume a49 (or @p_5 @p_6))
-(assume a54 (or (! (not x6$) :named @p_7) (! (not x37$) :named @p_8)))
-(assume a55 (or @p_7 (! (not x5$) :named @p_9)))
-(assume a56 (or @p_7 (! (not x31$) :named @p_10)))
-(assume a57 (or @p_8 @p_9))
-(assume a58 (or @p_8 @p_10))
-(assume a59 (or @p_9 @p_10))
-(assume a63 (or (! (not x38$) :named @p_11) @p_7))
-(assume a64 (or @p_11 @p_2))
-(assume a66 (or (! (not x8$) :named @p_12) (! (not x39$) :named @p_13)))
-(assume a67 (or @p_12 (! (not x7$) :named @p_14)))
-(assume a68 (or @p_12 (! (not x33$) :named @p_15)))
-(assume a69 (or @p_13 @p_14))
-(assume a70 (or @p_13 @p_15))
-(assume a71 (or @p_14 @p_15))
-(assume a78 (or (! (not x41$) :named @p_16) (! (not x9$) :named @p_17)))
-(assume a79 (or @p_16 (! (not x35$) :named @p_18)))
-(assume a80 (or @p_17 @p_18))
-(assume a81 (or (! (not x10$) :named @p_19) (! (not x42$) :named @p_20)))
-(assume a82 (or @p_19 (! (not x36$) :named @p_21)))
-(assume a83 (or @p_20 @p_21))
-(assume a90 (or (! (not x12$) :named @p_22) (! (not x44$) :named @p_23)))
-(assume a91 (or @p_22 (! (not x11$) :named @p_24)))
-(assume a92 (or @p_22 @p_11))
-(assume a93 (or @p_23 @p_24))
-(assume a94 (or @p_23 @p_11))
-(assume a95 (or @p_24 @p_11))
-(assume a99 (or (! (not x45$) :named @p_25) @p_22))
-(assume a100 (or @p_25 @p_13))
-(assume a102 (or (! (not x14$) :named @p_26) (! (not x46$) :named @p_27)))
-(assume a103 (or @p_26 (! (not x13$) :named @p_28)))
-(assume a104 (or @p_26 (! (not x40$) :named @p_29)))
-(assume a105 (or @p_27 @p_28))
-(assume a106 (or @p_27 @p_29))
-(assume a107 (or @p_28 @p_29))
-(assume a113 (or (! (not x48$) :named @p_41) @p_20))
-(assume a114 (or (! (not x16$) :named @p_30) (! (not x49$) :named @p_31)))
-(assume a115 (or @p_30 (! (not x15$) :named @p_32)))
-(assume a116 (or @p_30 (! (not x43$) :named @p_33)))
-(assume a117 (or @p_31 @p_32))
-(assume a118 (or @p_31 @p_33))
-(assume a119 (or @p_32 @p_33))
-(assume a126 (or (! (not x18$) :named @p_34) (! (not x51$) :named @p_35)))
-(assume a127 (or @p_34 (! (not x17$) :named @p_36)))
-(assume a128 (or @p_34 @p_25))
-(assume a129 (or @p_35 @p_36))
-(assume a130 (or @p_35 @p_25))
-(assume a131 (or @p_36 @p_25))
-(assume a134 (or (! (not x19$) :named @p_37) @p_27))
-(assume a138 (or (! (not x53$) :named @p_38) @p_37))
-(assume a139 (or @p_38 (! (not x47$) :named @p_39)))
-(assume a140 (or @p_37 @p_39))
-(assume a141 (or (! (not x20$) :named @p_40) (! (not x54$) :named @p_42)))
-(assume a142 (or @p_40 @p_41))
-(assume a143 (or @p_42 @p_41))
-(assume a150 (or (! (not x22$) :named @p_43) (! (not x56$) :named @p_44)))
-(assume a151 (or @p_43 (! (not x21$) :named @p_45)))
-(assume a152 (or @p_43 (! (not x50$) :named @p_46)))
-(assume a153 (or @p_44 @p_45))
-(assume a154 (or @p_44 @p_46))
-(assume a155 (or @p_45 @p_46))
-(assume a162 (or (! (not x24$) :named @p_47) (! (not x58$) :named @p_48)))
-(assume a163 (or @p_47 (! (not x23$) :named @p_49)))
-(assume a164 (or @p_47 (! (not x52$) :named @p_50)))
-(assume a165 (or @p_48 @p_49))
-(assume a166 (or @p_48 @p_50))
-(assume a167 (or @p_49 @p_50))
-(assume a172 (or (! (not x26$) :named @p_51) (! (not x25$) :named @p_52)))
-(assume a173 (or @p_51 (! (not x55$) :named @p_53)))
-(assume a174 (or @p_52 @p_53))
-(assume a178 (or (! (not x28$) :named @p_54) (! (not x27$) :named @p_55)))
-(assume a179 (or @p_54 (! (not x57$) :named @p_56)))
-(assume a180 (or @p_55 @p_56))
+(assume axiom0 (not x0$))
+(assume axiom1 (not x30$))
+(assume axiom2 (not x29$))
+(assume axiom3 (not x59$))
+(assume axiom4 (! (or x1$ (or x31$ x0$)) :named @p_57))
+(assume axiom6 (! (or x3$ (or x33$ x2$)) :named @p_60))
+(assume axiom7 (! (or x4$ (or x34$ x3$)) :named @p_63))
+(assume axiom8 (or x35$ x4$))
+(assume axiom9 (! (or x5$ (or x36$ x30$)) :named @p_66))
+(assume axiom11 (! (or x7$ (or x38$ (or x6$ x32$))) :named @p_69))
+(assume axiom13 (! (or x9$ (or x40$ (or x8$ x34$))) :named @p_72))
+(assume axiom16 (! (or x11$ (or x43$ (or x10$ x37$))) :named @p_75))
+(assume axiom18 (! (or x13$ (or x45$ (or x12$ x39$))) :named @p_78))
+(assume axiom20 (! (or x47$ (or x14$ x41$)) :named @p_81))
+(assume axiom21 (! (or x15$ (or x48$ x42$)) :named @p_84))
+(assume axiom23 (! (or x17$ (or x50$ (or x16$ x44$))) :named @p_87))
+(assume axiom25 (! (or x19$ (or x52$ (or x18$ x46$))) :named @p_90))
+(assume axiom28 (! (or x21$ (or x55$ (or x20$ x49$))) :named @p_93))
+(assume axiom30 (! (or x23$ (or x57$ (or x22$ x51$))) :named @p_96))
+(assume axiom32 (! (or x59$ (or x24$ x53$)) :named @p_99))
+(assume axiom33 (or x25$ x54$))
+(assume axiom35 (! (or x27$ (or x26$ x56$)) :named @p_102))
+(assume axiom37 (! (or x29$ (or x28$ x58$)) :named @p_105))
+(assume axiom41 (or (! (not x2$) :named @p_1) (! (not x32$) :named @p_2)))
+(assume axiom42 (or @p_1 (! (not x1$) :named @p_3)))
+(assume axiom43 (or @p_2 @p_3))
+(assume axiom47 (or (! (not x4$) :named @p_4) (! (not x34$) :named @p_5)))
+(assume axiom48 (or @p_4 (! (not x3$) :named @p_6)))
+(assume axiom49 (or @p_5 @p_6))
+(assume axiom54 (or (! (not x6$) :named @p_7) (! (not x37$) :named @p_8)))
+(assume axiom55 (or @p_7 (! (not x5$) :named @p_9)))
+(assume axiom56 (or @p_7 (! (not x31$) :named @p_10)))
+(assume axiom57 (or @p_8 @p_9))
+(assume axiom58 (or @p_8 @p_10))
+(assume axiom59 (or @p_9 @p_10))
+(assume axiom63 (or (! (not x38$) :named @p_11) @p_7))
+(assume axiom64 (or @p_11 @p_2))
+(assume axiom66 (or (! (not x8$) :named @p_12) (! (not x39$) :named @p_13)))
+(assume axiom67 (or @p_12 (! (not x7$) :named @p_14)))
+(assume axiom68 (or @p_12 (! (not x33$) :named @p_15)))
+(assume axiom69 (or @p_13 @p_14))
+(assume axiom70 (or @p_13 @p_15))
+(assume axiom71 (or @p_14 @p_15))
+(assume axiom78 (or (! (not x41$) :named @p_16) (! (not x9$) :named @p_17)))
+(assume axiom79 (or @p_16 (! (not x35$) :named @p_18)))
+(assume axiom80 (or @p_17 @p_18))
+(assume axiom81 (or (! (not x10$) :named @p_19) (! (not x42$) :named @p_20)))
+(assume axiom82 (or @p_19 (! (not x36$) :named @p_21)))
+(assume axiom83 (or @p_20 @p_21))
+(assume axiom90 (or (! (not x12$) :named @p_22) (! (not x44$) :named @p_23)))
+(assume axiom91 (or @p_22 (! (not x11$) :named @p_24)))
+(assume axiom92 (or @p_22 @p_11))
+(assume axiom93 (or @p_23 @p_24))
+(assume axiom94 (or @p_23 @p_11))
+(assume axiom95 (or @p_24 @p_11))
+(assume axiom99 (or (! (not x45$) :named @p_25) @p_22))
+(assume axiom100 (or @p_25 @p_13))
+(assume axiom102 (or (! (not x14$) :named @p_26) (! (not x46$) :named @p_27)))
+(assume axiom103 (or @p_26 (! (not x13$) :named @p_28)))
+(assume axiom104 (or @p_26 (! (not x40$) :named @p_29)))
+(assume axiom105 (or @p_27 @p_28))
+(assume axiom106 (or @p_27 @p_29))
+(assume axiom107 (or @p_28 @p_29))
+(assume axiom113 (or (! (not x48$) :named @p_41) @p_20))
+(assume axiom114 (or (! (not x16$) :named @p_30) (! (not x49$) :named @p_31)))
+(assume axiom115 (or @p_30 (! (not x15$) :named @p_32)))
+(assume axiom116 (or @p_30 (! (not x43$) :named @p_33)))
+(assume axiom117 (or @p_31 @p_32))
+(assume axiom118 (or @p_31 @p_33))
+(assume axiom119 (or @p_32 @p_33))
+(assume axiom126 (or (! (not x18$) :named @p_34) (! (not x51$) :named @p_35)))
+(assume axiom127 (or @p_34 (! (not x17$) :named @p_36)))
+(assume axiom128 (or @p_34 @p_25))
+(assume axiom129 (or @p_35 @p_36))
+(assume axiom130 (or @p_35 @p_25))
+(assume axiom131 (or @p_36 @p_25))
+(assume axiom134 (or (! (not x19$) :named @p_37) @p_27))
+(assume axiom138 (or (! (not x53$) :named @p_38) @p_37))
+(assume axiom139 (or @p_38 (! (not x47$) :named @p_39)))
+(assume axiom140 (or @p_37 @p_39))
+(assume axiom141 (or (! (not x20$) :named @p_40) (! (not x54$) :named @p_42)))
+(assume axiom142 (or @p_40 @p_41))
+(assume axiom143 (or @p_42 @p_41))
+(assume axiom150 (or (! (not x22$) :named @p_43) (! (not x56$) :named @p_44)))
+(assume axiom151 (or @p_43 (! (not x21$) :named @p_45)))
+(assume axiom152 (or @p_43 (! (not x50$) :named @p_46)))
+(assume axiom153 (or @p_44 @p_45))
+(assume axiom154 (or @p_44 @p_46))
+(assume axiom155 (or @p_45 @p_46))
+(assume axiom162 (or (! (not x24$) :named @p_47) (! (not x58$) :named @p_48)))
+(assume axiom163 (or @p_47 (! (not x23$) :named @p_49)))
+(assume axiom164 (or @p_47 (! (not x52$) :named @p_50)))
+(assume axiom165 (or @p_48 @p_49))
+(assume axiom166 (or @p_48 @p_50))
+(assume axiom167 (or @p_49 @p_50))
+(assume axiom172 (or (! (not x26$) :named @p_51) (! (not x25$) :named @p_52)))
+(assume axiom173 (or @p_51 (! (not x55$) :named @p_53)))
+(assume axiom174 (or @p_52 @p_53))
+(assume axiom178 (or (! (not x28$) :named @p_54) (! (not x27$) :named @p_55)))
+(assume axiom179 (or @p_54 (! (not x57$) :named @p_56)))
+(assume axiom180 (or @p_55 @p_56))
(step t102 (cl (! (= @p_57 (! (or x1$ x31$ x0$) :named @p_59)) :named @p_58)) :rule ac_simp)
(step t103 (cl (not @p_58) (not @p_57) @p_59) :rule equiv_pos2)
-(step t104 (cl @p_59) :rule th_resolution :premises (a4 t102 t103))
+(step t104 (cl @p_59) :rule th_resolution :premises (axiom4 t102 t103))
(step t105 (cl (! (= @p_60 (! (or x3$ x33$ x2$) :named @p_62)) :named @p_61)) :rule ac_simp)
(step t106 (cl (not @p_61) (not @p_60) @p_62) :rule equiv_pos2)
-(step t107 (cl @p_62) :rule th_resolution :premises (a6 t105 t106))
+(step t107 (cl @p_62) :rule th_resolution :premises (axiom6 t105 t106))
(step t108 (cl (! (= @p_63 (! (or x4$ x34$ x3$) :named @p_65)) :named @p_64)) :rule ac_simp)
(step t109 (cl (not @p_64) (not @p_63) @p_65) :rule equiv_pos2)
-(step t110 (cl @p_65) :rule th_resolution :premises (a7 t108 t109))
+(step t110 (cl @p_65) :rule th_resolution :premises (axiom7 t108 t109))
(step t111 (cl (! (= @p_66 (! (or x5$ x36$ x30$) :named @p_68)) :named @p_67)) :rule ac_simp)
(step t112 (cl (not @p_67) (not @p_66) @p_68) :rule equiv_pos2)
-(step t113 (cl @p_68) :rule th_resolution :premises (a9 t111 t112))
+(step t113 (cl @p_68) :rule th_resolution :premises (axiom9 t111 t112))
(step t114 (cl (! (= @p_69 (! (or x7$ x38$ x6$ x32$) :named @p_71)) :named @p_70)) :rule ac_simp)
(step t115 (cl (not @p_70) (not @p_69) @p_71) :rule equiv_pos2)
-(step t116 (cl @p_71) :rule th_resolution :premises (a11 t114 t115))
+(step t116 (cl @p_71) :rule th_resolution :premises (axiom11 t114 t115))
(step t117 (cl (! (= @p_72 (! (or x9$ x40$ x8$ x34$) :named @p_74)) :named @p_73)) :rule ac_simp)
(step t118 (cl (not @p_73) (not @p_72) @p_74) :rule equiv_pos2)
-(step t119 (cl @p_74) :rule th_resolution :premises (a13 t117 t118))
+(step t119 (cl @p_74) :rule th_resolution :premises (axiom13 t117 t118))
(step t120 (cl (! (= @p_75 (! (or x11$ x43$ x10$ x37$) :named @p_77)) :named @p_76)) :rule ac_simp)
(step t121 (cl (not @p_76) (not @p_75) @p_77) :rule equiv_pos2)
-(step t122 (cl @p_77) :rule th_resolution :premises (a16 t120 t121))
+(step t122 (cl @p_77) :rule th_resolution :premises (axiom16 t120 t121))
(step t123 (cl (! (= @p_78 (! (or x13$ x45$ x12$ x39$) :named @p_80)) :named @p_79)) :rule ac_simp)
(step t124 (cl (not @p_79) (not @p_78) @p_80) :rule equiv_pos2)
-(step t125 (cl @p_80) :rule th_resolution :premises (a18 t123 t124))
+(step t125 (cl @p_80) :rule th_resolution :premises (axiom18 t123 t124))
(step t126 (cl (! (= @p_81 (! (or x47$ x14$ x41$) :named @p_83)) :named @p_82)) :rule ac_simp)
(step t127 (cl (not @p_82) (not @p_81) @p_83) :rule equiv_pos2)
-(step t128 (cl @p_83) :rule th_resolution :premises (a20 t126 t127))
+(step t128 (cl @p_83) :rule th_resolution :premises (axiom20 t126 t127))
(step t129 (cl (! (= @p_84 (! (or x15$ x48$ x42$) :named @p_86)) :named @p_85)) :rule ac_simp)
(step t130 (cl (not @p_85) (not @p_84) @p_86) :rule equiv_pos2)
-(step t131 (cl @p_86) :rule th_resolution :premises (a21 t129 t130))
+(step t131 (cl @p_86) :rule th_resolution :premises (axiom21 t129 t130))
(step t132 (cl (! (= @p_87 (! (or x17$ x50$ x16$ x44$) :named @p_89)) :named @p_88)) :rule ac_simp)
(step t133 (cl (not @p_88) (not @p_87) @p_89) :rule equiv_pos2)
-(step t134 (cl @p_89) :rule th_resolution :premises (a23 t132 t133))
+(step t134 (cl @p_89) :rule th_resolution :premises (axiom23 t132 t133))
(step t135 (cl (! (= @p_90 (! (or x19$ x52$ x18$ x46$) :named @p_92)) :named @p_91)) :rule ac_simp)
(step t136 (cl (not @p_91) (not @p_90) @p_92) :rule equiv_pos2)
-(step t137 (cl @p_92) :rule th_resolution :premises (a25 t135 t136))
+(step t137 (cl @p_92) :rule th_resolution :premises (axiom25 t135 t136))
(step t138 (cl (! (= @p_93 (! (or x21$ x55$ x20$ x49$) :named @p_95)) :named @p_94)) :rule ac_simp)
(step t139 (cl (not @p_94) (not @p_93) @p_95) :rule equiv_pos2)
-(step t140 (cl @p_95) :rule th_resolution :premises (a28 t138 t139))
+(step t140 (cl @p_95) :rule th_resolution :premises (axiom28 t138 t139))
(step t141 (cl (! (= @p_96 (! (or x23$ x57$ x22$ x51$) :named @p_98)) :named @p_97)) :rule ac_simp)
(step t142 (cl (not @p_97) (not @p_96) @p_98) :rule equiv_pos2)
-(step t143 (cl @p_98) :rule th_resolution :premises (a30 t141 t142))
+(step t143 (cl @p_98) :rule th_resolution :premises (axiom30 t141 t142))
(step t144 (cl (! (= @p_99 (! (or x59$ x24$ x53$) :named @p_101)) :named @p_100)) :rule ac_simp)
(step t145 (cl (not @p_100) (not @p_99) @p_101) :rule equiv_pos2)
-(step t146 (cl @p_101) :rule th_resolution :premises (a32 t144 t145))
+(step t146 (cl @p_101) :rule th_resolution :premises (axiom32 t144 t145))
(step t147 (cl (! (= @p_102 (! (or x27$ x26$ x56$) :named @p_104)) :named @p_103)) :rule ac_simp)
(step t148 (cl (not @p_103) (not @p_102) @p_104) :rule equiv_pos2)
-(step t149 (cl @p_104) :rule th_resolution :premises (a35 t147 t148))
+(step t149 (cl @p_104) :rule th_resolution :premises (axiom35 t147 t148))
(step t150 (cl (! (= @p_105 (! (or x29$ x28$ x58$) :named @p_107)) :named @p_106)) :rule ac_simp)
(step t151 (cl (not @p_106) (not @p_105) @p_107) :rule equiv_pos2)
-(step t152 (cl @p_107) :rule th_resolution :premises (a37 t150 t151))
+(step t152 (cl @p_107) :rule th_resolution :premises (axiom37 t150 t151))
(step t153 (cl x1$ x31$ x0$) :rule or :premises (t104))
-(step t154 (cl x1$ x31$) :rule resolution :premises (t153 a0))
+(step t154 (cl x1$ x31$) :rule resolution :premises (t153 axiom0))
(step t155 (cl x3$ x33$ x2$) :rule or :premises (t107))
(step t156 (cl x4$ x34$ x3$) :rule or :premises (t110))
-(step t157 (cl x35$ x4$) :rule or :premises (a8))
+(step t157 (cl x35$ x4$) :rule or :premises (axiom8))
(step t158 (cl x5$ x36$ x30$) :rule or :premises (t113))
-(step t159 (cl x5$ x36$) :rule resolution :premises (t158 a1))
+(step t159 (cl x5$ x36$) :rule resolution :premises (t158 axiom1))
(step t160 (cl x7$ x38$ x6$ x32$) :rule or :premises (t116))
(step t161 (cl x9$ x40$ x8$ x34$) :rule or :premises (t119))
(step t162 (cl x11$ x43$ x10$ x37$) :rule or :premises (t122))
@@ -447,89 +382,89 @@
(step t168 (cl x21$ x55$ x20$ x49$) :rule or :premises (t140))
(step t169 (cl x23$ x57$ x22$ x51$) :rule or :premises (t143))
(step t170 (cl x59$ x24$ x53$) :rule or :premises (t146))
-(step t171 (cl x24$ x53$) :rule resolution :premises (t170 a3))
-(step t172 (cl x25$ x54$) :rule or :premises (a33))
+(step t171 (cl x24$ x53$) :rule resolution :premises (t170 axiom3))
+(step t172 (cl x25$ x54$) :rule or :premises (axiom33))
(step t173 (cl x27$ x26$ x56$) :rule or :premises (t149))
(step t174 (cl x29$ x28$ x58$) :rule or :premises (t152))
-(step t175 (cl x28$ x58$) :rule resolution :premises (t174 a2))
-(step t176 (cl @p_1 @p_2) :rule or :premises (a41))
-(step t177 (cl @p_1 @p_3) :rule or :premises (a42))
-(step t178 (cl @p_2 @p_3) :rule or :premises (a43))
-(step t179 (cl @p_4 @p_5) :rule or :premises (a47))
-(step t180 (cl @p_4 @p_6) :rule or :premises (a48))
-(step t181 (cl @p_5 @p_6) :rule or :premises (a49))
-(step t182 (cl @p_7 @p_8) :rule or :premises (a54))
-(step t183 (cl @p_7 @p_9) :rule or :premises (a55))
-(step t184 (cl @p_7 @p_10) :rule or :premises (a56))
-(step t185 (cl @p_8 @p_9) :rule or :premises (a57))
-(step t186 (cl @p_8 @p_10) :rule or :premises (a58))
-(step t187 (cl @p_9 @p_10) :rule or :premises (a59))
-(step t188 (cl @p_11 @p_7) :rule or :premises (a63))
-(step t189 (cl @p_11 @p_2) :rule or :premises (a64))
-(step t190 (cl @p_12 @p_13) :rule or :premises (a66))
-(step t191 (cl @p_12 @p_14) :rule or :premises (a67))
-(step t192 (cl @p_12 @p_15) :rule or :premises (a68))
-(step t193 (cl @p_13 @p_14) :rule or :premises (a69))
-(step t194 (cl @p_13 @p_15) :rule or :premises (a70))
-(step t195 (cl @p_14 @p_15) :rule or :premises (a71))
-(step t196 (cl @p_16 @p_17) :rule or :premises (a78))
-(step t197 (cl @p_16 @p_18) :rule or :premises (a79))
-(step t198 (cl @p_17 @p_18) :rule or :premises (a80))
-(step t199 (cl @p_19 @p_20) :rule or :premises (a81))
-(step t200 (cl @p_19 @p_21) :rule or :premises (a82))
-(step t201 (cl @p_20 @p_21) :rule or :premises (a83))
-(step t202 (cl @p_22 @p_23) :rule or :premises (a90))
-(step t203 (cl @p_22 @p_24) :rule or :premises (a91))
-(step t204 (cl @p_22 @p_11) :rule or :premises (a92))
-(step t205 (cl @p_23 @p_24) :rule or :premises (a93))
-(step t206 (cl @p_23 @p_11) :rule or :premises (a94))
-(step t207 (cl @p_24 @p_11) :rule or :premises (a95))
-(step t208 (cl @p_25 @p_22) :rule or :premises (a99))
-(step t209 (cl @p_25 @p_13) :rule or :premises (a100))
-(step t210 (cl @p_26 @p_27) :rule or :premises (a102))
-(step t211 (cl @p_26 @p_28) :rule or :premises (a103))
-(step t212 (cl @p_26 @p_29) :rule or :premises (a104))
-(step t213 (cl @p_27 @p_28) :rule or :premises (a105))
-(step t214 (cl @p_27 @p_29) :rule or :premises (a106))
-(step t215 (cl @p_28 @p_29) :rule or :premises (a107))
-(step t216 (cl @p_41 @p_20) :rule or :premises (a113))
-(step t217 (cl @p_30 @p_31) :rule or :premises (a114))
-(step t218 (cl @p_30 @p_32) :rule or :premises (a115))
-(step t219 (cl @p_30 @p_33) :rule or :premises (a116))
-(step t220 (cl @p_31 @p_32) :rule or :premises (a117))
-(step t221 (cl @p_31 @p_33) :rule or :premises (a118))
-(step t222 (cl @p_32 @p_33) :rule or :premises (a119))
-(step t223 (cl @p_34 @p_35) :rule or :premises (a126))
-(step t224 (cl @p_34 @p_36) :rule or :premises (a127))
-(step t225 (cl @p_34 @p_25) :rule or :premises (a128))
-(step t226 (cl @p_35 @p_36) :rule or :premises (a129))
-(step t227 (cl @p_35 @p_25) :rule or :premises (a130))
-(step t228 (cl @p_36 @p_25) :rule or :premises (a131))
-(step t229 (cl @p_37 @p_27) :rule or :premises (a134))
-(step t230 (cl @p_38 @p_37) :rule or :premises (a138))
-(step t231 (cl @p_38 @p_39) :rule or :premises (a139))
-(step t232 (cl @p_37 @p_39) :rule or :premises (a140))
-(step t233 (cl @p_40 @p_42) :rule or :premises (a141))
-(step t234 (cl @p_40 @p_41) :rule or :premises (a142))
-(step t235 (cl @p_42 @p_41) :rule or :premises (a143))
-(step t236 (cl @p_43 @p_44) :rule or :premises (a150))
-(step t237 (cl @p_43 @p_45) :rule or :premises (a151))
-(step t238 (cl @p_43 @p_46) :rule or :premises (a152))
-(step t239 (cl @p_44 @p_45) :rule or :premises (a153))
-(step t240 (cl @p_44 @p_46) :rule or :premises (a154))
-(step t241 (cl @p_45 @p_46) :rule or :premises (a155))
-(step t242 (cl @p_47 @p_48) :rule or :premises (a162))
-(step t243 (cl @p_47 @p_49) :rule or :premises (a163))
-(step t244 (cl @p_47 @p_50) :rule or :premises (a164))
-(step t245 (cl @p_48 @p_49) :rule or :premises (a165))
-(step t246 (cl @p_48 @p_50) :rule or :premises (a166))
-(step t247 (cl @p_49 @p_50) :rule or :premises (a167))
-(step t248 (cl @p_51 @p_52) :rule or :premises (a172))
-(step t249 (cl @p_51 @p_53) :rule or :premises (a173))
-(step t250 (cl @p_52 @p_53) :rule or :premises (a174))
-(step t251 (cl @p_54 @p_55) :rule or :premises (a178))
-(step t252 (cl @p_54 @p_56) :rule or :premises (a179))
-(step t253 (cl @p_55 @p_56) :rule or :premises (a180))
+(step t175 (cl x28$ x58$) :rule resolution :premises (t174 axiom2))
+(step t176 (cl @p_1 @p_2) :rule or :premises (axiom41))
+(step t177 (cl @p_1 @p_3) :rule or :premises (axiom42))
+(step t178 (cl @p_2 @p_3) :rule or :premises (axiom43))
+(step t179 (cl @p_4 @p_5) :rule or :premises (axiom47))
+(step t180 (cl @p_4 @p_6) :rule or :premises (axiom48))
+(step t181 (cl @p_5 @p_6) :rule or :premises (axiom49))
+(step t182 (cl @p_7 @p_8) :rule or :premises (axiom54))
+(step t183 (cl @p_7 @p_9) :rule or :premises (axiom55))
+(step t184 (cl @p_7 @p_10) :rule or :premises (axiom56))
+(step t185 (cl @p_8 @p_9) :rule or :premises (axiom57))
+(step t186 (cl @p_8 @p_10) :rule or :premises (axiom58))
+(step t187 (cl @p_9 @p_10) :rule or :premises (axiom59))
+(step t188 (cl @p_11 @p_7) :rule or :premises (axiom63))
+(step t189 (cl @p_11 @p_2) :rule or :premises (axiom64))
+(step t190 (cl @p_12 @p_13) :rule or :premises (axiom66))
+(step t191 (cl @p_12 @p_14) :rule or :premises (axiom67))
+(step t192 (cl @p_12 @p_15) :rule or :premises (axiom68))
+(step t193 (cl @p_13 @p_14) :rule or :premises (axiom69))
+(step t194 (cl @p_13 @p_15) :rule or :premises (axiom70))
+(step t195 (cl @p_14 @p_15) :rule or :premises (axiom71))
+(step t196 (cl @p_16 @p_17) :rule or :premises (axiom78))
+(step t197 (cl @p_16 @p_18) :rule or :premises (axiom79))
+(step t198 (cl @p_17 @p_18) :rule or :premises (axiom80))
+(step t199 (cl @p_19 @p_20) :rule or :premises (axiom81))
+(step t200 (cl @p_19 @p_21) :rule or :premises (axiom82))
+(step t201 (cl @p_20 @p_21) :rule or :premises (axiom83))
+(step t202 (cl @p_22 @p_23) :rule or :premises (axiom90))
+(step t203 (cl @p_22 @p_24) :rule or :premises (axiom91))
+(step t204 (cl @p_22 @p_11) :rule or :premises (axiom92))
+(step t205 (cl @p_23 @p_24) :rule or :premises (axiom93))
+(step t206 (cl @p_23 @p_11) :rule or :premises (axiom94))
+(step t207 (cl @p_24 @p_11) :rule or :premises (axiom95))
+(step t208 (cl @p_25 @p_22) :rule or :premises (axiom99))
+(step t209 (cl @p_25 @p_13) :rule or :premises (axiom100))
+(step t210 (cl @p_26 @p_27) :rule or :premises (axiom102))
+(step t211 (cl @p_26 @p_28) :rule or :premises (axiom103))
+(step t212 (cl @p_26 @p_29) :rule or :premises (axiom104))
+(step t213 (cl @p_27 @p_28) :rule or :premises (axiom105))
+(step t214 (cl @p_27 @p_29) :rule or :premises (axiom106))
+(step t215 (cl @p_28 @p_29) :rule or :premises (axiom107))
+(step t216 (cl @p_41 @p_20) :rule or :premises (axiom113))
+(step t217 (cl @p_30 @p_31) :rule or :premises (axiom114))
+(step t218 (cl @p_30 @p_32) :rule or :premises (axiom115))
+(step t219 (cl @p_30 @p_33) :rule or :premises (axiom116))
+(step t220 (cl @p_31 @p_32) :rule or :premises (axiom117))
+(step t221 (cl @p_31 @p_33) :rule or :premises (axiom118))
+(step t222 (cl @p_32 @p_33) :rule or :premises (axiom119))
+(step t223 (cl @p_34 @p_35) :rule or :premises (axiom126))
+(step t224 (cl @p_34 @p_36) :rule or :premises (axiom127))
+(step t225 (cl @p_34 @p_25) :rule or :premises (axiom128))
+(step t226 (cl @p_35 @p_36) :rule or :premises (axiom129))
+(step t227 (cl @p_35 @p_25) :rule or :premises (axiom130))
+(step t228 (cl @p_36 @p_25) :rule or :premises (axiom131))
+(step t229 (cl @p_37 @p_27) :rule or :premises (axiom134))
+(step t230 (cl @p_38 @p_37) :rule or :premises (axiom138))
+(step t231 (cl @p_38 @p_39) :rule or :premises (axiom139))
+(step t232 (cl @p_37 @p_39) :rule or :premises (axiom140))
+(step t233 (cl @p_40 @p_42) :rule or :premises (axiom141))
+(step t234 (cl @p_40 @p_41) :rule or :premises (axiom142))
+(step t235 (cl @p_42 @p_41) :rule or :premises (axiom143))
+(step t236 (cl @p_43 @p_44) :rule or :premises (axiom150))
+(step t237 (cl @p_43 @p_45) :rule or :premises (axiom151))
+(step t238 (cl @p_43 @p_46) :rule or :premises (axiom152))
+(step t239 (cl @p_44 @p_45) :rule or :premises (axiom153))
+(step t240 (cl @p_44 @p_46) :rule or :premises (axiom154))
+(step t241 (cl @p_45 @p_46) :rule or :premises (axiom155))
+(step t242 (cl @p_47 @p_48) :rule or :premises (axiom162))
+(step t243 (cl @p_47 @p_49) :rule or :premises (axiom163))
+(step t244 (cl @p_47 @p_50) :rule or :premises (axiom164))
+(step t245 (cl @p_48 @p_49) :rule or :premises (axiom165))
+(step t246 (cl @p_48 @p_50) :rule or :premises (axiom166))
+(step t247 (cl @p_49 @p_50) :rule or :premises (axiom167))
+(step t248 (cl @p_51 @p_52) :rule or :premises (axiom172))
+(step t249 (cl @p_51 @p_53) :rule or :premises (axiom173))
+(step t250 (cl @p_52 @p_53) :rule or :premises (axiom174))
+(step t251 (cl @p_54 @p_55) :rule or :premises (axiom178))
+(step t252 (cl @p_54 @p_56) :rule or :premises (axiom179))
+(step t253 (cl @p_55 @p_56) :rule or :premises (axiom180))
(step t254 (cl x48$ x47$ @p_27) :rule resolution :premises (t222 t165 t162 t201 t200 t207 t159 t160 t187 t186 t184 t154 t177 t176 t155 t192 t191 t161 t180 t179 t157 t197 t196 t164 t214 t210))
(step t255 (cl x47$ x45$ x12$ x38$ @p_9) :rule resolution :premises (t196 t161 t164 t181 t215 t211 t155 t163 t195 t193 t191 t160 t178 t177 t154 t187 t183))
(step t256 (cl x47$ x45$ x17$ x50$ @p_32) :rule resolution :premises (t196 t161 t164 t181 t215 t211 t155 t163 t195 t193 t191 t160 t178 t177 t154 t186 t182 t162 t200 t159 t255 t206 t205 t202 t166 t222 t218))
@@ -609,13 +544,78 @@
(step t330 (cl x36$) :rule resolution :premises (t159 t328))
(step t331 (cl x42$) :rule resolution :premises (t287 t329))
(step t332 (cl) :rule resolution :premises (t201 t330 t331))
-9024ca3fa3536be727200e6a5ffc1df778e7e505 155 0
+5895c6070af96c275f3f46cd6f9c0ddc1803c656 64 0
+unsat
+(define-fun veriT_sk0 () Int (! (choice ((veriT_vr2 Int)) (not (! (=> (! (p$ veriT_vr2) :named @p_20) (! (forall ((veriT_vr3 Int)) (! (or @p_20 (! (p$ veriT_vr3) :named @p_24)) :named @p_25)) :named @p_21)) :named @p_26))) :named @p_33))
+(define-fun veriT_sk1 () Int (! (choice ((veriT_vr3 Int)) (not (or (p$ @p_33) @p_24))) :named @p_37))
+(assume axiom0 (! (not (! (forall ((?v0 Int)) (! (=> (! (p$ ?v0) :named @p_1) (! (forall ((?v1 Int)) (! (or @p_1 (! (p$ ?v1) :named @p_8)) :named @p_10)) :named @p_4)) :named @p_12)) :named @p_2)) :named @p_14))
+(anchor :step t2 :args ((:= (?v0 Int) veriT_vr0)))
+(step t2.t1 (cl (! (= ?v0 veriT_vr0) :named @p_6)) :rule refl)
+(step t2.t2 (cl (! (= @p_1 (! (p$ veriT_vr0) :named @p_3)) :named @p_7)) :rule cong :premises (t2.t1))
+(anchor :step t2.t3 :args ((:= (?v1 Int) veriT_vr1)))
+(step t2.t3.t1 (cl @p_6) :rule refl)
+(step t2.t3.t2 (cl @p_7) :rule cong :premises (t2.t3.t1))
+(step t2.t3.t3 (cl (= ?v1 veriT_vr1)) :rule refl)
+(step t2.t3.t4 (cl (= @p_8 (! (p$ veriT_vr1) :named @p_9))) :rule cong :premises (t2.t3.t3))
+(step t2.t3.t5 (cl (= @p_10 (! (or @p_3 @p_9) :named @p_11))) :rule cong :premises (t2.t3.t2 t2.t3.t4))
+(step t2.t3 (cl (= @p_4 (! (forall ((veriT_vr1 Int)) @p_11) :named @p_5))) :rule bind)
+(step t2.t4 (cl (= @p_12 (! (=> @p_3 @p_5) :named @p_13))) :rule cong :premises (t2.t2 t2.t3))
+(step t2 (cl (= @p_2 (! (forall ((veriT_vr0 Int)) @p_13) :named @p_15))) :rule bind)
+(step t3 (cl (! (= @p_14 (! (not @p_15) :named @p_17)) :named @p_16)) :rule cong :premises (t2))
+(step t4 (cl (! (not @p_16) :named @p_19) (! (not @p_14) :named @p_18) @p_17) :rule equiv_pos2)
+(step t5 (cl (not @p_18) @p_2) :rule not_not)
+(step t6 (cl @p_19 @p_2 @p_17) :rule th_resolution :premises (t5 t4))
+(step t7 (cl @p_17) :rule th_resolution :premises (axiom0 t3 t6))
+(anchor :step t8 :args ((:= (veriT_vr0 Int) veriT_vr2)))
+(step t8.t1 (cl (! (= veriT_vr0 veriT_vr2) :named @p_22)) :rule refl)
+(step t8.t2 (cl (! (= @p_3 @p_20) :named @p_23)) :rule cong :premises (t8.t1))
+(anchor :step t8.t3 :args ((:= (veriT_vr1 Int) veriT_vr3)))
+(step t8.t3.t1 (cl @p_22) :rule refl)
+(step t8.t3.t2 (cl @p_23) :rule cong :premises (t8.t3.t1))
+(step t8.t3.t3 (cl (= veriT_vr1 veriT_vr3)) :rule refl)
+(step t8.t3.t4 (cl (= @p_9 @p_24)) :rule cong :premises (t8.t3.t3))
+(step t8.t3.t5 (cl (= @p_11 @p_25)) :rule cong :premises (t8.t3.t2 t8.t3.t4))
+(step t8.t3 (cl (= @p_5 @p_21)) :rule bind)
+(step t8.t4 (cl (= @p_13 @p_26)) :rule cong :premises (t8.t2 t8.t3))
+(step t8 (cl (= @p_15 (! (forall ((veriT_vr2 Int)) @p_26) :named @p_27))) :rule bind)
+(step t9 (cl (! (= @p_17 (! (not @p_27) :named @p_29)) :named @p_28)) :rule cong :premises (t8))
+(step t10 (cl (! (not @p_28) :named @p_31) (! (not @p_17) :named @p_30) @p_29) :rule equiv_pos2)
+(step t11 (cl (not @p_30) @p_15) :rule not_not)
+(step t12 (cl @p_31 @p_15 @p_29) :rule th_resolution :premises (t11 t10))
+(step t13 (cl @p_29) :rule th_resolution :premises (t7 t9 t12))
+(anchor :step t14 :args ((:= (veriT_vr2 Int) veriT_sk0)))
+(step t14.t1 (cl (! (= veriT_vr2 veriT_sk0) :named @p_35)) :rule refl)
+(step t14.t2 (cl (! (= @p_20 (! (p$ veriT_sk0) :named @p_32)) :named @p_36)) :rule cong :premises (t14.t1))
+(anchor :step t14.t3 :args ((:= (veriT_vr3 Int) veriT_sk1)))
+(step t14.t3.t1 (cl @p_35) :rule refl)
+(step t14.t3.t2 (cl @p_36) :rule cong :premises (t14.t3.t1))
+(step t14.t3.t3 (cl (= veriT_vr3 veriT_sk1)) :rule refl)
+(step t14.t3.t4 (cl (= @p_24 (! (p$ veriT_sk1) :named @p_38))) :rule cong :premises (t14.t3.t3))
+(step t14.t3.t5 (cl (= @p_25 (! (or @p_32 @p_38) :named @p_34))) :rule cong :premises (t14.t3.t2 t14.t3.t4))
+(step t14.t3 (cl (= @p_21 @p_34)) :rule sko_forall)
+(step t14.t4 (cl (= @p_26 (! (=> @p_32 @p_34) :named @p_39))) :rule cong :premises (t14.t2 t14.t3))
+(step t14 (cl (= @p_27 @p_39)) :rule sko_forall)
+(step t15 (cl (! (= @p_29 (! (not @p_39) :named @p_41)) :named @p_40)) :rule cong :premises (t14))
+(step t16 (cl (! (not @p_40) :named @p_43) (! (not @p_29) :named @p_42) @p_41) :rule equiv_pos2)
+(step t17 (cl (not @p_42) @p_27) :rule not_not)
+(step t18 (cl @p_43 @p_27 @p_41) :rule th_resolution :premises (t17 t16))
+(step t19 (cl @p_41) :rule th_resolution :premises (t13 t15 t18))
+(step t20 (cl (! (= @p_41 (! (and @p_32 (! (not @p_34) :named @p_48)) :named @p_45)) :named @p_44)) :rule bool_simplify)
+(step t21 (cl (! (not @p_44) :named @p_47) (! (not @p_41) :named @p_46) @p_45) :rule equiv_pos2)
+(step t22 (cl (not @p_46) @p_39) :rule not_not)
+(step t23 (cl @p_47 @p_39 @p_45) :rule th_resolution :premises (t22 t21))
+(step t24 (cl @p_45) :rule th_resolution :premises (t19 t20 t23))
+(step t25 (cl @p_32) :rule and :premises (t24))
+(step t26 (cl @p_48) :rule and :premises (t24))
+(step t27 (cl (not @p_32)) :rule not_or :premises (t26))
+(step t28 (cl) :rule resolution :premises (t27 t25))
+92a1094a80c0dcb33184d755df79398cf322af19 155 0
unsat
(define-fun veriT_sk0 () A$ (! (choice ((veriT_vr3 A$)) (! (ite x$ (! (p$ true veriT_vr3) :named @p_48) (! (p$ false veriT_vr3) :named @p_50)) :named @p_51)) :named @p_62))
-(assume a0 (forall ((?v0 Bool) (?v1 A$)) (= (p$ ?v0 ?v1) ?v0)))
-(assume a1 (not (= (exists ((?v0 A$)) (p$ x$ ?v0)) (p$ x$ c$))))
-(step t3 (cl (! (forall ((?v1 A$)) (! (and (! (= (! (p$ false ?v1) :named @p_2) false) :named @p_4) (! (= (! (p$ true ?v1) :named @p_7) true) :named @p_9)) :named @p_11)) :named @p_1)) :rule bfun_elim :premises (a0))
-(step t4 (cl (! (not (! (= (! (exists ((?v0 A$)) (! (ite x$ (! (p$ true ?v0) :named @p_27) (! (p$ false ?v0) :named @p_30)) :named @p_32)) :named @p_26) (! (ite x$ (! (p$ true c$) :named @p_91) (! (p$ false c$) :named @p_93)) :named @p_36)) :named @p_34)) :named @p_37)) :rule bfun_elim :premises (a1))
+(assume axiom0 (forall ((?v0 Bool) (?v1 A$)) (= (p$ ?v0 ?v1) ?v0)))
+(assume axiom1 (not (= (exists ((?v0 A$)) (p$ x$ ?v0)) (p$ x$ c$))))
+(step t3 (cl (! (forall ((?v1 A$)) (! (and (! (= (! (p$ false ?v1) :named @p_2) false) :named @p_4) (! (= (! (p$ true ?v1) :named @p_7) true) :named @p_9)) :named @p_11)) :named @p_1)) :rule bfun_elim :premises (axiom0))
+(step t4 (cl (! (not (! (= (! (exists ((?v0 A$)) (! (ite x$ (! (p$ true ?v0) :named @p_27) (! (p$ false ?v0) :named @p_30)) :named @p_32)) :named @p_26) (! (ite x$ (! (p$ true c$) :named @p_91) (! (p$ false c$) :named @p_93)) :named @p_36)) :named @p_34)) :named @p_37)) :rule bfun_elim :premises (axiom1))
(anchor :step t5 :args ((:= (?v1 A$) veriT_vr0)))
(step t5.t1 (cl (! (= ?v1 veriT_vr0) :named @p_6)) :rule refl)
(step t5.t2 (cl (= @p_2 (! (p$ false veriT_vr0) :named @p_3))) :rule cong :premises (t5.t1))
@@ -765,13 +765,13 @@
(step t108 (cl (or @p_84 @p_92)) :rule forall_inst :args ((:= veriT_vr4 c$)))
(step t109 (cl @p_84 @p_92) :rule or :premises (t108))
(step t110 (cl) :rule resolution :premises (t109 t104 t107))
-6388f32213a8f0cba4b8bfe24dbcf79d47d5c156 143 0
+811ced85456c84c67b4bd2d5cedbf22b20ed06ce 143 0
unsat
(define-fun veriT_sk2 () A$ (! (choice ((veriT_vr9 A$)) (! (ite x$ (! (p$ true veriT_vr9) :named @p_48) (! (p$ false veriT_vr9) :named @p_50)) :named @p_51)) :named @p_62))
-(assume a0 (forall ((?v0 Bool) (?v1 A$)) (= (p$ ?v0 ?v1) ?v0)))
-(assume a2 (not (= (exists ((?v0 A$)) (p$ x$ ?v0)) (p$ x$ c$))))
-(step t3 (cl (! (forall ((?v1 A$)) (! (and (! (= (! (p$ false ?v1) :named @p_2) false) :named @p_4) (! (= (! (p$ true ?v1) :named @p_7) true) :named @p_9)) :named @p_11)) :named @p_1)) :rule bfun_elim :premises (a0))
-(step t4 (cl (! (not (! (= (! (exists ((?v0 A$)) (! (ite x$ (! (p$ true ?v0) :named @p_27) (! (p$ false ?v0) :named @p_30)) :named @p_32)) :named @p_26) (! (ite x$ (! (p$ true c$) :named @p_91) (p$ false c$)) :named @p_36)) :named @p_34)) :named @p_37)) :rule bfun_elim :premises (a2))
+(assume axiom0 (forall ((?v0 Bool) (?v1 A$)) (= (p$ ?v0 ?v1) ?v0)))
+(assume axiom2 (not (= (exists ((?v0 A$)) (p$ x$ ?v0)) (p$ x$ c$))))
+(step t3 (cl (! (forall ((?v1 A$)) (! (and (! (= (! (p$ false ?v1) :named @p_2) false) :named @p_4) (! (= (! (p$ true ?v1) :named @p_7) true) :named @p_9)) :named @p_11)) :named @p_1)) :rule bfun_elim :premises (axiom0))
+(step t4 (cl (! (not (! (= (! (exists ((?v0 A$)) (! (ite x$ (! (p$ true ?v0) :named @p_27) (! (p$ false ?v0) :named @p_30)) :named @p_32)) :named @p_26) (! (ite x$ (! (p$ true c$) :named @p_91) (p$ false c$)) :named @p_36)) :named @p_34)) :named @p_37)) :rule bfun_elim :premises (axiom2))
(anchor :step t5 :args ((:= (?v1 A$) veriT_vr0)))
(step t5.t1 (cl (! (= ?v1 veriT_vr0) :named @p_6)) :rule refl)
(step t5.t2 (cl (= @p_2 (! (p$ false veriT_vr0) :named @p_3))) :rule cong :premises (t5.t1))
@@ -909,10 +909,10 @@
(step t96 (cl (or @p_84 @p_106)) :rule forall_inst :args ((:= veriT_vr10 c$)))
(step t97 (cl @p_84 @p_106) :rule or :premises (t96))
(step t98 (cl) :rule resolution :premises (t97 t94 t95))
-8a6f5819f9bec363751118815580748c0df0e998 57 0
+fa33723879319b6b43d6be3aebc3d4bf112ced6c 57 0
unsat
-(assume a0 (! (ite (! (p$ x$) :named @p_2) (! (not (! (exists ((?v0 A$)) (! (p$ ?v0) :named @p_1)) :named @p_3)) :named @p_5) (! (forall ((?v0 A$)) (! (not @p_1) :named @p_10)) :named @p_7)) :named @p_12))
-(assume a1 (! (not (! (=> @p_2 (! (p$ y$) :named @p_35)) :named @p_39)) :named @p_34))
+(assume axiom0 (! (ite (! (p$ x$) :named @p_2) (! (not (! (exists ((?v0 A$)) (! (p$ ?v0) :named @p_1)) :named @p_3)) :named @p_5) (! (forall ((?v0 A$)) (! (not @p_1) :named @p_10)) :named @p_7)) :named @p_12))
+(assume axiom1 (! (not (! (=> @p_2 (! (p$ y$) :named @p_35)) :named @p_39)) :named @p_34))
(anchor :step t3 :args ((:= (?v0 A$) veriT_vr0)))
(step t3.t1 (cl (! (= ?v0 veriT_vr0) :named @p_8)) :rule refl)
(step t3.t2 (cl (! (= @p_1 (! (p$ veriT_vr0) :named @p_4)) :named @p_9)) :rule cong :premises (t3.t1))
@@ -925,7 +925,7 @@
(step t5 (cl (= @p_7 (! (forall ((veriT_vr0 A$)) @p_11) :named @p_14))) :rule bind)
(step t6 (cl (! (= @p_12 (! (ite @p_2 @p_13 @p_14) :named @p_16)) :named @p_15)) :rule cong :premises (t4 t5))
(step t7 (cl (not @p_15) (not @p_12) @p_16) :rule equiv_pos2)
-(step t8 (cl @p_16) :rule th_resolution :premises (a0 t6 t7))
+(step t8 (cl @p_16) :rule th_resolution :premises (axiom0 t6 t7))
(anchor :step t9 :args ((:= (veriT_vr0 A$) veriT_vr1)))
(step t9.t1 (cl (= veriT_vr0 veriT_vr1)) :rule refl)
(step t9.t2 (cl (= @p_4 (! (p$ veriT_vr1) :named @p_17))) :rule cong :premises (t9.t1))
@@ -956,7 +956,7 @@
(step t25 (cl (! (not @p_36) :named @p_40) (! (not @p_34) :named @p_38) @p_37) :rule equiv_pos2)
(step t26 (cl (not @p_38) @p_39) :rule not_not)
(step t27 (cl @p_40 @p_39 @p_37) :rule th_resolution :premises (t26 t25))
-(step t28 (cl @p_37) :rule th_resolution :premises (a1 t24 t27))
+(step t28 (cl @p_37) :rule th_resolution :premises (axiom1 t24 t27))
(step t29 (cl (= @p_31 @p_41)) :rule not_simplify)
(step t30 (cl (! (= @p_33 (! (ite @p_2 @p_41 @p_27) :named @p_43)) :named @p_42)) :rule cong :premises (t29))
(step t31 (cl (not @p_42) (not @p_33) @p_43) :rule equiv_pos2)
@@ -967,9 +967,9 @@
(step t36 (cl (or @p_30 @p_44)) :rule forall_inst :args ((:= veriT_vr2 x$)))
(step t37 (cl @p_30 @p_44) :rule or :premises (t36))
(step t38 (cl) :rule resolution :premises (t37 t34 t35))
-ccb9d5509f5273cf85143c83133df9d0fe59cf61 12 0
+3a011b0429bfc23b05e60ee65e41832adbfa1a5a 12 0
unsat
-(assume a0 (! (not (! (= 3 3) :named @p_1)) :named @p_2))
+(assume axiom0 (! (not (! (= 3 3) :named @p_1)) :named @p_2))
(step t2 (cl (= @p_1 true)) :rule eq_simplify)
(step t3 (cl (= @p_2 (! (not true) :named @p_3))) :rule cong :premises (t2))
(step t4 (cl (= @p_3 false)) :rule not_simplify)
@@ -977,12 +977,12 @@
(step t6 (cl (! (not @p_4) :named @p_6) (! (not @p_2) :named @p_5) false) :rule equiv_pos2)
(step t7 (cl (not @p_5) @p_1) :rule not_not)
(step t8 (cl @p_6 @p_1 false) :rule th_resolution :premises (t7 t6))
-(step t9 (cl false) :rule th_resolution :premises (a0 t5 t8))
+(step t9 (cl false) :rule th_resolution :premises (axiom0 t5 t8))
(step t10 (cl (not false)) :rule false)
(step t11 (cl) :rule resolution :premises (t9 t10))
-fa126f313953bee2fb2b0380ecf176cbb28700f5 12 0
+ed9c8e3326f1e52cfa128cd451ceb8afc62fa2fc 12 0
unsat
-(assume a0 (! (not (! (= 3.0 3.0) :named @p_1)) :named @p_2))
+(assume axiom0 (! (not (! (= 3.0 3.0) :named @p_1)) :named @p_2))
(step t2 (cl (= @p_1 true)) :rule eq_simplify)
(step t3 (cl (= @p_2 (! (not true) :named @p_3))) :rule cong :premises (t2))
(step t4 (cl (= @p_3 false)) :rule not_simplify)
@@ -990,12 +990,22 @@
(step t6 (cl (! (not @p_4) :named @p_6) (! (not @p_2) :named @p_5) false) :rule equiv_pos2)
(step t7 (cl (not @p_5) @p_1) :rule not_not)
(step t8 (cl @p_6 @p_1 false) :rule th_resolution :premises (t7 t6))
-(step t9 (cl false) :rule th_resolution :premises (a0 t5 t8))
+(step t9 (cl false) :rule th_resolution :premises (axiom0 t5 t8))
(step t10 (cl (not false)) :rule false)
(step t11 (cl) :rule resolution :premises (t9 t10))
-2b1aff746608c673784b02123c7a44746cecbe40 15 0
+1702d82a39b3f9713bf57e315ab761c4a81dbe59 9 0
unsat
-(assume a0 (! (not (! (= (+ 3 1) 4) :named @p_1)) :named @p_3))
+(assume axiom0 (not (! (= (! (+ x$ (+ y$ z$)) :named @p_2) (! (+ y$ (+ z$ x$)) :named @p_3)) :named @p_1)))
+(step t2 (cl (or @p_1 (! (not (! (<= @p_2 @p_3) :named @p_6)) :named @p_4) (! (not (! (<= @p_3 @p_2) :named @p_7)) :named @p_5))) :rule la_disequality)
+(step t3 (cl @p_1 @p_4 @p_5) :rule or :premises (t2))
+(step t4 (cl @p_4 @p_5) :rule resolution :premises (t3 axiom0))
+(step t5 (cl @p_6) :rule la_generic :args (1))
+(step t6 (cl @p_5) :rule resolution :premises (t4 t5))
+(step t7 (cl @p_7) :rule la_generic :args (1))
+(step t8 (cl) :rule resolution :premises (t7 t6))
+ffb6c06c5ee6006629798f020d7438a4445f818d 15 0
+unsat
+(assume axiom0 (! (not (! (= (+ 3 1) 4) :named @p_1)) :named @p_3))
(step t2 (cl @p_1) :rule sum_simplify)
(step t3 (cl (= @p_1 (! (= 4 4) :named @p_2))) :rule cong :premises (t2))
(step t4 (cl (= @p_2 true)) :rule eq_simplify)
@@ -1006,22 +1016,12 @@
(step t9 (cl (! (not @p_5) :named @p_7) (! (not @p_3) :named @p_6) false) :rule equiv_pos2)
(step t10 (cl (not @p_6) @p_1) :rule not_not)
(step t11 (cl @p_7 @p_1 false) :rule th_resolution :premises (t10 t9))
-(step t12 (cl false) :rule th_resolution :premises (a0 t8 t11))
+(step t12 (cl false) :rule th_resolution :premises (axiom0 t8 t11))
(step t13 (cl (not false)) :rule false)
(step t14 (cl) :rule resolution :premises (t12 t13))
-c6b09353a7be5ebe2570119db169d6f24068d0d9 9 0
+dc0e836fbcd3ce41657a40fc20a29630682bbe52 18 0
unsat
-(assume a0 (not (! (= (! (+ x$ (+ y$ z$)) :named @p_2) (! (+ y$ (+ z$ x$)) :named @p_3)) :named @p_1)))
-(step t2 (cl (or @p_1 (! (not (! (<= @p_2 @p_3) :named @p_6)) :named @p_4) (! (not (! (<= @p_3 @p_2) :named @p_7)) :named @p_5))) :rule la_disequality)
-(step t3 (cl @p_1 @p_4 @p_5) :rule or :premises (t2))
-(step t4 (cl @p_4 @p_5) :rule resolution :premises (t3 a0))
-(step t5 (cl @p_6) :rule la_generic :args (1))
-(step t6 (cl @p_5) :rule resolution :premises (t4 t5))
-(step t7 (cl @p_7) :rule la_generic :args (1))
-(step t8 (cl) :rule resolution :premises (t7 t6))
-91dfb7793d7cbf20aa8e7b00578ee445d34e2640 18 0
-unsat
-(assume a0 (! (not (! (< 5 (! (ite (! (<= 3 8) :named @p_1) 8 3) :named @p_2)) :named @p_4)) :named @p_6))
+(assume axiom0 (! (not (! (< 5 (! (ite (! (<= 3 8) :named @p_1) 8 3) :named @p_2)) :named @p_4)) :named @p_6))
(step t2 (cl (= @p_1 true)) :rule comp_simplify)
(step t3 (cl (= @p_2 (! (ite true 8 3) :named @p_3))) :rule cong :premises (t2))
(step t4 (cl (= 8 @p_3)) :rule ite_simplify)
@@ -1035,17 +1035,17 @@
(step t12 (cl (! (not @p_8) :named @p_10) (! (not @p_6) :named @p_9) false) :rule equiv_pos2)
(step t13 (cl (not @p_9) @p_4) :rule not_not)
(step t14 (cl @p_10 @p_4 false) :rule th_resolution :premises (t13 t12))
-(step t15 (cl false) :rule th_resolution :premises (a0 t11 t14))
+(step t15 (cl false) :rule th_resolution :premises (axiom0 t11 t14))
(step t16 (cl (not false)) :rule false)
(step t17 (cl) :rule resolution :premises (t15 t16))
-97cec8dc2da703d81d93c4024dc370fb1ecba1f5 52 0
+00e71b7773518acdf4ff42fd31ed0e8e2cc40c59 52 0
unsat
-(assume a0 (! (not (! (<= (! (ite (! (< (! (+ x$ y$) :named @p_1) 0.0) :named @p_6) (! (- @p_1) :named @p_7) @p_1) :named @p_3) (+ (! (ite (! (< x$ 0.0) :named @p_8) (! (- x$) :named @p_9) x$) :named @p_4) (! (ite (! (< y$ 0.0) :named @p_10) (! (- y$) :named @p_11) y$) :named @p_5))) :named @p_15)) :named @p_2))
+(assume axiom0 (! (not (! (<= (! (ite (! (< (! (+ x$ y$) :named @p_1) 0.0) :named @p_6) (! (- @p_1) :named @p_7) @p_1) :named @p_3) (+ (! (ite (! (< x$ 0.0) :named @p_8) (! (- x$) :named @p_9) x$) :named @p_4) (! (ite (! (< y$ 0.0) :named @p_10) (! (- y$) :named @p_11) y$) :named @p_5))) :named @p_15)) :named @p_2))
(step t2 (cl (! (= @p_2 (! (and (! (not (! (<= @p_3 (+ @p_4 @p_5)) :named @p_28)) :named @p_17) (! (ite @p_6 (! (= @p_7 @p_3) :named @p_20) (! (= @p_1 @p_3) :named @p_19)) :named @p_18) (! (ite @p_8 (! (= @p_9 @p_4) :named @p_23) (! (= x$ @p_4) :named @p_22)) :named @p_21) (! (ite @p_10 (! (= @p_11 @p_5) :named @p_26) (! (= y$ @p_5) :named @p_25)) :named @p_24)) :named @p_13)) :named @p_12)) :rule ite_intro)
(step t3 (cl (! (not @p_12) :named @p_16) (! (not @p_2) :named @p_14) @p_13) :rule equiv_pos2)
(step t4 (cl (not @p_14) @p_15) :rule not_not)
(step t5 (cl @p_16 @p_15 @p_13) :rule th_resolution :premises (t4 t3))
-(step t6 (cl @p_13) :rule th_resolution :premises (a0 t2 t5))
+(step t6 (cl @p_13) :rule th_resolution :premises (axiom0 t2 t5))
(step t7 (cl @p_17) :rule and :premises (t6))
(step t8 (cl @p_18) :rule and :premises (t6))
(step t9 (cl @p_6 @p_19) :rule ite1 :premises (t8))
@@ -1091,10 +1091,10 @@
(step t49 (cl @p_19) :rule resolution :premises (t9 t48))
(step t50 (cl @p_28 @p_36 @p_31 @p_29 @p_34) :rule la_generic :args (1.0 2.0 1 (- 1) (- 1)))
(step t51 (cl) :rule resolution :premises (t50 t7 t49 t45 t46 t43))
-7769e70c7b5fc90175ef68eb5528034a2de273a9 19 0
+402dc6e98a3b5a465e12e6bcdd5fca0ae68d74d8 19 0
unsat
-(assume a0 (not (= (p$ (! (< 2 3) :named @p_2)) (! (p$ true) :named @p_1))))
-(step t2 (cl (! (not (! (= @p_1 (! (ite @p_2 @p_1 (! (p$ false) :named @p_4)) :named @p_3)) :named @p_6)) :named @p_8)) :rule bfun_elim :premises (a0))
+(assume axiom0 (not (= (p$ (! (< 2 3) :named @p_2)) (! (p$ true) :named @p_1))))
+(step t2 (cl (! (not (! (= @p_1 (! (ite @p_2 @p_1 (! (p$ false) :named @p_4)) :named @p_3)) :named @p_6)) :named @p_8)) :rule bfun_elim :premises (axiom0))
(step t3 (cl (= @p_2 true)) :rule comp_simplify)
(step t4 (cl (= @p_3 (! (ite true @p_1 @p_4) :named @p_5))) :rule cong :premises (t3))
(step t5 (cl (= @p_1 @p_5)) :rule ite_simplify)
@@ -1111,9 +1111,9 @@
(step t16 (cl false) :rule th_resolution :premises (t2 t12 t15))
(step t17 (cl (not false)) :rule false)
(step t18 (cl) :rule resolution :premises (t16 t17))
-8efe160efd738ec7872179ed94f190d410e1ef4b 14 0
+ed3db2a47b567944ed8f84b91963c7783c1f6052 14 0
unsat
-(assume a0 (! (not (! (or (! (<= 4 (! (+ x$ 3) :named @p_1)) :named @p_2) (! (< x$ 1) :named @p_6)) :named @p_4)) :named @p_7))
+(assume axiom0 (! (not (! (or (! (<= 4 (! (+ x$ 3) :named @p_1)) :named @p_2) (! (< x$ 1) :named @p_6)) :named @p_4)) :named @p_7))
(step t2 (cl (= @p_1 (! (+ 3 x$) :named @p_3))) :rule sum_simplify)
(step t3 (cl (= @p_2 (! (<= 4 @p_3) :named @p_5))) :rule cong :premises (t2))
(step t4 (cl (= @p_4 (! (or @p_5 @p_6) :named @p_8))) :rule cong :premises (t3))
@@ -1121,26 +1121,26 @@
(step t6 (cl (! (not @p_9) :named @p_12) (! (not @p_7) :named @p_11) @p_10) :rule equiv_pos2)
(step t7 (cl (not @p_11) @p_4) :rule not_not)
(step t8 (cl @p_12 @p_4 @p_10) :rule th_resolution :premises (t7 t6))
-(step t9 (cl @p_10) :rule th_resolution :premises (a0 t5 t8))
+(step t9 (cl @p_10) :rule th_resolution :premises (axiom0 t5 t8))
(step t10 (cl (not @p_5)) :rule not_or :premises (t9))
(step t11 (cl (not @p_6)) :rule not_or :premises (t9))
(step t12 (cl @p_6 @p_5) :rule la_generic :args (1 1))
(step t13 (cl) :rule resolution :premises (t12 t10 t11))
-2644c68299be3dd9fabbbba4920be4f3ffe3485b 9 0
+d2678f4fb6d818fd1c6e93a61560f2dfba8a9409 9 0
unsat
-(assume a1 (! (= y$ (! (+ x$ 4) :named @p_1)) :named @p_2))
-(assume a2 (not (! (< 0 (- y$ x$)) :named @p_6)))
+(assume axiom1 (! (= y$ (! (+ x$ 4) :named @p_1)) :named @p_2))
+(assume axiom2 (not (! (< 0 (- y$ x$)) :named @p_6)))
(step t3 (cl (= @p_1 (! (+ 4 x$) :named @p_3))) :rule sum_simplify)
(step t4 (cl (! (= @p_2 (! (= y$ @p_3) :named @p_5)) :named @p_4)) :rule cong :premises (t3))
(step t5 (cl (not @p_4) (not @p_2) @p_5) :rule equiv_pos2)
-(step t6 (cl @p_5) :rule th_resolution :premises (a1 t4 t5))
+(step t6 (cl @p_5) :rule th_resolution :premises (axiom1 t4 t5))
(step t7 (cl @p_6 (not @p_5)) :rule la_generic :args (1 1))
-(step t8 (cl) :rule resolution :premises (t7 t6 a2))
-478778f1172d1db195bd4eb0883b9dd6613297c3 20 0
+(step t8 (cl) :rule resolution :premises (t7 t6 axiom2))
+4e88c3cf4e2da31d65e91a3805e3cea4a5a2813d 20 0
unsat
-(assume a0 (! (not (! (not (! (= (! (+ 2 2) :named @p_3) 5) :named @p_2)) :named @p_5)) :named @p_1))
+(assume axiom0 (! (not (! (not (! (= (! (+ 2 2) :named @p_3) 5) :named @p_2)) :named @p_5)) :named @p_1))
(step t2 (cl (! (not @p_1) :named @p_9) @p_2) :rule not_not)
-(step t3 (cl @p_2) :rule th_resolution :premises (t2 a0))
+(step t3 (cl @p_2) :rule th_resolution :premises (t2 axiom0))
(step t4 (cl (= @p_3 4)) :rule sum_simplify)
(step t5 (cl (= @p_2 (! (= 5 4) :named @p_4))) :rule cong :premises (t4))
(step t6 (cl (= @p_4 false)) :rule eq_simplify)
@@ -1157,23 +1157,23 @@
(step t17 (cl false) :rule th_resolution :premises (t3 t13 t16))
(step t18 (cl @p_6) :rule false)
(step t19 (cl) :rule resolution :premises (t17 t18))
-04820c02101d5d6a8a322ddf869652416ac9ae19 6 0
+3bbfe9f2086fe18bc1f9eeb965fef30f8b2c9daa 6 0
unsat
-(assume a0 (! (< (+ (* 3 x$) (* 7 a$)) 4) :named @p_3))
-(assume a1 (! (< 3 (* 2 x$)) :named @p_1))
-(assume a2 (not (! (< a$ 0) :named @p_2)))
+(assume axiom0 (! (< (+ (* 3 x$) (* 7 a$)) 4) :named @p_3))
+(assume axiom1 (! (< 3 (* 2 x$)) :named @p_1))
+(assume axiom2 (not (! (< a$ 0) :named @p_2)))
(step t4 (cl (not @p_1) @p_2 (not @p_3)) :rule la_generic :args ((div 3 2) 7 1))
-(step t5 (cl) :rule resolution :premises (t4 a0 a1 a2))
-699e547ad956b6867c5f571d9e08d46038579011 29 0
+(step t5 (cl) :rule resolution :premises (t4 axiom0 axiom1 axiom2))
+dbde8d1b71dac8b258507f86acdbe195bf64b2b7 29 0
unsat
-(assume a0 (! (not (! (= (! (or (! (<= 0 (! (+ y$ (! (* (! (- 1) :named @p_14) x$) :named @p_15)) :named @p_16)) :named @p_3) (or (! (not (! (<= 0 x$) :named @p_1)) :named @p_4) @p_1)) :named @p_2) (! (not false) :named @p_7)) :named @p_5)) :named @p_8))
+(assume axiom0 (! (not (! (= (! (or (! (<= 0 (! (+ y$ (! (* (! (- 1) :named @p_14) x$) :named @p_15)) :named @p_16)) :named @p_3) (or (! (not (! (<= 0 x$) :named @p_1)) :named @p_4) @p_1)) :named @p_2) (! (not false) :named @p_7)) :named @p_5)) :named @p_8))
(step t2 (cl (= @p_2 (! (or @p_3 @p_4 @p_1) :named @p_6))) :rule ac_simp)
(step t3 (cl (= @p_5 (! (= @p_6 @p_7) :named @p_9))) :rule cong :premises (t2))
(step t4 (cl (! (= @p_8 (! (not @p_9) :named @p_11)) :named @p_10)) :rule cong :premises (t3))
(step t5 (cl (! (not @p_10) :named @p_13) (! (not @p_8) :named @p_12) @p_11) :rule equiv_pos2)
(step t6 (cl (not @p_12) @p_5) :rule not_not)
(step t7 (cl @p_13 @p_5 @p_11) :rule th_resolution :premises (t6 t5))
-(step t8 (cl @p_11) :rule th_resolution :premises (a0 t4 t7))
+(step t8 (cl @p_11) :rule th_resolution :premises (axiom0 t4 t7))
(step t9 (cl (= @p_14 (- 1))) :rule minus_simplify)
(step t10 (cl (= @p_15 (! (* (- 1) x$) :named @p_17))) :rule cong :premises (t9))
(step t11 (cl (= @p_16 (! (+ y$ @p_17) :named @p_18))) :rule cong :premises (t10))
@@ -1194,15 +1194,37 @@
(step t26 (cl false) :rule th_resolution :premises (t8 t22 t25))
(step t27 (cl @p_7) :rule false)
(step t28 (cl) :rule resolution :premises (t26 t27))
-bf46578ff4814695a5afd6f19836b2d606a6b97c 62 0
+d6ba634ec42000181b77274dd94c91d844cf476e 21 0
unsat
-(assume a0 (! (not (! (or (! (and (! (< n$ m$) :named @p_1) (! (< m$ n$a) :named @p_3)) :named @p_11) (or (! (and @p_1 (! (= m$ n$a) :named @p_6)) :named @p_12) (or (! (and (! (< n$ n$a) :named @p_8) (! (< n$a m$) :named @p_2)) :named @p_13) (or (! (and (! (= n$ n$a) :named @p_5) @p_2) :named @p_14) (or (! (and (! (= n$ m$) :named @p_4) @p_3) :named @p_15) (or (! (and @p_2 (! (< m$ n$) :named @p_7)) :named @p_16) (or (! (and @p_2 @p_4) :named @p_17) (or (! (and (! (< n$a n$) :named @p_9) @p_1) :named @p_18) (or (! (and @p_5 @p_1) :named @p_19) (or (! (and @p_6 @p_7) :named @p_20) (or (! (and @p_7 @p_8) :named @p_21) (or (! (and @p_7 @p_5) :named @p_22) (or (! (and @p_3 @p_9) :named @p_23) (or (! (and @p_4 @p_8) :named @p_24) (or (! (and @p_6 @p_9) :named @p_25) (! (and @p_6 @p_4) :named @p_26)))))))))))))))) :named @p_10)) :named @p_27))
+(assume axiom0 (! (not (! (or (! (< (! (+ x$ x$) :named @p_11) (! (+ (! (* 2.0 x$) :named @p_10) 1.0) :named @p_9)) :named @p_1) (or false @p_1)) :named @p_2)) :named @p_3))
+(step t2 (cl (= @p_2 (! (or @p_1 false) :named @p_4))) :rule ac_simp)
+(step t3 (cl (! (= @p_3 (! (not @p_4) :named @p_6)) :named @p_5)) :rule cong :premises (t2))
+(step t4 (cl (! (not @p_5) :named @p_8) (! (not @p_3) :named @p_7) @p_6) :rule equiv_pos2)
+(step t5 (cl (not @p_7) @p_2) :rule not_not)
+(step t6 (cl @p_8 @p_2 @p_6) :rule th_resolution :premises (t5 t4))
+(step t7 (cl @p_6) :rule th_resolution :premises (axiom0 t3 t6))
+(step t8 (cl (= @p_9 (! (+ 1.0 @p_10) :named @p_12))) :rule sum_simplify)
+(step t9 (cl (= @p_1 (! (< @p_11 @p_12) :named @p_13))) :rule cong :premises (t8))
+(step t10 (cl (= @p_4 (! (or @p_13 false) :named @p_14))) :rule cong :premises (t9))
+(step t11 (cl (= @p_14 (! (or @p_13) :named @p_15))) :rule or_simplify)
+(step t12 (cl (= @p_15 @p_13)) :rule or_simplify)
+(step t13 (cl (= @p_4 @p_13)) :rule trans :premises (t10 t11 t12))
+(step t14 (cl (! (= @p_6 (! (not @p_13) :named @p_17)) :named @p_16)) :rule cong :premises (t13))
+(step t15 (cl (! (not @p_16) :named @p_19) (! (not @p_6) :named @p_18) @p_17) :rule equiv_pos2)
+(step t16 (cl (not @p_18) @p_4) :rule not_not)
+(step t17 (cl @p_19 @p_4 @p_17) :rule th_resolution :premises (t16 t15))
+(step t18 (cl @p_17) :rule th_resolution :premises (t7 t14 t17))
+(step t19 (cl @p_13) :rule la_tautology)
+(step t20 (cl) :rule resolution :premises (t19 t18))
+95657842b84a23b6c0020065f8c8597823332a77 62 0
+unsat
+(assume axiom0 (! (not (! (or (! (and (! (< n$ m$) :named @p_1) (! (< m$ n$a) :named @p_3)) :named @p_11) (or (! (and @p_1 (! (= m$ n$a) :named @p_6)) :named @p_12) (or (! (and (! (< n$ n$a) :named @p_8) (! (< n$a m$) :named @p_2)) :named @p_13) (or (! (and (! (= n$ n$a) :named @p_5) @p_2) :named @p_14) (or (! (and (! (= n$ m$) :named @p_4) @p_3) :named @p_15) (or (! (and @p_2 (! (< m$ n$) :named @p_7)) :named @p_16) (or (! (and @p_2 @p_4) :named @p_17) (or (! (and (! (< n$a n$) :named @p_9) @p_1) :named @p_18) (or (! (and @p_5 @p_1) :named @p_19) (or (! (and @p_6 @p_7) :named @p_20) (or (! (and @p_7 @p_8) :named @p_21) (or (! (and @p_7 @p_5) :named @p_22) (or (! (and @p_3 @p_9) :named @p_23) (or (! (and @p_4 @p_8) :named @p_24) (or (! (and @p_6 @p_9) :named @p_25) (! (and @p_6 @p_4) :named @p_26)))))))))))))))) :named @p_10)) :named @p_27))
(step t2 (cl (= @p_10 (! (or @p_11 @p_12 @p_13 @p_14 @p_15 @p_16 @p_17 @p_18 @p_19 @p_20 @p_21 @p_22 @p_23 @p_24 @p_25 @p_26) :named @p_28))) :rule ac_simp)
(step t3 (cl (! (= @p_27 (! (not @p_28) :named @p_30)) :named @p_29)) :rule cong :premises (t2))
(step t4 (cl (! (not @p_29) :named @p_32) (! (not @p_27) :named @p_31) @p_30) :rule equiv_pos2)
(step t5 (cl (not @p_31) @p_10) :rule not_not)
(step t6 (cl @p_32 @p_10 @p_30) :rule th_resolution :premises (t5 t4))
-(step t7 (cl @p_30) :rule th_resolution :premises (a0 t3 t6))
+(step t7 (cl @p_30) :rule th_resolution :premises (axiom0 t3 t6))
(step t8 (cl (not @p_11)) :rule not_or :premises (t7))
(step t9 (cl (! (not @p_1) :named @p_33) (! (not @p_3) :named @p_38)) :rule not_and :premises (t8))
(step t10 (cl (not @p_12)) :rule not_or :premises (t7))
@@ -1257,14 +1279,253 @@
(step t59 (cl @p_40) :rule resolution :premises (t17 t57))
(step t60 (cl @p_50) :rule resolution :premises (t42 t58))
(step t61 (cl) :rule resolution :premises (t35 t59 t54 t60))
-4aba1ea4675669f505d0a9484fd751da13811782 371 0
+ce9ae392bbb004278cf4005c9cdc4ec6dc2c6c3e 16 0
+unsat
+(assume axiom0 (! (not (! (not (! (exists ((?v0 Real)) false) :named @p_2)) :named @p_3)) :named @p_1))
+(step t2 (cl (! (not @p_1) :named @p_6) @p_2) :rule not_not)
+(step t3 (cl @p_2) :rule th_resolution :premises (t2 axiom0))
+(step t4 (cl (= @p_2 false)) :rule qnt_rm_unused)
+(step t5 (cl (= @p_3 (! (not false) :named @p_4))) :rule cong :premises (t4))
+(step t6 (cl (! (= @p_1 (! (not @p_4) :named @p_7)) :named @p_5)) :rule cong :premises (t5))
+(step t7 (cl (! (not @p_5) :named @p_8) @p_6 @p_7) :rule equiv_pos2)
+(step t8 (cl (not @p_6) @p_3) :rule not_not)
+(step t9 (cl @p_8 @p_3 @p_7) :rule th_resolution :premises (t8 t7))
+(step t10 (cl (not @p_7) false) :rule not_not)
+(step t11 (cl @p_8 @p_3 false) :rule th_resolution :premises (t10 t9))
+(step t12 (cl @p_7) :rule th_resolution :premises (t3 t6 t11))
+(step t13 (cl false) :rule th_resolution :premises (t10 t12))
+(step t14 (cl @p_4) :rule false)
+(step t15 (cl) :rule resolution :premises (t13 t14))
+be1ac1d3f1b32c69d4c86a7bb2fc544d58daa87d 16 0
+unsat
+(assume axiom0 (! (not (! (not (! (exists ((?v0 Int)) false) :named @p_2)) :named @p_3)) :named @p_1))
+(step t2 (cl (! (not @p_1) :named @p_6) @p_2) :rule not_not)
+(step t3 (cl @p_2) :rule th_resolution :premises (t2 axiom0))
+(step t4 (cl (= @p_2 false)) :rule qnt_rm_unused)
+(step t5 (cl (= @p_3 (! (not false) :named @p_4))) :rule cong :premises (t4))
+(step t6 (cl (! (= @p_1 (! (not @p_4) :named @p_7)) :named @p_5)) :rule cong :premises (t5))
+(step t7 (cl (! (not @p_5) :named @p_8) @p_6 @p_7) :rule equiv_pos2)
+(step t8 (cl (not @p_6) @p_3) :rule not_not)
+(step t9 (cl @p_8 @p_3 @p_7) :rule th_resolution :premises (t8 t7))
+(step t10 (cl (not @p_7) false) :rule not_not)
+(step t11 (cl @p_8 @p_3 false) :rule th_resolution :premises (t10 t9))
+(step t12 (cl @p_7) :rule th_resolution :premises (t3 t6 t11))
+(step t13 (cl false) :rule th_resolution :premises (t10 t12))
+(step t14 (cl @p_4) :rule false)
+(step t15 (cl) :rule resolution :premises (t13 t14))
+7c2862b95580cb7e81a355724e88267dce92987c 44 0
+unsat
+(assume axiom0 (! (not (! (forall ((?v0 Int) (?v1 Int)) (! (=> (! (and (! (= 0 ?v0) :named @p_2) (! (= 1 ?v1) :named @p_4)) :named @p_6) (! (not (! (= ?v0 ?v1) :named @p_8)) :named @p_10)) :named @p_12)) :named @p_1)) :named @p_14))
+(anchor :step t2 :args ((:= (?v0 Int) 0) (:= (?v1 Int) 1)))
+(step t2.t1 (cl @p_2) :rule refl)
+(step t2.t2 (cl (= @p_2 (! (= 0 0) :named @p_3))) :rule cong :premises (t2.t1))
+(step t2.t3 (cl @p_4) :rule refl)
+(step t2.t4 (cl (= @p_4 (! (= 1 1) :named @p_5))) :rule cong :premises (t2.t3))
+(step t2.t5 (cl (= @p_6 (! (and @p_3 @p_5) :named @p_7))) :rule cong :premises (t2.t2 t2.t4))
+(step t2.t6 (cl @p_2) :rule refl)
+(step t2.t7 (cl @p_4) :rule refl)
+(step t2.t8 (cl (= @p_8 (! (= 0 1) :named @p_9))) :rule cong :premises (t2.t6 t2.t7))
+(step t2.t9 (cl (= @p_10 (! (not @p_9) :named @p_11))) :rule cong :premises (t2.t8))
+(step t2.t10 (cl (= @p_12 (! (=> @p_7 @p_11) :named @p_13))) :rule cong :premises (t2.t5 t2.t9))
+(step t2 (cl (= @p_1 @p_13)) :rule onepoint)
+(step t3 (cl (! (= @p_14 (! (not @p_13) :named @p_16)) :named @p_15)) :rule cong :premises (t2))
+(step t4 (cl (! (not @p_15) :named @p_18) (! (not @p_14) :named @p_17) @p_16) :rule equiv_pos2)
+(step t5 (cl (not @p_17) @p_1) :rule not_not)
+(step t6 (cl @p_18 @p_1 @p_16) :rule th_resolution :premises (t5 t4))
+(step t7 (cl @p_16) :rule th_resolution :premises (axiom0 t3 t6))
+(step t8 (cl (! (= @p_16 (! (and @p_7 (! (not @p_11) :named @p_23)) :named @p_20)) :named @p_19)) :rule bool_simplify)
+(step t9 (cl (! (not @p_19) :named @p_22) (! (not @p_16) :named @p_21) @p_20) :rule equiv_pos2)
+(step t10 (cl (not @p_21) @p_13) :rule not_not)
+(step t11 (cl @p_22 @p_13 @p_20) :rule th_resolution :premises (t10 t9))
+(step t12 (cl @p_20) :rule th_resolution :premises (t7 t8 t11))
+(step t13 (cl (! (= @p_20 (! (and @p_3 @p_5 @p_23) :named @p_25)) :named @p_24)) :rule ac_simp)
+(step t14 (cl (not @p_24) (not @p_20) @p_25) :rule equiv_pos2)
+(step t15 (cl @p_25) :rule th_resolution :premises (t12 t13 t14))
+(step t16 (cl (= @p_3 true)) :rule eq_simplify)
+(step t17 (cl (= @p_5 true)) :rule eq_simplify)
+(step t18 (cl (= @p_9 false)) :rule eq_simplify)
+(step t19 (cl (= @p_11 (! (not false) :named @p_26))) :rule cong :premises (t18))
+(step t20 (cl (= @p_26 true)) :rule not_simplify)
+(step t21 (cl (= @p_11 true)) :rule trans :premises (t19 t20))
+(step t22 (cl (= @p_23 (! (not true) :named @p_27))) :rule cong :premises (t21))
+(step t23 (cl (= @p_27 false)) :rule not_simplify)
+(step t24 (cl (= @p_23 false)) :rule trans :premises (t22 t23))
+(step t25 (cl (= @p_25 (! (and true true false) :named @p_28))) :rule cong :premises (t16 t17 t24))
+(step t26 (cl (= @p_28 (! (and false) :named @p_29))) :rule and_simplify)
+(step t27 (cl (= @p_29 false)) :rule and_simplify)
+(step t28 (cl (! (= @p_25 false) :named @p_30)) :rule trans :premises (t25 t26 t27))
+(step t29 (cl (not @p_30) (not @p_25) false) :rule equiv_pos2)
+(step t30 (cl false) :rule th_resolution :premises (t15 t28 t29))
+(step t31 (cl @p_26) :rule false)
+(step t32 (cl) :rule resolution :premises (t30 t31))
+632d72943748607b3a6a192dc119caef23e9e71d 74 0
unsat
-(assume a0 (! (not (! (=> (! (and (! (= x3$ (- (! (ite (! (< x2$ 0) :named @p_30) (! (- x2$) :named @p_31) x2$) :named @p_21) x1$)) :named @p_9) (and (! (= x4$ (- (! (ite (! (< x3$ 0) :named @p_32) (! (- x3$) :named @p_33) x3$) :named @p_22) x2$)) :named @p_10) (and (! (= x5$ (- (! (ite (! (< x4$ 0) :named @p_34) (! (- x4$) :named @p_35) x4$) :named @p_23) x3$)) :named @p_11) (and (! (= x6$ (- (! (ite (! (< x5$ 0) :named @p_36) (! (- x5$) :named @p_37) x5$) :named @p_24) x4$)) :named @p_12) (and (! (= x7$ (- (! (ite (! (< x6$ 0) :named @p_38) (! (- x6$) :named @p_39) x6$) :named @p_25) x5$)) :named @p_13) (and (! (= x8$ (- (! (ite (! (< x7$ 0) :named @p_40) (! (- x7$) :named @p_41) x7$) :named @p_26) x6$)) :named @p_14) (and (! (= x9$ (- (! (ite (! (< x8$ 0) :named @p_42) (! (- x8$) :named @p_43) x8$) :named @p_27) x7$)) :named @p_15) (and (! (= x10$ (- (! (ite (! (< x9$ 0) :named @p_44) (! (- x9$) :named @p_45) x9$) :named @p_28) x8$)) :named @p_16) (! (= x11$ (- (! (ite (! (< x10$ 0) :named @p_46) (! (- x10$) :named @p_47) x10$) :named @p_29) x9$)) :named @p_17))))))))) :named @p_2) (! (and (! (= x1$ x10$) :named @p_70) (! (= x2$ x11$) :named @p_71)) :named @p_3)) :named @p_7)) :named @p_1))
+(define-fun veriT_sk0 () Int (! (choice ((veriT_vr2 Int)) (not (forall ((veriT_vr3 Int)) (! (=> (! (< veriT_vr2 veriT_vr3) :named @p_30) (! (< (! (+ 1 (! (* 2 veriT_vr2) :named @p_32)) :named @p_33) (! (* 2 veriT_vr3) :named @p_35)) :named @p_36)) :named @p_37)))) :named @p_43))
+(define-fun veriT_sk1 () Int (! (choice ((veriT_vr3 Int)) (not (=> (< @p_43 veriT_vr3) (< (+ 1 (* 2 @p_43)) @p_35)))) :named @p_44))
+(assume axiom0 (! (not (! (forall ((?v0 Int) (?v1 Int)) (! (=> (! (< ?v0 ?v1) :named @p_2) (! (< (! (+ (! (* 2 ?v0) :named @p_5) 1) :named @p_7) (! (* 2 ?v1) :named @p_10)) :named @p_12)) :named @p_14)) :named @p_1)) :named @p_16))
+(anchor :step t2 :args ((:= (?v0 Int) veriT_vr0) (:= (?v1 Int) veriT_vr1)))
+(step t2.t1 (cl (! (= ?v0 veriT_vr0) :named @p_4)) :rule refl)
+(step t2.t2 (cl (! (= ?v1 veriT_vr1) :named @p_9)) :rule refl)
+(step t2.t3 (cl (= @p_2 (! (< veriT_vr0 veriT_vr1) :named @p_3))) :rule cong :premises (t2.t1 t2.t2))
+(step t2.t4 (cl @p_4) :rule refl)
+(step t2.t5 (cl (= @p_5 (! (* 2 veriT_vr0) :named @p_6))) :rule cong :premises (t2.t4))
+(step t2.t6 (cl (= @p_7 (! (+ @p_6 1) :named @p_8))) :rule cong :premises (t2.t5))
+(step t2.t7 (cl @p_9) :rule refl)
+(step t2.t8 (cl (= @p_10 (! (* 2 veriT_vr1) :named @p_11))) :rule cong :premises (t2.t7))
+(step t2.t9 (cl (= @p_12 (! (< @p_8 @p_11) :named @p_13))) :rule cong :premises (t2.t6 t2.t8))
+(step t2.t10 (cl (= @p_14 (! (=> @p_3 @p_13) :named @p_15))) :rule cong :premises (t2.t3 t2.t9))
+(step t2 (cl (= @p_1 (! (forall ((veriT_vr0 Int) (veriT_vr1 Int)) @p_15) :named @p_17))) :rule bind)
+(step t3 (cl (! (= @p_16 (! (not @p_17) :named @p_19)) :named @p_18)) :rule cong :premises (t2))
+(step t4 (cl (! (not @p_18) :named @p_21) (! (not @p_16) :named @p_20) @p_19) :rule equiv_pos2)
+(step t5 (cl (not @p_20) @p_1) :rule not_not)
+(step t6 (cl @p_21 @p_1 @p_19) :rule th_resolution :premises (t5 t4))
+(step t7 (cl @p_19) :rule th_resolution :premises (axiom0 t3 t6))
+(anchor :step t8 :args ((veriT_vr0 Int) (veriT_vr1 Int)))
+(step t8.t1 (cl (= @p_8 (! (+ 1 @p_6) :named @p_22))) :rule sum_simplify)
+(step t8.t2 (cl (= @p_13 (! (< @p_22 @p_11) :named @p_23))) :rule cong :premises (t8.t1))
+(step t8.t3 (cl (= @p_15 (! (=> @p_3 @p_23) :named @p_24))) :rule cong :premises (t8.t2))
+(step t8 (cl (= @p_17 (! (forall ((veriT_vr0 Int) (veriT_vr1 Int)) @p_24) :named @p_25))) :rule bind)
+(step t9 (cl (! (= @p_19 (! (not @p_25) :named @p_27)) :named @p_26)) :rule cong :premises (t8))
+(step t10 (cl (! (not @p_26) :named @p_29) (! (not @p_19) :named @p_28) @p_27) :rule equiv_pos2)
+(step t11 (cl (not @p_28) @p_17) :rule not_not)
+(step t12 (cl @p_29 @p_17 @p_27) :rule th_resolution :premises (t11 t10))
+(step t13 (cl @p_27) :rule th_resolution :premises (t7 t9 t12))
+(anchor :step t14 :args ((:= (veriT_vr0 Int) veriT_vr2) (:= (veriT_vr1 Int) veriT_vr3)))
+(step t14.t1 (cl (! (= veriT_vr0 veriT_vr2) :named @p_31)) :rule refl)
+(step t14.t2 (cl (! (= veriT_vr1 veriT_vr3) :named @p_34)) :rule refl)
+(step t14.t3 (cl (= @p_3 @p_30)) :rule cong :premises (t14.t1 t14.t2))
+(step t14.t4 (cl @p_31) :rule refl)
+(step t14.t5 (cl (= @p_6 @p_32)) :rule cong :premises (t14.t4))
+(step t14.t6 (cl (= @p_22 @p_33)) :rule cong :premises (t14.t5))
+(step t14.t7 (cl @p_34) :rule refl)
+(step t14.t8 (cl (= @p_11 @p_35)) :rule cong :premises (t14.t7))
+(step t14.t9 (cl (= @p_23 @p_36)) :rule cong :premises (t14.t6 t14.t8))
+(step t14.t10 (cl (= @p_24 @p_37)) :rule cong :premises (t14.t3 t14.t9))
+(step t14 (cl (= @p_25 (! (forall ((veriT_vr2 Int) (veriT_vr3 Int)) @p_37) :named @p_38))) :rule bind)
+(step t15 (cl (! (= @p_27 (! (not @p_38) :named @p_40)) :named @p_39)) :rule cong :premises (t14))
+(step t16 (cl (! (not @p_39) :named @p_42) (! (not @p_27) :named @p_41) @p_40) :rule equiv_pos2)
+(step t17 (cl (not @p_41) @p_25) :rule not_not)
+(step t18 (cl @p_42 @p_25 @p_40) :rule th_resolution :premises (t17 t16))
+(step t19 (cl @p_40) :rule th_resolution :premises (t13 t15 t18))
+(anchor :step t20 :args ((:= (veriT_vr2 Int) veriT_sk0) (:= (veriT_vr3 Int) veriT_sk1)))
+(step t20.t1 (cl (! (= veriT_vr2 veriT_sk0) :named @p_46)) :rule refl)
+(step t20.t2 (cl (! (= veriT_vr3 veriT_sk1) :named @p_49)) :rule refl)
+(step t20.t3 (cl (= @p_30 (! (< veriT_sk0 veriT_sk1) :named @p_45))) :rule cong :premises (t20.t1 t20.t2))
+(step t20.t4 (cl @p_46) :rule refl)
+(step t20.t5 (cl (= @p_32 (! (* 2 veriT_sk0) :named @p_47))) :rule cong :premises (t20.t4))
+(step t20.t6 (cl (= @p_33 (! (+ 1 @p_47) :named @p_48))) :rule cong :premises (t20.t5))
+(step t20.t7 (cl @p_49) :rule refl)
+(step t20.t8 (cl (= @p_35 (! (* 2 veriT_sk1) :named @p_50))) :rule cong :premises (t20.t7))
+(step t20.t9 (cl (= @p_36 (! (< @p_48 @p_50) :named @p_51))) :rule cong :premises (t20.t6 t20.t8))
+(step t20.t10 (cl (= @p_37 (! (=> @p_45 @p_51) :named @p_52))) :rule cong :premises (t20.t3 t20.t9))
+(step t20 (cl (= @p_38 @p_52)) :rule sko_forall)
+(step t21 (cl (! (= @p_40 (! (not @p_52) :named @p_54)) :named @p_53)) :rule cong :premises (t20))
+(step t22 (cl (! (not @p_53) :named @p_56) (! (not @p_40) :named @p_55) @p_54) :rule equiv_pos2)
+(step t23 (cl (not @p_55) @p_38) :rule not_not)
+(step t24 (cl @p_56 @p_38 @p_54) :rule th_resolution :premises (t23 t22))
+(step t25 (cl @p_54) :rule th_resolution :premises (t19 t21 t24))
+(step t26 (cl (! (= @p_54 (! (and @p_45 (! (not @p_51) :named @p_61)) :named @p_58)) :named @p_57)) :rule bool_simplify)
+(step t27 (cl (! (not @p_57) :named @p_60) (! (not @p_54) :named @p_59) @p_58) :rule equiv_pos2)
+(step t28 (cl (not @p_59) @p_52) :rule not_not)
+(step t29 (cl @p_60 @p_52 @p_58) :rule th_resolution :premises (t28 t27))
+(step t30 (cl @p_58) :rule th_resolution :premises (t25 t26 t29))
+(step t31 (cl @p_45) :rule and :premises (t30))
+(step t32 (cl @p_61) :rule and :premises (t30))
+(step t33 (cl @p_51 (not @p_45)) :rule la_generic :args ((div 1 2) 1))
+(step t34 (cl) :rule resolution :premises (t33 t31 t32))
+b3000c2a2d0d57028ec3d5228440616f9e6398d4 84 0
+unsat
+(define-fun veriT_sk0 () Int (! (choice ((veriT_vr2 Int)) (not (forall ((veriT_vr3 Int)) (! (or (! (< 2 (! (+ veriT_vr2 veriT_vr3) :named @p_29)) :named @p_30) (! (= 2 @p_29) :named @p_34) (! (< @p_29 2) :named @p_35)) :named @p_36)))) :named @p_42))
+(define-fun veriT_sk1 () Int (! (choice ((veriT_vr3 Int)) (not (or (< 2 (! (+ @p_42 veriT_vr3) :named @p_43)) (= 2 @p_43) (< @p_43 2)))) :named @p_45))
+(assume axiom0 (! (not (! (forall ((?v0 Int) (?v1 Int)) (! (or (! (< 2 (! (+ ?v0 ?v1) :named @p_1)) :named @p_4) (! (or (! (= 2 @p_1) :named @p_9) (! (< @p_1 2) :named @p_11)) :named @p_13)) :named @p_15)) :named @p_2)) :named @p_17))
+(anchor :step t2 :args ((:= (?v0 Int) veriT_vr0) (:= (?v1 Int) veriT_vr1)))
+(step t2.t1 (cl (! (= ?v0 veriT_vr0) :named @p_6)) :rule refl)
+(step t2.t2 (cl (! (= ?v1 veriT_vr1) :named @p_7)) :rule refl)
+(step t2.t3 (cl (! (= @p_1 (! (+ veriT_vr0 veriT_vr1) :named @p_3)) :named @p_8)) :rule cong :premises (t2.t1 t2.t2))
+(step t2.t4 (cl (= @p_4 (! (< 2 @p_3) :named @p_5))) :rule cong :premises (t2.t3))
+(step t2.t5 (cl @p_6) :rule refl)
+(step t2.t6 (cl @p_7) :rule refl)
+(step t2.t7 (cl @p_8) :rule cong :premises (t2.t5 t2.t6))
+(step t2.t8 (cl (= @p_9 (! (= 2 @p_3) :named @p_10))) :rule cong :premises (t2.t7))
+(step t2.t9 (cl @p_6) :rule refl)
+(step t2.t10 (cl @p_7) :rule refl)
+(step t2.t11 (cl @p_8) :rule cong :premises (t2.t9 t2.t10))
+(step t2.t12 (cl (= @p_11 (! (< @p_3 2) :named @p_12))) :rule cong :premises (t2.t11))
+(step t2.t13 (cl (= @p_13 (! (or @p_10 @p_12) :named @p_14))) :rule cong :premises (t2.t8 t2.t12))
+(step t2.t14 (cl (= @p_15 (! (or @p_5 @p_14) :named @p_16))) :rule cong :premises (t2.t4 t2.t13))
+(step t2 (cl (= @p_2 (! (forall ((veriT_vr0 Int) (veriT_vr1 Int)) @p_16) :named @p_18))) :rule bind)
+(step t3 (cl (! (= @p_17 (! (not @p_18) :named @p_20)) :named @p_19)) :rule cong :premises (t2))
+(step t4 (cl (! (not @p_19) :named @p_22) (! (not @p_17) :named @p_21) @p_20) :rule equiv_pos2)
+(step t5 (cl (not @p_21) @p_2) :rule not_not)
+(step t6 (cl @p_22 @p_2 @p_20) :rule th_resolution :premises (t5 t4))
+(step t7 (cl @p_20) :rule th_resolution :premises (axiom0 t3 t6))
+(anchor :step t8 :args ((veriT_vr0 Int) (veriT_vr1 Int)))
+(step t8.t1 (cl (= @p_16 (! (or @p_5 @p_10 @p_12) :named @p_23))) :rule ac_simp)
+(step t8 (cl (= @p_18 (! (forall ((veriT_vr0 Int) (veriT_vr1 Int)) @p_23) :named @p_24))) :rule bind)
+(step t9 (cl (! (= @p_20 (! (not @p_24) :named @p_26)) :named @p_25)) :rule cong :premises (t8))
+(step t10 (cl (! (not @p_25) :named @p_28) (! (not @p_20) :named @p_27) @p_26) :rule equiv_pos2)
+(step t11 (cl (not @p_27) @p_18) :rule not_not)
+(step t12 (cl @p_28 @p_18 @p_26) :rule th_resolution :premises (t11 t10))
+(step t13 (cl @p_26) :rule th_resolution :premises (t7 t9 t12))
+(anchor :step t14 :args ((:= (veriT_vr0 Int) veriT_vr2) (:= (veriT_vr1 Int) veriT_vr3)))
+(step t14.t1 (cl (! (= veriT_vr0 veriT_vr2) :named @p_31)) :rule refl)
+(step t14.t2 (cl (! (= veriT_vr1 veriT_vr3) :named @p_32)) :rule refl)
+(step t14.t3 (cl (! (= @p_3 @p_29) :named @p_33)) :rule cong :premises (t14.t1 t14.t2))
+(step t14.t4 (cl (= @p_5 @p_30)) :rule cong :premises (t14.t3))
+(step t14.t5 (cl @p_31) :rule refl)
+(step t14.t6 (cl @p_32) :rule refl)
+(step t14.t7 (cl @p_33) :rule cong :premises (t14.t5 t14.t6))
+(step t14.t8 (cl (= @p_10 @p_34)) :rule cong :premises (t14.t7))
+(step t14.t9 (cl @p_31) :rule refl)
+(step t14.t10 (cl @p_32) :rule refl)
+(step t14.t11 (cl @p_33) :rule cong :premises (t14.t9 t14.t10))
+(step t14.t12 (cl (= @p_12 @p_35)) :rule cong :premises (t14.t11))
+(step t14.t13 (cl (= @p_23 @p_36)) :rule cong :premises (t14.t4 t14.t8 t14.t12))
+(step t14 (cl (= @p_24 (! (forall ((veriT_vr2 Int) (veriT_vr3 Int)) @p_36) :named @p_37))) :rule bind)
+(step t15 (cl (! (= @p_26 (! (not @p_37) :named @p_39)) :named @p_38)) :rule cong :premises (t14))
+(step t16 (cl (! (not @p_38) :named @p_41) (! (not @p_26) :named @p_40) @p_39) :rule equiv_pos2)
+(step t17 (cl (not @p_40) @p_24) :rule not_not)
+(step t18 (cl @p_41 @p_24 @p_39) :rule th_resolution :premises (t17 t16))
+(step t19 (cl @p_39) :rule th_resolution :premises (t13 t15 t18))
+(anchor :step t20 :args ((:= (veriT_vr2 Int) veriT_sk0) (:= (veriT_vr3 Int) veriT_sk1)))
+(step t20.t1 (cl (! (= veriT_vr2 veriT_sk0) :named @p_47)) :rule refl)
+(step t20.t2 (cl (! (= veriT_vr3 veriT_sk1) :named @p_48)) :rule refl)
+(step t20.t3 (cl (! (= @p_29 (! (+ veriT_sk0 veriT_sk1) :named @p_44)) :named @p_49)) :rule cong :premises (t20.t1 t20.t2))
+(step t20.t4 (cl (= @p_30 (! (< 2 @p_44) :named @p_46))) :rule cong :premises (t20.t3))
+(step t20.t5 (cl @p_47) :rule refl)
+(step t20.t6 (cl @p_48) :rule refl)
+(step t20.t7 (cl @p_49) :rule cong :premises (t20.t5 t20.t6))
+(step t20.t8 (cl (= @p_34 (! (= 2 @p_44) :named @p_50))) :rule cong :premises (t20.t7))
+(step t20.t9 (cl @p_47) :rule refl)
+(step t20.t10 (cl @p_48) :rule refl)
+(step t20.t11 (cl @p_49) :rule cong :premises (t20.t9 t20.t10))
+(step t20.t12 (cl (= @p_35 (! (< @p_44 2) :named @p_51))) :rule cong :premises (t20.t11))
+(step t20.t13 (cl (= @p_36 (! (or @p_46 @p_50 @p_51) :named @p_52))) :rule cong :premises (t20.t4 t20.t8 t20.t12))
+(step t20 (cl (= @p_37 @p_52)) :rule sko_forall)
+(step t21 (cl (! (= @p_39 (! (not @p_52) :named @p_54)) :named @p_53)) :rule cong :premises (t20))
+(step t22 (cl (! (not @p_53) :named @p_56) (! (not @p_39) :named @p_55) @p_54) :rule equiv_pos2)
+(step t23 (cl (not @p_55) @p_37) :rule not_not)
+(step t24 (cl @p_56 @p_37 @p_54) :rule th_resolution :premises (t23 t22))
+(step t25 (cl @p_54) :rule th_resolution :premises (t19 t21 t24))
+(step t26 (cl (not @p_46)) :rule not_or :premises (t25))
+(step t27 (cl (not @p_50)) :rule not_or :premises (t25))
+(step t28 (cl (not @p_51)) :rule not_or :premises (t25))
+(step t29 (cl (or @p_50 (! (not (! (<= 2 @p_44) :named @p_59)) :named @p_57) (! (not (! (<= @p_44 2) :named @p_60)) :named @p_58))) :rule la_disequality)
+(step t30 (cl @p_50 @p_57 @p_58) :rule or :premises (t29))
+(step t31 (cl @p_57 @p_58) :rule resolution :premises (t30 t27))
+(step t32 (cl @p_59 @p_51) :rule la_generic :args (1 1))
+(step t33 (cl @p_59) :rule resolution :premises (t32 t28))
+(step t34 (cl @p_58) :rule resolution :premises (t31 t33))
+(step t35 (cl @p_60 @p_46) :rule la_generic :args (1 1))
+(step t36 (cl) :rule resolution :premises (t35 t26 t34))
+ea93df392983d8a481a89ee529b9a9f976280447 371 0
+unsat
+(assume axiom0 (! (not (! (=> (! (and (! (= x3$ (- (! (ite (! (< x2$ 0) :named @p_30) (! (- x2$) :named @p_31) x2$) :named @p_21) x1$)) :named @p_9) (and (! (= x4$ (- (! (ite (! (< x3$ 0) :named @p_32) (! (- x3$) :named @p_33) x3$) :named @p_22) x2$)) :named @p_10) (and (! (= x5$ (- (! (ite (! (< x4$ 0) :named @p_34) (! (- x4$) :named @p_35) x4$) :named @p_23) x3$)) :named @p_11) (and (! (= x6$ (- (! (ite (! (< x5$ 0) :named @p_36) (! (- x5$) :named @p_37) x5$) :named @p_24) x4$)) :named @p_12) (and (! (= x7$ (- (! (ite (! (< x6$ 0) :named @p_38) (! (- x6$) :named @p_39) x6$) :named @p_25) x5$)) :named @p_13) (and (! (= x8$ (- (! (ite (! (< x7$ 0) :named @p_40) (! (- x7$) :named @p_41) x7$) :named @p_26) x6$)) :named @p_14) (and (! (= x9$ (- (! (ite (! (< x8$ 0) :named @p_42) (! (- x8$) :named @p_43) x8$) :named @p_27) x7$)) :named @p_15) (and (! (= x10$ (- (! (ite (! (< x9$ 0) :named @p_44) (! (- x9$) :named @p_45) x9$) :named @p_28) x8$)) :named @p_16) (! (= x11$ (- (! (ite (! (< x10$ 0) :named @p_46) (! (- x10$) :named @p_47) x10$) :named @p_29) x9$)) :named @p_17))))))))) :named @p_2) (! (and (! (= x1$ x10$) :named @p_70) (! (= x2$ x11$) :named @p_71)) :named @p_3)) :named @p_7)) :named @p_1))
(step t2 (cl (! (= @p_1 (! (and @p_2 (! (not @p_3) :named @p_18)) :named @p_5)) :named @p_4)) :rule bool_simplify)
(step t3 (cl (! (not @p_4) :named @p_8) (! (not @p_1) :named @p_6) @p_5) :rule equiv_pos2)
(step t4 (cl (not @p_6) @p_7) :rule not_not)
(step t5 (cl @p_8 @p_7 @p_5) :rule th_resolution :premises (t4 t3))
-(step t6 (cl @p_5) :rule th_resolution :premises (a0 t2 t5))
+(step t6 (cl @p_5) :rule th_resolution :premises (axiom0 t2 t5))
(step t7 (cl (! (= @p_5 (! (and @p_9 @p_10 @p_11 @p_12 @p_13 @p_14 @p_15 @p_16 @p_17 @p_18) :named @p_20)) :named @p_19)) :rule ac_simp)
(step t8 (cl (not @p_19) (not @p_5) @p_20) :rule equiv_pos2)
(step t9 (cl @p_20) :rule th_resolution :premises (t6 t7 t8))
@@ -1629,271 +1890,10 @@
(step t368 (cl @p_74) :rule resolution :premises (t31 t367))
(step t369 (cl @p_140) :rule resolution :premises (t107 t367 t368 t365))
(step t370 (cl) :rule resolution :premises (t243 t368 t327 t326 t366 t308 t369))
-8bfcf7a37e6d407d5cd3eb931a35cdc0c65c7e57 21 0
-unsat
-(assume a0 (! (not (! (or (! (< (! (+ x$ x$) :named @p_11) (! (+ (! (* 2.0 x$) :named @p_10) 1.0) :named @p_9)) :named @p_1) (or false @p_1)) :named @p_2)) :named @p_3))
-(step t2 (cl (= @p_2 (! (or @p_1 false) :named @p_4))) :rule ac_simp)
-(step t3 (cl (! (= @p_3 (! (not @p_4) :named @p_6)) :named @p_5)) :rule cong :premises (t2))
-(step t4 (cl (! (not @p_5) :named @p_8) (! (not @p_3) :named @p_7) @p_6) :rule equiv_pos2)
-(step t5 (cl (not @p_7) @p_2) :rule not_not)
-(step t6 (cl @p_8 @p_2 @p_6) :rule th_resolution :premises (t5 t4))
-(step t7 (cl @p_6) :rule th_resolution :premises (a0 t3 t6))
-(step t8 (cl (= @p_9 (! (+ 1.0 @p_10) :named @p_12))) :rule sum_simplify)
-(step t9 (cl (= @p_1 (! (< @p_11 @p_12) :named @p_13))) :rule cong :premises (t8))
-(step t10 (cl (= @p_4 (! (or @p_13 false) :named @p_14))) :rule cong :premises (t9))
-(step t11 (cl (= @p_14 (! (or @p_13) :named @p_15))) :rule or_simplify)
-(step t12 (cl (= @p_15 @p_13)) :rule or_simplify)
-(step t13 (cl (= @p_4 @p_13)) :rule trans :premises (t10 t11 t12))
-(step t14 (cl (! (= @p_6 (! (not @p_13) :named @p_17)) :named @p_16)) :rule cong :premises (t13))
-(step t15 (cl (! (not @p_16) :named @p_19) (! (not @p_6) :named @p_18) @p_17) :rule equiv_pos2)
-(step t16 (cl (not @p_18) @p_4) :rule not_not)
-(step t17 (cl @p_19 @p_4 @p_17) :rule th_resolution :premises (t16 t15))
-(step t18 (cl @p_17) :rule th_resolution :premises (t7 t14 t17))
-(step t19 (cl @p_13) :rule la_tautology)
-(step t20 (cl) :rule resolution :premises (t19 t18))
-3982a32a09aa6c7a103906438cf1f4eedfd441ab 16 0
-unsat
-(assume a0 (! (not (! (not (! (exists ((?v0 Int)) false) :named @p_2)) :named @p_3)) :named @p_1))
-(step t2 (cl (! (not @p_1) :named @p_6) @p_2) :rule not_not)
-(step t3 (cl @p_2) :rule th_resolution :premises (t2 a0))
-(step t4 (cl (= @p_2 false)) :rule qnt_rm_unused)
-(step t5 (cl (= @p_3 (! (not false) :named @p_4))) :rule cong :premises (t4))
-(step t6 (cl (! (= @p_1 (! (not @p_4) :named @p_7)) :named @p_5)) :rule cong :premises (t5))
-(step t7 (cl (! (not @p_5) :named @p_8) @p_6 @p_7) :rule equiv_pos2)
-(step t8 (cl (not @p_6) @p_3) :rule not_not)
-(step t9 (cl @p_8 @p_3 @p_7) :rule th_resolution :premises (t8 t7))
-(step t10 (cl (not @p_7) false) :rule not_not)
-(step t11 (cl @p_8 @p_3 false) :rule th_resolution :premises (t10 t9))
-(step t12 (cl @p_7) :rule th_resolution :premises (t3 t6 t11))
-(step t13 (cl false) :rule th_resolution :premises (t10 t12))
-(step t14 (cl @p_4) :rule false)
-(step t15 (cl) :rule resolution :premises (t13 t14))
-74d9e4df0e27627f80a8b0c06331b33d5f261c17 16 0
-unsat
-(assume a0 (! (not (! (not (! (exists ((?v0 Real)) false) :named @p_2)) :named @p_3)) :named @p_1))
-(step t2 (cl (! (not @p_1) :named @p_6) @p_2) :rule not_not)
-(step t3 (cl @p_2) :rule th_resolution :premises (t2 a0))
-(step t4 (cl (= @p_2 false)) :rule qnt_rm_unused)
-(step t5 (cl (= @p_3 (! (not false) :named @p_4))) :rule cong :premises (t4))
-(step t6 (cl (! (= @p_1 (! (not @p_4) :named @p_7)) :named @p_5)) :rule cong :premises (t5))
-(step t7 (cl (! (not @p_5) :named @p_8) @p_6 @p_7) :rule equiv_pos2)
-(step t8 (cl (not @p_6) @p_3) :rule not_not)
-(step t9 (cl @p_8 @p_3 @p_7) :rule th_resolution :premises (t8 t7))
-(step t10 (cl (not @p_7) false) :rule not_not)
-(step t11 (cl @p_8 @p_3 false) :rule th_resolution :premises (t10 t9))
-(step t12 (cl @p_7) :rule th_resolution :premises (t3 t6 t11))
-(step t13 (cl false) :rule th_resolution :premises (t10 t12))
-(step t14 (cl @p_4) :rule false)
-(step t15 (cl) :rule resolution :premises (t13 t14))
-17b588accea82f232f85c0c80edac2592c83c741 44 0
-unsat
-(assume a0 (! (not (! (forall ((?v0 Int) (?v1 Int)) (! (=> (! (and (! (= 0 ?v0) :named @p_2) (! (= 1 ?v1) :named @p_4)) :named @p_6) (! (not (! (= ?v0 ?v1) :named @p_8)) :named @p_10)) :named @p_12)) :named @p_1)) :named @p_14))
-(anchor :step t2 :args ((:= (?v0 Int) 0) (:= (?v1 Int) 1)))
-(step t2.t1 (cl @p_2) :rule refl)
-(step t2.t2 (cl (= @p_2 (! (= 0 0) :named @p_3))) :rule cong :premises (t2.t1))
-(step t2.t3 (cl @p_4) :rule refl)
-(step t2.t4 (cl (= @p_4 (! (= 1 1) :named @p_5))) :rule cong :premises (t2.t3))
-(step t2.t5 (cl (= @p_6 (! (and @p_3 @p_5) :named @p_7))) :rule cong :premises (t2.t2 t2.t4))
-(step t2.t6 (cl @p_2) :rule refl)
-(step t2.t7 (cl @p_4) :rule refl)
-(step t2.t8 (cl (= @p_8 (! (= 0 1) :named @p_9))) :rule cong :premises (t2.t6 t2.t7))
-(step t2.t9 (cl (= @p_10 (! (not @p_9) :named @p_11))) :rule cong :premises (t2.t8))
-(step t2.t10 (cl (= @p_12 (! (=> @p_7 @p_11) :named @p_13))) :rule cong :premises (t2.t5 t2.t9))
-(step t2 (cl (= @p_1 @p_13)) :rule onepoint)
-(step t3 (cl (! (= @p_14 (! (not @p_13) :named @p_16)) :named @p_15)) :rule cong :premises (t2))
-(step t4 (cl (! (not @p_15) :named @p_18) (! (not @p_14) :named @p_17) @p_16) :rule equiv_pos2)
-(step t5 (cl (not @p_17) @p_1) :rule not_not)
-(step t6 (cl @p_18 @p_1 @p_16) :rule th_resolution :premises (t5 t4))
-(step t7 (cl @p_16) :rule th_resolution :premises (a0 t3 t6))
-(step t8 (cl (! (= @p_16 (! (and @p_7 (! (not @p_11) :named @p_23)) :named @p_20)) :named @p_19)) :rule bool_simplify)
-(step t9 (cl (! (not @p_19) :named @p_22) (! (not @p_16) :named @p_21) @p_20) :rule equiv_pos2)
-(step t10 (cl (not @p_21) @p_13) :rule not_not)
-(step t11 (cl @p_22 @p_13 @p_20) :rule th_resolution :premises (t10 t9))
-(step t12 (cl @p_20) :rule th_resolution :premises (t7 t8 t11))
-(step t13 (cl (! (= @p_20 (! (and @p_3 @p_5 @p_23) :named @p_25)) :named @p_24)) :rule ac_simp)
-(step t14 (cl (not @p_24) (not @p_20) @p_25) :rule equiv_pos2)
-(step t15 (cl @p_25) :rule th_resolution :premises (t12 t13 t14))
-(step t16 (cl (= @p_3 true)) :rule eq_simplify)
-(step t17 (cl (= @p_5 true)) :rule eq_simplify)
-(step t18 (cl (= @p_9 false)) :rule eq_simplify)
-(step t19 (cl (= @p_11 (! (not false) :named @p_26))) :rule cong :premises (t18))
-(step t20 (cl (= @p_26 true)) :rule not_simplify)
-(step t21 (cl (= @p_11 true)) :rule trans :premises (t19 t20))
-(step t22 (cl (= @p_23 (! (not true) :named @p_27))) :rule cong :premises (t21))
-(step t23 (cl (= @p_27 false)) :rule not_simplify)
-(step t24 (cl (= @p_23 false)) :rule trans :premises (t22 t23))
-(step t25 (cl (= @p_25 (! (and true true false) :named @p_28))) :rule cong :premises (t16 t17 t24))
-(step t26 (cl (= @p_28 (! (and false) :named @p_29))) :rule and_simplify)
-(step t27 (cl (= @p_29 false)) :rule and_simplify)
-(step t28 (cl (! (= @p_25 false) :named @p_30)) :rule trans :premises (t25 t26 t27))
-(step t29 (cl (not @p_30) (not @p_25) false) :rule equiv_pos2)
-(step t30 (cl false) :rule th_resolution :premises (t15 t28 t29))
-(step t31 (cl @p_26) :rule false)
-(step t32 (cl) :rule resolution :premises (t30 t31))
-126e26a1f138f1b616eeae4aad01c11068cd71e0 74 0
-unsat
-(define-fun veriT_sk0 () Int (! (choice ((veriT_vr2 Int)) (not (forall ((veriT_vr3 Int)) (! (=> (! (< veriT_vr2 veriT_vr3) :named @p_30) (! (< (! (+ 1 (! (* 2 veriT_vr2) :named @p_32)) :named @p_33) (! (* 2 veriT_vr3) :named @p_35)) :named @p_36)) :named @p_37)))) :named @p_43))
-(define-fun veriT_sk1 () Int (! (choice ((veriT_vr3 Int)) (not (=> (< @p_43 veriT_vr3) (< (+ 1 (* 2 @p_43)) @p_35)))) :named @p_44))
-(assume a0 (! (not (! (forall ((?v0 Int) (?v1 Int)) (! (=> (! (< ?v0 ?v1) :named @p_2) (! (< (! (+ (! (* 2 ?v0) :named @p_5) 1) :named @p_7) (! (* 2 ?v1) :named @p_10)) :named @p_12)) :named @p_14)) :named @p_1)) :named @p_16))
-(anchor :step t2 :args ((:= (?v0 Int) veriT_vr0) (:= (?v1 Int) veriT_vr1)))
-(step t2.t1 (cl (! (= ?v0 veriT_vr0) :named @p_4)) :rule refl)
-(step t2.t2 (cl (! (= ?v1 veriT_vr1) :named @p_9)) :rule refl)
-(step t2.t3 (cl (= @p_2 (! (< veriT_vr0 veriT_vr1) :named @p_3))) :rule cong :premises (t2.t1 t2.t2))
-(step t2.t4 (cl @p_4) :rule refl)
-(step t2.t5 (cl (= @p_5 (! (* 2 veriT_vr0) :named @p_6))) :rule cong :premises (t2.t4))
-(step t2.t6 (cl (= @p_7 (! (+ @p_6 1) :named @p_8))) :rule cong :premises (t2.t5))
-(step t2.t7 (cl @p_9) :rule refl)
-(step t2.t8 (cl (= @p_10 (! (* 2 veriT_vr1) :named @p_11))) :rule cong :premises (t2.t7))
-(step t2.t9 (cl (= @p_12 (! (< @p_8 @p_11) :named @p_13))) :rule cong :premises (t2.t6 t2.t8))
-(step t2.t10 (cl (= @p_14 (! (=> @p_3 @p_13) :named @p_15))) :rule cong :premises (t2.t3 t2.t9))
-(step t2 (cl (= @p_1 (! (forall ((veriT_vr0 Int) (veriT_vr1 Int)) @p_15) :named @p_17))) :rule bind)
-(step t3 (cl (! (= @p_16 (! (not @p_17) :named @p_19)) :named @p_18)) :rule cong :premises (t2))
-(step t4 (cl (! (not @p_18) :named @p_21) (! (not @p_16) :named @p_20) @p_19) :rule equiv_pos2)
-(step t5 (cl (not @p_20) @p_1) :rule not_not)
-(step t6 (cl @p_21 @p_1 @p_19) :rule th_resolution :premises (t5 t4))
-(step t7 (cl @p_19) :rule th_resolution :premises (a0 t3 t6))
-(anchor :step t8 :args ((veriT_vr0 Int) (veriT_vr1 Int)))
-(step t8.t1 (cl (= @p_8 (! (+ 1 @p_6) :named @p_22))) :rule sum_simplify)
-(step t8.t2 (cl (= @p_13 (! (< @p_22 @p_11) :named @p_23))) :rule cong :premises (t8.t1))
-(step t8.t3 (cl (= @p_15 (! (=> @p_3 @p_23) :named @p_24))) :rule cong :premises (t8.t2))
-(step t8 (cl (= @p_17 (! (forall ((veriT_vr0 Int) (veriT_vr1 Int)) @p_24) :named @p_25))) :rule bind)
-(step t9 (cl (! (= @p_19 (! (not @p_25) :named @p_27)) :named @p_26)) :rule cong :premises (t8))
-(step t10 (cl (! (not @p_26) :named @p_29) (! (not @p_19) :named @p_28) @p_27) :rule equiv_pos2)
-(step t11 (cl (not @p_28) @p_17) :rule not_not)
-(step t12 (cl @p_29 @p_17 @p_27) :rule th_resolution :premises (t11 t10))
-(step t13 (cl @p_27) :rule th_resolution :premises (t7 t9 t12))
-(anchor :step t14 :args ((:= (veriT_vr0 Int) veriT_vr2) (:= (veriT_vr1 Int) veriT_vr3)))
-(step t14.t1 (cl (! (= veriT_vr0 veriT_vr2) :named @p_31)) :rule refl)
-(step t14.t2 (cl (! (= veriT_vr1 veriT_vr3) :named @p_34)) :rule refl)
-(step t14.t3 (cl (= @p_3 @p_30)) :rule cong :premises (t14.t1 t14.t2))
-(step t14.t4 (cl @p_31) :rule refl)
-(step t14.t5 (cl (= @p_6 @p_32)) :rule cong :premises (t14.t4))
-(step t14.t6 (cl (= @p_22 @p_33)) :rule cong :premises (t14.t5))
-(step t14.t7 (cl @p_34) :rule refl)
-(step t14.t8 (cl (= @p_11 @p_35)) :rule cong :premises (t14.t7))
-(step t14.t9 (cl (= @p_23 @p_36)) :rule cong :premises (t14.t6 t14.t8))
-(step t14.t10 (cl (= @p_24 @p_37)) :rule cong :premises (t14.t3 t14.t9))
-(step t14 (cl (= @p_25 (! (forall ((veriT_vr2 Int) (veriT_vr3 Int)) @p_37) :named @p_38))) :rule bind)
-(step t15 (cl (! (= @p_27 (! (not @p_38) :named @p_40)) :named @p_39)) :rule cong :premises (t14))
-(step t16 (cl (! (not @p_39) :named @p_42) (! (not @p_27) :named @p_41) @p_40) :rule equiv_pos2)
-(step t17 (cl (not @p_41) @p_25) :rule not_not)
-(step t18 (cl @p_42 @p_25 @p_40) :rule th_resolution :premises (t17 t16))
-(step t19 (cl @p_40) :rule th_resolution :premises (t13 t15 t18))
-(anchor :step t20 :args ((:= (veriT_vr2 Int) veriT_sk0) (:= (veriT_vr3 Int) veriT_sk1)))
-(step t20.t1 (cl (! (= veriT_vr2 veriT_sk0) :named @p_46)) :rule refl)
-(step t20.t2 (cl (! (= veriT_vr3 veriT_sk1) :named @p_49)) :rule refl)
-(step t20.t3 (cl (= @p_30 (! (< veriT_sk0 veriT_sk1) :named @p_45))) :rule cong :premises (t20.t1 t20.t2))
-(step t20.t4 (cl @p_46) :rule refl)
-(step t20.t5 (cl (= @p_32 (! (* 2 veriT_sk0) :named @p_47))) :rule cong :premises (t20.t4))
-(step t20.t6 (cl (= @p_33 (! (+ 1 @p_47) :named @p_48))) :rule cong :premises (t20.t5))
-(step t20.t7 (cl @p_49) :rule refl)
-(step t20.t8 (cl (= @p_35 (! (* 2 veriT_sk1) :named @p_50))) :rule cong :premises (t20.t7))
-(step t20.t9 (cl (= @p_36 (! (< @p_48 @p_50) :named @p_51))) :rule cong :premises (t20.t6 t20.t8))
-(step t20.t10 (cl (= @p_37 (! (=> @p_45 @p_51) :named @p_52))) :rule cong :premises (t20.t3 t20.t9))
-(step t20 (cl (= @p_38 @p_52)) :rule sko_forall)
-(step t21 (cl (! (= @p_40 (! (not @p_52) :named @p_54)) :named @p_53)) :rule cong :premises (t20))
-(step t22 (cl (! (not @p_53) :named @p_56) (! (not @p_40) :named @p_55) @p_54) :rule equiv_pos2)
-(step t23 (cl (not @p_55) @p_38) :rule not_not)
-(step t24 (cl @p_56 @p_38 @p_54) :rule th_resolution :premises (t23 t22))
-(step t25 (cl @p_54) :rule th_resolution :premises (t19 t21 t24))
-(step t26 (cl (! (= @p_54 (! (and @p_45 (! (not @p_51) :named @p_61)) :named @p_58)) :named @p_57)) :rule bool_simplify)
-(step t27 (cl (! (not @p_57) :named @p_60) (! (not @p_54) :named @p_59) @p_58) :rule equiv_pos2)
-(step t28 (cl (not @p_59) @p_52) :rule not_not)
-(step t29 (cl @p_60 @p_52 @p_58) :rule th_resolution :premises (t28 t27))
-(step t30 (cl @p_58) :rule th_resolution :premises (t25 t26 t29))
-(step t31 (cl @p_45) :rule and :premises (t30))
-(step t32 (cl @p_61) :rule and :premises (t30))
-(step t33 (cl @p_51 (not @p_45)) :rule la_generic :args ((div 1 2) 1))
-(step t34 (cl) :rule resolution :premises (t33 t31 t32))
-8ef63c3af9accda70a9adb945698c9dc83c299cb 84 0
-unsat
-(define-fun veriT_sk0 () Int (! (choice ((veriT_vr2 Int)) (not (forall ((veriT_vr3 Int)) (! (or (! (< 2 (! (+ veriT_vr2 veriT_vr3) :named @p_29)) :named @p_30) (! (= 2 @p_29) :named @p_34) (! (< @p_29 2) :named @p_35)) :named @p_36)))) :named @p_42))
-(define-fun veriT_sk1 () Int (! (choice ((veriT_vr3 Int)) (not (or (< 2 (! (+ @p_42 veriT_vr3) :named @p_43)) (= 2 @p_43) (< @p_43 2)))) :named @p_45))
-(assume a0 (! (not (! (forall ((?v0 Int) (?v1 Int)) (! (or (! (< 2 (! (+ ?v0 ?v1) :named @p_1)) :named @p_4) (! (or (! (= 2 @p_1) :named @p_9) (! (< @p_1 2) :named @p_11)) :named @p_13)) :named @p_15)) :named @p_2)) :named @p_17))
-(anchor :step t2 :args ((:= (?v0 Int) veriT_vr0) (:= (?v1 Int) veriT_vr1)))
-(step t2.t1 (cl (! (= ?v0 veriT_vr0) :named @p_6)) :rule refl)
-(step t2.t2 (cl (! (= ?v1 veriT_vr1) :named @p_7)) :rule refl)
-(step t2.t3 (cl (! (= @p_1 (! (+ veriT_vr0 veriT_vr1) :named @p_3)) :named @p_8)) :rule cong :premises (t2.t1 t2.t2))
-(step t2.t4 (cl (= @p_4 (! (< 2 @p_3) :named @p_5))) :rule cong :premises (t2.t3))
-(step t2.t5 (cl @p_6) :rule refl)
-(step t2.t6 (cl @p_7) :rule refl)
-(step t2.t7 (cl @p_8) :rule cong :premises (t2.t5 t2.t6))
-(step t2.t8 (cl (= @p_9 (! (= 2 @p_3) :named @p_10))) :rule cong :premises (t2.t7))
-(step t2.t9 (cl @p_6) :rule refl)
-(step t2.t10 (cl @p_7) :rule refl)
-(step t2.t11 (cl @p_8) :rule cong :premises (t2.t9 t2.t10))
-(step t2.t12 (cl (= @p_11 (! (< @p_3 2) :named @p_12))) :rule cong :premises (t2.t11))
-(step t2.t13 (cl (= @p_13 (! (or @p_10 @p_12) :named @p_14))) :rule cong :premises (t2.t8 t2.t12))
-(step t2.t14 (cl (= @p_15 (! (or @p_5 @p_14) :named @p_16))) :rule cong :premises (t2.t4 t2.t13))
-(step t2 (cl (= @p_2 (! (forall ((veriT_vr0 Int) (veriT_vr1 Int)) @p_16) :named @p_18))) :rule bind)
-(step t3 (cl (! (= @p_17 (! (not @p_18) :named @p_20)) :named @p_19)) :rule cong :premises (t2))
-(step t4 (cl (! (not @p_19) :named @p_22) (! (not @p_17) :named @p_21) @p_20) :rule equiv_pos2)
-(step t5 (cl (not @p_21) @p_2) :rule not_not)
-(step t6 (cl @p_22 @p_2 @p_20) :rule th_resolution :premises (t5 t4))
-(step t7 (cl @p_20) :rule th_resolution :premises (a0 t3 t6))
-(anchor :step t8 :args ((veriT_vr0 Int) (veriT_vr1 Int)))
-(step t8.t1 (cl (= @p_16 (! (or @p_5 @p_10 @p_12) :named @p_23))) :rule ac_simp)
-(step t8 (cl (= @p_18 (! (forall ((veriT_vr0 Int) (veriT_vr1 Int)) @p_23) :named @p_24))) :rule bind)
-(step t9 (cl (! (= @p_20 (! (not @p_24) :named @p_26)) :named @p_25)) :rule cong :premises (t8))
-(step t10 (cl (! (not @p_25) :named @p_28) (! (not @p_20) :named @p_27) @p_26) :rule equiv_pos2)
-(step t11 (cl (not @p_27) @p_18) :rule not_not)
-(step t12 (cl @p_28 @p_18 @p_26) :rule th_resolution :premises (t11 t10))
-(step t13 (cl @p_26) :rule th_resolution :premises (t7 t9 t12))
-(anchor :step t14 :args ((:= (veriT_vr0 Int) veriT_vr2) (:= (veriT_vr1 Int) veriT_vr3)))
-(step t14.t1 (cl (! (= veriT_vr0 veriT_vr2) :named @p_31)) :rule refl)
-(step t14.t2 (cl (! (= veriT_vr1 veriT_vr3) :named @p_32)) :rule refl)
-(step t14.t3 (cl (! (= @p_3 @p_29) :named @p_33)) :rule cong :premises (t14.t1 t14.t2))
-(step t14.t4 (cl (= @p_5 @p_30)) :rule cong :premises (t14.t3))
-(step t14.t5 (cl @p_31) :rule refl)
-(step t14.t6 (cl @p_32) :rule refl)
-(step t14.t7 (cl @p_33) :rule cong :premises (t14.t5 t14.t6))
-(step t14.t8 (cl (= @p_10 @p_34)) :rule cong :premises (t14.t7))
-(step t14.t9 (cl @p_31) :rule refl)
-(step t14.t10 (cl @p_32) :rule refl)
-(step t14.t11 (cl @p_33) :rule cong :premises (t14.t9 t14.t10))
-(step t14.t12 (cl (= @p_12 @p_35)) :rule cong :premises (t14.t11))
-(step t14.t13 (cl (= @p_23 @p_36)) :rule cong :premises (t14.t4 t14.t8 t14.t12))
-(step t14 (cl (= @p_24 (! (forall ((veriT_vr2 Int) (veriT_vr3 Int)) @p_36) :named @p_37))) :rule bind)
-(step t15 (cl (! (= @p_26 (! (not @p_37) :named @p_39)) :named @p_38)) :rule cong :premises (t14))
-(step t16 (cl (! (not @p_38) :named @p_41) (! (not @p_26) :named @p_40) @p_39) :rule equiv_pos2)
-(step t17 (cl (not @p_40) @p_24) :rule not_not)
-(step t18 (cl @p_41 @p_24 @p_39) :rule th_resolution :premises (t17 t16))
-(step t19 (cl @p_39) :rule th_resolution :premises (t13 t15 t18))
-(anchor :step t20 :args ((:= (veriT_vr2 Int) veriT_sk0) (:= (veriT_vr3 Int) veriT_sk1)))
-(step t20.t1 (cl (! (= veriT_vr2 veriT_sk0) :named @p_47)) :rule refl)
-(step t20.t2 (cl (! (= veriT_vr3 veriT_sk1) :named @p_48)) :rule refl)
-(step t20.t3 (cl (! (= @p_29 (! (+ veriT_sk0 veriT_sk1) :named @p_44)) :named @p_49)) :rule cong :premises (t20.t1 t20.t2))
-(step t20.t4 (cl (= @p_30 (! (< 2 @p_44) :named @p_46))) :rule cong :premises (t20.t3))
-(step t20.t5 (cl @p_47) :rule refl)
-(step t20.t6 (cl @p_48) :rule refl)
-(step t20.t7 (cl @p_49) :rule cong :premises (t20.t5 t20.t6))
-(step t20.t8 (cl (= @p_34 (! (= 2 @p_44) :named @p_50))) :rule cong :premises (t20.t7))
-(step t20.t9 (cl @p_47) :rule refl)
-(step t20.t10 (cl @p_48) :rule refl)
-(step t20.t11 (cl @p_49) :rule cong :premises (t20.t9 t20.t10))
-(step t20.t12 (cl (= @p_35 (! (< @p_44 2) :named @p_51))) :rule cong :premises (t20.t11))
-(step t20.t13 (cl (= @p_36 (! (or @p_46 @p_50 @p_51) :named @p_52))) :rule cong :premises (t20.t4 t20.t8 t20.t12))
-(step t20 (cl (= @p_37 @p_52)) :rule sko_forall)
-(step t21 (cl (! (= @p_39 (! (not @p_52) :named @p_54)) :named @p_53)) :rule cong :premises (t20))
-(step t22 (cl (! (not @p_53) :named @p_56) (! (not @p_39) :named @p_55) @p_54) :rule equiv_pos2)
-(step t23 (cl (not @p_55) @p_37) :rule not_not)
-(step t24 (cl @p_56 @p_37 @p_54) :rule th_resolution :premises (t23 t22))
-(step t25 (cl @p_54) :rule th_resolution :premises (t19 t21 t24))
-(step t26 (cl (not @p_46)) :rule not_or :premises (t25))
-(step t27 (cl (not @p_50)) :rule not_or :premises (t25))
-(step t28 (cl (not @p_51)) :rule not_or :premises (t25))
-(step t29 (cl (or @p_50 (! (not (! (<= 2 @p_44) :named @p_59)) :named @p_57) (! (not (! (<= @p_44 2) :named @p_60)) :named @p_58))) :rule la_disequality)
-(step t30 (cl @p_50 @p_57 @p_58) :rule or :premises (t29))
-(step t31 (cl @p_57 @p_58) :rule resolution :premises (t30 t27))
-(step t32 (cl @p_59 @p_51) :rule la_generic :args (1 1))
-(step t33 (cl @p_59) :rule resolution :premises (t32 t28))
-(step t34 (cl @p_58) :rule resolution :premises (t31 t33))
-(step t35 (cl @p_60 @p_46) :rule la_generic :args (1 1))
-(step t36 (cl) :rule resolution :premises (t35 t26 t34))
-009068a6f752b63c0ec5b63adbd0474d11cb4745 67 0
+eddc1b21e40e4136745e32bdb4d4d38dda531d49 67 0
unsat
(define-fun veriT_sk0 () Int (! (choice ((veriT_vr1 Int)) (not (! (ite (! (< 0 veriT_vr1) :named @p_27) (! (< 0 (! (+ 1 veriT_vr1) :named @p_29)) :named @p_30) (! (< veriT_vr1 1) :named @p_31)) :named @p_32))) :named @p_38))
-(assume a0 (! (not (! (forall ((?v0 Int)) (! (ite (! (< 0 ?v0) :named @p_2) (! (< 0 (! (+ ?v0 1) :named @p_5)) :named @p_7) (! (< ?v0 1) :named @p_9)) :named @p_11)) :named @p_1)) :named @p_13))
+(assume axiom0 (! (not (! (forall ((?v0 Int)) (! (ite (! (< 0 ?v0) :named @p_2) (! (< 0 (! (+ ?v0 1) :named @p_5)) :named @p_7) (! (< ?v0 1) :named @p_9)) :named @p_11)) :named @p_1)) :named @p_13))
(anchor :step t2 :args ((:= (?v0 Int) veriT_vr0)))
(step t2.t1 (cl (! (= ?v0 veriT_vr0) :named @p_4)) :rule refl)
(step t2.t2 (cl (= @p_2 (! (< 0 veriT_vr0) :named @p_3))) :rule cong :premises (t2.t1))
@@ -1908,7 +1908,7 @@
(step t4 (cl (! (not @p_15) :named @p_18) (! (not @p_13) :named @p_17) @p_16) :rule equiv_pos2)
(step t5 (cl (not @p_17) @p_1) :rule not_not)
(step t6 (cl @p_18 @p_1 @p_16) :rule th_resolution :premises (t5 t4))
-(step t7 (cl @p_16) :rule th_resolution :premises (a0 t3 t6))
+(step t7 (cl @p_16) :rule th_resolution :premises (axiom0 t3 t6))
(anchor :step t8 :args ((veriT_vr0 Int)))
(step t8.t1 (cl (= @p_6 (! (+ 1 veriT_vr0) :named @p_19))) :rule sum_simplify)
(step t8.t2 (cl (= @p_8 (! (< 0 @p_19) :named @p_20))) :rule cong :premises (t8.t1))
@@ -1958,10 +1958,10 @@
(step t32 (cl @p_50) :rule resolution :premises (t26 t31))
(step t33 (cl @p_43 @p_39) :rule la_generic :args (1 1))
(step t34 (cl) :rule resolution :premises (t33 t31 t32))
-72ef753af86f7012e75f73f9bc2d3adda07e800b 107 0
+3b346287f457d2c0655eb09f3d5280a06ca3434a 107 0
unsat
(define-fun veriT_sk0 () Int (! (choice ((veriT_vr1 Int)) (not (! (or (! (< veriT_vr1 0) :named @p_37) (! (< 0 veriT_vr1) :named @p_39)) :named @p_40))) :named @p_51))
-(assume a0 (! (not (! (< 0 (! (ite (! (forall ((?v0 Int)) (! (or (! (< ?v0 0) :named @p_2) (! (< 0 ?v0) :named @p_5)) :named @p_7)) :named @p_1) (! (- 1) :named @p_11) 3) :named @p_9)) :named @p_12)) :named @p_14))
+(assume axiom0 (! (not (! (< 0 (! (ite (! (forall ((?v0 Int)) (! (or (! (< ?v0 0) :named @p_2) (! (< 0 ?v0) :named @p_5)) :named @p_7)) :named @p_1) (! (- 1) :named @p_11) 3) :named @p_9)) :named @p_12)) :named @p_14))
(anchor :step t2 :args ((:= (?v0 Int) veriT_vr0)))
(step t2.t1 (cl (! (= ?v0 veriT_vr0) :named @p_4)) :rule refl)
(step t2.t2 (cl (= @p_2 (! (< veriT_vr0 0) :named @p_3))) :rule cong :premises (t2.t1))
@@ -1975,7 +1975,7 @@
(step t6 (cl (! (not @p_16) :named @p_19) (! (not @p_14) :named @p_18) @p_17) :rule equiv_pos2)
(step t7 (cl (not @p_18) @p_12) :rule not_not)
(step t8 (cl @p_19 @p_12 @p_17) :rule th_resolution :premises (t7 t6))
-(step t9 (cl @p_17) :rule th_resolution :premises (a0 t5 t8))
+(step t9 (cl @p_17) :rule th_resolution :premises (axiom0 t5 t8))
(step t10 (cl (= @p_11 (- 1))) :rule minus_simplify)
(step t11 (cl (= @p_13 (! (ite @p_10 (- 1) 3) :named @p_20))) :rule cong :premises (t10))
(step t12 (cl (= @p_15 (! (< 0 @p_20) :named @p_21))) :rule cong :premises (t11))
@@ -2066,17 +2066,17 @@
(step t71 (cl @p_85) :rule false)
(step t72 (cl @p_65 false) :rule or :premises (t70))
(step t73 (cl) :rule resolution :premises (t72 t63 t71))
-79c36cccfa675d72431ed7e3c2f6afc45f85907a 74 0
+f2b4e98e9e25f5e157253b295acc06d5501334ba 74 0
unsat
(define-fun veriT_sk0 () Int (! (choice ((veriT_vr2 Int)) (not (forall ((veriT_vr3 Int)) (! (=> (! (and (! (< 0 veriT_vr2) :named @p_27) (! (< 0 veriT_vr3) :named @p_28)) :named @p_29) (! (< 0 (! (+ veriT_vr2 veriT_vr3) :named @p_32)) :named @p_33)) :named @p_34)))) :named @p_40))
(define-fun veriT_sk1 () Int (! (choice ((veriT_vr3 Int)) (not (=> (and (< 0 @p_40) @p_28) (< 0 (+ @p_40 veriT_vr3))))) :named @p_41))
-(assume a0 (! (not (! (exists ((?v0 Int)) (! (forall ((?v1 Int) (?v2 Int)) (! (=> (! (and (! (< 0 ?v1) :named @p_8) (! (< 0 ?v2) :named @p_10)) :named @p_12) (! (< 0 (! (+ ?v1 ?v2) :named @p_16)) :named @p_18)) :named @p_20)) :named @p_2)) :named @p_1)) :named @p_3))
+(assume axiom0 (! (not (! (exists ((?v0 Int)) (! (forall ((?v1 Int) (?v2 Int)) (! (=> (! (and (! (< 0 ?v1) :named @p_8) (! (< 0 ?v2) :named @p_10)) :named @p_12) (! (< 0 (! (+ ?v1 ?v2) :named @p_16)) :named @p_18)) :named @p_20)) :named @p_2)) :named @p_1)) :named @p_3))
(step t2 (cl (= @p_1 @p_2)) :rule qnt_rm_unused)
(step t3 (cl (! (= @p_3 (! (not @p_2) :named @p_5)) :named @p_4)) :rule cong :premises (t2))
(step t4 (cl (! (not @p_4) :named @p_7) (! (not @p_3) :named @p_6) @p_5) :rule equiv_pos2)
(step t5 (cl (not @p_6) @p_1) :rule not_not)
(step t6 (cl @p_7 @p_1 @p_5) :rule th_resolution :premises (t5 t4))
-(step t7 (cl @p_5) :rule th_resolution :premises (a0 t3 t6))
+(step t7 (cl @p_5) :rule th_resolution :premises (axiom0 t3 t6))
(anchor :step t8 :args ((:= (?v1 Int) veriT_vr0) (:= (?v2 Int) veriT_vr1)))
(step t8.t1 (cl (! (= ?v1 veriT_vr0) :named @p_14)) :rule refl)
(step t8.t2 (cl (= @p_8 (! (< 0 veriT_vr0) :named @p_9))) :rule cong :premises (t8.t1))
@@ -2141,17 +2141,17 @@
(step t36 (cl @p_58) :rule and :premises (t33))
(step t37 (cl (not @p_43) @p_48 (not @p_42)) :rule la_generic :args (1 1 1))
(step t38 (cl) :rule resolution :premises (t37 t34 t35 t36))
-967b369bde4b5569be04c05ebef7c7c11a7dd949 77 0
+373457faab0c37c0d0d8b85464bbfee7e80cb98a 77 0
unsat
(define-fun veriT_sk0 () Int (! (choice ((veriT_vr2 Int)) (not (forall ((veriT_vr3 Real)) (! (=> (! (and (! (< 0 veriT_vr2) :named @p_32) (! (< 0.0 veriT_vr3) :named @p_33)) :named @p_34) (! (< (- 1) veriT_vr2) :named @p_36)) :named @p_37)))) :named @p_43))
(define-fun veriT_sk1 () Real (! (choice ((veriT_vr3 Real)) (not (=> (and (< 0 @p_43) @p_33) (< (- 1) @p_43)))) :named @p_45))
-(assume a0 (! (not (! (exists ((?v0 Int)) (! (forall ((?v1 Int) (?v2 Real)) (! (=> (! (and (! (< 0 ?v1) :named @p_9) (! (< 0.0 ?v2) :named @p_11)) :named @p_13) (! (< (! (- 1) :named @p_8) ?v1) :named @p_16)) :named @p_18)) :named @p_2)) :named @p_1)) :named @p_3))
+(assume axiom0 (! (not (! (exists ((?v0 Int)) (! (forall ((?v1 Int) (?v2 Real)) (! (=> (! (and (! (< 0 ?v1) :named @p_9) (! (< 0.0 ?v2) :named @p_11)) :named @p_13) (! (< (! (- 1) :named @p_8) ?v1) :named @p_16)) :named @p_18)) :named @p_2)) :named @p_1)) :named @p_3))
(step t2 (cl (= @p_1 @p_2)) :rule qnt_rm_unused)
(step t3 (cl (! (= @p_3 (! (not @p_2) :named @p_5)) :named @p_4)) :rule cong :premises (t2))
(step t4 (cl (! (not @p_4) :named @p_7) (! (not @p_3) :named @p_6) @p_5) :rule equiv_pos2)
(step t5 (cl (not @p_6) @p_1) :rule not_not)
(step t6 (cl @p_7 @p_1 @p_5) :rule th_resolution :premises (t5 t4))
-(step t7 (cl @p_5) :rule th_resolution :premises (a0 t3 t6))
+(step t7 (cl @p_5) :rule th_resolution :premises (axiom0 t3 t6))
(anchor :step t8 :args ((:= (?v1 Int) veriT_vr0) (:= (?v2 Real) veriT_vr1)))
(step t8.t1 (cl (! (= ?v1 veriT_vr0) :named @p_15)) :rule refl)
(step t8.t2 (cl (= @p_9 (! (< 0 veriT_vr0) :named @p_10))) :rule cong :premises (t8.t1))
@@ -2219,16 +2219,16 @@
(step t41 (cl @p_59) :rule and :premises (t39))
(step t42 (cl @p_49 (not @p_44)) :rule la_generic :args (1.0 1.0))
(step t43 (cl) :rule resolution :premises (t42 t40 t41))
-ad30a685f8670d5c182050b2758f164c00fa02de 49 0
+3b8147fceb728295aa24bd5bef9bf1721184b75c 49 0
unsat
(define-fun veriT_sk0 () Int (! (choice ((veriT_vr1 Int)) (not (! (or (! (< 0 veriT_vr1) :named @p_20) (! (< veriT_vr1 1) :named @p_22)) :named @p_23))) :named @p_29))
-(assume a0 (! (not (! (forall ((?v0 Int) (?v1 Int)) (! (or (! (< 0 ?v1) :named @p_9) (! (< ?v1 1) :named @p_12)) :named @p_2)) :named @p_1)) :named @p_3))
+(assume axiom0 (! (not (! (forall ((?v0 Int) (?v1 Int)) (! (or (! (< 0 ?v1) :named @p_9) (! (< ?v1 1) :named @p_12)) :named @p_2)) :named @p_1)) :named @p_3))
(step t2 (cl (= @p_1 (! (forall ((?v1 Int)) @p_2) :named @p_4))) :rule qnt_rm_unused)
(step t3 (cl (! (= @p_3 (! (not @p_4) :named @p_6)) :named @p_5)) :rule cong :premises (t2))
(step t4 (cl (! (not @p_5) :named @p_8) (! (not @p_3) :named @p_7) @p_6) :rule equiv_pos2)
(step t5 (cl (not @p_7) @p_1) :rule not_not)
(step t6 (cl @p_8 @p_1 @p_6) :rule th_resolution :premises (t5 t4))
-(step t7 (cl @p_6) :rule th_resolution :premises (a0 t3 t6))
+(step t7 (cl @p_6) :rule th_resolution :premises (axiom0 t3 t6))
(anchor :step t8 :args ((:= (?v1 Int) veriT_vr0)))
(step t8.t1 (cl (! (= ?v1 veriT_vr0) :named @p_11)) :rule refl)
(step t8.t2 (cl (= @p_9 (! (< 0 veriT_vr0) :named @p_10))) :rule cong :premises (t8.t1))
@@ -2269,36 +2269,36 @@
(step t27 (cl (not @p_32)) :rule not_or :premises (t25))
(step t28 (cl @p_32 @p_30) :rule la_generic :args (1 1))
(step t29 (cl) :rule resolution :premises (t28 t26 t27))
-c9141d00ebba589372c1920648d35b166a7ea6d0 7 0
+467ecef4941df0c9404f2c8e1d81f077fb40e73a 7 0
unsat
-(assume a0 (! (not (! (not (! (= 1 (* 2 (of_nat$ x$))) :named @p_2)) :named @p_3)) :named @p_1))
+(assume axiom0 (! (not (! (not (! (= 1 (* 2 (of_nat$ x$))) :named @p_2)) :named @p_3)) :named @p_1))
(step t2 (cl (not @p_1) @p_2) :rule not_not)
-(step t3 (cl @p_2) :rule th_resolution :premises (t2 a0))
+(step t3 (cl @p_2) :rule th_resolution :premises (t2 axiom0))
(step t4 (cl @p_3 @p_3) :rule lia_generic)
(step t5 (cl @p_3) :rule contraction :premises (t4))
(step t6 (cl) :rule resolution :premises (t5 t3))
-5c421c4131db57d719eecccd76e666bae936fa11 11 0
+3549c5e5446637c428a1dc6a809dddaffe6daeca 11 0
unsat
-(assume a0 (! (not (! (=> (! (< (! (of_nat$ a$) :named @p_1) 3) :named @p_3) (! (< (* 2 @p_1) 7) :named @p_4)) :named @p_8)) :named @p_2))
+(assume axiom0 (! (not (! (=> (! (< (! (of_nat$ a$) :named @p_1) 3) :named @p_3) (! (< (* 2 @p_1) 7) :named @p_4)) :named @p_8)) :named @p_2))
(step t2 (cl (! (= @p_2 (! (and @p_3 (! (not @p_4) :named @p_10)) :named @p_6)) :named @p_5)) :rule bool_simplify)
(step t3 (cl (! (not @p_5) :named @p_9) (! (not @p_2) :named @p_7) @p_6) :rule equiv_pos2)
(step t4 (cl (not @p_7) @p_8) :rule not_not)
(step t5 (cl @p_9 @p_8 @p_6) :rule th_resolution :premises (t4 t3))
-(step t6 (cl @p_6) :rule th_resolution :premises (a0 t2 t5))
+(step t6 (cl @p_6) :rule th_resolution :premises (axiom0 t2 t5))
(step t7 (cl @p_3) :rule and :premises (t6))
(step t8 (cl @p_10) :rule and :premises (t6))
(step t9 (cl @p_4 (not @p_3)) :rule la_generic :args ((div 1 2) 1))
(step t10 (cl) :rule resolution :premises (t9 t7 t8))
-92da6e97ba29a34a876c0fa16d5e6d53b05316de 21 0
+af4e96cd41efee9e27fd5c2ad7650835fd28bdc9 21 0
unsat
-(assume a0 (! (not (! (< (! (* 0 (! (+ 1 (! (of_nat$ y$) :named @p_2)) :named @p_1)) :named @p_3) (! (ite (! (< @p_1 @p_2) :named @p_12) 0 (! (- @p_1 @p_2) :named @p_13)) :named @p_5)) :named @p_4)) :named @p_6))
+(assume axiom0 (! (not (! (< (! (* 0 (! (+ 1 (! (of_nat$ y$) :named @p_2)) :named @p_1)) :named @p_3) (! (ite (! (< @p_1 @p_2) :named @p_12) 0 (! (- @p_1 @p_2) :named @p_13)) :named @p_5)) :named @p_4)) :named @p_6))
(step t2 (cl (= 0 @p_3)) :rule prod_simplify)
(step t3 (cl (= @p_4 (! (< 0 @p_5) :named @p_7))) :rule cong :premises (t2))
(step t4 (cl (! (= @p_6 (! (not @p_7) :named @p_9)) :named @p_8)) :rule cong :premises (t3))
(step t5 (cl (! (not @p_8) :named @p_11) (! (not @p_6) :named @p_10) @p_9) :rule equiv_pos2)
(step t6 (cl (not @p_10) @p_4) :rule not_not)
(step t7 (cl @p_11 @p_4 @p_9) :rule th_resolution :premises (t6 t5))
-(step t8 (cl @p_9) :rule th_resolution :premises (a0 t4 t7))
+(step t8 (cl @p_9) :rule th_resolution :premises (axiom0 t4 t7))
(step t9 (cl (! (= @p_9 (! (and (! (not (! (< 0 @p_5) :named @p_21)) :named @p_18) (! (ite @p_12 (= 0 @p_5) (! (= @p_13 @p_5) :named @p_20)) :named @p_19)) :named @p_15)) :named @p_14)) :rule ite_intro)
(step t10 (cl (! (not @p_14) :named @p_17) (! (not @p_9) :named @p_16) @p_15) :rule equiv_pos2)
(step t11 (cl (not @p_16) @p_7) :rule not_not)
@@ -2311,16 +2311,16 @@
(step t18 (cl @p_20) :rule resolution :premises (t16 t17))
(step t19 (cl @p_21 (not @p_20)) :rule la_generic :args (1 (- 1)))
(step t20 (cl) :rule resolution :premises (t19 t14 t18))
-d2911e8674cbcffa4830ead7c6ef3c57cef2d6fa 33 0
+efbe007514b68c6b40ac16694834314f7692069b 33 0
unsat
-(assume a0 (! (not (! (or false (or (! (= (! (ite (! (< 0 (! (+ 1 (! (of_nat$ y$) :named @p_1)) :named @p_2)) :named @p_13) true false) :named @p_3) (! (= @p_1 (! (ite (! (< @p_2 1) :named @p_27) 0 (! (- @p_2 1) :named @p_28)) :named @p_26)) :named @p_14)) :named @p_5) (! (=> (! (not @p_3) :named @p_15) false) :named @p_6))) :named @p_4)) :named @p_7))
-(assume a1 (! (<= 0 @p_1) :named @p_34))
+(assume axiom0 (! (not (! (or false (or (! (= (! (ite (! (< 0 (! (+ 1 (! (of_nat$ y$) :named @p_1)) :named @p_2)) :named @p_13) true false) :named @p_3) (! (= @p_1 (! (ite (! (< @p_2 1) :named @p_27) 0 (! (- @p_2 1) :named @p_28)) :named @p_26)) :named @p_14)) :named @p_5) (! (=> (! (not @p_3) :named @p_15) false) :named @p_6))) :named @p_4)) :named @p_7))
+(assume axiom1 (! (<= 0 @p_1) :named @p_34))
(step t3 (cl (= @p_4 (! (or false @p_5 @p_6) :named @p_8))) :rule ac_simp)
(step t4 (cl (! (= @p_7 (! (not @p_8) :named @p_10)) :named @p_9)) :rule cong :premises (t3))
(step t5 (cl (! (not @p_9) :named @p_12) (! (not @p_7) :named @p_11) @p_10) :rule equiv_pos2)
(step t6 (cl (not @p_11) @p_4) :rule not_not)
(step t7 (cl @p_12 @p_4 @p_10) :rule th_resolution :premises (t6 t5))
-(step t8 (cl @p_10) :rule th_resolution :premises (a0 t4 t7))
+(step t8 (cl @p_10) :rule th_resolution :premises (axiom0 t4 t7))
(step t9 (cl (= @p_3 @p_13)) :rule ite_simplify)
(step t10 (cl (= @p_5 (! (= @p_13 @p_14) :named @p_19))) :rule cong :premises (t9))
(step t11 (cl (= @p_15 (! (not @p_13) :named @p_16))) :rule cong :premises (t9))
@@ -2344,11 +2344,11 @@
(step t29 (cl @p_33) :rule and :premises (t28))
(step t30 (cl @p_16) :rule not_or :premises (t29))
(step t31 (cl @p_13 (not @p_34)) :rule la_generic :args (1 1))
-(step t32 (cl) :rule resolution :premises (t31 t30 a1))
-1b01a203f415236790472915120aeba1d69e507b 76 0
+(step t32 (cl) :rule resolution :premises (t31 t30 axiom1))
+d3c98c27318a98e589a892ffe99adffc556ea833 76 0
unsat
-(assume a4 (! (forall ((?v0 Int)) (! (= (! (of_nat$ (! (nat$ ?v0) :named @p_3)) :named @p_5) (! (ite (! (<= 0 ?v0) :named @p_8) ?v0 0) :named @p_10)) :named @p_12)) :named @p_2))
-(assume a1 (! (not (! (= (! (ite (! (< x$ 0) :named @p_25) (! (- x$) :named @p_26) x$) :named @p_1) (of_nat$ (nat$ @p_1))) :named @p_30)) :named @p_24))
+(assume axiom4 (! (forall ((?v0 Int)) (! (= (! (of_nat$ (! (nat$ ?v0) :named @p_3)) :named @p_5) (! (ite (! (<= 0 ?v0) :named @p_8) ?v0 0) :named @p_10)) :named @p_12)) :named @p_2))
+(assume axiom1 (! (not (! (= (! (ite (! (< x$ 0) :named @p_25) (! (- x$) :named @p_26) x$) :named @p_1) (of_nat$ (nat$ @p_1))) :named @p_30)) :named @p_24))
(anchor :step t3 :args ((:= (?v0 Int) veriT_vr0)))
(step t3.t1 (cl (! (= ?v0 veriT_vr0) :named @p_7)) :rule refl)
(step t3.t2 (cl (= @p_3 (! (nat$ veriT_vr0) :named @p_4))) :rule cong :premises (t3.t1))
@@ -2360,7 +2360,7 @@
(step t3.t8 (cl (= @p_12 (! (= @p_6 @p_11) :named @p_13))) :rule cong :premises (t3.t3 t3.t7))
(step t3 (cl (! (= @p_2 (! (forall ((veriT_vr0 Int)) @p_13) :named @p_15)) :named @p_14)) :rule bind)
(step t4 (cl (not @p_14) (not @p_2) @p_15) :rule equiv_pos2)
-(step t5 (cl @p_15) :rule th_resolution :premises (a4 t3 t4))
+(step t5 (cl @p_15) :rule th_resolution :premises (axiom4 t3 t4))
(anchor :step t6 :args ((:= (veriT_vr0 Int) veriT_vr1)))
(step t6.t1 (cl (! (= veriT_vr0 veriT_vr1) :named @p_18)) :rule refl)
(step t6.t2 (cl (= @p_4 (! (nat$ veriT_vr1) :named @p_16))) :rule cong :premises (t6.t1))
@@ -2377,7 +2377,7 @@
(step t10 (cl (! (not @p_27) :named @p_31) (! (not @p_24) :named @p_29) @p_28) :rule equiv_pos2)
(step t11 (cl (not @p_29) @p_30) :rule not_not)
(step t12 (cl @p_31 @p_30 @p_28) :rule th_resolution :premises (t11 t10))
-(step t13 (cl @p_28) :rule th_resolution :premises (a1 t9 t12))
+(step t13 (cl @p_28) :rule th_resolution :premises (axiom1 t9 t12))
(step t14 (cl @p_32) :rule and :premises (t13))
(step t15 (cl @p_33) :rule and :premises (t13))
(step t16 (cl @p_25 @p_34) :rule ite1 :premises (t15))
@@ -2422,13 +2422,13 @@
(step t50 (cl @p_62 @p_64 @p_58 (! (not @p_35) :named @p_65)) :rule la_generic :args (1 1 1 (- 1)))
(step t51 (cl @p_62 @p_64 @p_65 @p_61 @p_55) :rule th_resolution :premises (t50 t42))
(step t52 (cl) :rule resolution :premises (t51 t48 t49 t32 t39 t44))
-59999ffb5d66c5ffe3c4bd998e52a95d515ab9b4 337 0
+d4fe162ae425370cea445760001be7c859bc0288 337 0
unsat
(define-fun veriT_sk1 () Nat$ (! (choice ((veriT_vr18 Nat$)) (not (! (=> (! (dvd$ veriT_vr18 (! (nat$ (! (+ 1 (! (* 4 (! (of_nat$ m$) :named @p_3)) :named @p_117)) :named @p_119)) :named @p_120)) :named @p_206) (! (or (! (= 1 (! (of_nat$ veriT_vr18) :named @p_171)) :named @p_208) (! (= (! (of_nat$ @p_120) :named @p_158) @p_171) :named @p_210)) :named @p_211)) :named @p_205))) :named @p_172))
-(assume a0 (! (forall ((?v0 Nat$)) (! (= (! (prime_nat$ ?v0) :named @p_7) (! (and (! (< 1 (! (of_nat$ ?v0) :named @p_1)) :named @p_10) (! (forall ((?v1 Nat$)) (! (=> (! (dvd$ ?v1 ?v0) :named @p_14) (! (or (! (= 1 (! (of_nat$ ?v1) :named @p_2)) :named @p_17) (! (= @p_1 @p_2) :named @p_21)) :named @p_23)) :named @p_25)) :named @p_12)) :named @p_27)) :named @p_29)) :named @p_4))
-(assume a1 (! (not (! (=> (! (prime_nat$ (! (nat$ (! (+ @p_117 1) :named @p_116)) :named @p_118)) :named @p_109) (! (<= 1 @p_3) :named @p_110)) :named @p_114)) :named @p_108))
-(assume a2 (! (forall ((?v0 Nat$)) (! (<= 0 @p_1) :named @p_127)) :named @p_125))
-(assume a4 (! (forall ((?v0 Int)) (! (= (! (of_nat$ (! (nat$ ?v0) :named @p_136)) :named @p_138) (! (ite (! (<= 0 ?v0) :named @p_141) ?v0 0) :named @p_143)) :named @p_145)) :named @p_135))
+(assume axiom0 (! (forall ((?v0 Nat$)) (! (= (! (prime_nat$ ?v0) :named @p_7) (! (and (! (< 1 (! (of_nat$ ?v0) :named @p_1)) :named @p_10) (! (forall ((?v1 Nat$)) (! (=> (! (dvd$ ?v1 ?v0) :named @p_14) (! (or (! (= 1 (! (of_nat$ ?v1) :named @p_2)) :named @p_17) (! (= @p_1 @p_2) :named @p_21)) :named @p_23)) :named @p_25)) :named @p_12)) :named @p_27)) :named @p_29)) :named @p_4))
+(assume axiom1 (! (not (! (=> (! (prime_nat$ (! (nat$ (! (+ @p_117 1) :named @p_116)) :named @p_118)) :named @p_109) (! (<= 1 @p_3) :named @p_110)) :named @p_114)) :named @p_108))
+(assume axiom2 (! (forall ((?v0 Nat$)) (! (<= 0 @p_1) :named @p_127)) :named @p_125))
+(assume axiom4 (! (forall ((?v0 Int)) (! (= (! (of_nat$ (! (nat$ ?v0) :named @p_136)) :named @p_138) (! (ite (! (<= 0 ?v0) :named @p_141) ?v0 0) :named @p_143)) :named @p_145)) :named @p_135))
(anchor :step t5 :args ((:= (?v0 Nat$) veriT_vr0)))
(step t5.t1 (cl (! (= ?v0 veriT_vr0) :named @p_9)) :rule refl)
(step t5.t2 (cl (= @p_7 (! (prime_nat$ veriT_vr0) :named @p_8))) :rule cong :premises (t5.t1))
@@ -2454,7 +2454,7 @@
(step t5.t8 (cl (= @p_29 (! (= @p_8 @p_28) :named @p_30))) :rule cong :premises (t5.t2 t5.t7))
(step t5 (cl (! (= @p_4 (! (forall ((veriT_vr0 Nat$)) @p_30) :named @p_32)) :named @p_31)) :rule bind)
(step t6 (cl (not @p_31) (not @p_4) @p_32) :rule equiv_pos2)
-(step t7 (cl @p_32) :rule th_resolution :premises (a0 t5 t6))
+(step t7 (cl @p_32) :rule th_resolution :premises (axiom0 t5 t6))
(anchor :step t8 :args ((veriT_vr0 Nat$)))
(step t8.t1 (cl (= @p_30 (! (and (! (=> @p_8 @p_28) :named @p_52) (! (=> @p_28 @p_8) :named @p_65)) :named @p_33))) :rule connective_def)
(step t8 (cl (! (= @p_32 (! (forall ((veriT_vr0 Nat$)) @p_33) :named @p_35)) :named @p_34)) :rule bind)
@@ -2581,7 +2581,7 @@
(step t21 (cl (! (not @p_111) :named @p_115) (! (not @p_108) :named @p_113) @p_112) :rule equiv_pos2)
(step t22 (cl (not @p_113) @p_114) :rule not_not)
(step t23 (cl @p_115 @p_114 @p_112) :rule th_resolution :premises (t22 t21))
-(step t24 (cl @p_112) :rule th_resolution :premises (a1 t20 t23))
+(step t24 (cl @p_112) :rule th_resolution :premises (axiom1 t20 t23))
(step t25 (cl (= @p_116 @p_119)) :rule sum_simplify)
(step t26 (cl (= @p_118 @p_120)) :rule cong :premises (t25))
(step t27 (cl (= @p_109 (! (prime_nat$ @p_120) :named @p_121))) :rule cong :premises (t26))
@@ -2594,7 +2594,7 @@
(step t31.t3 (cl (= @p_127 (! (<= 0 @p_126) :named @p_128))) :rule cong :premises (t31.t2))
(step t31 (cl (! (= @p_125 (! (forall ((veriT_vr8 Nat$)) @p_128) :named @p_130)) :named @p_129)) :rule bind)
(step t32 (cl (not @p_129) (not @p_125) @p_130) :rule equiv_pos2)
-(step t33 (cl @p_130) :rule th_resolution :premises (a2 t31 t32))
+(step t33 (cl @p_130) :rule th_resolution :premises (axiom2 t31 t32))
(anchor :step t34 :args ((:= (veriT_vr8 Nat$) veriT_vr9)))
(step t34.t1 (cl (= veriT_vr8 veriT_vr9)) :rule refl)
(step t34.t2 (cl (= @p_126 (! (of_nat$ veriT_vr9) :named @p_131))) :rule cong :premises (t34.t1))
@@ -2613,7 +2613,7 @@
(step t37.t8 (cl (= @p_145 (! (= @p_139 @p_144) :named @p_146))) :rule cong :premises (t37.t3 t37.t7))
(step t37 (cl (! (= @p_135 (! (forall ((veriT_vr12 Int)) @p_146) :named @p_148)) :named @p_147)) :rule bind)
(step t38 (cl (not @p_147) (not @p_135) @p_148) :rule equiv_pos2)
-(step t39 (cl @p_148) :rule th_resolution :premises (a4 t37 t38))
+(step t39 (cl @p_148) :rule th_resolution :premises (axiom4 t37 t38))
(anchor :step t40 :args ((:= (veriT_vr12 Int) veriT_vr13)))
(step t40.t1 (cl (! (= veriT_vr12 veriT_vr13) :named @p_151)) :rule refl)
(step t40.t2 (cl (= @p_137 (! (nat$ veriT_vr13) :named @p_149))) :rule cong :premises (t40.t1))
@@ -2760,18 +2760,18 @@
(step t84 (cl (! (not @p_246) :named @p_253) (! (not @p_244) :named @p_254) @p_251) :rule eq_transitive)
(step t85 (cl @p_252 @p_110 @p_253 @p_254) :rule th_resolution :premises (t83 t84))
(step t86 (cl) :rule resolution :premises (t85 t44 t67 t82 t79))
-195c5f4e7eb20baa5a32cf916824c8152dd91637 7 0
+8d6d329bb2354ffa218e4b6256b283b3915c3682 7 0
unsat
-(assume a0 (! (not (! (not (! (= 1 (* 2 x$)) :named @p_2)) :named @p_3)) :named @p_1))
+(assume axiom0 (! (not (! (not (! (= 1 (* 2 x$)) :named @p_2)) :named @p_3)) :named @p_1))
(step t2 (cl (not @p_1) @p_2) :rule not_not)
-(step t3 (cl @p_2) :rule th_resolution :premises (t2 a0))
+(step t3 (cl @p_2) :rule th_resolution :premises (t2 axiom0))
(step t4 (cl @p_3 @p_3) :rule lia_generic)
(step t5 (cl @p_3) :rule contraction :premises (t4))
(step t6 (cl) :rule resolution :premises (t5 t3))
-f45af256a4bceda428e7fbee4e1e3dbdf14a491e 35 0
+1cf2d299f7ccd81bab0d38f30ec8595b5f133da6 35 0
unsat
-(assume a0 (! (forall ((?v0 A$) (?v1 B$)) (! (= ?v0 (! (fst$ (! (pair$ ?v0 ?v1) :named @p_3)) :named @p_5)) :named @p_7)) :named @p_1))
-(assume a1 (! (not (! (=> (! (= (! (fst$ (pair$ x$ y$)) :named @p_26) a$) :named @p_18) (! (= x$ a$) :named @p_19)) :named @p_23)) :named @p_17))
+(assume axiom0 (! (forall ((?v0 A$) (?v1 B$)) (! (= ?v0 (! (fst$ (! (pair$ ?v0 ?v1) :named @p_3)) :named @p_5)) :named @p_7)) :named @p_1))
+(assume axiom1 (! (not (! (=> (! (= (! (fst$ (pair$ x$ y$)) :named @p_26) a$) :named @p_18) (! (= x$ a$) :named @p_19)) :named @p_23)) :named @p_17))
(anchor :step t3 :args ((:= (?v0 A$) veriT_vr0) (:= (?v1 B$) veriT_vr1)))
(step t3.t1 (cl (! (= ?v0 veriT_vr0) :named @p_2)) :rule refl)
(step t3.t2 (cl @p_2) :rule refl)
@@ -2781,7 +2781,7 @@
(step t3.t6 (cl (= @p_7 (! (= veriT_vr0 @p_6) :named @p_8))) :rule cong :premises (t3.t1 t3.t5))
(step t3 (cl (! (= @p_1 (! (forall ((veriT_vr0 A$) (veriT_vr1 B$)) @p_8) :named @p_10)) :named @p_9)) :rule bind)
(step t4 (cl (not @p_9) (not @p_1) @p_10) :rule equiv_pos2)
-(step t5 (cl @p_10) :rule th_resolution :premises (a0 t3 t4))
+(step t5 (cl @p_10) :rule th_resolution :premises (axiom0 t3 t4))
(anchor :step t6 :args ((:= (veriT_vr0 A$) veriT_vr2) (:= (veriT_vr1 B$) veriT_vr3)))
(step t6.t1 (cl (! (= veriT_vr0 veriT_vr2) :named @p_11)) :rule refl)
(step t6.t2 (cl @p_11) :rule refl)
@@ -2796,7 +2796,7 @@
(step t10 (cl (! (not @p_20) :named @p_24) (! (not @p_17) :named @p_22) @p_21) :rule equiv_pos2)
(step t11 (cl (not @p_22) @p_23) :rule not_not)
(step t12 (cl @p_24 @p_23 @p_21) :rule th_resolution :premises (t11 t10))
-(step t13 (cl @p_21) :rule th_resolution :premises (a1 t9 t12))
+(step t13 (cl @p_21) :rule th_resolution :premises (axiom1 t9 t12))
(step t14 (cl @p_18) :rule and :premises (t13))
(step t15 (cl @p_25) :rule and :premises (t13))
(step t16 (cl (or (! (not @p_16) :named @p_27) (! (= x$ @p_26) :named @p_28))) :rule forall_inst :args ((:= veriT_vr2 x$) (:= veriT_vr3 y$)))
@@ -2804,10 +2804,104 @@
(step t18 (cl @p_28) :rule resolution :premises (t17 t8))
(step t19 (cl (not @p_28) (not @p_18) @p_19) :rule eq_transitive)
(step t20 (cl) :rule resolution :premises (t19 t14 t15 t18))
-323770b82ef8fd021b5433671b6c4077843fd9d7 97 0
+48c92486160c88d9d50f41cf6a3fd33cb769b2b7 67 0
unsat
-(assume a1 (! (forall ((?v0 A_b_fun$) (?v1 A$) (?v2 B$) (?v3 A$)) (! (= (! (fun_app$ (! (fun_upd$ ?v0 ?v1 ?v2) :named @p_2) ?v3) :named @p_4) (! (ite (! (= ?v1 ?v3) :named @p_8) ?v2 (! (fun_app$ ?v0 ?v3) :named @p_12)) :named @p_14)) :named @p_16)) :named @p_1))
-(assume a2 (! (not (! (=> (! (and (! (not (! (= i$ i1$) :named @p_62)) :named @p_40) (! (not (! (= i$ i2$) :named @p_46)) :named @p_41)) :named @p_33) (! (= (! (fun_app$ (fun_upd$ (! (fun_upd$ f$ i1$ v1$) :named @p_47) i2$ v2$) i$) :named @p_45) (! (fun_app$ f$ i$) :named @p_63)) :named @p_34)) :named @p_38)) :named @p_32))
+(assume axiom1 (! (forall ((?v0 A$) (?v1 B$)) (! (= ?v0 (! (fst$a (! (pair$a ?v0 ?v1) :named @p_3)) :named @p_5)) :named @p_7)) :named @p_1))
+(assume axiom3 (! (forall ((?v0 B$) (?v1 A$)) (! (= ?v1 (! (snd$a (! (pair$ ?v0 ?v1) :named @p_19)) :named @p_21)) :named @p_23)) :named @p_17))
+(assume axiom4 (! (not (! (=> (! (and (! (= p1$ (! (pair$a x$ y$) :named @p_47)) :named @p_41) (! (= p2$ (! (pair$ y$ x$) :named @p_46)) :named @p_42)) :named @p_34) (! (= (! (fst$a p1$) :named @p_52) (! (snd$a p2$) :named @p_54)) :named @p_35)) :named @p_39)) :named @p_33))
+(anchor :step t4 :args ((:= (?v0 A$) veriT_vr4) (:= (?v1 B$) veriT_vr5)))
+(step t4.t1 (cl (! (= ?v0 veriT_vr4) :named @p_2)) :rule refl)
+(step t4.t2 (cl @p_2) :rule refl)
+(step t4.t3 (cl (= ?v1 veriT_vr5)) :rule refl)
+(step t4.t4 (cl (= @p_3 (! (pair$a veriT_vr4 veriT_vr5) :named @p_4))) :rule cong :premises (t4.t2 t4.t3))
+(step t4.t5 (cl (= @p_5 (! (fst$a @p_4) :named @p_6))) :rule cong :premises (t4.t4))
+(step t4.t6 (cl (= @p_7 (! (= veriT_vr4 @p_6) :named @p_8))) :rule cong :premises (t4.t1 t4.t5))
+(step t4 (cl (! (= @p_1 (! (forall ((veriT_vr4 A$) (veriT_vr5 B$)) @p_8) :named @p_10)) :named @p_9)) :rule bind)
+(step t5 (cl (not @p_9) (not @p_1) @p_10) :rule equiv_pos2)
+(step t6 (cl @p_10) :rule th_resolution :premises (axiom1 t4 t5))
+(anchor :step t7 :args ((:= (veriT_vr4 A$) veriT_vr6) (:= (veriT_vr5 B$) veriT_vr7)))
+(step t7.t1 (cl (! (= veriT_vr4 veriT_vr6) :named @p_11)) :rule refl)
+(step t7.t2 (cl @p_11) :rule refl)
+(step t7.t3 (cl (= veriT_vr5 veriT_vr7)) :rule refl)
+(step t7.t4 (cl (= @p_4 (! (pair$a veriT_vr6 veriT_vr7) :named @p_12))) :rule cong :premises (t7.t2 t7.t3))
+(step t7.t5 (cl (= @p_6 (! (fst$a @p_12) :named @p_13))) :rule cong :premises (t7.t4))
+(step t7.t6 (cl (= @p_8 (! (= veriT_vr6 @p_13) :named @p_14))) :rule cong :premises (t7.t1 t7.t5))
+(step t7 (cl (! (= @p_10 (! (forall ((veriT_vr6 A$) (veriT_vr7 B$)) @p_14) :named @p_16)) :named @p_15)) :rule bind)
+(step t8 (cl (not @p_15) (not @p_10) @p_16) :rule equiv_pos2)
+(step t9 (cl @p_16) :rule th_resolution :premises (t6 t7 t8))
+(anchor :step t10 :args ((:= (?v0 B$) veriT_vr12) (:= (?v1 A$) veriT_vr13)))
+(step t10.t1 (cl (! (= ?v1 veriT_vr13) :named @p_18)) :rule refl)
+(step t10.t2 (cl (= ?v0 veriT_vr12)) :rule refl)
+(step t10.t3 (cl @p_18) :rule refl)
+(step t10.t4 (cl (= @p_19 (! (pair$ veriT_vr12 veriT_vr13) :named @p_20))) :rule cong :premises (t10.t2 t10.t3))
+(step t10.t5 (cl (= @p_21 (! (snd$a @p_20) :named @p_22))) :rule cong :premises (t10.t4))
+(step t10.t6 (cl (= @p_23 (! (= veriT_vr13 @p_22) :named @p_24))) :rule cong :premises (t10.t1 t10.t5))
+(step t10 (cl (! (= @p_17 (! (forall ((veriT_vr12 B$) (veriT_vr13 A$)) @p_24) :named @p_26)) :named @p_25)) :rule bind)
+(step t11 (cl (not @p_25) (not @p_17) @p_26) :rule equiv_pos2)
+(step t12 (cl @p_26) :rule th_resolution :premises (axiom3 t10 t11))
+(anchor :step t13 :args ((:= (veriT_vr12 B$) veriT_vr14) (:= (veriT_vr13 A$) veriT_vr15)))
+(step t13.t1 (cl (! (= veriT_vr13 veriT_vr15) :named @p_27)) :rule refl)
+(step t13.t2 (cl (= veriT_vr12 veriT_vr14)) :rule refl)
+(step t13.t3 (cl @p_27) :rule refl)
+(step t13.t4 (cl (= @p_20 (! (pair$ veriT_vr14 veriT_vr15) :named @p_28))) :rule cong :premises (t13.t2 t13.t3))
+(step t13.t5 (cl (= @p_22 (! (snd$a @p_28) :named @p_29))) :rule cong :premises (t13.t4))
+(step t13.t6 (cl (= @p_24 (! (= veriT_vr15 @p_29) :named @p_30))) :rule cong :premises (t13.t1 t13.t5))
+(step t13 (cl (! (= @p_26 (! (forall ((veriT_vr14 B$) (veriT_vr15 A$)) @p_30) :named @p_32)) :named @p_31)) :rule bind)
+(step t14 (cl (not @p_31) (not @p_26) @p_32) :rule equiv_pos2)
+(step t15 (cl @p_32) :rule th_resolution :premises (t12 t13 t14))
+(step t16 (cl (! (= @p_33 (! (and @p_34 (! (not @p_35) :named @p_43)) :named @p_37)) :named @p_36)) :rule bool_simplify)
+(step t17 (cl (! (not @p_36) :named @p_40) (! (not @p_33) :named @p_38) @p_37) :rule equiv_pos2)
+(step t18 (cl (not @p_38) @p_39) :rule not_not)
+(step t19 (cl @p_40 @p_39 @p_37) :rule th_resolution :premises (t18 t17))
+(step t20 (cl @p_37) :rule th_resolution :premises (axiom4 t16 t19))
+(step t21 (cl (! (= @p_37 (! (and @p_41 @p_42 @p_43) :named @p_45)) :named @p_44)) :rule ac_simp)
+(step t22 (cl (not @p_44) (not @p_37) @p_45) :rule equiv_pos2)
+(step t23 (cl @p_45) :rule th_resolution :premises (t20 t21 t22))
+(step t24 (cl @p_41) :rule and :premises (t23))
+(step t25 (cl @p_42) :rule and :premises (t23))
+(step t26 (cl @p_43) :rule and :premises (t23))
+(step t27 (cl (or (! (not @p_32) :named @p_48) (! (= x$ (! (snd$a @p_46) :named @p_55)) :named @p_49))) :rule forall_inst :args ((:= veriT_vr14 y$) (:= veriT_vr15 x$)))
+(step t28 (cl (or (! (not @p_16) :named @p_50) (! (= x$ (! (fst$a @p_47) :named @p_53)) :named @p_51))) :rule forall_inst :args ((:= veriT_vr6 x$) (:= veriT_vr7 y$)))
+(step t29 (cl @p_48 @p_49) :rule or :premises (t27))
+(step t30 (cl @p_49) :rule resolution :premises (t29 t15))
+(step t31 (cl @p_50 @p_51) :rule or :premises (t28))
+(step t32 (cl @p_51) :rule resolution :premises (t31 t9))
+(step t33 (cl (! (not (! (= @p_52 @p_53) :named @p_61)) :named @p_57) (! (not @p_51) :named @p_58) (! (not @p_49) :named @p_59) (not (! (= @p_54 @p_55) :named @p_56)) @p_35) :rule eq_transitive)
+(step t34 (cl (! (not @p_42) :named @p_60) @p_56) :rule eq_congruent)
+(step t35 (cl @p_57 @p_58 @p_59 @p_35 @p_60) :rule th_resolution :premises (t33 t34))
+(step t36 (cl (! (not @p_41) :named @p_62) @p_61) :rule eq_congruent)
+(step t37 (cl @p_58 @p_59 @p_35 @p_60 @p_62) :rule th_resolution :premises (t35 t36))
+(step t38 (cl) :rule resolution :premises (t37 t24 t25 t26 t30 t32))
+d98294078e51b7d929ca2e2c002b0b435565488d 25 0
+unsat
+(assume axiom0 (! (not (! (or (! (= (! (f$ g$ x$) :named @p_1) (! (and (! (fun_app$ g$ x$) :named @p_2) true) :named @p_13)) :named @p_4) (or (! (= @p_1 true) :named @p_5) (! (= @p_2 true) :named @p_6))) :named @p_3)) :named @p_7))
+(step t2 (cl (= @p_3 (! (or @p_4 @p_5 @p_6) :named @p_8))) :rule ac_simp)
+(step t3 (cl (! (= @p_7 (! (not @p_8) :named @p_10)) :named @p_9)) :rule cong :premises (t2))
+(step t4 (cl (! (not @p_9) :named @p_12) (! (not @p_7) :named @p_11) @p_10) :rule equiv_pos2)
+(step t5 (cl (not @p_11) @p_3) :rule not_not)
+(step t6 (cl @p_12 @p_3 @p_10) :rule th_resolution :premises (t5 t4))
+(step t7 (cl @p_10) :rule th_resolution :premises (axiom0 t3 t6))
+(step t8 (cl (= @p_13 (! (and @p_2) :named @p_14))) :rule and_simplify)
+(step t9 (cl (= @p_14 @p_2)) :rule and_simplify)
+(step t10 (cl (= @p_13 @p_2)) :rule trans :premises (t8 t9))
+(step t11 (cl (= @p_4 (! (= @p_1 @p_2) :named @p_15))) :rule cong :premises (t10))
+(step t12 (cl (= @p_5 @p_1)) :rule equiv_simplify)
+(step t13 (cl (= @p_6 @p_2)) :rule equiv_simplify)
+(step t14 (cl (= @p_8 (! (or @p_15 @p_1 @p_2) :named @p_16))) :rule cong :premises (t11 t12 t13))
+(step t15 (cl (! (= @p_10 (! (not @p_16) :named @p_18)) :named @p_17)) :rule cong :premises (t14))
+(step t16 (cl (! (not @p_17) :named @p_20) (! (not @p_10) :named @p_19) @p_18) :rule equiv_pos2)
+(step t17 (cl (not @p_19) @p_8) :rule not_not)
+(step t18 (cl @p_20 @p_8 @p_18) :rule th_resolution :premises (t17 t16))
+(step t19 (cl @p_18) :rule th_resolution :premises (t7 t15 t18))
+(step t20 (cl (not @p_15)) :rule not_or :premises (t19))
+(step t21 (cl @p_1 @p_2) :rule not_equiv1 :premises (t20))
+(step t22 (cl (not @p_1)) :rule not_or :premises (t19))
+(step t23 (cl (not @p_2)) :rule not_or :premises (t19))
+(step t24 (cl) :rule resolution :premises (t21 t22 t23))
+a6d9c8f29a4df3b9eaa40764e38a8a41a8961f01 97 0
+unsat
+(assume axiom1 (! (forall ((?v0 A_b_fun$) (?v1 A$) (?v2 B$) (?v3 A$)) (! (= (! (fun_app$ (! (fun_upd$ ?v0 ?v1 ?v2) :named @p_2) ?v3) :named @p_4) (! (ite (! (= ?v1 ?v3) :named @p_8) ?v2 (! (fun_app$ ?v0 ?v3) :named @p_12)) :named @p_14)) :named @p_16)) :named @p_1))
+(assume axiom2 (! (not (! (=> (! (and (! (not (! (= i$ i1$) :named @p_62)) :named @p_40) (! (not (! (= i$ i2$) :named @p_46)) :named @p_41)) :named @p_33) (! (= (! (fun_app$ (fun_upd$ (! (fun_upd$ f$ i1$ v1$) :named @p_47) i2$ v2$) i$) :named @p_45) (! (fun_app$ f$ i$) :named @p_63)) :named @p_34)) :named @p_38)) :named @p_32))
(anchor :step t3 :args ((:= (?v0 A_b_fun$) veriT_vr6) (:= (?v1 A$) veriT_vr7) (:= (?v2 B$) veriT_vr8) (:= (?v3 A$) veriT_vr9)))
(step t3.t1 (cl (! (= ?v0 veriT_vr6) :named @p_11)) :rule refl)
(step t3.t2 (cl (! (= ?v1 veriT_vr7) :named @p_6)) :rule refl)
@@ -2826,7 +2920,7 @@
(step t3.t15 (cl (= @p_16 (! (= @p_5 @p_15) :named @p_17))) :rule cong :premises (t3.t6 t3.t14))
(step t3 (cl (! (= @p_1 (! (forall ((veriT_vr6 A_b_fun$) (veriT_vr7 A$) (veriT_vr8 B$) (veriT_vr9 A$)) @p_17) :named @p_19)) :named @p_18)) :rule bind)
(step t4 (cl (not @p_18) (not @p_1) @p_19) :rule equiv_pos2)
-(step t5 (cl @p_19) :rule th_resolution :premises (a1 t3 t4))
+(step t5 (cl @p_19) :rule th_resolution :premises (axiom1 t3 t4))
(anchor :step t6 :args ((:= (veriT_vr6 A_b_fun$) veriT_vr10) (:= (veriT_vr7 A$) veriT_vr11) (:= (veriT_vr8 B$) veriT_vr12) (:= (veriT_vr9 A$) veriT_vr13)))
(step t6.t1 (cl (! (= veriT_vr6 veriT_vr10) :named @p_26)) :rule refl)
(step t6.t2 (cl (! (= veriT_vr7 veriT_vr11) :named @p_22)) :rule refl)
@@ -2850,7 +2944,7 @@
(step t10 (cl (! (not @p_35) :named @p_39) (! (not @p_32) :named @p_37) @p_36) :rule equiv_pos2)
(step t11 (cl (not @p_37) @p_38) :rule not_not)
(step t12 (cl @p_39 @p_38 @p_36) :rule th_resolution :premises (t11 t10))
-(step t13 (cl @p_36) :rule th_resolution :premises (a2 t9 t12))
+(step t13 (cl @p_36) :rule th_resolution :premises (axiom2 t9 t12))
(step t14 (cl (! (= @p_36 (! (and @p_40 @p_41 @p_42) :named @p_44)) :named @p_43)) :rule ac_simp)
(step t15 (cl (not @p_43) (not @p_36) @p_44) :rule equiv_pos2)
(step t16 (cl @p_44) :rule th_resolution :premises (t13 t14 t15))
@@ -2902,106 +2996,12 @@
(step t52 (cl @p_73) :rule resolution :premises (t48 t51))
(step t53 (cl (not @p_58) (not @p_60) (not @p_71) (not @p_73) @p_34) :rule eq_transitive)
(step t54 (cl) :rule resolution :premises (t53 t19 t34 t36 t50 t52))
-22e3ad7a3ba163eb9b2786d30a493e2c63cf8f81 67 0
+6c882ad63eb28539c511430af509d5d6577b2638 38 0
unsat
-(assume a1 (! (forall ((?v0 A$) (?v1 B$)) (! (= ?v0 (! (fst$a (! (pair$a ?v0 ?v1) :named @p_3)) :named @p_5)) :named @p_7)) :named @p_1))
-(assume a3 (! (forall ((?v0 B$) (?v1 A$)) (! (= ?v1 (! (snd$a (! (pair$ ?v0 ?v1) :named @p_19)) :named @p_21)) :named @p_23)) :named @p_17))
-(assume a4 (! (not (! (=> (! (and (! (= p1$ (! (pair$a x$ y$) :named @p_47)) :named @p_41) (! (= p2$ (! (pair$ y$ x$) :named @p_46)) :named @p_42)) :named @p_34) (! (= (! (fst$a p1$) :named @p_52) (! (snd$a p2$) :named @p_54)) :named @p_35)) :named @p_39)) :named @p_33))
-(anchor :step t4 :args ((:= (?v0 A$) veriT_vr4) (:= (?v1 B$) veriT_vr5)))
-(step t4.t1 (cl (! (= ?v0 veriT_vr4) :named @p_2)) :rule refl)
-(step t4.t2 (cl @p_2) :rule refl)
-(step t4.t3 (cl (= ?v1 veriT_vr5)) :rule refl)
-(step t4.t4 (cl (= @p_3 (! (pair$a veriT_vr4 veriT_vr5) :named @p_4))) :rule cong :premises (t4.t2 t4.t3))
-(step t4.t5 (cl (= @p_5 (! (fst$a @p_4) :named @p_6))) :rule cong :premises (t4.t4))
-(step t4.t6 (cl (= @p_7 (! (= veriT_vr4 @p_6) :named @p_8))) :rule cong :premises (t4.t1 t4.t5))
-(step t4 (cl (! (= @p_1 (! (forall ((veriT_vr4 A$) (veriT_vr5 B$)) @p_8) :named @p_10)) :named @p_9)) :rule bind)
-(step t5 (cl (not @p_9) (not @p_1) @p_10) :rule equiv_pos2)
-(step t6 (cl @p_10) :rule th_resolution :premises (a1 t4 t5))
-(anchor :step t7 :args ((:= (veriT_vr4 A$) veriT_vr6) (:= (veriT_vr5 B$) veriT_vr7)))
-(step t7.t1 (cl (! (= veriT_vr4 veriT_vr6) :named @p_11)) :rule refl)
-(step t7.t2 (cl @p_11) :rule refl)
-(step t7.t3 (cl (= veriT_vr5 veriT_vr7)) :rule refl)
-(step t7.t4 (cl (= @p_4 (! (pair$a veriT_vr6 veriT_vr7) :named @p_12))) :rule cong :premises (t7.t2 t7.t3))
-(step t7.t5 (cl (= @p_6 (! (fst$a @p_12) :named @p_13))) :rule cong :premises (t7.t4))
-(step t7.t6 (cl (= @p_8 (! (= veriT_vr6 @p_13) :named @p_14))) :rule cong :premises (t7.t1 t7.t5))
-(step t7 (cl (! (= @p_10 (! (forall ((veriT_vr6 A$) (veriT_vr7 B$)) @p_14) :named @p_16)) :named @p_15)) :rule bind)
-(step t8 (cl (not @p_15) (not @p_10) @p_16) :rule equiv_pos2)
-(step t9 (cl @p_16) :rule th_resolution :premises (t6 t7 t8))
-(anchor :step t10 :args ((:= (?v0 B$) veriT_vr12) (:= (?v1 A$) veriT_vr13)))
-(step t10.t1 (cl (! (= ?v1 veriT_vr13) :named @p_18)) :rule refl)
-(step t10.t2 (cl (= ?v0 veriT_vr12)) :rule refl)
-(step t10.t3 (cl @p_18) :rule refl)
-(step t10.t4 (cl (= @p_19 (! (pair$ veriT_vr12 veriT_vr13) :named @p_20))) :rule cong :premises (t10.t2 t10.t3))
-(step t10.t5 (cl (= @p_21 (! (snd$a @p_20) :named @p_22))) :rule cong :premises (t10.t4))
-(step t10.t6 (cl (= @p_23 (! (= veriT_vr13 @p_22) :named @p_24))) :rule cong :premises (t10.t1 t10.t5))
-(step t10 (cl (! (= @p_17 (! (forall ((veriT_vr12 B$) (veriT_vr13 A$)) @p_24) :named @p_26)) :named @p_25)) :rule bind)
-(step t11 (cl (not @p_25) (not @p_17) @p_26) :rule equiv_pos2)
-(step t12 (cl @p_26) :rule th_resolution :premises (a3 t10 t11))
-(anchor :step t13 :args ((:= (veriT_vr12 B$) veriT_vr14) (:= (veriT_vr13 A$) veriT_vr15)))
-(step t13.t1 (cl (! (= veriT_vr13 veriT_vr15) :named @p_27)) :rule refl)
-(step t13.t2 (cl (= veriT_vr12 veriT_vr14)) :rule refl)
-(step t13.t3 (cl @p_27) :rule refl)
-(step t13.t4 (cl (= @p_20 (! (pair$ veriT_vr14 veriT_vr15) :named @p_28))) :rule cong :premises (t13.t2 t13.t3))
-(step t13.t5 (cl (= @p_22 (! (snd$a @p_28) :named @p_29))) :rule cong :premises (t13.t4))
-(step t13.t6 (cl (= @p_24 (! (= veriT_vr15 @p_29) :named @p_30))) :rule cong :premises (t13.t1 t13.t5))
-(step t13 (cl (! (= @p_26 (! (forall ((veriT_vr14 B$) (veriT_vr15 A$)) @p_30) :named @p_32)) :named @p_31)) :rule bind)
-(step t14 (cl (not @p_31) (not @p_26) @p_32) :rule equiv_pos2)
-(step t15 (cl @p_32) :rule th_resolution :premises (t12 t13 t14))
-(step t16 (cl (! (= @p_33 (! (and @p_34 (! (not @p_35) :named @p_43)) :named @p_37)) :named @p_36)) :rule bool_simplify)
-(step t17 (cl (! (not @p_36) :named @p_40) (! (not @p_33) :named @p_38) @p_37) :rule equiv_pos2)
-(step t18 (cl (not @p_38) @p_39) :rule not_not)
-(step t19 (cl @p_40 @p_39 @p_37) :rule th_resolution :premises (t18 t17))
-(step t20 (cl @p_37) :rule th_resolution :premises (a4 t16 t19))
-(step t21 (cl (! (= @p_37 (! (and @p_41 @p_42 @p_43) :named @p_45)) :named @p_44)) :rule ac_simp)
-(step t22 (cl (not @p_44) (not @p_37) @p_45) :rule equiv_pos2)
-(step t23 (cl @p_45) :rule th_resolution :premises (t20 t21 t22))
-(step t24 (cl @p_41) :rule and :premises (t23))
-(step t25 (cl @p_42) :rule and :premises (t23))
-(step t26 (cl @p_43) :rule and :premises (t23))
-(step t27 (cl (or (! (not @p_32) :named @p_48) (! (= x$ (! (snd$a @p_46) :named @p_55)) :named @p_49))) :rule forall_inst :args ((:= veriT_vr14 y$) (:= veriT_vr15 x$)))
-(step t28 (cl (or (! (not @p_16) :named @p_50) (! (= x$ (! (fst$a @p_47) :named @p_53)) :named @p_51))) :rule forall_inst :args ((:= veriT_vr6 x$) (:= veriT_vr7 y$)))
-(step t29 (cl @p_48 @p_49) :rule or :premises (t27))
-(step t30 (cl @p_49) :rule resolution :premises (t29 t15))
-(step t31 (cl @p_50 @p_51) :rule or :premises (t28))
-(step t32 (cl @p_51) :rule resolution :premises (t31 t9))
-(step t33 (cl (! (not (! (= @p_52 @p_53) :named @p_61)) :named @p_57) (! (not @p_51) :named @p_58) (! (not @p_49) :named @p_59) (not (! (= @p_54 @p_55) :named @p_56)) @p_35) :rule eq_transitive)
-(step t34 (cl (! (not @p_42) :named @p_60) @p_56) :rule eq_congruent)
-(step t35 (cl @p_57 @p_58 @p_59 @p_35 @p_60) :rule th_resolution :premises (t33 t34))
-(step t36 (cl (! (not @p_41) :named @p_62) @p_61) :rule eq_congruent)
-(step t37 (cl @p_58 @p_59 @p_35 @p_60 @p_62) :rule th_resolution :premises (t35 t36))
-(step t38 (cl) :rule resolution :premises (t37 t24 t25 t26 t30 t32))
-5c8ad736381ed7e2bc55bcefd8a06994784b278f 25 0
-unsat
-(assume a0 (! (not (! (or (! (= (! (f$ g$ x$) :named @p_1) (! (and (! (fun_app$ g$ x$) :named @p_2) true) :named @p_13)) :named @p_4) (or (! (= @p_1 true) :named @p_5) (! (= @p_2 true) :named @p_6))) :named @p_3)) :named @p_7))
-(step t2 (cl (= @p_3 (! (or @p_4 @p_5 @p_6) :named @p_8))) :rule ac_simp)
-(step t3 (cl (! (= @p_7 (! (not @p_8) :named @p_10)) :named @p_9)) :rule cong :premises (t2))
-(step t4 (cl (! (not @p_9) :named @p_12) (! (not @p_7) :named @p_11) @p_10) :rule equiv_pos2)
-(step t5 (cl (not @p_11) @p_3) :rule not_not)
-(step t6 (cl @p_12 @p_3 @p_10) :rule th_resolution :premises (t5 t4))
-(step t7 (cl @p_10) :rule th_resolution :premises (a0 t3 t6))
-(step t8 (cl (= @p_13 (! (and @p_2) :named @p_14))) :rule and_simplify)
-(step t9 (cl (= @p_14 @p_2)) :rule and_simplify)
-(step t10 (cl (= @p_13 @p_2)) :rule trans :premises (t8 t9))
-(step t11 (cl (= @p_4 (! (= @p_1 @p_2) :named @p_15))) :rule cong :premises (t10))
-(step t12 (cl (= @p_5 @p_1)) :rule equiv_simplify)
-(step t13 (cl (= @p_6 @p_2)) :rule equiv_simplify)
-(step t14 (cl (= @p_8 (! (or @p_15 @p_1 @p_2) :named @p_16))) :rule cong :premises (t11 t12 t13))
-(step t15 (cl (! (= @p_10 (! (not @p_16) :named @p_18)) :named @p_17)) :rule cong :premises (t14))
-(step t16 (cl (! (not @p_17) :named @p_20) (! (not @p_10) :named @p_19) @p_18) :rule equiv_pos2)
-(step t17 (cl (not @p_19) @p_8) :rule not_not)
-(step t18 (cl @p_20 @p_8 @p_18) :rule th_resolution :premises (t17 t16))
-(step t19 (cl @p_18) :rule th_resolution :premises (t7 t15 t18))
-(step t20 (cl (not @p_15)) :rule not_or :premises (t19))
-(step t21 (cl @p_1 @p_2) :rule not_equiv1 :premises (t20))
-(step t22 (cl (not @p_1)) :rule not_or :premises (t19))
-(step t23 (cl (not @p_2)) :rule not_or :premises (t19))
-(step t24 (cl) :rule resolution :premises (t21 t22 t23))
-866c42407f20d04dcdd5beace79be280ba36c916 38 0
-unsat
-(assume a0 (! (forall ((?v0 A$)) (! (= ?v0 (! (id$ ?v0) :named @p_4)) :named @p_6)) :named @p_2))
-(assume a1 (forall ((?v0 Bool)) (= (id$a ?v0) ?v0)))
-(assume a2 (! (not (! (and (! (= x$ (id$ x$)) :named @p_23) (! (= (! (id$a true) :named @p_17) true) :named @p_1)) :named @p_22)) :named @p_24))
-(step t4 (cl (! (and (! (= (! (id$a false) :named @p_16) false) :named @p_15) @p_1) :named @p_18)) :rule bfun_elim :premises (a1))
+(assume axiom0 (! (forall ((?v0 A$)) (! (= ?v0 (! (id$ ?v0) :named @p_4)) :named @p_6)) :named @p_2))
+(assume axiom1 (forall ((?v0 Bool)) (= (id$a ?v0) ?v0)))
+(assume axiom2 (! (not (! (and (! (= x$ (id$ x$)) :named @p_23) (! (= (! (id$a true) :named @p_17) true) :named @p_1)) :named @p_22)) :named @p_24))
+(step t4 (cl (! (and (! (= (! (id$a false) :named @p_16) false) :named @p_15) @p_1) :named @p_18)) :rule bfun_elim :premises (axiom1))
(anchor :step t5 :args ((:= (?v0 A$) veriT_vr0)))
(step t5.t1 (cl (! (= ?v0 veriT_vr0) :named @p_3)) :rule refl)
(step t5.t2 (cl @p_3) :rule refl)
@@ -3009,7 +3009,7 @@
(step t5.t4 (cl (= @p_6 (! (= veriT_vr0 @p_5) :named @p_7))) :rule cong :premises (t5.t1 t5.t3))
(step t5 (cl (! (= @p_2 (! (forall ((veriT_vr0 A$)) @p_7) :named @p_9)) :named @p_8)) :rule bind)
(step t6 (cl (not @p_8) (not @p_2) @p_9) :rule equiv_pos2)
-(step t7 (cl @p_9) :rule th_resolution :premises (a0 t5 t6))
+(step t7 (cl @p_9) :rule th_resolution :premises (axiom0 t5 t6))
(anchor :step t8 :args ((:= (veriT_vr0 A$) veriT_vr1)))
(step t8.t1 (cl (! (= veriT_vr0 veriT_vr1) :named @p_10)) :rule refl)
(step t8.t2 (cl @p_10) :rule refl)
@@ -3028,17 +3028,17 @@
(step t18 (cl (! (not @p_26) :named @p_29) (! (not @p_24) :named @p_28) @p_27) :rule equiv_pos2)
(step t19 (cl (not @p_28) @p_22) :rule not_not)
(step t20 (cl @p_29 @p_22 @p_27) :rule th_resolution :premises (t19 t18))
-(step t21 (cl @p_27) :rule th_resolution :premises (a2 t17 t20))
+(step t21 (cl @p_27) :rule th_resolution :premises (axiom2 t17 t20))
(step t22 (cl @p_17) :rule and :premises (t15))
(step t23 (cl (! (not @p_23) :named @p_30) (not @p_17)) :rule not_and :premises (t21))
(step t24 (cl @p_30) :rule resolution :premises (t23 t22))
(step t25 (cl (or (! (not @p_14) :named @p_31) @p_23)) :rule forall_inst :args ((:= veriT_vr1 x$)))
(step t26 (cl @p_31 @p_23) :rule or :premises (t25))
(step t27 (cl) :rule resolution :premises (t26 t10 t24))
-75683ef8683272f0e70a656b2aaeeba1b535ac8d 27 0
+395426c1e77b0b2b43dd37f4fdc5b1794b758773 27 0
unsat
-(assume a0 (not (=> (f$ (! (exists ((?v0 A$)) (! (g$ ?v0) :named @p_2)) :named @p_1)) true)))
-(step t2 (cl (! (not (! (=> (! (ite @p_1 (! (f$ true) :named @p_6) (! (f$ false) :named @p_7)) :named @p_4) true) :named @p_8)) :named @p_10)) :rule bfun_elim :premises (a0))
+(assume axiom0 (not (=> (f$ (! (exists ((?v0 A$)) (! (g$ ?v0) :named @p_2)) :named @p_1)) true)))
+(step t2 (cl (! (not (! (=> (! (ite @p_1 (! (f$ true) :named @p_6) (! (f$ false) :named @p_7)) :named @p_4) true) :named @p_8)) :named @p_10)) :rule bfun_elim :premises (axiom0))
(anchor :step t3 :args ((:= (?v0 A$) veriT_vr0)))
(step t3.t1 (cl (= ?v0 veriT_vr0)) :rule refl)
(step t3.t2 (cl (= @p_2 (! (g$ veriT_vr0) :named @p_3))) :rule cong :premises (t3.t1))
@@ -3063,10 +3063,10 @@
(step t21 (cl false) :rule th_resolution :premises (t15 t19 t20))
(step t22 (cl (not false)) :rule false)
(step t23 (cl) :rule resolution :premises (t21 t22))
-bfe8d775ab64ce32fa8986be49dfdcae57d75099 60 0
+2bbe312ac0bf24de2abf59ed85b8b3b02d04d4eb 60 0
unsat
-(assume a0 (! (forall ((?v0 Int) (?v1 Int)) (! (= (! (fun_app$ (! (fun_app$a uu$ ?v0) :named @p_2) ?v1) :named @p_4) (! (<= ?v0 ?v1) :named @p_8)) :named @p_10)) :named @p_1))
-(assume a1 (! (not (! (=> (! (= uu$ le$) :named @p_23) (! (fun_app$ (! (fun_app$a le$ 3) :named @p_40) 42) :named @p_24)) :named @p_28)) :named @p_22))
+(assume axiom0 (! (forall ((?v0 Int) (?v1 Int)) (! (= (! (fun_app$ (! (fun_app$a uu$ ?v0) :named @p_2) ?v1) :named @p_4) (! (<= ?v0 ?v1) :named @p_8)) :named @p_10)) :named @p_1))
+(assume axiom1 (! (not (! (=> (! (= uu$ le$) :named @p_23) (! (fun_app$ (! (fun_app$a le$ 3) :named @p_40) 42) :named @p_24)) :named @p_28)) :named @p_22))
(anchor :step t3 :args ((:= (?v0 Int) veriT_vr0) (:= (?v1 Int) veriT_vr1)))
(step t3.t1 (cl (! (= ?v0 veriT_vr0) :named @p_6)) :rule refl)
(step t3.t2 (cl (= @p_2 (! (fun_app$a uu$ veriT_vr0) :named @p_3))) :rule cong :premises (t3.t1))
@@ -3078,7 +3078,7 @@
(step t3.t8 (cl (= @p_10 (! (= @p_5 @p_9) :named @p_11))) :rule cong :premises (t3.t4 t3.t7))
(step t3 (cl (! (= @p_1 (! (forall ((veriT_vr0 Int) (veriT_vr1 Int)) @p_11) :named @p_13)) :named @p_12)) :rule bind)
(step t4 (cl (not @p_12) (not @p_1) @p_13) :rule equiv_pos2)
-(step t5 (cl @p_13) :rule th_resolution :premises (a0 t3 t4))
+(step t5 (cl @p_13) :rule th_resolution :premises (axiom0 t3 t4))
(anchor :step t6 :args ((:= (veriT_vr0 Int) veriT_vr2) (:= (veriT_vr1 Int) veriT_vr3)))
(step t6.t1 (cl (! (= veriT_vr0 veriT_vr2) :named @p_16)) :rule refl)
(step t6.t2 (cl (= @p_3 (! (fun_app$a uu$ veriT_vr2) :named @p_14))) :rule cong :premises (t6.t1))
@@ -3095,7 +3095,7 @@
(step t10 (cl (! (not @p_25) :named @p_29) (! (not @p_22) :named @p_27) @p_26) :rule equiv_pos2)
(step t11 (cl (not @p_27) @p_28) :rule not_not)
(step t12 (cl @p_29 @p_28 @p_26) :rule th_resolution :premises (t11 t10))
-(step t13 (cl @p_26) :rule th_resolution :premises (a1 t9 t12))
+(step t13 (cl @p_26) :rule th_resolution :premises (axiom1 t9 t12))
(step t14 (cl @p_23) :rule and :premises (t13))
(step t15 (cl @p_30) :rule and :premises (t13))
(step t16 (cl (or (! (not @p_21) :named @p_37) (! (= (! (fun_app$ (! (fun_app$a uu$ 3) :named @p_41) 42) :named @p_32) (! (<= 3 42) :named @p_33)) :named @p_31))) :rule forall_inst :args ((:= veriT_vr2 3) (:= veriT_vr3 42)))
@@ -3124,10 +3124,10 @@
(step t31 (cl @p_47) :rule eq_reflexive)
(step t32 (cl @p_42 @p_24 @p_45) :rule th_resolution :premises (t30 t31))
(step t33 (cl) :rule resolution :premises (t32 t14 t15 t25))
-c16c43a541a3283a006315d4b74b5196ee73be5b 27 0
+cff62aa4cee92583faa1651c31b596d6853191d1 27 0
unsat
-(assume a0 (not (=> (f$ (! (forall ((?v0 A$)) (! (g$ ?v0) :named @p_2)) :named @p_1)) true)))
-(step t2 (cl (! (not (! (=> (! (ite @p_1 (! (f$ true) :named @p_6) (! (f$ false) :named @p_7)) :named @p_4) true) :named @p_8)) :named @p_10)) :rule bfun_elim :premises (a0))
+(assume axiom0 (not (=> (f$ (! (forall ((?v0 A$)) (! (g$ ?v0) :named @p_2)) :named @p_1)) true)))
+(step t2 (cl (! (not (! (=> (! (ite @p_1 (! (f$ true) :named @p_6) (! (f$ false) :named @p_7)) :named @p_4) true) :named @p_8)) :named @p_10)) :rule bfun_elim :premises (axiom0))
(anchor :step t3 :args ((:= (?v0 A$) veriT_vr0)))
(step t3.t1 (cl (= ?v0 veriT_vr0)) :rule refl)
(step t3.t2 (cl (= @p_2 (! (g$ veriT_vr0) :named @p_3))) :rule cong :premises (t3.t1))
@@ -3152,12 +3152,12 @@
(step t21 (cl false) :rule th_resolution :premises (t15 t19 t20))
(step t22 (cl (not false)) :rule false)
(step t23 (cl) :rule resolution :premises (t21 t22))
-2224e31ba45ff13284551d05730c64492fbe999c 125 0
+b98ce8490503b759ff8b992327f85a4088d1bb79 125 0
unsat
-(assume a0 (! (forall ((?v0 Int)) (! (= (! (fun_app$ uu$ ?v0) :named @p_2) (! (+ ?v0 1) :named @p_5)) :named @p_7)) :named @p_1))
-(assume a1 (! (forall ((?v0 Int_int_fun$)) (! (= nil$ (! (map$ ?v0 nil$) :named @p_22)) :named @p_24)) :named @p_21))
-(assume a2 (! (forall ((?v0 Int_int_fun$) (?v1 Int) (?v2 Int_list$)) (! (= (! (map$ ?v0 (! (cons$ ?v1 ?v2) :named @p_33)) :named @p_35) (! (cons$ (! (fun_app$ ?v0 ?v1) :named @p_39) (! (map$ ?v0 ?v2) :named @p_42)) :named @p_44)) :named @p_46)) :named @p_32))
-(assume a3 (not (! (= (! (map$ uu$ (cons$ 0 (! (cons$ 1 nil$) :named @p_62))) :named @p_61) (! (cons$ 1 (! (cons$ 2 nil$) :named @p_90)) :named @p_86)) :named @p_88)))
+(assume axiom0 (! (forall ((?v0 Int)) (! (= (! (fun_app$ uu$ ?v0) :named @p_2) (! (+ ?v0 1) :named @p_5)) :named @p_7)) :named @p_1))
+(assume axiom1 (! (forall ((?v0 Int_int_fun$)) (! (= nil$ (! (map$ ?v0 nil$) :named @p_22)) :named @p_24)) :named @p_21))
+(assume axiom2 (! (forall ((?v0 Int_int_fun$) (?v1 Int) (?v2 Int_list$)) (! (= (! (map$ ?v0 (! (cons$ ?v1 ?v2) :named @p_33)) :named @p_35) (! (cons$ (! (fun_app$ ?v0 ?v1) :named @p_39) (! (map$ ?v0 ?v2) :named @p_42)) :named @p_44)) :named @p_46)) :named @p_32))
+(assume axiom3 (not (! (= (! (map$ uu$ (cons$ 0 (! (cons$ 1 nil$) :named @p_62))) :named @p_61) (! (cons$ 1 (! (cons$ 2 nil$) :named @p_90)) :named @p_86)) :named @p_88)))
(anchor :step t5 :args ((:= (?v0 Int) veriT_vr0)))
(step t5.t1 (cl (! (= ?v0 veriT_vr0) :named @p_4)) :rule refl)
(step t5.t2 (cl (= @p_2 (! (fun_app$ uu$ veriT_vr0) :named @p_3))) :rule cong :premises (t5.t1))
@@ -3166,7 +3166,7 @@
(step t5.t5 (cl (= @p_7 (! (= @p_3 @p_6) :named @p_8))) :rule cong :premises (t5.t2 t5.t4))
(step t5 (cl (! (= @p_1 (! (forall ((veriT_vr0 Int)) @p_8) :named @p_10)) :named @p_9)) :rule bind)
(step t6 (cl (not @p_9) (not @p_1) @p_10) :rule equiv_pos2)
-(step t7 (cl @p_10) :rule th_resolution :premises (a0 t5 t6))
+(step t7 (cl @p_10) :rule th_resolution :premises (axiom0 t5 t6))
(anchor :step t8 :args ((veriT_vr0 Int)))
(step t8.t1 (cl (= @p_6 (! (+ 1 veriT_vr0) :named @p_11))) :rule sum_simplify)
(step t8.t2 (cl (= @p_8 (! (= @p_3 @p_11) :named @p_12))) :rule cong :premises (t8.t1))
@@ -3188,7 +3188,7 @@
(step t14.t3 (cl (= @p_24 (! (= nil$ @p_23) :named @p_25))) :rule cong :premises (t14.t2))
(step t14 (cl (! (= @p_21 (! (forall ((veriT_vr2 Int_int_fun$)) @p_25) :named @p_27)) :named @p_26)) :rule bind)
(step t15 (cl (not @p_26) (not @p_21) @p_27) :rule equiv_pos2)
-(step t16 (cl @p_27) :rule th_resolution :premises (a1 t14 t15))
+(step t16 (cl @p_27) :rule th_resolution :premises (axiom1 t14 t15))
(anchor :step t17 :args ((:= (veriT_vr2 Int_int_fun$) veriT_vr3)))
(step t17.t1 (cl (= veriT_vr2 veriT_vr3)) :rule refl)
(step t17.t2 (cl (= @p_23 (! (map$ veriT_vr3 nil$) :named @p_28))) :rule cong :premises (t17.t1))
@@ -3212,7 +3212,7 @@
(step t20.t13 (cl (= @p_46 (! (= @p_36 @p_45) :named @p_47))) :rule cong :premises (t20.t5 t20.t12))
(step t20 (cl (! (= @p_32 (! (forall ((veriT_vr4 Int_int_fun$) (veriT_vr5 Int) (veriT_vr6 Int_list$)) @p_47) :named @p_49)) :named @p_48)) :rule bind)
(step t21 (cl (not @p_48) (not @p_32) @p_49) :rule equiv_pos2)
-(step t22 (cl @p_49) :rule th_resolution :premises (a2 t20 t21))
+(step t22 (cl @p_49) :rule th_resolution :premises (axiom2 t20 t21))
(anchor :step t23 :args ((:= (veriT_vr4 Int_int_fun$) veriT_vr7) (:= (veriT_vr5 Int) veriT_vr8) (:= (veriT_vr6 Int_list$) veriT_vr9)))
(step t23.t1 (cl (! (= veriT_vr4 veriT_vr7) :named @p_52)) :rule refl)
(step t23.t2 (cl (! (= veriT_vr5 veriT_vr8) :named @p_53)) :rule refl)
@@ -3277,10 +3277,10 @@
(step t58 (cl @p_96 @p_93 @p_94 @p_97) :rule th_resolution :premises (t56 t57))
(step t59 (cl @p_89 @p_91 @p_96 @p_94 @p_97) :rule th_resolution :premises (t55 t58))
(step t60 (cl @p_98 @p_88 @p_89 @p_96 @p_94 @p_97) :rule th_resolution :premises (t54 t59))
-(step t61 (cl) :rule resolution :premises (t60 a3 t28 t39 t41 t51 t53))
-9bfeafd531163b7b5dc1f3e29f35b01c7ed668dc 23 0
+(step t61 (cl) :rule resolution :premises (t60 axiom3 t28 t39 t41 t51 t53))
+4bfba84466bed875a9d6690636344a2452d6f312 23 0
unsat
-(assume a0 (! (not (! (or (! (forall ((?v0 A$)) (! (p$ ?v0) :named @p_2)) :named @p_1) (! (not @p_1) :named @p_4)) :named @p_6)) :named @p_8))
+(assume axiom0 (! (not (! (or (! (forall ((?v0 A$)) (! (p$ ?v0) :named @p_2)) :named @p_1) (! (not @p_1) :named @p_4)) :named @p_6)) :named @p_8))
(anchor :step t2 :args ((:= (?v0 A$) veriT_vr0)))
(step t2.t1 (cl (= ?v0 veriT_vr0)) :rule refl)
(step t2.t2 (cl (= @p_2 (! (p$ veriT_vr0) :named @p_3))) :rule cong :premises (t2.t1))
@@ -3291,7 +3291,7 @@
(step t6 (cl (! (not @p_10) :named @p_13) (! (not @p_8) :named @p_12) @p_11) :rule equiv_pos2)
(step t7 (cl (not @p_12) @p_6) :rule not_not)
(step t8 (cl @p_13 @p_6 @p_11) :rule th_resolution :premises (t7 t6))
-(step t9 (cl @p_11) :rule th_resolution :premises (a0 t5 t8))
+(step t9 (cl @p_11) :rule th_resolution :premises (axiom0 t5 t8))
(step t10 (cl (= @p_9 true)) :rule or_simplify)
(step t11 (cl (= @p_11 (! (not true) :named @p_14))) :rule cong :premises (t10))
(step t12 (cl (= @p_14 false)) :rule not_simplify)
@@ -3302,10 +3302,59 @@
(step t17 (cl false) :rule th_resolution :premises (t9 t13 t16))
(step t18 (cl (not false)) :rule false)
(step t19 (cl) :rule resolution :premises (t17 t18))
-3fb3269903eddb271bcd0f8b72a806a38020c0d1 107 0
+2f429461f6d8832eb5f04c2d4afd47dfd1b769d9 48 0
unsat
-(assume a0 (! (forall ((?v0 Int)) (! (= (! (dec_10$ ?v0) :named @p_2) (! (ite (! (< ?v0 10) :named @p_5) ?v0 (! (dec_10$ (! (- ?v0 10) :named @p_7)) :named @p_9)) :named @p_11)) :named @p_13)) :named @p_1))
-(assume a1 (not (! (= (! (dec_10$ (! (* 4 (! (dec_10$ 4) :named @p_38)) :named @p_27)) :named @p_26) 6) :named @p_74)))
+(assume axiom2 (! (forall ((?v0 A$) (?v1 A$) (?v2 A$)) (! (=> (! (and (! (less_eq$ ?v0 ?v1) :named @p_4) (! (less_eq$ ?v1 ?v2) :named @p_7)) :named @p_9) (! (less_eq$ ?v0 ?v2) :named @p_13)) :named @p_15)) :named @p_3))
+(assume axiom3 (! (less_eq$ (! (sup$ (collect$ uu$)) :named @p_2) (! (sup$ (collect$ uua$)) :named @p_1)) :named @p_31))
+(assume axiom4 (! (less_eq$ @p_1 @p_2) :named @p_32))
+(assume axiom5 (not (! (less_eq$ @p_2 @p_2) :named @p_33)))
+(anchor :step t5 :args ((:= (?v0 A$) veriT_vr4) (:= (?v1 A$) veriT_vr5) (:= (?v2 A$) veriT_vr6)))
+(step t5.t1 (cl (! (= ?v0 veriT_vr4) :named @p_11)) :rule refl)
+(step t5.t2 (cl (! (= ?v1 veriT_vr5) :named @p_6)) :rule refl)
+(step t5.t3 (cl (= @p_4 (! (less_eq$ veriT_vr4 veriT_vr5) :named @p_5))) :rule cong :premises (t5.t1 t5.t2))
+(step t5.t4 (cl @p_6) :rule refl)
+(step t5.t5 (cl (! (= ?v2 veriT_vr6) :named @p_12)) :rule refl)
+(step t5.t6 (cl (= @p_7 (! (less_eq$ veriT_vr5 veriT_vr6) :named @p_8))) :rule cong :premises (t5.t4 t5.t5))
+(step t5.t7 (cl (= @p_9 (! (and @p_5 @p_8) :named @p_10))) :rule cong :premises (t5.t3 t5.t6))
+(step t5.t8 (cl @p_11) :rule refl)
+(step t5.t9 (cl @p_12) :rule refl)
+(step t5.t10 (cl (= @p_13 (! (less_eq$ veriT_vr4 veriT_vr6) :named @p_14))) :rule cong :premises (t5.t8 t5.t9))
+(step t5.t11 (cl (= @p_15 (! (=> @p_10 @p_14) :named @p_16))) :rule cong :premises (t5.t7 t5.t10))
+(step t5 (cl (! (= @p_3 (! (forall ((veriT_vr4 A$) (veriT_vr5 A$) (veriT_vr6 A$)) @p_16) :named @p_18)) :named @p_17)) :rule bind)
+(step t6 (cl (not @p_17) (not @p_3) @p_18) :rule equiv_pos2)
+(step t7 (cl @p_18) :rule th_resolution :premises (axiom2 t5 t6))
+(anchor :step t8 :args ((:= (veriT_vr4 A$) veriT_vr7) (:= (veriT_vr5 A$) veriT_vr8) (:= (veriT_vr6 A$) veriT_vr9)))
+(step t8.t1 (cl (! (= veriT_vr4 veriT_vr7) :named @p_23)) :rule refl)
+(step t8.t2 (cl (! (= veriT_vr5 veriT_vr8) :named @p_20)) :rule refl)
+(step t8.t3 (cl (= @p_5 (! (less_eq$ veriT_vr7 veriT_vr8) :named @p_19))) :rule cong :premises (t8.t1 t8.t2))
+(step t8.t4 (cl @p_20) :rule refl)
+(step t8.t5 (cl (! (= veriT_vr6 veriT_vr9) :named @p_24)) :rule refl)
+(step t8.t6 (cl (= @p_8 (! (less_eq$ veriT_vr8 veriT_vr9) :named @p_21))) :rule cong :premises (t8.t4 t8.t5))
+(step t8.t7 (cl (= @p_10 (! (and @p_19 @p_21) :named @p_22))) :rule cong :premises (t8.t3 t8.t6))
+(step t8.t8 (cl @p_23) :rule refl)
+(step t8.t9 (cl @p_24) :rule refl)
+(step t8.t10 (cl (= @p_14 (! (less_eq$ veriT_vr7 veriT_vr9) :named @p_25))) :rule cong :premises (t8.t8 t8.t9))
+(step t8.t11 (cl (= @p_16 (! (=> @p_22 @p_25) :named @p_26))) :rule cong :premises (t8.t7 t8.t10))
+(step t8 (cl (! (= @p_18 (! (forall ((veriT_vr7 A$) (veriT_vr8 A$) (veriT_vr9 A$)) @p_26) :named @p_28)) :named @p_27)) :rule bind)
+(step t9 (cl (not @p_27) (not @p_18) @p_28) :rule equiv_pos2)
+(step t10 (cl @p_28) :rule th_resolution :premises (t7 t8 t9))
+(step t11 (cl (or (! (not @p_28) :named @p_29) (! (forall ((veriT_vr7 A$) (veriT_vr8 A$) (veriT_vr9 A$)) (or (not @p_19) (not @p_21) @p_25)) :named @p_30))) :rule qnt_cnf)
+(step t12 (cl @p_29 @p_30) :rule or :premises (t11))
+(step t13 (cl (or (! (not @p_30) :named @p_34) (! (or (! (not @p_31) :named @p_39) (! (not @p_32) :named @p_40) @p_33) :named @p_35))) :rule forall_inst :args ((:= veriT_vr7 @p_2) (:= veriT_vr8 @p_1) (:= veriT_vr9 @p_2)))
+(step t14 (cl @p_34 @p_35) :rule or :premises (t13))
+(step t15 (cl (! (or @p_29 @p_35) :named @p_37) (! (not @p_29) :named @p_36)) :rule or_neg)
+(step t16 (cl (not @p_36) @p_28) :rule not_not)
+(step t17 (cl @p_37 @p_28) :rule th_resolution :premises (t16 t15))
+(step t18 (cl @p_37 (! (not @p_35) :named @p_38)) :rule or_neg)
+(step t19 (cl @p_37) :rule th_resolution :premises (t12 t14 t17 t18))
+(step t20 (cl @p_38 @p_39 @p_40 @p_33) :rule or_pos)
+(step t21 (cl @p_29 @p_35) :rule or :premises (t19))
+(step t22 (cl @p_38) :rule resolution :premises (t20 axiom3 axiom4 axiom5))
+(step t23 (cl) :rule resolution :premises (t21 t10 t22))
+8f4bf1893caa103dd59d38dee5686b501773527d 107 0
+unsat
+(assume axiom0 (! (forall ((?v0 Int)) (! (= (! (dec_10$ ?v0) :named @p_2) (! (ite (! (< ?v0 10) :named @p_5) ?v0 (! (dec_10$ (! (- ?v0 10) :named @p_7)) :named @p_9)) :named @p_11)) :named @p_13)) :named @p_1))
+(assume axiom1 (not (! (= (! (dec_10$ (! (* 4 (! (dec_10$ 4) :named @p_38)) :named @p_27)) :named @p_26) 6) :named @p_74)))
(anchor :step t3 :args ((:= (?v0 Int) veriT_vr0)))
(step t3.t1 (cl (! (= ?v0 veriT_vr0) :named @p_4)) :rule refl)
(step t3.t2 (cl (= @p_2 (! (dec_10$ veriT_vr0) :named @p_3))) :rule cong :premises (t3.t1))
@@ -3319,7 +3368,7 @@
(step t3.t10 (cl (= @p_13 (! (= @p_3 @p_12) :named @p_14))) :rule cong :premises (t3.t2 t3.t9))
(step t3 (cl (! (= @p_1 (! (forall ((veriT_vr0 Int)) @p_14) :named @p_16)) :named @p_15)) :rule bind)
(step t4 (cl (not @p_15) (not @p_1) @p_16) :rule equiv_pos2)
-(step t5 (cl @p_16) :rule th_resolution :premises (a0 t3 t4))
+(step t5 (cl @p_16) :rule th_resolution :premises (axiom0 t3 t4))
(anchor :step t6 :args ((:= (veriT_vr0 Int) veriT_vr1)))
(step t6.t1 (cl (! (= veriT_vr0 veriT_vr1) :named @p_18)) :rule refl)
(step t6.t2 (cl (= @p_3 (! (dec_10$ veriT_vr1) :named @p_17))) :rule cong :premises (t6.t1))
@@ -3406,94 +3455,45 @@
(step t57 (cl (! (not @p_64) :named @p_77) (! (not @p_66) :named @p_78) (! (not @p_68) :named @p_79) (! (= 6 @p_31) :named @p_73)) :rule eq_transitive)
(step t58 (cl (not @p_73) (! (not @p_53) :named @p_75) (! (not @p_51) :named @p_76) @p_74) :rule eq_transitive)
(step t59 (cl @p_75 @p_76 @p_74 @p_77 @p_78 @p_79) :rule th_resolution :premises (t58 t57))
-(step t60 (cl @p_75) :rule resolution :premises (t59 a1 t29 t45 t49 t56))
+(step t60 (cl @p_75) :rule resolution :premises (t59 axiom1 t29 t45 t49 t56))
(step t61 (cl @p_30) :rule resolution :premises (t25 t60 t30))
(step t62 (cl (not @p_30) @p_67) :rule la_generic :args (1 (- 4)))
(step t63 (cl) :rule resolution :premises (t62 t61 t32))
-21ed8993747dbe3d7fd900d61cf02456b0a38afa 48 0
-unsat
-(assume a2 (! (forall ((?v0 A$) (?v1 A$) (?v2 A$)) (! (=> (! (and (! (less_eq$ ?v0 ?v1) :named @p_4) (! (less_eq$ ?v1 ?v2) :named @p_7)) :named @p_9) (! (less_eq$ ?v0 ?v2) :named @p_13)) :named @p_15)) :named @p_3))
-(assume a3 (! (less_eq$ (! (sup$ (collect$ uu$)) :named @p_2) (! (sup$ (collect$ uua$)) :named @p_1)) :named @p_31))
-(assume a4 (! (less_eq$ @p_1 @p_2) :named @p_32))
-(assume a5 (not (! (less_eq$ @p_2 @p_2) :named @p_33)))
-(anchor :step t5 :args ((:= (?v0 A$) veriT_vr4) (:= (?v1 A$) veriT_vr5) (:= (?v2 A$) veriT_vr6)))
-(step t5.t1 (cl (! (= ?v0 veriT_vr4) :named @p_11)) :rule refl)
-(step t5.t2 (cl (! (= ?v1 veriT_vr5) :named @p_6)) :rule refl)
-(step t5.t3 (cl (= @p_4 (! (less_eq$ veriT_vr4 veriT_vr5) :named @p_5))) :rule cong :premises (t5.t1 t5.t2))
-(step t5.t4 (cl @p_6) :rule refl)
-(step t5.t5 (cl (! (= ?v2 veriT_vr6) :named @p_12)) :rule refl)
-(step t5.t6 (cl (= @p_7 (! (less_eq$ veriT_vr5 veriT_vr6) :named @p_8))) :rule cong :premises (t5.t4 t5.t5))
-(step t5.t7 (cl (= @p_9 (! (and @p_5 @p_8) :named @p_10))) :rule cong :premises (t5.t3 t5.t6))
-(step t5.t8 (cl @p_11) :rule refl)
-(step t5.t9 (cl @p_12) :rule refl)
-(step t5.t10 (cl (= @p_13 (! (less_eq$ veriT_vr4 veriT_vr6) :named @p_14))) :rule cong :premises (t5.t8 t5.t9))
-(step t5.t11 (cl (= @p_15 (! (=> @p_10 @p_14) :named @p_16))) :rule cong :premises (t5.t7 t5.t10))
-(step t5 (cl (! (= @p_3 (! (forall ((veriT_vr4 A$) (veriT_vr5 A$) (veriT_vr6 A$)) @p_16) :named @p_18)) :named @p_17)) :rule bind)
-(step t6 (cl (not @p_17) (not @p_3) @p_18) :rule equiv_pos2)
-(step t7 (cl @p_18) :rule th_resolution :premises (a2 t5 t6))
-(anchor :step t8 :args ((:= (veriT_vr4 A$) veriT_vr7) (:= (veriT_vr5 A$) veriT_vr8) (:= (veriT_vr6 A$) veriT_vr9)))
-(step t8.t1 (cl (! (= veriT_vr4 veriT_vr7) :named @p_23)) :rule refl)
-(step t8.t2 (cl (! (= veriT_vr5 veriT_vr8) :named @p_20)) :rule refl)
-(step t8.t3 (cl (= @p_5 (! (less_eq$ veriT_vr7 veriT_vr8) :named @p_19))) :rule cong :premises (t8.t1 t8.t2))
-(step t8.t4 (cl @p_20) :rule refl)
-(step t8.t5 (cl (! (= veriT_vr6 veriT_vr9) :named @p_24)) :rule refl)
-(step t8.t6 (cl (= @p_8 (! (less_eq$ veriT_vr8 veriT_vr9) :named @p_21))) :rule cong :premises (t8.t4 t8.t5))
-(step t8.t7 (cl (= @p_10 (! (and @p_19 @p_21) :named @p_22))) :rule cong :premises (t8.t3 t8.t6))
-(step t8.t8 (cl @p_23) :rule refl)
-(step t8.t9 (cl @p_24) :rule refl)
-(step t8.t10 (cl (= @p_14 (! (less_eq$ veriT_vr7 veriT_vr9) :named @p_25))) :rule cong :premises (t8.t8 t8.t9))
-(step t8.t11 (cl (= @p_16 (! (=> @p_22 @p_25) :named @p_26))) :rule cong :premises (t8.t7 t8.t10))
-(step t8 (cl (! (= @p_18 (! (forall ((veriT_vr7 A$) (veriT_vr8 A$) (veriT_vr9 A$)) @p_26) :named @p_28)) :named @p_27)) :rule bind)
-(step t9 (cl (not @p_27) (not @p_18) @p_28) :rule equiv_pos2)
-(step t10 (cl @p_28) :rule th_resolution :premises (t7 t8 t9))
-(step t11 (cl (or (! (not @p_28) :named @p_29) (! (forall ((veriT_vr7 A$) (veriT_vr8 A$) (veriT_vr9 A$)) (or (not @p_19) (not @p_21) @p_25)) :named @p_30))) :rule qnt_cnf)
-(step t12 (cl @p_29 @p_30) :rule or :premises (t11))
-(step t13 (cl (or (! (not @p_30) :named @p_34) (! (or (! (not @p_31) :named @p_39) (! (not @p_32) :named @p_40) @p_33) :named @p_35))) :rule forall_inst :args ((:= veriT_vr7 @p_2) (:= veriT_vr8 @p_1) (:= veriT_vr9 @p_2)))
-(step t14 (cl @p_34 @p_35) :rule or :premises (t13))
-(step t15 (cl (! (or @p_29 @p_35) :named @p_37) (! (not @p_29) :named @p_36)) :rule or_neg)
-(step t16 (cl (not @p_36) @p_28) :rule not_not)
-(step t17 (cl @p_37 @p_28) :rule th_resolution :premises (t16 t15))
-(step t18 (cl @p_37 (! (not @p_35) :named @p_38)) :rule or_neg)
-(step t19 (cl @p_37) :rule th_resolution :premises (t12 t14 t17 t18))
-(step t20 (cl @p_38 @p_39 @p_40 @p_33) :rule or_pos)
-(step t21 (cl @p_29 @p_35) :rule or :premises (t19))
-(step t22 (cl @p_38) :rule resolution :premises (t20 a3 a4 a5))
-(step t23 (cl) :rule resolution :premises (t21 t10 t22))
-c14292db1124938af032dfdc907662d28ea67e96 1434 0
+170ac60e28eef34728b56b5ef83cebdd5889b03f 1434 0
unsat
(define-fun veriT_sk0 () A$ (! (choice ((veriT_vr57 A$)) (not (! (=> (! (member$ veriT_vr57 (! (set$ (! (remdups$ xs$) :named @p_9)) :named @p_380)) :named @p_429) (! (not (! (member$ veriT_vr57 (! (set$ (! (remdups$ ys$) :named @p_10)) :named @p_381)) :named @p_431)) :named @p_432)) :named @p_433))) :named @p_449))
(define-fun veriT_sk1 () A$ (! (choice ((veriT_vr58 A$)) (not (! (=> (! (member$ veriT_vr58 @p_381) :named @p_434) (! (not (! (member$ veriT_vr58 @p_380) :named @p_436)) :named @p_437)) :named @p_438))) :named @p_455))
-(define-fun veriT_sk5 () A$ (! (choice ((veriT_vr100 A$)) (not (! (=> (! (member$ veriT_vr100 @p_380) :named @p_828) (! (not (! (member$ veriT_vr100 @p_381) :named @p_830)) :named @p_831)) :named @p_827))) :named @p_802))
-(define-fun veriT_sk6 () A$ (! (choice ((veriT_vr103 A$)) (not (! (=> (! (member$ veriT_vr103 (! (set$ xs$) :named @p_715)) :named @p_879) (! (not (! (member$ veriT_vr103 @p_381) :named @p_881)) :named @p_882)) :named @p_878))) :named @p_857))
+(define-fun veriT_sk4 () A$ (! (choice ((veriT_vr97 A$)) (not (! (=> (! (member$ veriT_vr97 (! (set$ xs$) :named @p_715)) :named @p_825) (! (not (! (member$ veriT_vr97 @p_381) :named @p_827)) :named @p_828)) :named @p_824))) :named @p_799))
+(define-fun veriT_sk6 () A$ (! (choice ((veriT_vr103 A$)) (not (! (=> (! (member$ veriT_vr103 @p_380) :named @p_879) (! (not (! (member$ veriT_vr103 @p_381) :named @p_881)) :named @p_882)) :named @p_878))) :named @p_857))
(define-fun veriT_sk11 () A$ (! (choice ((veriT_vr117 A$)) (not (! (=> (! (member$ veriT_vr117 (! (coset$ xs$) :named @p_21)) :named @p_924) (! (member$ veriT_vr117 (! (set$ (! (append$ xs$ @p_10) :named @p_761)) :named @p_760)) :named @p_926)) :named @p_923))) :named @p_909))
(define-fun veriT_sk14 () A$ (! (choice ((veriT_vr123 A$)) (not (! (=> (! (member$ veriT_vr123 @p_715) :named @p_969) (! (not (! (member$ veriT_vr123 @p_381) :named @p_971)) :named @p_972)) :named @p_968))) :named @p_943))
-(assume a0 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (= (! (fun_app$ (! (fun_app$a uu$ ?v0) :named @p_23) ?v1) :named @p_25) (! (= ?v0 ?v1) :named @p_13)) :named @p_30)) :named @p_22))
-(assume a1 (! (forall ((?v0 A_list$)) (! (= (! (fun_app$ (! (fun_app$a subset$ @p_21) :named @p_43) (! (set$ ?v0) :named @p_2)) :named @p_46) (! (and (! (less$ zero$ (! (fun_app$b card$ top$) :named @p_1)) :named @p_44) (! (= @p_1 (! (fun_app$b card$ (! (set$ (! (append$ xs$ ?v0) :named @p_49)) :named @p_51)) :named @p_53)) :named @p_55)) :named @p_57)) :named @p_59)) :named @p_42))
-(assume a2 (! (forall ((?v0 A$) (?v1 A_set$)) (! (=> (! (member$ ?v0 (! (uminus$ ?v1) :named @p_75)) :named @p_77) (! (not (! (member$ ?v0 ?v1) :named @p_81)) :named @p_83)) :named @p_85)) :named @p_74))
-(assume a3 (! (forall ((?v0 A_list$)) (! (= (! (fun_app$b card$ @p_2) :named @p_100) (! (size$ (! (remdups$ ?v0) :named @p_14)) :named @p_104)) :named @p_106)) :named @p_98))
-(assume a4 (! (forall ((?v0 A_list$)) (! (finite$ @p_2) :named @p_120)) :named @p_118))
-(assume a5 (! (forall ((?v0 A$)) (! (member$ ?v0 top$) :named @p_129)) :named @p_128))
-(assume a6 (not (! (= top$ bot$) :named @p_717)))
-(assume a9 (! (forall ((?v0 Nat$) (?v1 Nat$)) (! (= (! (= ?v0 (! (plus$ ?v0 ?v1) :named @p_138)) :named @p_140) (! (= zero$ ?v1) :named @p_143)) :named @p_145)) :named @p_136))
-(assume a10 (! (= (! (fun_app$b card$a @p_715) :named @p_1077) (! (size$ @p_9) :named @p_8)) :named @p_1076))
-(assume a11 (! (= card$ card$a) :named @p_1079))
-(assume a12 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (=> (! (and (! (finite$ ?v0) :named @p_4) (! (finite$ ?v1) :named @p_159)) :named @p_161) (! (= (! (plus$ (! (fun_app$b card$ ?v0) :named @p_3) (! (fun_app$b card$ ?v1) :named @p_166)) :named @p_168) (! (plus$ (! (fun_app$b card$ (! (sup$ ?v0 ?v1) :named @p_170)) :named @p_172) (! (fun_app$b card$ (! (inf$ ?v0 ?v1) :named @p_6)) :named @p_175)) :named @p_177)) :named @p_179)) :named @p_181)) :named @p_157))
-(assume a13 (! (forall ((?v0 A_set$)) (! (= (! (= zero$ @p_3) :named @p_204) (! (or (! (= ?v0 bot$) :named @p_207) (! (not @p_4) :named @p_210)) :named @p_212)) :named @p_214)) :named @p_202))
-(assume a14 (! (forall ((?v0 A_set$)) (! (=> (! (and (! (finite$ top$) :named @p_7) (! (= @p_1 @p_3) :named @p_230)) :named @p_232) (! (= ?v0 top$) :named @p_235)) :named @p_237)) :named @p_228))
-(assume a15 (! (forall ((?v0 A_list$)) (! (= @p_2 (! (uminus$ (! (coset$ ?v0) :named @p_5)) :named @p_253)) :named @p_255)) :named @p_249))
-(assume a16 (! (forall ((?v0 A_list$)) (! (= @p_5 (! (uminus$ @p_2) :named @p_270)) :named @p_272)) :named @p_266))
-(assume a17 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (= (! (= bot$ @p_6) :named @p_285) (! (forall ((?v2 A$)) (! (=> (! (member$ ?v2 ?v0) :named @p_15) (! (not (! (member$ ?v2 ?v1) :named @p_16)) :named @p_294)) :named @p_296)) :named @p_287)) :named @p_298)) :named @p_283))
-(assume a18 (! (= uu$ eq_set$) :named @p_1100))
-(assume a19 (! (forall ((?v0 A_set$)) (! (=> @p_4 (! (= (! (finite$ (! (uminus$ ?v0) :named @p_361)) :named @p_363) @p_7) :named @p_365)) :named @p_367)) :named @p_358))
-(assume a20 (! (= rhs$ (! (ite (! (= zero$ @p_1) :named @p_403) false (! (and (! (= @p_1 (! (plus$ @p_8 (! (size$ @p_10) :named @p_719)) :named @p_1056)) :named @p_400) (! (and (! (forall ((?v0 A$)) (! (=> (! (member$ ?v0 @p_380) :named @p_12) (! (not (! (member$ ?v0 @p_381) :named @p_11)) :named @p_385)) :named @p_387)) :named @p_379) (! (forall ((?v0 A$)) (! (=> @p_11 (! (not @p_12) :named @p_392)) :named @p_394)) :named @p_389)) :named @p_396)) :named @p_399)) :named @p_402)) :named @p_405))
-(assume a21 (! (forall ((?v0 A_list$) (?v1 A_list$)) (! (= (! (set$ (! (append$ ?v0 ?v1) :named @p_498)) :named @p_500) (! (sup$ @p_2 (! (set$ ?v1) :named @p_20)) :named @p_506)) :named @p_508)) :named @p_497))
-(assume a22 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (= @p_13 (! (and (! (fun_app$ (! (fun_app$a less_eq$ ?v0) :named @p_19) ?v1) :named @p_17) (! (fun_app$ (! (fun_app$a less_eq$ ?v1) :named @p_528) ?v0) :named @p_530)) :named @p_18)) :named @p_533)) :named @p_522))
-(assume a23 (! (forall ((?v0 A_list$)) (! (= @p_2 (! (set$ @p_14) :named @p_552)) :named @p_554)) :named @p_548))
-(assume a24 (! (= subset$ less_eq$) :named @p_1090))
-(assume a25 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (=> (! (forall ((?v2 A$)) (! (=> @p_15 @p_16) :named @p_571)) :named @p_566) @p_17) :named @p_577)) :named @p_565))
-(assume a26 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (=> @p_18 @p_13) :named @p_602)) :named @p_593))
-(assume a27 (! (forall ((?v0 A_set$) (?v1 A_list$)) (! (= (! (fun_app$ @p_19 (! (coset$ ?v1) :named @p_619)) :named @p_621) (! (forall ((?v2 A$)) (! (=> (! (member$ ?v2 @p_20) :named @p_627) (! (not @p_15) :named @p_632)) :named @p_634)) :named @p_623)) :named @p_636)) :named @p_617))
-(assume a28 (not (= (! (fun_app$ (! (fun_app$a eq_set$ @p_21) :named @p_1097) (! (set$ ys$) :named @p_713)) :named @p_711) rhs$)))
+(assume axiom0 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (= (! (fun_app$ (! (fun_app$a uu$ ?v0) :named @p_23) ?v1) :named @p_25) (! (= ?v0 ?v1) :named @p_13)) :named @p_30)) :named @p_22))
+(assume axiom1 (! (forall ((?v0 A_list$)) (! (= (! (fun_app$ (! (fun_app$a subset$ @p_21) :named @p_43) (! (set$ ?v0) :named @p_2)) :named @p_46) (! (and (! (less$ zero$ (! (fun_app$b card$ top$) :named @p_1)) :named @p_44) (! (= @p_1 (! (fun_app$b card$ (! (set$ (! (append$ xs$ ?v0) :named @p_49)) :named @p_51)) :named @p_53)) :named @p_55)) :named @p_57)) :named @p_59)) :named @p_42))
+(assume axiom2 (! (forall ((?v0 A$) (?v1 A_set$)) (! (=> (! (member$ ?v0 (! (uminus$ ?v1) :named @p_75)) :named @p_77) (! (not (! (member$ ?v0 ?v1) :named @p_81)) :named @p_83)) :named @p_85)) :named @p_74))
+(assume axiom3 (! (forall ((?v0 A_list$)) (! (= (! (fun_app$b card$ @p_2) :named @p_100) (! (size$ (! (remdups$ ?v0) :named @p_14)) :named @p_104)) :named @p_106)) :named @p_98))
+(assume axiom4 (! (forall ((?v0 A_list$)) (! (finite$ @p_2) :named @p_120)) :named @p_118))
+(assume axiom5 (! (forall ((?v0 A$)) (! (member$ ?v0 top$) :named @p_129)) :named @p_128))
+(assume axiom6 (not (! (= top$ bot$) :named @p_717)))
+(assume axiom9 (! (forall ((?v0 Nat$) (?v1 Nat$)) (! (= (! (= ?v0 (! (plus$ ?v0 ?v1) :named @p_138)) :named @p_140) (! (= zero$ ?v1) :named @p_143)) :named @p_145)) :named @p_136))
+(assume axiom10 (! (= (! (fun_app$b card$a @p_715) :named @p_1077) (! (size$ @p_9) :named @p_8)) :named @p_1076))
+(assume axiom11 (! (= card$ card$a) :named @p_1079))
+(assume axiom12 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (=> (! (and (! (finite$ ?v0) :named @p_4) (! (finite$ ?v1) :named @p_159)) :named @p_161) (! (= (! (plus$ (! (fun_app$b card$ ?v0) :named @p_3) (! (fun_app$b card$ ?v1) :named @p_166)) :named @p_168) (! (plus$ (! (fun_app$b card$ (! (sup$ ?v0 ?v1) :named @p_170)) :named @p_172) (! (fun_app$b card$ (! (inf$ ?v0 ?v1) :named @p_6)) :named @p_175)) :named @p_177)) :named @p_179)) :named @p_181)) :named @p_157))
+(assume axiom13 (! (forall ((?v0 A_set$)) (! (= (! (= zero$ @p_3) :named @p_204) (! (or (! (= ?v0 bot$) :named @p_207) (! (not @p_4) :named @p_210)) :named @p_212)) :named @p_214)) :named @p_202))
+(assume axiom14 (! (forall ((?v0 A_set$)) (! (=> (! (and (! (finite$ top$) :named @p_7) (! (= @p_1 @p_3) :named @p_230)) :named @p_232) (! (= ?v0 top$) :named @p_235)) :named @p_237)) :named @p_228))
+(assume axiom15 (! (forall ((?v0 A_list$)) (! (= @p_2 (! (uminus$ (! (coset$ ?v0) :named @p_5)) :named @p_253)) :named @p_255)) :named @p_249))
+(assume axiom16 (! (forall ((?v0 A_list$)) (! (= @p_5 (! (uminus$ @p_2) :named @p_270)) :named @p_272)) :named @p_266))
+(assume axiom17 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (= (! (= bot$ @p_6) :named @p_285) (! (forall ((?v2 A$)) (! (=> (! (member$ ?v2 ?v0) :named @p_15) (! (not (! (member$ ?v2 ?v1) :named @p_16)) :named @p_294)) :named @p_296)) :named @p_287)) :named @p_298)) :named @p_283))
+(assume axiom18 (! (= uu$ eq_set$) :named @p_1100))
+(assume axiom19 (! (forall ((?v0 A_set$)) (! (=> @p_4 (! (= (! (finite$ (! (uminus$ ?v0) :named @p_361)) :named @p_363) @p_7) :named @p_365)) :named @p_367)) :named @p_358))
+(assume axiom20 (! (= rhs$ (! (ite (! (= zero$ @p_1) :named @p_403) false (! (and (! (= @p_1 (! (plus$ @p_8 (! (size$ @p_10) :named @p_719)) :named @p_1056)) :named @p_400) (! (and (! (forall ((?v0 A$)) (! (=> (! (member$ ?v0 @p_380) :named @p_12) (! (not (! (member$ ?v0 @p_381) :named @p_11)) :named @p_385)) :named @p_387)) :named @p_379) (! (forall ((?v0 A$)) (! (=> @p_11 (! (not @p_12) :named @p_392)) :named @p_394)) :named @p_389)) :named @p_396)) :named @p_399)) :named @p_402)) :named @p_405))
+(assume axiom21 (! (forall ((?v0 A_list$) (?v1 A_list$)) (! (= (! (set$ (! (append$ ?v0 ?v1) :named @p_498)) :named @p_500) (! (sup$ @p_2 (! (set$ ?v1) :named @p_20)) :named @p_506)) :named @p_508)) :named @p_497))
+(assume axiom22 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (= @p_13 (! (and (! (fun_app$ (! (fun_app$a less_eq$ ?v0) :named @p_19) ?v1) :named @p_17) (! (fun_app$ (! (fun_app$a less_eq$ ?v1) :named @p_528) ?v0) :named @p_530)) :named @p_18)) :named @p_533)) :named @p_522))
+(assume axiom23 (! (forall ((?v0 A_list$)) (! (= @p_2 (! (set$ @p_14) :named @p_552)) :named @p_554)) :named @p_548))
+(assume axiom24 (! (= subset$ less_eq$) :named @p_1090))
+(assume axiom25 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (=> (! (forall ((?v2 A$)) (! (=> @p_15 @p_16) :named @p_571)) :named @p_566) @p_17) :named @p_577)) :named @p_565))
+(assume axiom26 (! (forall ((?v0 A_set$) (?v1 A_set$)) (! (=> @p_18 @p_13) :named @p_602)) :named @p_593))
+(assume axiom27 (! (forall ((?v0 A_set$) (?v1 A_list$)) (! (= (! (fun_app$ @p_19 (! (coset$ ?v1) :named @p_619)) :named @p_621) (! (forall ((?v2 A$)) (! (=> (! (member$ ?v2 @p_20) :named @p_627) (! (not @p_15) :named @p_632)) :named @p_634)) :named @p_623)) :named @p_636)) :named @p_617))
+(assume axiom28 (not (= (! (fun_app$ (! (fun_app$a eq_set$ @p_21) :named @p_1097) (! (set$ ys$) :named @p_713)) :named @p_711) rhs$)))
(anchor :step t28 :args ((:= (?v0 A_set$) veriT_vr0) (:= (?v1 A_set$) veriT_vr1)))
(step t28.t1 (cl (! (= ?v0 veriT_vr0) :named @p_27)) :rule refl)
(step t28.t2 (cl (= @p_23 (! (fun_app$a uu$ veriT_vr0) :named @p_24))) :rule cong :premises (t28.t1))
@@ -3505,7 +3505,7 @@
(step t28.t8 (cl (= @p_30 (! (= @p_26 @p_29) :named @p_31))) :rule cong :premises (t28.t4 t28.t7))
(step t28 (cl (! (= @p_22 (! (forall ((veriT_vr0 A_set$) (veriT_vr1 A_set$)) @p_31) :named @p_33)) :named @p_32)) :rule bind)
(step t29 (cl (not @p_32) (not @p_22) @p_33) :rule equiv_pos2)
-(step t30 (cl @p_33) :rule th_resolution :premises (a0 t28 t29))
+(step t30 (cl @p_33) :rule th_resolution :premises (axiom0 t28 t29))
(anchor :step t31 :args ((:= (veriT_vr0 A_set$) veriT_vr2) (:= (veriT_vr1 A_set$) veriT_vr3)))
(step t31.t1 (cl (! (= veriT_vr0 veriT_vr2) :named @p_36)) :rule refl)
(step t31.t2 (cl (= @p_24 (! (fun_app$a uu$ veriT_vr2) :named @p_34))) :rule cong :premises (t31.t1))
@@ -3531,7 +3531,7 @@
(step t34.t10 (cl (= @p_59 (! (= @p_47 @p_58) :named @p_60))) :rule cong :premises (t34.t3 t34.t9))
(step t34 (cl (! (= @p_42 (! (forall ((veriT_vr4 A_list$)) @p_60) :named @p_62)) :named @p_61)) :rule bind)
(step t35 (cl (not @p_61) (not @p_42) @p_62) :rule equiv_pos2)
-(step t36 (cl @p_62) :rule th_resolution :premises (a1 t34 t35))
+(step t36 (cl @p_62) :rule th_resolution :premises (axiom1 t34 t35))
(anchor :step t37 :args ((:= (veriT_vr4 A_list$) veriT_vr5)))
(step t37.t1 (cl (! (= veriT_vr4 veriT_vr5) :named @p_65)) :rule refl)
(step t37.t2 (cl (= @p_45 (! (set$ veriT_vr5) :named @p_63))) :rule cong :premises (t37.t1))
@@ -3558,7 +3558,7 @@
(step t40.t9 (cl (= @p_85 (! (=> @p_78 @p_84) :named @p_86))) :rule cong :premises (t40.t4 t40.t8))
(step t40 (cl (! (= @p_74 (! (forall ((veriT_vr6 A$) (veriT_vr7 A_set$)) @p_86) :named @p_88)) :named @p_87)) :rule bind)
(step t41 (cl (not @p_87) (not @p_74) @p_88) :rule equiv_pos2)
-(step t42 (cl @p_88) :rule th_resolution :premises (a2 t40 t41))
+(step t42 (cl @p_88) :rule th_resolution :premises (axiom2 t40 t41))
(anchor :step t43 :args ((:= (veriT_vr6 A$) veriT_vr8) (:= (veriT_vr7 A_set$) veriT_vr9)))
(step t43.t1 (cl (! (= veriT_vr6 veriT_vr8) :named @p_91)) :rule refl)
(step t43.t2 (cl (! (= veriT_vr7 veriT_vr9) :named @p_92)) :rule refl)
@@ -3582,7 +3582,7 @@
(step t46.t7 (cl (= @p_106 (! (= @p_101 @p_105) :named @p_107))) :rule cong :premises (t46.t3 t46.t6))
(step t46 (cl (! (= @p_98 (! (forall ((veriT_vr10 A_list$)) @p_107) :named @p_109)) :named @p_108)) :rule bind)
(step t47 (cl (not @p_108) (not @p_98) @p_109) :rule equiv_pos2)
-(step t48 (cl @p_109) :rule th_resolution :premises (a3 t46 t47))
+(step t48 (cl @p_109) :rule th_resolution :premises (axiom3 t46 t47))
(anchor :step t49 :args ((:= (veriT_vr10 A_list$) veriT_vr11)))
(step t49.t1 (cl (! (= veriT_vr10 veriT_vr11) :named @p_112)) :rule refl)
(step t49.t2 (cl (= @p_99 (! (set$ veriT_vr11) :named @p_110))) :rule cong :premises (t49.t1))
@@ -3600,7 +3600,7 @@
(step t52.t3 (cl (= @p_120 (! (finite$ @p_119) :named @p_121))) :rule cong :premises (t52.t2))
(step t52 (cl (! (= @p_118 (! (forall ((veriT_vr12 A_list$)) @p_121) :named @p_123)) :named @p_122)) :rule bind)
(step t53 (cl (not @p_122) (not @p_118) @p_123) :rule equiv_pos2)
-(step t54 (cl @p_123) :rule th_resolution :premises (a4 t52 t53))
+(step t54 (cl @p_123) :rule th_resolution :premises (axiom4 t52 t53))
(anchor :step t55 :args ((:= (veriT_vr12 A_list$) veriT_vr13)))
(step t55.t1 (cl (= veriT_vr12 veriT_vr13)) :rule refl)
(step t55.t2 (cl (= @p_119 (! (set$ veriT_vr13) :named @p_124))) :rule cong :premises (t55.t1))
@@ -3613,7 +3613,7 @@
(step t58.t2 (cl (= @p_129 (! (member$ veriT_vr14 top$) :named @p_130))) :rule cong :premises (t58.t1))
(step t58 (cl (! (= @p_128 (! (forall ((veriT_vr14 A$)) @p_130) :named @p_132)) :named @p_131)) :rule bind)
(step t59 (cl (not @p_131) (not @p_128) @p_132) :rule equiv_pos2)
-(step t60 (cl @p_132) :rule th_resolution :premises (a5 t58 t59))
+(step t60 (cl @p_132) :rule th_resolution :premises (axiom5 t58 t59))
(anchor :step t61 :args ((:= (veriT_vr14 A$) veriT_vr15)))
(step t61.t1 (cl (= veriT_vr14 veriT_vr15)) :rule refl)
(step t61.t2 (cl (= @p_130 (! (member$ veriT_vr15 top$) :named @p_133))) :rule cong :premises (t61.t1))
@@ -3631,7 +3631,7 @@
(step t64.t8 (cl (= @p_145 (! (= @p_141 @p_144) :named @p_146))) :rule cong :premises (t64.t5 t64.t7))
(step t64 (cl (! (= @p_136 (! (forall ((veriT_vr26 Nat$) (veriT_vr27 Nat$)) @p_146) :named @p_148)) :named @p_147)) :rule bind)
(step t65 (cl (not @p_147) (not @p_136) @p_148) :rule equiv_pos2)
-(step t66 (cl @p_148) :rule th_resolution :premises (a9 t64 t65))
+(step t66 (cl @p_148) :rule th_resolution :premises (axiom9 t64 t65))
(anchor :step t67 :args ((:= (veriT_vr26 Nat$) veriT_vr28) (:= (veriT_vr27 Nat$) veriT_vr29)))
(step t67.t1 (cl (! (= veriT_vr26 veriT_vr28) :named @p_149)) :rule refl)
(step t67.t2 (cl @p_149) :rule refl)
@@ -3668,7 +3668,7 @@
(step t70.t21 (cl (= @p_181 (! (=> @p_162 @p_180) :named @p_182))) :rule cong :premises (t70.t5 t70.t20))
(step t70 (cl (! (= @p_157 (! (forall ((veriT_vr30 A_set$) (veriT_vr31 A_set$)) @p_182) :named @p_184)) :named @p_183)) :rule bind)
(step t71 (cl (not @p_183) (not @p_157) @p_184) :rule equiv_pos2)
-(step t72 (cl @p_184) :rule th_resolution :premises (a12 t70 t71))
+(step t72 (cl @p_184) :rule th_resolution :premises (axiom12 t70 t71))
(anchor :step t73 :args ((:= (veriT_vr30 A_set$) veriT_vr32) (:= (veriT_vr31 A_set$) veriT_vr33)))
(step t73.t1 (cl (! (= veriT_vr30 veriT_vr32) :named @p_188)) :rule refl)
(step t73.t2 (cl (= @p_158 (! (finite$ veriT_vr32) :named @p_185))) :rule cong :premises (t73.t1))
@@ -3707,7 +3707,7 @@
(step t76.t10 (cl (= @p_214 (! (= @p_205 @p_213) :named @p_215))) :rule cong :premises (t76.t3 t76.t9))
(step t76 (cl (! (= @p_202 (! (forall ((veriT_vr34 A_set$)) @p_215) :named @p_217)) :named @p_216)) :rule bind)
(step t77 (cl (not @p_216) (not @p_202) @p_217) :rule equiv_pos2)
-(step t78 (cl @p_217) :rule th_resolution :premises (a13 t76 t77))
+(step t78 (cl @p_217) :rule th_resolution :premises (axiom13 t76 t77))
(anchor :step t79 :args ((:= (veriT_vr34 A_set$) veriT_vr35)))
(step t79.t1 (cl (! (= veriT_vr34 veriT_vr35) :named @p_220)) :rule refl)
(step t79.t2 (cl (= @p_203 (! (fun_app$b card$ veriT_vr35) :named @p_218))) :rule cong :premises (t79.t1))
@@ -3732,7 +3732,7 @@
(step t82.t7 (cl (= @p_237 (! (=> @p_233 @p_236) :named @p_238))) :rule cong :premises (t82.t4 t82.t6))
(step t82 (cl (! (= @p_228 (! (forall ((veriT_vr36 A_set$)) @p_238) :named @p_240)) :named @p_239)) :rule bind)
(step t83 (cl (not @p_239) (not @p_228) @p_240) :rule equiv_pos2)
-(step t84 (cl @p_240) :rule th_resolution :premises (a14 t82 t83))
+(step t84 (cl @p_240) :rule th_resolution :premises (axiom14 t82 t83))
(anchor :step t85 :args ((:= (veriT_vr36 A_set$) veriT_vr37)))
(step t85.t1 (cl (! (= veriT_vr36 veriT_vr37) :named @p_244)) :rule refl)
(step t85.t2 (cl (= @p_229 (! (fun_app$b card$ veriT_vr37) :named @p_241))) :rule cong :premises (t85.t1))
@@ -3753,7 +3753,7 @@
(step t88.t6 (cl (= @p_255 (! (= @p_250 @p_254) :named @p_256))) :rule cong :premises (t88.t2 t88.t5))
(step t88 (cl (! (= @p_249 (! (forall ((veriT_vr38 A_list$)) @p_256) :named @p_258)) :named @p_257)) :rule bind)
(step t89 (cl (not @p_257) (not @p_249) @p_258) :rule equiv_pos2)
-(step t90 (cl @p_258) :rule th_resolution :premises (a15 t88 t89))
+(step t90 (cl @p_258) :rule th_resolution :premises (axiom15 t88 t89))
(anchor :step t91 :args ((:= (veriT_vr38 A_list$) veriT_vr39)))
(step t91.t1 (cl (! (= veriT_vr38 veriT_vr39) :named @p_260)) :rule refl)
(step t91.t2 (cl (= @p_250 (! (set$ veriT_vr39) :named @p_259))) :rule cong :premises (t91.t1))
@@ -3773,7 +3773,7 @@
(step t94.t6 (cl (= @p_272 (! (= @p_267 @p_271) :named @p_273))) :rule cong :premises (t94.t2 t94.t5))
(step t94 (cl (! (= @p_266 (! (forall ((veriT_vr40 A_list$)) @p_273) :named @p_275)) :named @p_274)) :rule bind)
(step t95 (cl (not @p_274) (not @p_266) @p_275) :rule equiv_pos2)
-(step t96 (cl @p_275) :rule th_resolution :premises (a16 t94 t95))
+(step t96 (cl @p_275) :rule th_resolution :premises (axiom16 t94 t95))
(anchor :step t97 :args ((:= (veriT_vr40 A_list$) veriT_vr41)))
(step t97.t1 (cl (! (= veriT_vr40 veriT_vr41) :named @p_277)) :rule refl)
(step t97.t2 (cl (= @p_267 (! (coset$ veriT_vr41) :named @p_276))) :rule cong :premises (t97.t1))
@@ -3802,7 +3802,7 @@
(step t100.t6 (cl (= @p_298 (! (= @p_286 @p_288) :named @p_299))) :rule cong :premises (t100.t4 t100.t5))
(step t100 (cl (! (= @p_283 (! (forall ((veriT_vr42 A_set$) (veriT_vr43 A_set$)) @p_299) :named @p_301)) :named @p_300)) :rule bind)
(step t101 (cl (not @p_300) (not @p_283) @p_301) :rule equiv_pos2)
-(step t102 (cl @p_301) :rule th_resolution :premises (a17 t100 t101))
+(step t102 (cl @p_301) :rule th_resolution :premises (axiom17 t100 t101))
(anchor :step t103 :args ((veriT_vr42 A_set$) (veriT_vr43 A_set$)))
(step t103.t1 (cl (= @p_299 (! (and (! (=> @p_286 @p_288) :named @p_315) (! (=> @p_288 @p_286) :named @p_325)) :named @p_302))) :rule connective_def)
(step t103 (cl (! (= @p_301 (! (forall ((veriT_vr42 A_set$) (veriT_vr43 A_set$)) @p_302) :named @p_304)) :named @p_303)) :rule bind)
@@ -3902,7 +3902,7 @@
(step t115.t7 (cl (= @p_367 (! (=> @p_359 @p_366) :named @p_368))) :rule cong :premises (t115.t2 t115.t6))
(step t115 (cl (! (= @p_358 (! (forall ((veriT_vr53 A_set$)) @p_368) :named @p_370)) :named @p_369)) :rule bind)
(step t116 (cl (not @p_369) (not @p_358) @p_370) :rule equiv_pos2)
-(step t117 (cl @p_370) :rule th_resolution :premises (a19 t115 t116))
+(step t117 (cl @p_370) :rule th_resolution :premises (axiom19 t115 t116))
(anchor :step t118 :args ((:= (veriT_vr53 A_set$) veriT_vr54)))
(step t118.t1 (cl (! (= veriT_vr53 veriT_vr54) :named @p_372)) :rule refl)
(step t118.t2 (cl (= @p_359 (! (finite$ veriT_vr54) :named @p_371))) :rule cong :premises (t118.t1))
@@ -3935,7 +3935,7 @@
(step t125 (cl (= @p_402 (! (ite @p_403 false @p_404) :named @p_406))) :rule cong :premises (t124))
(step t126 (cl (! (= @p_405 (! (= rhs$ @p_406) :named @p_408)) :named @p_407)) :rule cong :premises (t125))
(step t127 (cl (not @p_407) (not @p_405) @p_408) :rule equiv_pos2)
-(step t128 (cl @p_408) :rule th_resolution :premises (a20 t126 t127))
+(step t128 (cl @p_408) :rule th_resolution :premises (axiom20 t126 t127))
(step t129 (cl (= @p_404 (! (and @p_400 @p_397 @p_398) :named @p_409))) :rule ac_simp)
(step t130 (cl (= @p_406 (! (ite @p_403 false @p_409) :named @p_410))) :rule cong :premises (t129))
(step t131 (cl (! (= @p_408 (! (= rhs$ @p_410) :named @p_412)) :named @p_411)) :rule cong :premises (t130))
@@ -4061,7 +4061,7 @@
(step t185.t10 (cl (= @p_508 (! (= @p_501 @p_507) :named @p_509))) :rule cong :premises (t185.t4 t185.t9))
(step t185 (cl (! (= @p_497 (! (forall ((veriT_vr61 A_list$) (veriT_vr62 A_list$)) @p_509) :named @p_511)) :named @p_510)) :rule bind)
(step t186 (cl (not @p_510) (not @p_497) @p_511) :rule equiv_pos2)
-(step t187 (cl @p_511) :rule th_resolution :premises (a21 t185 t186))
+(step t187 (cl @p_511) :rule th_resolution :premises (axiom21 t185 t186))
(anchor :step t188 :args ((:= (veriT_vr61 A_list$) veriT_vr63) (:= (veriT_vr62 A_list$) veriT_vr64)))
(step t188.t1 (cl (! (= veriT_vr61 veriT_vr63) :named @p_514)) :rule refl)
(step t188.t2 (cl (! (= veriT_vr62 veriT_vr64) :named @p_516)) :rule refl)
@@ -4092,7 +4092,7 @@
(step t191.t13 (cl (= @p_533 (! (= @p_523 @p_532) :named @p_534))) :rule cong :premises (t191.t3 t191.t12))
(step t191 (cl (! (= @p_522 (! (forall ((veriT_vr65 A_set$) (veriT_vr66 A_set$)) @p_534) :named @p_536)) :named @p_535)) :rule bind)
(step t192 (cl (not @p_535) (not @p_522) @p_536) :rule equiv_pos2)
-(step t193 (cl @p_536) :rule th_resolution :premises (a22 t191 t192))
+(step t193 (cl @p_536) :rule th_resolution :premises (axiom22 t191 t192))
(anchor :step t194 :args ((:= (veriT_vr65 A_set$) veriT_vr67) (:= (veriT_vr66 A_set$) veriT_vr68)))
(step t194.t1 (cl (! (= veriT_vr65 veriT_vr67) :named @p_538)) :rule refl)
(step t194.t2 (cl (! (= veriT_vr66 veriT_vr68) :named @p_540)) :rule refl)
@@ -4119,7 +4119,7 @@
(step t197.t6 (cl (= @p_554 (! (= @p_549 @p_553) :named @p_555))) :rule cong :premises (t197.t2 t197.t5))
(step t197 (cl (! (= @p_548 (! (forall ((veriT_vr69 A_list$)) @p_555) :named @p_557)) :named @p_556)) :rule bind)
(step t198 (cl (not @p_556) (not @p_548) @p_557) :rule equiv_pos2)
-(step t199 (cl @p_557) :rule th_resolution :premises (a23 t197 t198))
+(step t199 (cl @p_557) :rule th_resolution :premises (axiom23 t197 t198))
(anchor :step t200 :args ((:= (veriT_vr69 A_list$) veriT_vr70)))
(step t200.t1 (cl (! (= veriT_vr69 veriT_vr70) :named @p_559)) :rule refl)
(step t200.t2 (cl (= @p_549 (! (set$ veriT_vr70) :named @p_558))) :rule cong :premises (t200.t1))
@@ -4147,7 +4147,7 @@
(step t203.t6 (cl (= @p_577 (! (=> @p_567 @p_576) :named @p_578))) :rule cong :premises (t203.t1 t203.t5))
(step t203 (cl (! (= @p_565 (! (forall ((veriT_vr71 A_set$) (veriT_vr72 A_set$)) @p_578) :named @p_580)) :named @p_579)) :rule bind)
(step t204 (cl (not @p_579) (not @p_565) @p_580) :rule equiv_pos2)
-(step t205 (cl @p_580) :rule th_resolution :premises (a25 t203 t204))
+(step t205 (cl @p_580) :rule th_resolution :premises (axiom25 t203 t204))
(anchor :step t206 :args ((:= (veriT_vr71 A_set$) veriT_vr74) (:= (veriT_vr72 A_set$) veriT_vr75)))
(anchor :step t206.t1 :args ((:= (veriT_vr73 A$) veriT_vr76)))
(step t206.t1.t1 (cl (! (= veriT_vr73 veriT_vr76) :named @p_583)) :rule refl)
@@ -4182,7 +4182,7 @@
(step t209.t13 (cl (= @p_602 (! (=> @p_600 @p_601) :named @p_603))) :rule cong :premises (t209.t9 t209.t12))
(step t209 (cl (! (= @p_593 (! (forall ((veriT_vr77 A_set$) (veriT_vr78 A_set$)) @p_603) :named @p_605)) :named @p_604)) :rule bind)
(step t210 (cl (not @p_604) (not @p_593) @p_605) :rule equiv_pos2)
-(step t211 (cl @p_605) :rule th_resolution :premises (a26 t209 t210))
+(step t211 (cl @p_605) :rule th_resolution :premises (axiom26 t209 t210))
(anchor :step t212 :args ((:= (veriT_vr77 A_set$) veriT_vr79) (:= (veriT_vr78 A_set$) veriT_vr80)))
(step t212.t1 (cl (! (= veriT_vr77 veriT_vr79) :named @p_610)) :rule refl)
(step t212.t2 (cl (= @p_594 (! (fun_app$a less_eq$ veriT_vr79) :named @p_606))) :rule cong :premises (t212.t1))
@@ -4220,7 +4220,7 @@
(step t215.t7 (cl (= @p_636 (! (= @p_622 @p_624) :named @p_637))) :rule cong :premises (t215.t5 t215.t6))
(step t215 (cl (! (= @p_617 (! (forall ((veriT_vr81 A_set$) (veriT_vr82 A_list$)) @p_637) :named @p_639)) :named @p_638)) :rule bind)
(step t216 (cl (not @p_638) (not @p_617) @p_639) :rule equiv_pos2)
-(step t217 (cl @p_639) :rule th_resolution :premises (a27 t215 t216))
+(step t217 (cl @p_639) :rule th_resolution :premises (axiom27 t215 t216))
(anchor :step t218 :args ((veriT_vr81 A_set$) (veriT_vr82 A_list$)))
(step t218.t1 (cl (= @p_637 (! (and (! (=> @p_622 @p_624) :named @p_655) (! (=> @p_624 @p_622) :named @p_667)) :named @p_640))) :rule connective_def)
(step t218 (cl (! (= @p_639 (! (forall ((veriT_vr81 A_set$) (veriT_vr82 A_list$)) @p_640) :named @p_642)) :named @p_641)) :rule bind)
@@ -4336,8 +4336,8 @@
(step t245 (cl (not @p_707) @p_403) :rule not_not)
(step t246 (cl @p_482 @p_403 @p_708 @p_709 @p_710) :rule th_resolution :premises (t245 t244))
(step t247 (cl (not @p_482) rhs$) :rule implies :premises (t235))
-(step t248 (cl @p_711 rhs$) :rule not_equiv1 :premises (a28))
-(step t249 (cl (! (not @p_711) :named @p_1099) @p_712) :rule not_equiv2 :premises (a28))
+(step t248 (cl @p_711 rhs$) :rule not_equiv1 :premises (axiom28))
+(step t249 (cl (! (not @p_711) :named @p_1099) @p_712) :rule not_equiv2 :premises (axiom28))
(step t250 (cl (or (! (not @p_474) :named @p_1028) (! (forall ((veriT_vr59 A$)) (or @p_472 @p_469)) :named @p_1029))) :rule qnt_cnf)
(step t251 (cl (or (! (not @p_564) :named @p_714) (! (= @p_381 @p_713) :named @p_722))) :rule forall_inst :args ((:= veriT_vr70 ys$)))
(step t252 (cl (or @p_714 (! (= @p_715 @p_380) :named @p_723))) :rule forall_inst :args ((:= veriT_vr70 xs$)))
@@ -4372,7 +4372,7 @@
(step t281 (cl (! (not @p_732) :named @p_734) @p_403 @p_733) :rule equiv_pos1)
(step t282 (cl @p_734 @p_422 @p_729) :rule equiv_pos2)
(step t283 (cl @p_735 @p_732) :rule or :premises (t257))
-(step t284 (cl @p_733 @p_730) :rule resolution :premises (t277 a6))
+(step t284 (cl @p_733 @p_730) :rule resolution :premises (t277 axiom6))
(step t285 (cl @p_732) :rule resolution :premises (t283 t81))
(step t286 (cl @p_718 @p_736) :rule or :premises (t258))
(step t287 (cl @p_736) :rule resolution :premises (t286 t57))
@@ -4392,7 +4392,7 @@
(step t301 (cl @p_750 (! (not @p_748) :named @p_1107) @p_749) :rule equiv_pos2)
(step t302 (cl @p_751 @p_747) :rule or :premises (t264))
(step t303 (cl @p_747) :rule resolution :premises (t302 t33))
-(step t304 (cl (or (! (not @p_616) :named @p_765) (! (=> (! (and (! (fun_app$ (! (fun_app$a less_eq$ @p_381) :named @p_799) @p_21) :named @p_762) (! (fun_app$ (! (fun_app$a less_eq$ @p_21) :named @p_907) @p_381) :named @p_763)) :named @p_755) (! (= @p_21 @p_381) :named @p_754)) :named @p_764))) :rule forall_inst :args ((:= veriT_vr79 @p_381) (:= veriT_vr80 @p_21)))
+(step t304 (cl (or (! (not @p_616) :named @p_765) (! (=> (! (and (! (fun_app$ (! (fun_app$a less_eq$ @p_381) :named @p_854) @p_21) :named @p_762) (! (fun_app$ (! (fun_app$a less_eq$ @p_21) :named @p_907) @p_381) :named @p_763)) :named @p_755) (! (= @p_21 @p_381) :named @p_754)) :named @p_764))) :rule forall_inst :args ((:= veriT_vr79 @p_381) (:= veriT_vr80 @p_21)))
(step t305 (cl (not (! (not (! (not @p_592) :named @p_906)) :named @p_936)) @p_592) :rule not_not)
(step t306 (cl (or @p_714 (! (= @p_752 (! (set$ (! (remdups$ @p_753) :named @p_938)) :named @p_939)) :named @p_766))) :rule forall_inst :args ((:= veriT_vr70 @p_753)))
(step t307 (cl (or (! (not @p_547) :named @p_769) (! (= @p_754 @p_755) :named @p_768))) :rule forall_inst :args ((:= veriT_vr67 @p_381) (:= veriT_vr68 @p_21)))
@@ -4402,7 +4402,7 @@
(step t311 (cl (or (! (not @p_248) :named @p_781) (! (=> (! (and @p_7 (! (= @p_1 (! (fun_app$b card$ @p_758) :named @p_1112)) :named @p_778)) :named @p_777) (! (= top$ @p_758) :named @p_780)) :named @p_779))) :rule forall_inst :args ((:= veriT_vr37 @p_758)))
(step t312 (cl (or (! (not @p_201) :named @p_786) (! (=> (! (and @p_738 @p_737) :named @p_782) (! (= (! (plus$ (! (fun_app$b card$ @p_715) :named @p_1073) (! (fun_app$b card$ @p_381) :named @p_1074)) :named @p_1057) (! (plus$ (! (fun_app$b card$ @p_759) :named @p_999) (! (fun_app$b card$ (! (inf$ @p_715 @p_381) :named @p_940)) :named @p_998)) :named @p_1000)) :named @p_785)) :named @p_784))) :rule forall_inst :args ((:= veriT_vr32 @p_715) (:= veriT_vr33 @p_381)))
(step t313 (cl (or (! (not @p_73) :named @p_791) (! (= (! (fun_app$ @p_43 @p_760) :named @p_790) (! (and @p_44 (= @p_1 (fun_app$b card$ (set$ (append$ xs$ @p_761))))) :named @p_788)) :named @p_789))) :rule forall_inst :args ((:= veriT_vr5 @p_761)))
-(step t314 (cl @p_755 (! (not @p_762) :named @p_1005) (! (not @p_763) :named @p_1120)) :rule and_neg)
+(step t314 (cl @p_755 (! (not @p_762) :named @p_1003) (! (not @p_763) :named @p_1120)) :rule and_neg)
(step t315 (cl (not @p_764) (! (not @p_755) :named @p_767) @p_754) :rule implies_pos)
(step t316 (cl @p_765 @p_764) :rule or :premises (t304))
(step t317 (cl @p_764) :rule resolution :premises (t316 t214))
@@ -4440,95 +4440,95 @@
(step t349 (cl (! (not @p_726) :named @p_794) (! (not (! (= @p_721 @p_757) :named @p_793)) :named @p_1044) (! (not @p_725) :named @p_795) (! (= @p_21 @p_792) :named @p_796)) :rule eq_transitive)
(step t350 (cl (! (not @p_723) :named @p_797) @p_793) :rule eq_congruent)
(step t351 (cl @p_794 @p_795 @p_796 @p_797) :rule th_resolution :premises (t349 t350))
-(step t352 (cl (not (! (not (! (not @p_703) :named @p_798)) :named @p_854)) @p_703) :rule not_not)
-(step t353 (cl (or @p_798 (! (and (! (=> (! (fun_app$ @p_799 @p_792) :named @p_800) (! (forall ((veriT_vr90 A$)) (! (=> (! (member$ veriT_vr90 @p_380) :named @p_804) (! (not (! (member$ veriT_vr90 @p_381) :named @p_807)) :named @p_809)) :named @p_811)) :named @p_803)) :named @p_813) (! (=> (! (forall ((veriT_vr91 A$)) (! (=> (! (member$ veriT_vr91 @p_380) :named @p_816) (! (not (! (member$ veriT_vr91 @p_381) :named @p_818)) :named @p_819)) :named @p_820)) :named @p_815) @p_800) :named @p_821)) :named @p_801))) :rule forall_inst :args ((:= veriT_vr88 @p_381) (:= veriT_vr89 @p_9)))
-(anchor :step t354)
-(assume t354.h1 @p_801)
-(anchor :step t354.t2 :args ((:= (veriT_vr90 A$) veriT_vr99)))
-(step t354.t2.t1 (cl (! (= veriT_vr90 veriT_vr99) :named @p_806)) :rule refl)
-(step t354.t2.t2 (cl (= @p_804 (! (member$ veriT_vr99 @p_380) :named @p_805))) :rule cong :premises (t354.t2.t1))
-(step t354.t2.t3 (cl @p_806) :rule refl)
-(step t354.t2.t4 (cl (= @p_807 (! (member$ veriT_vr99 @p_381) :named @p_808))) :rule cong :premises (t354.t2.t3))
-(step t354.t2.t5 (cl (= @p_809 (! (not @p_808) :named @p_810))) :rule cong :premises (t354.t2.t4))
-(step t354.t2.t6 (cl (= @p_811 (! (=> @p_805 @p_810) :named @p_812))) :rule cong :premises (t354.t2.t2 t354.t2.t5))
-(step t354.t2 (cl (= @p_803 (! (forall ((veriT_vr99 A$)) @p_812) :named @p_814))) :rule bind)
-(step t354.t3 (cl (= @p_813 (! (=> @p_800 @p_814) :named @p_822))) :rule cong :premises (t354.t2))
-(anchor :step t354.t4 :args ((:= (veriT_vr91 A$) veriT_vr99)))
-(step t354.t4.t1 (cl (! (= veriT_vr91 veriT_vr99) :named @p_817)) :rule refl)
-(step t354.t4.t2 (cl (= @p_816 @p_805)) :rule cong :premises (t354.t4.t1))
-(step t354.t4.t3 (cl @p_817) :rule refl)
-(step t354.t4.t4 (cl (= @p_818 @p_808)) :rule cong :premises (t354.t4.t3))
-(step t354.t4.t5 (cl (= @p_819 @p_810)) :rule cong :premises (t354.t4.t4))
-(step t354.t4.t6 (cl (= @p_820 @p_812)) :rule cong :premises (t354.t4.t2 t354.t4.t5))
-(step t354.t4 (cl (= @p_815 @p_814)) :rule bind)
-(step t354.t5 (cl (= @p_821 (! (=> @p_814 @p_800) :named @p_823))) :rule cong :premises (t354.t4))
-(step t354.t6 (cl (! (= @p_801 (! (and @p_822 @p_823) :named @p_826)) :named @p_824)) :rule cong :premises (t354.t3 t354.t5))
-(step t354.t7 (cl (not @p_824) (! (not @p_801) :named @p_825) @p_826) :rule equiv_pos2)
-(step t354.t8 (cl @p_826) :rule th_resolution :premises (t354.h1 t354.t6 t354.t7))
-(anchor :step t354.t9 :args ((:= (veriT_vr99 A$) veriT_vr100)))
-(step t354.t9.t1 (cl (! (= veriT_vr99 veriT_vr100) :named @p_829)) :rule refl)
-(step t354.t9.t2 (cl (= @p_805 @p_828)) :rule cong :premises (t354.t9.t1))
-(step t354.t9.t3 (cl @p_829) :rule refl)
-(step t354.t9.t4 (cl (= @p_808 @p_830)) :rule cong :premises (t354.t9.t3))
-(step t354.t9.t5 (cl (= @p_810 @p_831)) :rule cong :premises (t354.t9.t4))
-(step t354.t9.t6 (cl (= @p_812 @p_827)) :rule cong :premises (t354.t9.t2 t354.t9.t5))
-(step t354.t9 (cl (= @p_814 (! (forall ((veriT_vr100 A$)) @p_827) :named @p_832))) :rule bind)
-(step t354.t10 (cl (= @p_822 (! (=> @p_800 @p_832) :named @p_833))) :rule cong :premises (t354.t9))
-(step t354.t11 (cl (= @p_823 (! (=> @p_832 @p_800) :named @p_834))) :rule cong :premises (t354.t9))
-(step t354.t12 (cl (! (= @p_826 (! (and @p_833 @p_834) :named @p_836)) :named @p_835)) :rule cong :premises (t354.t10 t354.t11))
-(step t354.t13 (cl (not @p_835) (not @p_826) @p_836) :rule equiv_pos2)
-(step t354.t14 (cl @p_836) :rule th_resolution :premises (t354.t8 t354.t12 t354.t13))
-(anchor :step t354.t15 :args ((:= (veriT_vr100 A$) veriT_sk5)))
-(step t354.t15.t1 (cl (! (= veriT_vr100 veriT_sk5) :named @p_839)) :rule refl)
-(step t354.t15.t2 (cl (= @p_828 (! (member$ veriT_sk5 @p_380) :named @p_838))) :rule cong :premises (t354.t15.t1))
-(step t354.t15.t3 (cl @p_839) :rule refl)
-(step t354.t15.t4 (cl (= @p_830 (! (member$ veriT_sk5 @p_381) :named @p_840))) :rule cong :premises (t354.t15.t3))
-(step t354.t15.t5 (cl (= @p_831 (! (not @p_840) :named @p_841))) :rule cong :premises (t354.t15.t4))
-(step t354.t15.t6 (cl (= @p_827 (! (=> @p_838 @p_841) :named @p_837))) :rule cong :premises (t354.t15.t2 t354.t15.t5))
-(step t354.t15 (cl (= @p_832 @p_837)) :rule sko_forall)
-(step t354.t16 (cl (= @p_834 (! (=> @p_837 @p_800) :named @p_842))) :rule cong :premises (t354.t15))
-(step t354.t17 (cl (! (= @p_836 (! (and @p_833 @p_842) :named @p_844)) :named @p_843)) :rule cong :premises (t354.t16))
-(step t354.t18 (cl (not @p_843) (not @p_836) @p_844) :rule equiv_pos2)
-(step t354.t19 (cl @p_844) :rule th_resolution :premises (t354.t14 t354.t17 t354.t18))
-(anchor :step t354.t20 :args ((:= (veriT_vr100 A$) veriT_vr101)))
-(step t354.t20.t1 (cl (! (= veriT_vr100 veriT_vr101) :named @p_847)) :rule refl)
-(step t354.t20.t2 (cl (= @p_828 (! (member$ veriT_vr101 @p_380) :named @p_846))) :rule cong :premises (t354.t20.t1))
-(step t354.t20.t3 (cl @p_847) :rule refl)
-(step t354.t20.t4 (cl (= @p_830 (! (member$ veriT_vr101 @p_381) :named @p_848))) :rule cong :premises (t354.t20.t3))
-(step t354.t20.t5 (cl (= @p_831 (! (not @p_848) :named @p_849))) :rule cong :premises (t354.t20.t4))
-(step t354.t20.t6 (cl (= @p_827 (! (=> @p_846 @p_849) :named @p_850))) :rule cong :premises (t354.t20.t2 t354.t20.t5))
-(step t354.t20 (cl (= @p_832 (! (forall ((veriT_vr101 A$)) @p_850) :named @p_845))) :rule bind)
-(step t354.t21 (cl (= @p_833 (! (=> @p_800 @p_845) :named @p_851))) :rule cong :premises (t354.t20))
-(step t354.t22 (cl (! (= @p_844 (! (and @p_851 @p_842) :named @p_852)) :named @p_853)) :rule cong :premises (t354.t21))
-(step t354.t23 (cl (not @p_853) (not @p_844) @p_852) :rule equiv_pos2)
-(step t354.t24 (cl @p_852) :rule th_resolution :premises (t354.t19 t354.t22 t354.t23))
-(step t354 (cl @p_825 @p_852) :rule subproof :discharge (h1))
-(step t355 (cl @p_798 @p_801) :rule or :premises (t353))
-(step t356 (cl (! (or @p_798 @p_852) :named @p_855) @p_854) :rule or_neg)
-(step t357 (cl @p_855 @p_703) :rule th_resolution :premises (t352 t356))
-(step t358 (cl @p_855 (! (not @p_852) :named @p_1004)) :rule or_neg)
-(step t359 (cl @p_855) :rule th_resolution :premises (t355 t354 t357 t358))
-(step t360 (cl (or @p_798 (! (and (! (=> @p_762 (! (forall ((veriT_vr90 A$)) (! (=> (! (member$ veriT_vr90 @p_715) :named @p_859) @p_809) :named @p_864)) :named @p_858)) :named @p_866) (! (=> (! (forall ((veriT_vr91 A$)) (! (=> (! (member$ veriT_vr91 @p_715) :named @p_869) @p_819) :named @p_871)) :named @p_868) @p_762) :named @p_872)) :named @p_856))) :rule forall_inst :args ((:= veriT_vr88 @p_381) (:= veriT_vr89 xs$)))
+(step t352 (cl (or (! (not @p_703) :named @p_851) (! (and (! (=> @p_762 (! (forall ((veriT_vr90 A$)) (! (=> (! (member$ veriT_vr90 @p_715) :named @p_801) (! (not (! (member$ veriT_vr90 @p_381) :named @p_804)) :named @p_806)) :named @p_808)) :named @p_800)) :named @p_810) (! (=> (! (forall ((veriT_vr91 A$)) (! (=> (! (member$ veriT_vr91 @p_715) :named @p_813) (! (not (! (member$ veriT_vr91 @p_381) :named @p_815)) :named @p_816)) :named @p_817)) :named @p_812) @p_762) :named @p_818)) :named @p_798))) :rule forall_inst :args ((:= veriT_vr88 @p_381) (:= veriT_vr89 xs$)))
+(anchor :step t353)
+(assume t353.h1 @p_798)
+(anchor :step t353.t2 :args ((:= (veriT_vr90 A$) veriT_vr96)))
+(step t353.t2.t1 (cl (! (= veriT_vr90 veriT_vr96) :named @p_803)) :rule refl)
+(step t353.t2.t2 (cl (= @p_801 (! (member$ veriT_vr96 @p_715) :named @p_802))) :rule cong :premises (t353.t2.t1))
+(step t353.t2.t3 (cl @p_803) :rule refl)
+(step t353.t2.t4 (cl (= @p_804 (! (member$ veriT_vr96 @p_381) :named @p_805))) :rule cong :premises (t353.t2.t3))
+(step t353.t2.t5 (cl (= @p_806 (! (not @p_805) :named @p_807))) :rule cong :premises (t353.t2.t4))
+(step t353.t2.t6 (cl (= @p_808 (! (=> @p_802 @p_807) :named @p_809))) :rule cong :premises (t353.t2.t2 t353.t2.t5))
+(step t353.t2 (cl (= @p_800 (! (forall ((veriT_vr96 A$)) @p_809) :named @p_811))) :rule bind)
+(step t353.t3 (cl (= @p_810 (! (=> @p_762 @p_811) :named @p_819))) :rule cong :premises (t353.t2))
+(anchor :step t353.t4 :args ((:= (veriT_vr91 A$) veriT_vr96)))
+(step t353.t4.t1 (cl (! (= veriT_vr91 veriT_vr96) :named @p_814)) :rule refl)
+(step t353.t4.t2 (cl (= @p_813 @p_802)) :rule cong :premises (t353.t4.t1))
+(step t353.t4.t3 (cl @p_814) :rule refl)
+(step t353.t4.t4 (cl (= @p_815 @p_805)) :rule cong :premises (t353.t4.t3))
+(step t353.t4.t5 (cl (= @p_816 @p_807)) :rule cong :premises (t353.t4.t4))
+(step t353.t4.t6 (cl (= @p_817 @p_809)) :rule cong :premises (t353.t4.t2 t353.t4.t5))
+(step t353.t4 (cl (= @p_812 @p_811)) :rule bind)
+(step t353.t5 (cl (= @p_818 (! (=> @p_811 @p_762) :named @p_820))) :rule cong :premises (t353.t4))
+(step t353.t6 (cl (! (= @p_798 (! (and @p_819 @p_820) :named @p_823)) :named @p_821)) :rule cong :premises (t353.t3 t353.t5))
+(step t353.t7 (cl (not @p_821) (! (not @p_798) :named @p_822) @p_823) :rule equiv_pos2)
+(step t353.t8 (cl @p_823) :rule th_resolution :premises (t353.h1 t353.t6 t353.t7))
+(anchor :step t353.t9 :args ((:= (veriT_vr96 A$) veriT_vr97)))
+(step t353.t9.t1 (cl (! (= veriT_vr96 veriT_vr97) :named @p_826)) :rule refl)
+(step t353.t9.t2 (cl (= @p_802 @p_825)) :rule cong :premises (t353.t9.t1))
+(step t353.t9.t3 (cl @p_826) :rule refl)
+(step t353.t9.t4 (cl (= @p_805 @p_827)) :rule cong :premises (t353.t9.t3))
+(step t353.t9.t5 (cl (= @p_807 @p_828)) :rule cong :premises (t353.t9.t4))
+(step t353.t9.t6 (cl (= @p_809 @p_824)) :rule cong :premises (t353.t9.t2 t353.t9.t5))
+(step t353.t9 (cl (= @p_811 (! (forall ((veriT_vr97 A$)) @p_824) :named @p_829))) :rule bind)
+(step t353.t10 (cl (= @p_819 (! (=> @p_762 @p_829) :named @p_830))) :rule cong :premises (t353.t9))
+(step t353.t11 (cl (= @p_820 (! (=> @p_829 @p_762) :named @p_831))) :rule cong :premises (t353.t9))
+(step t353.t12 (cl (! (= @p_823 (! (and @p_830 @p_831) :named @p_833)) :named @p_832)) :rule cong :premises (t353.t10 t353.t11))
+(step t353.t13 (cl (not @p_832) (not @p_823) @p_833) :rule equiv_pos2)
+(step t353.t14 (cl @p_833) :rule th_resolution :premises (t353.t8 t353.t12 t353.t13))
+(anchor :step t353.t15 :args ((:= (veriT_vr97 A$) veriT_sk4)))
+(step t353.t15.t1 (cl (! (= veriT_vr97 veriT_sk4) :named @p_836)) :rule refl)
+(step t353.t15.t2 (cl (= @p_825 (! (member$ veriT_sk4 @p_715) :named @p_835))) :rule cong :premises (t353.t15.t1))
+(step t353.t15.t3 (cl @p_836) :rule refl)
+(step t353.t15.t4 (cl (= @p_827 (! (member$ veriT_sk4 @p_381) :named @p_837))) :rule cong :premises (t353.t15.t3))
+(step t353.t15.t5 (cl (= @p_828 (! (not @p_837) :named @p_838))) :rule cong :premises (t353.t15.t4))
+(step t353.t15.t6 (cl (= @p_824 (! (=> @p_835 @p_838) :named @p_834))) :rule cong :premises (t353.t15.t2 t353.t15.t5))
+(step t353.t15 (cl (= @p_829 @p_834)) :rule sko_forall)
+(step t353.t16 (cl (= @p_831 (! (=> @p_834 @p_762) :named @p_839))) :rule cong :premises (t353.t15))
+(step t353.t17 (cl (! (= @p_833 (! (and @p_830 @p_839) :named @p_841)) :named @p_840)) :rule cong :premises (t353.t16))
+(step t353.t18 (cl (not @p_840) (not @p_833) @p_841) :rule equiv_pos2)
+(step t353.t19 (cl @p_841) :rule th_resolution :premises (t353.t14 t353.t17 t353.t18))
+(anchor :step t353.t20 :args ((:= (veriT_vr97 A$) veriT_vr98)))
+(step t353.t20.t1 (cl (! (= veriT_vr97 veriT_vr98) :named @p_844)) :rule refl)
+(step t353.t20.t2 (cl (= @p_825 (! (member$ veriT_vr98 @p_715) :named @p_843))) :rule cong :premises (t353.t20.t1))
+(step t353.t20.t3 (cl @p_844) :rule refl)
+(step t353.t20.t4 (cl (= @p_827 (! (member$ veriT_vr98 @p_381) :named @p_845))) :rule cong :premises (t353.t20.t3))
+(step t353.t20.t5 (cl (= @p_828 (! (not @p_845) :named @p_846))) :rule cong :premises (t353.t20.t4))
+(step t353.t20.t6 (cl (= @p_824 (! (=> @p_843 @p_846) :named @p_847))) :rule cong :premises (t353.t20.t2 t353.t20.t5))
+(step t353.t20 (cl (= @p_829 (! (forall ((veriT_vr98 A$)) @p_847) :named @p_842))) :rule bind)
+(step t353.t21 (cl (= @p_830 (! (=> @p_762 @p_842) :named @p_848))) :rule cong :premises (t353.t20))
+(step t353.t22 (cl (! (= @p_841 (! (and @p_848 @p_839) :named @p_849)) :named @p_850)) :rule cong :premises (t353.t21))
+(step t353.t23 (cl (not @p_850) (not @p_841) @p_849) :rule equiv_pos2)
+(step t353.t24 (cl @p_849) :rule th_resolution :premises (t353.t19 t353.t22 t353.t23))
+(step t353 (cl @p_822 @p_849) :rule subproof :discharge (h1))
+(step t354 (cl @p_851 @p_798) :rule or :premises (t352))
+(step t355 (cl (! (or @p_851 @p_849) :named @p_853) (! (not @p_851) :named @p_852)) :rule or_neg)
+(step t356 (cl (not @p_852) @p_703) :rule not_not)
+(step t357 (cl @p_853 @p_703) :rule th_resolution :premises (t356 t355))
+(step t358 (cl @p_853 (! (not @p_849) :named @p_1004)) :rule or_neg)
+(step t359 (cl @p_853) :rule th_resolution :premises (t354 t353 t357 t358))
+(step t360 (cl (or @p_851 (! (and (! (=> (! (fun_app$ @p_854 @p_792) :named @p_855) (! (forall ((veriT_vr90 A$)) (! (=> (! (member$ veriT_vr90 @p_380) :named @p_859) @p_806) :named @p_864)) :named @p_858)) :named @p_866) (! (=> (! (forall ((veriT_vr91 A$)) (! (=> (! (member$ veriT_vr91 @p_380) :named @p_869) @p_816) :named @p_871)) :named @p_868) @p_855) :named @p_872)) :named @p_856))) :rule forall_inst :args ((:= veriT_vr88 @p_381) (:= veriT_vr89 @p_9)))
(anchor :step t361)
(assume t361.h1 @p_856)
(anchor :step t361.t2 :args ((:= (veriT_vr90 A$) veriT_vr102)))
(step t361.t2.t1 (cl (! (= veriT_vr90 veriT_vr102) :named @p_861)) :rule refl)
-(step t361.t2.t2 (cl (= @p_859 (! (member$ veriT_vr102 @p_715) :named @p_860))) :rule cong :premises (t361.t2.t1))
+(step t361.t2.t2 (cl (= @p_859 (! (member$ veriT_vr102 @p_380) :named @p_860))) :rule cong :premises (t361.t2.t1))
(step t361.t2.t3 (cl @p_861) :rule refl)
-(step t361.t2.t4 (cl (= @p_807 (! (member$ veriT_vr102 @p_381) :named @p_862))) :rule cong :premises (t361.t2.t3))
-(step t361.t2.t5 (cl (= @p_809 (! (not @p_862) :named @p_863))) :rule cong :premises (t361.t2.t4))
+(step t361.t2.t4 (cl (= @p_804 (! (member$ veriT_vr102 @p_381) :named @p_862))) :rule cong :premises (t361.t2.t3))
+(step t361.t2.t5 (cl (= @p_806 (! (not @p_862) :named @p_863))) :rule cong :premises (t361.t2.t4))
(step t361.t2.t6 (cl (= @p_864 (! (=> @p_860 @p_863) :named @p_865))) :rule cong :premises (t361.t2.t2 t361.t2.t5))
(step t361.t2 (cl (= @p_858 (! (forall ((veriT_vr102 A$)) @p_865) :named @p_867))) :rule bind)
-(step t361.t3 (cl (= @p_866 (! (=> @p_762 @p_867) :named @p_873))) :rule cong :premises (t361.t2))
+(step t361.t3 (cl (= @p_866 (! (=> @p_855 @p_867) :named @p_873))) :rule cong :premises (t361.t2))
(anchor :step t361.t4 :args ((:= (veriT_vr91 A$) veriT_vr102)))
(step t361.t4.t1 (cl (! (= veriT_vr91 veriT_vr102) :named @p_870)) :rule refl)
(step t361.t4.t2 (cl (= @p_869 @p_860)) :rule cong :premises (t361.t4.t1))
(step t361.t4.t3 (cl @p_870) :rule refl)
-(step t361.t4.t4 (cl (= @p_818 @p_862)) :rule cong :premises (t361.t4.t3))
-(step t361.t4.t5 (cl (= @p_819 @p_863)) :rule cong :premises (t361.t4.t4))
+(step t361.t4.t4 (cl (= @p_815 @p_862)) :rule cong :premises (t361.t4.t3))
+(step t361.t4.t5 (cl (= @p_816 @p_863)) :rule cong :premises (t361.t4.t4))
(step t361.t4.t6 (cl (= @p_871 @p_865)) :rule cong :premises (t361.t4.t2 t361.t4.t5))
(step t361.t4 (cl (= @p_868 @p_867)) :rule bind)
-(step t361.t5 (cl (= @p_872 (! (=> @p_867 @p_762) :named @p_874))) :rule cong :premises (t361.t4))
+(step t361.t5 (cl (= @p_872 (! (=> @p_867 @p_855) :named @p_874))) :rule cong :premises (t361.t4))
(step t361.t6 (cl (! (= @p_856 (! (and @p_873 @p_874) :named @p_877)) :named @p_875)) :rule cong :premises (t361.t3 t361.t5))
(step t361.t7 (cl (not @p_875) (! (not @p_856) :named @p_876) @p_877) :rule equiv_pos2)
(step t361.t8 (cl @p_877) :rule th_resolution :premises (t361.h1 t361.t6 t361.t7))
@@ -4540,39 +4540,39 @@
(step t361.t9.t5 (cl (= @p_863 @p_882)) :rule cong :premises (t361.t9.t4))
(step t361.t9.t6 (cl (= @p_865 @p_878)) :rule cong :premises (t361.t9.t2 t361.t9.t5))
(step t361.t9 (cl (= @p_867 (! (forall ((veriT_vr103 A$)) @p_878) :named @p_883))) :rule bind)
-(step t361.t10 (cl (= @p_873 (! (=> @p_762 @p_883) :named @p_884))) :rule cong :premises (t361.t9))
-(step t361.t11 (cl (= @p_874 (! (=> @p_883 @p_762) :named @p_885))) :rule cong :premises (t361.t9))
+(step t361.t10 (cl (= @p_873 (! (=> @p_855 @p_883) :named @p_884))) :rule cong :premises (t361.t9))
+(step t361.t11 (cl (= @p_874 (! (=> @p_883 @p_855) :named @p_885))) :rule cong :premises (t361.t9))
(step t361.t12 (cl (! (= @p_877 (! (and @p_884 @p_885) :named @p_887)) :named @p_886)) :rule cong :premises (t361.t10 t361.t11))
(step t361.t13 (cl (not @p_886) (not @p_877) @p_887) :rule equiv_pos2)
(step t361.t14 (cl @p_887) :rule th_resolution :premises (t361.t8 t361.t12 t361.t13))
(anchor :step t361.t15 :args ((:= (veriT_vr103 A$) veriT_sk6)))
(step t361.t15.t1 (cl (! (= veriT_vr103 veriT_sk6) :named @p_890)) :rule refl)
-(step t361.t15.t2 (cl (= @p_879 (! (member$ veriT_sk6 @p_715) :named @p_889))) :rule cong :premises (t361.t15.t1))
+(step t361.t15.t2 (cl (= @p_879 (! (member$ veriT_sk6 @p_380) :named @p_889))) :rule cong :premises (t361.t15.t1))
(step t361.t15.t3 (cl @p_890) :rule refl)
(step t361.t15.t4 (cl (= @p_881 (! (member$ veriT_sk6 @p_381) :named @p_891))) :rule cong :premises (t361.t15.t3))
(step t361.t15.t5 (cl (= @p_882 (! (not @p_891) :named @p_892))) :rule cong :premises (t361.t15.t4))
(step t361.t15.t6 (cl (= @p_878 (! (=> @p_889 @p_892) :named @p_888))) :rule cong :premises (t361.t15.t2 t361.t15.t5))
(step t361.t15 (cl (= @p_883 @p_888)) :rule sko_forall)
-(step t361.t16 (cl (= @p_885 (! (=> @p_888 @p_762) :named @p_893))) :rule cong :premises (t361.t15))
+(step t361.t16 (cl (= @p_885 (! (=> @p_888 @p_855) :named @p_893))) :rule cong :premises (t361.t15))
(step t361.t17 (cl (! (= @p_887 (! (and @p_884 @p_893) :named @p_895)) :named @p_894)) :rule cong :premises (t361.t16))
(step t361.t18 (cl (not @p_894) (not @p_887) @p_895) :rule equiv_pos2)
(step t361.t19 (cl @p_895) :rule th_resolution :premises (t361.t14 t361.t17 t361.t18))
(anchor :step t361.t20 :args ((:= (veriT_vr103 A$) veriT_vr104)))
(step t361.t20.t1 (cl (! (= veriT_vr103 veriT_vr104) :named @p_898)) :rule refl)
-(step t361.t20.t2 (cl (= @p_879 (! (member$ veriT_vr104 @p_715) :named @p_897))) :rule cong :premises (t361.t20.t1))
+(step t361.t20.t2 (cl (= @p_879 (! (member$ veriT_vr104 @p_380) :named @p_897))) :rule cong :premises (t361.t20.t1))
(step t361.t20.t3 (cl @p_898) :rule refl)
(step t361.t20.t4 (cl (= @p_881 (! (member$ veriT_vr104 @p_381) :named @p_899))) :rule cong :premises (t361.t20.t3))
(step t361.t20.t5 (cl (= @p_882 (! (not @p_899) :named @p_900))) :rule cong :premises (t361.t20.t4))
(step t361.t20.t6 (cl (= @p_878 (! (=> @p_897 @p_900) :named @p_901))) :rule cong :premises (t361.t20.t2 t361.t20.t5))
(step t361.t20 (cl (= @p_883 (! (forall ((veriT_vr104 A$)) @p_901) :named @p_896))) :rule bind)
-(step t361.t21 (cl (= @p_884 (! (=> @p_762 @p_896) :named @p_902))) :rule cong :premises (t361.t20))
+(step t361.t21 (cl (= @p_884 (! (=> @p_855 @p_896) :named @p_902))) :rule cong :premises (t361.t20))
(step t361.t22 (cl (! (= @p_895 (! (and @p_902 @p_893) :named @p_903)) :named @p_904)) :rule cong :premises (t361.t21))
(step t361.t23 (cl (not @p_904) (not @p_895) @p_903) :rule equiv_pos2)
(step t361.t24 (cl @p_903) :rule th_resolution :premises (t361.t19 t361.t22 t361.t23))
(step t361 (cl @p_876 @p_903) :rule subproof :discharge (h1))
-(step t362 (cl @p_798 @p_856) :rule or :premises (t360))
-(step t363 (cl (! (or @p_798 @p_903) :named @p_905) @p_854) :rule or_neg)
-(step t364 (cl @p_905 @p_703) :rule th_resolution :premises (t352 t363))
+(step t362 (cl @p_851 @p_856) :rule or :premises (t360))
+(step t363 (cl (! (or @p_851 @p_903) :named @p_905) @p_852) :rule or_neg)
+(step t364 (cl @p_905 @p_703) :rule th_resolution :premises (t356 t363))
(step t365 (cl @p_905 (! (not @p_903) :named @p_1006)) :rule or_neg)
(step t366 (cl @p_905) :rule th_resolution :premises (t362 t361 t364 t365))
(step t367 (cl (or @p_906 (! (=> (! (forall ((veriT_vr76 A$)) (! (=> (! (member$ veriT_vr76 @p_21) :named @p_912) (! (member$ veriT_vr76 @p_760) :named @p_915)) :named @p_917)) :named @p_911) (! (fun_app$ @p_907 @p_760) :named @p_910)) :named @p_908))) :rule forall_inst :args ((:= veriT_vr74 @p_21) (:= veriT_vr75 @p_760)))
@@ -4686,20 +4686,20 @@
(step t383 (cl (or @p_735 (! (= (! (= zero$ @p_998) :named @p_1001) (! (or @p_941 (not (finite$ @p_940))) :named @p_1011)) :named @p_1012))) :rule forall_inst :args ((:= veriT_vr35 @p_940)))
(step t384 (cl (or (! (not @p_156) :named @p_1015) (! (= (! (= @p_999 @p_1000) :named @p_1014) @p_1001) :named @p_1013))) :rule forall_inst :args ((:= veriT_vr28 @p_999) (:= veriT_vr29 @p_998)))
(step t385 (cl (or @p_791 (! (= (! (fun_app$ @p_43 @p_939) :named @p_1019) (! (and @p_44 (! (= @p_1 (! (fun_app$b card$ @p_1002) :named @p_1055)) :named @p_1017)) :named @p_1016)) :named @p_1018))) :rule forall_inst :args ((:= veriT_vr5 @p_938)))
-(step t386 (cl @p_837 @p_838) :rule implies_neg1)
-(step t387 (cl @p_837 (! (not @p_841) :named @p_1003)) :rule implies_neg2)
-(step t388 (cl (not @p_1003) @p_840) :rule not_not)
-(step t389 (cl @p_837 @p_840) :rule th_resolution :premises (t388 t387))
-(step t390 (cl (not @p_842) (not @p_837) @p_800) :rule implies_pos)
-(step t391 (cl @p_1004 @p_842) :rule and_pos)
-(step t392 (cl @p_798 @p_852) :rule or :premises (t359))
-(step t393 (cl @p_852) :rule resolution :premises (t392 t229))
-(step t394 (cl @p_842) :rule resolution :premises (t391 t393))
-(step t395 (cl (not @p_902) @p_1005 @p_896) :rule implies_pos)
-(step t396 (cl @p_1006 @p_902) :rule and_pos)
-(step t397 (cl @p_798 @p_903) :rule or :premises (t366))
+(step t386 (cl (not @p_848) @p_1003 @p_842) :rule implies_pos)
+(step t387 (cl @p_1004 @p_848) :rule and_pos)
+(step t388 (cl @p_851 @p_849) :rule or :premises (t359))
+(step t389 (cl @p_849) :rule resolution :premises (t388 t229))
+(step t390 (cl @p_848) :rule resolution :premises (t387 t389))
+(step t391 (cl @p_888 @p_889) :rule implies_neg1)
+(step t392 (cl @p_888 (! (not @p_892) :named @p_1005)) :rule implies_neg2)
+(step t393 (cl (not @p_1005) @p_891) :rule not_not)
+(step t394 (cl @p_888 @p_891) :rule th_resolution :premises (t393 t392))
+(step t395 (cl (not @p_893) (not @p_888) @p_855) :rule implies_pos)
+(step t396 (cl @p_1006 @p_893) :rule and_pos)
+(step t397 (cl @p_851 @p_903) :rule or :premises (t366))
(step t398 (cl @p_903) :rule resolution :premises (t397 t229))
-(step t399 (cl @p_902) :rule resolution :premises (t396 t398))
+(step t399 (cl @p_893) :rule resolution :premises (t396 t398))
(step t400 (cl @p_930 (not @p_933)) :rule implies_neg2)
(step t401 (cl @p_1007 (not @p_930) @p_910) :rule implies_pos)
(step t402 (cl @p_906 @p_934) :rule or :premises (t373))
@@ -4728,33 +4728,33 @@
(step t425 (cl @p_1021 (! (not @p_1019) :named @p_1121) @p_1016) :rule equiv_pos2)
(step t426 (cl @p_791 @p_1018) :rule or :premises (t385))
(step t427 (cl @p_1018) :rule resolution :premises (t426 t39))
-(step t428 (cl (or (! (not @p_896) :named @p_1022) (! (forall ((veriT_vr104 A$)) (or (not @p_897) @p_900)) :named @p_1023))) :rule qnt_cnf)
+(step t428 (cl (or (! (not @p_842) :named @p_1022) (! (forall ((veriT_vr98 A$)) (or (not @p_843) @p_846)) :named @p_1023))) :rule qnt_cnf)
(step t429 (cl @p_1022 @p_1023) :rule or :premises (t428))
-(step t430 (cl (or (! (not @p_1023) :named @p_1024) (! (or (! (not @p_979) :named @p_1031) @p_982) :named @p_1025))) :rule forall_inst :args ((:= veriT_vr104 veriT_sk14)))
+(step t430 (cl (or (! (not @p_1023) :named @p_1024) (! (or (! (not @p_979) :named @p_1031) @p_982) :named @p_1025))) :rule forall_inst :args ((:= veriT_vr98 veriT_sk14)))
(step t431 (cl @p_1024 @p_1025) :rule or :premises (t430))
(step t432 (cl (! (or @p_1022 @p_1025) :named @p_1027) (! (not @p_1022) :named @p_1026)) :rule or_neg)
-(step t433 (cl (not @p_1026) @p_896) :rule not_not)
-(step t434 (cl @p_1027 @p_896) :rule th_resolution :premises (t433 t432))
+(step t433 (cl (not @p_1026) @p_842) :rule not_not)
+(step t434 (cl @p_1027 @p_842) :rule th_resolution :premises (t433 t432))
(step t435 (cl @p_1027 (! (not @p_1025) :named @p_1030)) :rule or_neg)
(step t436 (cl @p_1027) :rule th_resolution :premises (t429 t431 t434 t435))
(step t437 (cl @p_1028 @p_1029) :rule or :premises (t250))
(step t438 (cl (not (! (not @p_1028) :named @p_1034)) @p_474) :rule not_not)
(step t439 (cl @p_1030 @p_1031 @p_982) :rule or_pos)
(step t440 (cl @p_1022 @p_1025) :rule or :premises (t436))
-(step t441 (cl (or (! (not @p_1029) :named @p_1032) (! (or (! (not @p_838) :named @p_1037) @p_841) :named @p_1033))) :rule forall_inst :args ((:= veriT_vr59 veriT_sk5)))
+(step t441 (cl (or (! (not @p_1029) :named @p_1032) (! (or (! (not @p_889) :named @p_1037) @p_892) :named @p_1033))) :rule forall_inst :args ((:= veriT_vr59 veriT_sk6)))
(step t442 (cl @p_1032 @p_1033) :rule or :premises (t441))
(step t443 (cl (! (or @p_1028 @p_1033) :named @p_1035) @p_1034) :rule or_neg)
(step t444 (cl @p_1035 @p_474) :rule th_resolution :premises (t438 t443))
(step t445 (cl @p_1035 (! (not @p_1033) :named @p_1036)) :rule or_neg)
(step t446 (cl @p_1035) :rule th_resolution :premises (t437 t442 t444 t445))
(step t447 (cl (or (! (not @p_135) :named @p_1038) (! (member$ veriT_sk11 top$) :named @p_1039))) :rule forall_inst :args ((:= veriT_vr15 veriT_sk11)))
-(step t448 (cl @p_1036 @p_1037 @p_841) :rule or_pos)
+(step t448 (cl @p_1036 @p_1037 @p_892) :rule or_pos)
(step t449 (cl @p_1028 @p_1033) :rule or :premises (t446))
(step t450 (cl @p_1038 @p_1039) :rule or :premises (t447))
(step t451 (cl @p_1039) :rule resolution :premises (t450 t63))
(step t452 (cl @p_1030 @p_978) :rule resolution :premises (t439 t409 t406))
(step t453 (cl @p_1040 (! (not @p_722) :named @p_1043) @p_754) :rule eq_transitive)
-(step t454 (cl @p_1036 @p_837) :rule resolution :premises (t448 t389 t386))
+(step t454 (cl @p_1036 @p_888) :rule resolution :premises (t448 t394 t391))
(step t455 (cl (not (! (= veriT_sk0 veriT_sk0) :named @p_1041)) (! (not (! (= @p_381 @p_721) :named @p_1045)) :named @p_1042) @p_453 @p_745) :rule eq_congruent_pred)
(step t456 (cl @p_1041) :rule eq_reflexive)
(step t457 (cl @p_1042 @p_453 @p_745) :rule th_resolution :premises (t455 t456))
@@ -4797,15 +4797,15 @@
(step t494 (cl @p_1089 @p_1086 @p_1043) :rule th_resolution :premises (t491 t493))
(step t495 (cl @p_1075 @p_1083 @p_1082 @p_1089 @p_1043) :rule th_resolution :premises (t490 t494))
(step t496 (cl @p_1054 @p_1070 @p_1071 @p_400 @p_1069 @p_1067 @p_1068 @p_1083 @p_1082 @p_1089 @p_1043) :rule th_resolution :premises (t484 t495))
-(step t497 (cl @p_1054 @p_1070 @p_400) :rule resolution :premises (t496 t270 a10 t319 t344 t405 t293 a11 t266))
-(step t498 (cl (not (! (= @p_43 @p_799) :named @p_1091)) (! (not (! (= @p_21 @p_939) :named @p_1094)) :named @p_1093) @p_1019 @p_1005) :rule eq_congruent_pred)
+(step t497 (cl @p_1054 @p_1070 @p_400) :rule resolution :premises (t496 t270 axiom10 t319 t344 t405 t293 axiom11 t266))
+(step t498 (cl (not (! (= @p_43 @p_854) :named @p_1091)) (! (not (! (= @p_21 @p_939) :named @p_1094)) :named @p_1093) @p_1019 @p_1003) :rule eq_congruent_pred)
(step t499 (cl (! (not @p_1090) :named @p_1092) @p_1051 @p_1091) :rule eq_congruent)
(step t500 (cl @p_1092 @p_1091 @p_1040 @p_1043) :rule th_resolution :premises (t499 t453))
-(step t501 (cl @p_1093 @p_1019 @p_1005 @p_1092 @p_1040 @p_1043) :rule th_resolution :premises (t498 t500))
+(step t501 (cl @p_1093 @p_1019 @p_1003 @p_1092 @p_1040 @p_1043) :rule th_resolution :premises (t498 t500))
(step t502 (cl @p_1040 @p_1043 @p_1067 @p_1068 @p_1094) :rule eq_transitive)
-(step t503 (cl @p_1019 @p_1005 @p_1092 @p_1040 @p_1043 @p_1040 @p_1043 @p_1067 @p_1068) :rule th_resolution :premises (t501 t502))
-(step t504 (cl @p_1019 @p_1005 @p_1092 @p_1040 @p_1043 @p_1067 @p_1068) :rule contraction :premises (t503))
-(step t505 (cl @p_1019 @p_1005 @p_1040) :rule resolution :premises (t504 a24 t266 t319 t270))
+(step t503 (cl @p_1019 @p_1003 @p_1092 @p_1040 @p_1043 @p_1040 @p_1043 @p_1067 @p_1068) :rule th_resolution :premises (t501 t502))
+(step t504 (cl @p_1019 @p_1003 @p_1092 @p_1040 @p_1043 @p_1067 @p_1068) :rule contraction :premises (t503))
+(step t505 (cl @p_1019 @p_1003 @p_1040) :rule resolution :premises (t504 axiom24 t266 t319 t270))
(step t506 (cl (not (! (= @p_713 @p_757) :named @p_1095)) @p_773 (! (not @p_736) :named @p_1096)) :rule eq_congruent_pred)
(step t507 (cl @p_1040 @p_794 @p_1095) :rule eq_transitive)
(step t508 (cl @p_773 @p_1096 @p_1040 @p_794) :rule th_resolution :premises (t506 t507))
@@ -4818,8 +4818,8 @@
(step t515 (cl @p_1104 @p_748 @p_1099 @p_1103) :rule th_resolution :premises (t511 t514))
(step t516 (cl @p_1105) :rule eq_reflexive)
(step t517 (cl @p_748 @p_1099 @p_1103) :rule th_resolution :premises (t515 t516))
-(step t518 (cl @p_748 @p_1099) :rule resolution :premises (t517 a18))
-(step t519 (cl rhs$) :rule resolution :premises (t471 t294 t243 t240 t246 t462 t497 t419 t416 t415 t410 t452 t422 t425 t505 t440 t282 t395 t284 t320 t328 t321 t509 t510 t301 t518 t248 t247 t296 t421 t418 t414 t427 t285 t399 t333 t323 t303))
+(step t518 (cl @p_748 @p_1099) :rule resolution :premises (t517 axiom18))
+(step t519 (cl rhs$) :rule resolution :premises (t471 t294 t243 t240 t246 t462 t497 t419 t416 t415 t410 t452 t422 t425 t505 t440 t282 t386 t284 t320 t328 t321 t509 t510 t301 t518 t248 t247 t296 t421 t418 t414 t427 t285 t390 t333 t323 t303))
(step t520 (cl @p_493) :rule resolution :premises (t234 t519))
(step t521 (cl @p_1099) :rule resolution :premises (t249 t519))
(step t522 (cl @p_422) :rule resolution :premises (t231 t520))
@@ -4828,19 +4828,19 @@
(step t525 (cl @p_733) :rule resolution :premises (t281 t522 t285))
(step t526 (cl @p_1033) :rule resolution :premises (t449 t524))
(step t527 (cl @p_7) :rule resolution :premises (t280 t525))
-(step t528 (cl @p_837) :rule resolution :premises (t454 t526))
-(step t529 (cl @p_800) :rule resolution :premises (t390 t528 t394))
+(step t528 (cl @p_888) :rule resolution :premises (t454 t526))
+(step t529 (cl @p_855) :rule resolution :premises (t395 t528 t399))
(step t530 (cl @p_1106 @p_1104 @p_1107 @p_711) :rule eq_congruent_pred)
(step t531 (cl @p_1104 @p_1107 @p_711 @p_1103) :rule th_resolution :premises (t530 t514))
(step t532 (cl @p_1107 @p_711 @p_1103) :rule th_resolution :premises (t531 t516))
-(step t533 (cl @p_1107) :rule resolution :premises (t532 a18 t521))
-(step t534 (cl (! (not (! (= @p_799 @p_799) :named @p_1110)) :named @p_1108) (not @p_796) @p_762 (! (not @p_800) :named @p_1109)) :rule eq_congruent_pred)
+(step t533 (cl @p_1107) :rule resolution :premises (t532 axiom18 t521))
+(step t534 (cl (! (not (! (= @p_854 @p_854) :named @p_1110)) :named @p_1108) (not @p_796) @p_762 (! (not @p_855) :named @p_1109)) :rule eq_congruent_pred)
(step t535 (cl @p_1108 @p_762 @p_1109 @p_794 @p_795 @p_797) :rule th_resolution :premises (t534 t351))
(step t536 (cl @p_1110) :rule eq_reflexive)
(step t537 (cl @p_762 @p_1109 @p_794 @p_795 @p_797) :rule th_resolution :premises (t535 t536))
(step t538 (cl @p_762) :rule resolution :premises (t537 t268 t272 t274 t529))
(step t539 (cl @p_1040) :rule resolution :premises (t300 t533 t303))
-(step t540 (cl @p_896) :rule resolution :premises (t395 t538 t399))
+(step t540 (cl @p_842) :rule resolution :premises (t386 t538 t390))
(step t541 (cl @p_1025) :rule resolution :premises (t440 t540))
(step t542 (cl @p_978) :rule resolution :premises (t452 t541))
(step t543 (cl @p_941) :rule resolution :premises (t410 t542 t414))
@@ -4861,11 +4861,11 @@
(step t558 (cl @p_708 @p_1072 @p_1071 @p_1070 @p_778 @p_1118 @p_1043) :rule th_resolution :premises (t550 t557))
(step t559 (cl @p_708 @p_1071 @p_1070 @p_778 @p_1118 @p_1043 @p_1083 @p_1082 @p_1089 @p_1043) :rule th_resolution :premises (t558 t495))
(step t560 (cl @p_708 @p_1071 @p_1070 @p_778 @p_1118 @p_1043 @p_1083 @p_1082 @p_1089) :rule contraction :premises (t559))
-(step t561 (cl @p_778) :rule resolution :premises (t560 a11 t523 t266 t293 t327 t344 a10 t546))
+(step t561 (cl @p_778) :rule resolution :premises (t560 axiom11 t523 t266 t293 t327 t344 axiom10 t546))
(step t562 (cl @p_708 @p_1072 @p_1071 @p_1070 @p_1119 @p_1017) :rule eq_transitive)
(step t563 (cl @p_708 @p_1072 @p_1071 @p_1070 @p_1017 @p_1069 @p_1067 @p_1068) :rule th_resolution :premises (t562 t483))
(step t564 (cl @p_708 @p_1071 @p_1070 @p_1017 @p_1069 @p_1067 @p_1068 @p_1083 @p_1082 @p_1089 @p_1043) :rule th_resolution :premises (t563 t495))
-(step t565 (cl @p_1017) :rule resolution :premises (t564 a11 t523 t266 t270 a10 t319 t344 t405 t546 t293))
+(step t565 (cl @p_1017) :rule resolution :premises (t564 axiom11 t523 t266 t270 axiom10 t319 t344 t405 t546 t293))
(step t566 (cl @p_767) :rule resolution :premises (t315 t549 t317))
(step t567 (cl @p_777) :rule resolution :premises (t334 t561 t527))
(step t568 (cl @p_1120) :rule resolution :premises (t314 t566 t538))
@@ -4875,7 +4875,7 @@
(step t572 (cl @p_1092 @p_1111 @p_1123) :rule eq_congruent)
(step t573 (cl @p_1092 @p_1123) :rule th_resolution :premises (t572 t513))
(step t574 (cl @p_1121 @p_763 @p_1067 @p_1068 @p_1092) :rule th_resolution :premises (t571 t573))
-(step t575 (cl @p_1121) :rule resolution :premises (t574 a24 t270 t568 t319))
+(step t575 (cl @p_1121) :rule resolution :premises (t574 axiom24 t270 t568 t319))
(step t576 (cl (not (! (= veriT_sk11 veriT_sk11) :named @p_1124)) (! (not (! (= top$ @p_760) :named @p_1128)) :named @p_1125) @p_933 (! (not @p_1039) :named @p_1126)) :rule eq_congruent_pred)
(step t577 (cl @p_1124) :rule eq_reflexive)
(step t578 (cl @p_1125 @p_933 @p_1126) :rule th_resolution :premises (t576 t577))
@@ -4893,36 +4893,36 @@
(step t590 (cl @p_1134 @p_1135 @p_790 @p_1092) :rule th_resolution :premises (t589 t573))
(step t591 (cl @p_1136) :rule eq_reflexive)
(step t592 (cl @p_1135 @p_790 @p_1092) :rule th_resolution :premises (t590 t591))
-(step t593 (cl) :rule resolution :premises (t592 a24 t588 t586))
-8616c6debd3ebae49adf8409b8c1ecb6665bc881 654 0
+(step t593 (cl) :rule resolution :premises (t592 axiom24 t588 t586))
+d8bde960a6a2cb3d70d1b157d08487440b364301 654 0
unsat
-(assume a0 (! (forall ((?v0 Int)) (! (= (! (fun_app$ uua$ ?v0) :named @p_13) (! (line_integral_exists$ f$ (! (insert$ j$ bot$) :named @p_7)) :named @p_12)) :named @p_15)) :named @p_11))
-(assume a1 (! (forall ((?v0 Int)) (! (= (! (fun_app$ uu$ ?v0) :named @p_25) (! (line_integral_exists$ f$ (! (insert$ i$ bot$) :named @p_5)) :named @p_24)) :named @p_27)) :named @p_23))
-(assume a2 (! (forall ((?v0 Int_real_real_real_prod_fun_bool_fun_fun$) (?v1 Int_real_real_real_prod_fun_prod$)) (! (= (! (case_prod$ ?v0 ?v1) :named @p_36) (! (fun_app$a (! (fun_app$ ?v0 (! (fst$ ?v1) :named @p_40)) :named @p_42) (! (snd$ ?v1) :named @p_44)) :named @p_46)) :named @p_48)) :named @p_35))
-(assume a3 (! (forall ((?v0 Real_real_prod$) (?v1 Real_real_prod$)) (! (=> (! (= (! (insert$ ?v0 bot$) :named @p_3) (! (insert$ ?v1 bot$) :named @p_64)) :named @p_66) (! (= ?v0 ?v1) :named @p_70)) :named @p_72)) :named @p_62))
-(assume a4 (! (forall ((?v0 Int) (?v1 Real_real_real_prod_fun$)) (! (= ?v1 (! (snd$ (! (pair$ ?v0 ?v1) :named @p_87)) :named @p_89)) :named @p_91)) :named @p_85))
-(assume a5 (! (forall ((?v0 Real) (?v1 Real)) (! (= ?v1 (! (snd$a (! (fun_app$b (! (pair$a ?v0) :named @p_102) ?v1) :named @p_105)) :named @p_107)) :named @p_109)) :named @p_101))
-(assume a6 (! (member$ (! (pair$ k$ g$) :named @p_403) one_chain_typeI$) :named @p_402))
-(assume a7 (! (forall ((?v0 Real_real_prod_set$) (?v1 Real_real_prod$) (?v2 Real_real_prod_set$)) (! (= (! (= bot$ (! (inf$ ?v0 (! (insert$ ?v1 ?v2) :named @p_1)) :named @p_122)) :named @p_124) (! (and (! (not (! (member$a ?v1 ?v0) :named @p_128)) :named @p_130) (! (= bot$ (! (inf$ ?v0 ?v2) :named @p_133)) :named @p_135)) :named @p_137)) :named @p_139)) :named @p_120))
-(assume a8 (! (finite$ bot$) :named @p_414))
-(assume a9 (! (forall ((?v0 Real_real_prod_set$) (?v1 Real_real_prod$)) (! (=> (! (finite$ ?v0) :named @p_4) (! (finite$ (! (insert$ ?v1 ?v0) :named @p_160)) :named @p_162)) :named @p_164)) :named @p_157))
-(assume a10 (! (= i$ (! (fun_app$b (pair$a 1.0) 0.0) :named @p_417)) :named @p_499))
-(assume a11 (! (forall ((?v0 Real_real_prod$) (?v1 Real_real_prod_set$)) (! (=> (! (member$a ?v0 ?v1) :named @p_176) (! (= ?v1 (! (insert$ ?v0 ?v1) :named @p_2)) :named @p_181)) :named @p_183)) :named @p_175))
-(assume a12 (! (= j$ (! (fun_app$b (pair$a 0.0) 1.0) :named @p_419)) :named @p_500))
-(assume a13 (! (forall ((?v0 Real_real_prod_set$)) (! (= bot$ (! (inf$ ?v0 bot$) :named @p_196)) :named @p_198)) :named @p_195))
-(assume a14 (! (forall ((?v0 Real_real_prod$) (?v1 Real_real_prod$) (?v2 Real_real_prod_set$)) (! (= (! (insert$ ?v0 @p_1) :named @p_208) (! (insert$ ?v1 (! (insert$ ?v0 ?v2) :named @p_213)) :named @p_215)) :named @p_217)) :named @p_206))
-(assume a15 (! (forall ((?v0 Real_real_prod$) (?v1 Real_real_prod_set$)) (! (= @p_2 (! (sup$ @p_3 ?v1) :named @p_236)) :named @p_238)) :named @p_231))
-(assume a16 (! (forall ((?v0 Real_real_prod_set$) (?v1 Real_real_prod_real_real_prod_fun$) (?v2 Real_real_prod_set$) (?v3 Real_real_real_prod_fun$) (?v4 Real_real_prod_set$)) (! (=> (! (and @p_4 (! (and (! (fun_app$a (! (line_integral_exists$ ?v1 ?v2) :named @p_252) ?v3) :named @p_254) (! (and (! (fun_app$a (! (line_integral_exists$ ?v1 ?v4) :named @p_257) ?v3) :named @p_260) (! (and (! (= ?v0 (! (sup$ ?v2 ?v4) :named @p_265)) :named @p_267) (! (= bot$ (! (inf$ ?v2 ?v4) :named @p_269)) :named @p_271)) :named @p_273)) :named @p_275)) :named @p_277)) :named @p_279) (! (= (! (line_integral$ ?v1 ?v0 ?v3) :named @p_281) (! (+ (! (line_integral$ ?v1 ?v2 ?v3) :named @p_283) (! (line_integral$ ?v1 ?v4 ?v3) :named @p_285)) :named @p_287)) :named @p_289)) :named @p_291)) :named @p_250))
-(assume a17 (! (and (! (= (one_chain_line_integral$ f$ @p_5 one_chain_typeI$) (one_chain_line_integral$ f$ @p_5 one_chain_typeII$)) :named @p_337) (! (and (! (forall ((?v0 Int_real_real_real_prod_fun_prod$)) (! (=> (! (member$ ?v0 one_chain_typeI$) :named @p_9) (! (case_prod$ uu$ ?v0) :named @p_6)) :named @p_326)) :named @p_322) (! (forall ((?v0 Int_real_real_real_prod_fun_prod$)) (! (=> (! (member$ ?v0 one_chain_typeII$) :named @p_8) @p_6) :named @p_331)) :named @p_328)) :named @p_333)) :named @p_336))
-(assume a18 (! (and (! (= (one_chain_line_integral$ f$ @p_7 one_chain_typeII$) (one_chain_line_integral$ f$ @p_7 one_chain_typeI$)) :named @p_377) (! (and (! (forall ((?v0 Int_real_real_real_prod_fun_prod$)) (! (=> @p_8 (! (case_prod$ uua$ ?v0) :named @p_10)) :named @p_366)) :named @p_362) (! (forall ((?v0 Int_real_real_real_prod_fun_prod$)) (! (=> @p_9 @p_10) :named @p_371)) :named @p_368)) :named @p_373)) :named @p_376))
-(assume a19 (not (! (= (! (line_integral$ f$ (! (insert$ i$ @p_7) :named @p_407) g$) :named @p_462) (! (+ (! (line_integral$ f$ @p_5 g$) :named @p_404) (! (line_integral$ f$ @p_7 g$) :named @p_405)) :named @p_463)) :named @p_410)))
+(assume axiom0 (! (forall ((?v0 Int)) (! (= (! (fun_app$ uua$ ?v0) :named @p_13) (! (line_integral_exists$ f$ (! (insert$ j$ bot$) :named @p_7)) :named @p_12)) :named @p_15)) :named @p_11))
+(assume axiom1 (! (forall ((?v0 Int)) (! (= (! (fun_app$ uu$ ?v0) :named @p_25) (! (line_integral_exists$ f$ (! (insert$ i$ bot$) :named @p_5)) :named @p_24)) :named @p_27)) :named @p_23))
+(assume axiom2 (! (forall ((?v0 Int_real_real_real_prod_fun_bool_fun_fun$) (?v1 Int_real_real_real_prod_fun_prod$)) (! (= (! (case_prod$ ?v0 ?v1) :named @p_36) (! (fun_app$a (! (fun_app$ ?v0 (! (fst$ ?v1) :named @p_40)) :named @p_42) (! (snd$ ?v1) :named @p_44)) :named @p_46)) :named @p_48)) :named @p_35))
+(assume axiom3 (! (forall ((?v0 Real_real_prod$) (?v1 Real_real_prod$)) (! (=> (! (= (! (insert$ ?v0 bot$) :named @p_3) (! (insert$ ?v1 bot$) :named @p_64)) :named @p_66) (! (= ?v0 ?v1) :named @p_70)) :named @p_72)) :named @p_62))
+(assume axiom4 (! (forall ((?v0 Int) (?v1 Real_real_real_prod_fun$)) (! (= ?v1 (! (snd$ (! (pair$ ?v0 ?v1) :named @p_87)) :named @p_89)) :named @p_91)) :named @p_85))
+(assume axiom5 (! (forall ((?v0 Real) (?v1 Real)) (! (= ?v1 (! (snd$a (! (fun_app$b (! (pair$a ?v0) :named @p_102) ?v1) :named @p_105)) :named @p_107)) :named @p_109)) :named @p_101))
+(assume axiom6 (! (member$ (! (pair$ k$ g$) :named @p_403) one_chain_typeI$) :named @p_402))
+(assume axiom7 (! (forall ((?v0 Real_real_prod_set$) (?v1 Real_real_prod$) (?v2 Real_real_prod_set$)) (! (= (! (= bot$ (! (inf$ ?v0 (! (insert$ ?v1 ?v2) :named @p_1)) :named @p_122)) :named @p_124) (! (and (! (not (! (member$a ?v1 ?v0) :named @p_128)) :named @p_130) (! (= bot$ (! (inf$ ?v0 ?v2) :named @p_133)) :named @p_135)) :named @p_137)) :named @p_139)) :named @p_120))
+(assume axiom8 (! (finite$ bot$) :named @p_414))
+(assume axiom9 (! (forall ((?v0 Real_real_prod_set$) (?v1 Real_real_prod$)) (! (=> (! (finite$ ?v0) :named @p_4) (! (finite$ (! (insert$ ?v1 ?v0) :named @p_160)) :named @p_162)) :named @p_164)) :named @p_157))
+(assume axiom10 (! (= i$ (! (fun_app$b (pair$a 1.0) 0.0) :named @p_417)) :named @p_499))
+(assume axiom11 (! (forall ((?v0 Real_real_prod$) (?v1 Real_real_prod_set$)) (! (=> (! (member$a ?v0 ?v1) :named @p_176) (! (= ?v1 (! (insert$ ?v0 ?v1) :named @p_2)) :named @p_181)) :named @p_183)) :named @p_175))
+(assume axiom12 (! (= j$ (! (fun_app$b (pair$a 0.0) 1.0) :named @p_419)) :named @p_500))
+(assume axiom13 (! (forall ((?v0 Real_real_prod_set$)) (! (= bot$ (! (inf$ ?v0 bot$) :named @p_196)) :named @p_198)) :named @p_195))
+(assume axiom14 (! (forall ((?v0 Real_real_prod$) (?v1 Real_real_prod$) (?v2 Real_real_prod_set$)) (! (= (! (insert$ ?v0 @p_1) :named @p_208) (! (insert$ ?v1 (! (insert$ ?v0 ?v2) :named @p_213)) :named @p_215)) :named @p_217)) :named @p_206))
+(assume axiom15 (! (forall ((?v0 Real_real_prod$) (?v1 Real_real_prod_set$)) (! (= @p_2 (! (sup$ @p_3 ?v1) :named @p_236)) :named @p_238)) :named @p_231))
+(assume axiom16 (! (forall ((?v0 Real_real_prod_set$) (?v1 Real_real_prod_real_real_prod_fun$) (?v2 Real_real_prod_set$) (?v3 Real_real_real_prod_fun$) (?v4 Real_real_prod_set$)) (! (=> (! (and @p_4 (! (and (! (fun_app$a (! (line_integral_exists$ ?v1 ?v2) :named @p_252) ?v3) :named @p_254) (! (and (! (fun_app$a (! (line_integral_exists$ ?v1 ?v4) :named @p_257) ?v3) :named @p_260) (! (and (! (= ?v0 (! (sup$ ?v2 ?v4) :named @p_265)) :named @p_267) (! (= bot$ (! (inf$ ?v2 ?v4) :named @p_269)) :named @p_271)) :named @p_273)) :named @p_275)) :named @p_277)) :named @p_279) (! (= (! (line_integral$ ?v1 ?v0 ?v3) :named @p_281) (! (+ (! (line_integral$ ?v1 ?v2 ?v3) :named @p_283) (! (line_integral$ ?v1 ?v4 ?v3) :named @p_285)) :named @p_287)) :named @p_289)) :named @p_291)) :named @p_250))
+(assume axiom17 (! (and (! (= (one_chain_line_integral$ f$ @p_5 one_chain_typeI$) (one_chain_line_integral$ f$ @p_5 one_chain_typeII$)) :named @p_337) (! (and (! (forall ((?v0 Int_real_real_real_prod_fun_prod$)) (! (=> (! (member$ ?v0 one_chain_typeI$) :named @p_9) (! (case_prod$ uu$ ?v0) :named @p_6)) :named @p_326)) :named @p_322) (! (forall ((?v0 Int_real_real_real_prod_fun_prod$)) (! (=> (! (member$ ?v0 one_chain_typeII$) :named @p_8) @p_6) :named @p_331)) :named @p_328)) :named @p_333)) :named @p_336))
+(assume axiom18 (! (and (! (= (one_chain_line_integral$ f$ @p_7 one_chain_typeII$) (one_chain_line_integral$ f$ @p_7 one_chain_typeI$)) :named @p_377) (! (and (! (forall ((?v0 Int_real_real_real_prod_fun_prod$)) (! (=> @p_8 (! (case_prod$ uua$ ?v0) :named @p_10)) :named @p_366)) :named @p_362) (! (forall ((?v0 Int_real_real_real_prod_fun_prod$)) (! (=> @p_9 @p_10) :named @p_371)) :named @p_368)) :named @p_373)) :named @p_376))
+(assume axiom19 (not (! (= (! (line_integral$ f$ (! (insert$ i$ @p_7) :named @p_407) g$) :named @p_462) (! (+ (! (line_integral$ f$ @p_5 g$) :named @p_404) (! (line_integral$ f$ @p_7 g$) :named @p_405)) :named @p_463)) :named @p_410)))
(anchor :step t21 :args ((:= (?v0 Int) veriT_vr0)))
(step t21.t1 (cl (= ?v0 veriT_vr0)) :rule refl)
(step t21.t2 (cl (= @p_13 (! (fun_app$ uua$ veriT_vr0) :named @p_14))) :rule cong :premises (t21.t1))
(step t21.t3 (cl (= @p_15 (! (= @p_12 @p_14) :named @p_16))) :rule cong :premises (t21.t2))
(step t21 (cl (! (= @p_11 (! (forall ((veriT_vr0 Int)) @p_16) :named @p_18)) :named @p_17)) :rule bind)
(step t22 (cl (not @p_17) (not @p_11) @p_18) :rule equiv_pos2)
-(step t23 (cl @p_18) :rule th_resolution :premises (a0 t21 t22))
+(step t23 (cl @p_18) :rule th_resolution :premises (axiom0 t21 t22))
(anchor :step t24 :args ((:= (veriT_vr0 Int) veriT_vr1)))
(step t24.t1 (cl (= veriT_vr0 veriT_vr1)) :rule refl)
(step t24.t2 (cl (= @p_14 (! (fun_app$ uua$ veriT_vr1) :named @p_19))) :rule cong :premises (t24.t1))
@@ -4936,7 +4936,7 @@
(step t27.t3 (cl (= @p_27 (! (= @p_24 @p_26) :named @p_28))) :rule cong :premises (t27.t2))
(step t27 (cl (! (= @p_23 (! (forall ((veriT_vr2 Int)) @p_28) :named @p_30)) :named @p_29)) :rule bind)
(step t28 (cl (not @p_29) (not @p_23) @p_30) :rule equiv_pos2)
-(step t29 (cl @p_30) :rule th_resolution :premises (a1 t27 t28))
+(step t29 (cl @p_30) :rule th_resolution :premises (axiom1 t27 t28))
(anchor :step t30 :args ((:= (veriT_vr2 Int) veriT_vr3)))
(step t30.t1 (cl (= veriT_vr2 veriT_vr3)) :rule refl)
(step t30.t2 (cl (= @p_26 (! (fun_app$ uu$ veriT_vr3) :named @p_31))) :rule cong :premises (t30.t1))
@@ -4958,7 +4958,7 @@
(step t33.t11 (cl (= @p_48 (! (= @p_37 @p_47) :named @p_49))) :rule cong :premises (t33.t3 t33.t10))
(step t33 (cl (! (= @p_35 (! (forall ((veriT_vr4 Int_real_real_real_prod_fun_bool_fun_fun$) (veriT_vr5 Int_real_real_real_prod_fun_prod$)) @p_49) :named @p_51)) :named @p_50)) :rule bind)
(step t34 (cl (not @p_50) (not @p_35) @p_51) :rule equiv_pos2)
-(step t35 (cl @p_51) :rule th_resolution :premises (a2 t33 t34))
+(step t35 (cl @p_51) :rule th_resolution :premises (axiom2 t33 t34))
(anchor :step t36 :args ((:= (veriT_vr4 Int_real_real_real_prod_fun_bool_fun_fun$) veriT_vr6) (:= (veriT_vr5 Int_real_real_real_prod_fun_prod$) veriT_vr7)))
(step t36.t1 (cl (! (= veriT_vr4 veriT_vr6) :named @p_53)) :rule refl)
(step t36.t2 (cl (! (= veriT_vr5 veriT_vr7) :named @p_54)) :rule refl)
@@ -4986,7 +4986,7 @@
(step t39.t9 (cl (= @p_72 (! (=> @p_67 @p_71) :named @p_73))) :rule cong :premises (t39.t5 t39.t8))
(step t39 (cl (! (= @p_62 (! (forall ((veriT_vr8 Real_real_prod$) (veriT_vr9 Real_real_prod$)) @p_73) :named @p_75)) :named @p_74)) :rule bind)
(step t40 (cl (not @p_74) (not @p_62) @p_75) :rule equiv_pos2)
-(step t41 (cl @p_75) :rule th_resolution :premises (a3 t39 t40))
+(step t41 (cl @p_75) :rule th_resolution :premises (axiom3 t39 t40))
(anchor :step t42 :args ((:= (veriT_vr8 Real_real_prod$) veriT_vr10) (:= (veriT_vr9 Real_real_prod$) veriT_vr11)))
(step t42.t1 (cl (! (= veriT_vr8 veriT_vr10) :named @p_79)) :rule refl)
(step t42.t2 (cl (= @p_63 (! (insert$ veriT_vr10 bot$) :named @p_76))) :rule cong :premises (t42.t1))
@@ -5009,7 +5009,7 @@
(step t45.t6 (cl (= @p_91 (! (= veriT_vr13 @p_90) :named @p_92))) :rule cong :premises (t45.t1 t45.t5))
(step t45 (cl (! (= @p_85 (! (forall ((veriT_vr12 Int) (veriT_vr13 Real_real_real_prod_fun$)) @p_92) :named @p_94)) :named @p_93)) :rule bind)
(step t46 (cl (not @p_93) (not @p_85) @p_94) :rule equiv_pos2)
-(step t47 (cl @p_94) :rule th_resolution :premises (a4 t45 t46))
+(step t47 (cl @p_94) :rule th_resolution :premises (axiom4 t45 t46))
(anchor :step t48 :args ((:= (veriT_vr12 Int) veriT_vr14) (:= (veriT_vr13 Real_real_real_prod_fun$) veriT_vr15)))
(step t48.t1 (cl (! (= veriT_vr13 veriT_vr15) :named @p_95)) :rule refl)
(step t48.t2 (cl (= veriT_vr12 veriT_vr14)) :rule refl)
@@ -5030,7 +5030,7 @@
(step t51.t7 (cl (= @p_109 (! (= veriT_vr17 @p_108) :named @p_110))) :rule cong :premises (t51.t1 t51.t6))
(step t51 (cl (! (= @p_101 (! (forall ((veriT_vr16 Real) (veriT_vr17 Real)) @p_110) :named @p_112)) :named @p_111)) :rule bind)
(step t52 (cl (not @p_111) (not @p_101) @p_112) :rule equiv_pos2)
-(step t53 (cl @p_112) :rule th_resolution :premises (a5 t51 t52))
+(step t53 (cl @p_112) :rule th_resolution :premises (axiom5 t51 t52))
(anchor :step t54 :args ((:= (veriT_vr16 Real) veriT_vr18) (:= (veriT_vr17 Real) veriT_vr19)))
(step t54.t1 (cl (! (= veriT_vr17 veriT_vr19) :named @p_114)) :rule refl)
(step t54.t2 (cl (= veriT_vr16 veriT_vr18)) :rule refl)
@@ -5061,7 +5061,7 @@
(step t57.t16 (cl (= @p_139 (! (= @p_125 @p_138) :named @p_140))) :rule cong :premises (t57.t6 t57.t15))
(step t57 (cl (! (= @p_120 (! (forall ((veriT_vr20 Real_real_prod_set$) (veriT_vr21 Real_real_prod$) (veriT_vr22 Real_real_prod_set$)) @p_140) :named @p_142)) :named @p_141)) :rule bind)
(step t58 (cl (not @p_141) (not @p_120) @p_142) :rule equiv_pos2)
-(step t59 (cl @p_142) :rule th_resolution :premises (a7 t57 t58))
+(step t59 (cl @p_142) :rule th_resolution :premises (axiom7 t57 t58))
(anchor :step t60 :args ((:= (veriT_vr20 Real_real_prod_set$) veriT_vr23) (:= (veriT_vr21 Real_real_prod$) veriT_vr24) (:= (veriT_vr22 Real_real_prod_set$) veriT_vr25)))
(step t60.t1 (cl (! (= veriT_vr20 veriT_vr23) :named @p_147)) :rule refl)
(step t60.t2 (cl (! (= veriT_vr21 veriT_vr24) :named @p_146)) :rule refl)
@@ -5092,7 +5092,7 @@
(step t63.t7 (cl (= @p_164 (! (=> @p_158 @p_163) :named @p_165))) :rule cong :premises (t63.t2 t63.t6))
(step t63 (cl (! (= @p_157 (! (forall ((veriT_vr26 Real_real_prod_set$) (veriT_vr27 Real_real_prod$)) @p_165) :named @p_167)) :named @p_166)) :rule bind)
(step t64 (cl (not @p_166) (not @p_157) @p_167) :rule equiv_pos2)
-(step t65 (cl @p_167) :rule th_resolution :premises (a9 t63 t64))
+(step t65 (cl @p_167) :rule th_resolution :premises (axiom9 t63 t64))
(anchor :step t66 :args ((:= (veriT_vr26 Real_real_prod_set$) veriT_vr28) (:= (veriT_vr27 Real_real_prod$) veriT_vr29)))
(step t66.t1 (cl (! (= veriT_vr26 veriT_vr28) :named @p_169)) :rule refl)
(step t66.t2 (cl (= @p_158 (! (finite$ veriT_vr28) :named @p_168))) :rule cong :premises (t66.t1))
@@ -5116,7 +5116,7 @@
(step t69.t9 (cl (= @p_183 (! (=> @p_177 @p_182) :named @p_184))) :rule cong :premises (t69.t3 t69.t8))
(step t69 (cl (! (= @p_175 (! (forall ((veriT_vr30 Real_real_prod$) (veriT_vr31 Real_real_prod_set$)) @p_184) :named @p_186)) :named @p_185)) :rule bind)
(step t70 (cl (not @p_185) (not @p_175) @p_186) :rule equiv_pos2)
-(step t71 (cl @p_186) :rule th_resolution :premises (a11 t69 t70))
+(step t71 (cl @p_186) :rule th_resolution :premises (axiom11 t69 t70))
(anchor :step t72 :args ((:= (veriT_vr30 Real_real_prod$) veriT_vr32) (:= (veriT_vr31 Real_real_prod_set$) veriT_vr33)))
(step t72.t1 (cl (! (= veriT_vr30 veriT_vr32) :named @p_189)) :rule refl)
(step t72.t2 (cl (! (= veriT_vr31 veriT_vr33) :named @p_188)) :rule refl)
@@ -5136,7 +5136,7 @@
(step t75.t3 (cl (= @p_198 (! (= bot$ @p_197) :named @p_199))) :rule cong :premises (t75.t2))
(step t75 (cl (! (= @p_195 (! (forall ((veriT_vr34 Real_real_prod_set$)) @p_199) :named @p_201)) :named @p_200)) :rule bind)
(step t76 (cl (not @p_200) (not @p_195) @p_201) :rule equiv_pos2)
-(step t77 (cl @p_201) :rule th_resolution :premises (a13 t75 t76))
+(step t77 (cl @p_201) :rule th_resolution :premises (axiom13 t75 t76))
(anchor :step t78 :args ((:= (veriT_vr34 Real_real_prod_set$) veriT_vr35)))
(step t78.t1 (cl (= veriT_vr34 veriT_vr35)) :rule refl)
(step t78.t2 (cl (= @p_197 (! (inf$ veriT_vr35 bot$) :named @p_202))) :rule cong :premises (t78.t1))
@@ -5158,7 +5158,7 @@
(step t81.t11 (cl (= @p_217 (! (= @p_209 @p_216) :named @p_218))) :rule cong :premises (t81.t5 t81.t10))
(step t81 (cl (! (= @p_206 (! (forall ((veriT_vr36 Real_real_prod$) (veriT_vr37 Real_real_prod$) (veriT_vr38 Real_real_prod_set$)) @p_218) :named @p_220)) :named @p_219)) :rule bind)
(step t82 (cl (not @p_219) (not @p_206) @p_220) :rule equiv_pos2)
-(step t83 (cl @p_220) :rule th_resolution :premises (a14 t81 t82))
+(step t83 (cl @p_220) :rule th_resolution :premises (axiom14 t81 t82))
(anchor :step t84 :args ((:= (veriT_vr36 Real_real_prod$) veriT_vr39) (:= (veriT_vr37 Real_real_prod$) veriT_vr40) (:= (veriT_vr38 Real_real_prod_set$) veriT_vr41)))
(step t84.t1 (cl (! (= veriT_vr36 veriT_vr39) :named @p_224)) :rule refl)
(step t84.t2 (cl (! (= veriT_vr37 veriT_vr40) :named @p_223)) :rule refl)
@@ -5185,7 +5185,7 @@
(step t87.t8 (cl (= @p_238 (! (= @p_232 @p_237) :named @p_239))) :rule cong :premises (t87.t3 t87.t7))
(step t87 (cl (! (= @p_231 (! (forall ((veriT_vr42 Real_real_prod$) (veriT_vr43 Real_real_prod_set$)) @p_239) :named @p_241)) :named @p_240)) :rule bind)
(step t88 (cl (not @p_240) (not @p_231) @p_241) :rule equiv_pos2)
-(step t89 (cl @p_241) :rule th_resolution :premises (a15 t87 t88))
+(step t89 (cl @p_241) :rule th_resolution :premises (axiom15 t87 t88))
(anchor :step t90 :args ((:= (veriT_vr42 Real_real_prod$) veriT_vr44) (:= (veriT_vr43 Real_real_prod_set$) veriT_vr45)))
(step t90.t1 (cl (! (= veriT_vr42 veriT_vr44) :named @p_243)) :rule refl)
(step t90.t2 (cl (! (= veriT_vr43 veriT_vr45) :named @p_245)) :rule refl)
@@ -5241,7 +5241,7 @@
(step t93.t40 (cl (= @p_291 (! (=> @p_280 @p_290) :named @p_292))) :rule cong :premises (t93.t25 t93.t39))
(step t93 (cl (! (= @p_250 (! (forall ((veriT_vr46 Real_real_prod_set$) (veriT_vr47 Real_real_prod_real_real_prod_fun$) (veriT_vr48 Real_real_prod_set$) (veriT_vr49 Real_real_real_prod_fun$) (veriT_vr50 Real_real_prod_set$)) @p_292) :named @p_294)) :named @p_293)) :rule bind)
(step t94 (cl (not @p_293) (not @p_250) @p_294) :rule equiv_pos2)
-(step t95 (cl @p_294) :rule th_resolution :premises (a16 t93 t94))
+(step t95 (cl @p_294) :rule th_resolution :premises (axiom16 t93 t94))
(anchor :step t96 :args ((veriT_vr46 Real_real_prod_set$) (veriT_vr47 Real_real_prod_real_real_prod_fun$) (veriT_vr48 Real_real_prod_set$) (veriT_vr49 Real_real_real_prod_fun$) (veriT_vr50 Real_real_prod_set$)))
(step t96.t1 (cl (= @p_280 (! (and @p_251 @p_255 @p_261 @p_268 @p_272) :named @p_295))) :rule ac_simp)
(step t96.t2 (cl (= @p_292 (! (=> @p_295 @p_290) :named @p_296))) :rule cong :premises (t96.t1))
@@ -5306,7 +5306,7 @@
(step t104 (cl (= @p_333 (! (and @p_334 @p_335) :named @p_338))) :rule cong :premises (t102 t103))
(step t105 (cl (! (= @p_336 (! (and @p_337 @p_338) :named @p_340)) :named @p_339)) :rule cong :premises (t104))
(step t106 (cl (not @p_339) (not @p_336) @p_340) :rule equiv_pos2)
-(step t107 (cl @p_340) :rule th_resolution :premises (a17 t105 t106))
+(step t107 (cl @p_340) :rule th_resolution :premises (axiom17 t105 t106))
(step t108 (cl (! (= @p_340 (! (and @p_337 @p_334 @p_335) :named @p_342)) :named @p_341)) :rule ac_simp)
(step t109 (cl (not @p_341) (not @p_340) @p_342) :rule equiv_pos2)
(step t110 (cl @p_342) :rule th_resolution :premises (t107 t108 t109))
@@ -5354,7 +5354,7 @@
(step t122 (cl (= @p_373 (! (and @p_374 @p_375) :named @p_378))) :rule cong :premises (t120 t121))
(step t123 (cl (! (= @p_376 (! (and @p_377 @p_378) :named @p_380)) :named @p_379)) :rule cong :premises (t122))
(step t124 (cl (not @p_379) (not @p_376) @p_380) :rule equiv_pos2)
-(step t125 (cl @p_380) :rule th_resolution :premises (a18 t123 t124))
+(step t125 (cl @p_380) :rule th_resolution :premises (axiom18 t123 t124))
(step t126 (cl (! (= @p_380 (! (and @p_377 @p_374 @p_375) :named @p_382)) :named @p_381)) :rule ac_simp)
(step t127 (cl (not @p_381) (not @p_380) @p_382) :rule equiv_pos2)
(step t128 (cl @p_382) :rule th_resolution :premises (t125 t126 t127))
@@ -5403,12 +5403,12 @@
(step t153 (cl (or (! (not @p_84) :named @p_461) (! (=> (! (= @p_7 @p_5) :named @p_459) (! (= j$ i$) :named @p_460)) :named @p_458))) :rule forall_inst :args ((:= veriT_vr10 i$) (:= veriT_vr11 j$)))
(step t154 (cl (! (not @p_420) :named @p_423) (! (not @p_402) :named @p_425) @p_421) :rule implies_pos)
(step t155 (cl @p_422 @p_420) :rule or :premises (t140))
-(step t156 (cl @p_423 @p_421) :rule resolution :premises (t154 a6))
+(step t156 (cl @p_423 @p_421) :rule resolution :premises (t154 axiom6))
(step t157 (cl @p_420) :rule resolution :premises (t155 t139))
(step t158 (cl @p_421) :rule resolution :premises (t156 t157))
(step t159 (cl (! (not @p_424) :named @p_428) @p_425 @p_426) :rule implies_pos)
(step t160 (cl @p_427 @p_424) :rule or :premises (t141))
-(step t161 (cl @p_428 @p_426) :rule resolution :premises (t159 a6))
+(step t161 (cl @p_428 @p_426) :rule resolution :premises (t159 axiom6))
(step t162 (cl @p_424) :rule resolution :premises (t160 t138))
(step t163 (cl @p_426) :rule resolution :premises (t161 t162))
(step t164 (cl @p_429 (not @p_415) (! (not @p_409) :named @p_436) (! (not @p_408) :named @p_435) (not @p_430) (not @p_431)) :rule and_neg)
@@ -5418,7 +5418,7 @@
(step t168 (cl @p_434 (not @p_412) @p_435 @p_436 (not @p_411) (! (not @p_437) :named @p_515)) :rule and_neg)
(step t169 (cl (! (not @p_438) :named @p_439) (! (not @p_434) :named @p_440) @p_410) :rule implies_pos)
(step t170 (cl @p_406 @p_438) :rule or :premises (t143))
-(step t171 (cl @p_439 @p_440) :rule resolution :premises (t169 a19))
+(step t171 (cl @p_439 @p_440) :rule resolution :premises (t169 axiom19))
(step t172 (cl @p_438) :rule resolution :premises (t170 t101))
(step t173 (cl @p_440) :rule resolution :premises (t171 t172))
(step t174 (cl @p_441 @p_411) :rule or :premises (t144))
@@ -5433,12 +5433,12 @@
(step t183 (cl @p_448) :rule resolution :premises (t182 t68))
(step t184 (cl (! (not @p_449) :named @p_450) (! (not @p_414) :named @p_452) @p_415) :rule implies_pos)
(step t185 (cl @p_413 @p_449) :rule or :premises (t148))
-(step t186 (cl @p_450 @p_415) :rule resolution :premises (t184 a8))
+(step t186 (cl @p_450 @p_415) :rule resolution :premises (t184 axiom8))
(step t187 (cl @p_449) :rule resolution :premises (t185 t68))
(step t188 (cl @p_415) :rule resolution :premises (t186 t187))
(step t189 (cl (! (not @p_451) :named @p_453) @p_452 @p_416) :rule implies_pos)
(step t190 (cl @p_413 @p_451) :rule or :premises (t149))
-(step t191 (cl @p_453 @p_416) :rule resolution :premises (t189 a8))
+(step t191 (cl @p_453 @p_416) :rule resolution :premises (t189 axiom8))
(step t192 (cl @p_451) :rule resolution :premises (t190 t68))
(step t193 (cl @p_416) :rule resolution :premises (t191 t192))
(step t194 (cl @p_412) :rule resolution :premises (t181 t193 t183))
@@ -5453,7 +5453,7 @@
(step t203 (cl @p_458) :rule resolution :premises (t202 t44))
(step t204 (cl (or @p_410 (! (not (! (<= @p_462 @p_463) :named @p_534)) :named @p_464) (! (not (! (<= @p_463 @p_462) :named @p_535)) :named @p_465))) :rule la_disequality)
(step t205 (cl @p_410 @p_464 @p_465) :rule or :premises (t204))
-(step t206 (cl @p_464 @p_465) :rule resolution :premises (t205 a19))
+(step t206 (cl @p_464 @p_465) :rule resolution :premises (t205 axiom19))
(step t207 (cl (or @p_441 (! (= @p_466 @p_467) :named @p_474))) :rule forall_inst :args ((:= veriT_vr44 j$) (:= veriT_vr45 @p_5)))
(step t208 (cl (or @p_447 (! (=> (! (member$a j$ @p_5) :named @p_468) (! (= @p_5 @p_467) :named @p_477)) :named @p_475))) :rule forall_inst :args ((:= veriT_vr32 j$) (:= veriT_vr33 @p_5)))
(step t209 (cl (or (! (not @p_156) :named @p_469) (! (= @p_437 (! (and (! (not @p_468) :named @p_476) (! (= bot$ (inf$ @p_5 bot$)) :named @p_479)) :named @p_478)) :named @p_482))) :rule forall_inst :args ((:= veriT_vr23 @p_5) (:= veriT_vr24 j$) (:= veriT_vr25 bot$)))
@@ -5501,7 +5501,7 @@
(step t251 (cl @p_498 @p_502 @p_503 @p_504) :rule th_resolution :premises (t249 t250))
(step t252 (cl @p_505 @p_506 @p_497 @p_502 @p_503 @p_504) :rule th_resolution :premises (t248 t251))
(step t253 (cl @p_505 @p_506 @p_502 @p_503 @p_504) :rule th_resolution :premises (t247 t252))
-(step t254 (cl @p_503) :rule resolution :premises (t253 a10 a12 t196 t198))
+(step t254 (cl @p_503) :rule resolution :premises (t253 axiom10 axiom12 t196 t198))
(step t255 (cl @p_507) :rule resolution :premises (t201 t254 t203))
(step t256 (cl (! (= f$ f$) :named @p_523)) :rule eq_reflexive)
(step t257 (cl (! (= g$ g$) :named @p_524)) :rule eq_reflexive)
@@ -5549,24 +5549,24 @@
(step t299 (cl @p_535 @p_529 @p_536) :rule la_generic :args (1.0 2 1))
(step t300 (cl @p_535 @p_517 @p_518 @p_532) :rule th_resolution :premises (t299 t284 t294))
(step t301 (cl) :rule resolution :premises (t300 t289 t177 t298 t272))
-7d1d28af77b48e47cf45f7abbbccb64bffffc3f9 6 0
+5fc0f54f0190d5b6a4967f69daa36736ef3d3325 6 0
unsat
-(assume a0 (! (< 0.0 (+ x$ (! (* 2.0 y$) :named @p_1))) :named @p_2))
-(assume a1 (! (< 0.0 (- x$ @p_1)) :named @p_3))
-(assume a2 (! (< x$ 0.0) :named @p_4))
+(assume axiom0 (! (< 0.0 (+ x$ (! (* 2.0 y$) :named @p_1))) :named @p_2))
+(assume axiom1 (! (< 0.0 (- x$ @p_1)) :named @p_3))
+(assume axiom2 (! (< x$ 0.0) :named @p_4))
(step t4 (cl (not @p_2) (not @p_3) (not @p_4)) :rule la_generic :args (1.0 1.0 2.0))
-(step t5 (cl) :rule resolution :premises (t4 a0 a1 a2))
-f17b9d0590c7cefc8013c1518981dc710a40e813 735 0
+(step t5 (cl) :rule resolution :premises (t4 axiom0 axiom1 axiom2))
+809cc2252f6f1da6c3a4347a531733952ab0b99f 467 0
unsat
-(assume a0 (! (forall ((?v0 Real)) (! (= (! (fun_app$ uuc$ ?v0) :named @p_9) (! (pair$ (! (times$ (! (- ?v0 (! (divide$ 1.0 2.0) :named @p_7)) :named @p_12) d$) :named @p_1) (! (diamond_y$ @p_1) :named @p_16)) :named @p_18)) :named @p_20)) :named @p_6))
-(assume a3 (! (forall ((?v0 Real)) (! (= (! (fun_app$ uub$ ?v0) :named @p_37) (! (pair$ (! (- (! (divide$ d$ 2.0) :named @p_3)) :named @p_2) (! (times$ (! (- (! (* 2.0 ?v0) :named @p_40) 1.0) :named @p_42) (! (diamond_y$ @p_2) :named @p_36)) :named @p_44)) :named @p_46)) :named @p_48)) :named @p_35))
-(assume a4 (! (< 0.0 d$) :named @p_269))
-(assume a5 (! (forall ((?v0 Real)) (! (= (! (diamond_y$ ?v0) :named @p_62) (! (- @p_3 (! (ite (! (< ?v0 0.0) :named @p_65) (! (- ?v0) :named @p_4) ?v0) :named @p_68)) :named @p_70)) :named @p_72)) :named @p_61))
-(assume a7 (! (forall ((?v0 Real) (?v1 Real) (?v2 Real)) (! (= (! (< (! (divide$ ?v0 ?v1) :named @p_5) (! (divide$ ?v2 ?v1) :named @p_88)) :named @p_90) (! (and (! (=> (! (< 0.0 ?v1) :named @p_92) (! (< ?v0 ?v2) :named @p_96)) :named @p_98) (! (and (! (=> (! (< ?v1 0.0) :named @p_100) (! (< ?v2 ?v0) :named @p_102)) :named @p_104) (! (not (! (= 0.0 ?v1) :named @p_106)) :named @p_108)) :named @p_110)) :named @p_112)) :named @p_114)) :named @p_85))
-(assume a8 (! (forall ((?v0 Real) (?v1 Real)) (! (= (! (divide$ @p_4 ?v1) :named @p_142) (! (- @p_5) :named @p_147)) :named @p_149)) :named @p_140))
-(assume a9 (! (forall ((?v0 Real) (?v1 Real)) (! (= (! (times$ @p_4 ?v1) :named @p_164) (! (- (! (times$ ?v0 ?v1) :named @p_168)) :named @p_170)) :named @p_172)) :named @p_162))
-(assume a10 (! (forall ((?v0 Real) (?v1 Real) (?v2 Real) (?v3 Real)) (! (= (! (= (! (pair$ ?v0 ?v1) :named @p_186) (! (pair$ ?v2 ?v3) :named @p_188)) :named @p_190) (! (and (! (= ?v0 ?v2) :named @p_194) (! (= ?v1 ?v3) :named @p_198)) :named @p_200)) :named @p_202)) :named @p_185))
-(assume a11 (! (not (! (=> (! (and (! (not (= uua$ uu$)) :named @p_226) (! (= uuc$ uub$) :named @p_227)) :named @p_220) false) :named @p_224)) :named @p_219))
+(assume axiom0 (! (forall ((?v0 Real)) (! (= (! (fun_app$ uuc$ ?v0) :named @p_9) (! (pair$ (! (times$ (! (- ?v0 (! (divide$ 1.0 2.0) :named @p_7)) :named @p_12) d$) :named @p_1) (! (diamond_y$ @p_1) :named @p_16)) :named @p_18)) :named @p_20)) :named @p_6))
+(assume axiom3 (! (forall ((?v0 Real)) (! (= (! (fun_app$ uub$ ?v0) :named @p_37) (! (pair$ (! (- (! (divide$ d$ 2.0) :named @p_3)) :named @p_2) (! (times$ (! (- (! (* 2.0 ?v0) :named @p_40) 1.0) :named @p_42) (! (diamond_y$ @p_2) :named @p_36)) :named @p_44)) :named @p_46)) :named @p_48)) :named @p_35))
+(assume axiom4 (! (< 0.0 d$) :named @p_257))
+(assume axiom5 (! (forall ((?v0 Real)) (! (= (! (diamond_y$ ?v0) :named @p_62) (! (- @p_3 (! (ite (! (< ?v0 0.0) :named @p_65) (! (- ?v0) :named @p_4) ?v0) :named @p_68)) :named @p_70)) :named @p_72)) :named @p_61))
+(assume axiom7 (! (forall ((?v0 Real) (?v1 Real) (?v2 Real)) (! (= (! (< (! (divide$ ?v0 ?v1) :named @p_5) (! (divide$ ?v2 ?v1) :named @p_88)) :named @p_90) (! (and (! (=> (! (< 0.0 ?v1) :named @p_92) (! (< ?v0 ?v2) :named @p_96)) :named @p_98) (! (and (! (=> (! (< ?v1 0.0) :named @p_100) (! (< ?v2 ?v0) :named @p_102)) :named @p_104) (! (not (! (= 0.0 ?v1) :named @p_106)) :named @p_108)) :named @p_110)) :named @p_112)) :named @p_114)) :named @p_85))
+(assume axiom8 (! (forall ((?v0 Real) (?v1 Real)) (! (= (! (divide$ @p_4 ?v1) :named @p_142) (! (- @p_5) :named @p_147)) :named @p_149)) :named @p_140))
+(assume axiom9 (! (forall ((?v0 Real) (?v1 Real)) (! (= (! (times$ @p_4 ?v1) :named @p_164) (! (- (! (times$ ?v0 ?v1) :named @p_168)) :named @p_170)) :named @p_172)) :named @p_162))
+(assume axiom10 (! (forall ((?v0 Real) (?v1 Real) (?v2 Real) (?v3 Real)) (! (= (! (= (! (pair$ ?v0 ?v1) :named @p_186) (! (pair$ ?v2 ?v3) :named @p_188)) :named @p_190) (! (and (! (= ?v0 ?v2) :named @p_194) (! (= ?v1 ?v3) :named @p_198)) :named @p_200)) :named @p_202)) :named @p_185))
+(assume axiom11 (! (not (! (=> (! (and (! (not (= uua$ uu$)) :named @p_226) (! (= uuc$ uub$) :named @p_227)) :named @p_220) false) :named @p_224)) :named @p_219))
(anchor :step t10 :args ((:= (?v0 Real) veriT_vr0)))
(step t10.t1 (cl (! (= ?v0 veriT_vr0) :named @p_11)) :rule refl)
(step t10.t2 (cl (= @p_9 (! (fun_app$ uuc$ veriT_vr0) :named @p_10))) :rule cong :premises (t10.t1))
@@ -5581,7 +5581,7 @@
(step t10.t11 (cl (= @p_20 (! (= @p_10 @p_19) :named @p_21))) :rule cong :premises (t10.t2 t10.t10))
(step t10 (cl (! (= @p_6 (! (forall ((veriT_vr0 Real)) @p_21) :named @p_23)) :named @p_22)) :rule bind)
(step t11 (cl (not @p_22) (not @p_6) @p_23) :rule equiv_pos2)
-(step t12 (cl @p_23) :rule th_resolution :premises (a0 t10 t11))
+(step t12 (cl @p_23) :rule th_resolution :premises (axiom0 t10 t11))
(anchor :step t13 :args ((:= (veriT_vr0 Real) veriT_vr1)))
(step t13.t1 (cl (! (= veriT_vr0 veriT_vr1) :named @p_26)) :rule refl)
(step t13.t2 (cl (= @p_10 (! (fun_app$ uuc$ veriT_vr1) :named @p_25))) :rule cong :premises (t13.t1))
@@ -5608,7 +5608,7 @@
(step t16.t8 (cl (= @p_48 (! (= @p_38 @p_47) :named @p_49))) :rule cong :premises (t16.t2 t16.t7))
(step t16 (cl (! (= @p_35 (! (forall ((veriT_vr6 Real)) @p_49) :named @p_51)) :named @p_50)) :rule bind)
(step t17 (cl (not @p_50) (not @p_35) @p_51) :rule equiv_pos2)
-(step t18 (cl @p_51) :rule th_resolution :premises (a3 t16 t17))
+(step t18 (cl @p_51) :rule th_resolution :premises (axiom3 t16 t17))
(anchor :step t19 :args ((:= (veriT_vr6 Real) veriT_vr7)))
(step t19.t1 (cl (! (= veriT_vr6 veriT_vr7) :named @p_53)) :rule refl)
(step t19.t2 (cl (= @p_38 (! (fun_app$ uub$ veriT_vr7) :named @p_52))) :rule cong :premises (t19.t1))
@@ -5634,7 +5634,7 @@
(step t22.t10 (cl (= @p_72 (! (= @p_63 @p_71) :named @p_73))) :rule cong :premises (t22.t2 t22.t9))
(step t22 (cl (! (= @p_61 (! (forall ((veriT_vr8 Real)) @p_73) :named @p_75)) :named @p_74)) :rule bind)
(step t23 (cl (not @p_74) (not @p_61) @p_75) :rule equiv_pos2)
-(step t24 (cl @p_75) :rule th_resolution :premises (a5 t22 t23))
+(step t24 (cl @p_75) :rule th_resolution :premises (axiom5 t22 t23))
(anchor :step t25 :args ((:= (veriT_vr8 Real) veriT_vr9)))
(step t25.t1 (cl (! (= veriT_vr8 veriT_vr9) :named @p_77)) :rule refl)
(step t25.t2 (cl (= @p_63 (! (diamond_y$ veriT_vr9) :named @p_76))) :rule cong :premises (t25.t1))
@@ -5677,7 +5677,7 @@
(step t28.t25 (cl (= @p_114 (! (= @p_91 @p_113) :named @p_115))) :rule cong :premises (t28.t7 t28.t24))
(step t28 (cl (! (= @p_85 (! (forall ((veriT_vr10 Real) (veriT_vr11 Real) (veriT_vr12 Real)) @p_115) :named @p_117)) :named @p_116)) :rule bind)
(step t29 (cl (not @p_116) (not @p_85) @p_117) :rule equiv_pos2)
-(step t30 (cl @p_117) :rule th_resolution :premises (a7 t28 t29))
+(step t30 (cl @p_117) :rule th_resolution :premises (axiom7 t28 t29))
(anchor :step t31 :args ((veriT_vr10 Real) (veriT_vr11 Real) (veriT_vr12 Real)))
(step t31.t1 (cl (= @p_113 (! (and @p_99 @p_105 @p_109) :named @p_118))) :rule ac_simp)
(step t31.t2 (cl (= @p_115 (! (= @p_91 @p_118) :named @p_119))) :rule cong :premises (t31.t1))
@@ -5724,7 +5724,7 @@
(step t37.t9 (cl (= @p_149 (! (= @p_143 @p_148) :named @p_150))) :rule cong :premises (t37.t4 t37.t8))
(step t37 (cl (! (= @p_140 (! (forall ((veriT_vr16 Real) (veriT_vr17 Real)) @p_150) :named @p_152)) :named @p_151)) :rule bind)
(step t38 (cl (not @p_151) (not @p_140) @p_152) :rule equiv_pos2)
-(step t39 (cl @p_152) :rule th_resolution :premises (a8 t37 t38))
+(step t39 (cl @p_152) :rule th_resolution :premises (axiom8 t37 t38))
(anchor :step t40 :args ((:= (veriT_vr16 Real) veriT_vr18) (:= (veriT_vr17 Real) veriT_vr19)))
(step t40.t1 (cl (! (= veriT_vr16 veriT_vr18) :named @p_155)) :rule refl)
(step t40.t2 (cl (= @p_141 (! (- veriT_vr18) :named @p_153))) :rule cong :premises (t40.t1))
@@ -5750,7 +5750,7 @@
(step t43.t9 (cl (= @p_172 (! (= @p_165 @p_171) :named @p_173))) :rule cong :premises (t43.t4 t43.t8))
(step t43 (cl (! (= @p_162 (! (forall ((veriT_vr20 Real) (veriT_vr21 Real)) @p_173) :named @p_175)) :named @p_174)) :rule bind)
(step t44 (cl (not @p_174) (not @p_162) @p_175) :rule equiv_pos2)
-(step t45 (cl @p_175) :rule th_resolution :premises (a9 t43 t44))
+(step t45 (cl @p_175) :rule th_resolution :premises (axiom9 t43 t44))
(anchor :step t46 :args ((:= (veriT_vr20 Real) veriT_vr22) (:= (veriT_vr21 Real) veriT_vr23)))
(step t46.t1 (cl (! (= veriT_vr20 veriT_vr22) :named @p_178)) :rule refl)
(step t46.t2 (cl (= @p_163 (! (- veriT_vr22) :named @p_176))) :rule cong :premises (t46.t1))
@@ -5782,7 +5782,7 @@
(step t49.t15 (cl (= @p_202 (! (= @p_191 @p_201) :named @p_203))) :rule cong :premises (t49.t7 t49.t14))
(step t49 (cl (! (= @p_185 (! (forall ((veriT_vr24 Real) (veriT_vr25 Real) (veriT_vr26 Real) (veriT_vr27 Real)) @p_203) :named @p_205)) :named @p_204)) :rule bind)
(step t50 (cl (not @p_204) (not @p_185) @p_205) :rule equiv_pos2)
-(step t51 (cl @p_205) :rule th_resolution :premises (a10 t49 t50))
+(step t51 (cl @p_205) :rule th_resolution :premises (axiom10 t49 t50))
(anchor :step t52 :args ((:= (veriT_vr24 Real) veriT_vr28) (:= (veriT_vr25 Real) veriT_vr29) (:= (veriT_vr26 Real) veriT_vr30) (:= (veriT_vr27 Real) veriT_vr31)))
(step t52.t1 (cl (! (= veriT_vr24 veriT_vr28) :named @p_209)) :rule refl)
(step t52.t2 (cl (! (= veriT_vr25 veriT_vr29) :named @p_212)) :rule refl)
@@ -5806,984 +5806,231 @@
(step t56 (cl (! (not @p_221) :named @p_225) (! (not @p_219) :named @p_223) @p_222) :rule equiv_pos2)
(step t57 (cl (not @p_223) @p_224) :rule not_not)
(step t58 (cl @p_225 @p_224 @p_222) :rule th_resolution :premises (t57 t56))
-(step t59 (cl @p_222) :rule th_resolution :premises (a11 t55 t58))
+(step t59 (cl @p_222) :rule th_resolution :premises (axiom11 t55 t58))
(step t60 (cl (! (= @p_222 (! (and @p_226 @p_227 @p_228) :named @p_230)) :named @p_229)) :rule ac_simp)
(step t61 (cl (not @p_229) (not @p_222) @p_230) :rule equiv_pos2)
(step t62 (cl @p_230) :rule th_resolution :premises (t59 t60 t61))
-(step t63 (cl (! (= @p_228 true) :named @p_281)) :rule not_simplify)
+(step t63 (cl (! (= @p_228 true) :named @p_269)) :rule not_simplify)
(step t64 (cl (= @p_230 (! (and @p_226 @p_227 true) :named @p_231))) :rule cong :premises (t63))
(step t65 (cl (= @p_231 @p_220)) :rule and_simplify)
(step t66 (cl (! (= @p_230 @p_220) :named @p_232)) :rule trans :premises (t64 t65))
(step t67 (cl (not @p_232) (not @p_230) @p_220) :rule equiv_pos2)
(step t68 (cl @p_220) :rule th_resolution :premises (t62 t66 t67))
(step t69 (cl @p_227) :rule and :premises (t68))
-(step t70 (cl (or (! (not @p_218) :named @p_233) (! (forall ((veriT_vr28 Real) (veriT_vr29 Real) (veriT_vr30 Real) (veriT_vr31 Real)) (or (! (not @p_208) :named @p_234) @p_211)) :named @p_499))) :rule qnt_cnf)
-(step t71 (cl (or @p_233 (! (forall ((veriT_vr28 Real) (veriT_vr29 Real) (veriT_vr30 Real) (veriT_vr31 Real)) (or @p_234 @p_214)) :named @p_488))) :rule qnt_cnf)
-(step t72 (cl (not (! (not @p_233) :named @p_493)) @p_218) :rule not_not)
-(step t73 (cl (or (! (not @p_184) :named @p_236) (! (= (! (times$ (! (- @p_36) :named @p_237) (! (diamond_y$ @p_3) :named @p_235)) :named @p_446) (! (- (! (times$ @p_36 @p_235) :named @p_445)) :named @p_426)) :named @p_389))) :rule forall_inst :args ((:= veriT_vr22 @p_36) (:= veriT_vr23 @p_235)))
-(step t74 (cl (or @p_236 (! (= (! (times$ @p_237 d$) :named @p_477) (! (- (times$ @p_36 d$)) :named @p_471)) :named @p_390))) :rule forall_inst :args ((:= veriT_vr22 @p_36) (:= veriT_vr23 d$)))
-(step t75 (cl (not (! (not @p_236) :named @p_246)) @p_184) :rule not_not)
-(step t76 (cl (or @p_236 (! (= (! (times$ (! (- 0.0) :named @p_241) d$) :named @p_242) (! (- (! (times$ 0.0 d$) :named @p_239)) :named @p_240)) :named @p_238))) :rule forall_inst :args ((:= veriT_vr22 0.0) (:= veriT_vr23 d$)))
-(anchor :step t77)
-(assume t77.h1 @p_238)
-(step t77.t2 (cl (! (= 0.0 @p_241) :named @p_261)) :rule minus_simplify)
-(step t77.t3 (cl (= @p_242 @p_239)) :rule cong :premises (t77.t2))
-(step t77.t4 (cl (! (= @p_238 (! (= @p_239 @p_240) :named @p_243)) :named @p_244)) :rule cong :premises (t77.t3))
-(step t77.t5 (cl (not @p_244) (! (not @p_238) :named @p_245) @p_243) :rule equiv_pos2)
-(step t77.t6 (cl @p_243) :rule th_resolution :premises (t77.h1 t77.t4 t77.t5))
-(step t77 (cl @p_245 @p_243) :rule subproof :discharge (h1))
-(step t78 (cl @p_236 @p_238) :rule or :premises (t76))
-(step t79 (cl (! (or @p_236 @p_243) :named @p_247) @p_246) :rule or_neg)
-(step t80 (cl @p_247 @p_184) :rule th_resolution :premises (t75 t79))
-(step t81 (cl @p_247 (! (not @p_243) :named @p_476)) :rule or_neg)
-(step t82 (cl @p_247) :rule th_resolution :premises (t78 t77 t80 t81))
-(step t83 (cl (or @p_236 (! (= (! (times$ (! (- 1.0) :named @p_250) @p_36) :named @p_251) (! (- (! (times$ 1.0 @p_36) :named @p_348)) :named @p_249)) :named @p_248))) :rule forall_inst :args ((:= veriT_vr22 1.0) (:= veriT_vr23 @p_36)))
-(anchor :step t84)
-(assume t84.h1 @p_248)
-(step t84.t2 (cl (= @p_250 (- 1.0))) :rule minus_simplify)
-(step t84.t3 (cl (= @p_251 (! (times$ (- 1.0) @p_36) :named @p_252))) :rule cong :premises (t84.t2))
-(step t84.t4 (cl (! (= @p_248 (! (= @p_249 @p_252) :named @p_253)) :named @p_254)) :rule cong :premises (t84.t3))
-(step t84.t5 (cl (not @p_254) (! (not @p_248) :named @p_255) @p_253) :rule equiv_pos2)
-(step t84.t6 (cl @p_253) :rule th_resolution :premises (t84.h1 t84.t4 t84.t5))
-(step t84 (cl @p_255 @p_253) :rule subproof :discharge (h1))
-(step t85 (cl @p_236 @p_248) :rule or :premises (t83))
-(step t86 (cl (! (or @p_236 @p_253) :named @p_256) @p_246) :rule or_neg)
-(step t87 (cl @p_256 @p_184) :rule th_resolution :premises (t75 t86))
-(step t88 (cl @p_256 (! (not @p_253) :named @p_554)) :rule or_neg)
-(step t89 (cl @p_256) :rule th_resolution :premises (t85 t84 t87 t88))
-(step t90 (cl (not (! (not (! (not @p_161) :named @p_257)) :named @p_266)) @p_161) :rule not_not)
-(step t91 (cl (or @p_257 (! (= (! (divide$ @p_241 2.0) :named @p_262) (! (- (! (divide$ 0.0 2.0) :named @p_259)) :named @p_260)) :named @p_258))) :rule forall_inst :args ((:= veriT_vr18 0.0) (:= veriT_vr19 2.0)))
-(anchor :step t92)
-(assume t92.h1 @p_258)
-(step t92.t2 (cl @p_261) :rule minus_simplify)
-(step t92.t3 (cl (= @p_262 @p_259)) :rule cong :premises (t92.t2))
-(step t92.t4 (cl (! (= @p_258 (! (= @p_259 @p_260) :named @p_263)) :named @p_264)) :rule cong :premises (t92.t3))
-(step t92.t5 (cl (not @p_264) (! (not @p_258) :named @p_265) @p_263) :rule equiv_pos2)
-(step t92.t6 (cl @p_263) :rule th_resolution :premises (t92.h1 t92.t4 t92.t5))
-(step t92 (cl @p_265 @p_263) :rule subproof :discharge (h1))
-(step t93 (cl @p_257 @p_258) :rule or :premises (t91))
-(step t94 (cl (! (or @p_257 @p_263) :named @p_267) @p_266) :rule or_neg)
-(step t95 (cl @p_267 @p_161) :rule th_resolution :premises (t90 t94))
-(step t96 (cl @p_267 (! (not @p_263) :named @p_407)) :rule or_neg)
-(step t97 (cl @p_267) :rule th_resolution :premises (t93 t92 t95 t96))
-(step t98 (cl (not (! (not (! (not @p_139) :named @p_268)) :named @p_288)) @p_139) :rule not_not)
-(step t99 (cl (or @p_268 (! (= (! (< @p_259 @p_3) :named @p_271) (! (and (! (=> (! (< 0.0 2.0) :named @p_272) @p_269) :named @p_273) (! (=> (! (< 2.0 0.0) :named @p_275) (! (< d$ 0.0) :named @p_277)) :named @p_276) (! (not (! (= 2.0 0.0) :named @p_279)) :named @p_280)) :named @p_282)) :named @p_270))) :rule forall_inst :args ((:= veriT_vr13 0.0) (:= veriT_vr14 2.0) (:= veriT_vr15 d$)))
-(anchor :step t100)
-(assume t100.h1 @p_270)
-(step t100.t2 (cl (= @p_272 true)) :rule comp_simplify)
-(step t100.t3 (cl (= @p_273 (! (=> true @p_269) :named @p_274))) :rule cong :premises (t100.t2))
-(step t100.t4 (cl (= @p_274 @p_269)) :rule implies_simplify)
-(step t100.t5 (cl (= @p_273 @p_269)) :rule trans :premises (t100.t3 t100.t4))
-(step t100.t6 (cl (= @p_275 false)) :rule comp_simplify)
-(step t100.t7 (cl (= @p_276 (! (=> false @p_277) :named @p_278))) :rule cong :premises (t100.t6))
-(step t100.t8 (cl (= @p_278 true)) :rule implies_simplify)
-(step t100.t9 (cl (= @p_276 true)) :rule trans :premises (t100.t7 t100.t8))
-(step t100.t10 (cl (= @p_279 false)) :rule eq_simplify)
-(step t100.t11 (cl (= @p_280 @p_228)) :rule cong :premises (t100.t10))
-(step t100.t12 (cl @p_281) :rule not_simplify)
-(step t100.t13 (cl (= @p_280 true)) :rule trans :premises (t100.t11 t100.t12))
-(step t100.t14 (cl (= @p_282 (! (and @p_269 true true) :named @p_283))) :rule cong :premises (t100.t5 t100.t9 t100.t13))
-(step t100.t15 (cl (= @p_283 (! (and @p_269) :named @p_284))) :rule and_simplify)
-(step t100.t16 (cl (= @p_284 @p_269)) :rule and_simplify)
-(step t100.t17 (cl (= @p_282 @p_269)) :rule trans :premises (t100.t14 t100.t15 t100.t16))
-(step t100.t18 (cl (! (= @p_270 (! (= @p_271 @p_269) :named @p_285)) :named @p_286)) :rule cong :premises (t100.t17))
-(step t100.t19 (cl (not @p_286) (! (not @p_270) :named @p_287) @p_285) :rule equiv_pos2)
-(step t100.t20 (cl @p_285) :rule th_resolution :premises (t100.h1 t100.t18 t100.t19))
-(step t100 (cl @p_287 @p_285) :rule subproof :discharge (h1))
-(step t101 (cl @p_268 @p_270) :rule or :premises (t99))
-(step t102 (cl (! (or @p_268 @p_285) :named @p_289) @p_288) :rule or_neg)
-(step t103 (cl @p_289 @p_139) :rule th_resolution :premises (t98 t102))
-(step t104 (cl @p_289 (! (not @p_285) :named @p_391)) :rule or_neg)
-(step t105 (cl @p_289) :rule th_resolution :premises (t101 t100 t103 t104))
-(step t106 (cl (not (! (not (! (not @p_84) :named @p_290)) :named @p_303)) @p_84) :rule not_not)
-(step t107 (cl (or @p_290 (! (= @p_36 (! (- @p_3 (! (ite (! (< @p_2 0.0) :named @p_292) (! (- @p_2) :named @p_294) @p_2) :named @p_295)) :named @p_296)) :named @p_291))) :rule forall_inst :args ((:= veriT_vr9 @p_2)))
-(anchor :step t108)
-(assume t108.h1 @p_291)
-(step t108.t2 (cl (= @p_3 @p_294)) :rule minus_simplify)
-(step t108.t3 (cl (= @p_295 (! (ite @p_292 @p_3 @p_2) :named @p_293))) :rule cong :premises (t108.t2))
-(step t108.t4 (cl (= @p_296 (! (- @p_3 @p_293) :named @p_297))) :rule cong :premises (t108.t3))
-(step t108.t5 (cl (! (= @p_291 (! (= @p_36 @p_297) :named @p_300)) :named @p_298)) :rule cong :premises (t108.t4))
-(step t108.t6 (cl (not @p_298) (! (not @p_291) :named @p_299) @p_300) :rule equiv_pos2)
-(step t108.t7 (cl @p_300) :rule th_resolution :premises (t108.h1 t108.t5 t108.t6))
-(step t108.t8 (cl (! (= @p_300 (! (and (! (= @p_36 (! (- @p_3 @p_293) :named @p_417)) :named @p_393) (! (ite @p_292 (! (= @p_3 @p_293) :named @p_395) (! (= @p_2 @p_293) :named @p_413)) :named @p_394)) :named @p_301)) :named @p_302)) :rule ite_intro)
-(step t108.t9 (cl (not @p_302) (not @p_300) @p_301) :rule equiv_pos2)
-(step t108.t10 (cl @p_301) :rule th_resolution :premises (t108.t7 t108.t8 t108.t9))
-(step t108 (cl @p_299 @p_301) :rule subproof :discharge (h1))
-(step t109 (cl @p_290 @p_291) :rule or :premises (t107))
-(step t110 (cl (! (or @p_290 @p_301) :named @p_304) @p_303) :rule or_neg)
-(step t111 (cl @p_304 @p_84) :rule th_resolution :premises (t106 t110))
-(step t112 (cl @p_304 (! (not @p_301) :named @p_392)) :rule or_neg)
-(step t113 (cl @p_304) :rule th_resolution :premises (t109 t108 t111 t112))
-(step t114 (cl (or @p_290 (! (= (! (diamond_y$ @p_235) :named @p_306) (- @p_3 (! (ite (! (< @p_235 0.0) :named @p_308) (! (- @p_235) :named @p_309) @p_235) :named @p_307))) :named @p_305))) :rule forall_inst :args ((:= veriT_vr9 @p_235)))
-(anchor :step t115)
-(assume t115.h1 @p_305)
-(step t115.t2 (cl (! (= @p_305 (! (and (= @p_306 (- @p_3 @p_307)) (! (ite @p_308 (! (= @p_309 @p_307) :named @p_450) (! (= @p_235 @p_307) :named @p_397)) :named @p_396)) :named @p_310)) :named @p_311)) :rule ite_intro)
-(step t115.t3 (cl (not @p_311) (! (not @p_305) :named @p_312) @p_310) :rule equiv_pos2)
-(step t115.t4 (cl @p_310) :rule th_resolution :premises (t115.h1 t115.t2 t115.t3))
-(step t115 (cl @p_312 @p_310) :rule subproof :discharge (h1))
-(step t116 (cl @p_290 @p_305) :rule or :premises (t114))
-(step t117 (cl (! (or @p_290 @p_310) :named @p_313) @p_303) :rule or_neg)
-(step t118 (cl @p_313 @p_84) :rule th_resolution :premises (t106 t117))
-(step t119 (cl @p_313 (! (not @p_310) :named @p_398)) :rule or_neg)
-(step t120 (cl @p_313) :rule th_resolution :premises (t116 t115 t118 t119))
-(step t121 (cl (or @p_290 (! (= @p_235 (- @p_3 (! (ite (! (< @p_3 0.0) :named @p_316) @p_2 @p_3) :named @p_315))) :named @p_314))) :rule forall_inst :args ((:= veriT_vr9 @p_3)))
-(anchor :step t122)
-(assume t122.h1 @p_314)
-(step t122.t2 (cl (! (= @p_314 (! (and (! (= @p_235 (! (- @p_3 @p_315) :named @p_418)) :named @p_400) (! (ite @p_316 (= @p_2 @p_315) (! (= @p_3 @p_315) :named @p_402)) :named @p_401)) :named @p_317)) :named @p_318)) :rule ite_intro)
-(step t122.t3 (cl (not @p_318) (! (not @p_314) :named @p_319) @p_317) :rule equiv_pos2)
-(step t122.t4 (cl @p_317) :rule th_resolution :premises (t122.h1 t122.t2 t122.t3))
-(step t122 (cl @p_319 @p_317) :rule subproof :discharge (h1))
-(step t123 (cl @p_290 @p_314) :rule or :premises (t121))
-(step t124 (cl (! (or @p_290 @p_317) :named @p_320) @p_303) :rule or_neg)
-(step t125 (cl @p_320 @p_84) :rule th_resolution :premises (t106 t124))
-(step t126 (cl @p_320 (! (not @p_317) :named @p_399)) :rule or_neg)
-(step t127 (cl @p_320) :rule th_resolution :premises (t123 t122 t125 t126))
-(step t128 (cl (or @p_290 (! (= (! (diamond_y$ 0.0) :named @p_322) (! (- @p_3 (! (ite (! (< 0.0 0.0) :named @p_323) @p_241 0.0) :named @p_324)) :named @p_326)) :named @p_321))) :rule forall_inst :args ((:= veriT_vr9 0.0)))
-(anchor :step t129)
-(assume t129.h1 @p_321)
-(step t129.t2 (cl (= @p_323 false)) :rule comp_simplify)
-(step t129.t3 (cl @p_261) :rule minus_simplify)
-(step t129.t4 (cl (= @p_324 (! (ite false 0.0 0.0) :named @p_325))) :rule cong :premises (t129.t2 t129.t3))
-(step t129.t5 (cl (= 0.0 @p_325)) :rule ite_simplify)
-(step t129.t6 (cl (= 0.0 @p_324)) :rule trans :premises (t129.t4 t129.t5))
-(step t129.t7 (cl (= @p_326 (! (- @p_3 0.0) :named @p_327))) :rule cong :premises (t129.t6))
-(step t129.t8 (cl (= @p_3 @p_327)) :rule minus_simplify)
-(step t129.t9 (cl (= @p_3 @p_326)) :rule trans :premises (t129.t7 t129.t8))
-(step t129.t10 (cl (! (= @p_321 (! (= @p_3 @p_322) :named @p_328)) :named @p_329)) :rule cong :premises (t129.t9))
-(step t129.t11 (cl (not @p_329) (! (not @p_321) :named @p_330) @p_328) :rule equiv_pos2)
-(step t129.t12 (cl @p_328) :rule th_resolution :premises (t129.h1 t129.t10 t129.t11))
-(step t129 (cl @p_330 @p_328) :rule subproof :discharge (h1))
-(step t130 (cl @p_290 @p_321) :rule or :premises (t128))
-(step t131 (cl (! (or @p_290 @p_328) :named @p_331) @p_303) :rule or_neg)
-(step t132 (cl @p_331 @p_84) :rule th_resolution :premises (t106 t131))
-(step t133 (cl @p_331 (! (not @p_328) :named @p_574)) :rule or_neg)
-(step t134 (cl @p_331) :rule th_resolution :premises (t130 t129 t132 t133))
-(step t135 (cl (or (! (not @p_60) :named @p_332) (! (= (! (fun_app$ uub$ @p_36) :named @p_525) (! (pair$ @p_2 (! (times$ (- (* 2.0 @p_36) 1.0) @p_36) :named @p_509)) :named @p_508)) :named @p_403))) :rule forall_inst :args ((:= veriT_vr7 @p_36)))
-(step t136 (cl (or @p_332 (! (= (! (fun_app$ uub$ @p_7) :named @p_533) (! (pair$ @p_2 (! (times$ (- (* 2.0 @p_7) 1.0) @p_36) :named @p_505)) :named @p_504)) :named @p_404))) :rule forall_inst :args ((:= veriT_vr7 @p_7)))
-(step t137 (cl (not (! (not @p_332) :named @p_344)) @p_60) :rule not_not)
-(step t138 (cl (or @p_332 (! (= (! (fun_app$ uub$ 0.0) :named @p_334) (! (pair$ @p_2 (! (times$ (! (- (! (* 2.0 0.0) :named @p_335) 1.0) :named @p_336) @p_36) :named @p_338)) :named @p_339)) :named @p_333))) :rule forall_inst :args ((:= veriT_vr7 0.0)))
-(anchor :step t139)
-(assume t139.h1 @p_333)
-(step t139.t2 (cl (= 0.0 @p_335)) :rule prod_simplify)
-(step t139.t3 (cl (= @p_336 (! (- 0.0 1.0) :named @p_337))) :rule cong :premises (t139.t2))
-(step t139.t4 (cl (= (- 1.0) @p_337)) :rule minus_simplify)
-(step t139.t5 (cl (= (- 1.0) @p_336)) :rule trans :premises (t139.t3 t139.t4))
-(step t139.t6 (cl (= @p_252 @p_338)) :rule cong :premises (t139.t5))
-(step t139.t7 (cl (= @p_339 (! (pair$ @p_2 @p_252) :named @p_340))) :rule cong :premises (t139.t6))
-(step t139.t8 (cl (! (= @p_333 (! (= @p_334 @p_340) :named @p_341)) :named @p_342)) :rule cong :premises (t139.t7))
-(step t139.t9 (cl (not @p_342) (! (not @p_333) :named @p_343) @p_341) :rule equiv_pos2)
-(step t139.t10 (cl @p_341) :rule th_resolution :premises (t139.h1 t139.t8 t139.t9))
-(step t139 (cl @p_343 @p_341) :rule subproof :discharge (h1))
-(step t140 (cl @p_332 @p_333) :rule or :premises (t138))
-(step t141 (cl (! (or @p_332 @p_341) :named @p_345) @p_344) :rule or_neg)
-(step t142 (cl @p_345 @p_60) :rule th_resolution :premises (t137 t141))
-(step t143 (cl @p_345 (! (not @p_341) :named @p_544)) :rule or_neg)
-(step t144 (cl @p_345) :rule th_resolution :premises (t140 t139 t142 t143))
-(step t145 (cl (or @p_332 (! (= (! (fun_app$ uub$ 1.0) :named @p_347) (! (pair$ @p_2 (! (times$ (! (- (! (* 2.0 1.0) :named @p_349) 1.0) :named @p_350) @p_36) :named @p_352)) :named @p_353)) :named @p_346))) :rule forall_inst :args ((:= veriT_vr7 1.0)))
-(anchor :step t146)
-(assume t146.h1 @p_346)
-(step t146.t2 (cl (= 2.0 @p_349)) :rule prod_simplify)
-(step t146.t3 (cl (= @p_350 (! (- 2.0 1.0) :named @p_351))) :rule cong :premises (t146.t2))
-(step t146.t4 (cl (= 1.0 @p_351)) :rule minus_simplify)
-(step t146.t5 (cl (= 1.0 @p_350)) :rule trans :premises (t146.t3 t146.t4))
-(step t146.t6 (cl (= @p_348 @p_352)) :rule cong :premises (t146.t5))
-(step t146.t7 (cl (= @p_353 (! (pair$ @p_2 @p_348) :named @p_354))) :rule cong :premises (t146.t6))
-(step t146.t8 (cl (! (= @p_346 (! (= @p_347 @p_354) :named @p_355)) :named @p_356)) :rule cong :premises (t146.t7))
-(step t146.t9 (cl (not @p_356) (! (not @p_346) :named @p_357) @p_355) :rule equiv_pos2)
-(step t146.t10 (cl @p_355) :rule th_resolution :premises (t146.h1 t146.t8 t146.t9))
-(step t146 (cl @p_357 @p_355) :rule subproof :discharge (h1))
-(step t147 (cl @p_332 @p_346) :rule or :premises (t145))
-(step t148 (cl (! (or @p_332 @p_355) :named @p_358) @p_344) :rule or_neg)
-(step t149 (cl @p_358 @p_60) :rule th_resolution :premises (t137 t148))
-(step t150 (cl @p_358 (! (not @p_355) :named @p_538)) :rule or_neg)
-(step t151 (cl @p_358) :rule th_resolution :premises (t147 t146 t149 t150))
-(step t152 (cl (or (! (not @p_34) :named @p_360) (! (= (! (fun_app$ uuc$ @p_36) :named @p_526) (! (pair$ (! (times$ (! (- @p_36 @p_7) :named @p_424) d$) :named @p_359) (! (diamond_y$ @p_359) :named @p_496)) :named @p_495)) :named @p_405))) :rule forall_inst :args ((:= veriT_vr1 @p_36)))
-(step t153 (cl (or @p_360 (! (= (! (fun_app$ uuc$ @p_7) :named @p_363) (! (pair$ (! (times$ (! (- @p_7 @p_7) :named @p_364) d$) :named @p_361) (! (diamond_y$ @p_361) :named @p_365)) :named @p_367)) :named @p_362))) :rule forall_inst :args ((:= veriT_vr1 @p_7)))
-(anchor :step t154)
-(assume t154.h1 @p_362)
-(step t154.t2 (cl (= 0.0 @p_364)) :rule minus_simplify)
-(step t154.t3 (cl (= @p_239 @p_361)) :rule cong :premises (t154.t2))
-(step t154.t4 (cl (= @p_365 (! (diamond_y$ @p_239) :named @p_366))) :rule cong :premises (t154.t3))
-(step t154.t5 (cl (= @p_367 (! (pair$ @p_239 @p_366) :named @p_368))) :rule cong :premises (t154.t3 t154.t4))
-(step t154.t6 (cl (! (= @p_362 (! (= @p_363 @p_368) :named @p_369)) :named @p_370)) :rule cong :premises (t154.t5))
-(step t154.t7 (cl (not @p_370) (! (not @p_362) :named @p_371) @p_369) :rule equiv_pos2)
-(step t154.t8 (cl @p_369) :rule th_resolution :premises (t154.h1 t154.t6 t154.t7))
-(step t154 (cl @p_371 @p_369) :rule subproof :discharge (h1))
-(step t155 (cl @p_360 @p_362) :rule or :premises (t153))
-(step t156 (cl (! (or @p_360 @p_369) :named @p_373) (! (not @p_360) :named @p_372)) :rule or_neg)
-(step t157 (cl (not @p_372) @p_34) :rule not_not)
-(step t158 (cl @p_373 @p_34) :rule th_resolution :premises (t157 t156))
-(step t159 (cl @p_373 (! (not @p_369) :named @p_534)) :rule or_neg)
-(step t160 (cl @p_373) :rule th_resolution :premises (t155 t154 t158 t159))
-(step t161 (cl (or @p_360 (! (= (! (fun_app$ uuc$ 0.0) :named @p_376) (! (pair$ (! (times$ (! (- 0.0 @p_7) :named @p_379) d$) :named @p_374) (! (diamond_y$ @p_374) :named @p_380)) :named @p_382)) :named @p_375))) :rule forall_inst :args ((:= veriT_vr1 0.0)))
-(anchor :step t162)
-(assume t162.h1 @p_375)
-(step t162.t2 (cl (= (! (- @p_7) :named @p_378) @p_379)) :rule minus_simplify)
-(step t162.t3 (cl (= (! (times$ @p_378 d$) :named @p_377) @p_374)) :rule cong :premises (t162.t2))
-(step t162.t4 (cl (= @p_380 (! (diamond_y$ @p_377) :named @p_381))) :rule cong :premises (t162.t3))
-(step t162.t5 (cl (= @p_382 (! (pair$ @p_377 @p_381) :named @p_383))) :rule cong :premises (t162.t3 t162.t4))
-(step t162.t6 (cl (! (= @p_375 (! (= @p_376 @p_383) :named @p_384)) :named @p_385)) :rule cong :premises (t162.t5))
-(step t162.t7 (cl (not @p_385) (! (not @p_375) :named @p_386) @p_384) :rule equiv_pos2)
-(step t162.t8 (cl @p_384) :rule th_resolution :premises (t162.h1 t162.t6 t162.t7))
-(step t162 (cl @p_386 @p_384) :rule subproof :discharge (h1))
-(step t163 (cl @p_360 @p_375) :rule or :premises (t161))
-(step t164 (cl (! (or @p_360 @p_384) :named @p_387) @p_372) :rule or_neg)
-(step t165 (cl @p_387 @p_34) :rule th_resolution :premises (t157 t164))
-(step t166 (cl @p_387 (! (not @p_384) :named @p_545)) :rule or_neg)
-(step t167 (cl @p_387) :rule th_resolution :premises (t163 t162 t165 t166))
-(step t168 (cl (or @p_360 (! (= (! (fun_app$ uuc$ 1.0) :named @p_539) (! (pair$ (! (times$ (- 1.0 @p_7) d$) :named @p_388) (! (diamond_y$ @p_388) :named @p_490)) :named @p_489)) :named @p_406))) :rule forall_inst :args ((:= veriT_vr1 1.0)))
-(step t169 (cl @p_236 @p_389) :rule or :premises (t73))
-(step t170 (cl @p_389) :rule resolution :premises (t169 t48))
-(step t171 (cl @p_236 @p_390) :rule or :premises (t74))
-(step t172 (cl @p_390) :rule resolution :premises (t171 t48))
-(step t173 (cl @p_236 @p_243) :rule or :premises (t82))
-(step t174 (cl @p_243) :rule resolution :premises (t173 t48))
-(step t175 (cl @p_236 @p_253) :rule or :premises (t89))
-(step t176 (cl @p_253) :rule resolution :premises (t175 t48))
-(step t177 (cl @p_257 @p_263) :rule or :premises (t97))
-(step t178 (cl @p_263) :rule resolution :premises (t177 t42))
-(step t179 (cl @p_391 @p_271 (not @p_269)) :rule equiv_pos1)
-(step t180 (cl @p_268 @p_285) :rule or :premises (t105))
-(step t181 (cl @p_391 @p_271) :rule resolution :premises (t179 a4))
-(step t182 (cl @p_285) :rule resolution :premises (t180 t36))
-(step t183 (cl @p_271) :rule resolution :premises (t181 t182))
-(step t184 (cl @p_392 @p_393) :rule and_pos)
-(step t185 (cl (not @p_394) (! (not @p_292) :named @p_410) @p_395) :rule ite_pos2)
-(step t186 (cl @p_392 @p_394) :rule and_pos)
-(step t187 (cl @p_290 @p_301) :rule or :premises (t113))
-(step t188 (cl @p_301) :rule resolution :premises (t187 t27))
-(step t189 (cl @p_393) :rule resolution :premises (t184 t188))
-(step t190 (cl @p_394) :rule resolution :premises (t186 t188))
-(step t191 (cl (not @p_396) @p_308 @p_397) :rule ite_pos1)
-(step t192 (cl @p_398 @p_396) :rule and_pos)
-(step t193 (cl @p_290 @p_310) :rule or :premises (t120))
-(step t194 (cl @p_310) :rule resolution :premises (t193 t27))
-(step t195 (cl @p_396) :rule resolution :premises (t192 t194))
-(step t196 (cl @p_399 @p_400) :rule and_pos)
-(step t197 (cl (not @p_401) @p_316 @p_402) :rule ite_pos1)
-(step t198 (cl @p_399 @p_401) :rule and_pos)
-(step t199 (cl @p_290 @p_317) :rule or :premises (t127))
-(step t200 (cl @p_317) :rule resolution :premises (t199 t27))
-(step t201 (cl @p_400) :rule resolution :premises (t196 t200))
-(step t202 (cl @p_401) :rule resolution :premises (t198 t200))
-(step t203 (cl @p_290 @p_328) :rule or :premises (t134))
-(step t204 (cl @p_328) :rule resolution :premises (t203 t27))
-(step t205 (cl @p_332 @p_403) :rule or :premises (t135))
-(step t206 (cl @p_403) :rule resolution :premises (t205 t21))
-(step t207 (cl @p_332 @p_404) :rule or :premises (t136))
-(step t208 (cl @p_404) :rule resolution :premises (t207 t21))
-(step t209 (cl @p_332 @p_341) :rule or :premises (t144))
-(step t210 (cl @p_341) :rule resolution :premises (t209 t21))
-(step t211 (cl @p_332 @p_355) :rule or :premises (t151))
-(step t212 (cl @p_355) :rule resolution :premises (t211 t21))
-(step t213 (cl @p_360 @p_405) :rule or :premises (t152))
-(step t214 (cl @p_405) :rule resolution :premises (t213 t15))
-(step t215 (cl @p_360 @p_369) :rule or :premises (t160))
-(step t216 (cl @p_369) :rule resolution :premises (t215 t15))
-(step t217 (cl @p_360 @p_384) :rule or :premises (t167))
-(step t218 (cl @p_384) :rule resolution :premises (t217 t15))
-(step t219 (cl @p_360 @p_406) :rule or :premises (t168))
-(step t220 (cl @p_406) :rule resolution :premises (t219 t15))
-(step t221 (cl (! (not @p_271) :named @p_409) (! (not @p_316) :named @p_408) @p_407) :rule la_generic :args (2.0 2.0 1))
-(step t222 (cl @p_408) :rule resolution :premises (t221 t178 t183))
-(step t223 (cl @p_402) :rule resolution :premises (t197 t222 t202))
-(step t224 (cl @p_409 @p_292 @p_407) :rule la_generic :args (2.0 2.0 1))
-(step t225 (cl @p_292) :rule resolution :premises (t224 t178 t183))
-(step t226 (cl @p_395) :rule resolution :premises (t185 t225 t190))
-(step t227 (cl (! (not (! (= @p_3 @p_2) :named @p_414)) :named @p_412) (! (not (! (= 0.0 0.0) :named @p_411)) :named @p_461) @p_410 @p_316) :rule eq_congruent_pred)
-(step t228 (cl @p_411) :rule eq_reflexive)
-(step t229 (cl @p_412 @p_410 @p_316) :rule th_resolution :premises (t227 t228))
-(step t230 (cl (! (not @p_395) :named @p_415) (! (not @p_413) :named @p_416) @p_414) :rule eq_transitive)
-(step t231 (cl @p_410 @p_316 @p_415 @p_416) :rule th_resolution :premises (t229 t230))
-(step t232 (cl @p_416) :rule resolution :premises (t231 t225 t226 t222))
-(step t233 (cl (! (not (! (= @p_3 @p_3) :named @p_423)) :named @p_420) (not (! (= @p_293 @p_315) :named @p_419)) (! (= @p_417 @p_418) :named @p_421)) :rule eq_congruent)
-(step t234 (cl @p_415 (! (not @p_402) :named @p_422) @p_419) :rule eq_transitive)
-(step t235 (cl @p_420 @p_421 @p_415 @p_422) :rule th_resolution :premises (t233 t234))
-(step t236 (cl @p_423) :rule eq_reflexive)
-(step t237 (cl @p_421 @p_415 @p_422) :rule th_resolution :premises (t235 t236))
-(step t238 (cl (not (! (= @p_378 @p_424) :named @p_437)) (! (not (! (= d$ d$) :named @p_425)) :named @p_479) (! (= @p_377 @p_359) :named @p_547)) :rule eq_congruent)
-(step t239 (cl @p_425) :rule eq_reflexive)
-(step t240 (cl (or (! (= @p_36 @p_426) :named @p_427) (! (not (! (<= @p_36 @p_426) :named @p_464)) :named @p_428) (! (not (! (<= @p_426 @p_36) :named @p_444)) :named @p_429))) :rule la_disequality)
-(step t241 (cl @p_427 @p_428 @p_429) :rule or :premises (t240))
-(step t242 (cl (or (! (= @p_378 (! (- @p_235 @p_7) :named @p_430)) :named @p_431) (! (not (! (<= @p_378 @p_430) :named @p_435)) :named @p_432) (! (not (! (<= @p_430 @p_378) :named @p_434)) :named @p_433))) :rule la_disequality)
-(step t243 (cl @p_431 @p_432 @p_433) :rule or :premises (t242))
-(step t244 (cl @p_434 (! (not @p_400) :named @p_436) @p_422) :rule la_generic :args (1.0 (- 1) (- 1)))
-(step t245 (cl @p_434) :rule resolution :premises (t244 t201 t223))
-(step t246 (cl @p_435 @p_436 @p_422) :rule la_generic :args (1.0 1 1))
-(step t247 (cl @p_435) :rule resolution :premises (t246 t201 t223))
-(step t248 (cl @p_431) :rule resolution :premises (t243 t247 t245))
-(step t249 (cl (! (not @p_431) :named @p_443) (not (! (= @p_424 @p_430) :named @p_438)) @p_437) :rule eq_transitive)
-(step t250 (cl (! (not (! (= @p_235 @p_36) :named @p_439)) :named @p_455) (! (not (! (= @p_7 @p_7) :named @p_442)) :named @p_441) @p_438) :rule eq_congruent)
-(step t251 (cl @p_436 (! (not @p_421) :named @p_449) (! (not @p_393) :named @p_440) @p_439) :rule eq_transitive)
-(step t252 (cl @p_436 @p_440 @p_439 @p_415 @p_422) :rule th_resolution :premises (t251 t237))
-(step t253 (cl @p_441 @p_438 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t250 t252))
-(step t254 (cl @p_442) :rule eq_reflexive)
-(step t255 (cl @p_438 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t253 t254))
-(step t256 (cl @p_443 @p_437 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t249 t255))
-(step t257 (cl @p_444 @p_440 @p_415 (! (not (! (= @p_445 @p_426) :named @p_447)) :named @p_465)) :rule la_generic :args (2.0 2 2 1))
-(step t258 (cl (not (! (= @p_446 @p_445) :named @p_448)) (! (not @p_389) :named @p_459) @p_447) :rule eq_transitive)
-(step t259 (cl (not (! (= @p_36 @p_237) :named @p_451)) (! (not (! (= @p_235 @p_235) :named @p_458)) :named @p_457) @p_448) :rule eq_congruent)
-(step t260 (cl @p_440 @p_449 @p_436 (! (not @p_397) :named @p_452) (! (not @p_450) :named @p_453) (! (not (! (= @p_237 @p_309) :named @p_456)) :named @p_454) @p_451) :rule eq_transitive)
-(step t261 (cl @p_440 @p_436 @p_452 @p_453 @p_454 @p_451 @p_415 @p_422) :rule th_resolution :premises (t260 t237))
-(step t262 (cl @p_455 @p_456) :rule eq_congruent)
-(step t263 (cl @p_456 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t262 t252))
-(step t264 (cl @p_440 @p_436 @p_452 @p_453 @p_451 @p_415 @p_422 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t261 t263))
-(step t265 (cl @p_440 @p_436 @p_452 @p_453 @p_451 @p_415 @p_422) :rule contraction :premises (t264))
-(step t266 (cl @p_457 @p_448 @p_440 @p_436 @p_452 @p_453 @p_415 @p_422) :rule th_resolution :premises (t259 t265))
-(step t267 (cl @p_458) :rule eq_reflexive)
-(step t268 (cl @p_448 @p_440 @p_436 @p_452 @p_453 @p_415 @p_422) :rule th_resolution :premises (t266 t267))
-(step t269 (cl @p_459 @p_447 @p_440 @p_436 @p_452 @p_453 @p_415 @p_422) :rule th_resolution :premises (t258 t268))
-(step t270 (cl @p_444 @p_440 @p_415 @p_459 @p_436 @p_452 @p_453 @p_422) :rule th_resolution :premises (t257 t269))
-(step t271 (cl @p_444 @p_452 @p_453) :rule resolution :premises (t270 t170 t189 t226 t201 t223))
-(step t272 (cl (! (not (! (< @p_36 0.0) :named @p_462)) :named @p_460) @p_440 @p_415) :rule la_generic :args (1.0 1 1))
-(step t273 (cl @p_460) :rule resolution :premises (t272 t189 t226))
-(step t274 (cl @p_455 @p_461 (! (not @p_308) :named @p_463) @p_462) :rule eq_congruent_pred)
-(step t275 (cl @p_455 @p_463 @p_462) :rule th_resolution :premises (t274 t228))
-(step t276 (cl @p_463 @p_462 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t275 t252))
-(step t277 (cl @p_463) :rule resolution :premises (t276 t273 t189 t226 t201 t223))
-(step t278 (cl @p_397) :rule resolution :premises (t191 t277 t195))
-(step t279 (cl @p_464 @p_440 @p_415 @p_465) :rule la_generic :args (2.0 (- 2) (- 2) (- 1)))
-(step t280 (cl @p_464 @p_440 @p_415 @p_459 @p_436 @p_452 @p_453 @p_422) :rule th_resolution :premises (t279 t269))
-(step t281 (cl @p_464 @p_453) :rule resolution :premises (t280 t170 t189 t226 t278 t201 t223))
-(step t282 (cl (or (! (= 0.0 @p_426) :named @p_466) (! (not (! (<= 0.0 @p_426) :named @p_470)) :named @p_467) (! (not (! (<= @p_426 0.0) :named @p_469)) :named @p_468))) :rule la_disequality)
-(step t283 (cl @p_466 @p_467 @p_468) :rule or :premises (t282))
-(step t284 (cl @p_429 @p_469 @p_440 @p_415) :rule la_generic :args (1.0 1.0 (- 1) (- 1)))
-(step t285 (cl @p_429 @p_469) :rule resolution :premises (t284 t189 t226))
-(step t286 (cl @p_428 @p_470 @p_440 @p_415) :rule la_generic :args (1.0 1.0 1 1))
-(step t287 (cl @p_428 @p_470) :rule resolution :premises (t286 t189 t226))
-(step t288 (cl (or (! (= @p_426 @p_471) :named @p_472) (! (not (! (<= @p_426 @p_471) :named @p_486)) :named @p_473) (! (not (! (<= @p_471 @p_426) :named @p_475)) :named @p_474))) :rule la_disequality)
-(step t289 (cl @p_472 @p_473 @p_474) :rule or :premises (t288))
-(step t290 (cl @p_428 @p_475 @p_440 @p_415 (! (not (! (= @p_471 @p_239) :named @p_478)) :named @p_487) @p_476) :rule la_generic :args (2.0 2.0 2 2 (- 2) (- 1)))
-(step t291 (cl (! (not @p_390) :named @p_485) (! (not (! (= @p_477 @p_239) :named @p_480)) :named @p_567) @p_478) :rule eq_transitive)
-(step t292 (cl (! (not (! (= 0.0 @p_237) :named @p_482)) :named @p_481) @p_479 @p_480) :rule eq_congruent)
-(step t293 (cl @p_481 @p_480) :rule th_resolution :premises (t292 t239))
-(step t294 (cl (! (not @p_466) :named @p_483) (! (not @p_427) :named @p_484) @p_440 @p_449 @p_436 @p_452 @p_453 @p_454 @p_482) :rule eq_transitive)
-(step t295 (cl @p_483 @p_484 @p_440 @p_436 @p_452 @p_453 @p_454 @p_482 @p_415 @p_422) :rule th_resolution :premises (t294 t237))
-(step t296 (cl @p_483 @p_484 @p_440 @p_436 @p_452 @p_453 @p_482 @p_415 @p_422 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t295 t263))
-(step t297 (cl @p_483 @p_484 @p_440 @p_436 @p_452 @p_453 @p_482 @p_415 @p_422) :rule contraction :premises (t296))
-(step t298 (cl @p_480 @p_483 @p_484 @p_440 @p_436 @p_452 @p_453 @p_415 @p_422) :rule th_resolution :premises (t293 t297))
-(step t299 (cl @p_485 @p_478 @p_483 @p_484 @p_440 @p_436 @p_452 @p_453 @p_415 @p_422) :rule th_resolution :premises (t291 t298))
-(step t300 (cl @p_428 @p_475 @p_440 @p_415 @p_476 @p_485 @p_483 @p_484 @p_436 @p_452 @p_453 @p_422) :rule th_resolution :premises (t290 t299))
-(step t301 (cl @p_428 @p_475 @p_483 @p_484 @p_453) :rule resolution :premises (t300 t172 t174 t189 t226 t278 t201 t223))
-(step t302 (cl @p_429 @p_486 @p_440 @p_415 @p_487 @p_476) :rule la_generic :args (2.0 2.0 (- 2) (- 2) 2 1))
-(step t303 (cl @p_429 @p_486 @p_440 @p_415 @p_476 @p_485 @p_483 @p_484 @p_436 @p_452 @p_453 @p_422) :rule th_resolution :premises (t302 t299))
-(step t304 (cl @p_429 @p_486 @p_483 @p_484 @p_453) :rule resolution :premises (t303 t172 t174 t189 t226 t278 t201 t223))
-(step t305 (cl @p_233 @p_488) :rule or :premises (t71))
-(step t306 (cl (or (! (not @p_488) :named @p_491) (! (or (! (not (! (= @p_354 @p_489) :named @p_540)) :named @p_500) (! (= @p_348 @p_490) :named @p_513)) :named @p_492))) :rule forall_inst :args ((:= veriT_vr28 @p_388) (:= veriT_vr29 @p_490) (:= veriT_vr30 @p_2) (:= veriT_vr31 @p_348)))
-(step t307 (cl @p_491 @p_492) :rule or :premises (t306))
-(step t308 (cl (! (or @p_233 @p_492) :named @p_494) @p_493) :rule or_neg)
-(step t309 (cl @p_494 @p_218) :rule th_resolution :premises (t72 t308))
-(step t310 (cl @p_494 (! (not @p_492) :named @p_512)) :rule or_neg)
-(step t311 (cl @p_494) :rule th_resolution :premises (t305 t307 t309 t310))
-(step t312 (cl (or @p_491 (! (or (! (not (! (= @p_340 @p_495) :named @p_546)) :named @p_515) (! (= @p_252 @p_496) :named @p_516)) :named @p_497))) :rule forall_inst :args ((:= veriT_vr28 @p_2) (:= veriT_vr29 @p_252) (:= veriT_vr30 @p_359) (:= veriT_vr31 @p_496)))
-(step t313 (cl @p_491 @p_497) :rule or :premises (t312))
-(step t314 (cl (! (or @p_233 @p_497) :named @p_498) @p_493) :rule or_neg)
-(step t315 (cl @p_498 @p_218) :rule th_resolution :premises (t72 t314))
-(step t316 (cl @p_498 (! (not @p_497) :named @p_514)) :rule or_neg)
-(step t317 (cl @p_498) :rule th_resolution :premises (t305 t313 t315 t316))
-(step t318 (cl @p_233 @p_499) :rule or :premises (t70))
-(step t319 (cl (or (! (not @p_499) :named @p_501) (! (or @p_500 (! (= @p_2 @p_388) :named @p_518)) :named @p_502))) :rule forall_inst :args ((:= veriT_vr28 @p_388) (:= veriT_vr29 @p_490) (:= veriT_vr30 @p_2) (:= veriT_vr31 @p_348)))
-(step t320 (cl @p_501 @p_502) :rule or :premises (t319))
-(step t321 (cl (! (or @p_233 @p_502) :named @p_503) @p_493) :rule or_neg)
-(step t322 (cl @p_503 @p_218) :rule th_resolution :premises (t72 t321))
-(step t323 (cl @p_503 (! (not @p_502) :named @p_517)) :rule or_neg)
-(step t324 (cl @p_503) :rule th_resolution :premises (t318 t320 t322 t323))
-(step t325 (cl (or @p_501 (! (or (! (not (! (= @p_504 @p_368) :named @p_535)) :named @p_520) (! (= @p_2 @p_239) :named @p_521)) :named @p_506))) :rule forall_inst :args ((:= veriT_vr28 @p_2) (:= veriT_vr29 @p_505) (:= veriT_vr30 @p_239) (:= veriT_vr31 @p_366)))
-(step t326 (cl @p_501 @p_506) :rule or :premises (t325))
-(step t327 (cl (! (or @p_233 @p_506) :named @p_507) @p_493) :rule or_neg)
-(step t328 (cl @p_507 @p_218) :rule th_resolution :premises (t72 t327))
-(step t329 (cl @p_507 (! (not @p_506) :named @p_519)) :rule or_neg)
-(step t330 (cl @p_507) :rule th_resolution :premises (t318 t326 t328 t329))
-(step t331 (cl (or @p_501 (! (or (! (not (! (= @p_508 @p_495) :named @p_527)) :named @p_523) (! (= @p_2 @p_359) :named @p_524)) :named @p_510))) :rule forall_inst :args ((:= veriT_vr28 @p_2) (:= veriT_vr29 @p_509) (:= veriT_vr30 @p_359) (:= veriT_vr31 @p_496)))
-(step t332 (cl @p_501 @p_510) :rule or :premises (t331))
-(step t333 (cl (! (or @p_233 @p_510) :named @p_511) @p_493) :rule or_neg)
-(step t334 (cl @p_511 @p_218) :rule th_resolution :premises (t72 t333))
-(step t335 (cl @p_511 (! (not @p_510) :named @p_522)) :rule or_neg)
-(step t336 (cl @p_511) :rule th_resolution :premises (t318 t332 t334 t335))
-(step t337 (cl @p_512 @p_500 @p_513) :rule or_pos)
-(step t338 (cl @p_233 @p_492) :rule or :premises (t311))
-(step t339 (cl @p_492) :rule resolution :premises (t338 t54))
-(step t340 (cl @p_514 @p_515 @p_516) :rule or_pos)
-(step t341 (cl @p_233 @p_497) :rule or :premises (t317))
-(step t342 (cl @p_497) :rule resolution :premises (t341 t54))
-(step t343 (cl @p_517 @p_500 @p_518) :rule or_pos)
-(step t344 (cl @p_233 @p_502) :rule or :premises (t324))
-(step t345 (cl @p_502) :rule resolution :premises (t344 t54))
-(step t346 (cl @p_519 @p_520 @p_521) :rule or_pos)
-(step t347 (cl @p_233 @p_506) :rule or :premises (t330))
-(step t348 (cl @p_506) :rule resolution :premises (t347 t54))
-(step t349 (cl @p_522 @p_523 @p_524) :rule or_pos)
-(step t350 (cl @p_233 @p_510) :rule or :premises (t336))
-(step t351 (cl @p_510) :rule resolution :premises (t350 t54))
-(step t352 (cl (! (not @p_403) :named @p_531) (not (! (= @p_525 @p_526) :named @p_528)) (! (not @p_405) :named @p_532) @p_527) :rule eq_transitive)
-(step t353 (cl (! (not @p_227) :named @p_530) (not (! (= @p_36 @p_36) :named @p_529)) @p_528) :rule eq_congruent)
-(step t354 (cl @p_529) :rule eq_reflexive)
-(step t355 (cl @p_530 @p_528) :rule th_resolution :premises (t353 t354))
-(step t356 (cl @p_531 @p_532 @p_527 @p_530) :rule th_resolution :premises (t352 t355))
-(step t357 (cl @p_527) :rule resolution :premises (t356 t69 t206 t214))
-(step t358 (cl (! (not @p_404) :named @p_537) (not (! (= @p_533 @p_363) :named @p_536)) @p_534 @p_535) :rule eq_transitive)
-(step t359 (cl @p_530 @p_441 @p_536) :rule eq_congruent)
-(step t360 (cl @p_530 @p_536) :rule th_resolution :premises (t359 t254))
-(step t361 (cl @p_537 @p_534 @p_535 @p_530) :rule th_resolution :premises (t358 t360))
-(step t362 (cl @p_535) :rule resolution :premises (t361 t69 t208 t216))
-(step t363 (cl @p_538 (not (! (= @p_347 @p_539) :named @p_541)) (! (not @p_406) :named @p_543) @p_540) :rule eq_transitive)
-(step t364 (cl @p_530 (not (! (= 1.0 1.0) :named @p_542)) @p_541) :rule eq_congruent)
-(step t365 (cl @p_542) :rule eq_reflexive)
-(step t366 (cl @p_530 @p_541) :rule th_resolution :premises (t364 t365))
-(step t367 (cl @p_538 @p_543 @p_540 @p_530) :rule th_resolution :premises (t363 t366))
-(step t368 (cl @p_540) :rule resolution :premises (t367 t69 t212 t220))
-(step t369 (cl @p_544 (! (not (! (= @p_334 @p_376) :named @p_553)) :named @p_552) @p_545 (not (! (= @p_495 @p_383) :named @p_548)) @p_546) :rule eq_transitive)
-(step t370 (cl (! (not @p_547) :named @p_550) (! (not (! (= @p_496 @p_381) :named @p_551)) :named @p_549) @p_548) :rule eq_congruent)
-(step t371 (cl @p_479 @p_547 @p_443 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t238 t256))
-(step t372 (cl @p_547 @p_443 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t371 t239))
-(step t373 (cl @p_549 @p_548 @p_443 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t370 t372))
-(step t374 (cl @p_550 @p_551) :rule eq_congruent)
-(step t375 (cl @p_551 @p_443 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t374 t372))
-(step t376 (cl @p_548 @p_443 @p_436 @p_440 @p_415 @p_422 @p_443 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t373 t375))
-(step t377 (cl @p_548 @p_443 @p_436 @p_440 @p_415 @p_422) :rule contraction :premises (t376))
-(step t378 (cl @p_544 @p_552 @p_545 @p_546 @p_443 @p_436 @p_440 @p_415 @p_422) :rule th_resolution :premises (t369 t377))
-(step t379 (cl @p_530 @p_461 @p_553) :rule eq_congruent)
-(step t380 (cl @p_530 @p_553) :rule th_resolution :premises (t379 t228))
-(step t381 (cl @p_544 @p_545 @p_546 @p_443 @p_436 @p_440 @p_415 @p_422 @p_530) :rule th_resolution :premises (t378 t380))
-(step t382 (cl @p_546) :rule resolution :premises (t381 t189 t226 t201 t69 t210 t218 t248 t223))
-(step t383 (cl @p_524) :rule resolution :premises (t349 t357 t351))
-(step t384 (cl @p_521) :rule resolution :premises (t346 t362 t348))
-(step t385 (cl @p_513) :rule resolution :premises (t337 t368 t339))
-(step t386 (cl @p_518) :rule resolution :premises (t343 t368 t345))
-(step t387 (cl @p_516) :rule resolution :premises (t340 t382 t342))
-(step t388 (cl (! (not (! (= @p_309 @p_249) :named @p_559)) :named @p_556) @p_554 (! (not @p_516) :named @p_557) (! (not (! (= @p_36 @p_496) :named @p_555)) :named @p_569) @p_440 @p_449 @p_436 @p_452 @p_450) :rule eq_transitive)
-(step t389 (cl (! (not @p_524) :named @p_558) @p_555) :rule eq_congruent)
-(step t390 (cl @p_556 @p_554 @p_557 @p_440 @p_449 @p_436 @p_452 @p_450 @p_558) :rule th_resolution :premises (t388 t389))
-(step t391 (cl @p_556 @p_554 @p_557 @p_440 @p_436 @p_452 @p_450 @p_558 @p_415 @p_422) :rule th_resolution :premises (t390 t237))
-(step t392 (cl (not (! (= @p_235 @p_348) :named @p_560)) @p_559) :rule eq_congruent)
-(step t393 (cl @p_436 @p_449 @p_440 (! (not (! (= @p_36 @p_490) :named @p_561)) :named @p_564) (! (not @p_513) :named @p_562) @p_560) :rule eq_transitive)
-(step t394 (cl (! (not @p_518) :named @p_563) @p_561) :rule eq_congruent)
-(step t395 (cl @p_436 @p_449 @p_440 @p_562 @p_560 @p_563) :rule th_resolution :premises (t393 t394))
-(step t396 (cl @p_436 @p_440 @p_562 @p_560 @p_563 @p_415 @p_422) :rule th_resolution :premises (t395 t237))
-(step t397 (cl @p_559 @p_436 @p_440 @p_562 @p_563 @p_415 @p_422) :rule th_resolution :premises (t392 t396))
-(step t398 (cl @p_554 @p_557 @p_440 @p_436 @p_452 @p_450 @p_558 @p_415 @p_422 @p_436 @p_440 @p_562 @p_563 @p_415 @p_422) :rule th_resolution :premises (t391 t397))
-(step t399 (cl @p_554 @p_557 @p_440 @p_436 @p_452 @p_450 @p_558 @p_415 @p_422 @p_562 @p_563) :rule contraction :premises (t398))
-(step t400 (cl @p_450) :rule resolution :premises (t399 t189 t226 t278 t201 t223 t385 t387 t386 t176 t383))
-(step t401 (cl (not (! (= @p_36 @p_348) :named @p_565)) (! (= @p_237 @p_249) :named @p_566)) :rule eq_congruent)
-(step t402 (cl @p_564 @p_562 @p_565) :rule eq_transitive)
-(step t403 (cl @p_562 @p_565 @p_563) :rule th_resolution :premises (t402 t394))
-(step t404 (cl @p_566 @p_562 @p_563) :rule th_resolution :premises (t401 t403))
-(step t405 (cl @p_444) :rule resolution :premises (t271 t400 t278))
-(step t406 (cl @p_464) :rule resolution :premises (t281 t400))
-(step t407 (cl @p_469) :rule resolution :premises (t285 t405))
-(step t408 (cl @p_427) :rule resolution :premises (t241 t406 t405))
-(step t409 (cl @p_470) :rule resolution :premises (t287 t406))
-(step t410 (cl @p_466) :rule resolution :premises (t283 t409 t407))
-(step t411 (cl @p_475) :rule resolution :premises (t301 t410 t400 t406 t408))
-(step t412 (cl @p_486) :rule resolution :premises (t304 t410 t400 t405 t408))
-(step t413 (cl @p_472) :rule resolution :premises (t289 t412 t411))
-(step t414 (cl (not (! (= @p_2 0.0) :named @p_568)) (! (= @p_36 @p_322) :named @p_573)) :rule eq_congruent)
-(step t415 (cl (! (not @p_521) :named @p_571) @p_567 @p_485 (! (not @p_472) :named @p_572) @p_483 @p_568) :rule eq_transitive)
-(step t416 (cl @p_483 @p_484 @p_569 @p_557 @p_554 (! (not @p_566) :named @p_570) @p_482) :rule eq_transitive)
-(step t417 (cl @p_483 @p_484 @p_557 @p_554 @p_570 @p_482 @p_558) :rule th_resolution :premises (t416 t389))
-(step t418 (cl @p_483 @p_484 @p_557 @p_554 @p_482 @p_558 @p_562 @p_563) :rule th_resolution :premises (t417 t404))
-(step t419 (cl @p_480 @p_483 @p_484 @p_557 @p_554 @p_558 @p_562 @p_563) :rule th_resolution :premises (t293 t418))
-(step t420 (cl @p_571 @p_485 @p_572 @p_483 @p_568 @p_483 @p_484 @p_557 @p_554 @p_558 @p_562 @p_563) :rule th_resolution :premises (t415 t419))
-(step t421 (cl @p_571 @p_485 @p_572 @p_483 @p_568 @p_484 @p_557 @p_554 @p_558 @p_562 @p_563) :rule contraction :premises (t420))
-(step t422 (cl @p_573 @p_571 @p_485 @p_572 @p_483 @p_484 @p_557 @p_554 @p_558 @p_562 @p_563) :rule th_resolution :premises (t414 t421))
-(step t423 (cl @p_571 @p_567 @p_485 @p_572 @p_484 (not @p_573) @p_574 @p_415 @p_413) :rule eq_transitive)
-(step t424 (cl @p_571 @p_567 @p_485 @p_572 @p_484 @p_574 @p_415 @p_413 @p_571 @p_485 @p_572 @p_483 @p_484 @p_557 @p_554 @p_558 @p_562 @p_563) :rule th_resolution :premises (t423 t422))
-(step t425 (cl @p_571 @p_567 @p_485 @p_572 @p_484 @p_574 @p_415 @p_413 @p_483 @p_557 @p_554 @p_558 @p_562 @p_563) :rule contraction :premises (t424))
-(step t426 (cl @p_571 @p_485 @p_572 @p_484 @p_574 @p_415 @p_413 @p_483 @p_557 @p_554 @p_558 @p_562 @p_563 @p_483 @p_484 @p_557 @p_554 @p_558 @p_562 @p_563) :rule th_resolution :premises (t425 t419))
-(step t427 (cl @p_571 @p_485 @p_572 @p_484 @p_574 @p_415 @p_413 @p_483 @p_557 @p_554 @p_558 @p_562 @p_563) :rule contraction :premises (t426))
-(step t428 (cl) :rule resolution :premises (t427 t172 t176 t232 t226 t204 t408 t410 t413 t385 t387 t386 t384 t383))
-268d7e42d22bc05b4bcc195eddbced079a39fedf 484 0
+(step t70 (cl (or (! (not @p_218) :named @p_233) (! (forall ((veriT_vr28 Real) (veriT_vr29 Real) (veriT_vr30 Real) (veriT_vr31 Real)) (or (not @p_208) @p_211)) :named @p_359))) :rule qnt_cnf)
+(step t71 (cl (not (! (not @p_233) :named @p_364)) @p_218) :rule not_not)
+(step t72 (cl (not (! (not (! (not @p_184) :named @p_234)) :named @p_243)) @p_184) :rule not_not)
+(step t73 (cl (or @p_234 (! (= (! (times$ (! (- 0.0) :named @p_238) d$) :named @p_239) (! (- (! (times$ 0.0 d$) :named @p_236)) :named @p_237)) :named @p_235))) :rule forall_inst :args ((:= veriT_vr22 0.0) (:= veriT_vr23 d$)))
+(anchor :step t74)
+(assume t74.h1 @p_235)
+(step t74.t2 (cl (! (= 0.0 @p_238) :named @p_249)) :rule minus_simplify)
+(step t74.t3 (cl (= @p_239 @p_236)) :rule cong :premises (t74.t2))
+(step t74.t4 (cl (! (= @p_235 (! (= @p_236 @p_237) :named @p_240)) :named @p_241)) :rule cong :premises (t74.t3))
+(step t74.t5 (cl (not @p_241) (! (not @p_235) :named @p_242) @p_240) :rule equiv_pos2)
+(step t74.t6 (cl @p_240) :rule th_resolution :premises (t74.h1 t74.t4 t74.t5))
+(step t74 (cl @p_242 @p_240) :rule subproof :discharge (h1))
+(step t75 (cl @p_234 @p_235) :rule or :premises (t73))
+(step t76 (cl (! (or @p_234 @p_240) :named @p_244) @p_243) :rule or_neg)
+(step t77 (cl @p_244 @p_184) :rule th_resolution :premises (t72 t76))
+(step t78 (cl @p_244 (! (not @p_240) :named @p_350)) :rule or_neg)
+(step t79 (cl @p_244) :rule th_resolution :premises (t75 t74 t77 t78))
+(step t80 (cl (not (! (not (! (not @p_161) :named @p_245)) :named @p_254)) @p_161) :rule not_not)
+(step t81 (cl (or @p_245 (! (= (! (divide$ @p_238 2.0) :named @p_250) (! (- (! (divide$ 0.0 2.0) :named @p_247)) :named @p_248)) :named @p_246))) :rule forall_inst :args ((:= veriT_vr18 0.0) (:= veriT_vr19 2.0)))
+(anchor :step t82)
+(assume t82.h1 @p_246)
+(step t82.t2 (cl @p_249) :rule minus_simplify)
+(step t82.t3 (cl (= @p_250 @p_247)) :rule cong :premises (t82.t2))
+(step t82.t4 (cl (! (= @p_246 (! (= @p_247 @p_248) :named @p_251)) :named @p_252)) :rule cong :premises (t82.t3))
+(step t82.t5 (cl (not @p_252) (! (not @p_246) :named @p_253) @p_251) :rule equiv_pos2)
+(step t82.t6 (cl @p_251) :rule th_resolution :premises (t82.h1 t82.t4 t82.t5))
+(step t82 (cl @p_253 @p_251) :rule subproof :discharge (h1))
+(step t83 (cl @p_245 @p_246) :rule or :premises (t81))
+(step t84 (cl (! (or @p_245 @p_251) :named @p_255) @p_254) :rule or_neg)
+(step t85 (cl @p_255 @p_161) :rule th_resolution :premises (t80 t84))
+(step t86 (cl @p_255 (! (not @p_251) :named @p_336)) :rule or_neg)
+(step t87 (cl @p_255) :rule th_resolution :premises (t83 t82 t85 t86))
+(step t88 (cl (not (! (not (! (not @p_139) :named @p_256)) :named @p_276)) @p_139) :rule not_not)
+(step t89 (cl (or @p_256 (! (= (! (< @p_247 @p_3) :named @p_259) (! (and (! (=> (! (< 0.0 2.0) :named @p_260) @p_257) :named @p_261) (! (=> (! (< 2.0 0.0) :named @p_263) (! (< d$ 0.0) :named @p_265)) :named @p_264) (! (not (! (= 2.0 0.0) :named @p_267)) :named @p_268)) :named @p_270)) :named @p_258))) :rule forall_inst :args ((:= veriT_vr13 0.0) (:= veriT_vr14 2.0) (:= veriT_vr15 d$)))
+(anchor :step t90)
+(assume t90.h1 @p_258)
+(step t90.t2 (cl (= @p_260 true)) :rule comp_simplify)
+(step t90.t3 (cl (= @p_261 (! (=> true @p_257) :named @p_262))) :rule cong :premises (t90.t2))
+(step t90.t4 (cl (= @p_262 @p_257)) :rule implies_simplify)
+(step t90.t5 (cl (= @p_261 @p_257)) :rule trans :premises (t90.t3 t90.t4))
+(step t90.t6 (cl (= @p_263 false)) :rule comp_simplify)
+(step t90.t7 (cl (= @p_264 (! (=> false @p_265) :named @p_266))) :rule cong :premises (t90.t6))
+(step t90.t8 (cl (= @p_266 true)) :rule implies_simplify)
+(step t90.t9 (cl (= @p_264 true)) :rule trans :premises (t90.t7 t90.t8))
+(step t90.t10 (cl (= @p_267 false)) :rule eq_simplify)
+(step t90.t11 (cl (= @p_268 @p_228)) :rule cong :premises (t90.t10))
+(step t90.t12 (cl @p_269) :rule not_simplify)
+(step t90.t13 (cl (= @p_268 true)) :rule trans :premises (t90.t11 t90.t12))
+(step t90.t14 (cl (= @p_270 (! (and @p_257 true true) :named @p_271))) :rule cong :premises (t90.t5 t90.t9 t90.t13))
+(step t90.t15 (cl (= @p_271 (! (and @p_257) :named @p_272))) :rule and_simplify)
+(step t90.t16 (cl (= @p_272 @p_257)) :rule and_simplify)
+(step t90.t17 (cl (= @p_270 @p_257)) :rule trans :premises (t90.t14 t90.t15 t90.t16))
+(step t90.t18 (cl (! (= @p_258 (! (= @p_259 @p_257) :named @p_273)) :named @p_274)) :rule cong :premises (t90.t17))
+(step t90.t19 (cl (not @p_274) (! (not @p_258) :named @p_275) @p_273) :rule equiv_pos2)
+(step t90.t20 (cl @p_273) :rule th_resolution :premises (t90.h1 t90.t18 t90.t19))
+(step t90 (cl @p_275 @p_273) :rule subproof :discharge (h1))
+(step t91 (cl @p_256 @p_258) :rule or :premises (t89))
+(step t92 (cl (! (or @p_256 @p_273) :named @p_277) @p_276) :rule or_neg)
+(step t93 (cl @p_277 @p_139) :rule th_resolution :premises (t88 t92))
+(step t94 (cl @p_277 (! (not @p_273) :named @p_326)) :rule or_neg)
+(step t95 (cl @p_277) :rule th_resolution :premises (t91 t90 t93 t94))
+(step t96 (cl (not (! (not (! (not @p_84) :named @p_278)) :named @p_291)) @p_84) :rule not_not)
+(step t97 (cl (or @p_278 (! (= @p_36 (! (- @p_3 (! (ite (! (< @p_2 0.0) :named @p_280) (! (- @p_2) :named @p_282) @p_2) :named @p_283)) :named @p_284)) :named @p_279))) :rule forall_inst :args ((:= veriT_vr9 @p_2)))
+(anchor :step t98)
+(assume t98.h1 @p_279)
+(step t98.t2 (cl (= @p_3 @p_282)) :rule minus_simplify)
+(step t98.t3 (cl (= @p_283 (! (ite @p_280 @p_3 @p_2) :named @p_281))) :rule cong :premises (t98.t2))
+(step t98.t4 (cl (= @p_284 (! (- @p_3 @p_281) :named @p_285))) :rule cong :premises (t98.t3))
+(step t98.t5 (cl (! (= @p_279 (! (= @p_36 @p_285) :named @p_288)) :named @p_286)) :rule cong :premises (t98.t4))
+(step t98.t6 (cl (not @p_286) (! (not @p_279) :named @p_287) @p_288) :rule equiv_pos2)
+(step t98.t7 (cl @p_288) :rule th_resolution :premises (t98.h1 t98.t5 t98.t6))
+(step t98.t8 (cl (! (= @p_288 (! (and (! (= @p_36 (- @p_3 @p_281)) :named @p_328) (! (ite @p_280 (! (= @p_3 @p_281) :named @p_330) (= @p_2 @p_281)) :named @p_329)) :named @p_289)) :named @p_290)) :rule ite_intro)
+(step t98.t9 (cl (not @p_290) (not @p_288) @p_289) :rule equiv_pos2)
+(step t98.t10 (cl @p_289) :rule th_resolution :premises (t98.t7 t98.t8 t98.t9))
+(step t98 (cl @p_287 @p_289) :rule subproof :discharge (h1))
+(step t99 (cl @p_278 @p_279) :rule or :premises (t97))
+(step t100 (cl (! (or @p_278 @p_289) :named @p_292) @p_291) :rule or_neg)
+(step t101 (cl @p_292 @p_84) :rule th_resolution :premises (t96 t100))
+(step t102 (cl @p_292 (! (not @p_289) :named @p_327)) :rule or_neg)
+(step t103 (cl @p_292) :rule th_resolution :premises (t99 t98 t101 t102))
+(step t104 (cl (or @p_278 (! (= (! (diamond_y$ @p_3) :named @p_294) (- @p_3 (! (ite (! (< @p_3 0.0) :named @p_296) @p_2 @p_3) :named @p_295))) :named @p_293))) :rule forall_inst :args ((:= veriT_vr9 @p_3)))
+(anchor :step t105)
+(assume t105.h1 @p_293)
+(step t105.t2 (cl (! (= @p_293 (! (and (= @p_294 (- @p_3 @p_295)) (! (ite @p_296 (! (= @p_2 @p_295) :named @p_342) (! (= @p_3 @p_295) :named @p_332)) :named @p_331)) :named @p_297)) :named @p_298)) :rule ite_intro)
+(step t105.t3 (cl (not @p_298) (! (not @p_293) :named @p_299) @p_297) :rule equiv_pos2)
+(step t105.t4 (cl @p_297) :rule th_resolution :premises (t105.h1 t105.t2 t105.t3))
+(step t105 (cl @p_299 @p_297) :rule subproof :discharge (h1))
+(step t106 (cl @p_278 @p_293) :rule or :premises (t104))
+(step t107 (cl (! (or @p_278 @p_297) :named @p_300) @p_291) :rule or_neg)
+(step t108 (cl @p_300 @p_84) :rule th_resolution :premises (t96 t107))
+(step t109 (cl @p_300 (! (not @p_297) :named @p_333)) :rule or_neg)
+(step t110 (cl @p_300) :rule th_resolution :premises (t106 t105 t108 t109))
+(step t111 (cl (or @p_278 (! (= (! (diamond_y$ 0.0) :named @p_302) (! (- @p_3 (! (ite (! (< 0.0 0.0) :named @p_303) @p_238 0.0) :named @p_304)) :named @p_306)) :named @p_301))) :rule forall_inst :args ((:= veriT_vr9 0.0)))
+(anchor :step t112)
+(assume t112.h1 @p_301)
+(step t112.t2 (cl (= @p_303 false)) :rule comp_simplify)
+(step t112.t3 (cl @p_249) :rule minus_simplify)
+(step t112.t4 (cl (= @p_304 (! (ite false 0.0 0.0) :named @p_305))) :rule cong :premises (t112.t2 t112.t3))
+(step t112.t5 (cl (= 0.0 @p_305)) :rule ite_simplify)
+(step t112.t6 (cl (= 0.0 @p_304)) :rule trans :premises (t112.t4 t112.t5))
+(step t112.t7 (cl (= @p_306 (! (- @p_3 0.0) :named @p_307))) :rule cong :premises (t112.t6))
+(step t112.t8 (cl (= @p_3 @p_307)) :rule minus_simplify)
+(step t112.t9 (cl (= @p_3 @p_306)) :rule trans :premises (t112.t7 t112.t8))
+(step t112.t10 (cl (! (= @p_301 (! (= @p_3 @p_302) :named @p_308)) :named @p_309)) :rule cong :premises (t112.t9))
+(step t112.t11 (cl (not @p_309) (! (not @p_301) :named @p_310) @p_308) :rule equiv_pos2)
+(step t112.t12 (cl @p_308) :rule th_resolution :premises (t112.h1 t112.t10 t112.t11))
+(step t112 (cl @p_310 @p_308) :rule subproof :discharge (h1))
+(step t113 (cl @p_278 @p_301) :rule or :premises (t111))
+(step t114 (cl (! (or @p_278 @p_308) :named @p_311) @p_291) :rule or_neg)
+(step t115 (cl @p_311 @p_84) :rule th_resolution :premises (t96 t114))
+(step t116 (cl @p_311 (! (not @p_308) :named @p_376)) :rule or_neg)
+(step t117 (cl @p_311) :rule th_resolution :premises (t113 t112 t115 t116))
+(step t118 (cl (or (! (not @p_60) :named @p_334) (! (= (! (fun_app$ uub$ @p_7) :named @p_369) (! (pair$ @p_2 (! (times$ (- (* 2.0 @p_7) 1.0) @p_36) :named @p_361)) :named @p_360)) :named @p_335))) :rule forall_inst :args ((:= veriT_vr7 @p_7)))
+(step t119 (cl (or (! (not @p_34) :named @p_323) (! (= (! (fun_app$ uuc$ @p_7) :named @p_314) (! (pair$ (! (times$ (! (- @p_7 @p_7) :named @p_315) d$) :named @p_312) (! (diamond_y$ @p_312) :named @p_316)) :named @p_318)) :named @p_313))) :rule forall_inst :args ((:= veriT_vr1 @p_7)))
+(anchor :step t120)
+(assume t120.h1 @p_313)
+(step t120.t2 (cl (= 0.0 @p_315)) :rule minus_simplify)
+(step t120.t3 (cl (= @p_236 @p_312)) :rule cong :premises (t120.t2))
+(step t120.t4 (cl (= @p_316 (! (diamond_y$ @p_236) :named @p_317))) :rule cong :premises (t120.t3))
+(step t120.t5 (cl (= @p_318 (! (pair$ @p_236 @p_317) :named @p_319))) :rule cong :premises (t120.t3 t120.t4))
+(step t120.t6 (cl (! (= @p_313 (! (= @p_314 @p_319) :named @p_320)) :named @p_321)) :rule cong :premises (t120.t5))
+(step t120.t7 (cl (not @p_321) (! (not @p_313) :named @p_322) @p_320) :rule equiv_pos2)
+(step t120.t8 (cl @p_320) :rule th_resolution :premises (t120.h1 t120.t6 t120.t7))
+(step t120 (cl @p_322 @p_320) :rule subproof :discharge (h1))
+(step t121 (cl @p_323 @p_313) :rule or :premises (t119))
+(step t122 (cl (! (or @p_323 @p_320) :named @p_325) (! (not @p_323) :named @p_324)) :rule or_neg)
+(step t123 (cl (not @p_324) @p_34) :rule not_not)
+(step t124 (cl @p_325 @p_34) :rule th_resolution :premises (t123 t122))
+(step t125 (cl @p_325 (! (not @p_320) :named @p_370)) :rule or_neg)
+(step t126 (cl @p_325) :rule th_resolution :premises (t121 t120 t124 t125))
+(step t127 (cl @p_234 @p_240) :rule or :premises (t79))
+(step t128 (cl @p_240) :rule resolution :premises (t127 t48))
+(step t129 (cl @p_245 @p_251) :rule or :premises (t87))
+(step t130 (cl @p_251) :rule resolution :premises (t129 t42))
+(step t131 (cl @p_326 @p_259 (not @p_257)) :rule equiv_pos1)
+(step t132 (cl @p_256 @p_273) :rule or :premises (t95))
+(step t133 (cl @p_326 @p_259) :rule resolution :premises (t131 axiom4))
+(step t134 (cl @p_273) :rule resolution :premises (t132 t36))
+(step t135 (cl @p_259) :rule resolution :premises (t133 t134))
+(step t136 (cl @p_327 @p_328) :rule and_pos)
+(step t137 (cl (not @p_329) (! (not @p_280) :named @p_339) @p_330) :rule ite_pos2)
+(step t138 (cl @p_327 @p_329) :rule and_pos)
+(step t139 (cl @p_278 @p_289) :rule or :premises (t103))
+(step t140 (cl @p_289) :rule resolution :premises (t139 t27))
+(step t141 (cl @p_328) :rule resolution :premises (t136 t140))
+(step t142 (cl @p_329) :rule resolution :premises (t138 t140))
+(step t143 (cl (not @p_331) @p_296 @p_332) :rule ite_pos1)
+(step t144 (cl @p_333 @p_331) :rule and_pos)
+(step t145 (cl @p_278 @p_297) :rule or :premises (t110))
+(step t146 (cl @p_297) :rule resolution :premises (t145 t27))
+(step t147 (cl @p_331) :rule resolution :premises (t144 t146))
+(step t148 (cl @p_278 @p_308) :rule or :premises (t117))
+(step t149 (cl @p_308) :rule resolution :premises (t148 t27))
+(step t150 (cl @p_334 @p_335) :rule or :premises (t118))
+(step t151 (cl @p_335) :rule resolution :premises (t150 t21))
+(step t152 (cl @p_323 @p_320) :rule or :premises (t126))
+(step t153 (cl @p_320) :rule resolution :premises (t152 t15))
+(step t154 (cl (! (not @p_259) :named @p_338) (! (not @p_296) :named @p_337) @p_336) :rule la_generic :args (2.0 2.0 1))
+(step t155 (cl @p_337) :rule resolution :premises (t154 t130 t135))
+(step t156 (cl @p_332) :rule resolution :premises (t143 t155 t147))
+(step t157 (cl @p_338 @p_280 @p_336) :rule la_generic :args (2.0 2.0 1))
+(step t158 (cl @p_280) :rule resolution :premises (t157 t130 t135))
+(step t159 (cl @p_330) :rule resolution :premises (t137 t158 t142))
+(step t160 (cl (! (not (! (= @p_3 @p_2) :named @p_343)) :named @p_341) (not (! (= 0.0 0.0) :named @p_340)) @p_339 @p_296) :rule eq_congruent_pred)
+(step t161 (cl @p_340) :rule eq_reflexive)
+(step t162 (cl @p_341 @p_339 @p_296) :rule th_resolution :premises (t160 t161))
+(step t163 (cl (! (not @p_332) :named @p_344) (! (not @p_342) :named @p_345) @p_343) :rule eq_transitive)
+(step t164 (cl @p_339 @p_296 @p_344 @p_345) :rule th_resolution :premises (t162 t163))
+(step t165 (cl @p_345) :rule resolution :premises (t164 t155 t158 t156))
+(step t166 (cl (! (= @p_7 @p_7) :named @p_372)) :rule eq_reflexive)
+(step t167 (cl (or (! (= 0.0 @p_236) :named @p_346) (! (not (! (<= 0.0 @p_236) :named @p_351)) :named @p_347) (! (not (! (<= @p_236 0.0) :named @p_349)) :named @p_348))) :rule la_disequality)
+(step t168 (cl @p_346 @p_347 @p_348) :rule or :premises (t167))
+(step t169 (cl @p_349 @p_350) :rule la_generic :args (2.0 (- 1)))
+(step t170 (cl @p_349) :rule resolution :premises (t169 t128))
+(step t171 (cl @p_351 @p_350) :rule la_generic :args (2.0 1))
+(step t172 (cl @p_351) :rule resolution :premises (t171 t128))
+(step t173 (cl @p_346) :rule resolution :premises (t168 t172 t170))
+(step t174 (cl (or (! (= @p_36 @p_236) :named @p_352) (! (not (! (<= @p_36 @p_236) :named @p_356)) :named @p_353) (! (not (! (<= @p_236 @p_36) :named @p_355)) :named @p_354))) :rule la_disequality)
+(step t175 (cl @p_352 @p_353 @p_354) :rule or :premises (t174))
+(step t176 (cl @p_355 @p_350 (! (not @p_328) :named @p_357) (! (not @p_330) :named @p_358)) :rule la_generic :args (2.0 (- 1) 2 2))
+(step t177 (cl @p_355) :rule resolution :premises (t176 t128 t141 t159))
+(step t178 (cl @p_356 @p_350 @p_357 @p_358) :rule la_generic :args (2.0 1 (- 2) (- 2)))
+(step t179 (cl @p_356) :rule resolution :premises (t178 t128 t141 t159))
+(step t180 (cl @p_352) :rule resolution :premises (t175 t179 t177))
+(step t181 (cl @p_233 @p_359) :rule or :premises (t70))
+(step t182 (cl (or (! (not @p_359) :named @p_362) (! (or (! (not (! (= @p_360 @p_319) :named @p_371)) :named @p_367) (! (= @p_2 @p_236) :named @p_368)) :named @p_363))) :rule forall_inst :args ((:= veriT_vr28 @p_2) (:= veriT_vr29 @p_361) (:= veriT_vr30 @p_236) (:= veriT_vr31 @p_317)))
+(step t183 (cl @p_362 @p_363) :rule or :premises (t182))
+(step t184 (cl (! (or @p_233 @p_363) :named @p_365) @p_364) :rule or_neg)
+(step t185 (cl @p_365 @p_218) :rule th_resolution :premises (t71 t184))
+(step t186 (cl @p_365 (! (not @p_363) :named @p_366)) :rule or_neg)
+(step t187 (cl @p_365) :rule th_resolution :premises (t181 t183 t185 t186))
+(step t188 (cl @p_366 @p_367 @p_368) :rule or_pos)
+(step t189 (cl @p_233 @p_363) :rule or :premises (t187))
+(step t190 (cl @p_363) :rule resolution :premises (t189 t54))
+(step t191 (cl (! (not @p_335) :named @p_375) (not (! (= @p_369 @p_314) :named @p_373)) @p_370 @p_371) :rule eq_transitive)
+(step t192 (cl (! (not @p_227) :named @p_374) (not @p_372) @p_373) :rule eq_congruent)
+(step t193 (cl @p_374 @p_373) :rule th_resolution :premises (t192 t166))
+(step t194 (cl @p_375 @p_370 @p_371 @p_374) :rule th_resolution :premises (t191 t193))
+(step t195 (cl @p_371) :rule resolution :premises (t194 t69 t151 t153))
+(step t196 (cl @p_368) :rule resolution :premises (t188 t195 t190))
+(step t197 (cl (! (not @p_368) :named @p_378) (! (not @p_352) :named @p_381) (not (! (= @p_36 @p_302) :named @p_377)) @p_376 @p_344 @p_342) :rule eq_transitive)
+(step t198 (cl (not (! (= @p_2 0.0) :named @p_379)) @p_377) :rule eq_congruent)
+(step t199 (cl @p_378 (! (not @p_346) :named @p_380) @p_379) :rule eq_transitive)
+(step t200 (cl @p_377 @p_378 @p_380) :rule th_resolution :premises (t198 t199))
+(step t201 (cl @p_378 @p_381 @p_376 @p_344 @p_342 @p_378 @p_380) :rule th_resolution :premises (t197 t200))
+(step t202 (cl @p_378 @p_381 @p_376 @p_344 @p_342 @p_380) :rule contraction :premises (t201))
+(step t203 (cl) :rule resolution :premises (t202 t156 t165 t149 t173 t180 t196))
+42dfad143cfae67cfed01ebeb5997e53c8d08b98 26 0
unsat
-(assume a0 (! (forall ((?v0 Real)) (! (= (! (fun_app$ uuc$ ?v0) :named @p_9) (! (pair$ (! (times$ (! (- ?v0 (! (divide$ 1.0 2.0) :named @p_7)) :named @p_12) d$) :named @p_1) (! (diamond_y$ @p_1) :named @p_16)) :named @p_18)) :named @p_20)) :named @p_6))
-(assume a3 (! (forall ((?v0 Real)) (! (= (! (fun_app$ uub$ ?v0) :named @p_37) (! (pair$ (! (- (! (divide$ d$ 2.0) :named @p_3)) :named @p_2) (! (times$ (! (- (! (* 2.0 ?v0) :named @p_40) 1.0) :named @p_42) (! (diamond_y$ @p_2) :named @p_36)) :named @p_44)) :named @p_46)) :named @p_48)) :named @p_35))
-(assume a4 (! (< 0.0 d$) :named @p_279))
-(assume a5 (! (forall ((?v0 Real)) (! (= (! (diamond_y$ ?v0) :named @p_62) (! (- @p_3 (! (ite (! (< ?v0 0.0) :named @p_65) (! (- ?v0) :named @p_4) ?v0) :named @p_68)) :named @p_70)) :named @p_72)) :named @p_61))
-(assume a7 (! (forall ((?v0 Real) (?v1 Real) (?v2 Real)) (! (= (! (< (! (divide$ ?v0 ?v1) :named @p_5) (! (divide$ ?v2 ?v1) :named @p_88)) :named @p_90) (! (and (! (=> (! (< 0.0 ?v1) :named @p_92) (! (< ?v0 ?v2) :named @p_96)) :named @p_98) (! (and (! (=> (! (< ?v1 0.0) :named @p_100) (! (< ?v2 ?v0) :named @p_102)) :named @p_104) (! (not (! (= 0.0 ?v1) :named @p_106)) :named @p_108)) :named @p_110)) :named @p_112)) :named @p_114)) :named @p_85))
-(assume a8 (! (forall ((?v0 Real) (?v1 Real)) (! (= (! (divide$ @p_4 ?v1) :named @p_142) (! (- @p_5) :named @p_147)) :named @p_149)) :named @p_140))
-(assume a9 (! (forall ((?v0 Real) (?v1 Real)) (! (= (! (times$ @p_4 ?v1) :named @p_164) (! (- (! (times$ ?v0 ?v1) :named @p_168)) :named @p_170)) :named @p_172)) :named @p_162))
-(assume a10 (! (forall ((?v0 Real) (?v1 Real) (?v2 Real) (?v3 Real)) (! (= (! (= (! (pair$ ?v0 ?v1) :named @p_186) (! (pair$ ?v2 ?v3) :named @p_188)) :named @p_190) (! (and (! (= ?v0 ?v2) :named @p_194) (! (= ?v1 ?v3) :named @p_198)) :named @p_200)) :named @p_202)) :named @p_185))
-(assume a11 (! (not (! (=> (! (and (! (not (= uua$ uu$)) :named @p_226) (! (= uuc$ uub$) :named @p_227)) :named @p_220) false) :named @p_224)) :named @p_219))
-(anchor :step t10 :args ((:= (?v0 Real) veriT_vr0)))
-(step t10.t1 (cl (! (= ?v0 veriT_vr0) :named @p_11)) :rule refl)
-(step t10.t2 (cl (= @p_9 (! (fun_app$ uuc$ veriT_vr0) :named @p_10))) :rule cong :premises (t10.t1))
-(step t10.t3 (cl @p_11) :rule refl)
-(step t10.t4 (cl (! (= @p_12 (! (- veriT_vr0 @p_7) :named @p_13)) :named @p_14)) :rule cong :premises (t10.t3))
-(step t10.t5 (cl (! (= @p_1 (! (times$ @p_13 d$) :named @p_8)) :named @p_15)) :rule cong :premises (t10.t4))
-(step t10.t6 (cl @p_11) :rule refl)
-(step t10.t7 (cl @p_14) :rule cong :premises (t10.t6))
-(step t10.t8 (cl @p_15) :rule cong :premises (t10.t7))
-(step t10.t9 (cl (= @p_16 (! (diamond_y$ @p_8) :named @p_17))) :rule cong :premises (t10.t8))
-(step t10.t10 (cl (= @p_18 (! (pair$ @p_8 @p_17) :named @p_19))) :rule cong :premises (t10.t5 t10.t9))
-(step t10.t11 (cl (= @p_20 (! (= @p_10 @p_19) :named @p_21))) :rule cong :premises (t10.t2 t10.t10))
-(step t10 (cl (! (= @p_6 (! (forall ((veriT_vr0 Real)) @p_21) :named @p_23)) :named @p_22)) :rule bind)
-(step t11 (cl (not @p_22) (not @p_6) @p_23) :rule equiv_pos2)
-(step t12 (cl @p_23) :rule th_resolution :premises (a0 t10 t11))
-(anchor :step t13 :args ((:= (veriT_vr0 Real) veriT_vr1)))
-(step t13.t1 (cl (! (= veriT_vr0 veriT_vr1) :named @p_26)) :rule refl)
-(step t13.t2 (cl (= @p_10 (! (fun_app$ uuc$ veriT_vr1) :named @p_25))) :rule cong :premises (t13.t1))
-(step t13.t3 (cl @p_26) :rule refl)
-(step t13.t4 (cl (! (= @p_13 (! (- veriT_vr1 @p_7) :named @p_27)) :named @p_28)) :rule cong :premises (t13.t3))
-(step t13.t5 (cl (! (= @p_8 (! (times$ @p_27 d$) :named @p_24)) :named @p_29)) :rule cong :premises (t13.t4))
-(step t13.t6 (cl @p_26) :rule refl)
-(step t13.t7 (cl @p_28) :rule cong :premises (t13.t6))
-(step t13.t8 (cl @p_29) :rule cong :premises (t13.t7))
-(step t13.t9 (cl (= @p_17 (! (diamond_y$ @p_24) :named @p_30))) :rule cong :premises (t13.t8))
-(step t13.t10 (cl (= @p_19 (! (pair$ @p_24 @p_30) :named @p_31))) :rule cong :premises (t13.t5 t13.t9))
-(step t13.t11 (cl (= @p_21 (! (= @p_25 @p_31) :named @p_32))) :rule cong :premises (t13.t2 t13.t10))
-(step t13 (cl (! (= @p_23 (! (forall ((veriT_vr1 Real)) @p_32) :named @p_34)) :named @p_33)) :rule bind)
-(step t14 (cl (not @p_33) (not @p_23) @p_34) :rule equiv_pos2)
-(step t15 (cl @p_34) :rule th_resolution :premises (t12 t13 t14))
-(anchor :step t16 :args ((:= (?v0 Real) veriT_vr6)))
-(step t16.t1 (cl (! (= ?v0 veriT_vr6) :named @p_39)) :rule refl)
-(step t16.t2 (cl (= @p_37 (! (fun_app$ uub$ veriT_vr6) :named @p_38))) :rule cong :premises (t16.t1))
-(step t16.t3 (cl @p_39) :rule refl)
-(step t16.t4 (cl (= @p_40 (! (* 2.0 veriT_vr6) :named @p_41))) :rule cong :premises (t16.t3))
-(step t16.t5 (cl (= @p_42 (! (- @p_41 1.0) :named @p_43))) :rule cong :premises (t16.t4))
-(step t16.t6 (cl (= @p_44 (! (times$ @p_43 @p_36) :named @p_45))) :rule cong :premises (t16.t5))
-(step t16.t7 (cl (= @p_46 (! (pair$ @p_2 @p_45) :named @p_47))) :rule cong :premises (t16.t6))
-(step t16.t8 (cl (= @p_48 (! (= @p_38 @p_47) :named @p_49))) :rule cong :premises (t16.t2 t16.t7))
-(step t16 (cl (! (= @p_35 (! (forall ((veriT_vr6 Real)) @p_49) :named @p_51)) :named @p_50)) :rule bind)
-(step t17 (cl (not @p_50) (not @p_35) @p_51) :rule equiv_pos2)
-(step t18 (cl @p_51) :rule th_resolution :premises (a3 t16 t17))
-(anchor :step t19 :args ((:= (veriT_vr6 Real) veriT_vr7)))
-(step t19.t1 (cl (! (= veriT_vr6 veriT_vr7) :named @p_53)) :rule refl)
-(step t19.t2 (cl (= @p_38 (! (fun_app$ uub$ veriT_vr7) :named @p_52))) :rule cong :premises (t19.t1))
-(step t19.t3 (cl @p_53) :rule refl)
-(step t19.t4 (cl (= @p_41 (! (* 2.0 veriT_vr7) :named @p_54))) :rule cong :premises (t19.t3))
-(step t19.t5 (cl (= @p_43 (! (- @p_54 1.0) :named @p_55))) :rule cong :premises (t19.t4))
-(step t19.t6 (cl (= @p_45 (! (times$ @p_55 @p_36) :named @p_56))) :rule cong :premises (t19.t5))
-(step t19.t7 (cl (= @p_47 (! (pair$ @p_2 @p_56) :named @p_57))) :rule cong :premises (t19.t6))
-(step t19.t8 (cl (= @p_49 (! (= @p_52 @p_57) :named @p_58))) :rule cong :premises (t19.t2 t19.t7))
-(step t19 (cl (! (= @p_51 (! (forall ((veriT_vr7 Real)) @p_58) :named @p_60)) :named @p_59)) :rule bind)
-(step t20 (cl (not @p_59) (not @p_51) @p_60) :rule equiv_pos2)
-(step t21 (cl @p_60) :rule th_resolution :premises (t18 t19 t20))
-(anchor :step t22 :args ((:= (?v0 Real) veriT_vr8)))
-(step t22.t1 (cl (! (= ?v0 veriT_vr8) :named @p_64)) :rule refl)
-(step t22.t2 (cl (= @p_62 (! (diamond_y$ veriT_vr8) :named @p_63))) :rule cong :premises (t22.t1))
-(step t22.t3 (cl @p_64) :rule refl)
-(step t22.t4 (cl (= @p_65 (! (< veriT_vr8 0.0) :named @p_66))) :rule cong :premises (t22.t3))
-(step t22.t5 (cl @p_64) :rule refl)
-(step t22.t6 (cl (= @p_4 (! (- veriT_vr8) :named @p_67))) :rule cong :premises (t22.t5))
-(step t22.t7 (cl @p_64) :rule refl)
-(step t22.t8 (cl (= @p_68 (! (ite @p_66 @p_67 veriT_vr8) :named @p_69))) :rule cong :premises (t22.t4 t22.t6 t22.t7))
-(step t22.t9 (cl (= @p_70 (! (- @p_3 @p_69) :named @p_71))) :rule cong :premises (t22.t8))
-(step t22.t10 (cl (= @p_72 (! (= @p_63 @p_71) :named @p_73))) :rule cong :premises (t22.t2 t22.t9))
-(step t22 (cl (! (= @p_61 (! (forall ((veriT_vr8 Real)) @p_73) :named @p_75)) :named @p_74)) :rule bind)
-(step t23 (cl (not @p_74) (not @p_61) @p_75) :rule equiv_pos2)
-(step t24 (cl @p_75) :rule th_resolution :premises (a5 t22 t23))
-(anchor :step t25 :args ((:= (veriT_vr8 Real) veriT_vr9)))
-(step t25.t1 (cl (! (= veriT_vr8 veriT_vr9) :named @p_77)) :rule refl)
-(step t25.t2 (cl (= @p_63 (! (diamond_y$ veriT_vr9) :named @p_76))) :rule cong :premises (t25.t1))
-(step t25.t3 (cl @p_77) :rule refl)
-(step t25.t4 (cl (= @p_66 (! (< veriT_vr9 0.0) :named @p_78))) :rule cong :premises (t25.t3))
-(step t25.t5 (cl @p_77) :rule refl)
-(step t25.t6 (cl (= @p_67 (! (- veriT_vr9) :named @p_79))) :rule cong :premises (t25.t5))
-(step t25.t7 (cl @p_77) :rule refl)
-(step t25.t8 (cl (= @p_69 (! (ite @p_78 @p_79 veriT_vr9) :named @p_80))) :rule cong :premises (t25.t4 t25.t6 t25.t7))
-(step t25.t9 (cl (= @p_71 (! (- @p_3 @p_80) :named @p_81))) :rule cong :premises (t25.t8))
-(step t25.t10 (cl (= @p_73 (! (= @p_76 @p_81) :named @p_82))) :rule cong :premises (t25.t2 t25.t9))
-(step t25 (cl (! (= @p_75 (! (forall ((veriT_vr9 Real)) @p_82) :named @p_84)) :named @p_83)) :rule bind)
-(step t26 (cl (not @p_83) (not @p_75) @p_84) :rule equiv_pos2)
-(step t27 (cl @p_84) :rule th_resolution :premises (t24 t25 t26))
-(anchor :step t28 :args ((:= (?v0 Real) veriT_vr10) (:= (?v1 Real) veriT_vr11) (:= (?v2 Real) veriT_vr12)))
-(step t28.t1 (cl (! (= ?v0 veriT_vr10) :named @p_94)) :rule refl)
-(step t28.t2 (cl (! (= ?v1 veriT_vr11) :named @p_87)) :rule refl)
-(step t28.t3 (cl (= @p_5 (! (divide$ veriT_vr10 veriT_vr11) :named @p_86))) :rule cong :premises (t28.t1 t28.t2))
-(step t28.t4 (cl (! (= ?v2 veriT_vr12) :named @p_95)) :rule refl)
-(step t28.t5 (cl @p_87) :rule refl)
-(step t28.t6 (cl (= @p_88 (! (divide$ veriT_vr12 veriT_vr11) :named @p_89))) :rule cong :premises (t28.t4 t28.t5))
-(step t28.t7 (cl (= @p_90 (! (< @p_86 @p_89) :named @p_91))) :rule cong :premises (t28.t3 t28.t6))
-(step t28.t8 (cl @p_87) :rule refl)
-(step t28.t9 (cl (= @p_92 (! (< 0.0 veriT_vr11) :named @p_93))) :rule cong :premises (t28.t8))
-(step t28.t10 (cl @p_94) :rule refl)
-(step t28.t11 (cl @p_95) :rule refl)
-(step t28.t12 (cl (= @p_96 (! (< veriT_vr10 veriT_vr12) :named @p_97))) :rule cong :premises (t28.t10 t28.t11))
-(step t28.t13 (cl (= @p_98 (! (=> @p_93 @p_97) :named @p_99))) :rule cong :premises (t28.t9 t28.t12))
-(step t28.t14 (cl @p_87) :rule refl)
-(step t28.t15 (cl (= @p_100 (! (< veriT_vr11 0.0) :named @p_101))) :rule cong :premises (t28.t14))
-(step t28.t16 (cl @p_95) :rule refl)
-(step t28.t17 (cl @p_94) :rule refl)
-(step t28.t18 (cl (= @p_102 (! (< veriT_vr12 veriT_vr10) :named @p_103))) :rule cong :premises (t28.t16 t28.t17))
-(step t28.t19 (cl (= @p_104 (! (=> @p_101 @p_103) :named @p_105))) :rule cong :premises (t28.t15 t28.t18))
-(step t28.t20 (cl @p_87) :rule refl)
-(step t28.t21 (cl (= @p_106 (! (= 0.0 veriT_vr11) :named @p_107))) :rule cong :premises (t28.t20))
-(step t28.t22 (cl (= @p_108 (! (not @p_107) :named @p_109))) :rule cong :premises (t28.t21))
-(step t28.t23 (cl (= @p_110 (! (and @p_105 @p_109) :named @p_111))) :rule cong :premises (t28.t19 t28.t22))
-(step t28.t24 (cl (= @p_112 (! (and @p_99 @p_111) :named @p_113))) :rule cong :premises (t28.t13 t28.t23))
-(step t28.t25 (cl (= @p_114 (! (= @p_91 @p_113) :named @p_115))) :rule cong :premises (t28.t7 t28.t24))
-(step t28 (cl (! (= @p_85 (! (forall ((veriT_vr10 Real) (veriT_vr11 Real) (veriT_vr12 Real)) @p_115) :named @p_117)) :named @p_116)) :rule bind)
-(step t29 (cl (not @p_116) (not @p_85) @p_117) :rule equiv_pos2)
-(step t30 (cl @p_117) :rule th_resolution :premises (a7 t28 t29))
-(anchor :step t31 :args ((veriT_vr10 Real) (veriT_vr11 Real) (veriT_vr12 Real)))
-(step t31.t1 (cl (= @p_113 (! (and @p_99 @p_105 @p_109) :named @p_118))) :rule ac_simp)
-(step t31.t2 (cl (= @p_115 (! (= @p_91 @p_118) :named @p_119))) :rule cong :premises (t31.t1))
-(step t31 (cl (! (= @p_117 (! (forall ((veriT_vr10 Real) (veriT_vr11 Real) (veriT_vr12 Real)) @p_119) :named @p_121)) :named @p_120)) :rule bind)
-(step t32 (cl (not @p_120) (not @p_117) @p_121) :rule equiv_pos2)
-(step t33 (cl @p_121) :rule th_resolution :premises (t30 t31 t32))
-(anchor :step t34 :args ((:= (veriT_vr10 Real) veriT_vr13) (:= (veriT_vr11 Real) veriT_vr14) (:= (veriT_vr12 Real) veriT_vr15)))
-(step t34.t1 (cl (! (= veriT_vr10 veriT_vr13) :named @p_127)) :rule refl)
-(step t34.t2 (cl (! (= veriT_vr11 veriT_vr14) :named @p_123)) :rule refl)
-(step t34.t3 (cl (= @p_86 (! (divide$ veriT_vr13 veriT_vr14) :named @p_122))) :rule cong :premises (t34.t1 t34.t2))
-(step t34.t4 (cl (! (= veriT_vr12 veriT_vr15) :named @p_128)) :rule refl)
-(step t34.t5 (cl @p_123) :rule refl)
-(step t34.t6 (cl (= @p_89 (! (divide$ veriT_vr15 veriT_vr14) :named @p_124))) :rule cong :premises (t34.t4 t34.t5))
-(step t34.t7 (cl (= @p_91 (! (< @p_122 @p_124) :named @p_125))) :rule cong :premises (t34.t3 t34.t6))
-(step t34.t8 (cl @p_123) :rule refl)
-(step t34.t9 (cl (= @p_93 (! (< 0.0 veriT_vr14) :named @p_126))) :rule cong :premises (t34.t8))
-(step t34.t10 (cl @p_127) :rule refl)
-(step t34.t11 (cl @p_128) :rule refl)
-(step t34.t12 (cl (= @p_97 (! (< veriT_vr13 veriT_vr15) :named @p_129))) :rule cong :premises (t34.t10 t34.t11))
-(step t34.t13 (cl (= @p_99 (! (=> @p_126 @p_129) :named @p_130))) :rule cong :premises (t34.t9 t34.t12))
-(step t34.t14 (cl @p_123) :rule refl)
-(step t34.t15 (cl (= @p_101 (! (< veriT_vr14 0.0) :named @p_131))) :rule cong :premises (t34.t14))
-(step t34.t16 (cl @p_128) :rule refl)
-(step t34.t17 (cl @p_127) :rule refl)
-(step t34.t18 (cl (= @p_103 (! (< veriT_vr15 veriT_vr13) :named @p_132))) :rule cong :premises (t34.t16 t34.t17))
-(step t34.t19 (cl (= @p_105 (! (=> @p_131 @p_132) :named @p_133))) :rule cong :premises (t34.t15 t34.t18))
-(step t34.t20 (cl @p_123) :rule refl)
-(step t34.t21 (cl (= @p_107 (! (= 0.0 veriT_vr14) :named @p_134))) :rule cong :premises (t34.t20))
-(step t34.t22 (cl (= @p_109 (! (not @p_134) :named @p_135))) :rule cong :premises (t34.t21))
-(step t34.t23 (cl (= @p_118 (! (and @p_130 @p_133 @p_135) :named @p_136))) :rule cong :premises (t34.t13 t34.t19 t34.t22))
-(step t34.t24 (cl (= @p_119 (! (= @p_125 @p_136) :named @p_137))) :rule cong :premises (t34.t7 t34.t23))
-(step t34 (cl (! (= @p_121 (! (forall ((veriT_vr13 Real) (veriT_vr14 Real) (veriT_vr15 Real)) @p_137) :named @p_139)) :named @p_138)) :rule bind)
-(step t35 (cl (not @p_138) (not @p_121) @p_139) :rule equiv_pos2)
-(step t36 (cl @p_139) :rule th_resolution :premises (t33 t34 t35))
-(anchor :step t37 :args ((:= (?v0 Real) veriT_vr16) (:= (?v1 Real) veriT_vr17)))
-(step t37.t1 (cl (! (= ?v0 veriT_vr16) :named @p_144)) :rule refl)
-(step t37.t2 (cl (= @p_4 (! (- veriT_vr16) :named @p_141))) :rule cong :premises (t37.t1))
-(step t37.t3 (cl (! (= ?v1 veriT_vr17) :named @p_145)) :rule refl)
-(step t37.t4 (cl (= @p_142 (! (divide$ @p_141 veriT_vr17) :named @p_143))) :rule cong :premises (t37.t2 t37.t3))
-(step t37.t5 (cl @p_144) :rule refl)
-(step t37.t6 (cl @p_145) :rule refl)
-(step t37.t7 (cl (= @p_5 (! (divide$ veriT_vr16 veriT_vr17) :named @p_146))) :rule cong :premises (t37.t5 t37.t6))
-(step t37.t8 (cl (= @p_147 (! (- @p_146) :named @p_148))) :rule cong :premises (t37.t7))
-(step t37.t9 (cl (= @p_149 (! (= @p_143 @p_148) :named @p_150))) :rule cong :premises (t37.t4 t37.t8))
-(step t37 (cl (! (= @p_140 (! (forall ((veriT_vr16 Real) (veriT_vr17 Real)) @p_150) :named @p_152)) :named @p_151)) :rule bind)
-(step t38 (cl (not @p_151) (not @p_140) @p_152) :rule equiv_pos2)
-(step t39 (cl @p_152) :rule th_resolution :premises (a8 t37 t38))
-(anchor :step t40 :args ((:= (veriT_vr16 Real) veriT_vr18) (:= (veriT_vr17 Real) veriT_vr19)))
-(step t40.t1 (cl (! (= veriT_vr16 veriT_vr18) :named @p_155)) :rule refl)
-(step t40.t2 (cl (= @p_141 (! (- veriT_vr18) :named @p_153))) :rule cong :premises (t40.t1))
-(step t40.t3 (cl (! (= veriT_vr17 veriT_vr19) :named @p_156)) :rule refl)
-(step t40.t4 (cl (= @p_143 (! (divide$ @p_153 veriT_vr19) :named @p_154))) :rule cong :premises (t40.t2 t40.t3))
-(step t40.t5 (cl @p_155) :rule refl)
-(step t40.t6 (cl @p_156) :rule refl)
-(step t40.t7 (cl (= @p_146 (! (divide$ veriT_vr18 veriT_vr19) :named @p_157))) :rule cong :premises (t40.t5 t40.t6))
-(step t40.t8 (cl (= @p_148 (! (- @p_157) :named @p_158))) :rule cong :premises (t40.t7))
-(step t40.t9 (cl (= @p_150 (! (= @p_154 @p_158) :named @p_159))) :rule cong :premises (t40.t4 t40.t8))
-(step t40 (cl (! (= @p_152 (! (forall ((veriT_vr18 Real) (veriT_vr19 Real)) @p_159) :named @p_161)) :named @p_160)) :rule bind)
-(step t41 (cl (not @p_160) (not @p_152) @p_161) :rule equiv_pos2)
-(step t42 (cl @p_161) :rule th_resolution :premises (t39 t40 t41))
-(anchor :step t43 :args ((:= (?v0 Real) veriT_vr20) (:= (?v1 Real) veriT_vr21)))
-(step t43.t1 (cl (! (= ?v0 veriT_vr20) :named @p_166)) :rule refl)
-(step t43.t2 (cl (= @p_4 (! (- veriT_vr20) :named @p_163))) :rule cong :premises (t43.t1))
-(step t43.t3 (cl (! (= ?v1 veriT_vr21) :named @p_167)) :rule refl)
-(step t43.t4 (cl (= @p_164 (! (times$ @p_163 veriT_vr21) :named @p_165))) :rule cong :premises (t43.t2 t43.t3))
-(step t43.t5 (cl @p_166) :rule refl)
-(step t43.t6 (cl @p_167) :rule refl)
-(step t43.t7 (cl (= @p_168 (! (times$ veriT_vr20 veriT_vr21) :named @p_169))) :rule cong :premises (t43.t5 t43.t6))
-(step t43.t8 (cl (= @p_170 (! (- @p_169) :named @p_171))) :rule cong :premises (t43.t7))
-(step t43.t9 (cl (= @p_172 (! (= @p_165 @p_171) :named @p_173))) :rule cong :premises (t43.t4 t43.t8))
-(step t43 (cl (! (= @p_162 (! (forall ((veriT_vr20 Real) (veriT_vr21 Real)) @p_173) :named @p_175)) :named @p_174)) :rule bind)
-(step t44 (cl (not @p_174) (not @p_162) @p_175) :rule equiv_pos2)
-(step t45 (cl @p_175) :rule th_resolution :premises (a9 t43 t44))
-(anchor :step t46 :args ((:= (veriT_vr20 Real) veriT_vr22) (:= (veriT_vr21 Real) veriT_vr23)))
-(step t46.t1 (cl (! (= veriT_vr20 veriT_vr22) :named @p_178)) :rule refl)
-(step t46.t2 (cl (= @p_163 (! (- veriT_vr22) :named @p_176))) :rule cong :premises (t46.t1))
-(step t46.t3 (cl (! (= veriT_vr21 veriT_vr23) :named @p_179)) :rule refl)
-(step t46.t4 (cl (= @p_165 (! (times$ @p_176 veriT_vr23) :named @p_177))) :rule cong :premises (t46.t2 t46.t3))
-(step t46.t5 (cl @p_178) :rule refl)
-(step t46.t6 (cl @p_179) :rule refl)
-(step t46.t7 (cl (= @p_169 (! (times$ veriT_vr22 veriT_vr23) :named @p_180))) :rule cong :premises (t46.t5 t46.t6))
-(step t46.t8 (cl (= @p_171 (! (- @p_180) :named @p_181))) :rule cong :premises (t46.t7))
-(step t46.t9 (cl (= @p_173 (! (= @p_177 @p_181) :named @p_182))) :rule cong :premises (t46.t4 t46.t8))
-(step t46 (cl (! (= @p_175 (! (forall ((veriT_vr22 Real) (veriT_vr23 Real)) @p_182) :named @p_184)) :named @p_183)) :rule bind)
-(step t47 (cl (not @p_183) (not @p_175) @p_184) :rule equiv_pos2)
-(step t48 (cl @p_184) :rule th_resolution :premises (t45 t46 t47))
-(anchor :step t49 :args ((:= (?v0 Real) veriT_vr24) (:= (?v1 Real) veriT_vr25) (:= (?v2 Real) veriT_vr26) (:= (?v3 Real) veriT_vr27)))
-(step t49.t1 (cl (! (= ?v0 veriT_vr24) :named @p_192)) :rule refl)
-(step t49.t2 (cl (! (= ?v1 veriT_vr25) :named @p_196)) :rule refl)
-(step t49.t3 (cl (= @p_186 (! (pair$ veriT_vr24 veriT_vr25) :named @p_187))) :rule cong :premises (t49.t1 t49.t2))
-(step t49.t4 (cl (! (= ?v2 veriT_vr26) :named @p_193)) :rule refl)
-(step t49.t5 (cl (! (= ?v3 veriT_vr27) :named @p_197)) :rule refl)
-(step t49.t6 (cl (= @p_188 (! (pair$ veriT_vr26 veriT_vr27) :named @p_189))) :rule cong :premises (t49.t4 t49.t5))
-(step t49.t7 (cl (= @p_190 (! (= @p_187 @p_189) :named @p_191))) :rule cong :premises (t49.t3 t49.t6))
-(step t49.t8 (cl @p_192) :rule refl)
-(step t49.t9 (cl @p_193) :rule refl)
-(step t49.t10 (cl (= @p_194 (! (= veriT_vr24 veriT_vr26) :named @p_195))) :rule cong :premises (t49.t8 t49.t9))
-(step t49.t11 (cl @p_196) :rule refl)
-(step t49.t12 (cl @p_197) :rule refl)
-(step t49.t13 (cl (= @p_198 (! (= veriT_vr25 veriT_vr27) :named @p_199))) :rule cong :premises (t49.t11 t49.t12))
-(step t49.t14 (cl (= @p_200 (! (and @p_195 @p_199) :named @p_201))) :rule cong :premises (t49.t10 t49.t13))
-(step t49.t15 (cl (= @p_202 (! (= @p_191 @p_201) :named @p_203))) :rule cong :premises (t49.t7 t49.t14))
-(step t49 (cl (! (= @p_185 (! (forall ((veriT_vr24 Real) (veriT_vr25 Real) (veriT_vr26 Real) (veriT_vr27 Real)) @p_203) :named @p_205)) :named @p_204)) :rule bind)
-(step t50 (cl (not @p_204) (not @p_185) @p_205) :rule equiv_pos2)
-(step t51 (cl @p_205) :rule th_resolution :premises (a10 t49 t50))
-(anchor :step t52 :args ((:= (veriT_vr24 Real) veriT_vr28) (:= (veriT_vr25 Real) veriT_vr29) (:= (veriT_vr26 Real) veriT_vr30) (:= (veriT_vr27 Real) veriT_vr31)))
-(step t52.t1 (cl (! (= veriT_vr24 veriT_vr28) :named @p_209)) :rule refl)
-(step t52.t2 (cl (! (= veriT_vr25 veriT_vr29) :named @p_212)) :rule refl)
-(step t52.t3 (cl (= @p_187 (! (pair$ veriT_vr28 veriT_vr29) :named @p_206))) :rule cong :premises (t52.t1 t52.t2))
-(step t52.t4 (cl (! (= veriT_vr26 veriT_vr30) :named @p_210)) :rule refl)
-(step t52.t5 (cl (! (= veriT_vr27 veriT_vr31) :named @p_213)) :rule refl)
-(step t52.t6 (cl (= @p_189 (! (pair$ veriT_vr30 veriT_vr31) :named @p_207))) :rule cong :premises (t52.t4 t52.t5))
-(step t52.t7 (cl (= @p_191 (! (= @p_206 @p_207) :named @p_208))) :rule cong :premises (t52.t3 t52.t6))
-(step t52.t8 (cl @p_209) :rule refl)
-(step t52.t9 (cl @p_210) :rule refl)
-(step t52.t10 (cl (= @p_195 (! (= veriT_vr28 veriT_vr30) :named @p_211))) :rule cong :premises (t52.t8 t52.t9))
-(step t52.t11 (cl @p_212) :rule refl)
-(step t52.t12 (cl @p_213) :rule refl)
-(step t52.t13 (cl (= @p_199 (! (= veriT_vr29 veriT_vr31) :named @p_214))) :rule cong :premises (t52.t11 t52.t12))
-(step t52.t14 (cl (= @p_201 (! (and @p_211 @p_214) :named @p_215))) :rule cong :premises (t52.t10 t52.t13))
-(step t52.t15 (cl (= @p_203 (! (= @p_208 @p_215) :named @p_216))) :rule cong :premises (t52.t7 t52.t14))
-(step t52 (cl (! (= @p_205 (! (forall ((veriT_vr28 Real) (veriT_vr29 Real) (veriT_vr30 Real) (veriT_vr31 Real)) @p_216) :named @p_218)) :named @p_217)) :rule bind)
-(step t53 (cl (not @p_217) (not @p_205) @p_218) :rule equiv_pos2)
-(step t54 (cl @p_218) :rule th_resolution :premises (t51 t52 t53))
-(step t55 (cl (! (= @p_219 (! (and @p_220 (! (not false) :named @p_228)) :named @p_222)) :named @p_221)) :rule bool_simplify)
-(step t56 (cl (! (not @p_221) :named @p_225) (! (not @p_219) :named @p_223) @p_222) :rule equiv_pos2)
-(step t57 (cl (not @p_223) @p_224) :rule not_not)
-(step t58 (cl @p_225 @p_224 @p_222) :rule th_resolution :premises (t57 t56))
-(step t59 (cl @p_222) :rule th_resolution :premises (a11 t55 t58))
-(step t60 (cl (! (= @p_222 (! (and @p_226 @p_227 @p_228) :named @p_230)) :named @p_229)) :rule ac_simp)
-(step t61 (cl (not @p_229) (not @p_222) @p_230) :rule equiv_pos2)
-(step t62 (cl @p_230) :rule th_resolution :premises (t59 t60 t61))
-(step t63 (cl (! (= @p_228 true) :named @p_291)) :rule not_simplify)
-(step t64 (cl (= @p_230 (! (and @p_226 @p_227 true) :named @p_231))) :rule cong :premises (t63))
-(step t65 (cl (= @p_231 @p_220)) :rule and_simplify)
-(step t66 (cl (! (= @p_230 @p_220) :named @p_232)) :rule trans :premises (t64 t65))
-(step t67 (cl (not @p_232) (not @p_230) @p_220) :rule equiv_pos2)
-(step t68 (cl @p_220) :rule th_resolution :premises (t62 t66 t67))
-(step t69 (cl @p_227) :rule and :premises (t68))
-(step t70 (cl (or (! (not @p_218) :named @p_233) (! (forall ((veriT_vr28 Real) (veriT_vr29 Real) (veriT_vr30 Real) (veriT_vr31 Real)) (or (not @p_208) @p_211)) :named @p_369))) :rule qnt_cnf)
-(step t71 (cl (not (! (not (! (not @p_161) :named @p_245)) :named @p_254)) @p_161) :rule not_not)
-(step t72 (cl (not (! (not (! (not @p_139) :named @p_256)) :named @p_276)) @p_139) :rule not_not)
-(step t73 (cl (not (! (not @p_233) :named @p_374)) @p_218) :rule not_not)
-(step t74 (cl (not (! (not (! (not @p_184) :named @p_234)) :named @p_243)) @p_184) :rule not_not)
-(step t75 (cl (or @p_234 (! (= (! (times$ (! (- 0.0) :named @p_238) d$) :named @p_239) (! (- (! (times$ 0.0 d$) :named @p_236)) :named @p_237)) :named @p_235))) :rule forall_inst :args ((:= veriT_vr22 0.0) (:= veriT_vr23 d$)))
-(anchor :step t76)
-(assume t76.h1 @p_235)
-(step t76.t2 (cl (! (= 0.0 @p_238) :named @p_249)) :rule minus_simplify)
-(step t76.t3 (cl (= @p_239 @p_236)) :rule cong :premises (t76.t2))
-(step t76.t4 (cl (! (= @p_235 (! (= @p_236 @p_237) :named @p_240)) :named @p_241)) :rule cong :premises (t76.t3))
-(step t76.t5 (cl (not @p_241) (! (not @p_235) :named @p_242) @p_240) :rule equiv_pos2)
-(step t76.t6 (cl @p_240) :rule th_resolution :premises (t76.h1 t76.t4 t76.t5))
-(step t76 (cl @p_242 @p_240) :rule subproof :discharge (h1))
-(step t77 (cl @p_234 @p_235) :rule or :premises (t75))
-(step t78 (cl (! (or @p_234 @p_240) :named @p_244) @p_243) :rule or_neg)
-(step t79 (cl @p_244 @p_184) :rule th_resolution :premises (t74 t78))
-(step t80 (cl @p_244 (! (not @p_240) :named @p_367)) :rule or_neg)
-(step t81 (cl @p_244) :rule th_resolution :premises (t77 t76 t79 t80))
-(step t82 (cl (or @p_245 (! (= (! (divide$ @p_238 2.0) :named @p_250) (! (- (! (divide$ 0.0 2.0) :named @p_247)) :named @p_248)) :named @p_246))) :rule forall_inst :args ((:= veriT_vr18 0.0) (:= veriT_vr19 2.0)))
-(anchor :step t83)
-(assume t83.h1 @p_246)
-(step t83.t2 (cl @p_249) :rule minus_simplify)
-(step t83.t3 (cl (= @p_250 @p_247)) :rule cong :premises (t83.t2))
-(step t83.t4 (cl (! (= @p_246 (! (= @p_247 @p_248) :named @p_251)) :named @p_252)) :rule cong :premises (t83.t3))
-(step t83.t5 (cl (not @p_252) (! (not @p_246) :named @p_253) @p_251) :rule equiv_pos2)
-(step t83.t6 (cl @p_251) :rule th_resolution :premises (t83.h1 t83.t4 t83.t5))
-(step t83 (cl @p_253 @p_251) :rule subproof :discharge (h1))
-(step t84 (cl @p_245 @p_246) :rule or :premises (t82))
-(step t85 (cl (! (or @p_245 @p_251) :named @p_255) @p_254) :rule or_neg)
-(step t86 (cl @p_255 @p_161) :rule th_resolution :premises (t71 t85))
-(step t87 (cl @p_255 (! (not @p_251) :named @p_350)) :rule or_neg)
-(step t88 (cl @p_255) :rule th_resolution :premises (t84 t83 t86 t87))
-(step t89 (cl (or @p_256 (! (= (! (< (! (divide$ @p_36 @p_36) :named @p_257) @p_257) :named @p_263) (! (and (! (=> (! (< 0.0 @p_36) :named @p_260) (! (< @p_36 @p_36) :named @p_258)) :named @p_264) (! (=> (! (< @p_36 0.0) :named @p_261) @p_258) :named @p_267) (! (not (! (= @p_36 0.0) :named @p_342)) :named @p_262)) :named @p_270)) :named @p_259))) :rule forall_inst :args ((:= veriT_vr13 @p_36) (:= veriT_vr14 @p_36) (:= veriT_vr15 @p_36)))
-(anchor :step t90)
-(assume t90.h1 @p_259)
-(step t90.t2 (cl (= @p_263 false)) :rule comp_simplify)
-(step t90.t3 (cl (= @p_258 false)) :rule comp_simplify)
-(step t90.t4 (cl (= @p_264 (! (=> @p_260 false) :named @p_265))) :rule cong :premises (t90.t3))
-(step t90.t5 (cl (= @p_265 (! (not @p_260) :named @p_266))) :rule implies_simplify)
-(step t90.t6 (cl (= @p_264 @p_266)) :rule trans :premises (t90.t4 t90.t5))
-(step t90.t7 (cl (= @p_267 (! (=> @p_261 false) :named @p_268))) :rule cong :premises (t90.t3))
-(step t90.t8 (cl (= @p_268 (! (not @p_261) :named @p_269))) :rule implies_simplify)
-(step t90.t9 (cl (= @p_267 @p_269)) :rule trans :premises (t90.t7 t90.t8))
-(step t90.t10 (cl (= @p_270 (! (and @p_266 @p_269 @p_262) :named @p_271))) :rule cong :premises (t90.t6 t90.t9))
-(step t90.t11 (cl (= @p_259 (! (= false @p_271) :named @p_272))) :rule cong :premises (t90.t2 t90.t10))
-(step t90.t12 (cl (= @p_272 (! (not @p_271) :named @p_273))) :rule equiv_simplify)
-(step t90.t13 (cl (! (= @p_259 @p_273) :named @p_274)) :rule trans :premises (t90.t11 t90.t12))
-(step t90.t14 (cl (not @p_274) (! (not @p_259) :named @p_275) @p_273) :rule equiv_pos2)
-(step t90.t15 (cl @p_273) :rule th_resolution :premises (t90.h1 t90.t13 t90.t14))
-(step t90 (cl @p_275 @p_273) :rule subproof :discharge (h1))
-(step t91 (cl @p_256 @p_259) :rule or :premises (t89))
-(step t92 (cl (! (or @p_256 @p_273) :named @p_277) @p_276) :rule or_neg)
-(step t93 (cl @p_277 @p_139) :rule th_resolution :premises (t72 t92))
-(step t94 (cl @p_277 (! (not @p_273) :named @p_278)) :rule or_neg)
-(step t95 (cl (not @p_278) @p_271) :rule not_not)
-(step t96 (cl @p_277 @p_271) :rule th_resolution :premises (t95 t94))
-(step t97 (cl @p_277) :rule th_resolution :premises (t91 t90 t93 t96))
-(step t98 (cl (or @p_256 (! (= (! (< @p_247 @p_3) :named @p_281) (! (and (! (=> (! (< 0.0 2.0) :named @p_282) @p_279) :named @p_283) (! (=> (! (< 2.0 0.0) :named @p_285) (! (< d$ 0.0) :named @p_287)) :named @p_286) (! (not (! (= 2.0 0.0) :named @p_289)) :named @p_290)) :named @p_292)) :named @p_280))) :rule forall_inst :args ((:= veriT_vr13 0.0) (:= veriT_vr14 2.0) (:= veriT_vr15 d$)))
-(anchor :step t99)
-(assume t99.h1 @p_280)
-(step t99.t2 (cl (= @p_282 true)) :rule comp_simplify)
-(step t99.t3 (cl (= @p_283 (! (=> true @p_279) :named @p_284))) :rule cong :premises (t99.t2))
-(step t99.t4 (cl (= @p_284 @p_279)) :rule implies_simplify)
-(step t99.t5 (cl (= @p_283 @p_279)) :rule trans :premises (t99.t3 t99.t4))
-(step t99.t6 (cl (= @p_285 false)) :rule comp_simplify)
-(step t99.t7 (cl (= @p_286 (! (=> false @p_287) :named @p_288))) :rule cong :premises (t99.t6))
-(step t99.t8 (cl (= @p_288 true)) :rule implies_simplify)
-(step t99.t9 (cl (= @p_286 true)) :rule trans :premises (t99.t7 t99.t8))
-(step t99.t10 (cl (= @p_289 false)) :rule eq_simplify)
-(step t99.t11 (cl (= @p_290 @p_228)) :rule cong :premises (t99.t10))
-(step t99.t12 (cl @p_291) :rule not_simplify)
-(step t99.t13 (cl (= @p_290 true)) :rule trans :premises (t99.t11 t99.t12))
-(step t99.t14 (cl (= @p_292 (! (and @p_279 true true) :named @p_293))) :rule cong :premises (t99.t5 t99.t9 t99.t13))
-(step t99.t15 (cl (= @p_293 (! (and @p_279) :named @p_294))) :rule and_simplify)
-(step t99.t16 (cl (= @p_294 @p_279)) :rule and_simplify)
-(step t99.t17 (cl (= @p_292 @p_279)) :rule trans :premises (t99.t14 t99.t15 t99.t16))
-(step t99.t18 (cl (! (= @p_280 (! (= @p_281 @p_279) :named @p_295)) :named @p_296)) :rule cong :premises (t99.t17))
-(step t99.t19 (cl (not @p_296) (! (not @p_280) :named @p_297) @p_295) :rule equiv_pos2)
-(step t99.t20 (cl @p_295) :rule th_resolution :premises (t99.h1 t99.t18 t99.t19))
-(step t99 (cl @p_297 @p_295) :rule subproof :discharge (h1))
-(step t100 (cl @p_256 @p_280) :rule or :premises (t98))
-(step t101 (cl (! (or @p_256 @p_295) :named @p_298) @p_276) :rule or_neg)
-(step t102 (cl @p_298 @p_139) :rule th_resolution :premises (t72 t101))
-(step t103 (cl @p_298 (! (not @p_295) :named @p_343)) :rule or_neg)
-(step t104 (cl @p_298) :rule th_resolution :premises (t100 t99 t102 t103))
-(step t105 (cl (not (! (not (! (not @p_84) :named @p_299)) :named @p_312)) @p_84) :rule not_not)
-(step t106 (cl (or @p_299 (! (= @p_36 (! (- @p_3 (! (ite (! (< @p_2 0.0) :named @p_301) (! (- @p_2) :named @p_303) @p_2) :named @p_304)) :named @p_305)) :named @p_300))) :rule forall_inst :args ((:= veriT_vr9 @p_2)))
-(anchor :step t107)
-(assume t107.h1 @p_300)
-(step t107.t2 (cl (= @p_3 @p_303)) :rule minus_simplify)
-(step t107.t3 (cl (= @p_304 (! (ite @p_301 @p_3 @p_2) :named @p_302))) :rule cong :premises (t107.t2))
-(step t107.t4 (cl (= @p_305 (! (- @p_3 @p_302) :named @p_306))) :rule cong :premises (t107.t3))
-(step t107.t5 (cl (! (= @p_300 (! (= @p_36 @p_306) :named @p_309)) :named @p_307)) :rule cong :premises (t107.t4))
-(step t107.t6 (cl (not @p_307) (! (not @p_300) :named @p_308) @p_309) :rule equiv_pos2)
-(step t107.t7 (cl @p_309) :rule th_resolution :premises (t107.h1 t107.t5 t107.t6))
-(step t107.t8 (cl (! (= @p_309 (! (and (! (= @p_36 (- @p_3 @p_302)) :named @p_345) (! (ite @p_301 (! (= @p_3 @p_302) :named @p_347) (= @p_2 @p_302)) :named @p_346)) :named @p_310)) :named @p_311)) :rule ite_intro)
-(step t107.t9 (cl (not @p_311) (not @p_309) @p_310) :rule equiv_pos2)
-(step t107.t10 (cl @p_310) :rule th_resolution :premises (t107.t7 t107.t8 t107.t9))
-(step t107 (cl @p_308 @p_310) :rule subproof :discharge (h1))
-(step t108 (cl @p_299 @p_300) :rule or :premises (t106))
-(step t109 (cl (! (or @p_299 @p_310) :named @p_313) @p_312) :rule or_neg)
-(step t110 (cl @p_313 @p_84) :rule th_resolution :premises (t105 t109))
-(step t111 (cl @p_313 (! (not @p_310) :named @p_344)) :rule or_neg)
-(step t112 (cl @p_313) :rule th_resolution :premises (t108 t107 t110 t111))
-(step t113 (cl (or @p_299 (! (= (! (diamond_y$ 0.0) :named @p_315) (! (- @p_3 (! (ite (! (< 0.0 0.0) :named @p_316) @p_238 0.0) :named @p_317)) :named @p_319)) :named @p_314))) :rule forall_inst :args ((:= veriT_vr9 0.0)))
-(anchor :step t114)
-(assume t114.h1 @p_314)
-(step t114.t2 (cl (= @p_316 false)) :rule comp_simplify)
-(step t114.t3 (cl @p_249) :rule minus_simplify)
-(step t114.t4 (cl (= @p_317 (! (ite false 0.0 0.0) :named @p_318))) :rule cong :premises (t114.t2 t114.t3))
-(step t114.t5 (cl (= 0.0 @p_318)) :rule ite_simplify)
-(step t114.t6 (cl (= 0.0 @p_317)) :rule trans :premises (t114.t4 t114.t5))
-(step t114.t7 (cl (= @p_319 (! (- @p_3 0.0) :named @p_320))) :rule cong :premises (t114.t6))
-(step t114.t8 (cl (= @p_3 @p_320)) :rule minus_simplify)
-(step t114.t9 (cl (= @p_3 @p_319)) :rule trans :premises (t114.t7 t114.t8))
-(step t114.t10 (cl (! (= @p_314 (! (= @p_3 @p_315) :named @p_321)) :named @p_322)) :rule cong :premises (t114.t9))
-(step t114.t11 (cl (not @p_322) (! (not @p_314) :named @p_323) @p_321) :rule equiv_pos2)
-(step t114.t12 (cl @p_321) :rule th_resolution :premises (t114.h1 t114.t10 t114.t11))
-(step t114 (cl @p_323 @p_321) :rule subproof :discharge (h1))
-(step t115 (cl @p_299 @p_314) :rule or :premises (t113))
-(step t116 (cl (! (or @p_299 @p_321) :named @p_324) @p_312) :rule or_neg)
-(step t117 (cl @p_324 @p_84) :rule th_resolution :premises (t105 t116))
-(step t118 (cl @p_324 (! (not @p_321) :named @p_359)) :rule or_neg)
-(step t119 (cl @p_324) :rule th_resolution :premises (t115 t114 t117 t118))
-(step t120 (cl (or (! (not @p_60) :named @p_348) (! (= (! (fun_app$ uub$ @p_7) :named @p_379) (! (pair$ @p_2 (! (times$ (- (* 2.0 @p_7) 1.0) @p_36) :named @p_371)) :named @p_370)) :named @p_349))) :rule forall_inst :args ((:= veriT_vr7 @p_7)))
-(step t121 (cl (or (! (not @p_34) :named @p_336) (! (= (! (fun_app$ uuc$ @p_7) :named @p_327) (! (pair$ (! (times$ (! (- @p_7 @p_7) :named @p_328) d$) :named @p_325) (! (diamond_y$ @p_325) :named @p_329)) :named @p_331)) :named @p_326))) :rule forall_inst :args ((:= veriT_vr1 @p_7)))
-(anchor :step t122)
-(assume t122.h1 @p_326)
-(step t122.t2 (cl (= 0.0 @p_328)) :rule minus_simplify)
-(step t122.t3 (cl (= @p_236 @p_325)) :rule cong :premises (t122.t2))
-(step t122.t4 (cl (= @p_329 (! (diamond_y$ @p_236) :named @p_330))) :rule cong :premises (t122.t3))
-(step t122.t5 (cl (= @p_331 (! (pair$ @p_236 @p_330) :named @p_332))) :rule cong :premises (t122.t3 t122.t4))
-(step t122.t6 (cl (! (= @p_326 (! (= @p_327 @p_332) :named @p_333)) :named @p_334)) :rule cong :premises (t122.t5))
-(step t122.t7 (cl (not @p_334) (! (not @p_326) :named @p_335) @p_333) :rule equiv_pos2)
-(step t122.t8 (cl @p_333) :rule th_resolution :premises (t122.h1 t122.t6 t122.t7))
-(step t122 (cl @p_335 @p_333) :rule subproof :discharge (h1))
-(step t123 (cl @p_336 @p_326) :rule or :premises (t121))
-(step t124 (cl (! (or @p_336 @p_333) :named @p_338) (! (not @p_336) :named @p_337)) :rule or_neg)
-(step t125 (cl (not @p_337) @p_34) :rule not_not)
-(step t126 (cl @p_338 @p_34) :rule th_resolution :premises (t125 t124))
-(step t127 (cl @p_338 (! (not @p_333) :named @p_380)) :rule or_neg)
-(step t128 (cl @p_338) :rule th_resolution :premises (t123 t122 t126 t127))
-(step t129 (cl @p_234 @p_240) :rule or :premises (t81))
-(step t130 (cl @p_240) :rule resolution :premises (t129 t48))
-(step t131 (cl @p_245 @p_251) :rule or :premises (t88))
-(step t132 (cl @p_251) :rule resolution :premises (t131 t42))
-(step t133 (cl @p_271 (! (not @p_266) :named @p_339) (! (not @p_269) :named @p_340) (! (not @p_262) :named @p_341)) :rule and_neg)
-(step t134 (cl (not @p_339) @p_260) :rule not_not)
-(step t135 (cl @p_271 @p_260 @p_340 @p_341) :rule th_resolution :premises (t134 t133))
-(step t136 (cl (not @p_340) @p_261) :rule not_not)
-(step t137 (cl @p_271 @p_260 @p_261 @p_341) :rule th_resolution :premises (t136 t135))
-(step t138 (cl (not @p_341) @p_342) :rule not_not)
-(step t139 (cl @p_271 @p_260 @p_261 @p_342) :rule th_resolution :premises (t138 t137))
-(step t140 (cl @p_256 @p_273) :rule or :premises (t97))
-(step t141 (cl @p_273) :rule resolution :premises (t140 t36))
-(step t142 (cl @p_343 @p_281 (not @p_279)) :rule equiv_pos1)
-(step t143 (cl @p_256 @p_295) :rule or :premises (t104))
-(step t144 (cl @p_343 @p_281) :rule resolution :premises (t142 a4))
-(step t145 (cl @p_295) :rule resolution :premises (t143 t36))
-(step t146 (cl @p_281) :rule resolution :premises (t144 t145))
-(step t147 (cl @p_344 @p_345) :rule and_pos)
-(step t148 (cl (not @p_346) (not @p_301) @p_347) :rule ite_pos2)
-(step t149 (cl @p_344 @p_346) :rule and_pos)
-(step t150 (cl @p_299 @p_310) :rule or :premises (t112))
-(step t151 (cl @p_310) :rule resolution :premises (t150 t27))
-(step t152 (cl @p_345) :rule resolution :premises (t147 t151))
-(step t153 (cl @p_346) :rule resolution :premises (t149 t151))
-(step t154 (cl @p_299 @p_321) :rule or :premises (t119))
-(step t155 (cl @p_321) :rule resolution :premises (t154 t27))
-(step t156 (cl @p_348 @p_349) :rule or :premises (t120))
-(step t157 (cl @p_349) :rule resolution :premises (t156 t21))
-(step t158 (cl @p_336 @p_333) :rule or :premises (t128))
-(step t159 (cl @p_333) :rule resolution :premises (t158 t15))
-(step t160 (cl (! (not @p_281) :named @p_352) (! (<= @p_2 @p_3) :named @p_351) @p_350) :rule la_generic :args (2.0 1.0 1))
-(step t161 (cl @p_351) :rule resolution :premises (t160 t132 t146))
-(step t162 (cl @p_352 (! (not (! (<= @p_3 @p_2) :named @p_355)) :named @p_353) @p_350) :rule la_generic :args (2.0 1.0 1))
-(step t163 (cl @p_353) :rule resolution :premises (t162 t132 t146))
-(step t164 (cl (! (not (! (= @p_3 @p_2) :named @p_360)) :named @p_354) @p_354 (! (not @p_351) :named @p_356) @p_355) :rule eq_congruent_pred)
-(step t165 (cl @p_354 @p_356 @p_355) :rule contraction :premises (t164))
-(step t166 (cl @p_354) :rule resolution :premises (t165 t163 t161))
-(step t167 (cl @p_352 @p_301 @p_350) :rule la_generic :args (2.0 2.0 1))
-(step t168 (cl @p_301) :rule resolution :premises (t167 t132 t146))
-(step t169 (cl @p_347) :rule resolution :premises (t148 t168 t153))
-(step t170 (cl (! (= @p_2 @p_2) :named @p_386)) :rule eq_reflexive)
-(step t171 (cl @p_266 (! (not @p_345) :named @p_357) (! (not @p_347) :named @p_358)) :rule la_generic :args (1.0 (- 1) (- 1)))
-(step t172 (cl @p_266) :rule resolution :premises (t171 t152 t169))
-(step t173 (cl @p_269 @p_357 @p_358) :rule la_generic :args (1.0 1 1))
-(step t174 (cl @p_269) :rule resolution :premises (t173 t152 t169))
-(step t175 (cl @p_342) :rule resolution :premises (t139 t174 t141 t172))
-(step t176 (cl (! (= @p_7 @p_7) :named @p_382)) :rule eq_reflexive)
-(step t177 (cl @p_359 (not (! (= @p_36 @p_315) :named @p_362)) @p_262 (! (not (! (= @p_2 0.0) :named @p_388)) :named @p_361) @p_360) :rule eq_transitive)
-(step t178 (cl @p_361 @p_362) :rule eq_congruent)
-(step t179 (cl @p_359 @p_262 @p_361 @p_360 @p_361) :rule th_resolution :premises (t177 t178))
-(step t180 (cl @p_359 @p_262 @p_361 @p_360) :rule contraction :premises (t179))
-(step t181 (cl @p_361) :rule resolution :premises (t180 t175 t155 t166))
-(step t182 (cl (or (! (= @p_36 @p_236) :named @p_363) (! (not (! (<= @p_36 @p_236) :named @p_366)) :named @p_364) (! (not (! (<= @p_236 @p_36) :named @p_368)) :named @p_365))) :rule la_disequality)
-(step t183 (cl @p_363 @p_364 @p_365) :rule or :premises (t182))
-(step t184 (cl @p_366 @p_367 @p_357 @p_358) :rule la_generic :args (2.0 1 (- 2) (- 2)))
-(step t185 (cl @p_366) :rule resolution :premises (t184 t130 t152 t169))
-(step t186 (cl @p_368 @p_367 @p_357 @p_358) :rule la_generic :args (2.0 (- 1) 2 2))
-(step t187 (cl @p_368) :rule resolution :premises (t186 t130 t152 t169))
-(step t188 (cl @p_363) :rule resolution :premises (t183 t187 t185))
-(step t189 (cl (! (not @p_363) :named @p_391) @p_262 (! (= 0.0 @p_236) :named @p_387)) :rule eq_transitive)
-(step t190 (cl @p_233 @p_369) :rule or :premises (t70))
-(step t191 (cl (or (! (not @p_369) :named @p_372) (! (or (! (not (! (= @p_370 @p_332) :named @p_381)) :named @p_377) (! (= @p_2 @p_236) :named @p_378)) :named @p_373))) :rule forall_inst :args ((:= veriT_vr28 @p_236) (:= veriT_vr29 @p_330) (:= veriT_vr30 @p_2) (:= veriT_vr31 @p_371)))
-(step t192 (cl @p_372 @p_373) :rule or :premises (t191))
-(step t193 (cl (! (or @p_233 @p_373) :named @p_375) @p_374) :rule or_neg)
-(step t194 (cl @p_375 @p_218) :rule th_resolution :premises (t73 t193))
-(step t195 (cl @p_375 (! (not @p_373) :named @p_376)) :rule or_neg)
-(step t196 (cl @p_375) :rule th_resolution :premises (t190 t192 t194 t195))
-(step t197 (cl @p_376 @p_377 @p_378) :rule or_pos)
-(step t198 (cl @p_233 @p_373) :rule or :premises (t196))
-(step t199 (cl @p_373) :rule resolution :premises (t198 t54))
-(step t200 (cl (! (not @p_349) :named @p_385) (not (! (= @p_379 @p_327) :named @p_383)) @p_380 @p_381) :rule eq_transitive)
-(step t201 (cl (! (not @p_227) :named @p_384) (not @p_382) @p_383) :rule eq_congruent)
-(step t202 (cl @p_384 @p_383) :rule th_resolution :premises (t201 t176))
-(step t203 (cl @p_385 @p_380 @p_381 @p_384) :rule th_resolution :premises (t200 t202))
-(step t204 (cl @p_381) :rule resolution :premises (t203 t69 t157 t159))
-(step t205 (cl (not @p_386) (! (not @p_378) :named @p_389) (! (not @p_387) :named @p_390) @p_388) :rule eq_transitive)
-(step t206 (cl @p_389 @p_390 @p_388) :rule th_resolution :premises (t205 t170))
-(step t207 (cl @p_389 @p_388 @p_391 @p_262) :rule th_resolution :premises (t206 t189))
-(step t208 (cl @p_389) :rule resolution :premises (t207 t175 t181 t188))
-(step t209 (cl) :rule resolution :premises (t197 t204 t199 t208))
-64700034c370281d48d21e99833e7ceba6103960 26 0
-unsat
-(assume a0 (! (forall ((?v0 A$) (?v1 B$) (?v2 C$)) (! (p$ ?v0 ?v1) :named @p_2)) :named @p_1))
-(assume a1 (! (=> (! (p$ z$ y$) :named @p_12) false) :named @p_11))
+(assume axiom0 (! (forall ((?v0 A$) (?v1 B$) (?v2 C$)) (! (p$ ?v0 ?v1) :named @p_2)) :named @p_1))
+(assume axiom1 (! (=> (! (p$ z$ y$) :named @p_12) false) :named @p_11))
(step t3 (cl (! (= @p_1 (! (forall ((?v0 A$) (?v1 B$)) @p_2) :named @p_4)) :named @p_3)) :rule qnt_rm_unused)
(step t4 (cl (not @p_3) (not @p_1) @p_4) :rule equiv_pos2)
-(step t5 (cl @p_4) :rule th_resolution :premises (a0 t3 t4))
+(step t5 (cl @p_4) :rule th_resolution :premises (axiom0 t3 t4))
(anchor :step t6 :args ((:= (?v0 A$) veriT_vr0) (:= (?v1 B$) veriT_vr1)))
(step t6.t1 (cl (= ?v0 veriT_vr0)) :rule refl)
(step t6.t2 (cl (= ?v1 veriT_vr1)) :rule refl)
@@ -6800,18 +6047,18 @@
(step t11 (cl @p_10) :rule th_resolution :premises (t8 t9 t10))
(step t12 (cl (! (= @p_11 (! (not @p_12) :named @p_14)) :named @p_13)) :rule implies_simplify)
(step t13 (cl (not @p_13) (not @p_11) @p_14) :rule equiv_pos2)
-(step t14 (cl @p_14) :rule th_resolution :premises (a1 t12 t13))
+(step t14 (cl @p_14) :rule th_resolution :premises (axiom1 t12 t13))
(step t15 (cl (or (! (not @p_10) :named @p_15) @p_12)) :rule forall_inst :args ((:= veriT_vr2 z$) (:= veriT_vr3 y$)))
(step t16 (cl @p_15 @p_12) :rule or :premises (t15))
(step t17 (cl) :rule resolution :premises (t16 t11 t14))
-732d0d825854417fe8b0c85959caf9624dd11670 23 0
+d91a4d59e816a47672957ce0be20acd9aa3eef3e 23 0
unsat
-(assume a0 (! (not (! (<= y$ (! (ite (! (<= x$ y$) :named @p_3) y$ x$) :named @p_2)) :named @p_7)) :named @p_1))
+(assume axiom0 (! (not (! (<= y$ (! (ite (! (<= x$ y$) :named @p_3) y$ x$) :named @p_2)) :named @p_7)) :named @p_1))
(step t2 (cl (! (= @p_1 (! (and (! (not (! (<= y$ @p_2) :named @p_13)) :named @p_9) (! (ite @p_3 (! (= y$ @p_2) :named @p_12) (! (= x$ @p_2) :named @p_11)) :named @p_10)) :named @p_5)) :named @p_4)) :rule ite_intro)
(step t3 (cl (! (not @p_4) :named @p_8) (! (not @p_1) :named @p_6) @p_5) :rule equiv_pos2)
(step t4 (cl (not @p_6) @p_7) :rule not_not)
(step t5 (cl @p_8 @p_7 @p_5) :rule th_resolution :premises (t4 t3))
-(step t6 (cl @p_5) :rule th_resolution :premises (a0 t2 t5))
+(step t6 (cl @p_5) :rule th_resolution :premises (axiom0 t2 t5))
(step t7 (cl @p_9) :rule and :premises (t6))
(step t8 (cl @p_10) :rule and :premises (t6))
(step t9 (cl @p_3 @p_11) :rule ite1 :premises (t8))
@@ -6828,24 +6075,24 @@
(step t20 (cl @p_12) :rule resolution :premises (t10 t19))
(step t21 (cl @p_13 @p_16) :rule la_generic :args (1 (- 1)))
(step t22 (cl) :rule resolution :premises (t21 t7 t20))
-f79704028180f39e90d9e958e4416fd1e60a60df 567 0
+47bc3239fb0fd8c5f8f4969f0c6c1996f0a21574 567 0
unsat
(define-fun veriT_sk0 () A$ (! (choice ((veriT_vr145 A$)) (not (! (not (! (and (! (= (! (arg_min_on$ f$ (! (image$b g$ b$) :named @p_6)) :named @p_336) (! (fun_app$b g$ veriT_vr145) :named @p_378)) :named @p_379) (! (member$a veriT_vr145 b$) :named @p_381)) :named @p_382)) :named @p_377))) :named @p_357))
-(assume a29 (! (forall ((?v0 B_set$) (?v1 B_c_fun$)) (! (=> (! (and (! (finite$ ?v0) :named @p_1) (! (not (! (= ?v0 bot$) :named @p_10)) :named @p_2)) :named @p_13) (! (member$ (! (arg_min_on$ ?v1 ?v0) :named @p_15) ?v0) :named @p_17)) :named @p_19)) :named @p_7))
-(assume a31 (! (forall ((?v0 B_set$) (?v1 B$) (?v2 B_c_fun$)) (! (=> (! (and @p_1 (! (and @p_2 (! (member$ ?v1 ?v0) :named @p_38)) :named @p_40)) :named @p_42) (! (less_eq$ (! (fun_app$ ?v2 (! (arg_min_on$ ?v2 ?v0) :named @p_45)) :named @p_47) (! (fun_app$ ?v2 ?v1) :named @p_50)) :named @p_52)) :named @p_54)) :named @p_33))
-(assume a33 (! (forall ((?v0 B_c_fun$) (?v1 A_b_fun$) (?v2 A$)) (! (= (! (fun_app$a (! (comp$ ?v0 ?v1) :named @p_78) ?v2) :named @p_80) (! (fun_app$ ?v0 (! (fun_app$b ?v1 ?v2) :named @p_3)) :named @p_86)) :named @p_88)) :named @p_77))
-(assume a36 (! (forall ((?v0 A_set$) (?v1 A_b_fun$)) (! (=> (! (finite$a ?v0) :named @p_103) (! (finite$ (! (image$b ?v1 ?v0) :named @p_106)) :named @p_108)) :named @p_110)) :named @p_102))
-(assume a40 (! (forall ((?v0 B$) (?v1 A_b_fun$) (?v2 A_set$)) (! (=> (! (and (! (member$ ?v0 (! (image$b ?v1 ?v2) :named @p_122)) :named @p_124) (! (forall ((?v3 A$)) (! (=> (! (and (! (= ?v0 (! (fun_app$b ?v1 ?v3) :named @p_130)) :named @p_132) (! (member$a ?v3 ?v2) :named @p_136)) :named @p_138) false) :named @p_140)) :named @p_126)) :named @p_142) false) :named @p_144)) :named @p_121))
-(assume a44 (! (forall ((?v0 B$) (?v1 A_b_fun$) (?v2 A$) (?v3 A_set$)) (! (=> (! (and (! (= @p_3 ?v0) :named @p_173) (! (member$a ?v2 ?v3) :named @p_176)) :named @p_178) (! (member$ ?v0 (! (image$b ?v1 ?v3) :named @p_183)) :named @p_185)) :named @p_187)) :named @p_171))
-(assume a48 (! (forall ((?v0 A_b_fun$) (?v1 A_set$)) (! (= (! (= bot$ (! (image$b ?v0 ?v1) :named @p_205)) :named @p_207) (! (= bot$a ?v1) :named @p_210)) :named @p_212)) :named @p_204))
-(assume a50 (! (forall ((?v0 B_c_fun$) (?v1 B_set$) (?v2 B$) (?v3 B$)) (! (=> (! (and (! (inj_on$ ?v0 ?v1) :named @p_224) (! (and (! (= (! (fun_app$ ?v0 ?v2) :named @p_227) (! (fun_app$ ?v0 ?v3) :named @p_229)) :named @p_231) (! (and (! (member$ ?v2 ?v1) :named @p_235) (! (member$ ?v3 ?v1) :named @p_238)) :named @p_240)) :named @p_242)) :named @p_244) (! (= ?v3 ?v2) :named @p_246)) :named @p_248)) :named @p_223))
-(assume a51 (! (forall ((?v0 C$) (?v1 C$)) (! (= (! (less$ ?v0 ?v1) :named @p_272) (! (and (! (less_eq$ ?v0 ?v1) :named @p_276) (! (not (! (= ?v0 ?v1) :named @p_278)) :named @p_280)) :named @p_282)) :named @p_284)) :named @p_271))
-(assume a23 (! (inj_on$ f$ @p_6) :named @p_353))
-(assume a24 (! (finite$a b$) :named @p_332))
-(assume a25 (not (! (= bot$a b$) :named @p_331)))
-(assume a26 (! (member$a (! (arg_min_on$a (! (comp$ f$ g$) :named @p_4) b$) :named @p_5) b$) :named @p_423))
-(assume a27 (! (not (! (exists ((?v0 A$)) (! (and (! (member$a ?v0 b$) :named @p_300) (! (less$ (! (fun_app$a @p_4 ?v0) :named @p_303) (! (fun_app$a @p_4 @p_5) :named @p_299)) :named @p_305)) :named @p_307)) :named @p_298)) :named @p_309))
-(assume a52 (not (! (= @p_336 (! (fun_app$b g$ @p_5) :named @p_333)) :named @p_355)))
+(assume axiom29 (! (forall ((?v0 B_set$) (?v1 B_c_fun$)) (! (=> (! (and (! (finite$ ?v0) :named @p_1) (! (not (! (= ?v0 bot$) :named @p_10)) :named @p_2)) :named @p_13) (! (member$ (! (arg_min_on$ ?v1 ?v0) :named @p_15) ?v0) :named @p_17)) :named @p_19)) :named @p_7))
+(assume axiom31 (! (forall ((?v0 B_set$) (?v1 B$) (?v2 B_c_fun$)) (! (=> (! (and @p_1 (! (and @p_2 (! (member$ ?v1 ?v0) :named @p_38)) :named @p_40)) :named @p_42) (! (less_eq$ (! (fun_app$ ?v2 (! (arg_min_on$ ?v2 ?v0) :named @p_45)) :named @p_47) (! (fun_app$ ?v2 ?v1) :named @p_50)) :named @p_52)) :named @p_54)) :named @p_33))
+(assume axiom33 (! (forall ((?v0 B_c_fun$) (?v1 A_b_fun$) (?v2 A$)) (! (= (! (fun_app$a (! (comp$ ?v0 ?v1) :named @p_78) ?v2) :named @p_80) (! (fun_app$ ?v0 (! (fun_app$b ?v1 ?v2) :named @p_3)) :named @p_86)) :named @p_88)) :named @p_77))
+(assume axiom36 (! (forall ((?v0 A_set$) (?v1 A_b_fun$)) (! (=> (! (finite$a ?v0) :named @p_103) (! (finite$ (! (image$b ?v1 ?v0) :named @p_106)) :named @p_108)) :named @p_110)) :named @p_102))
+(assume axiom40 (! (forall ((?v0 B$) (?v1 A_b_fun$) (?v2 A_set$)) (! (=> (! (and (! (member$ ?v0 (! (image$b ?v1 ?v2) :named @p_122)) :named @p_124) (! (forall ((?v3 A$)) (! (=> (! (and (! (= ?v0 (! (fun_app$b ?v1 ?v3) :named @p_130)) :named @p_132) (! (member$a ?v3 ?v2) :named @p_136)) :named @p_138) false) :named @p_140)) :named @p_126)) :named @p_142) false) :named @p_144)) :named @p_121))
+(assume axiom44 (! (forall ((?v0 B$) (?v1 A_b_fun$) (?v2 A$) (?v3 A_set$)) (! (=> (! (and (! (= @p_3 ?v0) :named @p_173) (! (member$a ?v2 ?v3) :named @p_176)) :named @p_178) (! (member$ ?v0 (! (image$b ?v1 ?v3) :named @p_183)) :named @p_185)) :named @p_187)) :named @p_171))
+(assume axiom48 (! (forall ((?v0 A_b_fun$) (?v1 A_set$)) (! (= (! (= bot$ (! (image$b ?v0 ?v1) :named @p_205)) :named @p_207) (! (= bot$a ?v1) :named @p_210)) :named @p_212)) :named @p_204))
+(assume axiom50 (! (forall ((?v0 B_c_fun$) (?v1 B_set$) (?v2 B$) (?v3 B$)) (! (=> (! (and (! (inj_on$ ?v0 ?v1) :named @p_224) (! (and (! (= (! (fun_app$ ?v0 ?v2) :named @p_227) (! (fun_app$ ?v0 ?v3) :named @p_229)) :named @p_231) (! (and (! (member$ ?v2 ?v1) :named @p_235) (! (member$ ?v3 ?v1) :named @p_238)) :named @p_240)) :named @p_242)) :named @p_244) (! (= ?v3 ?v2) :named @p_246)) :named @p_248)) :named @p_223))
+(assume axiom51 (! (forall ((?v0 C$) (?v1 C$)) (! (= (! (less$ ?v0 ?v1) :named @p_272) (! (and (! (less_eq$ ?v0 ?v1) :named @p_276) (! (not (! (= ?v0 ?v1) :named @p_278)) :named @p_280)) :named @p_282)) :named @p_284)) :named @p_271))
+(assume axiom23 (! (inj_on$ f$ @p_6) :named @p_353))
+(assume axiom24 (! (finite$a b$) :named @p_332))
+(assume axiom25 (not (! (= bot$a b$) :named @p_331)))
+(assume axiom26 (! (member$a (! (arg_min_on$a (! (comp$ f$ g$) :named @p_4) b$) :named @p_5) b$) :named @p_423))
+(assume axiom27 (! (not (! (exists ((?v0 A$)) (! (and (! (member$a ?v0 b$) :named @p_300) (! (less$ (! (fun_app$a @p_4 ?v0) :named @p_303) (! (fun_app$a @p_4 @p_5) :named @p_299)) :named @p_305)) :named @p_307)) :named @p_298)) :named @p_309))
+(assume axiom52 (not (! (= @p_336 (! (fun_app$b g$ @p_5) :named @p_333)) :named @p_355)))
(anchor :step t16 :args ((:= (?v0 B_set$) veriT_vr0) (:= (?v1 B_c_fun$) veriT_vr1)))
(step t16.t1 (cl (! (= ?v0 veriT_vr0) :named @p_9)) :rule refl)
(step t16.t2 (cl (= @p_1 (! (finite$ veriT_vr0) :named @p_8))) :rule cong :premises (t16.t1))
@@ -6861,7 +6108,7 @@
(step t16.t12 (cl (= @p_19 (! (=> @p_14 @p_18) :named @p_20))) :rule cong :premises (t16.t6 t16.t11))
(step t16 (cl (! (= @p_7 (! (forall ((veriT_vr0 B_set$) (veriT_vr1 B_c_fun$)) @p_20) :named @p_22)) :named @p_21)) :rule bind)
(step t17 (cl (not @p_21) (not @p_7) @p_22) :rule equiv_pos2)
-(step t18 (cl @p_22) :rule th_resolution :premises (a29 t16 t17))
+(step t18 (cl @p_22) :rule th_resolution :premises (axiom29 t16 t17))
(anchor :step t19 :args ((:= (veriT_vr0 B_set$) veriT_vr2) (:= (veriT_vr1 B_c_fun$) veriT_vr3)))
(step t19.t1 (cl (! (= veriT_vr0 veriT_vr2) :named @p_24)) :rule refl)
(step t19.t2 (cl (= @p_8 (! (finite$ veriT_vr2) :named @p_23))) :rule cong :premises (t19.t1))
@@ -6901,7 +6148,7 @@
(step t22.t20 (cl (= @p_54 (! (=> @p_43 @p_53) :named @p_55))) :rule cong :premises (t22.t10 t22.t19))
(step t22 (cl (! (= @p_33 (! (forall ((veriT_vr8 B_set$) (veriT_vr9 B$) (veriT_vr10 B_c_fun$)) @p_55) :named @p_57)) :named @p_56)) :rule bind)
(step t23 (cl (not @p_56) (not @p_33) @p_57) :rule equiv_pos2)
-(step t24 (cl @p_57) :rule th_resolution :premises (a31 t22 t23))
+(step t24 (cl @p_57) :rule th_resolution :premises (axiom31 t22 t23))
(anchor :step t25 :args ((veriT_vr8 B_set$) (veriT_vr9 B$) (veriT_vr10 B_c_fun$)))
(step t25.t1 (cl (= @p_43 (! (and @p_34 @p_37 @p_39) :named @p_58))) :rule ac_simp)
(step t25.t2 (cl (= @p_55 (! (=> @p_58 @p_53) :named @p_59))) :rule cong :premises (t25.t1))
@@ -6945,7 +6192,7 @@
(step t31.t11 (cl (= @p_88 (! (= @p_81 @p_87) :named @p_89))) :rule cong :premises (t31.t5 t31.t10))
(step t31 (cl (! (= @p_77 (! (forall ((veriT_vr20 B_c_fun$) (veriT_vr21 A_b_fun$) (veriT_vr22 A$)) @p_89) :named @p_91)) :named @p_90)) :rule bind)
(step t32 (cl (not @p_90) (not @p_77) @p_91) :rule equiv_pos2)
-(step t33 (cl @p_91) :rule th_resolution :premises (a33 t31 t32))
+(step t33 (cl @p_91) :rule th_resolution :premises (axiom33 t31 t32))
(anchor :step t34 :args ((:= (veriT_vr20 B_c_fun$) veriT_vr23) (:= (veriT_vr21 A_b_fun$) veriT_vr24) (:= (veriT_vr22 A$) veriT_vr25)))
(step t34.t1 (cl (! (= veriT_vr20 veriT_vr23) :named @p_94)) :rule refl)
(step t34.t2 (cl (! (= veriT_vr21 veriT_vr24) :named @p_95)) :rule refl)
@@ -6971,7 +6218,7 @@
(step t37.t7 (cl (= @p_110 (! (=> @p_104 @p_109) :named @p_111))) :rule cong :premises (t37.t2 t37.t6))
(step t37 (cl (! (= @p_102 (! (forall ((veriT_vr34 A_set$) (veriT_vr35 A_b_fun$)) @p_111) :named @p_113)) :named @p_112)) :rule bind)
(step t38 (cl (not @p_112) (not @p_102) @p_113) :rule equiv_pos2)
-(step t39 (cl @p_113) :rule th_resolution :premises (a36 t37 t38))
+(step t39 (cl @p_113) :rule th_resolution :premises (axiom36 t37 t38))
(anchor :step t40 :args ((:= (veriT_vr34 A_set$) veriT_vr36) (:= (veriT_vr35 A_b_fun$) veriT_vr37)))
(step t40.t1 (cl (! (= veriT_vr34 veriT_vr36) :named @p_115)) :rule refl)
(step t40.t2 (cl (= @p_104 (! (finite$a veriT_vr36) :named @p_114))) :rule cong :premises (t40.t1))
@@ -7005,7 +6252,7 @@
(step t43.t8 (cl (= @p_144 (! (=> @p_143 false) :named @p_145))) :rule cong :premises (t43.t7))
(step t43 (cl (! (= @p_121 (! (forall ((veriT_vr58 B$) (veriT_vr59 A_b_fun$) (veriT_vr60 A_set$)) @p_145) :named @p_147)) :named @p_146)) :rule bind)
(step t44 (cl (not @p_146) (not @p_121) @p_147) :rule equiv_pos2)
-(step t45 (cl @p_147) :rule th_resolution :premises (a40 t43 t44))
+(step t45 (cl @p_147) :rule th_resolution :premises (axiom40 t43 t44))
(anchor :step t46 :args ((veriT_vr58 B$) (veriT_vr59 A_b_fun$) (veriT_vr60 A_set$)))
(anchor :step t46.t1 :args ((veriT_vr61 A$)))
(step t46.t1.t1 (cl (= @p_141 (! (not @p_139) :named @p_149))) :rule implies_simplify)
@@ -7058,7 +6305,7 @@
(step t52.t15 (cl (= @p_187 (! (=> @p_179 @p_186) :named @p_188))) :rule cong :premises (t52.t9 t52.t14))
(step t52 (cl (! (= @p_171 (! (forall ((veriT_vr90 B$) (veriT_vr91 A_b_fun$) (veriT_vr92 A$) (veriT_vr93 A_set$)) @p_188) :named @p_190)) :named @p_189)) :rule bind)
(step t53 (cl (not @p_189) (not @p_171) @p_190) :rule equiv_pos2)
-(step t54 (cl @p_190) :rule th_resolution :premises (a44 t52 t53))
+(step t54 (cl @p_190) :rule th_resolution :premises (axiom44 t52 t53))
(anchor :step t55 :args ((:= (veriT_vr90 B$) veriT_vr94) (:= (veriT_vr91 A_b_fun$) veriT_vr95) (:= (veriT_vr92 A$) veriT_vr96) (:= (veriT_vr93 A_set$) veriT_vr97)))
(step t55.t1 (cl (! (= veriT_vr90 veriT_vr94) :named @p_196)) :rule refl)
(step t55.t2 (cl (! (= veriT_vr91 veriT_vr95) :named @p_197)) :rule refl)
@@ -7088,7 +6335,7 @@
(step t58.t7 (cl (= @p_212 (! (= @p_208 @p_211) :named @p_213))) :rule cong :premises (t58.t4 t58.t6))
(step t58 (cl (! (= @p_204 (! (forall ((veriT_vr114 A_b_fun$) (veriT_vr115 A_set$)) @p_213) :named @p_215)) :named @p_214)) :rule bind)
(step t59 (cl (not @p_214) (not @p_204) @p_215) :rule equiv_pos2)
-(step t60 (cl @p_215) :rule th_resolution :premises (a48 t58 t59))
+(step t60 (cl @p_215) :rule th_resolution :premises (axiom48 t58 t59))
(anchor :step t61 :args ((:= (veriT_vr114 A_b_fun$) veriT_vr116) (:= (veriT_vr115 A_set$) veriT_vr117)))
(step t61.t1 (cl (= veriT_vr114 veriT_vr116)) :rule refl)
(step t61.t2 (cl (! (= veriT_vr115 veriT_vr117) :named @p_218)) :rule refl)
@@ -7126,7 +6373,7 @@
(step t64.t23 (cl (= @p_248 (! (=> @p_245 @p_247) :named @p_249))) :rule cong :premises (t64.t19 t64.t22))
(step t64 (cl (! (= @p_223 (! (forall ((veriT_vr122 B_c_fun$) (veriT_vr123 B_set$) (veriT_vr124 B$) (veriT_vr125 B$)) @p_249) :named @p_251)) :named @p_250)) :rule bind)
(step t65 (cl (not @p_250) (not @p_223) @p_251) :rule equiv_pos2)
-(step t66 (cl @p_251) :rule th_resolution :premises (a50 t64 t65))
+(step t66 (cl @p_251) :rule th_resolution :premises (axiom50 t64 t65))
(anchor :step t67 :args ((veriT_vr122 B_c_fun$) (veriT_vr123 B_set$) (veriT_vr124 B$) (veriT_vr125 B$)))
(step t67.t1 (cl (= @p_245 (! (and @p_225 @p_232 @p_236 @p_239) :named @p_252))) :rule ac_simp)
(step t67.t2 (cl (= @p_249 (! (=> @p_252 @p_247) :named @p_253))) :rule cong :premises (t67.t1))
@@ -7173,7 +6420,7 @@
(step t73.t12 (cl (= @p_284 (! (= @p_273 @p_283) :named @p_285))) :rule cong :premises (t73.t3 t73.t11))
(step t73 (cl (! (= @p_271 (! (forall ((veriT_vr130 C$) (veriT_vr131 C$)) @p_285) :named @p_287)) :named @p_286)) :rule bind)
(step t74 (cl (not @p_286) (not @p_271) @p_287) :rule equiv_pos2)
-(step t75 (cl @p_287) :rule th_resolution :premises (a51 t73 t74))
+(step t75 (cl @p_287) :rule th_resolution :premises (axiom51 t73 t74))
(anchor :step t76 :args ((:= (veriT_vr130 C$) veriT_vr132) (:= (veriT_vr131 C$) veriT_vr133)))
(step t76.t1 (cl (! (= veriT_vr130 veriT_vr132) :named @p_289)) :rule refl)
(step t76.t2 (cl (! (= veriT_vr131 veriT_vr133) :named @p_290)) :rule refl)
@@ -7202,7 +6449,7 @@
(step t81 (cl (! (not @p_311) :named @p_314) (! (not @p_309) :named @p_313) @p_312) :rule equiv_pos2)
(step t82 (cl (not @p_313) @p_298) :rule not_not)
(step t83 (cl @p_314 @p_298 @p_312) :rule th_resolution :premises (t82 t81))
-(step t84 (cl @p_312) :rule th_resolution :premises (a27 t80 t83))
+(step t84 (cl @p_312) :rule th_resolution :premises (axiom27 t80 t83))
(anchor :step t85 :args ((:= (veriT_vr134 A$) veriT_vr135)))
(step t85.t1 (cl (! (= veriT_vr134 veriT_vr135) :named @p_316)) :rule refl)
(step t85.t2 (cl (= @p_301 (! (member$a veriT_vr135 b$) :named @p_315))) :rule cong :premises (t85.t1))
@@ -7232,12 +6479,12 @@
(step t104 (cl (or (! (not @p_32) :named @p_351) (! (=> (! (and @p_334 (! (not @p_335) :named @p_338)) :named @p_346) (! (member$ @p_336 @p_6) :named @p_350)) :named @p_349))) :rule forall_inst :args ((:= veriT_vr2 @p_6) (:= veriT_vr3 f$)))
(step t105 (cl (! (not @p_337) :named @p_340) @p_338 @p_331) :rule equiv_pos2)
(step t106 (cl @p_339 @p_337) :rule or :premises (t101))
-(step t107 (cl @p_340 @p_338) :rule resolution :premises (t105 a25))
+(step t107 (cl @p_340 @p_338) :rule resolution :premises (t105 axiom25))
(step t108 (cl @p_337) :rule resolution :premises (t106 t63))
(step t109 (cl @p_338) :rule resolution :premises (t107 t108))
(step t110 (cl (! (not @p_341) :named @p_343) (not @p_332) @p_334) :rule implies_pos)
(step t111 (cl @p_342 @p_341) :rule or :premises (t102))
-(step t112 (cl @p_343 @p_334) :rule resolution :premises (t110 a24))
+(step t112 (cl @p_343 @p_334) :rule resolution :premises (t110 axiom24))
(step t113 (cl @p_341) :rule resolution :premises (t111 t42))
(step t114 (cl @p_334) :rule resolution :premises (t112 t113))
(step t115 (cl @p_344 @p_345) :rule or :premises (t103))
@@ -7315,8 +6562,8 @@
(step t140 (cl @p_407 (not @p_353) (! (not @p_408) :named @p_411) (! (not @p_350) :named @p_415) (! (not @p_405) :named @p_412)) :rule and_neg)
(step t141 (cl (! (not @p_409) :named @p_413) (! (not @p_407) :named @p_414) @p_355) :rule implies_pos)
(step t142 (cl @p_410 @p_409) :rule or :premises (t126))
-(step t143 (cl @p_407 @p_411 @p_412) :rule resolution :premises (t140 a23 t125))
-(step t144 (cl @p_413 @p_414) :rule resolution :premises (t141 a52))
+(step t143 (cl @p_407 @p_411 @p_412) :rule resolution :premises (t140 axiom23 t125))
+(step t144 (cl @p_413 @p_414) :rule resolution :premises (t141 axiom52))
(step t145 (cl @p_409) :rule resolution :premises (t142 t72))
(step t146 (cl @p_414) :rule resolution :premises (t144 t145))
(step t147 (cl @p_389 @p_391) :rule and_pos)
@@ -7363,7 +6610,7 @@
(step t177 (cl @p_436) :rule th_resolution :premises (t173 t172 t175 t176))
(step t178 (cl @p_437 @p_429 @p_405) :rule or_pos)
(step t179 (cl @p_421 @p_434) :rule or :premises (t177))
-(step t180 (cl @p_437 @p_405) :rule resolution :premises (t178 a26))
+(step t180 (cl @p_437 @p_405) :rule resolution :premises (t178 axiom26))
(step t181 (cl @p_434) :rule resolution :premises (t179 t57))
(step t182 (cl @p_405) :rule resolution :premises (t180 t181))
(step t183 (cl @p_411) :rule resolution :premises (t143 t182 t146))
@@ -7396,9 +6643,801 @@
(step t210 (cl @p_456 @p_452 @p_455) :rule th_resolution :premises (t206 t209))
(step t211 (cl @p_457 @p_458 @p_440 @p_456 @p_455) :rule th_resolution :premises (t205 t210))
(step t212 (cl) :rule resolution :premises (t211 t116 t156 t193 t202 t204))
-ba9da4ba7350e0a8fc453119da89963e8ee28018 323 0
+2c004ebfd8457fdbede51bb75b1997f1f1e2bc6d 791 0
unsat
-(assume a1 (! (not (! (=> (! (forall ((?v0 Real_a_fun$) (?v1 B_list$)) (! (= (! (=> (! (and (! (= (! (rec_join$ ?v1) :named @p_3) ?v0) :named @p_68) (! (and (! (=> (! (and (! (= ?v1 nil$) :named @p_4) (! (= uu$ ?v0) :named @p_72)) :named @p_74) false) :named @p_76) (! (and (! (forall ((?v2 B$)) (! (=> (! (and (! (= ?v1 (! (cons$ ?v2 nil$) :named @p_8)) :named @p_5) (! (= ?v0 (! (coeff_cube_to_path$ ?v2) :named @p_1)) :named @p_82)) :named @p_84) false) :named @p_86)) :named @p_78) (! (forall ((?v2 B$) (?v3 B$) (?v4 B_list$)) (! (=> (! (and (! (= ?v1 (! (cons$ ?v2 (! (cons$ ?v3 ?v4) :named @p_2)) :named @p_9)) :named @p_6) (! (= ?v0 (! (joinpaths$ @p_1 (! (rec_join$ @p_2) :named @p_95)) :named @p_7)) :named @p_97)) :named @p_99) false) :named @p_101)) :named @p_88)) :named @p_103)) :named @p_105)) :named @p_107) false) :named @p_109) (! (=> (! (and (! (= @p_3 @p_3) :named @p_112) (! (and (! (=> (! (and @p_4 (! (= uu$ @p_3) :named @p_115)) :named @p_117) false) :named @p_119) (! (and (! (forall ((?v2 B$)) (! (=> (! (and @p_5 (! (= @p_3 @p_1) :named @p_125)) :named @p_127) false) :named @p_129)) :named @p_121) (! (forall ((?v2 B$) (?v3 B$) (?v4 B_list$)) (! (=> (! (and @p_6 (! (= @p_3 @p_7) :named @p_137)) :named @p_139) false) :named @p_141)) :named @p_131)) :named @p_143)) :named @p_145)) :named @p_147) false) :named @p_149)) :named @p_151)) :named @p_53) (! (= (! (forall ((?v0 B_list$) (?v1 Real_a_fun$)) (! (=> (! (and (! (= (! (rec_join$ ?v0) :named @p_10) ?v1) :named @p_19) (! (and (! (=> (! (and (! (= nil$ ?v0) :named @p_11) (! (= uu$ ?v1) :named @p_20)) :named @p_22) false) :named @p_24) (! (and (! (forall ((?v2 B$)) (! (=> (! (and (! (= @p_8 ?v0) :named @p_17) (! (= @p_1 ?v1) :named @p_27)) :named @p_29) false) :named @p_31)) :named @p_25) (! (forall ((?v2 B$) (?v3 B$) (?v4 B_list$)) (! (=> (! (and (! (= @p_9 ?v0) :named @p_18) (! (= @p_7 ?v1) :named @p_35)) :named @p_37) false) :named @p_39)) :named @p_33)) :named @p_41)) :named @p_43)) :named @p_45) false) :named @p_47)) :named @p_14) (! (forall ((?v0 B_list$)) (! (=> (! (and (! (= @p_10 @p_10) :named @p_15) (! (and (! (=> (! (and @p_11 (! (= uu$ @p_10) :named @p_21)) :named @p_23) false) :named @p_16) (! (and (! (forall ((?v1 B$)) (! (=> (! (and (! (= ?v0 (! (cons$ ?v1 nil$) :named @p_162)) :named @p_163) (! (= @p_10 (! (coeff_cube_to_path$ ?v1) :named @p_12)) :named @p_165)) :named @p_166) false) :named @p_167)) :named @p_161) (! (forall ((?v1 B$) (?v2 B$) (?v3 B_list$)) (! (=> (! (and (! (= ?v0 (! (cons$ ?v1 (! (cons$ ?v2 ?v3) :named @p_13)) :named @p_169)) :named @p_170) (! (= @p_10 (! (joinpaths$ @p_12 (! (rec_join$ @p_13) :named @p_175)) :named @p_176)) :named @p_177)) :named @p_178) false) :named @p_179)) :named @p_168)) :named @p_180)) :named @p_181)) :named @p_182) false) :named @p_183)) :named @p_51)) :named @p_49)) :named @p_52)) :named @p_55))
+(assume axiom0 (! (forall ((?v0 Real)) (! (= (! (fun_app$ uuc$ ?v0) :named @p_9) (! (pair$ (! (times$ (! (- ?v0 (! (divide$ 1.0 2.0) :named @p_7)) :named @p_12) d$) :named @p_1) (! (diamond_y$ @p_1) :named @p_16)) :named @p_18)) :named @p_20)) :named @p_6))
+(assume axiom3 (! (forall ((?v0 Real)) (! (= (! (fun_app$ uub$ ?v0) :named @p_37) (! (pair$ (! (- (! (divide$ d$ 2.0) :named @p_3)) :named @p_2) (! (times$ (! (- (! (* 2.0 ?v0) :named @p_40) 1.0) :named @p_42) (! (diamond_y$ @p_2) :named @p_36)) :named @p_44)) :named @p_46)) :named @p_48)) :named @p_35))
+(assume axiom4 (! (< 0.0 d$) :named @p_453))
+(assume axiom5 (! (forall ((?v0 Real)) (! (= (! (diamond_y$ ?v0) :named @p_62) (! (- @p_3 (! (ite (! (< ?v0 0.0) :named @p_65) (! (- ?v0) :named @p_4) ?v0) :named @p_68)) :named @p_70)) :named @p_72)) :named @p_61))
+(assume axiom7 (! (forall ((?v0 Real) (?v1 Real) (?v2 Real)) (! (= (! (< (! (divide$ ?v0 ?v1) :named @p_5) (! (divide$ ?v2 ?v1) :named @p_88)) :named @p_90) (! (and (! (=> (! (< 0.0 ?v1) :named @p_92) (! (< ?v0 ?v2) :named @p_96)) :named @p_98) (! (and (! (=> (! (< ?v1 0.0) :named @p_100) (! (< ?v2 ?v0) :named @p_102)) :named @p_104) (! (not (! (= 0.0 ?v1) :named @p_106)) :named @p_108)) :named @p_110)) :named @p_112)) :named @p_114)) :named @p_85))
+(assume axiom8 (! (forall ((?v0 Real) (?v1 Real)) (! (= (! (divide$ @p_4 ?v1) :named @p_142) (! (- @p_5) :named @p_147)) :named @p_149)) :named @p_140))
+(assume axiom9 (! (forall ((?v0 Real) (?v1 Real)) (! (= (! (times$ @p_4 ?v1) :named @p_164) (! (- (! (times$ ?v0 ?v1) :named @p_168)) :named @p_170)) :named @p_172)) :named @p_162))
+(assume axiom10 (! (forall ((?v0 Real) (?v1 Real) (?v2 Real) (?v3 Real)) (! (= (! (= (! (pair$ ?v0 ?v1) :named @p_186) (! (pair$ ?v2 ?v3) :named @p_188)) :named @p_190) (! (and (! (= ?v0 ?v2) :named @p_194) (! (= ?v1 ?v3) :named @p_198)) :named @p_200)) :named @p_202)) :named @p_185))
+(assume axiom11 (! (not (! (=> (! (and (! (not (= uua$ uu$)) :named @p_226) (! (= uuc$ uub$) :named @p_227)) :named @p_220) false) :named @p_224)) :named @p_219))
+(anchor :step t10 :args ((:= (?v0 Real) veriT_vr0)))
+(step t10.t1 (cl (! (= ?v0 veriT_vr0) :named @p_11)) :rule refl)
+(step t10.t2 (cl (= @p_9 (! (fun_app$ uuc$ veriT_vr0) :named @p_10))) :rule cong :premises (t10.t1))
+(step t10.t3 (cl @p_11) :rule refl)
+(step t10.t4 (cl (! (= @p_12 (! (- veriT_vr0 @p_7) :named @p_13)) :named @p_14)) :rule cong :premises (t10.t3))
+(step t10.t5 (cl (! (= @p_1 (! (times$ @p_13 d$) :named @p_8)) :named @p_15)) :rule cong :premises (t10.t4))
+(step t10.t6 (cl @p_11) :rule refl)
+(step t10.t7 (cl @p_14) :rule cong :premises (t10.t6))
+(step t10.t8 (cl @p_15) :rule cong :premises (t10.t7))
+(step t10.t9 (cl (= @p_16 (! (diamond_y$ @p_8) :named @p_17))) :rule cong :premises (t10.t8))
+(step t10.t10 (cl (= @p_18 (! (pair$ @p_8 @p_17) :named @p_19))) :rule cong :premises (t10.t5 t10.t9))
+(step t10.t11 (cl (= @p_20 (! (= @p_10 @p_19) :named @p_21))) :rule cong :premises (t10.t2 t10.t10))
+(step t10 (cl (! (= @p_6 (! (forall ((veriT_vr0 Real)) @p_21) :named @p_23)) :named @p_22)) :rule bind)
+(step t11 (cl (not @p_22) (not @p_6) @p_23) :rule equiv_pos2)
+(step t12 (cl @p_23) :rule th_resolution :premises (axiom0 t10 t11))
+(anchor :step t13 :args ((:= (veriT_vr0 Real) veriT_vr1)))
+(step t13.t1 (cl (! (= veriT_vr0 veriT_vr1) :named @p_26)) :rule refl)
+(step t13.t2 (cl (= @p_10 (! (fun_app$ uuc$ veriT_vr1) :named @p_25))) :rule cong :premises (t13.t1))
+(step t13.t3 (cl @p_26) :rule refl)
+(step t13.t4 (cl (! (= @p_13 (! (- veriT_vr1 @p_7) :named @p_27)) :named @p_28)) :rule cong :premises (t13.t3))
+(step t13.t5 (cl (! (= @p_8 (! (times$ @p_27 d$) :named @p_24)) :named @p_29)) :rule cong :premises (t13.t4))
+(step t13.t6 (cl @p_26) :rule refl)
+(step t13.t7 (cl @p_28) :rule cong :premises (t13.t6))
+(step t13.t8 (cl @p_29) :rule cong :premises (t13.t7))
+(step t13.t9 (cl (= @p_17 (! (diamond_y$ @p_24) :named @p_30))) :rule cong :premises (t13.t8))
+(step t13.t10 (cl (= @p_19 (! (pair$ @p_24 @p_30) :named @p_31))) :rule cong :premises (t13.t5 t13.t9))
+(step t13.t11 (cl (= @p_21 (! (= @p_25 @p_31) :named @p_32))) :rule cong :premises (t13.t2 t13.t10))
+(step t13 (cl (! (= @p_23 (! (forall ((veriT_vr1 Real)) @p_32) :named @p_34)) :named @p_33)) :rule bind)
+(step t14 (cl (not @p_33) (not @p_23) @p_34) :rule equiv_pos2)
+(step t15 (cl @p_34) :rule th_resolution :premises (t12 t13 t14))
+(anchor :step t16 :args ((:= (?v0 Real) veriT_vr6)))
+(step t16.t1 (cl (! (= ?v0 veriT_vr6) :named @p_39)) :rule refl)
+(step t16.t2 (cl (= @p_37 (! (fun_app$ uub$ veriT_vr6) :named @p_38))) :rule cong :premises (t16.t1))
+(step t16.t3 (cl @p_39) :rule refl)
+(step t16.t4 (cl (= @p_40 (! (* 2.0 veriT_vr6) :named @p_41))) :rule cong :premises (t16.t3))
+(step t16.t5 (cl (= @p_42 (! (- @p_41 1.0) :named @p_43))) :rule cong :premises (t16.t4))
+(step t16.t6 (cl (= @p_44 (! (times$ @p_43 @p_36) :named @p_45))) :rule cong :premises (t16.t5))
+(step t16.t7 (cl (= @p_46 (! (pair$ @p_2 @p_45) :named @p_47))) :rule cong :premises (t16.t6))
+(step t16.t8 (cl (= @p_48 (! (= @p_38 @p_47) :named @p_49))) :rule cong :premises (t16.t2 t16.t7))
+(step t16 (cl (! (= @p_35 (! (forall ((veriT_vr6 Real)) @p_49) :named @p_51)) :named @p_50)) :rule bind)
+(step t17 (cl (not @p_50) (not @p_35) @p_51) :rule equiv_pos2)
+(step t18 (cl @p_51) :rule th_resolution :premises (axiom3 t16 t17))
+(anchor :step t19 :args ((:= (veriT_vr6 Real) veriT_vr7)))
+(step t19.t1 (cl (! (= veriT_vr6 veriT_vr7) :named @p_53)) :rule refl)
+(step t19.t2 (cl (= @p_38 (! (fun_app$ uub$ veriT_vr7) :named @p_52))) :rule cong :premises (t19.t1))
+(step t19.t3 (cl @p_53) :rule refl)
+(step t19.t4 (cl (= @p_41 (! (* 2.0 veriT_vr7) :named @p_54))) :rule cong :premises (t19.t3))
+(step t19.t5 (cl (= @p_43 (! (- @p_54 1.0) :named @p_55))) :rule cong :premises (t19.t4))
+(step t19.t6 (cl (= @p_45 (! (times$ @p_55 @p_36) :named @p_56))) :rule cong :premises (t19.t5))
+(step t19.t7 (cl (= @p_47 (! (pair$ @p_2 @p_56) :named @p_57))) :rule cong :premises (t19.t6))
+(step t19.t8 (cl (= @p_49 (! (= @p_52 @p_57) :named @p_58))) :rule cong :premises (t19.t2 t19.t7))
+(step t19 (cl (! (= @p_51 (! (forall ((veriT_vr7 Real)) @p_58) :named @p_60)) :named @p_59)) :rule bind)
+(step t20 (cl (not @p_59) (not @p_51) @p_60) :rule equiv_pos2)
+(step t21 (cl @p_60) :rule th_resolution :premises (t18 t19 t20))
+(anchor :step t22 :args ((:= (?v0 Real) veriT_vr8)))
+(step t22.t1 (cl (! (= ?v0 veriT_vr8) :named @p_64)) :rule refl)
+(step t22.t2 (cl (= @p_62 (! (diamond_y$ veriT_vr8) :named @p_63))) :rule cong :premises (t22.t1))
+(step t22.t3 (cl @p_64) :rule refl)
+(step t22.t4 (cl (= @p_65 (! (< veriT_vr8 0.0) :named @p_66))) :rule cong :premises (t22.t3))
+(step t22.t5 (cl @p_64) :rule refl)
+(step t22.t6 (cl (= @p_4 (! (- veriT_vr8) :named @p_67))) :rule cong :premises (t22.t5))
+(step t22.t7 (cl @p_64) :rule refl)
+(step t22.t8 (cl (= @p_68 (! (ite @p_66 @p_67 veriT_vr8) :named @p_69))) :rule cong :premises (t22.t4 t22.t6 t22.t7))
+(step t22.t9 (cl (= @p_70 (! (- @p_3 @p_69) :named @p_71))) :rule cong :premises (t22.t8))
+(step t22.t10 (cl (= @p_72 (! (= @p_63 @p_71) :named @p_73))) :rule cong :premises (t22.t2 t22.t9))
+(step t22 (cl (! (= @p_61 (! (forall ((veriT_vr8 Real)) @p_73) :named @p_75)) :named @p_74)) :rule bind)
+(step t23 (cl (not @p_74) (not @p_61) @p_75) :rule equiv_pos2)
+(step t24 (cl @p_75) :rule th_resolution :premises (axiom5 t22 t23))
+(anchor :step t25 :args ((:= (veriT_vr8 Real) veriT_vr9)))
+(step t25.t1 (cl (! (= veriT_vr8 veriT_vr9) :named @p_77)) :rule refl)
+(step t25.t2 (cl (= @p_63 (! (diamond_y$ veriT_vr9) :named @p_76))) :rule cong :premises (t25.t1))
+(step t25.t3 (cl @p_77) :rule refl)
+(step t25.t4 (cl (= @p_66 (! (< veriT_vr9 0.0) :named @p_78))) :rule cong :premises (t25.t3))
+(step t25.t5 (cl @p_77) :rule refl)
+(step t25.t6 (cl (= @p_67 (! (- veriT_vr9) :named @p_79))) :rule cong :premises (t25.t5))
+(step t25.t7 (cl @p_77) :rule refl)
+(step t25.t8 (cl (= @p_69 (! (ite @p_78 @p_79 veriT_vr9) :named @p_80))) :rule cong :premises (t25.t4 t25.t6 t25.t7))
+(step t25.t9 (cl (= @p_71 (! (- @p_3 @p_80) :named @p_81))) :rule cong :premises (t25.t8))
+(step t25.t10 (cl (= @p_73 (! (= @p_76 @p_81) :named @p_82))) :rule cong :premises (t25.t2 t25.t9))
+(step t25 (cl (! (= @p_75 (! (forall ((veriT_vr9 Real)) @p_82) :named @p_84)) :named @p_83)) :rule bind)
+(step t26 (cl (not @p_83) (not @p_75) @p_84) :rule equiv_pos2)
+(step t27 (cl @p_84) :rule th_resolution :premises (t24 t25 t26))
+(anchor :step t28 :args ((:= (?v0 Real) veriT_vr10) (:= (?v1 Real) veriT_vr11) (:= (?v2 Real) veriT_vr12)))
+(step t28.t1 (cl (! (= ?v0 veriT_vr10) :named @p_94)) :rule refl)
+(step t28.t2 (cl (! (= ?v1 veriT_vr11) :named @p_87)) :rule refl)
+(step t28.t3 (cl (= @p_5 (! (divide$ veriT_vr10 veriT_vr11) :named @p_86))) :rule cong :premises (t28.t1 t28.t2))
+(step t28.t4 (cl (! (= ?v2 veriT_vr12) :named @p_95)) :rule refl)
+(step t28.t5 (cl @p_87) :rule refl)
+(step t28.t6 (cl (= @p_88 (! (divide$ veriT_vr12 veriT_vr11) :named @p_89))) :rule cong :premises (t28.t4 t28.t5))
+(step t28.t7 (cl (= @p_90 (! (< @p_86 @p_89) :named @p_91))) :rule cong :premises (t28.t3 t28.t6))
+(step t28.t8 (cl @p_87) :rule refl)
+(step t28.t9 (cl (= @p_92 (! (< 0.0 veriT_vr11) :named @p_93))) :rule cong :premises (t28.t8))
+(step t28.t10 (cl @p_94) :rule refl)
+(step t28.t11 (cl @p_95) :rule refl)
+(step t28.t12 (cl (= @p_96 (! (< veriT_vr10 veriT_vr12) :named @p_97))) :rule cong :premises (t28.t10 t28.t11))
+(step t28.t13 (cl (= @p_98 (! (=> @p_93 @p_97) :named @p_99))) :rule cong :premises (t28.t9 t28.t12))
+(step t28.t14 (cl @p_87) :rule refl)
+(step t28.t15 (cl (= @p_100 (! (< veriT_vr11 0.0) :named @p_101))) :rule cong :premises (t28.t14))
+(step t28.t16 (cl @p_95) :rule refl)
+(step t28.t17 (cl @p_94) :rule refl)
+(step t28.t18 (cl (= @p_102 (! (< veriT_vr12 veriT_vr10) :named @p_103))) :rule cong :premises (t28.t16 t28.t17))
+(step t28.t19 (cl (= @p_104 (! (=> @p_101 @p_103) :named @p_105))) :rule cong :premises (t28.t15 t28.t18))
+(step t28.t20 (cl @p_87) :rule refl)
+(step t28.t21 (cl (= @p_106 (! (= 0.0 veriT_vr11) :named @p_107))) :rule cong :premises (t28.t20))
+(step t28.t22 (cl (= @p_108 (! (not @p_107) :named @p_109))) :rule cong :premises (t28.t21))
+(step t28.t23 (cl (= @p_110 (! (and @p_105 @p_109) :named @p_111))) :rule cong :premises (t28.t19 t28.t22))
+(step t28.t24 (cl (= @p_112 (! (and @p_99 @p_111) :named @p_113))) :rule cong :premises (t28.t13 t28.t23))
+(step t28.t25 (cl (= @p_114 (! (= @p_91 @p_113) :named @p_115))) :rule cong :premises (t28.t7 t28.t24))
+(step t28 (cl (! (= @p_85 (! (forall ((veriT_vr10 Real) (veriT_vr11 Real) (veriT_vr12 Real)) @p_115) :named @p_117)) :named @p_116)) :rule bind)
+(step t29 (cl (not @p_116) (not @p_85) @p_117) :rule equiv_pos2)
+(step t30 (cl @p_117) :rule th_resolution :premises (axiom7 t28 t29))
+(anchor :step t31 :args ((veriT_vr10 Real) (veriT_vr11 Real) (veriT_vr12 Real)))
+(step t31.t1 (cl (= @p_113 (! (and @p_99 @p_105 @p_109) :named @p_118))) :rule ac_simp)
+(step t31.t2 (cl (= @p_115 (! (= @p_91 @p_118) :named @p_119))) :rule cong :premises (t31.t1))
+(step t31 (cl (! (= @p_117 (! (forall ((veriT_vr10 Real) (veriT_vr11 Real) (veriT_vr12 Real)) @p_119) :named @p_121)) :named @p_120)) :rule bind)
+(step t32 (cl (not @p_120) (not @p_117) @p_121) :rule equiv_pos2)
+(step t33 (cl @p_121) :rule th_resolution :premises (t30 t31 t32))
+(anchor :step t34 :args ((:= (veriT_vr10 Real) veriT_vr13) (:= (veriT_vr11 Real) veriT_vr14) (:= (veriT_vr12 Real) veriT_vr15)))
+(step t34.t1 (cl (! (= veriT_vr10 veriT_vr13) :named @p_127)) :rule refl)
+(step t34.t2 (cl (! (= veriT_vr11 veriT_vr14) :named @p_123)) :rule refl)
+(step t34.t3 (cl (= @p_86 (! (divide$ veriT_vr13 veriT_vr14) :named @p_122))) :rule cong :premises (t34.t1 t34.t2))
+(step t34.t4 (cl (! (= veriT_vr12 veriT_vr15) :named @p_128)) :rule refl)
+(step t34.t5 (cl @p_123) :rule refl)
+(step t34.t6 (cl (= @p_89 (! (divide$ veriT_vr15 veriT_vr14) :named @p_124))) :rule cong :premises (t34.t4 t34.t5))
+(step t34.t7 (cl (= @p_91 (! (< @p_122 @p_124) :named @p_125))) :rule cong :premises (t34.t3 t34.t6))
+(step t34.t8 (cl @p_123) :rule refl)
+(step t34.t9 (cl (= @p_93 (! (< 0.0 veriT_vr14) :named @p_126))) :rule cong :premises (t34.t8))
+(step t34.t10 (cl @p_127) :rule refl)
+(step t34.t11 (cl @p_128) :rule refl)
+(step t34.t12 (cl (= @p_97 (! (< veriT_vr13 veriT_vr15) :named @p_129))) :rule cong :premises (t34.t10 t34.t11))
+(step t34.t13 (cl (= @p_99 (! (=> @p_126 @p_129) :named @p_130))) :rule cong :premises (t34.t9 t34.t12))
+(step t34.t14 (cl @p_123) :rule refl)
+(step t34.t15 (cl (= @p_101 (! (< veriT_vr14 0.0) :named @p_131))) :rule cong :premises (t34.t14))
+(step t34.t16 (cl @p_128) :rule refl)
+(step t34.t17 (cl @p_127) :rule refl)
+(step t34.t18 (cl (= @p_103 (! (< veriT_vr15 veriT_vr13) :named @p_132))) :rule cong :premises (t34.t16 t34.t17))
+(step t34.t19 (cl (= @p_105 (! (=> @p_131 @p_132) :named @p_133))) :rule cong :premises (t34.t15 t34.t18))
+(step t34.t20 (cl @p_123) :rule refl)
+(step t34.t21 (cl (= @p_107 (! (= 0.0 veriT_vr14) :named @p_134))) :rule cong :premises (t34.t20))
+(step t34.t22 (cl (= @p_109 (! (not @p_134) :named @p_135))) :rule cong :premises (t34.t21))
+(step t34.t23 (cl (= @p_118 (! (and @p_130 @p_133 @p_135) :named @p_136))) :rule cong :premises (t34.t13 t34.t19 t34.t22))
+(step t34.t24 (cl (= @p_119 (! (= @p_125 @p_136) :named @p_137))) :rule cong :premises (t34.t7 t34.t23))
+(step t34 (cl (! (= @p_121 (! (forall ((veriT_vr13 Real) (veriT_vr14 Real) (veriT_vr15 Real)) @p_137) :named @p_139)) :named @p_138)) :rule bind)
+(step t35 (cl (not @p_138) (not @p_121) @p_139) :rule equiv_pos2)
+(step t36 (cl @p_139) :rule th_resolution :premises (t33 t34 t35))
+(anchor :step t37 :args ((:= (?v0 Real) veriT_vr16) (:= (?v1 Real) veriT_vr17)))
+(step t37.t1 (cl (! (= ?v0 veriT_vr16) :named @p_144)) :rule refl)
+(step t37.t2 (cl (= @p_4 (! (- veriT_vr16) :named @p_141))) :rule cong :premises (t37.t1))
+(step t37.t3 (cl (! (= ?v1 veriT_vr17) :named @p_145)) :rule refl)
+(step t37.t4 (cl (= @p_142 (! (divide$ @p_141 veriT_vr17) :named @p_143))) :rule cong :premises (t37.t2 t37.t3))
+(step t37.t5 (cl @p_144) :rule refl)
+(step t37.t6 (cl @p_145) :rule refl)
+(step t37.t7 (cl (= @p_5 (! (divide$ veriT_vr16 veriT_vr17) :named @p_146))) :rule cong :premises (t37.t5 t37.t6))
+(step t37.t8 (cl (= @p_147 (! (- @p_146) :named @p_148))) :rule cong :premises (t37.t7))
+(step t37.t9 (cl (= @p_149 (! (= @p_143 @p_148) :named @p_150))) :rule cong :premises (t37.t4 t37.t8))
+(step t37 (cl (! (= @p_140 (! (forall ((veriT_vr16 Real) (veriT_vr17 Real)) @p_150) :named @p_152)) :named @p_151)) :rule bind)
+(step t38 (cl (not @p_151) (not @p_140) @p_152) :rule equiv_pos2)
+(step t39 (cl @p_152) :rule th_resolution :premises (axiom8 t37 t38))
+(anchor :step t40 :args ((:= (veriT_vr16 Real) veriT_vr18) (:= (veriT_vr17 Real) veriT_vr19)))
+(step t40.t1 (cl (! (= veriT_vr16 veriT_vr18) :named @p_155)) :rule refl)
+(step t40.t2 (cl (= @p_141 (! (- veriT_vr18) :named @p_153))) :rule cong :premises (t40.t1))
+(step t40.t3 (cl (! (= veriT_vr17 veriT_vr19) :named @p_156)) :rule refl)
+(step t40.t4 (cl (= @p_143 (! (divide$ @p_153 veriT_vr19) :named @p_154))) :rule cong :premises (t40.t2 t40.t3))
+(step t40.t5 (cl @p_155) :rule refl)
+(step t40.t6 (cl @p_156) :rule refl)
+(step t40.t7 (cl (= @p_146 (! (divide$ veriT_vr18 veriT_vr19) :named @p_157))) :rule cong :premises (t40.t5 t40.t6))
+(step t40.t8 (cl (= @p_148 (! (- @p_157) :named @p_158))) :rule cong :premises (t40.t7))
+(step t40.t9 (cl (= @p_150 (! (= @p_154 @p_158) :named @p_159))) :rule cong :premises (t40.t4 t40.t8))
+(step t40 (cl (! (= @p_152 (! (forall ((veriT_vr18 Real) (veriT_vr19 Real)) @p_159) :named @p_161)) :named @p_160)) :rule bind)
+(step t41 (cl (not @p_160) (not @p_152) @p_161) :rule equiv_pos2)
+(step t42 (cl @p_161) :rule th_resolution :premises (t39 t40 t41))
+(anchor :step t43 :args ((:= (?v0 Real) veriT_vr20) (:= (?v1 Real) veriT_vr21)))
+(step t43.t1 (cl (! (= ?v0 veriT_vr20) :named @p_166)) :rule refl)
+(step t43.t2 (cl (= @p_4 (! (- veriT_vr20) :named @p_163))) :rule cong :premises (t43.t1))
+(step t43.t3 (cl (! (= ?v1 veriT_vr21) :named @p_167)) :rule refl)
+(step t43.t4 (cl (= @p_164 (! (times$ @p_163 veriT_vr21) :named @p_165))) :rule cong :premises (t43.t2 t43.t3))
+(step t43.t5 (cl @p_166) :rule refl)
+(step t43.t6 (cl @p_167) :rule refl)
+(step t43.t7 (cl (= @p_168 (! (times$ veriT_vr20 veriT_vr21) :named @p_169))) :rule cong :premises (t43.t5 t43.t6))
+(step t43.t8 (cl (= @p_170 (! (- @p_169) :named @p_171))) :rule cong :premises (t43.t7))
+(step t43.t9 (cl (= @p_172 (! (= @p_165 @p_171) :named @p_173))) :rule cong :premises (t43.t4 t43.t8))
+(step t43 (cl (! (= @p_162 (! (forall ((veriT_vr20 Real) (veriT_vr21 Real)) @p_173) :named @p_175)) :named @p_174)) :rule bind)
+(step t44 (cl (not @p_174) (not @p_162) @p_175) :rule equiv_pos2)
+(step t45 (cl @p_175) :rule th_resolution :premises (axiom9 t43 t44))
+(anchor :step t46 :args ((:= (veriT_vr20 Real) veriT_vr22) (:= (veriT_vr21 Real) veriT_vr23)))
+(step t46.t1 (cl (! (= veriT_vr20 veriT_vr22) :named @p_178)) :rule refl)
+(step t46.t2 (cl (= @p_163 (! (- veriT_vr22) :named @p_176))) :rule cong :premises (t46.t1))
+(step t46.t3 (cl (! (= veriT_vr21 veriT_vr23) :named @p_179)) :rule refl)
+(step t46.t4 (cl (= @p_165 (! (times$ @p_176 veriT_vr23) :named @p_177))) :rule cong :premises (t46.t2 t46.t3))
+(step t46.t5 (cl @p_178) :rule refl)
+(step t46.t6 (cl @p_179) :rule refl)
+(step t46.t7 (cl (= @p_169 (! (times$ veriT_vr22 veriT_vr23) :named @p_180))) :rule cong :premises (t46.t5 t46.t6))
+(step t46.t8 (cl (= @p_171 (! (- @p_180) :named @p_181))) :rule cong :premises (t46.t7))
+(step t46.t9 (cl (= @p_173 (! (= @p_177 @p_181) :named @p_182))) :rule cong :premises (t46.t4 t46.t8))
+(step t46 (cl (! (= @p_175 (! (forall ((veriT_vr22 Real) (veriT_vr23 Real)) @p_182) :named @p_184)) :named @p_183)) :rule bind)
+(step t47 (cl (not @p_183) (not @p_175) @p_184) :rule equiv_pos2)
+(step t48 (cl @p_184) :rule th_resolution :premises (t45 t46 t47))
+(anchor :step t49 :args ((:= (?v0 Real) veriT_vr24) (:= (?v1 Real) veriT_vr25) (:= (?v2 Real) veriT_vr26) (:= (?v3 Real) veriT_vr27)))
+(step t49.t1 (cl (! (= ?v0 veriT_vr24) :named @p_192)) :rule refl)
+(step t49.t2 (cl (! (= ?v1 veriT_vr25) :named @p_196)) :rule refl)
+(step t49.t3 (cl (= @p_186 (! (pair$ veriT_vr24 veriT_vr25) :named @p_187))) :rule cong :premises (t49.t1 t49.t2))
+(step t49.t4 (cl (! (= ?v2 veriT_vr26) :named @p_193)) :rule refl)
+(step t49.t5 (cl (! (= ?v3 veriT_vr27) :named @p_197)) :rule refl)
+(step t49.t6 (cl (= @p_188 (! (pair$ veriT_vr26 veriT_vr27) :named @p_189))) :rule cong :premises (t49.t4 t49.t5))
+(step t49.t7 (cl (= @p_190 (! (= @p_187 @p_189) :named @p_191))) :rule cong :premises (t49.t3 t49.t6))
+(step t49.t8 (cl @p_192) :rule refl)
+(step t49.t9 (cl @p_193) :rule refl)
+(step t49.t10 (cl (= @p_194 (! (= veriT_vr24 veriT_vr26) :named @p_195))) :rule cong :premises (t49.t8 t49.t9))
+(step t49.t11 (cl @p_196) :rule refl)
+(step t49.t12 (cl @p_197) :rule refl)
+(step t49.t13 (cl (= @p_198 (! (= veriT_vr25 veriT_vr27) :named @p_199))) :rule cong :premises (t49.t11 t49.t12))
+(step t49.t14 (cl (= @p_200 (! (and @p_195 @p_199) :named @p_201))) :rule cong :premises (t49.t10 t49.t13))
+(step t49.t15 (cl (= @p_202 (! (= @p_191 @p_201) :named @p_203))) :rule cong :premises (t49.t7 t49.t14))
+(step t49 (cl (! (= @p_185 (! (forall ((veriT_vr24 Real) (veriT_vr25 Real) (veriT_vr26 Real) (veriT_vr27 Real)) @p_203) :named @p_205)) :named @p_204)) :rule bind)
+(step t50 (cl (not @p_204) (not @p_185) @p_205) :rule equiv_pos2)
+(step t51 (cl @p_205) :rule th_resolution :premises (axiom10 t49 t50))
+(anchor :step t52 :args ((:= (veriT_vr24 Real) veriT_vr28) (:= (veriT_vr25 Real) veriT_vr29) (:= (veriT_vr26 Real) veriT_vr30) (:= (veriT_vr27 Real) veriT_vr31)))
+(step t52.t1 (cl (! (= veriT_vr24 veriT_vr28) :named @p_209)) :rule refl)
+(step t52.t2 (cl (! (= veriT_vr25 veriT_vr29) :named @p_212)) :rule refl)
+(step t52.t3 (cl (= @p_187 (! (pair$ veriT_vr28 veriT_vr29) :named @p_206))) :rule cong :premises (t52.t1 t52.t2))
+(step t52.t4 (cl (! (= veriT_vr26 veriT_vr30) :named @p_210)) :rule refl)
+(step t52.t5 (cl (! (= veriT_vr27 veriT_vr31) :named @p_213)) :rule refl)
+(step t52.t6 (cl (= @p_189 (! (pair$ veriT_vr30 veriT_vr31) :named @p_207))) :rule cong :premises (t52.t4 t52.t5))
+(step t52.t7 (cl (= @p_191 (! (= @p_206 @p_207) :named @p_208))) :rule cong :premises (t52.t3 t52.t6))
+(step t52.t8 (cl @p_209) :rule refl)
+(step t52.t9 (cl @p_210) :rule refl)
+(step t52.t10 (cl (= @p_195 (! (= veriT_vr28 veriT_vr30) :named @p_211))) :rule cong :premises (t52.t8 t52.t9))
+(step t52.t11 (cl @p_212) :rule refl)
+(step t52.t12 (cl @p_213) :rule refl)
+(step t52.t13 (cl (= @p_199 (! (= veriT_vr29 veriT_vr31) :named @p_214))) :rule cong :premises (t52.t11 t52.t12))
+(step t52.t14 (cl (= @p_201 (! (and @p_211 @p_214) :named @p_215))) :rule cong :premises (t52.t10 t52.t13))
+(step t52.t15 (cl (= @p_203 (! (= @p_208 @p_215) :named @p_216))) :rule cong :premises (t52.t7 t52.t14))
+(step t52 (cl (! (= @p_205 (! (forall ((veriT_vr28 Real) (veriT_vr29 Real) (veriT_vr30 Real) (veriT_vr31 Real)) @p_216) :named @p_218)) :named @p_217)) :rule bind)
+(step t53 (cl (not @p_217) (not @p_205) @p_218) :rule equiv_pos2)
+(step t54 (cl @p_218) :rule th_resolution :premises (t51 t52 t53))
+(step t55 (cl (! (= @p_219 (! (and @p_220 (! (not false) :named @p_228)) :named @p_222)) :named @p_221)) :rule bool_simplify)
+(step t56 (cl (! (not @p_221) :named @p_225) (! (not @p_219) :named @p_223) @p_222) :rule equiv_pos2)
+(step t57 (cl (not @p_223) @p_224) :rule not_not)
+(step t58 (cl @p_225 @p_224 @p_222) :rule th_resolution :premises (t57 t56))
+(step t59 (cl @p_222) :rule th_resolution :premises (axiom11 t55 t58))
+(step t60 (cl (! (= @p_222 (! (and @p_226 @p_227 @p_228) :named @p_230)) :named @p_229)) :rule ac_simp)
+(step t61 (cl (not @p_229) (not @p_222) @p_230) :rule equiv_pos2)
+(step t62 (cl @p_230) :rule th_resolution :premises (t59 t60 t61))
+(step t63 (cl (! (= @p_228 true) :named @p_379)) :rule not_simplify)
+(step t64 (cl (= @p_230 (! (and @p_226 @p_227 true) :named @p_231))) :rule cong :premises (t63))
+(step t65 (cl (= @p_231 @p_220)) :rule and_simplify)
+(step t66 (cl (! (= @p_230 @p_220) :named @p_232)) :rule trans :premises (t64 t65))
+(step t67 (cl (not @p_232) (not @p_230) @p_220) :rule equiv_pos2)
+(step t68 (cl @p_220) :rule th_resolution :premises (t62 t66 t67))
+(step t69 (cl @p_227) :rule and :premises (t68))
+(step t70 (cl (or (! (not @p_218) :named @p_244) (! (forall ((veriT_vr28 Real) (veriT_vr29 Real) (veriT_vr30 Real) (veriT_vr31 Real)) (or (not @p_208) @p_211)) :named @p_533))) :rule qnt_cnf)
+(step t71 (cl (or (! (not @p_161) :named @p_241) (! (= (! (divide$ (! (- 0.0) :named @p_236) d$) :named @p_237) (! (- (! (divide$ 0.0 d$) :named @p_234)) :named @p_235)) :named @p_233))) :rule forall_inst :args ((:= veriT_vr18 0.0) (:= veriT_vr19 d$)))
+(anchor :step t72)
+(assume t72.h1 @p_233)
+(step t72.t2 (cl (! (= 0.0 @p_236) :named @p_249)) :rule minus_simplify)
+(step t72.t3 (cl (= @p_234 @p_237)) :rule cong :premises (t72.t2))
+(step t72.t4 (cl (! (= @p_233 (! (= @p_234 @p_235) :named @p_238)) :named @p_239)) :rule cong :premises (t72.t3))
+(step t72.t5 (cl (not @p_239) (! (not @p_233) :named @p_240) @p_238) :rule equiv_pos2)
+(step t72.t6 (cl @p_238) :rule th_resolution :premises (t72.h1 t72.t4 t72.t5))
+(step t72 (cl @p_240 @p_238) :rule subproof :discharge (h1))
+(step t73 (cl @p_241 @p_233) :rule or :premises (t71))
+(step t74 (cl (! (or @p_241 @p_238) :named @p_243) (! (not @p_241) :named @p_242)) :rule or_neg)
+(step t75 (cl (not @p_242) @p_161) :rule not_not)
+(step t76 (cl @p_243 @p_161) :rule th_resolution :premises (t75 t74))
+(step t77 (cl @p_243 (! (not @p_238) :named @p_527)) :rule or_neg)
+(step t78 (cl @p_243) :rule th_resolution :premises (t73 t72 t76 t77))
+(step t79 (cl (not (! (not (! (not @p_139) :named @p_282)) :named @p_302)) @p_139) :rule not_not)
+(step t80 (cl @p_241 @p_238) :rule or :premises (t78))
+(step t81 (cl @p_238) :rule resolution :premises (t80 t42))
+(step t82 (cl (not (! (not @p_244) :named @p_538)) @p_218) :rule not_not)
+(step t83 (cl (not (! (not (! (not @p_184) :named @p_245)) :named @p_254)) @p_184) :rule not_not)
+(step t84 (cl (or @p_245 (! (= (! (times$ @p_236 d$) :named @p_250) (! (- (! (times$ 0.0 d$) :named @p_247)) :named @p_248)) :named @p_246))) :rule forall_inst :args ((:= veriT_vr22 0.0) (:= veriT_vr23 d$)))
+(anchor :step t85)
+(assume t85.h1 @p_246)
+(step t85.t2 (cl @p_249) :rule minus_simplify)
+(step t85.t3 (cl (= @p_250 @p_247)) :rule cong :premises (t85.t2))
+(step t85.t4 (cl (! (= @p_246 (! (= @p_247 @p_248) :named @p_251)) :named @p_252)) :rule cong :premises (t85.t3))
+(step t85.t5 (cl (not @p_252) (! (not @p_246) :named @p_253) @p_251) :rule equiv_pos2)
+(step t85.t6 (cl @p_251) :rule th_resolution :premises (t85.h1 t85.t4 t85.t5))
+(step t85 (cl @p_253 @p_251) :rule subproof :discharge (h1))
+(step t86 (cl @p_245 @p_246) :rule or :premises (t84))
+(step t87 (cl (! (or @p_245 @p_251) :named @p_255) @p_254) :rule or_neg)
+(step t88 (cl @p_255 @p_184) :rule th_resolution :premises (t83 t87))
+(step t89 (cl @p_255 (! (not @p_251) :named @p_531)) :rule or_neg)
+(step t90 (cl @p_255) :rule th_resolution :premises (t86 t85 t88 t89))
+(step t91 (cl (or @p_241 (! (= (! (divide$ (! (- @p_2) :named @p_258) 2.0) :named @p_259) (! (- (! (divide$ @p_2 2.0) :named @p_366)) :named @p_257)) :named @p_256))) :rule forall_inst :args ((:= veriT_vr18 @p_2) (:= veriT_vr19 2.0)))
+(anchor :step t92)
+(assume t92.h1 @p_256)
+(step t92.t2 (cl (! (= @p_3 @p_258) :named @p_267)) :rule minus_simplify)
+(step t92.t3 (cl (= @p_259 (! (divide$ @p_3 2.0) :named @p_260))) :rule cong :premises (t92.t2))
+(step t92.t4 (cl (! (= @p_256 (! (= @p_257 @p_260) :named @p_261)) :named @p_262)) :rule cong :premises (t92.t3))
+(step t92.t5 (cl (not @p_262) (! (not @p_256) :named @p_263) @p_261) :rule equiv_pos2)
+(step t92.t6 (cl @p_261) :rule th_resolution :premises (t92.h1 t92.t4 t92.t5))
+(step t92 (cl @p_263 @p_261) :rule subproof :discharge (h1))
+(step t93 (cl @p_241 @p_256) :rule or :premises (t91))
+(step t94 (cl (! (or @p_241 @p_261) :named @p_264) @p_242) :rule or_neg)
+(step t95 (cl @p_264 @p_161) :rule th_resolution :premises (t75 t94))
+(step t96 (cl @p_264 (! (not @p_261) :named @p_563)) :rule or_neg)
+(step t97 (cl @p_264) :rule th_resolution :premises (t93 t92 t95 t96))
+(step t98 (cl (or @p_241 (! (= (! (divide$ @p_258 0.0) :named @p_268) (! (- (! (divide$ @p_2 0.0) :named @p_305)) :named @p_266)) :named @p_265))) :rule forall_inst :args ((:= veriT_vr18 @p_2) (:= veriT_vr19 0.0)))
+(anchor :step t99)
+(assume t99.h1 @p_265)
+(step t99.t2 (cl @p_267) :rule minus_simplify)
+(step t99.t3 (cl (= @p_268 (! (divide$ @p_3 0.0) :named @p_269))) :rule cong :premises (t99.t2))
+(step t99.t4 (cl (! (= @p_265 (! (= @p_266 @p_269) :named @p_270)) :named @p_271)) :rule cong :premises (t99.t3))
+(step t99.t5 (cl (not @p_271) (! (not @p_265) :named @p_272) @p_270) :rule equiv_pos2)
+(step t99.t6 (cl @p_270) :rule th_resolution :premises (t99.h1 t99.t4 t99.t5))
+(step t99 (cl @p_272 @p_270) :rule subproof :discharge (h1))
+(step t100 (cl @p_241 @p_265) :rule or :premises (t98))
+(step t101 (cl (! (or @p_241 @p_270) :named @p_273) @p_242) :rule or_neg)
+(step t102 (cl @p_273 @p_161) :rule th_resolution :premises (t75 t101))
+(step t103 (cl @p_273 (! (not @p_270) :named @p_528)) :rule or_neg)
+(step t104 (cl @p_273) :rule th_resolution :premises (t100 t99 t102 t103))
+(step t105 (cl (or @p_241 (! (= (! (divide$ @p_235 2.0) :named @p_562) (! (- (! (divide$ @p_234 2.0) :named @p_552)) :named @p_558)) :named @p_495))) :rule forall_inst :args ((:= veriT_vr18 @p_234) (:= veriT_vr19 2.0)))
+(step t106 (cl (or @p_241 (! (= (! (divide$ @p_236 2.0) :named @p_277) (! (- (! (divide$ 0.0 2.0) :named @p_275)) :named @p_276)) :named @p_274))) :rule forall_inst :args ((:= veriT_vr18 0.0) (:= veriT_vr19 2.0)))
+(anchor :step t107)
+(assume t107.h1 @p_274)
+(step t107.t2 (cl @p_249) :rule minus_simplify)
+(step t107.t3 (cl (= @p_277 @p_275)) :rule cong :premises (t107.t2))
+(step t107.t4 (cl (! (= @p_274 (! (= @p_275 @p_276) :named @p_278)) :named @p_279)) :rule cong :premises (t107.t3))
+(step t107.t5 (cl (not @p_279) (! (not @p_274) :named @p_280) @p_278) :rule equiv_pos2)
+(step t107.t6 (cl @p_278) :rule th_resolution :premises (t107.h1 t107.t4 t107.t5))
+(step t107 (cl @p_280 @p_278) :rule subproof :discharge (h1))
+(step t108 (cl @p_241 @p_274) :rule or :premises (t106))
+(step t109 (cl (! (or @p_241 @p_278) :named @p_281) @p_242) :rule or_neg)
+(step t110 (cl @p_281 @p_161) :rule th_resolution :premises (t75 t109))
+(step t111 (cl @p_281 (! (not @p_278) :named @p_510)) :rule or_neg)
+(step t112 (cl @p_281) :rule th_resolution :premises (t108 t107 t110 t111))
+(step t113 (cl (or @p_282 (! (= (! (< (! (divide$ @p_36 @p_36) :named @p_283) @p_283) :named @p_289) (! (and (! (=> (! (< 0.0 @p_36) :named @p_286) (! (< @p_36 @p_36) :named @p_284)) :named @p_290) (! (=> (! (< @p_36 0.0) :named @p_287) @p_284) :named @p_293) (! (not (! (= @p_36 0.0) :named @p_499)) :named @p_288)) :named @p_296)) :named @p_285))) :rule forall_inst :args ((:= veriT_vr13 @p_36) (:= veriT_vr14 @p_36) (:= veriT_vr15 @p_36)))
+(anchor :step t114)
+(assume t114.h1 @p_285)
+(step t114.t2 (cl (= @p_289 false)) :rule comp_simplify)
+(step t114.t3 (cl (= @p_284 false)) :rule comp_simplify)
+(step t114.t4 (cl (= @p_290 (! (=> @p_286 false) :named @p_291))) :rule cong :premises (t114.t3))
+(step t114.t5 (cl (= @p_291 (! (not @p_286) :named @p_292))) :rule implies_simplify)
+(step t114.t6 (cl (= @p_290 @p_292)) :rule trans :premises (t114.t4 t114.t5))
+(step t114.t7 (cl (= @p_293 (! (=> @p_287 false) :named @p_294))) :rule cong :premises (t114.t3))
+(step t114.t8 (cl (= @p_294 (! (not @p_287) :named @p_295))) :rule implies_simplify)
+(step t114.t9 (cl (= @p_293 @p_295)) :rule trans :premises (t114.t7 t114.t8))
+(step t114.t10 (cl (= @p_296 (! (and @p_292 @p_295 @p_288) :named @p_297))) :rule cong :premises (t114.t6 t114.t9))
+(step t114.t11 (cl (= @p_285 (! (= false @p_297) :named @p_298))) :rule cong :premises (t114.t2 t114.t10))
+(step t114.t12 (cl (= @p_298 (! (not @p_297) :named @p_299))) :rule equiv_simplify)
+(step t114.t13 (cl (! (= @p_285 @p_299) :named @p_300)) :rule trans :premises (t114.t11 t114.t12))
+(step t114.t14 (cl (not @p_300) (! (not @p_285) :named @p_301) @p_299) :rule equiv_pos2)
+(step t114.t15 (cl @p_299) :rule th_resolution :premises (t114.h1 t114.t13 t114.t14))
+(step t114 (cl @p_301 @p_299) :rule subproof :discharge (h1))
+(step t115 (cl @p_282 @p_285) :rule or :premises (t113))
+(step t116 (cl (! (or @p_282 @p_299) :named @p_303) @p_302) :rule or_neg)
+(step t117 (cl @p_303 @p_139) :rule th_resolution :premises (t79 t116))
+(step t118 (cl @p_303 (! (not @p_299) :named @p_304)) :rule or_neg)
+(step t119 (cl (not @p_304) @p_297) :rule not_not)
+(step t120 (cl @p_303 @p_297) :rule th_resolution :premises (t119 t118))
+(step t121 (cl @p_303) :rule th_resolution :premises (t115 t114 t117 t120))
+(step t122 (cl (or @p_282 (! (= (! (< (! (divide$ (! (diamond_y$ @p_3) :named @p_306) 0.0) :named @p_328) @p_305) :named @p_309) (! (and (! (=> (! (< 0.0 0.0) :named @p_307) (! (< @p_306 @p_2) :named @p_311)) :named @p_310) (! (=> @p_307 (! (< @p_2 @p_306) :named @p_314)) :named @p_313) (! (not (! (= 0.0 0.0) :named @p_316)) :named @p_317)) :named @p_319)) :named @p_308))) :rule forall_inst :args ((:= veriT_vr13 @p_306) (:= veriT_vr14 0.0) (:= veriT_vr15 @p_2)))
+(anchor :step t123)
+(assume t123.h1 @p_308)
+(step t123.t2 (cl (! (= @p_307 false) :named @p_331)) :rule comp_simplify)
+(step t123.t3 (cl (! (= @p_310 (! (=> false @p_311) :named @p_312)) :named @p_392)) :rule cong :premises (t123.t2))
+(step t123.t4 (cl (! (= @p_312 true) :named @p_393)) :rule implies_simplify)
+(step t123.t5 (cl (! (= @p_310 true) :named @p_394)) :rule trans :premises (t123.t3 t123.t4))
+(step t123.t6 (cl (! (= @p_313 (! (=> false @p_314) :named @p_315)) :named @p_389)) :rule cong :premises (t123.t2))
+(step t123.t7 (cl (! (= @p_315 true) :named @p_390)) :rule implies_simplify)
+(step t123.t8 (cl (! (= @p_313 true) :named @p_391)) :rule trans :premises (t123.t6 t123.t7))
+(step t123.t9 (cl (! (= @p_316 true) :named @p_338)) :rule eq_simplify)
+(step t123.t10 (cl (! (= @p_317 (! (not true) :named @p_318)) :named @p_339)) :rule cong :premises (t123.t9))
+(step t123.t11 (cl (! (= @p_318 false) :named @p_340)) :rule not_simplify)
+(step t123.t12 (cl (! (= @p_317 false) :named @p_341)) :rule trans :premises (t123.t10 t123.t11))
+(step t123.t13 (cl (= @p_319 (! (and true true false) :named @p_320))) :rule cong :premises (t123.t5 t123.t8 t123.t12))
+(step t123.t14 (cl (! (= @p_320 (! (and false) :named @p_321)) :named @p_343)) :rule and_simplify)
+(step t123.t15 (cl (! (= @p_321 false) :named @p_344)) :rule and_simplify)
+(step t123.t16 (cl (= @p_319 false)) :rule trans :premises (t123.t13 t123.t14 t123.t15))
+(step t123.t17 (cl (= @p_308 (! (= @p_309 false) :named @p_322))) :rule cong :premises (t123.t16))
+(step t123.t18 (cl (= @p_322 (! (not @p_309) :named @p_323))) :rule equiv_simplify)
+(step t123.t19 (cl (! (= @p_308 @p_323) :named @p_324)) :rule trans :premises (t123.t17 t123.t18))
+(step t123.t20 (cl (not @p_324) (! (not @p_308) :named @p_325) @p_323) :rule equiv_pos2)
+(step t123.t21 (cl @p_323) :rule th_resolution :premises (t123.h1 t123.t19 t123.t20))
+(step t123 (cl @p_325 @p_323) :rule subproof :discharge (h1))
+(step t124 (cl @p_282 @p_308) :rule or :premises (t122))
+(step t125 (cl (! (or @p_282 @p_323) :named @p_326) @p_302) :rule or_neg)
+(step t126 (cl @p_326 @p_139) :rule th_resolution :premises (t79 t125))
+(step t127 (cl @p_326 (! (not @p_323) :named @p_327)) :rule or_neg)
+(step t128 (cl (not @p_327) @p_309) :rule not_not)
+(step t129 (cl @p_326 @p_309) :rule th_resolution :premises (t128 t127))
+(step t130 (cl @p_326) :rule th_resolution :premises (t124 t123 t126 t129))
+(step t131 (cl (or @p_282 (! (= (! (< @p_328 @p_269) :named @p_330) (! (and (! (=> @p_307 (! (< @p_306 @p_3) :named @p_333)) :named @p_332) (! (=> @p_307 (! (< @p_3 @p_306) :named @p_336)) :named @p_335) @p_317) :named @p_342)) :named @p_329))) :rule forall_inst :args ((:= veriT_vr13 @p_306) (:= veriT_vr14 0.0) (:= veriT_vr15 @p_3)))
+(anchor :step t132)
+(assume t132.h1 @p_329)
+(step t132.t2 (cl @p_331) :rule comp_simplify)
+(step t132.t3 (cl (! (= @p_332 (! (=> false @p_333) :named @p_334)) :named @p_427)) :rule cong :premises (t132.t2))
+(step t132.t4 (cl (! (= @p_334 true) :named @p_428)) :rule implies_simplify)
+(step t132.t5 (cl (! (= @p_332 true) :named @p_429)) :rule trans :premises (t132.t3 t132.t4))
+(step t132.t6 (cl (! (= @p_335 (! (=> false @p_336) :named @p_337)) :named @p_424)) :rule cong :premises (t132.t2))
+(step t132.t7 (cl (! (= @p_337 true) :named @p_425)) :rule implies_simplify)
+(step t132.t8 (cl (! (= @p_335 true) :named @p_426)) :rule trans :premises (t132.t6 t132.t7))
+(step t132.t9 (cl @p_338) :rule eq_simplify)
+(step t132.t10 (cl @p_339) :rule cong :premises (t132.t9))
+(step t132.t11 (cl @p_340) :rule not_simplify)
+(step t132.t12 (cl @p_341) :rule trans :premises (t132.t10 t132.t11))
+(step t132.t13 (cl (= @p_342 @p_320)) :rule cong :premises (t132.t5 t132.t8 t132.t12))
+(step t132.t14 (cl @p_343) :rule and_simplify)
+(step t132.t15 (cl @p_344) :rule and_simplify)
+(step t132.t16 (cl (= @p_342 false)) :rule trans :premises (t132.t13 t132.t14 t132.t15))
+(step t132.t17 (cl (= @p_329 (! (= @p_330 false) :named @p_345))) :rule cong :premises (t132.t16))
+(step t132.t18 (cl (= @p_345 (! (not @p_330) :named @p_346))) :rule equiv_simplify)
+(step t132.t19 (cl (! (= @p_329 @p_346) :named @p_347)) :rule trans :premises (t132.t17 t132.t18))
+(step t132.t20 (cl (not @p_347) (! (not @p_329) :named @p_348) @p_346) :rule equiv_pos2)
+(step t132.t21 (cl @p_346) :rule th_resolution :premises (t132.h1 t132.t19 t132.t20))
+(step t132 (cl @p_348 @p_346) :rule subproof :discharge (h1))
+(step t133 (cl @p_282 @p_329) :rule or :premises (t131))
+(step t134 (cl (! (or @p_282 @p_346) :named @p_349) @p_302) :rule or_neg)
+(step t135 (cl @p_349 @p_139) :rule th_resolution :premises (t79 t134))
+(step t136 (cl @p_349 (! (not @p_346) :named @p_350)) :rule or_neg)
+(step t137 (cl (not @p_350) @p_330) :rule not_not)
+(step t138 (cl @p_349 @p_330) :rule th_resolution :premises (t137 t136))
+(step t139 (cl @p_349) :rule th_resolution :premises (t133 t132 t135 t138))
+(step t140 (cl (or @p_282 (! (= (! (< @p_328 (! (divide$ 2.0 0.0) :named @p_437)) :named @p_352) (! (and (! (=> @p_307 (! (< @p_306 2.0) :named @p_354)) :named @p_353) (! (=> @p_307 (! (< 2.0 @p_306) :named @p_357)) :named @p_356) @p_317) :named @p_359)) :named @p_351))) :rule forall_inst :args ((:= veriT_vr13 @p_306) (:= veriT_vr14 0.0) (:= veriT_vr15 2.0)))
+(anchor :step t141)
+(assume t141.h1 @p_351)
+(step t141.t2 (cl @p_331) :rule comp_simplify)
+(step t141.t3 (cl (! (= @p_353 (! (=> false @p_354) :named @p_355)) :named @p_443)) :rule cong :premises (t141.t2))
+(step t141.t4 (cl (! (= @p_355 true) :named @p_444)) :rule implies_simplify)
+(step t141.t5 (cl (! (= @p_353 true) :named @p_445)) :rule trans :premises (t141.t3 t141.t4))
+(step t141.t6 (cl (! (= @p_356 (! (=> false @p_357) :named @p_358)) :named @p_440)) :rule cong :premises (t141.t2))
+(step t141.t7 (cl (! (= @p_358 true) :named @p_441)) :rule implies_simplify)
+(step t141.t8 (cl (! (= @p_356 true) :named @p_442)) :rule trans :premises (t141.t6 t141.t7))
+(step t141.t9 (cl @p_338) :rule eq_simplify)
+(step t141.t10 (cl @p_339) :rule cong :premises (t141.t9))
+(step t141.t11 (cl @p_340) :rule not_simplify)
+(step t141.t12 (cl @p_341) :rule trans :premises (t141.t10 t141.t11))
+(step t141.t13 (cl (= @p_359 @p_320)) :rule cong :premises (t141.t5 t141.t8 t141.t12))
+(step t141.t14 (cl @p_343) :rule and_simplify)
+(step t141.t15 (cl @p_344) :rule and_simplify)
+(step t141.t16 (cl (= @p_359 false)) :rule trans :premises (t141.t13 t141.t14 t141.t15))
+(step t141.t17 (cl (= @p_351 (! (= @p_352 false) :named @p_360))) :rule cong :premises (t141.t16))
+(step t141.t18 (cl (= @p_360 (! (not @p_352) :named @p_361))) :rule equiv_simplify)
+(step t141.t19 (cl (! (= @p_351 @p_361) :named @p_362)) :rule trans :premises (t141.t17 t141.t18))
+(step t141.t20 (cl (not @p_362) (! (not @p_351) :named @p_363) @p_361) :rule equiv_pos2)
+(step t141.t21 (cl @p_361) :rule th_resolution :premises (t141.h1 t141.t19 t141.t20))
+(step t141 (cl @p_363 @p_361) :rule subproof :discharge (h1))
+(step t142 (cl @p_282 @p_351) :rule or :premises (t140))
+(step t143 (cl (! (or @p_282 @p_361) :named @p_364) @p_302) :rule or_neg)
+(step t144 (cl @p_364 @p_139) :rule th_resolution :premises (t79 t143))
+(step t145 (cl @p_364 (! (not @p_361) :named @p_365)) :rule or_neg)
+(step t146 (cl (not @p_365) @p_352) :rule not_not)
+(step t147 (cl @p_364 @p_352) :rule th_resolution :premises (t146 t145))
+(step t148 (cl @p_364) :rule th_resolution :premises (t142 t141 t144 t147))
+(step t149 (cl (or @p_282 (! (= (! (< @p_366 @p_275) :named @p_368) (! (and (! (=> (! (< 0.0 2.0) :named @p_370) (! (< @p_2 0.0) :named @p_369)) :named @p_371) (! (=> (! (< 2.0 0.0) :named @p_373) (! (< 0.0 @p_2) :named @p_375)) :named @p_374) (! (not (! (= 2.0 0.0) :named @p_377)) :named @p_378)) :named @p_380)) :named @p_367))) :rule forall_inst :args ((:= veriT_vr13 @p_2) (:= veriT_vr14 2.0) (:= veriT_vr15 0.0)))
+(anchor :step t150)
+(assume t150.h1 @p_367)
+(step t150.t2 (cl (! (= @p_370 true) :named @p_405)) :rule comp_simplify)
+(step t150.t3 (cl (= @p_371 (! (=> true @p_369) :named @p_372))) :rule cong :premises (t150.t2))
+(step t150.t4 (cl (= @p_372 @p_369)) :rule implies_simplify)
+(step t150.t5 (cl (= @p_371 @p_369)) :rule trans :premises (t150.t3 t150.t4))
+(step t150.t6 (cl (! (= @p_373 false) :named @p_408)) :rule comp_simplify)
+(step t150.t7 (cl (= @p_374 (! (=> false @p_375) :named @p_376))) :rule cong :premises (t150.t6))
+(step t150.t8 (cl (= @p_376 true)) :rule implies_simplify)
+(step t150.t9 (cl (= @p_374 true)) :rule trans :premises (t150.t7 t150.t8))
+(step t150.t10 (cl (! (= @p_377 false) :named @p_412)) :rule eq_simplify)
+(step t150.t11 (cl (! (= @p_378 @p_228) :named @p_413)) :rule cong :premises (t150.t10))
+(step t150.t12 (cl @p_379) :rule not_simplify)
+(step t150.t13 (cl (! (= @p_378 true) :named @p_414)) :rule trans :premises (t150.t11 t150.t12))
+(step t150.t14 (cl (= @p_380 (! (and @p_369 true true) :named @p_381))) :rule cong :premises (t150.t5 t150.t9 t150.t13))
+(step t150.t15 (cl (= @p_381 (! (and @p_369) :named @p_382))) :rule and_simplify)
+(step t150.t16 (cl (= @p_382 @p_369)) :rule and_simplify)
+(step t150.t17 (cl (= @p_380 @p_369)) :rule trans :premises (t150.t14 t150.t15 t150.t16))
+(step t150.t18 (cl (! (= @p_367 (! (= @p_368 @p_369) :named @p_383)) :named @p_384)) :rule cong :premises (t150.t17))
+(step t150.t19 (cl (not @p_384) (! (not @p_367) :named @p_385) @p_383) :rule equiv_pos2)
+(step t150.t20 (cl @p_383) :rule th_resolution :premises (t150.h1 t150.t18 t150.t19))
+(step t150 (cl @p_385 @p_383) :rule subproof :discharge (h1))
+(step t151 (cl @p_282 @p_367) :rule or :premises (t149))
+(step t152 (cl (! (or @p_282 @p_383) :named @p_386) @p_302) :rule or_neg)
+(step t153 (cl @p_386 @p_139) :rule th_resolution :premises (t79 t152))
+(step t154 (cl @p_386 (! (not @p_383) :named @p_500)) :rule or_neg)
+(step t155 (cl @p_386) :rule th_resolution :premises (t151 t150 t153 t154))
+(step t156 (cl (or @p_282 (! (= (! (< @p_305 @p_328) :named @p_388) (! (and @p_313 @p_310 @p_317) :named @p_395)) :named @p_387))) :rule forall_inst :args ((:= veriT_vr13 @p_2) (:= veriT_vr14 0.0) (:= veriT_vr15 @p_306)))
+(anchor :step t157)
+(assume t157.h1 @p_387)
+(step t157.t2 (cl @p_331) :rule comp_simplify)
+(step t157.t3 (cl @p_389) :rule cong :premises (t157.t2))
+(step t157.t4 (cl @p_390) :rule implies_simplify)
+(step t157.t5 (cl @p_391) :rule trans :premises (t157.t3 t157.t4))
+(step t157.t6 (cl @p_392) :rule cong :premises (t157.t2))
+(step t157.t7 (cl @p_393) :rule implies_simplify)
+(step t157.t8 (cl @p_394) :rule trans :premises (t157.t6 t157.t7))
+(step t157.t9 (cl @p_338) :rule eq_simplify)
+(step t157.t10 (cl @p_339) :rule cong :premises (t157.t9))
+(step t157.t11 (cl @p_340) :rule not_simplify)
+(step t157.t12 (cl @p_341) :rule trans :premises (t157.t10 t157.t11))
+(step t157.t13 (cl (= @p_395 @p_320)) :rule cong :premises (t157.t5 t157.t8 t157.t12))
+(step t157.t14 (cl @p_343) :rule and_simplify)
+(step t157.t15 (cl @p_344) :rule and_simplify)
+(step t157.t16 (cl (= @p_395 false)) :rule trans :premises (t157.t13 t157.t14 t157.t15))
+(step t157.t17 (cl (= @p_387 (! (= @p_388 false) :named @p_396))) :rule cong :premises (t157.t16))
+(step t157.t18 (cl (= @p_396 (! (not @p_388) :named @p_397))) :rule equiv_simplify)
+(step t157.t19 (cl (! (= @p_387 @p_397) :named @p_398)) :rule trans :premises (t157.t17 t157.t18))
+(step t157.t20 (cl (not @p_398) (! (not @p_387) :named @p_399) @p_397) :rule equiv_pos2)
+(step t157.t21 (cl @p_397) :rule th_resolution :premises (t157.h1 t157.t19 t157.t20))
+(step t157 (cl @p_399 @p_397) :rule subproof :discharge (h1))
+(step t158 (cl @p_282 @p_387) :rule or :premises (t156))
+(step t159 (cl (! (or @p_282 @p_397) :named @p_400) @p_302) :rule or_neg)
+(step t160 (cl @p_400 @p_139) :rule th_resolution :premises (t79 t159))
+(step t161 (cl @p_400 (! (not @p_397) :named @p_401)) :rule or_neg)
+(step t162 (cl (not @p_401) @p_388) :rule not_not)
+(step t163 (cl @p_400 @p_388) :rule th_resolution :premises (t162 t161))
+(step t164 (cl @p_400) :rule th_resolution :premises (t158 t157 t160 t163))
+(step t165 (cl (or @p_282 (! (= (! (< @p_260 (! (divide$ @p_36 2.0) :named @p_516)) :named @p_403) (! (and (! (=> @p_370 (! (< @p_3 @p_36) :named @p_404)) :named @p_406) (! (=> @p_373 (! (< @p_36 @p_3) :named @p_410)) :named @p_409) @p_378) :named @p_415)) :named @p_402))) :rule forall_inst :args ((:= veriT_vr13 @p_3) (:= veriT_vr14 2.0) (:= veriT_vr15 @p_36)))
+(anchor :step t166)
+(assume t166.h1 @p_402)
+(step t166.t2 (cl @p_405) :rule comp_simplify)
+(step t166.t3 (cl (= @p_406 (! (=> true @p_404) :named @p_407))) :rule cong :premises (t166.t2))
+(step t166.t4 (cl (= @p_407 @p_404)) :rule implies_simplify)
+(step t166.t5 (cl (= @p_406 @p_404)) :rule trans :premises (t166.t3 t166.t4))
+(step t166.t6 (cl @p_408) :rule comp_simplify)
+(step t166.t7 (cl (= @p_409 (! (=> false @p_410) :named @p_411))) :rule cong :premises (t166.t6))
+(step t166.t8 (cl (= @p_411 true)) :rule implies_simplify)
+(step t166.t9 (cl (= @p_409 true)) :rule trans :premises (t166.t7 t166.t8))
+(step t166.t10 (cl @p_412) :rule eq_simplify)
+(step t166.t11 (cl @p_413) :rule cong :premises (t166.t10))
+(step t166.t12 (cl @p_379) :rule not_simplify)
+(step t166.t13 (cl @p_414) :rule trans :premises (t166.t11 t166.t12))
+(step t166.t14 (cl (= @p_415 (! (and @p_404 true true) :named @p_416))) :rule cong :premises (t166.t5 t166.t9 t166.t13))
+(step t166.t15 (cl (= @p_416 (! (and @p_404) :named @p_417))) :rule and_simplify)
+(step t166.t16 (cl (= @p_417 @p_404)) :rule and_simplify)
+(step t166.t17 (cl (= @p_415 @p_404)) :rule trans :premises (t166.t14 t166.t15 t166.t16))
+(step t166.t18 (cl (! (= @p_402 (! (= @p_403 @p_404) :named @p_418)) :named @p_419)) :rule cong :premises (t166.t17))
+(step t166.t19 (cl (not @p_419) (! (not @p_402) :named @p_420) @p_418) :rule equiv_pos2)
+(step t166.t20 (cl @p_418) :rule th_resolution :premises (t166.h1 t166.t18 t166.t19))
+(step t166 (cl @p_420 @p_418) :rule subproof :discharge (h1))
+(step t167 (cl @p_282 @p_402) :rule or :premises (t165))
+(step t168 (cl (! (or @p_282 @p_418) :named @p_421) @p_302) :rule or_neg)
+(step t169 (cl @p_421 @p_139) :rule th_resolution :premises (t79 t168))
+(step t170 (cl @p_421 (! (not @p_418) :named @p_501)) :rule or_neg)
+(step t171 (cl @p_421) :rule th_resolution :premises (t167 t166 t169 t170))
+(step t172 (cl (or @p_282 (! (= (! (< @p_269 @p_328) :named @p_423) (! (and @p_335 @p_332 @p_317) :named @p_430)) :named @p_422))) :rule forall_inst :args ((:= veriT_vr13 @p_3) (:= veriT_vr14 0.0) (:= veriT_vr15 @p_306)))
+(anchor :step t173)
+(assume t173.h1 @p_422)
+(step t173.t2 (cl @p_331) :rule comp_simplify)
+(step t173.t3 (cl @p_424) :rule cong :premises (t173.t2))
+(step t173.t4 (cl @p_425) :rule implies_simplify)
+(step t173.t5 (cl @p_426) :rule trans :premises (t173.t3 t173.t4))
+(step t173.t6 (cl @p_427) :rule cong :premises (t173.t2))
+(step t173.t7 (cl @p_428) :rule implies_simplify)
+(step t173.t8 (cl @p_429) :rule trans :premises (t173.t6 t173.t7))
+(step t173.t9 (cl @p_338) :rule eq_simplify)
+(step t173.t10 (cl @p_339) :rule cong :premises (t173.t9))
+(step t173.t11 (cl @p_340) :rule not_simplify)
+(step t173.t12 (cl @p_341) :rule trans :premises (t173.t10 t173.t11))
+(step t173.t13 (cl (= @p_430 @p_320)) :rule cong :premises (t173.t5 t173.t8 t173.t12))
+(step t173.t14 (cl @p_343) :rule and_simplify)
+(step t173.t15 (cl @p_344) :rule and_simplify)
+(step t173.t16 (cl (= @p_430 false)) :rule trans :premises (t173.t13 t173.t14 t173.t15))
+(step t173.t17 (cl (= @p_422 (! (= @p_423 false) :named @p_431))) :rule cong :premises (t173.t16))
+(step t173.t18 (cl (= @p_431 (! (not @p_423) :named @p_432))) :rule equiv_simplify)
+(step t173.t19 (cl (! (= @p_422 @p_432) :named @p_433)) :rule trans :premises (t173.t17 t173.t18))
+(step t173.t20 (cl (not @p_433) (! (not @p_422) :named @p_434) @p_432) :rule equiv_pos2)
+(step t173.t21 (cl @p_432) :rule th_resolution :premises (t173.h1 t173.t19 t173.t20))
+(step t173 (cl @p_434 @p_432) :rule subproof :discharge (h1))
+(step t174 (cl @p_282 @p_422) :rule or :premises (t172))
+(step t175 (cl (! (or @p_282 @p_432) :named @p_435) @p_302) :rule or_neg)
+(step t176 (cl @p_435 @p_139) :rule th_resolution :premises (t79 t175))
+(step t177 (cl @p_435 (! (not @p_432) :named @p_436)) :rule or_neg)
+(step t178 (cl (not @p_436) @p_423) :rule not_not)
+(step t179 (cl @p_435 @p_423) :rule th_resolution :premises (t178 t177))
+(step t180 (cl @p_435) :rule th_resolution :premises (t174 t173 t176 t179))
+(step t181 (cl (or @p_282 (! (= (! (< @p_437 @p_328) :named @p_439) (! (and @p_356 @p_353 @p_317) :named @p_446)) :named @p_438))) :rule forall_inst :args ((:= veriT_vr13 2.0) (:= veriT_vr14 0.0) (:= veriT_vr15 @p_306)))
+(anchor :step t182)
+(assume t182.h1 @p_438)
+(step t182.t2 (cl @p_331) :rule comp_simplify)
+(step t182.t3 (cl @p_440) :rule cong :premises (t182.t2))
+(step t182.t4 (cl @p_441) :rule implies_simplify)
+(step t182.t5 (cl @p_442) :rule trans :premises (t182.t3 t182.t4))
+(step t182.t6 (cl @p_443) :rule cong :premises (t182.t2))
+(step t182.t7 (cl @p_444) :rule implies_simplify)
+(step t182.t8 (cl @p_445) :rule trans :premises (t182.t6 t182.t7))
+(step t182.t9 (cl @p_338) :rule eq_simplify)
+(step t182.t10 (cl @p_339) :rule cong :premises (t182.t9))
+(step t182.t11 (cl @p_340) :rule not_simplify)
+(step t182.t12 (cl @p_341) :rule trans :premises (t182.t10 t182.t11))
+(step t182.t13 (cl (= @p_446 @p_320)) :rule cong :premises (t182.t5 t182.t8 t182.t12))
+(step t182.t14 (cl @p_343) :rule and_simplify)
+(step t182.t15 (cl @p_344) :rule and_simplify)
+(step t182.t16 (cl (= @p_446 false)) :rule trans :premises (t182.t13 t182.t14 t182.t15))
+(step t182.t17 (cl (= @p_438 (! (= @p_439 false) :named @p_447))) :rule cong :premises (t182.t16))
+(step t182.t18 (cl (= @p_447 (! (not @p_439) :named @p_448))) :rule equiv_simplify)
+(step t182.t19 (cl (! (= @p_438 @p_448) :named @p_449)) :rule trans :premises (t182.t17 t182.t18))
+(step t182.t20 (cl (not @p_449) (! (not @p_438) :named @p_450) @p_448) :rule equiv_pos2)
+(step t182.t21 (cl @p_448) :rule th_resolution :premises (t182.h1 t182.t19 t182.t20))
+(step t182 (cl @p_450 @p_448) :rule subproof :discharge (h1))
+(step t183 (cl @p_282 @p_438) :rule or :premises (t181))
+(step t184 (cl (! (or @p_282 @p_448) :named @p_451) @p_302) :rule or_neg)
+(step t185 (cl @p_451 @p_139) :rule th_resolution :premises (t79 t184))
+(step t186 (cl @p_451 (! (not @p_448) :named @p_452)) :rule or_neg)
+(step t187 (cl (not @p_452) @p_439) :rule not_not)
+(step t188 (cl @p_451 @p_439) :rule th_resolution :premises (t187 t186))
+(step t189 (cl @p_451) :rule th_resolution :premises (t183 t182 t185 t188))
+(step t190 (cl (or @p_282 (! (= (! (< @p_275 @p_3) :named @p_455) (! (and (! (=> @p_370 @p_453) :named @p_456) (! (=> @p_373 (! (< d$ 0.0) :named @p_459)) :named @p_458) @p_378) :named @p_461)) :named @p_454))) :rule forall_inst :args ((:= veriT_vr13 0.0) (:= veriT_vr14 2.0) (:= veriT_vr15 d$)))
+(anchor :step t191)
+(assume t191.h1 @p_454)
+(step t191.t2 (cl @p_405) :rule comp_simplify)
+(step t191.t3 (cl (= @p_456 (! (=> true @p_453) :named @p_457))) :rule cong :premises (t191.t2))
+(step t191.t4 (cl (= @p_457 @p_453)) :rule implies_simplify)
+(step t191.t5 (cl (= @p_456 @p_453)) :rule trans :premises (t191.t3 t191.t4))
+(step t191.t6 (cl @p_408) :rule comp_simplify)
+(step t191.t7 (cl (= @p_458 (! (=> false @p_459) :named @p_460))) :rule cong :premises (t191.t6))
+(step t191.t8 (cl (= @p_460 true)) :rule implies_simplify)
+(step t191.t9 (cl (= @p_458 true)) :rule trans :premises (t191.t7 t191.t8))
+(step t191.t10 (cl @p_412) :rule eq_simplify)
+(step t191.t11 (cl @p_413) :rule cong :premises (t191.t10))
+(step t191.t12 (cl @p_379) :rule not_simplify)
+(step t191.t13 (cl @p_414) :rule trans :premises (t191.t11 t191.t12))
+(step t191.t14 (cl (= @p_461 (! (and @p_453 true true) :named @p_462))) :rule cong :premises (t191.t5 t191.t9 t191.t13))
+(step t191.t15 (cl (= @p_462 (! (and @p_453) :named @p_463))) :rule and_simplify)
+(step t191.t16 (cl (= @p_463 @p_453)) :rule and_simplify)
+(step t191.t17 (cl (= @p_461 @p_453)) :rule trans :premises (t191.t14 t191.t15 t191.t16))
+(step t191.t18 (cl (! (= @p_454 (! (= @p_455 @p_453) :named @p_464)) :named @p_465)) :rule cong :premises (t191.t17))
+(step t191.t19 (cl (not @p_465) (! (not @p_454) :named @p_466) @p_464) :rule equiv_pos2)
+(step t191.t20 (cl @p_464) :rule th_resolution :premises (t191.h1 t191.t18 t191.t19))
+(step t191 (cl @p_466 @p_464) :rule subproof :discharge (h1))
+(step t192 (cl @p_282 @p_454) :rule or :premises (t190))
+(step t193 (cl (! (or @p_282 @p_464) :named @p_467) @p_302) :rule or_neg)
+(step t194 (cl @p_467 @p_139) :rule th_resolution :premises (t79 t193))
+(step t195 (cl @p_467 (! (not @p_464) :named @p_502)) :rule or_neg)
+(step t196 (cl @p_467) :rule th_resolution :premises (t192 t191 t194 t195))
+(step t197 (cl (not (! (not (! (not @p_84) :named @p_468)) :named @p_479)) @p_84) :rule not_not)
+(step t198 (cl (or @p_468 (! (= @p_36 (! (- @p_3 (! (ite @p_369 @p_258 @p_2) :named @p_471)) :named @p_472)) :named @p_469))) :rule forall_inst :args ((:= veriT_vr9 @p_2)))
+(anchor :step t199)
+(assume t199.h1 @p_469)
+(step t199.t2 (cl @p_267) :rule minus_simplify)
+(step t199.t3 (cl (= @p_471 (! (ite @p_369 @p_3 @p_2) :named @p_470))) :rule cong :premises (t199.t2))
+(step t199.t4 (cl (= @p_472 (! (- @p_3 @p_470) :named @p_473))) :rule cong :premises (t199.t3))
+(step t199.t5 (cl (! (= @p_469 (! (= @p_36 @p_473) :named @p_476)) :named @p_474)) :rule cong :premises (t199.t4))
+(step t199.t6 (cl (not @p_474) (! (not @p_469) :named @p_475) @p_476) :rule equiv_pos2)
+(step t199.t7 (cl @p_476) :rule th_resolution :premises (t199.h1 t199.t5 t199.t6))
+(step t199.t8 (cl (! (= @p_476 (! (and (! (= @p_36 (- @p_3 @p_470)) :named @p_504) (! (ite @p_369 (! (= @p_3 @p_470) :named @p_507) (= @p_2 @p_470)) :named @p_505)) :named @p_477)) :named @p_478)) :rule ite_intro)
+(step t199.t9 (cl (not @p_478) (not @p_476) @p_477) :rule equiv_pos2)
+(step t199.t10 (cl @p_477) :rule th_resolution :premises (t199.t7 t199.t8 t199.t9))
+(step t199 (cl @p_475 @p_477) :rule subproof :discharge (h1))
+(step t200 (cl @p_468 @p_469) :rule or :premises (t198))
+(step t201 (cl (! (or @p_468 @p_477) :named @p_480) @p_479) :rule or_neg)
+(step t202 (cl @p_480 @p_84) :rule th_resolution :premises (t197 t201))
+(step t203 (cl @p_480 (! (not @p_477) :named @p_503)) :rule or_neg)
+(step t204 (cl @p_480) :rule th_resolution :premises (t200 t199 t202 t203))
+(step t205 (cl (or (! (not @p_60) :named @p_508) (! (= (! (fun_app$ uub$ @p_7) :named @p_543) (! (pair$ @p_2 (! (times$ (- (* 2.0 @p_7) 1.0) @p_36) :named @p_535)) :named @p_534)) :named @p_509))) :rule forall_inst :args ((:= veriT_vr7 @p_7)))
+(step t206 (cl (or (! (not @p_34) :named @p_492) (! (= (! (fun_app$ uuc$ @p_7) :named @p_483) (! (pair$ (! (times$ (! (- @p_7 @p_7) :named @p_484) d$) :named @p_481) (! (diamond_y$ @p_481) :named @p_485)) :named @p_487)) :named @p_482))) :rule forall_inst :args ((:= veriT_vr1 @p_7)))
+(anchor :step t207)
+(assume t207.h1 @p_482)
+(step t207.t2 (cl (= 0.0 @p_484)) :rule minus_simplify)
+(step t207.t3 (cl (= @p_247 @p_481)) :rule cong :premises (t207.t2))
+(step t207.t4 (cl (= @p_485 (! (diamond_y$ @p_247) :named @p_486))) :rule cong :premises (t207.t3))
+(step t207.t5 (cl (= @p_487 (! (pair$ @p_247 @p_486) :named @p_488))) :rule cong :premises (t207.t3 t207.t4))
+(step t207.t6 (cl (! (= @p_482 (! (= @p_483 @p_488) :named @p_489)) :named @p_490)) :rule cong :premises (t207.t5))
+(step t207.t7 (cl (not @p_490) (! (not @p_482) :named @p_491) @p_489) :rule equiv_pos2)
+(step t207.t8 (cl @p_489) :rule th_resolution :premises (t207.h1 t207.t6 t207.t7))
+(step t207 (cl @p_491 @p_489) :rule subproof :discharge (h1))
+(step t208 (cl @p_492 @p_482) :rule or :premises (t206))
+(step t209 (cl (! (or @p_492 @p_489) :named @p_494) (! (not @p_492) :named @p_493)) :rule or_neg)
+(step t210 (cl (not @p_493) @p_34) :rule not_not)
+(step t211 (cl @p_494 @p_34) :rule th_resolution :premises (t210 t209))
+(step t212 (cl @p_494 (! (not @p_489) :named @p_544)) :rule or_neg)
+(step t213 (cl @p_494) :rule th_resolution :premises (t208 t207 t211 t212))
+(step t214 (cl @p_245 @p_251) :rule or :premises (t90))
+(step t215 (cl @p_251) :rule resolution :premises (t214 t48))
+(step t216 (cl @p_241 @p_261) :rule or :premises (t97))
+(step t217 (cl @p_261) :rule resolution :premises (t216 t42))
+(step t218 (cl @p_241 @p_270) :rule or :premises (t104))
+(step t219 (cl @p_270) :rule resolution :premises (t218 t42))
+(step t220 (cl @p_241 @p_495) :rule or :premises (t105))
+(step t221 (cl @p_495) :rule resolution :premises (t220 t42))
+(step t222 (cl @p_241 @p_278) :rule or :premises (t112))
+(step t223 (cl @p_278) :rule resolution :premises (t222 t42))
+(step t224 (cl @p_297 (! (not @p_292) :named @p_496) (! (not @p_295) :named @p_497) (! (not @p_288) :named @p_498)) :rule and_neg)
+(step t225 (cl (not @p_496) @p_286) :rule not_not)
+(step t226 (cl @p_297 @p_286 @p_497 @p_498) :rule th_resolution :premises (t225 t224))
+(step t227 (cl (not @p_497) @p_287) :rule not_not)
+(step t228 (cl @p_297 @p_286 @p_287 @p_498) :rule th_resolution :premises (t227 t226))
+(step t229 (cl (not @p_498) @p_499) :rule not_not)
+(step t230 (cl @p_297 @p_286 @p_287 @p_499) :rule th_resolution :premises (t229 t228))
+(step t231 (cl @p_282 @p_299) :rule or :premises (t121))
+(step t232 (cl @p_299) :rule resolution :premises (t231 t36))
+(step t233 (cl @p_282 @p_323) :rule or :premises (t130))
+(step t234 (cl @p_323) :rule resolution :premises (t233 t36))
+(step t235 (cl @p_282 @p_346) :rule or :premises (t139))
+(step t236 (cl @p_346) :rule resolution :premises (t235 t36))
+(step t237 (cl @p_282 @p_361) :rule or :premises (t148))
+(step t238 (cl @p_361) :rule resolution :premises (t237 t36))
+(step t239 (cl @p_500 @p_368 (! (not @p_369) :named @p_506)) :rule equiv_pos1)
+(step t240 (cl @p_282 @p_383) :rule or :premises (t155))
+(step t241 (cl @p_383) :rule resolution :premises (t240 t36))
+(step t242 (cl @p_282 @p_397) :rule or :premises (t164))
+(step t243 (cl @p_397) :rule resolution :premises (t242 t36))
+(step t244 (cl @p_501 (! (not @p_403) :named @p_519) @p_404) :rule equiv_pos2)
+(step t245 (cl @p_282 @p_418) :rule or :premises (t171))
+(step t246 (cl @p_418) :rule resolution :premises (t245 t36))
+(step t247 (cl @p_282 @p_432) :rule or :premises (t180))
+(step t248 (cl @p_432) :rule resolution :premises (t247 t36))
+(step t249 (cl @p_282 @p_448) :rule or :premises (t189))
+(step t250 (cl @p_448) :rule resolution :premises (t249 t36))
+(step t251 (cl @p_502 @p_455 (not @p_453)) :rule equiv_pos1)
+(step t252 (cl @p_282 @p_464) :rule or :premises (t196))
+(step t253 (cl @p_502 @p_455) :rule resolution :premises (t251 axiom4))
+(step t254 (cl @p_464) :rule resolution :premises (t252 t36))
+(step t255 (cl @p_455) :rule resolution :premises (t253 t254))
+(step t256 (cl @p_503 @p_504) :rule and_pos)
+(step t257 (cl (not @p_505) @p_506 @p_507) :rule ite_pos2)
+(step t258 (cl @p_503 @p_505) :rule and_pos)
+(step t259 (cl @p_468 @p_477) :rule or :premises (t204))
+(step t260 (cl @p_477) :rule resolution :premises (t259 t27))
+(step t261 (cl @p_504) :rule resolution :premises (t256 t260))
+(step t262 (cl @p_505) :rule resolution :premises (t258 t260))
+(step t263 (cl @p_508 @p_509) :rule or :premises (t205))
+(step t264 (cl @p_509) :rule resolution :premises (t263 t21))
+(step t265 (cl @p_492 @p_489) :rule or :premises (t213))
+(step t266 (cl @p_489) :rule resolution :premises (t265 t15))
+(step t267 (cl (! (= 2.0 2.0) :named @p_515)) :rule eq_reflexive)
+(step t268 (cl (not @p_455) @p_369 @p_510) :rule la_generic :args (2.0 2.0 1))
+(step t269 (cl @p_369) :rule resolution :premises (t268 t223 t255))
+(step t270 (cl @p_368) :rule resolution :premises (t239 t269 t241))
+(step t271 (cl @p_507) :rule resolution :premises (t257 t269 t262))
+(step t272 (cl (! (= @p_2 @p_2) :named @p_513)) :rule eq_reflexive)
+(step t273 (cl @p_295 (! (not @p_504) :named @p_511) (! (not @p_507) :named @p_512)) :rule la_generic :args (1.0 1 1))
+(step t274 (cl @p_295) :rule resolution :premises (t273 t261 t271))
+(step t275 (cl @p_292 @p_511 @p_512) :rule la_generic :args (1.0 (- 1) (- 1)))
+(step t276 (cl @p_292) :rule resolution :premises (t275 t261 t271))
+(step t277 (cl @p_499) :rule resolution :premises (t230 t276 t232 t274))
+(step t278 (cl (not @p_513) @p_288 (! (< @p_2 @p_36) :named @p_514) @p_506) :rule eq_congruent_pred)
+(step t279 (cl @p_288 @p_514 @p_506) :rule th_resolution :premises (t278 t272))
+(step t280 (cl @p_514) :rule resolution :premises (t279 t277 t269))
+(step t281 (cl @p_288 (! (not @p_515) :named @p_551) (! (= @p_516 @p_275) :named @p_517)) :rule eq_congruent)
+(step t282 (cl @p_288 @p_517) :rule th_resolution :premises (t281 t267))
+(step t283 (cl (! (= @p_7 @p_7) :named @p_546)) :rule eq_reflexive)
+(step t284 (cl (! (not @p_404) :named @p_518) (not @p_514) @p_511 @p_512) :rule la_generic :args (1.0 1.0 (- 2) (- 2)))
+(step t285 (cl @p_518) :rule resolution :premises (t284 t280 t261 t271))
+(step t286 (cl @p_519) :rule resolution :premises (t244 t285 t246))
+(step t287 (cl (or (! (= @p_234 @p_437) :named @p_520) (! (not (! (<= @p_234 @p_437) :named @p_529)) :named @p_521) (! (not (! (<= @p_437 @p_234) :named @p_526)) :named @p_522))) :rule la_disequality)
+(step t288 (cl @p_520 @p_521 @p_522) :rule or :premises (t287))
+(step t289 (cl (or (! (= @p_247 @p_437) :named @p_523) (! (not (! (<= @p_247 @p_437) :named @p_532)) :named @p_524) (! (not (! (<= @p_437 @p_247) :named @p_530)) :named @p_525))) :rule la_disequality)
+(step t290 (cl @p_523 @p_524 @p_525) :rule or :premises (t289))
+(step t291 (cl @p_388 @p_423 @p_352 @p_526 @p_527 @p_528) :rule la_generic :args (1.0 1.0 2.0 2.0 1 1))
+(step t292 (cl @p_526) :rule resolution :premises (t291 t81 t219 t238 t243 t248))
+(step t293 (cl @p_309 @p_330 @p_439 @p_529 @p_527 @p_528) :rule la_generic :args (1.0 1.0 2.0 2.0 (- 1) (- 1)))
+(step t294 (cl @p_529) :rule resolution :premises (t293 t81 t219 t234 t236 t250))
+(step t295 (cl @p_520) :rule resolution :premises (t288 t294 t292))
+(step t296 (cl @p_388 @p_423 @p_352 @p_530 @p_531 @p_528) :rule la_generic :args (1.0 1.0 2.0 2.0 1 1))
+(step t297 (cl @p_530) :rule resolution :premises (t296 t215 t219 t238 t243 t248))
+(step t298 (cl @p_309 @p_330 @p_439 @p_532 @p_531 @p_528) :rule la_generic :args (1.0 1.0 2.0 2.0 (- 1) (- 1)))
+(step t299 (cl @p_532) :rule resolution :premises (t298 t215 t219 t234 t236 t250))
+(step t300 (cl @p_523) :rule resolution :premises (t290 t299 t297))
+(step t301 (cl @p_244 @p_533) :rule or :premises (t70))
+(step t302 (cl (or (! (not @p_533) :named @p_536) (! (or (! (not (! (= @p_534 @p_488) :named @p_545)) :named @p_541) (! (= @p_2 @p_247) :named @p_542)) :named @p_537))) :rule forall_inst :args ((:= veriT_vr28 @p_247) (:= veriT_vr29 @p_486) (:= veriT_vr30 @p_2) (:= veriT_vr31 @p_535)))
+(step t303 (cl @p_536 @p_537) :rule or :premises (t302))
+(step t304 (cl (! (or @p_244 @p_537) :named @p_539) @p_538) :rule or_neg)
+(step t305 (cl @p_539 @p_218) :rule th_resolution :premises (t82 t304))
+(step t306 (cl @p_539 (! (not @p_537) :named @p_540)) :rule or_neg)
+(step t307 (cl @p_539) :rule th_resolution :premises (t301 t303 t305 t306))
+(step t308 (cl @p_540 @p_541 @p_542) :rule or_pos)
+(step t309 (cl @p_244 @p_537) :rule or :premises (t307))
+(step t310 (cl @p_537) :rule resolution :premises (t309 t54))
+(step t311 (cl (! (not @p_509) :named @p_549) (not (! (= @p_543 @p_483) :named @p_547)) @p_544 @p_545) :rule eq_transitive)
+(step t312 (cl (! (not @p_227) :named @p_548) (not @p_546) @p_547) :rule eq_congruent)
+(step t313 (cl @p_548 @p_547) :rule th_resolution :premises (t312 t283))
+(step t314 (cl @p_549 @p_544 @p_545 @p_548) :rule th_resolution :premises (t311 t313))
+(step t315 (cl @p_545) :rule resolution :premises (t314 t69 t264 t266))
+(step t316 (cl @p_542) :rule resolution :premises (t308 t315 t310))
+(step t317 (cl (! (not @p_542) :named @p_555) (! (not @p_523) :named @p_556) (! (not @p_520) :named @p_557) (! (= @p_2 @p_234) :named @p_550)) :rule eq_transitive)
+(step t318 (cl (! (not @p_550) :named @p_553) @p_551 (! (= @p_366 @p_552) :named @p_554)) :rule eq_congruent)
+(step t319 (cl @p_553 @p_554) :rule th_resolution :premises (t318 t267))
+(step t320 (cl @p_554 @p_555 @p_556 @p_557) :rule th_resolution :premises (t319 t317))
+(step t321 (cl @p_555 @p_556 @p_557 @p_527 (! (= @p_2 @p_235) :named @p_565)) :rule eq_transitive)
+(step t322 (cl (not @p_554) (! (= @p_257 @p_558) :named @p_559)) :rule eq_congruent)
+(step t323 (cl @p_559 @p_555 @p_556 @p_557) :rule th_resolution :premises (t322 t320))
+(step t324 (cl (! (not (! (= @p_366 @p_260) :named @p_564)) :named @p_560) (not @p_517) (! (not @p_368) :named @p_561) @p_403) :rule eq_congruent_pred)
+(step t325 (cl @p_560 @p_561 @p_403 @p_288) :rule th_resolution :premises (t324 t282))
+(step t326 (cl (not (! (= @p_366 @p_562) :named @p_566)) (! (not @p_495) :named @p_568) (! (not @p_559) :named @p_569) @p_563 @p_564) :rule eq_transitive)
+(step t327 (cl (! (not @p_565) :named @p_567) @p_551 @p_566) :rule eq_congruent)
+(step t328 (cl @p_567 @p_566) :rule th_resolution :premises (t327 t267))
+(step t329 (cl @p_566 @p_555 @p_556 @p_557 @p_527) :rule th_resolution :premises (t328 t321))
+(step t330 (cl @p_568 @p_569 @p_563 @p_564 @p_555 @p_556 @p_557 @p_527) :rule th_resolution :premises (t326 t329))
+(step t331 (cl @p_568 @p_563 @p_564 @p_555 @p_556 @p_557 @p_527 @p_555 @p_556 @p_557) :rule th_resolution :premises (t330 t323))
+(step t332 (cl @p_568 @p_563 @p_564 @p_555 @p_556 @p_557 @p_527) :rule contraction :premises (t331))
+(step t333 (cl @p_561 @p_403 @p_288 @p_568 @p_563 @p_555 @p_556 @p_557 @p_527) :rule th_resolution :premises (t325 t332))
+(step t334 (cl) :rule resolution :premises (t333 t81 t217 t221 t277 t270 t286 t295 t300 t316))
+6120eaf40c2621e298051bc401bc258d4c6ef4d6 323 0
+unsat
+(assume axiom1 (! (not (! (=> (! (forall ((?v0 Real_a_fun$) (?v1 B_list$)) (! (= (! (=> (! (and (! (= (! (rec_join$ ?v1) :named @p_3) ?v0) :named @p_68) (! (and (! (=> (! (and (! (= ?v1 nil$) :named @p_4) (! (= uu$ ?v0) :named @p_72)) :named @p_74) false) :named @p_76) (! (and (! (forall ((?v2 B$)) (! (=> (! (and (! (= ?v1 (! (cons$ ?v2 nil$) :named @p_8)) :named @p_5) (! (= ?v0 (! (coeff_cube_to_path$ ?v2) :named @p_1)) :named @p_82)) :named @p_84) false) :named @p_86)) :named @p_78) (! (forall ((?v2 B$) (?v3 B$) (?v4 B_list$)) (! (=> (! (and (! (= ?v1 (! (cons$ ?v2 (! (cons$ ?v3 ?v4) :named @p_2)) :named @p_9)) :named @p_6) (! (= ?v0 (! (joinpaths$ @p_1 (! (rec_join$ @p_2) :named @p_95)) :named @p_7)) :named @p_97)) :named @p_99) false) :named @p_101)) :named @p_88)) :named @p_103)) :named @p_105)) :named @p_107) false) :named @p_109) (! (=> (! (and (! (= @p_3 @p_3) :named @p_112) (! (and (! (=> (! (and @p_4 (! (= uu$ @p_3) :named @p_115)) :named @p_117) false) :named @p_119) (! (and (! (forall ((?v2 B$)) (! (=> (! (and @p_5 (! (= @p_3 @p_1) :named @p_125)) :named @p_127) false) :named @p_129)) :named @p_121) (! (forall ((?v2 B$) (?v3 B$) (?v4 B_list$)) (! (=> (! (and @p_6 (! (= @p_3 @p_7) :named @p_137)) :named @p_139) false) :named @p_141)) :named @p_131)) :named @p_143)) :named @p_145)) :named @p_147) false) :named @p_149)) :named @p_151)) :named @p_53) (! (= (! (forall ((?v0 B_list$) (?v1 Real_a_fun$)) (! (=> (! (and (! (= (! (rec_join$ ?v0) :named @p_10) ?v1) :named @p_19) (! (and (! (=> (! (and (! (= nil$ ?v0) :named @p_11) (! (= uu$ ?v1) :named @p_20)) :named @p_22) false) :named @p_24) (! (and (! (forall ((?v2 B$)) (! (=> (! (and (! (= @p_8 ?v0) :named @p_17) (! (= @p_1 ?v1) :named @p_27)) :named @p_29) false) :named @p_31)) :named @p_25) (! (forall ((?v2 B$) (?v3 B$) (?v4 B_list$)) (! (=> (! (and (! (= @p_9 ?v0) :named @p_18) (! (= @p_7 ?v1) :named @p_35)) :named @p_37) false) :named @p_39)) :named @p_33)) :named @p_41)) :named @p_43)) :named @p_45) false) :named @p_47)) :named @p_14) (! (forall ((?v0 B_list$)) (! (=> (! (and (! (= @p_10 @p_10) :named @p_15) (! (and (! (=> (! (and @p_11 (! (= uu$ @p_10) :named @p_21)) :named @p_23) false) :named @p_16) (! (and (! (forall ((?v1 B$)) (! (=> (! (and (! (= ?v0 (! (cons$ ?v1 nil$) :named @p_162)) :named @p_163) (! (= @p_10 (! (coeff_cube_to_path$ ?v1) :named @p_12)) :named @p_165)) :named @p_166) false) :named @p_167)) :named @p_161) (! (forall ((?v1 B$) (?v2 B$) (?v3 B_list$)) (! (=> (! (and (! (= ?v0 (! (cons$ ?v1 (! (cons$ ?v2 ?v3) :named @p_13)) :named @p_169)) :named @p_170) (! (= @p_10 (! (joinpaths$ @p_12 (! (rec_join$ @p_13) :named @p_175)) :named @p_176)) :named @p_177)) :named @p_178) false) :named @p_179)) :named @p_168)) :named @p_180)) :named @p_181)) :named @p_182) false) :named @p_183)) :named @p_51)) :named @p_49)) :named @p_52)) :named @p_55))
(anchor :step t2 :args ((?v0 B_list$) (:= (?v1 Real_a_fun$) @p_10)))
(step t2.t1 (cl @p_19) :rule refl)
(step t2.t2 (cl (= @p_19 @p_15)) :rule cong :premises (t2.t1))
@@ -7429,7 +7468,7 @@
(step t6 (cl (! (not @p_57) :named @p_60) (! (not @p_55) :named @p_59) @p_58) :rule equiv_pos2)
(step t7 (cl (not @p_59) @p_52) :rule not_not)
(step t8 (cl @p_60 @p_52 @p_58) :rule th_resolution :premises (t7 t6))
-(step t9 (cl @p_58) :rule th_resolution :premises (a1 t5 t8))
+(step t9 (cl @p_58) :rule th_resolution :premises (axiom1 t5 t8))
(anchor :step t10 :args ((:= (?v0 Real_a_fun$) veriT_vr2) (:= (?v1 B_list$) veriT_vr3)))
(step t10.t1 (cl (! (= ?v1 veriT_vr3) :named @p_70)) :rule refl)
(step t10.t2 (cl (! (= @p_3 (! (rec_join$ veriT_vr3) :named @p_63)) :named @p_111)) :rule cong :premises (t10.t1))
@@ -7720,10 +7759,10 @@
(step t44 (cl false) :rule th_resolution :premises (t31 t42 t43))
(step t45 (cl (not false)) :rule false)
(step t46 (cl) :rule resolution :premises (t44 t45))
-2da165964e2359aec5a20e66969cc8494006e9ba 36 0
+f76f257aace4d1c925379d3446177d02a43e00b9 36 0
unsat
-(assume a4 (! (forall ((?v0 Int)) (! (and (! (pred$e ?v0) :named @p_4) (! (or (! (pred$d (! (cons$d ?v0 nil$d) :named @p_7)) :named @p_1) (! (not @p_1) :named @p_11)) :named @p_13)) :named @p_15)) :named @p_2))
-(assume a5 (not (! (pred$e 1) :named @p_26)))
+(assume axiom4 (! (forall ((?v0 Int)) (! (and (! (pred$e ?v0) :named @p_4) (! (or (! (pred$d (! (cons$d ?v0 nil$d) :named @p_7)) :named @p_1) (! (not @p_1) :named @p_11)) :named @p_13)) :named @p_15)) :named @p_2))
+(assume axiom5 (not (! (pred$e 1) :named @p_26)))
(anchor :step t3 :args ((:= (?v0 Int) veriT_vr8)))
(step t3.t1 (cl (! (= ?v0 veriT_vr8) :named @p_6)) :rule refl)
(step t3.t2 (cl (= @p_4 (! (pred$e veriT_vr8) :named @p_5))) :rule cong :premises (t3.t1))
@@ -7738,7 +7777,7 @@
(step t3.t11 (cl (= @p_15 (! (and @p_5 @p_14) :named @p_16))) :rule cong :premises (t3.t2 t3.t10))
(step t3 (cl (! (= @p_2 (! (forall ((veriT_vr8 Int)) @p_16) :named @p_18)) :named @p_17)) :rule bind)
(step t4 (cl (not @p_17) (not @p_2) @p_18) :rule equiv_pos2)
-(step t5 (cl @p_18) :rule th_resolution :premises (a4 t3 t4))
+(step t5 (cl @p_18) :rule th_resolution :premises (axiom4 t3 t4))
(anchor :step t6 :args ((veriT_vr8 Int)))
(step t6.t1 (cl (= @p_14 true)) :rule or_simplify)
(step t6.t2 (cl (= @p_16 (! (and @p_5 true) :named @p_19))) :rule cong :premises (t6.t1))
@@ -7756,20 +7795,20 @@
(step t11 (cl @p_25) :rule th_resolution :premises (t8 t9 t10))
(step t12 (cl (or (! (not @p_25) :named @p_27) @p_26)) :rule forall_inst :args ((:= veriT_vr9 1)))
(step t13 (cl @p_27 @p_26) :rule or :premises (t12))
-(step t14 (cl) :rule resolution :premises (t13 t11 a5))
-f9bb7f97f8819ceceaefe0cdf934d0eda3431a5b 158 0
+(step t14 (cl) :rule resolution :premises (t13 t11 axiom5))
+9aecf5ce2acf5c9a6a97abe747fcd03e35b92209 158 0
unsat
-(assume a0 (! (forall ((?v0 Int)) (! (= (! (g$ (! (some$ ?v0) :named @p_5)) :named @p_7) (! (g$a (! (cons$ ?v0 nil$) :named @p_10)) :named @p_12)) :named @p_14)) :named @p_4))
-(assume a1 (forall ((?v0 Bool)) (= (g$b (some$a ?v0)) (g$c (cons$a ?v0 nil$a)))))
-(assume a6 (! (forall ((?v0 Bool_list$)) (! (= (! (g$c ?v0) :named @p_27) (! (size$ ?v0) :named @p_30)) :named @p_32)) :named @p_26))
-(assume a7 (! (forall ((?v0 Int_list$)) (! (= (! (g$a ?v0) :named @p_43) (! (size$a ?v0) :named @p_46)) :named @p_48)) :named @p_42))
-(assume a12 (! (= zero$ (! (size$ nil$a) :named @p_118)) :named @p_143))
-(assume a13 (! (= zero$ (! (size$a nil$) :named @p_133)) :named @p_144))
-(assume a14 (forall ((?v0 Bool) (?v1 Bool_list$)) (= (size$ (cons$a ?v0 ?v1)) (! (plus$ (! (size$ ?v1) :named @p_60) (! (suc$ zero$) :named @p_1)) :named @p_3))))
-(assume a15 (! (forall ((?v0 Int) (?v1 Int_list$)) (! (= (! (size$a (! (cons$ ?v0 ?v1) :named @p_96)) :named @p_98) (! (plus$ (! (size$a ?v1) :named @p_101) @p_1) :named @p_103)) :named @p_105)) :named @p_95))
-(assume a16 (not (! (= (! (g$ (some$ 3)) :named @p_124) (! (g$b (some$a true)) :named @p_2)) :named @p_141)))
-(step t10 (cl (and (= (g$b (some$a false)) (g$c (! (cons$a false nil$a) :named @p_119))) (! (= @p_2 (! (g$c (! (cons$a true nil$a) :named @p_121)) :named @p_122)) :named @p_117))) :rule bfun_elim :premises (a1))
-(step t11 (cl (! (forall ((?v1 Bool_list$)) (! (and (! (= @p_3 (! (size$ (! (cons$a false ?v1) :named @p_63)) :named @p_65)) :named @p_67) (! (= @p_3 (! (size$ (! (cons$a true ?v1) :named @p_71)) :named @p_73)) :named @p_75)) :named @p_77)) :named @p_58)) :rule bfun_elim :premises (a14))
+(assume axiom0 (! (forall ((?v0 Int)) (! (= (! (g$ (! (some$ ?v0) :named @p_5)) :named @p_7) (! (g$a (! (cons$ ?v0 nil$) :named @p_10)) :named @p_12)) :named @p_14)) :named @p_4))
+(assume axiom1 (forall ((?v0 Bool)) (= (g$b (some$a ?v0)) (g$c (cons$a ?v0 nil$a)))))
+(assume axiom6 (! (forall ((?v0 Bool_list$)) (! (= (! (g$c ?v0) :named @p_27) (! (size$ ?v0) :named @p_30)) :named @p_32)) :named @p_26))
+(assume axiom7 (! (forall ((?v0 Int_list$)) (! (= (! (g$a ?v0) :named @p_43) (! (size$a ?v0) :named @p_46)) :named @p_48)) :named @p_42))
+(assume axiom12 (! (= zero$ (! (size$ nil$a) :named @p_118)) :named @p_143))
+(assume axiom13 (! (= zero$ (! (size$a nil$) :named @p_133)) :named @p_144))
+(assume axiom14 (forall ((?v0 Bool) (?v1 Bool_list$)) (= (size$ (cons$a ?v0 ?v1)) (! (plus$ (! (size$ ?v1) :named @p_60) (! (suc$ zero$) :named @p_1)) :named @p_3))))
+(assume axiom15 (! (forall ((?v0 Int) (?v1 Int_list$)) (! (= (! (size$a (! (cons$ ?v0 ?v1) :named @p_96)) :named @p_98) (! (plus$ (! (size$a ?v1) :named @p_101) @p_1) :named @p_103)) :named @p_105)) :named @p_95))
+(assume axiom16 (not (! (= (! (g$ (some$ 3)) :named @p_124) (! (g$b (some$a true)) :named @p_2)) :named @p_141)))
+(step t10 (cl (and (= (g$b (some$a false)) (g$c (! (cons$a false nil$a) :named @p_119))) (! (= @p_2 (! (g$c (! (cons$a true nil$a) :named @p_121)) :named @p_122)) :named @p_117))) :rule bfun_elim :premises (axiom1))
+(step t11 (cl (! (forall ((?v1 Bool_list$)) (! (and (! (= @p_3 (! (size$ (! (cons$a false ?v1) :named @p_63)) :named @p_65)) :named @p_67) (! (= @p_3 (! (size$ (! (cons$a true ?v1) :named @p_71)) :named @p_73)) :named @p_75)) :named @p_77)) :named @p_58)) :rule bfun_elim :premises (axiom14))
(anchor :step t12 :args ((:= (?v0 Int) veriT_vr0)))
(step t12.t1 (cl (! (= ?v0 veriT_vr0) :named @p_9)) :rule refl)
(step t12.t2 (cl (= @p_5 (! (some$ veriT_vr0) :named @p_6))) :rule cong :premises (t12.t1))
@@ -7780,7 +7819,7 @@
(step t12.t7 (cl (= @p_14 (! (= @p_8 @p_13) :named @p_15))) :rule cong :premises (t12.t3 t12.t6))
(step t12 (cl (! (= @p_4 (! (forall ((veriT_vr0 Int)) @p_15) :named @p_17)) :named @p_16)) :rule bind)
(step t13 (cl (not @p_16) (not @p_4) @p_17) :rule equiv_pos2)
-(step t14 (cl @p_17) :rule th_resolution :premises (a0 t12 t13))
+(step t14 (cl @p_17) :rule th_resolution :premises (axiom0 t12 t13))
(anchor :step t15 :args ((:= (veriT_vr0 Int) veriT_vr1)))
(step t15.t1 (cl (! (= veriT_vr0 veriT_vr1) :named @p_20)) :rule refl)
(step t15.t2 (cl (= @p_6 (! (some$ veriT_vr1) :named @p_18))) :rule cong :premises (t15.t1))
@@ -7800,7 +7839,7 @@
(step t18.t5 (cl (= @p_32 (! (= @p_28 @p_31) :named @p_33))) :rule cong :premises (t18.t2 t18.t4))
(step t18 (cl (! (= @p_26 (! (forall ((veriT_vr2 Bool_list$)) @p_33) :named @p_35)) :named @p_34)) :rule bind)
(step t19 (cl (not @p_34) (not @p_26) @p_35) :rule equiv_pos2)
-(step t20 (cl @p_35) :rule th_resolution :premises (a6 t18 t19))
+(step t20 (cl @p_35) :rule th_resolution :premises (axiom6 t18 t19))
(anchor :step t21 :args ((:= (veriT_vr2 Bool_list$) veriT_vr3)))
(step t21.t1 (cl (! (= veriT_vr2 veriT_vr3) :named @p_37)) :rule refl)
(step t21.t2 (cl (= @p_28 (! (g$c veriT_vr3) :named @p_36))) :rule cong :premises (t21.t1))
@@ -7818,7 +7857,7 @@
(step t24.t5 (cl (= @p_48 (! (= @p_44 @p_47) :named @p_49))) :rule cong :premises (t24.t2 t24.t4))
(step t24 (cl (! (= @p_42 (! (forall ((veriT_vr4 Int_list$)) @p_49) :named @p_51)) :named @p_50)) :rule bind)
(step t25 (cl (not @p_50) (not @p_42) @p_51) :rule equiv_pos2)
-(step t26 (cl @p_51) :rule th_resolution :premises (a7 t24 t25))
+(step t26 (cl @p_51) :rule th_resolution :premises (axiom7 t24 t25))
(anchor :step t27 :args ((:= (veriT_vr4 Int_list$) veriT_vr5)))
(step t27.t1 (cl (! (= veriT_vr4 veriT_vr5) :named @p_53)) :rule refl)
(step t27.t2 (cl (= @p_44 (! (g$a veriT_vr5) :named @p_52))) :rule cong :premises (t27.t1))
@@ -7877,7 +7916,7 @@
(step t36.t8 (cl (= @p_105 (! (= @p_99 @p_104) :named @p_106))) :rule cong :premises (t36.t4 t36.t7))
(step t36 (cl (! (= @p_95 (! (forall ((veriT_vr22 Int) (veriT_vr23 Int_list$)) @p_106) :named @p_108)) :named @p_107)) :rule bind)
(step t37 (cl (not @p_107) (not @p_95) @p_108) :rule equiv_pos2)
-(step t38 (cl @p_108) :rule th_resolution :premises (a15 t36 t37))
+(step t38 (cl @p_108) :rule th_resolution :premises (axiom15 t36 t37))
(anchor :step t39 :args ((:= (veriT_vr22 Int) veriT_vr24) (:= (veriT_vr23 Int_list$) veriT_vr25)))
(step t39.t1 (cl (= veriT_vr22 veriT_vr24)) :rule refl)
(step t39.t2 (cl (! (= veriT_vr23 veriT_vr25) :named @p_111)) :rule refl)
@@ -7915,878 +7954,915 @@
(step t64 (cl @p_149) :rule eq_reflexive)
(step t65 (cl @p_142 @p_147 @p_148) :rule th_resolution :premises (t63 t64))
(step t66 (cl @p_150 @p_151 @p_152 @p_153 @p_154 @p_155 @p_141 @p_147 @p_148) :rule th_resolution :premises (t60 t65))
-(step t67 (cl) :rule resolution :premises (t66 t42 a12 a13 a16 t49 t51 t53 t57 t59))
-672f5a048dc0215d5adebfbf2f0a3a36f69e286e 873 0
+(step t67 (cl) :rule resolution :premises (t66 t42 axiom12 axiom13 axiom16 t49 t51 t53 t57 t59))
+1a2d4d1ee4565edc7b401dfc82d8d10a78382c1c 910 0
unsat
-(define-fun veriT_sk0 () V$ (! (choice ((veriT_vr65 V$)) (not (! (not (! (= x2$ (! (rraise$ veriT_vr65) :named @p_369)) :named @p_370)) :named @p_368))) :named @p_382))
-(define-fun veriT_sk1 () Abort$ (! (choice ((veriT_vr66 Abort$)) (not (! (not (! (= x2$ (! (rabort$ veriT_vr66) :named @p_372)) :named @p_373)) :named @p_371))) :named @p_386))
-(define-fun veriT_sk3 () V_list_v_result$ (! (choice ((veriT_vr73 V_list_v_result$)) (! (= (! (fun_evaluate$ st$a env$ (cons$ e$ nil$)) :named @p_1) (! (pair$ (! (fst$ @p_1) :named @p_346) veriT_vr73) :named @p_429)) :named @p_428)) :named @p_433))
-(define-fun veriT_sk11 () V_list_v_result$ (! (choice ((veriT_vr108 V_list_v_result$)) (! (= (! (fix_clock$ st$a @p_1) :named @p_438) (! (pair$ st$ veriT_vr108) :named @p_471)) :named @p_470)) :named @p_483))
-(define-fun veriT_sk615 () V_list_v_result$ (! (choice ((veriT_vr3122 V_list_v_result$)) (! (= (! (case_error_result$ uua$ uub$ x2$) :named @p_547) (! (pair$ (! (update_clock$ (uu$ st$a @p_346) @p_346) :named @p_504) veriT_vr3122) :named @p_617)) :named @p_616)) :named @p_629))
-(assume a0 (! (forall ((?v0 V$)) (! (= (! (fun_app$ uua$ ?v0) :named @p_6) (! (fun_app$ (! (fun_evaluate_match$ st$ env$ ?v0 pes$) :named @p_9) ?v0) :named @p_11)) :named @p_13)) :named @p_5))
-(assume a1 (! (forall ((?v0 Abort$)) (! (= (! (fun_app$a uub$ ?v0) :named @p_25) (! (pair$ st$ (! (rerr$ (! (rabort$ ?v0) :named @p_28)) :named @p_30)) :named @p_32)) :named @p_34)) :named @p_24))
-(assume a3 (! (= @p_438 (! (pair$ st$ r$) :named @p_545)) :named @p_576))
-(assume a4 (! (less_eq$ (! (clock$ @p_346) :named @p_339) (! (clock$ st$a) :named @p_4)) :named @p_337))
-(assume a5 (! (forall ((?v0 Nat$) (?v1 Nat$) (?v2 Nat$)) (! (=> (! (and (! (less_eq$ ?v0 ?v1) :named @p_47) (! (less_eq$ ?v2 ?v0) :named @p_50)) :named @p_52) (! (less_eq$ ?v2 ?v1) :named @p_56)) :named @p_58)) :named @p_46))
-(assume a6 (! (forall ((?v0 Astate$) (?v1 Astate_v_list_v_result_prod$)) (! (= (! (= ?v0 (! (fst$ ?v1) :named @p_73)) :named @p_75) (! (exists ((?v2 V_list_v_result$)) (! (= ?v1 (! (pair$ ?v0 ?v2) :named @p_81)) :named @p_83)) :named @p_77)) :named @p_85)) :named @p_72))
-(assume a7 (! (forall ((?v0 V_error_result$)) (! (=> (! (and (! (forall ((?v1 V$)) (! (=> (! (= ?v0 (! (rraise$ ?v1) :named @p_140)) :named @p_3) false) :named @p_143)) :named @p_138) (! (forall ((?v1 Abort$)) (! (=> (! (= ?v0 (! (rabort$ ?v1) :named @p_148)) :named @p_150) false) :named @p_152)) :named @p_145)) :named @p_154) false) :named @p_156)) :named @p_137))
-(assume a8 (! (forall ((?v0 V_astate_v_list_v_result_prod_fun$) (?v1 Abort_astate_v_list_v_result_prod_fun$) (?v2 V$)) (! (= (! (case_error_result$ ?v0 ?v1 (! (rraise$ ?v2) :named @p_183)) :named @p_185) (! (fun_app$ ?v0 ?v2) :named @p_189)) :named @p_191)) :named @p_182))
-(assume a9 (! (forall ((?v0 V_astate_v_list_v_result_prod_fun$) (?v1 Abort_astate_v_list_v_result_prod_fun$) (?v2 Abort$)) (! (= (! (case_error_result$ ?v0 ?v1 (! (rabort$ ?v2) :named @p_204)) :named @p_206) (! (fun_app$a ?v1 ?v2) :named @p_210)) :named @p_212)) :named @p_203))
-(assume a10 (! (forall ((?v0 Astate$) (?v1 Astate$) (?v2 V_list_v_result$) (?v3 Astate$)) (! (=> (! (= (! (fix_clock$ ?v0 (! (pair$ ?v1 ?v2) :named @p_225)) :named @p_2) (! (pair$ ?v3 ?v2) :named @p_229)) :named @p_231) (! (less_eq$ (! (clock$ ?v3) :named @p_234) (! (clock$ ?v1) :named @p_237)) :named @p_239)) :named @p_241)) :named @p_224))
-(assume a11 (! (forall ((?v0 Astate$) (?v1 Astate$) (?v2 V_list_v_result$)) (! (= @p_2 (! (pair$ (! (update_clock$ (! (uu$ ?v0 ?v1) :named @p_263) ?v1) :named @p_265) ?v2) :named @p_268)) :named @p_270)) :named @p_258))
-(assume a12 (! (forall ((?v0 V_error_result$) (?v1 V$)) (! (=> (! (and (! (= r$ (! (rerr$ ?v0) :named @p_287)) :named @p_289) @p_3) :named @p_294) (! (less_eq$ (! (clock$ (! (fst$ (! (fun_app$ (! (fun_evaluate_match$ st$ env$ ?v1 pes$) :named @p_297) ?v1) :named @p_299)) :named @p_301)) :named @p_303) (! (clock$ st$) :named @p_286)) :named @p_305)) :named @p_307)) :named @p_285))
-(assume a13 (! (not (! (=> (! (= r$ (! (rerr$ x2$) :named @p_562)) :named @p_327) (! (less_eq$ (! (clock$ (! (fst$ @p_547) :named @p_565)) :named @p_338) @p_4) :named @p_328)) :named @p_332)) :named @p_326))
-(anchor :step t14 :args ((:= (?v0 V$) veriT_vr0)))
-(step t14.t1 (cl (! (= ?v0 veriT_vr0) :named @p_8)) :rule refl)
-(step t14.t2 (cl (= @p_6 (! (fun_app$ uua$ veriT_vr0) :named @p_7))) :rule cong :premises (t14.t1))
-(step t14.t3 (cl @p_8) :rule refl)
-(step t14.t4 (cl (= @p_9 (! (fun_evaluate_match$ st$ env$ veriT_vr0 pes$) :named @p_10))) :rule cong :premises (t14.t3))
-(step t14.t5 (cl @p_8) :rule refl)
-(step t14.t6 (cl (= @p_11 (! (fun_app$ @p_10 veriT_vr0) :named @p_12))) :rule cong :premises (t14.t4 t14.t5))
-(step t14.t7 (cl (= @p_13 (! (= @p_7 @p_12) :named @p_14))) :rule cong :premises (t14.t2 t14.t6))
-(step t14 (cl (! (= @p_5 (! (forall ((veriT_vr0 V$)) @p_14) :named @p_16)) :named @p_15)) :rule bind)
-(step t15 (cl (not @p_15) (not @p_5) @p_16) :rule equiv_pos2)
-(step t16 (cl @p_16) :rule th_resolution :premises (a0 t14 t15))
-(anchor :step t17 :args ((:= (veriT_vr0 V$) veriT_vr1)))
-(step t17.t1 (cl (! (= veriT_vr0 veriT_vr1) :named @p_18)) :rule refl)
-(step t17.t2 (cl (= @p_7 (! (fun_app$ uua$ veriT_vr1) :named @p_17))) :rule cong :premises (t17.t1))
-(step t17.t3 (cl @p_18) :rule refl)
-(step t17.t4 (cl (= @p_10 (! (fun_evaluate_match$ st$ env$ veriT_vr1 pes$) :named @p_19))) :rule cong :premises (t17.t3))
-(step t17.t5 (cl @p_18) :rule refl)
-(step t17.t6 (cl (= @p_12 (! (fun_app$ @p_19 veriT_vr1) :named @p_20))) :rule cong :premises (t17.t4 t17.t5))
-(step t17.t7 (cl (= @p_14 (! (= @p_17 @p_20) :named @p_21))) :rule cong :premises (t17.t2 t17.t6))
-(step t17 (cl (! (= @p_16 (! (forall ((veriT_vr1 V$)) @p_21) :named @p_23)) :named @p_22)) :rule bind)
-(step t18 (cl (not @p_22) (not @p_16) @p_23) :rule equiv_pos2)
-(step t19 (cl @p_23) :rule th_resolution :premises (t16 t17 t18))
-(anchor :step t20 :args ((:= (?v0 Abort$) veriT_vr2)))
-(step t20.t1 (cl (! (= ?v0 veriT_vr2) :named @p_27)) :rule refl)
-(step t20.t2 (cl (= @p_25 (! (fun_app$a uub$ veriT_vr2) :named @p_26))) :rule cong :premises (t20.t1))
-(step t20.t3 (cl @p_27) :rule refl)
-(step t20.t4 (cl (= @p_28 (! (rabort$ veriT_vr2) :named @p_29))) :rule cong :premises (t20.t3))
-(step t20.t5 (cl (= @p_30 (! (rerr$ @p_29) :named @p_31))) :rule cong :premises (t20.t4))
-(step t20.t6 (cl (= @p_32 (! (pair$ st$ @p_31) :named @p_33))) :rule cong :premises (t20.t5))
-(step t20.t7 (cl (= @p_34 (! (= @p_26 @p_33) :named @p_35))) :rule cong :premises (t20.t2 t20.t6))
-(step t20 (cl (! (= @p_24 (! (forall ((veriT_vr2 Abort$)) @p_35) :named @p_37)) :named @p_36)) :rule bind)
-(step t21 (cl (not @p_36) (not @p_24) @p_37) :rule equiv_pos2)
-(step t22 (cl @p_37) :rule th_resolution :premises (a1 t20 t21))
-(anchor :step t23 :args ((:= (veriT_vr2 Abort$) veriT_vr3)))
-(step t23.t1 (cl (! (= veriT_vr2 veriT_vr3) :named @p_39)) :rule refl)
-(step t23.t2 (cl (= @p_26 (! (fun_app$a uub$ veriT_vr3) :named @p_38))) :rule cong :premises (t23.t1))
-(step t23.t3 (cl @p_39) :rule refl)
-(step t23.t4 (cl (= @p_29 (! (rabort$ veriT_vr3) :named @p_40))) :rule cong :premises (t23.t3))
-(step t23.t5 (cl (= @p_31 (! (rerr$ @p_40) :named @p_41))) :rule cong :premises (t23.t4))
-(step t23.t6 (cl (= @p_33 (! (pair$ st$ @p_41) :named @p_42))) :rule cong :premises (t23.t5))
-(step t23.t7 (cl (= @p_35 (! (= @p_38 @p_42) :named @p_43))) :rule cong :premises (t23.t2 t23.t6))
-(step t23 (cl (! (= @p_37 (! (forall ((veriT_vr3 Abort$)) @p_43) :named @p_45)) :named @p_44)) :rule bind)
-(step t24 (cl (not @p_44) (not @p_37) @p_45) :rule equiv_pos2)
-(step t25 (cl @p_45) :rule th_resolution :premises (t22 t23 t24))
-(anchor :step t26 :args ((:= (?v0 Nat$) veriT_vr10) (:= (?v1 Nat$) veriT_vr11) (:= (?v2 Nat$) veriT_vr12)))
-(step t26.t1 (cl (! (= ?v0 veriT_vr10) :named @p_49)) :rule refl)
-(step t26.t2 (cl (! (= ?v1 veriT_vr11) :named @p_55)) :rule refl)
-(step t26.t3 (cl (= @p_47 (! (less_eq$ veriT_vr10 veriT_vr11) :named @p_48))) :rule cong :premises (t26.t1 t26.t2))
-(step t26.t4 (cl (! (= ?v2 veriT_vr12) :named @p_54)) :rule refl)
-(step t26.t5 (cl @p_49) :rule refl)
-(step t26.t6 (cl (= @p_50 (! (less_eq$ veriT_vr12 veriT_vr10) :named @p_51))) :rule cong :premises (t26.t4 t26.t5))
-(step t26.t7 (cl (= @p_52 (! (and @p_48 @p_51) :named @p_53))) :rule cong :premises (t26.t3 t26.t6))
-(step t26.t8 (cl @p_54) :rule refl)
-(step t26.t9 (cl @p_55) :rule refl)
-(step t26.t10 (cl (= @p_56 (! (less_eq$ veriT_vr12 veriT_vr11) :named @p_57))) :rule cong :premises (t26.t8 t26.t9))
-(step t26.t11 (cl (= @p_58 (! (=> @p_53 @p_57) :named @p_59))) :rule cong :premises (t26.t7 t26.t10))
-(step t26 (cl (! (= @p_46 (! (forall ((veriT_vr10 Nat$) (veriT_vr11 Nat$) (veriT_vr12 Nat$)) @p_59) :named @p_61)) :named @p_60)) :rule bind)
-(step t27 (cl (not @p_60) (not @p_46) @p_61) :rule equiv_pos2)
-(step t28 (cl @p_61) :rule th_resolution :premises (a5 t26 t27))
-(anchor :step t29 :args ((:= (veriT_vr10 Nat$) veriT_vr13) (:= (veriT_vr11 Nat$) veriT_vr14) (:= (veriT_vr12 Nat$) veriT_vr15)))
-(step t29.t1 (cl (! (= veriT_vr10 veriT_vr13) :named @p_63)) :rule refl)
-(step t29.t2 (cl (! (= veriT_vr11 veriT_vr14) :named @p_67)) :rule refl)
-(step t29.t3 (cl (= @p_48 (! (less_eq$ veriT_vr13 veriT_vr14) :named @p_62))) :rule cong :premises (t29.t1 t29.t2))
-(step t29.t4 (cl (! (= veriT_vr12 veriT_vr15) :named @p_66)) :rule refl)
-(step t29.t5 (cl @p_63) :rule refl)
-(step t29.t6 (cl (= @p_51 (! (less_eq$ veriT_vr15 veriT_vr13) :named @p_64))) :rule cong :premises (t29.t4 t29.t5))
-(step t29.t7 (cl (= @p_53 (! (and @p_62 @p_64) :named @p_65))) :rule cong :premises (t29.t3 t29.t6))
-(step t29.t8 (cl @p_66) :rule refl)
-(step t29.t9 (cl @p_67) :rule refl)
-(step t29.t10 (cl (= @p_57 (! (less_eq$ veriT_vr15 veriT_vr14) :named @p_68))) :rule cong :premises (t29.t8 t29.t9))
-(step t29.t11 (cl (= @p_59 (! (=> @p_65 @p_68) :named @p_69))) :rule cong :premises (t29.t7 t29.t10))
-(step t29 (cl (! (= @p_61 (! (forall ((veriT_vr13 Nat$) (veriT_vr14 Nat$) (veriT_vr15 Nat$)) @p_69) :named @p_71)) :named @p_70)) :rule bind)
-(step t30 (cl (not @p_70) (not @p_61) @p_71) :rule equiv_pos2)
-(step t31 (cl @p_71) :rule th_resolution :premises (t28 t29 t30))
-(anchor :step t32 :args ((:= (?v0 Astate$) veriT_vr16) (:= (?v1 Astate_v_list_v_result_prod$) veriT_vr17)))
-(step t32.t1 (cl (! (= ?v0 veriT_vr16) :named @p_80)) :rule refl)
-(step t32.t2 (cl (! (= ?v1 veriT_vr17) :named @p_79)) :rule refl)
-(step t32.t3 (cl (= @p_73 (! (fst$ veriT_vr17) :named @p_74))) :rule cong :premises (t32.t2))
-(step t32.t4 (cl (= @p_75 (! (= veriT_vr16 @p_74) :named @p_76))) :rule cong :premises (t32.t1 t32.t3))
-(anchor :step t32.t5 :args ((:= (?v2 V_list_v_result$) veriT_vr18)))
-(step t32.t5.t1 (cl @p_79) :rule refl)
-(step t32.t5.t2 (cl @p_80) :rule refl)
-(step t32.t5.t3 (cl (= ?v2 veriT_vr18)) :rule refl)
-(step t32.t5.t4 (cl (= @p_81 (! (pair$ veriT_vr16 veriT_vr18) :named @p_82))) :rule cong :premises (t32.t5.t2 t32.t5.t3))
-(step t32.t5.t5 (cl (= @p_83 (! (= veriT_vr17 @p_82) :named @p_84))) :rule cong :premises (t32.t5.t1 t32.t5.t4))
-(step t32.t5 (cl (= @p_77 (! (exists ((veriT_vr18 V_list_v_result$)) @p_84) :named @p_78))) :rule bind)
-(step t32.t6 (cl (= @p_85 (! (= @p_76 @p_78) :named @p_86))) :rule cong :premises (t32.t4 t32.t5))
-(step t32 (cl (! (= @p_72 (! (forall ((veriT_vr16 Astate$) (veriT_vr17 Astate_v_list_v_result_prod$)) @p_86) :named @p_88)) :named @p_87)) :rule bind)
-(step t33 (cl (not @p_87) (not @p_72) @p_88) :rule equiv_pos2)
-(step t34 (cl @p_88) :rule th_resolution :premises (a6 t32 t33))
-(anchor :step t35 :args ((veriT_vr16 Astate$) (veriT_vr17 Astate_v_list_v_result_prod$)))
-(step t35.t1 (cl (= @p_86 (! (and (! (=> @p_76 @p_78) :named @p_99) (! (=> @p_78 @p_76) :named @p_106)) :named @p_89))) :rule connective_def)
-(step t35 (cl (! (= @p_88 (! (forall ((veriT_vr16 Astate$) (veriT_vr17 Astate_v_list_v_result_prod$)) @p_89) :named @p_91)) :named @p_90)) :rule bind)
-(step t36 (cl (not @p_90) (not @p_88) @p_91) :rule equiv_pos2)
-(step t37 (cl @p_91) :rule th_resolution :premises (t34 t35 t36))
-(anchor :step t38 :args ((:= (veriT_vr16 Astate$) veriT_vr19) (:= (veriT_vr17 Astate_v_list_v_result_prod$) veriT_vr20)))
-(step t38.t1 (cl (! (= veriT_vr16 veriT_vr19) :named @p_96)) :rule refl)
-(step t38.t2 (cl (! (= veriT_vr17 veriT_vr20) :named @p_95)) :rule refl)
-(step t38.t3 (cl (! (= @p_74 (! (fst$ veriT_vr20) :named @p_93)) :named @p_104)) :rule cong :premises (t38.t2))
-(step t38.t4 (cl (! (= @p_76 (! (= veriT_vr19 @p_93) :named @p_92)) :named @p_105)) :rule cong :premises (t38.t1 t38.t3))
-(anchor :step t38.t5 :args ((:= (veriT_vr18 V_list_v_result$) veriT_vr21)))
-(step t38.t5.t1 (cl @p_95) :rule refl)
-(step t38.t5.t2 (cl @p_96) :rule refl)
-(step t38.t5.t3 (cl (= veriT_vr18 veriT_vr21)) :rule refl)
-(step t38.t5.t4 (cl (= @p_82 (! (pair$ veriT_vr19 veriT_vr21) :named @p_97))) :rule cong :premises (t38.t5.t2 t38.t5.t3))
-(step t38.t5.t5 (cl (= @p_84 (! (= veriT_vr20 @p_97) :named @p_98))) :rule cong :premises (t38.t5.t1 t38.t5.t4))
-(step t38.t5 (cl (= @p_78 (! (exists ((veriT_vr21 V_list_v_result$)) @p_98) :named @p_94))) :rule bind)
-(step t38.t6 (cl (= @p_99 (! (=> @p_92 @p_94) :named @p_100))) :rule cong :premises (t38.t4 t38.t5))
-(anchor :step t38.t7 :args ((:= (veriT_vr18 V_list_v_result$) veriT_vr22)))
-(step t38.t7.t1 (cl @p_95) :rule refl)
-(step t38.t7.t2 (cl @p_96) :rule refl)
-(step t38.t7.t3 (cl (= veriT_vr18 veriT_vr22)) :rule refl)
-(step t38.t7.t4 (cl (= @p_82 (! (pair$ veriT_vr19 veriT_vr22) :named @p_102))) :rule cong :premises (t38.t7.t2 t38.t7.t3))
-(step t38.t7.t5 (cl (= @p_84 (! (= veriT_vr20 @p_102) :named @p_103))) :rule cong :premises (t38.t7.t1 t38.t7.t4))
-(step t38.t7 (cl (= @p_78 (! (exists ((veriT_vr22 V_list_v_result$)) @p_103) :named @p_101))) :rule bind)
-(step t38.t8 (cl @p_96) :rule refl)
-(step t38.t9 (cl @p_95) :rule refl)
-(step t38.t10 (cl @p_104) :rule cong :premises (t38.t9))
-(step t38.t11 (cl @p_105) :rule cong :premises (t38.t8 t38.t10))
-(step t38.t12 (cl (= @p_106 (! (=> @p_101 @p_92) :named @p_107))) :rule cong :premises (t38.t7 t38.t11))
-(step t38.t13 (cl (= @p_89 (! (and @p_100 @p_107) :named @p_108))) :rule cong :premises (t38.t6 t38.t12))
-(step t38 (cl (! (= @p_91 (! (forall ((veriT_vr19 Astate$) (veriT_vr20 Astate_v_list_v_result_prod$)) @p_108) :named @p_110)) :named @p_109)) :rule bind)
-(step t39 (cl (not @p_109) (not @p_91) @p_110) :rule equiv_pos2)
-(step t40 (cl @p_110) :rule th_resolution :premises (t37 t38 t39))
-(anchor :step t41 :args ((:= (veriT_vr19 Astate$) veriT_vr23) (:= (veriT_vr20 Astate_v_list_v_result_prod$) veriT_vr24)))
-(step t41.t1 (cl (! (= veriT_vr19 veriT_vr23) :named @p_115)) :rule refl)
-(step t41.t2 (cl (! (= veriT_vr20 veriT_vr24) :named @p_114)) :rule refl)
-(step t41.t3 (cl (! (= @p_93 (! (fst$ veriT_vr24) :named @p_113)) :named @p_119)) :rule cong :premises (t41.t2))
-(step t41.t4 (cl (! (= @p_92 (! (= veriT_vr23 @p_113) :named @p_112)) :named @p_120)) :rule cong :premises (t41.t1 t41.t3))
-(anchor :step t41.t5 :args ((:= (veriT_vr21 V_list_v_result$) veriT_vr25)))
-(step t41.t5.t1 (cl @p_114) :rule refl)
-(step t41.t5.t2 (cl @p_115) :rule refl)
-(step t41.t5.t3 (cl (= veriT_vr21 veriT_vr25)) :rule refl)
-(step t41.t5.t4 (cl (= @p_97 (! (pair$ veriT_vr23 veriT_vr25) :named @p_116))) :rule cong :premises (t41.t5.t2 t41.t5.t3))
-(step t41.t5.t5 (cl (= @p_98 (! (= veriT_vr24 @p_116) :named @p_117))) :rule cong :premises (t41.t5.t1 t41.t5.t4))
-(step t41.t5 (cl (= @p_94 (! (exists ((veriT_vr25 V_list_v_result$)) @p_117) :named @p_111))) :rule bind)
-(step t41.t6 (cl (= @p_100 (! (=> @p_112 @p_111) :named @p_118))) :rule cong :premises (t41.t4 t41.t5))
-(anchor :step t41.t7 :args ((:= (veriT_vr22 V_list_v_result$) veriT_vr25)))
-(step t41.t7.t1 (cl @p_114) :rule refl)
-(step t41.t7.t2 (cl @p_115) :rule refl)
-(step t41.t7.t3 (cl (= veriT_vr22 veriT_vr25)) :rule refl)
-(step t41.t7.t4 (cl (= @p_102 @p_116)) :rule cong :premises (t41.t7.t2 t41.t7.t3))
-(step t41.t7.t5 (cl (= @p_103 @p_117)) :rule cong :premises (t41.t7.t1 t41.t7.t4))
-(step t41.t7 (cl (= @p_101 @p_111)) :rule bind)
-(step t41.t8 (cl @p_115) :rule refl)
-(step t41.t9 (cl @p_114) :rule refl)
-(step t41.t10 (cl @p_119) :rule cong :premises (t41.t9))
-(step t41.t11 (cl @p_120) :rule cong :premises (t41.t8 t41.t10))
-(step t41.t12 (cl (= @p_107 (! (=> @p_111 @p_112) :named @p_121))) :rule cong :premises (t41.t7 t41.t11))
-(step t41.t13 (cl (= @p_108 (! (and @p_118 @p_121) :named @p_122))) :rule cong :premises (t41.t6 t41.t12))
-(step t41 (cl (! (= @p_110 (! (forall ((veriT_vr23 Astate$) (veriT_vr24 Astate_v_list_v_result_prod$)) @p_122) :named @p_124)) :named @p_123)) :rule bind)
-(step t42 (cl (not @p_123) (not @p_110) @p_124) :rule equiv_pos2)
-(step t43 (cl @p_124) :rule th_resolution :premises (t40 t41 t42))
-(anchor :step t44 :args ((:= (veriT_vr23 Astate$) veriT_vr23) (:= (veriT_vr24 Astate_v_list_v_result_prod$) veriT_vr24)))
-(anchor :step t44.t1 :args ((:= (veriT_vr25 V_list_v_result$) veriT_vr26)))
-(step t44.t1.t1 (cl (= veriT_vr25 veriT_vr26)) :rule refl)
-(step t44.t1.t2 (cl (= @p_116 (! (pair$ veriT_vr23 veriT_vr26) :named @p_126))) :rule cong :premises (t44.t1.t1))
-(step t44.t1.t3 (cl (= @p_117 (! (= veriT_vr24 @p_126) :named @p_127))) :rule cong :premises (t44.t1.t2))
-(step t44.t1 (cl (= @p_111 (! (exists ((veriT_vr26 V_list_v_result$)) @p_127) :named @p_125))) :rule bind)
-(step t44.t2 (cl (= @p_121 (! (=> @p_125 @p_112) :named @p_128))) :rule cong :premises (t44.t1))
-(step t44.t3 (cl (= @p_122 (! (and @p_118 @p_128) :named @p_129))) :rule cong :premises (t44.t2))
-(step t44 (cl (! (= @p_124 (! (forall ((veriT_vr23 Astate$) (veriT_vr24 Astate_v_list_v_result_prod$)) @p_129) :named @p_131)) :named @p_130)) :rule bind)
-(step t45 (cl (not @p_130) (not @p_124) @p_131) :rule equiv_pos2)
-(step t46 (cl @p_131) :rule th_resolution :premises (t43 t44 t45))
-(anchor :step t47 :args ((veriT_vr23 Astate$) (veriT_vr24 Astate_v_list_v_result_prod$)))
-(step t47.t1 (cl (= @p_125 (! (not (forall ((veriT_vr26 V_list_v_result$)) (! (not @p_127) :named @p_335))) :named @p_132))) :rule connective_def)
-(step t47.t2 (cl (= @p_128 (! (=> @p_132 @p_112) :named @p_133))) :rule cong :premises (t47.t1))
-(step t47.t3 (cl (= @p_129 (! (and @p_118 @p_133) :named @p_134))) :rule cong :premises (t47.t2))
-(step t47 (cl (! (= @p_131 (! (forall ((veriT_vr23 Astate$) (veriT_vr24 Astate_v_list_v_result_prod$)) @p_134) :named @p_136)) :named @p_135)) :rule bind)
-(step t48 (cl (not @p_135) (not @p_131) @p_136) :rule equiv_pos2)
-(step t49 (cl @p_136) :rule th_resolution :premises (t46 t47 t48))
-(anchor :step t50 :args ((:= (?v0 V_error_result$) veriT_vr27)))
-(anchor :step t50.t1 :args ((:= (?v1 V$) veriT_vr28)))
-(step t50.t1.t1 (cl (! (= ?v0 veriT_vr27) :named @p_147)) :rule refl)
-(step t50.t1.t2 (cl (= ?v1 veriT_vr28)) :rule refl)
-(step t50.t1.t3 (cl (= @p_140 (! (rraise$ veriT_vr28) :named @p_141))) :rule cong :premises (t50.t1.t2))
-(step t50.t1.t4 (cl (= @p_3 (! (= veriT_vr27 @p_141) :named @p_142))) :rule cong :premises (t50.t1.t1 t50.t1.t3))
-(step t50.t1.t5 (cl (= @p_143 (! (=> @p_142 false) :named @p_144))) :rule cong :premises (t50.t1.t4))
-(step t50.t1 (cl (= @p_138 (! (forall ((veriT_vr28 V$)) @p_144) :named @p_139))) :rule bind)
-(anchor :step t50.t2 :args ((:= (?v1 Abort$) veriT_vr29)))
-(step t50.t2.t1 (cl @p_147) :rule refl)
-(step t50.t2.t2 (cl (= ?v1 veriT_vr29)) :rule refl)
-(step t50.t2.t3 (cl (= @p_148 (! (rabort$ veriT_vr29) :named @p_149))) :rule cong :premises (t50.t2.t2))
-(step t50.t2.t4 (cl (= @p_150 (! (= veriT_vr27 @p_149) :named @p_151))) :rule cong :premises (t50.t2.t1 t50.t2.t3))
-(step t50.t2.t5 (cl (= @p_152 (! (=> @p_151 false) :named @p_153))) :rule cong :premises (t50.t2.t4))
-(step t50.t2 (cl (= @p_145 (! (forall ((veriT_vr29 Abort$)) @p_153) :named @p_146))) :rule bind)
-(step t50.t3 (cl (= @p_154 (! (and @p_139 @p_146) :named @p_155))) :rule cong :premises (t50.t1 t50.t2))
-(step t50.t4 (cl (= @p_156 (! (=> @p_155 false) :named @p_157))) :rule cong :premises (t50.t3))
-(step t50 (cl (! (= @p_137 (! (forall ((veriT_vr27 V_error_result$)) @p_157) :named @p_159)) :named @p_158)) :rule bind)
-(step t51 (cl (not @p_158) (not @p_137) @p_159) :rule equiv_pos2)
-(step t52 (cl @p_159) :rule th_resolution :premises (a7 t50 t51))
-(anchor :step t53 :args ((veriT_vr27 V_error_result$)))
-(anchor :step t53.t1 :args ((veriT_vr28 V$)))
-(step t53.t1.t1 (cl (= @p_144 (! (not @p_142) :named @p_161))) :rule implies_simplify)
-(step t53.t1 (cl (= @p_139 (! (forall ((veriT_vr28 V$)) @p_161) :named @p_160))) :rule bind)
-(anchor :step t53.t2 :args ((veriT_vr29 Abort$)))
-(step t53.t2.t1 (cl (= @p_153 (! (not @p_151) :named @p_163))) :rule implies_simplify)
-(step t53.t2 (cl (= @p_146 (! (forall ((veriT_vr29 Abort$)) @p_163) :named @p_162))) :rule bind)
-(step t53.t3 (cl (= @p_155 (! (and @p_160 @p_162) :named @p_164))) :rule cong :premises (t53.t1 t53.t2))
-(step t53.t4 (cl (= @p_157 (! (=> @p_164 false) :named @p_165))) :rule cong :premises (t53.t3))
-(step t53.t5 (cl (= @p_165 (! (not @p_164) :named @p_166))) :rule implies_simplify)
-(step t53.t6 (cl (= @p_157 @p_166)) :rule trans :premises (t53.t4 t53.t5))
-(step t53 (cl (! (= @p_159 (! (forall ((veriT_vr27 V_error_result$)) @p_166) :named @p_168)) :named @p_167)) :rule bind)
-(step t54 (cl (not @p_167) (not @p_159) @p_168) :rule equiv_pos2)
-(step t55 (cl @p_168) :rule th_resolution :premises (t52 t53 t54))
-(anchor :step t56 :args ((:= (veriT_vr27 V_error_result$) veriT_vr30)))
-(anchor :step t56.t1 :args ((:= (veriT_vr28 V$) veriT_vr31)))
-(step t56.t1.t1 (cl (! (= veriT_vr27 veriT_vr30) :named @p_174)) :rule refl)
-(step t56.t1.t2 (cl (= veriT_vr28 veriT_vr31)) :rule refl)
-(step t56.t1.t3 (cl (= @p_141 (! (rraise$ veriT_vr31) :named @p_170))) :rule cong :premises (t56.t1.t2))
-(step t56.t1.t4 (cl (= @p_142 (! (= veriT_vr30 @p_170) :named @p_171))) :rule cong :premises (t56.t1.t1 t56.t1.t3))
-(step t56.t1.t5 (cl (= @p_161 (! (not @p_171) :named @p_172))) :rule cong :premises (t56.t1.t4))
-(step t56.t1 (cl (= @p_160 (! (forall ((veriT_vr31 V$)) @p_172) :named @p_169))) :rule bind)
-(anchor :step t56.t2 :args ((:= (veriT_vr29 Abort$) veriT_vr32)))
-(step t56.t2.t1 (cl @p_174) :rule refl)
-(step t56.t2.t2 (cl (= veriT_vr29 veriT_vr32)) :rule refl)
-(step t56.t2.t3 (cl (= @p_149 (! (rabort$ veriT_vr32) :named @p_175))) :rule cong :premises (t56.t2.t2))
-(step t56.t2.t4 (cl (= @p_151 (! (= veriT_vr30 @p_175) :named @p_176))) :rule cong :premises (t56.t2.t1 t56.t2.t3))
-(step t56.t2.t5 (cl (= @p_163 (! (not @p_176) :named @p_177))) :rule cong :premises (t56.t2.t4))
-(step t56.t2 (cl (= @p_162 (! (forall ((veriT_vr32 Abort$)) @p_177) :named @p_173))) :rule bind)
-(step t56.t3 (cl (= @p_164 (! (and @p_169 @p_173) :named @p_178))) :rule cong :premises (t56.t1 t56.t2))
-(step t56.t4 (cl (= @p_166 (! (not @p_178) :named @p_179))) :rule cong :premises (t56.t3))
-(step t56 (cl (! (= @p_168 (! (forall ((veriT_vr30 V_error_result$)) @p_179) :named @p_181)) :named @p_180)) :rule bind)
-(step t57 (cl (not @p_180) (not @p_168) @p_181) :rule equiv_pos2)
-(step t58 (cl @p_181) :rule th_resolution :premises (t55 t56 t57))
-(anchor :step t59 :args ((:= (?v0 V_astate_v_list_v_result_prod_fun$) veriT_vr33) (:= (?v1 Abort_astate_v_list_v_result_prod_fun$) veriT_vr34) (:= (?v2 V$) veriT_vr35)))
-(step t59.t1 (cl (! (= ?v0 veriT_vr33) :named @p_187)) :rule refl)
-(step t59.t2 (cl (= ?v1 veriT_vr34)) :rule refl)
-(step t59.t3 (cl (! (= ?v2 veriT_vr35) :named @p_188)) :rule refl)
-(step t59.t4 (cl (= @p_183 (! (rraise$ veriT_vr35) :named @p_184))) :rule cong :premises (t59.t3))
-(step t59.t5 (cl (= @p_185 (! (case_error_result$ veriT_vr33 veriT_vr34 @p_184) :named @p_186))) :rule cong :premises (t59.t1 t59.t2 t59.t4))
-(step t59.t6 (cl @p_187) :rule refl)
-(step t59.t7 (cl @p_188) :rule refl)
-(step t59.t8 (cl (= @p_189 (! (fun_app$ veriT_vr33 veriT_vr35) :named @p_190))) :rule cong :premises (t59.t6 t59.t7))
-(step t59.t9 (cl (= @p_191 (! (= @p_186 @p_190) :named @p_192))) :rule cong :premises (t59.t5 t59.t8))
-(step t59 (cl (! (= @p_182 (! (forall ((veriT_vr33 V_astate_v_list_v_result_prod_fun$) (veriT_vr34 Abort_astate_v_list_v_result_prod_fun$) (veriT_vr35 V$)) @p_192) :named @p_194)) :named @p_193)) :rule bind)
-(step t60 (cl (not @p_193) (not @p_182) @p_194) :rule equiv_pos2)
-(step t61 (cl @p_194) :rule th_resolution :premises (a8 t59 t60))
-(anchor :step t62 :args ((:= (veriT_vr33 V_astate_v_list_v_result_prod_fun$) veriT_vr36) (:= (veriT_vr34 Abort_astate_v_list_v_result_prod_fun$) veriT_vr37) (:= (veriT_vr35 V$) veriT_vr38)))
-(step t62.t1 (cl (! (= veriT_vr33 veriT_vr36) :named @p_197)) :rule refl)
-(step t62.t2 (cl (= veriT_vr34 veriT_vr37)) :rule refl)
-(step t62.t3 (cl (! (= veriT_vr35 veriT_vr38) :named @p_198)) :rule refl)
-(step t62.t4 (cl (= @p_184 (! (rraise$ veriT_vr38) :named @p_195))) :rule cong :premises (t62.t3))
-(step t62.t5 (cl (= @p_186 (! (case_error_result$ veriT_vr36 veriT_vr37 @p_195) :named @p_196))) :rule cong :premises (t62.t1 t62.t2 t62.t4))
-(step t62.t6 (cl @p_197) :rule refl)
-(step t62.t7 (cl @p_198) :rule refl)
-(step t62.t8 (cl (= @p_190 (! (fun_app$ veriT_vr36 veriT_vr38) :named @p_199))) :rule cong :premises (t62.t6 t62.t7))
-(step t62.t9 (cl (= @p_192 (! (= @p_196 @p_199) :named @p_200))) :rule cong :premises (t62.t5 t62.t8))
-(step t62 (cl (! (= @p_194 (! (forall ((veriT_vr36 V_astate_v_list_v_result_prod_fun$) (veriT_vr37 Abort_astate_v_list_v_result_prod_fun$) (veriT_vr38 V$)) @p_200) :named @p_202)) :named @p_201)) :rule bind)
-(step t63 (cl (not @p_201) (not @p_194) @p_202) :rule equiv_pos2)
-(step t64 (cl @p_202) :rule th_resolution :premises (t61 t62 t63))
-(anchor :step t65 :args ((:= (?v0 V_astate_v_list_v_result_prod_fun$) veriT_vr39) (:= (?v1 Abort_astate_v_list_v_result_prod_fun$) veriT_vr40) (:= (?v2 Abort$) veriT_vr41)))
-(step t65.t1 (cl (= ?v0 veriT_vr39)) :rule refl)
-(step t65.t2 (cl (! (= ?v1 veriT_vr40) :named @p_208)) :rule refl)
-(step t65.t3 (cl (! (= ?v2 veriT_vr41) :named @p_209)) :rule refl)
-(step t65.t4 (cl (= @p_204 (! (rabort$ veriT_vr41) :named @p_205))) :rule cong :premises (t65.t3))
-(step t65.t5 (cl (= @p_206 (! (case_error_result$ veriT_vr39 veriT_vr40 @p_205) :named @p_207))) :rule cong :premises (t65.t1 t65.t2 t65.t4))
-(step t65.t6 (cl @p_208) :rule refl)
-(step t65.t7 (cl @p_209) :rule refl)
-(step t65.t8 (cl (= @p_210 (! (fun_app$a veriT_vr40 veriT_vr41) :named @p_211))) :rule cong :premises (t65.t6 t65.t7))
-(step t65.t9 (cl (= @p_212 (! (= @p_207 @p_211) :named @p_213))) :rule cong :premises (t65.t5 t65.t8))
-(step t65 (cl (! (= @p_203 (! (forall ((veriT_vr39 V_astate_v_list_v_result_prod_fun$) (veriT_vr40 Abort_astate_v_list_v_result_prod_fun$) (veriT_vr41 Abort$)) @p_213) :named @p_215)) :named @p_214)) :rule bind)
-(step t66 (cl (not @p_214) (not @p_203) @p_215) :rule equiv_pos2)
-(step t67 (cl @p_215) :rule th_resolution :premises (a9 t65 t66))
-(anchor :step t68 :args ((:= (veriT_vr39 V_astate_v_list_v_result_prod_fun$) veriT_vr42) (:= (veriT_vr40 Abort_astate_v_list_v_result_prod_fun$) veriT_vr43) (:= (veriT_vr41 Abort$) veriT_vr44)))
-(step t68.t1 (cl (= veriT_vr39 veriT_vr42)) :rule refl)
-(step t68.t2 (cl (! (= veriT_vr40 veriT_vr43) :named @p_218)) :rule refl)
-(step t68.t3 (cl (! (= veriT_vr41 veriT_vr44) :named @p_219)) :rule refl)
-(step t68.t4 (cl (= @p_205 (! (rabort$ veriT_vr44) :named @p_216))) :rule cong :premises (t68.t3))
-(step t68.t5 (cl (= @p_207 (! (case_error_result$ veriT_vr42 veriT_vr43 @p_216) :named @p_217))) :rule cong :premises (t68.t1 t68.t2 t68.t4))
-(step t68.t6 (cl @p_218) :rule refl)
-(step t68.t7 (cl @p_219) :rule refl)
-(step t68.t8 (cl (= @p_211 (! (fun_app$a veriT_vr43 veriT_vr44) :named @p_220))) :rule cong :premises (t68.t6 t68.t7))
-(step t68.t9 (cl (= @p_213 (! (= @p_217 @p_220) :named @p_221))) :rule cong :premises (t68.t5 t68.t8))
-(step t68 (cl (! (= @p_215 (! (forall ((veriT_vr42 V_astate_v_list_v_result_prod_fun$) (veriT_vr43 Abort_astate_v_list_v_result_prod_fun$) (veriT_vr44 Abort$)) @p_221) :named @p_223)) :named @p_222)) :rule bind)
-(step t69 (cl (not @p_222) (not @p_215) @p_223) :rule equiv_pos2)
-(step t70 (cl @p_223) :rule th_resolution :premises (t67 t68 t69))
-(anchor :step t71 :args ((:= (?v0 Astate$) veriT_vr45) (:= (?v1 Astate$) veriT_vr46) (:= (?v2 V_list_v_result$) veriT_vr47) (:= (?v3 Astate$) veriT_vr48)))
-(step t71.t1 (cl (= ?v0 veriT_vr45)) :rule refl)
-(step t71.t2 (cl (! (= ?v1 veriT_vr46) :named @p_236)) :rule refl)
-(step t71.t3 (cl (! (= ?v2 veriT_vr47) :named @p_228)) :rule refl)
-(step t71.t4 (cl (= @p_225 (! (pair$ veriT_vr46 veriT_vr47) :named @p_226))) :rule cong :premises (t71.t2 t71.t3))
-(step t71.t5 (cl (= @p_2 (! (fix_clock$ veriT_vr45 @p_226) :named @p_227))) :rule cong :premises (t71.t1 t71.t4))
-(step t71.t6 (cl (! (= ?v3 veriT_vr48) :named @p_233)) :rule refl)
-(step t71.t7 (cl @p_228) :rule refl)
-(step t71.t8 (cl (= @p_229 (! (pair$ veriT_vr48 veriT_vr47) :named @p_230))) :rule cong :premises (t71.t6 t71.t7))
-(step t71.t9 (cl (= @p_231 (! (= @p_227 @p_230) :named @p_232))) :rule cong :premises (t71.t5 t71.t8))
-(step t71.t10 (cl @p_233) :rule refl)
-(step t71.t11 (cl (= @p_234 (! (clock$ veriT_vr48) :named @p_235))) :rule cong :premises (t71.t10))
-(step t71.t12 (cl @p_236) :rule refl)
-(step t71.t13 (cl (= @p_237 (! (clock$ veriT_vr46) :named @p_238))) :rule cong :premises (t71.t12))
-(step t71.t14 (cl (= @p_239 (! (less_eq$ @p_235 @p_238) :named @p_240))) :rule cong :premises (t71.t11 t71.t13))
-(step t71.t15 (cl (= @p_241 (! (=> @p_232 @p_240) :named @p_242))) :rule cong :premises (t71.t9 t71.t14))
-(step t71 (cl (! (= @p_224 (! (forall ((veriT_vr45 Astate$) (veriT_vr46 Astate$) (veriT_vr47 V_list_v_result$) (veriT_vr48 Astate$)) @p_242) :named @p_244)) :named @p_243)) :rule bind)
-(step t72 (cl (not @p_243) (not @p_224) @p_244) :rule equiv_pos2)
-(step t73 (cl @p_244) :rule th_resolution :premises (a10 t71 t72))
-(anchor :step t74 :args ((:= (veriT_vr45 Astate$) veriT_vr49) (:= (veriT_vr46 Astate$) veriT_vr50) (:= (veriT_vr47 V_list_v_result$) veriT_vr51) (:= (veriT_vr48 Astate$) veriT_vr52)))
-(step t74.t1 (cl (= veriT_vr45 veriT_vr49)) :rule refl)
-(step t74.t2 (cl (! (= veriT_vr46 veriT_vr50) :named @p_252)) :rule refl)
-(step t74.t3 (cl (! (= veriT_vr47 veriT_vr51) :named @p_247)) :rule refl)
-(step t74.t4 (cl (= @p_226 (! (pair$ veriT_vr50 veriT_vr51) :named @p_245))) :rule cong :premises (t74.t2 t74.t3))
-(step t74.t5 (cl (= @p_227 (! (fix_clock$ veriT_vr49 @p_245) :named @p_246))) :rule cong :premises (t74.t1 t74.t4))
-(step t74.t6 (cl (! (= veriT_vr48 veriT_vr52) :named @p_250)) :rule refl)
-(step t74.t7 (cl @p_247) :rule refl)
-(step t74.t8 (cl (= @p_230 (! (pair$ veriT_vr52 veriT_vr51) :named @p_248))) :rule cong :premises (t74.t6 t74.t7))
-(step t74.t9 (cl (= @p_232 (! (= @p_246 @p_248) :named @p_249))) :rule cong :premises (t74.t5 t74.t8))
-(step t74.t10 (cl @p_250) :rule refl)
-(step t74.t11 (cl (= @p_235 (! (clock$ veriT_vr52) :named @p_251))) :rule cong :premises (t74.t10))
-(step t74.t12 (cl @p_252) :rule refl)
-(step t74.t13 (cl (= @p_238 (! (clock$ veriT_vr50) :named @p_253))) :rule cong :premises (t74.t12))
-(step t74.t14 (cl (= @p_240 (! (less_eq$ @p_251 @p_253) :named @p_254))) :rule cong :premises (t74.t11 t74.t13))
-(step t74.t15 (cl (= @p_242 (! (=> @p_249 @p_254) :named @p_255))) :rule cong :premises (t74.t9 t74.t14))
-(step t74 (cl (! (= @p_244 (! (forall ((veriT_vr49 Astate$) (veriT_vr50 Astate$) (veriT_vr51 V_list_v_result$) (veriT_vr52 Astate$)) @p_255) :named @p_257)) :named @p_256)) :rule bind)
-(step t75 (cl (not @p_256) (not @p_244) @p_257) :rule equiv_pos2)
-(step t76 (cl @p_257) :rule th_resolution :premises (t73 t74 t75))
-(anchor :step t77 :args ((:= (?v0 Astate$) veriT_vr53) (:= (?v1 Astate$) veriT_vr54) (:= (?v2 V_list_v_result$) veriT_vr55)))
-(step t77.t1 (cl (! (= ?v0 veriT_vr53) :named @p_261)) :rule refl)
-(step t77.t2 (cl (! (= ?v1 veriT_vr54) :named @p_262)) :rule refl)
-(step t77.t3 (cl (! (= ?v2 veriT_vr55) :named @p_267)) :rule refl)
-(step t77.t4 (cl (= @p_225 (! (pair$ veriT_vr54 veriT_vr55) :named @p_259))) :rule cong :premises (t77.t2 t77.t3))
-(step t77.t5 (cl (= @p_2 (! (fix_clock$ veriT_vr53 @p_259) :named @p_260))) :rule cong :premises (t77.t1 t77.t4))
-(step t77.t6 (cl @p_261) :rule refl)
-(step t77.t7 (cl @p_262) :rule refl)
-(step t77.t8 (cl (= @p_263 (! (uu$ veriT_vr53 veriT_vr54) :named @p_264))) :rule cong :premises (t77.t6 t77.t7))
-(step t77.t9 (cl @p_262) :rule refl)
-(step t77.t10 (cl (= @p_265 (! (update_clock$ @p_264 veriT_vr54) :named @p_266))) :rule cong :premises (t77.t8 t77.t9))
-(step t77.t11 (cl @p_267) :rule refl)
-(step t77.t12 (cl (= @p_268 (! (pair$ @p_266 veriT_vr55) :named @p_269))) :rule cong :premises (t77.t10 t77.t11))
-(step t77.t13 (cl (= @p_270 (! (= @p_260 @p_269) :named @p_271))) :rule cong :premises (t77.t5 t77.t12))
-(step t77 (cl (! (= @p_258 (! (forall ((veriT_vr53 Astate$) (veriT_vr54 Astate$) (veriT_vr55 V_list_v_result$)) @p_271) :named @p_273)) :named @p_272)) :rule bind)
-(step t78 (cl (not @p_272) (not @p_258) @p_273) :rule equiv_pos2)
-(step t79 (cl @p_273) :rule th_resolution :premises (a11 t77 t78))
-(anchor :step t80 :args ((:= (veriT_vr53 Astate$) veriT_vr56) (:= (veriT_vr54 Astate$) veriT_vr57) (:= (veriT_vr55 V_list_v_result$) veriT_vr58)))
-(step t80.t1 (cl (! (= veriT_vr53 veriT_vr56) :named @p_276)) :rule refl)
-(step t80.t2 (cl (! (= veriT_vr54 veriT_vr57) :named @p_277)) :rule refl)
-(step t80.t3 (cl (! (= veriT_vr55 veriT_vr58) :named @p_280)) :rule refl)
-(step t80.t4 (cl (= @p_259 (! (pair$ veriT_vr57 veriT_vr58) :named @p_274))) :rule cong :premises (t80.t2 t80.t3))
-(step t80.t5 (cl (= @p_260 (! (fix_clock$ veriT_vr56 @p_274) :named @p_275))) :rule cong :premises (t80.t1 t80.t4))
-(step t80.t6 (cl @p_276) :rule refl)
-(step t80.t7 (cl @p_277) :rule refl)
-(step t80.t8 (cl (= @p_264 (! (uu$ veriT_vr56 veriT_vr57) :named @p_278))) :rule cong :premises (t80.t6 t80.t7))
-(step t80.t9 (cl @p_277) :rule refl)
-(step t80.t10 (cl (= @p_266 (! (update_clock$ @p_278 veriT_vr57) :named @p_279))) :rule cong :premises (t80.t8 t80.t9))
-(step t80.t11 (cl @p_280) :rule refl)
-(step t80.t12 (cl (= @p_269 (! (pair$ @p_279 veriT_vr58) :named @p_281))) :rule cong :premises (t80.t10 t80.t11))
-(step t80.t13 (cl (= @p_271 (! (= @p_275 @p_281) :named @p_282))) :rule cong :premises (t80.t5 t80.t12))
-(step t80 (cl (! (= @p_273 (! (forall ((veriT_vr56 Astate$) (veriT_vr57 Astate$) (veriT_vr58 V_list_v_result$)) @p_282) :named @p_284)) :named @p_283)) :rule bind)
-(step t81 (cl (not @p_283) (not @p_273) @p_284) :rule equiv_pos2)
-(step t82 (cl @p_284) :rule th_resolution :premises (t79 t80 t81))
-(anchor :step t83 :args ((:= (?v0 V_error_result$) veriT_vr59) (:= (?v1 V$) veriT_vr60)))
-(step t83.t1 (cl (! (= ?v0 veriT_vr59) :named @p_291)) :rule refl)
-(step t83.t2 (cl (= @p_287 (! (rerr$ veriT_vr59) :named @p_288))) :rule cong :premises (t83.t1))
-(step t83.t3 (cl (= @p_289 (! (= r$ @p_288) :named @p_290))) :rule cong :premises (t83.t2))
-(step t83.t4 (cl @p_291) :rule refl)
-(step t83.t5 (cl (! (= ?v1 veriT_vr60) :named @p_296)) :rule refl)
-(step t83.t6 (cl (= @p_140 (! (rraise$ veriT_vr60) :named @p_292))) :rule cong :premises (t83.t5))
-(step t83.t7 (cl (= @p_3 (! (= veriT_vr59 @p_292) :named @p_293))) :rule cong :premises (t83.t4 t83.t6))
-(step t83.t8 (cl (= @p_294 (! (and @p_290 @p_293) :named @p_295))) :rule cong :premises (t83.t3 t83.t7))
-(step t83.t9 (cl @p_296) :rule refl)
-(step t83.t10 (cl (= @p_297 (! (fun_evaluate_match$ st$ env$ veriT_vr60 pes$) :named @p_298))) :rule cong :premises (t83.t9))
-(step t83.t11 (cl @p_296) :rule refl)
-(step t83.t12 (cl (= @p_299 (! (fun_app$ @p_298 veriT_vr60) :named @p_300))) :rule cong :premises (t83.t10 t83.t11))
-(step t83.t13 (cl (= @p_301 (! (fst$ @p_300) :named @p_302))) :rule cong :premises (t83.t12))
-(step t83.t14 (cl (= @p_303 (! (clock$ @p_302) :named @p_304))) :rule cong :premises (t83.t13))
-(step t83.t15 (cl (= @p_305 (! (less_eq$ @p_304 @p_286) :named @p_306))) :rule cong :premises (t83.t14))
-(step t83.t16 (cl (= @p_307 (! (=> @p_295 @p_306) :named @p_308))) :rule cong :premises (t83.t8 t83.t15))
-(step t83 (cl (! (= @p_285 (! (forall ((veriT_vr59 V_error_result$) (veriT_vr60 V$)) @p_308) :named @p_310)) :named @p_309)) :rule bind)
-(step t84 (cl (not @p_309) (not @p_285) @p_310) :rule equiv_pos2)
-(step t85 (cl @p_310) :rule th_resolution :premises (a12 t83 t84))
-(anchor :step t86 :args ((:= (veriT_vr59 V_error_result$) veriT_vr61) (:= (veriT_vr60 V$) veriT_vr62)))
-(step t86.t1 (cl (! (= veriT_vr59 veriT_vr61) :named @p_313)) :rule refl)
-(step t86.t2 (cl (= @p_288 (! (rerr$ veriT_vr61) :named @p_311))) :rule cong :premises (t86.t1))
-(step t86.t3 (cl (= @p_290 (! (= r$ @p_311) :named @p_312))) :rule cong :premises (t86.t2))
-(step t86.t4 (cl @p_313) :rule refl)
-(step t86.t5 (cl (! (= veriT_vr60 veriT_vr62) :named @p_317)) :rule refl)
-(step t86.t6 (cl (= @p_292 (! (rraise$ veriT_vr62) :named @p_314))) :rule cong :premises (t86.t5))
-(step t86.t7 (cl (= @p_293 (! (= veriT_vr61 @p_314) :named @p_315))) :rule cong :premises (t86.t4 t86.t6))
-(step t86.t8 (cl (= @p_295 (! (and @p_312 @p_315) :named @p_316))) :rule cong :premises (t86.t3 t86.t7))
-(step t86.t9 (cl @p_317) :rule refl)
-(step t86.t10 (cl (= @p_298 (! (fun_evaluate_match$ st$ env$ veriT_vr62 pes$) :named @p_318))) :rule cong :premises (t86.t9))
-(step t86.t11 (cl @p_317) :rule refl)
-(step t86.t12 (cl (= @p_300 (! (fun_app$ @p_318 veriT_vr62) :named @p_319))) :rule cong :premises (t86.t10 t86.t11))
-(step t86.t13 (cl (= @p_302 (! (fst$ @p_319) :named @p_320))) :rule cong :premises (t86.t12))
-(step t86.t14 (cl (= @p_304 (! (clock$ @p_320) :named @p_321))) :rule cong :premises (t86.t13))
-(step t86.t15 (cl (= @p_306 (! (less_eq$ @p_321 @p_286) :named @p_322))) :rule cong :premises (t86.t14))
-(step t86.t16 (cl (= @p_308 (! (=> @p_316 @p_322) :named @p_323))) :rule cong :premises (t86.t8 t86.t15))
-(step t86 (cl (! (= @p_310 (! (forall ((veriT_vr61 V_error_result$) (veriT_vr62 V$)) @p_323) :named @p_325)) :named @p_324)) :rule bind)
-(step t87 (cl (not @p_324) (not @p_310) @p_325) :rule equiv_pos2)
-(step t88 (cl @p_325) :rule th_resolution :premises (t85 t86 t87))
-(step t89 (cl (! (= @p_326 (! (and @p_327 (! (not @p_328) :named @p_334)) :named @p_330)) :named @p_329)) :rule bool_simplify)
-(step t90 (cl (! (not @p_329) :named @p_333) (! (not @p_326) :named @p_331) @p_330) :rule equiv_pos2)
-(step t91 (cl (not @p_331) @p_332) :rule not_not)
-(step t92 (cl @p_333 @p_332 @p_330) :rule th_resolution :premises (t91 t90))
-(step t93 (cl @p_330) :rule th_resolution :premises (a13 t89 t92))
-(step t94 (cl @p_327) :rule and :premises (t93))
-(step t95 (cl @p_334) :rule and :premises (t93))
-(step t96 (cl (or (! (not @p_71) :named @p_336) (! (forall ((veriT_vr13 Nat$) (veriT_vr14 Nat$) (veriT_vr15 Nat$)) (or (not @p_62) (not @p_64) @p_68)) :named @p_516))) :rule qnt_cnf)
-(step t97 (cl (or (! (not @p_136) :named @p_399) (! (forall ((veriT_vr23 Astate$) (veriT_vr24 Astate_v_list_v_result_prod$) (veriT_vr26 V_list_v_result$)) (or @p_335 @p_112)) :named @p_577))) :rule qnt_cnf)
-(step t98 (cl (or @p_336 (! (=> (! (and @p_337 (! (less_eq$ @p_338 @p_339) :named @p_341)) :named @p_340) @p_328) :named @p_342))) :rule forall_inst :args ((:= veriT_vr13 @p_339) (:= veriT_vr14 @p_4) (:= veriT_vr15 @p_338)))
-(step t99 (cl @p_340 (! (not @p_337) :named @p_517) (! (not @p_341) :named @p_343)) :rule and_neg)
-(step t100 (cl (! (not @p_342) :named @p_344) (! (not @p_340) :named @p_345) @p_328) :rule implies_pos)
-(step t101 (cl @p_336 @p_342) :rule or :premises (t98))
-(step t102 (cl @p_340 @p_343) :rule resolution :premises (t99 a4))
-(step t103 (cl @p_344 @p_345) :rule resolution :premises (t100 t95))
-(step t104 (cl @p_342) :rule resolution :premises (t101 t31))
-(step t105 (cl @p_345) :rule resolution :premises (t103 t104))
-(step t106 (cl @p_343) :rule resolution :premises (t102 t105))
-(step t107 (cl (not (! (not @p_336) :named @p_521)) @p_71) :rule not_not)
-(step t108 (cl (or (! (not @p_284) :named @p_497) (! (= (fix_clock$ st$a (pair$ @p_346 r$)) (pair$ @p_504 r$)) :named @p_498))) :rule forall_inst :args ((:= veriT_vr56 st$a) (:= veriT_vr57 @p_346) (:= veriT_vr58 r$)))
-(step t109 (cl (or (! (not @p_181) :named @p_395) (! (not (! (and (! (forall ((veriT_vr31 V$)) (! (not (! (= x2$ @p_170) :named @p_350)) :named @p_352)) :named @p_348) (! (forall ((veriT_vr32 Abort$)) (! (not (! (= x2$ @p_175) :named @p_356)) :named @p_358)) :named @p_354)) :named @p_360)) :named @p_347))) :rule forall_inst :args ((:= veriT_vr30 x2$)))
-(anchor :step t110)
-(assume t110.h1 @p_347)
-(anchor :step t110.t2 :args ((:= (veriT_vr31 V$) veriT_vr63)))
-(step t110.t2.t1 (cl (= veriT_vr31 veriT_vr63)) :rule refl)
-(step t110.t2.t2 (cl (= @p_170 (! (rraise$ veriT_vr63) :named @p_349))) :rule cong :premises (t110.t2.t1))
-(step t110.t2.t3 (cl (= @p_350 (! (= x2$ @p_349) :named @p_351))) :rule cong :premises (t110.t2.t2))
-(step t110.t2.t4 (cl (= @p_352 (! (not @p_351) :named @p_353))) :rule cong :premises (t110.t2.t3))
-(step t110.t2 (cl (= @p_348 (! (forall ((veriT_vr63 V$)) @p_353) :named @p_361))) :rule bind)
-(anchor :step t110.t3 :args ((:= (veriT_vr32 Abort$) veriT_vr64)))
-(step t110.t3.t1 (cl (= veriT_vr32 veriT_vr64)) :rule refl)
-(step t110.t3.t2 (cl (= @p_175 (! (rabort$ veriT_vr64) :named @p_355))) :rule cong :premises (t110.t3.t1))
-(step t110.t3.t3 (cl (= @p_356 (! (= x2$ @p_355) :named @p_357))) :rule cong :premises (t110.t3.t2))
-(step t110.t3.t4 (cl (= @p_358 (! (not @p_357) :named @p_359))) :rule cong :premises (t110.t3.t3))
-(step t110.t3 (cl (= @p_354 (! (forall ((veriT_vr64 Abort$)) @p_359) :named @p_362))) :rule bind)
-(step t110.t4 (cl (= @p_360 (! (and @p_361 @p_362) :named @p_363))) :rule cong :premises (t110.t2 t110.t3))
-(step t110.t5 (cl (! (= @p_347 (! (not @p_363) :named @p_366)) :named @p_364)) :rule cong :premises (t110.t4))
-(step t110.t6 (cl (! (not @p_364) :named @p_367) (! (not @p_347) :named @p_365) @p_366) :rule equiv_pos2)
-(step t110.t7 (cl (! (not @p_365) :named @p_394) @p_360) :rule not_not)
-(step t110.t8 (cl @p_367 @p_360 @p_366) :rule th_resolution :premises (t110.t7 t110.t6))
-(step t110.t9 (cl @p_366) :rule th_resolution :premises (t110.h1 t110.t5 t110.t8))
-(anchor :step t110.t10 :args ((:= (veriT_vr63 V$) veriT_vr65)))
-(step t110.t10.t1 (cl (= veriT_vr63 veriT_vr65)) :rule refl)
-(step t110.t10.t2 (cl (= @p_349 @p_369)) :rule cong :premises (t110.t10.t1))
-(step t110.t10.t3 (cl (= @p_351 @p_370)) :rule cong :premises (t110.t10.t2))
-(step t110.t10.t4 (cl (= @p_353 @p_368)) :rule cong :premises (t110.t10.t3))
-(step t110.t10 (cl (= @p_361 (! (forall ((veriT_vr65 V$)) @p_368) :named @p_374))) :rule bind)
-(anchor :step t110.t11 :args ((:= (veriT_vr64 Abort$) veriT_vr66)))
-(step t110.t11.t1 (cl (= veriT_vr64 veriT_vr66)) :rule refl)
-(step t110.t11.t2 (cl (= @p_355 @p_372)) :rule cong :premises (t110.t11.t1))
-(step t110.t11.t3 (cl (= @p_357 @p_373)) :rule cong :premises (t110.t11.t2))
-(step t110.t11.t4 (cl (= @p_359 @p_371)) :rule cong :premises (t110.t11.t3))
-(step t110.t11 (cl (= @p_362 (! (forall ((veriT_vr66 Abort$)) @p_371) :named @p_375))) :rule bind)
-(step t110.t12 (cl (= @p_363 (! (and @p_374 @p_375) :named @p_376))) :rule cong :premises (t110.t10 t110.t11))
-(step t110.t13 (cl (! (= @p_366 (! (not @p_376) :named @p_378)) :named @p_377)) :rule cong :premises (t110.t12))
-(step t110.t14 (cl (! (not @p_377) :named @p_380) (! (not @p_366) :named @p_379) @p_378) :rule equiv_pos2)
-(step t110.t15 (cl (not @p_379) @p_363) :rule not_not)
-(step t110.t16 (cl @p_380 @p_363 @p_378) :rule th_resolution :premises (t110.t15 t110.t14))
-(step t110.t17 (cl @p_378) :rule th_resolution :premises (t110.t9 t110.t13 t110.t16))
-(anchor :step t110.t18 :args ((:= (veriT_vr65 V$) veriT_sk0)))
-(step t110.t18.t1 (cl (= veriT_vr65 veriT_sk0)) :rule refl)
-(step t110.t18.t2 (cl (= @p_369 (! (rraise$ veriT_sk0) :named @p_383))) :rule cong :premises (t110.t18.t1))
-(step t110.t18.t3 (cl (= @p_370 (! (= x2$ @p_383) :named @p_384))) :rule cong :premises (t110.t18.t2))
-(step t110.t18.t4 (cl (= @p_368 (! (not @p_384) :named @p_381))) :rule cong :premises (t110.t18.t3))
-(step t110.t18 (cl (= @p_374 @p_381)) :rule sko_forall)
-(anchor :step t110.t19 :args ((:= (veriT_vr66 Abort$) veriT_sk1)))
-(step t110.t19.t1 (cl (= veriT_vr66 veriT_sk1)) :rule refl)
-(step t110.t19.t2 (cl (= @p_372 (! (rabort$ veriT_sk1) :named @p_387))) :rule cong :premises (t110.t19.t1))
-(step t110.t19.t3 (cl (= @p_373 (! (= x2$ @p_387) :named @p_388))) :rule cong :premises (t110.t19.t2))
-(step t110.t19.t4 (cl (= @p_371 (! (not @p_388) :named @p_385))) :rule cong :premises (t110.t19.t3))
-(step t110.t19 (cl (= @p_375 @p_385)) :rule sko_forall)
-(step t110.t20 (cl (= @p_376 (! (and @p_381 @p_385) :named @p_389))) :rule cong :premises (t110.t18 t110.t19))
-(step t110.t21 (cl (! (= @p_378 (! (not @p_389) :named @p_390)) :named @p_391)) :rule cong :premises (t110.t20))
-(step t110.t22 (cl (! (not @p_391) :named @p_393) (! (not @p_378) :named @p_392) @p_390) :rule equiv_pos2)
-(step t110.t23 (cl (not @p_392) @p_376) :rule not_not)
-(step t110.t24 (cl @p_393 @p_376 @p_390) :rule th_resolution :premises (t110.t23 t110.t22))
-(step t110.t25 (cl @p_390) :rule th_resolution :premises (t110.t17 t110.t21 t110.t24))
-(step t110 (cl @p_365 @p_390) :rule subproof :discharge (h1))
-(step t111 (cl @p_394 @p_360) :rule not_not)
-(step t112 (cl @p_360 @p_390) :rule th_resolution :premises (t111 t110))
-(step t113 (cl @p_395 @p_347) :rule or :premises (t109))
-(step t114 (cl (! (or @p_395 @p_390) :named @p_397) (! (not @p_395) :named @p_396)) :rule or_neg)
-(step t115 (cl (not @p_396) @p_181) :rule not_not)
-(step t116 (cl @p_397 @p_181) :rule th_resolution :premises (t115 t114))
-(step t117 (cl @p_397 (! (not @p_390) :named @p_398)) :rule or_neg)
-(step t118 (cl (not @p_398) @p_389) :rule not_not)
-(step t119 (cl @p_397 @p_389) :rule th_resolution :premises (t118 t117))
-(step t120 (cl @p_397) :rule th_resolution :premises (t113 t112 t116 t119))
-(step t121 (cl (not (! (not @p_399) :named @p_436)) @p_136) :rule not_not)
-(step t122 (cl (or @p_399 (! (and (! (=> (! (= @p_346 @p_346) :named @p_400) (! (exists ((veriT_vr25 V_list_v_result$)) (! (= @p_1 (! (pair$ @p_346 veriT_vr25) :named @p_403)) :named @p_405)) :named @p_402)) :named @p_407) (! (=> (! (not (! (forall ((veriT_vr26 V_list_v_result$)) (! (not (! (= @p_1 (! (pair$ @p_346 veriT_vr26) :named @p_410)) :named @p_411)) :named @p_412)) :named @p_409)) :named @p_414) @p_400) :named @p_416)) :named @p_401))) :rule forall_inst :args ((:= veriT_vr23 @p_346) (:= veriT_vr24 @p_1)))
-(anchor :step t123)
-(assume t123.h1 @p_401)
-(anchor :step t123.t2 :args ((:= (veriT_vr25 V_list_v_result$) veriT_vr72)))
-(step t123.t2.t1 (cl (= veriT_vr25 veriT_vr72)) :rule refl)
-(step t123.t2.t2 (cl (= @p_403 (! (pair$ @p_346 veriT_vr72) :named @p_404))) :rule cong :premises (t123.t2.t1))
-(step t123.t2.t3 (cl (= @p_405 (! (= @p_1 @p_404) :named @p_406))) :rule cong :premises (t123.t2.t2))
-(step t123.t2 (cl (= @p_402 (! (exists ((veriT_vr72 V_list_v_result$)) @p_406) :named @p_408))) :rule bind)
-(step t123.t3 (cl (= @p_407 (! (=> @p_400 @p_408) :named @p_418))) :rule cong :premises (t123.t2))
-(anchor :step t123.t4 :args ((:= (veriT_vr26 V_list_v_result$) veriT_vr72)))
-(step t123.t4.t1 (cl (= veriT_vr26 veriT_vr72)) :rule refl)
-(step t123.t4.t2 (cl (= @p_410 @p_404)) :rule cong :premises (t123.t4.t1))
-(step t123.t4.t3 (cl (= @p_411 @p_406)) :rule cong :premises (t123.t4.t2))
-(step t123.t4.t4 (cl (= @p_412 (! (not @p_406) :named @p_413))) :rule cong :premises (t123.t4.t3))
-(step t123.t4 (cl (= @p_409 (! (forall ((veriT_vr72 V_list_v_result$)) @p_413) :named @p_415))) :rule bind)
-(step t123.t5 (cl (= @p_414 (! (not @p_415) :named @p_417))) :rule cong :premises (t123.t4))
-(step t123.t6 (cl (= @p_416 (! (=> @p_417 @p_400) :named @p_419))) :rule cong :premises (t123.t5))
-(step t123.t7 (cl (! (= @p_401 (! (and @p_418 @p_419) :named @p_422)) :named @p_420)) :rule cong :premises (t123.t3 t123.t6))
-(step t123.t8 (cl (not @p_420) (! (not @p_401) :named @p_421) @p_422) :rule equiv_pos2)
-(step t123.t9 (cl @p_422) :rule th_resolution :premises (t123.h1 t123.t7 t123.t8))
-(step t123.t10 (cl (= @p_400 true)) :rule eq_simplify)
-(step t123.t11 (cl (= @p_418 (! (=> true @p_408) :named @p_423))) :rule cong :premises (t123.t10))
-(step t123.t12 (cl (= @p_423 @p_408)) :rule implies_simplify)
-(step t123.t13 (cl (= @p_418 @p_408)) :rule trans :premises (t123.t11 t123.t12))
-(step t123.t14 (cl (= @p_419 (! (=> @p_417 true) :named @p_424))) :rule cong :premises (t123.t10))
-(step t123.t15 (cl (= @p_424 true)) :rule implies_simplify)
-(step t123.t16 (cl (= @p_419 true)) :rule trans :premises (t123.t14 t123.t15))
-(step t123.t17 (cl (= @p_422 (! (and @p_408 true) :named @p_425))) :rule cong :premises (t123.t13 t123.t16))
-(step t123.t18 (cl (= @p_425 (! (and @p_408) :named @p_426))) :rule and_simplify)
-(step t123.t19 (cl (= @p_426 @p_408)) :rule and_simplify)
-(step t123.t20 (cl (! (= @p_422 @p_408) :named @p_427)) :rule trans :premises (t123.t17 t123.t18 t123.t19))
-(step t123.t21 (cl (not @p_427) (not @p_422) @p_408) :rule equiv_pos2)
-(step t123.t22 (cl @p_408) :rule th_resolution :premises (t123.t9 t123.t20 t123.t21))
-(anchor :step t123.t23 :args ((:= (veriT_vr72 V_list_v_result$) veriT_vr73)))
-(step t123.t23.t1 (cl (= veriT_vr72 veriT_vr73)) :rule refl)
-(step t123.t23.t2 (cl (= @p_404 @p_429)) :rule cong :premises (t123.t23.t1))
-(step t123.t23.t3 (cl (= @p_406 @p_428)) :rule cong :premises (t123.t23.t2))
-(step t123.t23 (cl (! (= @p_408 (! (exists ((veriT_vr73 V_list_v_result$)) @p_428) :named @p_431)) :named @p_430)) :rule bind)
-(step t123.t24 (cl (not @p_430) (not @p_408) @p_431) :rule equiv_pos2)
-(step t123.t25 (cl @p_431) :rule th_resolution :premises (t123.t22 t123.t23 t123.t24))
-(anchor :step t123.t26 :args ((:= (veriT_vr73 V_list_v_result$) veriT_sk3)))
-(step t123.t26.t1 (cl (= veriT_vr73 veriT_sk3)) :rule refl)
-(step t123.t26.t2 (cl (= @p_429 (! (pair$ @p_346 veriT_sk3) :named @p_434))) :rule cong :premises (t123.t26.t1))
-(step t123.t26.t3 (cl (= @p_428 (! (= @p_1 @p_434) :named @p_432))) :rule cong :premises (t123.t26.t2))
-(step t123.t26 (cl (! (= @p_431 @p_432) :named @p_435)) :rule sko_ex)
-(step t123.t27 (cl (not @p_435) (not @p_431) @p_432) :rule equiv_pos2)
-(step t123.t28 (cl @p_432) :rule th_resolution :premises (t123.t25 t123.t26 t123.t27))
-(step t123 (cl @p_421 @p_432) :rule subproof :discharge (h1))
-(step t124 (cl @p_399 @p_401) :rule or :premises (t122))
-(step t125 (cl (! (or @p_399 @p_432) :named @p_437) @p_436) :rule or_neg)
-(step t126 (cl @p_437 @p_136) :rule th_resolution :premises (t121 t125))
-(step t127 (cl @p_437 (! (not @p_432) :named @p_538)) :rule or_neg)
-(step t128 (cl @p_437) :rule th_resolution :premises (t124 t123 t126 t127))
-(step t129 (cl (or @p_399 (! (and (! (=> (! (= st$ (! (fst$ @p_438) :named @p_674)) :named @p_439) (! (exists ((veriT_vr25 V_list_v_result$)) (! (= @p_438 (! (pair$ st$ veriT_vr25) :named @p_442)) :named @p_444)) :named @p_441)) :named @p_446) (! (=> (! (not (! (forall ((veriT_vr26 V_list_v_result$)) (! (not (! (= @p_438 (! (pair$ st$ veriT_vr26) :named @p_449)) :named @p_450)) :named @p_451)) :named @p_448)) :named @p_453) @p_439) :named @p_455)) :named @p_440))) :rule forall_inst :args ((:= veriT_vr23 st$) (:= veriT_vr24 @p_438)))
+(define-fun veriT_sk0 () V$ (! (choice ((veriT_vr65 V$)) (not (! (not (! (= x2$ (! (rraise$ veriT_vr65) :named @p_401)) :named @p_402)) :named @p_400))) :named @p_414))
+(define-fun veriT_sk1 () Abort$ (! (choice ((veriT_vr66 Abort$)) (not (! (not (! (= x2$ (! (rabort$ veriT_vr66) :named @p_404)) :named @p_405)) :named @p_403))) :named @p_418))
+(define-fun veriT_sk3 () V_list_v_result$ (! (choice ((veriT_vr73 V_list_v_result$)) (! (= (! (fun_evaluate$ st$a env$ (cons$ e$ nil$)) :named @p_3) (! (pair$ (! (fst$ @p_3) :named @p_378) veriT_vr73) :named @p_461)) :named @p_460)) :named @p_465))
+(define-fun veriT_sk11 () V_list_v_result$ (! (choice ((veriT_vr108 V_list_v_result$)) (! (= (! (fix_clock$ st$a @p_3) :named @p_470) (! (pair$ st$ veriT_vr108) :named @p_503)) :named @p_502)) :named @p_515))
+(assume axiom0 (! (forall ((?v0 V$)) (! (= (! (fun_app$ uua$ ?v0) :named @p_9) (! (fun_app$ (! (fun_evaluate_match$ st$ env$ ?v0 pes$) :named @p_12) ?v0) :named @p_14)) :named @p_16)) :named @p_8))
+(assume axiom1 (! (forall ((?v0 Abort$)) (! (= (! (fun_app$a uub$ ?v0) :named @p_28) (! (pair$ st$ (! (rerr$ (! (rabort$ ?v0) :named @p_31)) :named @p_33)) :named @p_35)) :named @p_37)) :named @p_27))
+(assume axiom2 (! (forall ((?v0 Astate$) (?v1 Astate$) (?v2 Nat$)) (! (= (! (fun_app$b (! (uu$ ?v0 ?v1) :named @p_5) ?v2) :named @p_53) (! (ite (! (less_eq$ (! (clock$ ?v1) :named @p_1) (! (clock$ ?v0) :named @p_2)) :named @p_57) @p_1 @p_2) :named @p_61)) :named @p_63)) :named @p_49))
+(assume axiom3 (! (= @p_470 (! (pair$ st$ r$) :named @p_609)) :named @p_628))
+(assume axiom4 (! (less_eq$ (! (clock$ @p_378) :named @p_371) (! (clock$ st$a) :named @p_7)) :named @p_369))
+(assume axiom5 (! (forall ((?v0 Nat$) (?v1 Nat$) (?v2 Nat$)) (! (=> (! (and (! (less_eq$ ?v0 ?v1) :named @p_81) (! (less_eq$ ?v2 ?v0) :named @p_84)) :named @p_86) (! (less_eq$ ?v2 ?v1) :named @p_90)) :named @p_92)) :named @p_80))
+(assume axiom6 (! (forall ((?v0 Astate$) (?v1 Astate_v_list_v_result_prod$)) (! (= (! (= ?v0 (! (fst$ ?v1) :named @p_107)) :named @p_109) (! (exists ((?v2 V_list_v_result$)) (! (= ?v1 (! (pair$ ?v0 ?v2) :named @p_115)) :named @p_117)) :named @p_111)) :named @p_119)) :named @p_106))
+(assume axiom7 (! (forall ((?v0 V_error_result$)) (! (=> (! (and (! (forall ((?v1 V$)) (! (=> (! (= ?v0 (! (rraise$ ?v1) :named @p_174)) :named @p_6) false) :named @p_177)) :named @p_172) (! (forall ((?v1 Abort$)) (! (=> (! (= ?v0 (! (rabort$ ?v1) :named @p_182)) :named @p_184) false) :named @p_186)) :named @p_179)) :named @p_188) false) :named @p_190)) :named @p_171))
+(assume axiom8 (! (forall ((?v0 V_astate_v_list_v_result_prod_fun$) (?v1 Abort_astate_v_list_v_result_prod_fun$) (?v2 V$)) (! (= (! (case_error_result$ ?v0 ?v1 (! (rraise$ ?v2) :named @p_217)) :named @p_219) (! (fun_app$ ?v0 ?v2) :named @p_223)) :named @p_225)) :named @p_216))
+(assume axiom9 (! (forall ((?v0 V_astate_v_list_v_result_prod_fun$) (?v1 Abort_astate_v_list_v_result_prod_fun$) (?v2 Abort$)) (! (= (! (case_error_result$ ?v0 ?v1 (! (rabort$ ?v2) :named @p_238)) :named @p_240) (! (fun_app$a ?v1 ?v2) :named @p_244)) :named @p_246)) :named @p_237))
+(assume axiom10 (! (forall ((?v0 Astate$) (?v1 Astate$) (?v2 V_list_v_result$) (?v3 Astate$)) (! (=> (! (= (! (fix_clock$ ?v0 (! (pair$ ?v1 ?v2) :named @p_259)) :named @p_4) (! (pair$ ?v3 ?v2) :named @p_263)) :named @p_265) (! (less_eq$ (! (clock$ ?v3) :named @p_268) @p_1) :named @p_272)) :named @p_274)) :named @p_258))
+(assume axiom11 (! (forall ((?v0 Astate$) (?v1 Astate$) (?v2 V_list_v_result$)) (! (= @p_4 (! (pair$ (! (update_clock$ @p_5 ?v1) :named @p_297) ?v2) :named @p_300)) :named @p_302)) :named @p_291))
+(assume axiom12 (! (forall ((?v0 V_error_result$) (?v1 V$)) (! (=> (! (and (! (= r$ (! (rerr$ ?v0) :named @p_319)) :named @p_321) @p_6) :named @p_326) (! (less_eq$ (! (clock$ (! (fst$ (! (fun_app$ (! (fun_evaluate_match$ st$ env$ ?v1 pes$) :named @p_329) ?v1) :named @p_331)) :named @p_333)) :named @p_335) (! (clock$ st$) :named @p_318)) :named @p_337)) :named @p_339)) :named @p_317))
+(assume axiom13 (! (not (! (=> (! (= r$ (! (rerr$ x2$) :named @p_615)) :named @p_359) (! (less_eq$ (! (clock$ (! (fst$ (! (case_error_result$ uua$ uub$ x2$) :named @p_602)) :named @p_530)) :named @p_370) @p_7) :named @p_360)) :named @p_364)) :named @p_358))
+(anchor :step t15 :args ((:= (?v0 V$) veriT_vr0)))
+(step t15.t1 (cl (! (= ?v0 veriT_vr0) :named @p_11)) :rule refl)
+(step t15.t2 (cl (= @p_9 (! (fun_app$ uua$ veriT_vr0) :named @p_10))) :rule cong :premises (t15.t1))
+(step t15.t3 (cl @p_11) :rule refl)
+(step t15.t4 (cl (= @p_12 (! (fun_evaluate_match$ st$ env$ veriT_vr0 pes$) :named @p_13))) :rule cong :premises (t15.t3))
+(step t15.t5 (cl @p_11) :rule refl)
+(step t15.t6 (cl (= @p_14 (! (fun_app$ @p_13 veriT_vr0) :named @p_15))) :rule cong :premises (t15.t4 t15.t5))
+(step t15.t7 (cl (= @p_16 (! (= @p_10 @p_15) :named @p_17))) :rule cong :premises (t15.t2 t15.t6))
+(step t15 (cl (! (= @p_8 (! (forall ((veriT_vr0 V$)) @p_17) :named @p_19)) :named @p_18)) :rule bind)
+(step t16 (cl (not @p_18) (not @p_8) @p_19) :rule equiv_pos2)
+(step t17 (cl @p_19) :rule th_resolution :premises (axiom0 t15 t16))
+(anchor :step t18 :args ((:= (veriT_vr0 V$) veriT_vr1)))
+(step t18.t1 (cl (! (= veriT_vr0 veriT_vr1) :named @p_21)) :rule refl)
+(step t18.t2 (cl (= @p_10 (! (fun_app$ uua$ veriT_vr1) :named @p_20))) :rule cong :premises (t18.t1))
+(step t18.t3 (cl @p_21) :rule refl)
+(step t18.t4 (cl (= @p_13 (! (fun_evaluate_match$ st$ env$ veriT_vr1 pes$) :named @p_22))) :rule cong :premises (t18.t3))
+(step t18.t5 (cl @p_21) :rule refl)
+(step t18.t6 (cl (= @p_15 (! (fun_app$ @p_22 veriT_vr1) :named @p_23))) :rule cong :premises (t18.t4 t18.t5))
+(step t18.t7 (cl (= @p_17 (! (= @p_20 @p_23) :named @p_24))) :rule cong :premises (t18.t2 t18.t6))
+(step t18 (cl (! (= @p_19 (! (forall ((veriT_vr1 V$)) @p_24) :named @p_26)) :named @p_25)) :rule bind)
+(step t19 (cl (not @p_25) (not @p_19) @p_26) :rule equiv_pos2)
+(step t20 (cl @p_26) :rule th_resolution :premises (t17 t18 t19))
+(anchor :step t21 :args ((:= (?v0 Abort$) veriT_vr2)))
+(step t21.t1 (cl (! (= ?v0 veriT_vr2) :named @p_30)) :rule refl)
+(step t21.t2 (cl (= @p_28 (! (fun_app$a uub$ veriT_vr2) :named @p_29))) :rule cong :premises (t21.t1))
+(step t21.t3 (cl @p_30) :rule refl)
+(step t21.t4 (cl (= @p_31 (! (rabort$ veriT_vr2) :named @p_32))) :rule cong :premises (t21.t3))
+(step t21.t5 (cl (= @p_33 (! (rerr$ @p_32) :named @p_34))) :rule cong :premises (t21.t4))
+(step t21.t6 (cl (= @p_35 (! (pair$ st$ @p_34) :named @p_36))) :rule cong :premises (t21.t5))
+(step t21.t7 (cl (= @p_37 (! (= @p_29 @p_36) :named @p_38))) :rule cong :premises (t21.t2 t21.t6))
+(step t21 (cl (! (= @p_27 (! (forall ((veriT_vr2 Abort$)) @p_38) :named @p_40)) :named @p_39)) :rule bind)
+(step t22 (cl (not @p_39) (not @p_27) @p_40) :rule equiv_pos2)
+(step t23 (cl @p_40) :rule th_resolution :premises (axiom1 t21 t22))
+(anchor :step t24 :args ((:= (veriT_vr2 Abort$) veriT_vr3)))
+(step t24.t1 (cl (! (= veriT_vr2 veriT_vr3) :named @p_42)) :rule refl)
+(step t24.t2 (cl (= @p_29 (! (fun_app$a uub$ veriT_vr3) :named @p_41))) :rule cong :premises (t24.t1))
+(step t24.t3 (cl @p_42) :rule refl)
+(step t24.t4 (cl (= @p_32 (! (rabort$ veriT_vr3) :named @p_43))) :rule cong :premises (t24.t3))
+(step t24.t5 (cl (= @p_34 (! (rerr$ @p_43) :named @p_44))) :rule cong :premises (t24.t4))
+(step t24.t6 (cl (= @p_36 (! (pair$ st$ @p_44) :named @p_45))) :rule cong :premises (t24.t5))
+(step t24.t7 (cl (= @p_38 (! (= @p_41 @p_45) :named @p_46))) :rule cong :premises (t24.t2 t24.t6))
+(step t24 (cl (! (= @p_40 (! (forall ((veriT_vr3 Abort$)) @p_46) :named @p_48)) :named @p_47)) :rule bind)
+(step t25 (cl (not @p_47) (not @p_40) @p_48) :rule equiv_pos2)
+(step t26 (cl @p_48) :rule th_resolution :premises (t23 t24 t25))
+(anchor :step t27 :args ((:= (?v0 Astate$) veriT_vr4) (:= (?v1 Astate$) veriT_vr5) (:= (?v2 Nat$) veriT_vr6)))
+(step t27.t1 (cl (! (= ?v0 veriT_vr4) :named @p_56)) :rule refl)
+(step t27.t2 (cl (! (= ?v1 veriT_vr5) :named @p_55)) :rule refl)
+(step t27.t3 (cl (= @p_5 (! (uu$ veriT_vr4 veriT_vr5) :named @p_52))) :rule cong :premises (t27.t1 t27.t2))
+(step t27.t4 (cl (= ?v2 veriT_vr6)) :rule refl)
+(step t27.t5 (cl (= @p_53 (! (fun_app$b @p_52 veriT_vr6) :named @p_54))) :rule cong :premises (t27.t3 t27.t4))
+(step t27.t6 (cl @p_55) :rule refl)
+(step t27.t7 (cl (! (= @p_1 (! (clock$ veriT_vr5) :named @p_50)) :named @p_59)) :rule cong :premises (t27.t6))
+(step t27.t8 (cl @p_56) :rule refl)
+(step t27.t9 (cl (! (= @p_2 (! (clock$ veriT_vr4) :named @p_51)) :named @p_60)) :rule cong :premises (t27.t8))
+(step t27.t10 (cl (= @p_57 (! (less_eq$ @p_50 @p_51) :named @p_58))) :rule cong :premises (t27.t7 t27.t9))
+(step t27.t11 (cl @p_55) :rule refl)
+(step t27.t12 (cl @p_59) :rule cong :premises (t27.t11))
+(step t27.t13 (cl @p_56) :rule refl)
+(step t27.t14 (cl @p_60) :rule cong :premises (t27.t13))
+(step t27.t15 (cl (= @p_61 (! (ite @p_58 @p_50 @p_51) :named @p_62))) :rule cong :premises (t27.t10 t27.t12 t27.t14))
+(step t27.t16 (cl (= @p_63 (! (= @p_54 @p_62) :named @p_64))) :rule cong :premises (t27.t5 t27.t15))
+(step t27 (cl (! (= @p_49 (! (forall ((veriT_vr4 Astate$) (veriT_vr5 Astate$) (veriT_vr6 Nat$)) @p_64) :named @p_66)) :named @p_65)) :rule bind)
+(step t28 (cl (not @p_65) (not @p_49) @p_66) :rule equiv_pos2)
+(step t29 (cl @p_66) :rule th_resolution :premises (axiom2 t27 t28))
+(anchor :step t30 :args ((:= (veriT_vr4 Astate$) veriT_vr7) (:= (veriT_vr5 Astate$) veriT_vr8) (:= (veriT_vr6 Nat$) veriT_vr9)))
+(step t30.t1 (cl (! (= veriT_vr4 veriT_vr7) :named @p_72)) :rule refl)
+(step t30.t2 (cl (! (= veriT_vr5 veriT_vr8) :named @p_71)) :rule refl)
+(step t30.t3 (cl (= @p_52 (! (uu$ veriT_vr7 veriT_vr8) :named @p_69))) :rule cong :premises (t30.t1 t30.t2))
+(step t30.t4 (cl (= veriT_vr6 veriT_vr9)) :rule refl)
+(step t30.t5 (cl (= @p_54 (! (fun_app$b @p_69 veriT_vr9) :named @p_70))) :rule cong :premises (t30.t3 t30.t4))
+(step t30.t6 (cl @p_71) :rule refl)
+(step t30.t7 (cl (! (= @p_50 (! (clock$ veriT_vr8) :named @p_67)) :named @p_74)) :rule cong :premises (t30.t6))
+(step t30.t8 (cl @p_72) :rule refl)
+(step t30.t9 (cl (! (= @p_51 (! (clock$ veriT_vr7) :named @p_68)) :named @p_75)) :rule cong :premises (t30.t8))
+(step t30.t10 (cl (= @p_58 (! (less_eq$ @p_67 @p_68) :named @p_73))) :rule cong :premises (t30.t7 t30.t9))
+(step t30.t11 (cl @p_71) :rule refl)
+(step t30.t12 (cl @p_74) :rule cong :premises (t30.t11))
+(step t30.t13 (cl @p_72) :rule refl)
+(step t30.t14 (cl @p_75) :rule cong :premises (t30.t13))
+(step t30.t15 (cl (= @p_62 (! (ite @p_73 @p_67 @p_68) :named @p_76))) :rule cong :premises (t30.t10 t30.t12 t30.t14))
+(step t30.t16 (cl (= @p_64 (! (= @p_70 @p_76) :named @p_77))) :rule cong :premises (t30.t5 t30.t15))
+(step t30 (cl (! (= @p_66 (! (forall ((veriT_vr7 Astate$) (veriT_vr8 Astate$) (veriT_vr9 Nat$)) @p_77) :named @p_79)) :named @p_78)) :rule bind)
+(step t31 (cl (not @p_78) (not @p_66) @p_79) :rule equiv_pos2)
+(step t32 (cl @p_79) :rule th_resolution :premises (t29 t30 t31))
+(anchor :step t33 :args ((:= (?v0 Nat$) veriT_vr10) (:= (?v1 Nat$) veriT_vr11) (:= (?v2 Nat$) veriT_vr12)))
+(step t33.t1 (cl (! (= ?v0 veriT_vr10) :named @p_83)) :rule refl)
+(step t33.t2 (cl (! (= ?v1 veriT_vr11) :named @p_89)) :rule refl)
+(step t33.t3 (cl (= @p_81 (! (less_eq$ veriT_vr10 veriT_vr11) :named @p_82))) :rule cong :premises (t33.t1 t33.t2))
+(step t33.t4 (cl (! (= ?v2 veriT_vr12) :named @p_88)) :rule refl)
+(step t33.t5 (cl @p_83) :rule refl)
+(step t33.t6 (cl (= @p_84 (! (less_eq$ veriT_vr12 veriT_vr10) :named @p_85))) :rule cong :premises (t33.t4 t33.t5))
+(step t33.t7 (cl (= @p_86 (! (and @p_82 @p_85) :named @p_87))) :rule cong :premises (t33.t3 t33.t6))
+(step t33.t8 (cl @p_88) :rule refl)
+(step t33.t9 (cl @p_89) :rule refl)
+(step t33.t10 (cl (= @p_90 (! (less_eq$ veriT_vr12 veriT_vr11) :named @p_91))) :rule cong :premises (t33.t8 t33.t9))
+(step t33.t11 (cl (= @p_92 (! (=> @p_87 @p_91) :named @p_93))) :rule cong :premises (t33.t7 t33.t10))
+(step t33 (cl (! (= @p_80 (! (forall ((veriT_vr10 Nat$) (veriT_vr11 Nat$) (veriT_vr12 Nat$)) @p_93) :named @p_95)) :named @p_94)) :rule bind)
+(step t34 (cl (not @p_94) (not @p_80) @p_95) :rule equiv_pos2)
+(step t35 (cl @p_95) :rule th_resolution :premises (axiom5 t33 t34))
+(anchor :step t36 :args ((:= (veriT_vr10 Nat$) veriT_vr13) (:= (veriT_vr11 Nat$) veriT_vr14) (:= (veriT_vr12 Nat$) veriT_vr15)))
+(step t36.t1 (cl (! (= veriT_vr10 veriT_vr13) :named @p_97)) :rule refl)
+(step t36.t2 (cl (! (= veriT_vr11 veriT_vr14) :named @p_101)) :rule refl)
+(step t36.t3 (cl (= @p_82 (! (less_eq$ veriT_vr13 veriT_vr14) :named @p_96))) :rule cong :premises (t36.t1 t36.t2))
+(step t36.t4 (cl (! (= veriT_vr12 veriT_vr15) :named @p_100)) :rule refl)
+(step t36.t5 (cl @p_97) :rule refl)
+(step t36.t6 (cl (= @p_85 (! (less_eq$ veriT_vr15 veriT_vr13) :named @p_98))) :rule cong :premises (t36.t4 t36.t5))
+(step t36.t7 (cl (= @p_87 (! (and @p_96 @p_98) :named @p_99))) :rule cong :premises (t36.t3 t36.t6))
+(step t36.t8 (cl @p_100) :rule refl)
+(step t36.t9 (cl @p_101) :rule refl)
+(step t36.t10 (cl (= @p_91 (! (less_eq$ veriT_vr15 veriT_vr14) :named @p_102))) :rule cong :premises (t36.t8 t36.t9))
+(step t36.t11 (cl (= @p_93 (! (=> @p_99 @p_102) :named @p_103))) :rule cong :premises (t36.t7 t36.t10))
+(step t36 (cl (! (= @p_95 (! (forall ((veriT_vr13 Nat$) (veriT_vr14 Nat$) (veriT_vr15 Nat$)) @p_103) :named @p_105)) :named @p_104)) :rule bind)
+(step t37 (cl (not @p_104) (not @p_95) @p_105) :rule equiv_pos2)
+(step t38 (cl @p_105) :rule th_resolution :premises (t35 t36 t37))
+(anchor :step t39 :args ((:= (?v0 Astate$) veriT_vr16) (:= (?v1 Astate_v_list_v_result_prod$) veriT_vr17)))
+(step t39.t1 (cl (! (= ?v0 veriT_vr16) :named @p_114)) :rule refl)
+(step t39.t2 (cl (! (= ?v1 veriT_vr17) :named @p_113)) :rule refl)
+(step t39.t3 (cl (= @p_107 (! (fst$ veriT_vr17) :named @p_108))) :rule cong :premises (t39.t2))
+(step t39.t4 (cl (= @p_109 (! (= veriT_vr16 @p_108) :named @p_110))) :rule cong :premises (t39.t1 t39.t3))
+(anchor :step t39.t5 :args ((:= (?v2 V_list_v_result$) veriT_vr18)))
+(step t39.t5.t1 (cl @p_113) :rule refl)
+(step t39.t5.t2 (cl @p_114) :rule refl)
+(step t39.t5.t3 (cl (= ?v2 veriT_vr18)) :rule refl)
+(step t39.t5.t4 (cl (= @p_115 (! (pair$ veriT_vr16 veriT_vr18) :named @p_116))) :rule cong :premises (t39.t5.t2 t39.t5.t3))
+(step t39.t5.t5 (cl (= @p_117 (! (= veriT_vr17 @p_116) :named @p_118))) :rule cong :premises (t39.t5.t1 t39.t5.t4))
+(step t39.t5 (cl (= @p_111 (! (exists ((veriT_vr18 V_list_v_result$)) @p_118) :named @p_112))) :rule bind)
+(step t39.t6 (cl (= @p_119 (! (= @p_110 @p_112) :named @p_120))) :rule cong :premises (t39.t4 t39.t5))
+(step t39 (cl (! (= @p_106 (! (forall ((veriT_vr16 Astate$) (veriT_vr17 Astate_v_list_v_result_prod$)) @p_120) :named @p_122)) :named @p_121)) :rule bind)
+(step t40 (cl (not @p_121) (not @p_106) @p_122) :rule equiv_pos2)
+(step t41 (cl @p_122) :rule th_resolution :premises (axiom6 t39 t40))
+(anchor :step t42 :args ((veriT_vr16 Astate$) (veriT_vr17 Astate_v_list_v_result_prod$)))
+(step t42.t1 (cl (= @p_120 (! (and (! (=> @p_110 @p_112) :named @p_133) (! (=> @p_112 @p_110) :named @p_140)) :named @p_123))) :rule connective_def)
+(step t42 (cl (! (= @p_122 (! (forall ((veriT_vr16 Astate$) (veriT_vr17 Astate_v_list_v_result_prod$)) @p_123) :named @p_125)) :named @p_124)) :rule bind)
+(step t43 (cl (not @p_124) (not @p_122) @p_125) :rule equiv_pos2)
+(step t44 (cl @p_125) :rule th_resolution :premises (t41 t42 t43))
+(anchor :step t45 :args ((:= (veriT_vr16 Astate$) veriT_vr19) (:= (veriT_vr17 Astate_v_list_v_result_prod$) veriT_vr20)))
+(step t45.t1 (cl (! (= veriT_vr16 veriT_vr19) :named @p_130)) :rule refl)
+(step t45.t2 (cl (! (= veriT_vr17 veriT_vr20) :named @p_129)) :rule refl)
+(step t45.t3 (cl (! (= @p_108 (! (fst$ veriT_vr20) :named @p_127)) :named @p_138)) :rule cong :premises (t45.t2))
+(step t45.t4 (cl (! (= @p_110 (! (= veriT_vr19 @p_127) :named @p_126)) :named @p_139)) :rule cong :premises (t45.t1 t45.t3))
+(anchor :step t45.t5 :args ((:= (veriT_vr18 V_list_v_result$) veriT_vr21)))
+(step t45.t5.t1 (cl @p_129) :rule refl)
+(step t45.t5.t2 (cl @p_130) :rule refl)
+(step t45.t5.t3 (cl (= veriT_vr18 veriT_vr21)) :rule refl)
+(step t45.t5.t4 (cl (= @p_116 (! (pair$ veriT_vr19 veriT_vr21) :named @p_131))) :rule cong :premises (t45.t5.t2 t45.t5.t3))
+(step t45.t5.t5 (cl (= @p_118 (! (= veriT_vr20 @p_131) :named @p_132))) :rule cong :premises (t45.t5.t1 t45.t5.t4))
+(step t45.t5 (cl (= @p_112 (! (exists ((veriT_vr21 V_list_v_result$)) @p_132) :named @p_128))) :rule bind)
+(step t45.t6 (cl (= @p_133 (! (=> @p_126 @p_128) :named @p_134))) :rule cong :premises (t45.t4 t45.t5))
+(anchor :step t45.t7 :args ((:= (veriT_vr18 V_list_v_result$) veriT_vr22)))
+(step t45.t7.t1 (cl @p_129) :rule refl)
+(step t45.t7.t2 (cl @p_130) :rule refl)
+(step t45.t7.t3 (cl (= veriT_vr18 veriT_vr22)) :rule refl)
+(step t45.t7.t4 (cl (= @p_116 (! (pair$ veriT_vr19 veriT_vr22) :named @p_136))) :rule cong :premises (t45.t7.t2 t45.t7.t3))
+(step t45.t7.t5 (cl (= @p_118 (! (= veriT_vr20 @p_136) :named @p_137))) :rule cong :premises (t45.t7.t1 t45.t7.t4))
+(step t45.t7 (cl (= @p_112 (! (exists ((veriT_vr22 V_list_v_result$)) @p_137) :named @p_135))) :rule bind)
+(step t45.t8 (cl @p_130) :rule refl)
+(step t45.t9 (cl @p_129) :rule refl)
+(step t45.t10 (cl @p_138) :rule cong :premises (t45.t9))
+(step t45.t11 (cl @p_139) :rule cong :premises (t45.t8 t45.t10))
+(step t45.t12 (cl (= @p_140 (! (=> @p_135 @p_126) :named @p_141))) :rule cong :premises (t45.t7 t45.t11))
+(step t45.t13 (cl (= @p_123 (! (and @p_134 @p_141) :named @p_142))) :rule cong :premises (t45.t6 t45.t12))
+(step t45 (cl (! (= @p_125 (! (forall ((veriT_vr19 Astate$) (veriT_vr20 Astate_v_list_v_result_prod$)) @p_142) :named @p_144)) :named @p_143)) :rule bind)
+(step t46 (cl (not @p_143) (not @p_125) @p_144) :rule equiv_pos2)
+(step t47 (cl @p_144) :rule th_resolution :premises (t44 t45 t46))
+(anchor :step t48 :args ((:= (veriT_vr19 Astate$) veriT_vr23) (:= (veriT_vr20 Astate_v_list_v_result_prod$) veriT_vr24)))
+(step t48.t1 (cl (! (= veriT_vr19 veriT_vr23) :named @p_149)) :rule refl)
+(step t48.t2 (cl (! (= veriT_vr20 veriT_vr24) :named @p_148)) :rule refl)
+(step t48.t3 (cl (! (= @p_127 (! (fst$ veriT_vr24) :named @p_147)) :named @p_153)) :rule cong :premises (t48.t2))
+(step t48.t4 (cl (! (= @p_126 (! (= veriT_vr23 @p_147) :named @p_146)) :named @p_154)) :rule cong :premises (t48.t1 t48.t3))
+(anchor :step t48.t5 :args ((:= (veriT_vr21 V_list_v_result$) veriT_vr25)))
+(step t48.t5.t1 (cl @p_148) :rule refl)
+(step t48.t5.t2 (cl @p_149) :rule refl)
+(step t48.t5.t3 (cl (= veriT_vr21 veriT_vr25)) :rule refl)
+(step t48.t5.t4 (cl (= @p_131 (! (pair$ veriT_vr23 veriT_vr25) :named @p_150))) :rule cong :premises (t48.t5.t2 t48.t5.t3))
+(step t48.t5.t5 (cl (= @p_132 (! (= veriT_vr24 @p_150) :named @p_151))) :rule cong :premises (t48.t5.t1 t48.t5.t4))
+(step t48.t5 (cl (= @p_128 (! (exists ((veriT_vr25 V_list_v_result$)) @p_151) :named @p_145))) :rule bind)
+(step t48.t6 (cl (= @p_134 (! (=> @p_146 @p_145) :named @p_152))) :rule cong :premises (t48.t4 t48.t5))
+(anchor :step t48.t7 :args ((:= (veriT_vr22 V_list_v_result$) veriT_vr25)))
+(step t48.t7.t1 (cl @p_148) :rule refl)
+(step t48.t7.t2 (cl @p_149) :rule refl)
+(step t48.t7.t3 (cl (= veriT_vr22 veriT_vr25)) :rule refl)
+(step t48.t7.t4 (cl (= @p_136 @p_150)) :rule cong :premises (t48.t7.t2 t48.t7.t3))
+(step t48.t7.t5 (cl (= @p_137 @p_151)) :rule cong :premises (t48.t7.t1 t48.t7.t4))
+(step t48.t7 (cl (= @p_135 @p_145)) :rule bind)
+(step t48.t8 (cl @p_149) :rule refl)
+(step t48.t9 (cl @p_148) :rule refl)
+(step t48.t10 (cl @p_153) :rule cong :premises (t48.t9))
+(step t48.t11 (cl @p_154) :rule cong :premises (t48.t8 t48.t10))
+(step t48.t12 (cl (= @p_141 (! (=> @p_145 @p_146) :named @p_155))) :rule cong :premises (t48.t7 t48.t11))
+(step t48.t13 (cl (= @p_142 (! (and @p_152 @p_155) :named @p_156))) :rule cong :premises (t48.t6 t48.t12))
+(step t48 (cl (! (= @p_144 (! (forall ((veriT_vr23 Astate$) (veriT_vr24 Astate_v_list_v_result_prod$)) @p_156) :named @p_158)) :named @p_157)) :rule bind)
+(step t49 (cl (not @p_157) (not @p_144) @p_158) :rule equiv_pos2)
+(step t50 (cl @p_158) :rule th_resolution :premises (t47 t48 t49))
+(anchor :step t51 :args ((:= (veriT_vr23 Astate$) veriT_vr23) (:= (veriT_vr24 Astate_v_list_v_result_prod$) veriT_vr24)))
+(anchor :step t51.t1 :args ((:= (veriT_vr25 V_list_v_result$) veriT_vr26)))
+(step t51.t1.t1 (cl (= veriT_vr25 veriT_vr26)) :rule refl)
+(step t51.t1.t2 (cl (= @p_150 (! (pair$ veriT_vr23 veriT_vr26) :named @p_160))) :rule cong :premises (t51.t1.t1))
+(step t51.t1.t3 (cl (= @p_151 (! (= veriT_vr24 @p_160) :named @p_161))) :rule cong :premises (t51.t1.t2))
+(step t51.t1 (cl (= @p_145 (! (exists ((veriT_vr26 V_list_v_result$)) @p_161) :named @p_159))) :rule bind)
+(step t51.t2 (cl (= @p_155 (! (=> @p_159 @p_146) :named @p_162))) :rule cong :premises (t51.t1))
+(step t51.t3 (cl (= @p_156 (! (and @p_152 @p_162) :named @p_163))) :rule cong :premises (t51.t2))
+(step t51 (cl (! (= @p_158 (! (forall ((veriT_vr23 Astate$) (veriT_vr24 Astate_v_list_v_result_prod$)) @p_163) :named @p_165)) :named @p_164)) :rule bind)
+(step t52 (cl (not @p_164) (not @p_158) @p_165) :rule equiv_pos2)
+(step t53 (cl @p_165) :rule th_resolution :premises (t50 t51 t52))
+(anchor :step t54 :args ((veriT_vr23 Astate$) (veriT_vr24 Astate_v_list_v_result_prod$)))
+(step t54.t1 (cl (= @p_159 (! (not (forall ((veriT_vr26 V_list_v_result$)) (! (not @p_161) :named @p_367))) :named @p_166))) :rule connective_def)
+(step t54.t2 (cl (= @p_162 (! (=> @p_166 @p_146) :named @p_167))) :rule cong :premises (t54.t1))
+(step t54.t3 (cl (= @p_163 (! (and @p_152 @p_167) :named @p_168))) :rule cong :premises (t54.t2))
+(step t54 (cl (! (= @p_165 (! (forall ((veriT_vr23 Astate$) (veriT_vr24 Astate_v_list_v_result_prod$)) @p_168) :named @p_170)) :named @p_169)) :rule bind)
+(step t55 (cl (not @p_169) (not @p_165) @p_170) :rule equiv_pos2)
+(step t56 (cl @p_170) :rule th_resolution :premises (t53 t54 t55))
+(anchor :step t57 :args ((:= (?v0 V_error_result$) veriT_vr27)))
+(anchor :step t57.t1 :args ((:= (?v1 V$) veriT_vr28)))
+(step t57.t1.t1 (cl (! (= ?v0 veriT_vr27) :named @p_181)) :rule refl)
+(step t57.t1.t2 (cl (= ?v1 veriT_vr28)) :rule refl)
+(step t57.t1.t3 (cl (= @p_174 (! (rraise$ veriT_vr28) :named @p_175))) :rule cong :premises (t57.t1.t2))
+(step t57.t1.t4 (cl (= @p_6 (! (= veriT_vr27 @p_175) :named @p_176))) :rule cong :premises (t57.t1.t1 t57.t1.t3))
+(step t57.t1.t5 (cl (= @p_177 (! (=> @p_176 false) :named @p_178))) :rule cong :premises (t57.t1.t4))
+(step t57.t1 (cl (= @p_172 (! (forall ((veriT_vr28 V$)) @p_178) :named @p_173))) :rule bind)
+(anchor :step t57.t2 :args ((:= (?v1 Abort$) veriT_vr29)))
+(step t57.t2.t1 (cl @p_181) :rule refl)
+(step t57.t2.t2 (cl (= ?v1 veriT_vr29)) :rule refl)
+(step t57.t2.t3 (cl (= @p_182 (! (rabort$ veriT_vr29) :named @p_183))) :rule cong :premises (t57.t2.t2))
+(step t57.t2.t4 (cl (= @p_184 (! (= veriT_vr27 @p_183) :named @p_185))) :rule cong :premises (t57.t2.t1 t57.t2.t3))
+(step t57.t2.t5 (cl (= @p_186 (! (=> @p_185 false) :named @p_187))) :rule cong :premises (t57.t2.t4))
+(step t57.t2 (cl (= @p_179 (! (forall ((veriT_vr29 Abort$)) @p_187) :named @p_180))) :rule bind)
+(step t57.t3 (cl (= @p_188 (! (and @p_173 @p_180) :named @p_189))) :rule cong :premises (t57.t1 t57.t2))
+(step t57.t4 (cl (= @p_190 (! (=> @p_189 false) :named @p_191))) :rule cong :premises (t57.t3))
+(step t57 (cl (! (= @p_171 (! (forall ((veriT_vr27 V_error_result$)) @p_191) :named @p_193)) :named @p_192)) :rule bind)
+(step t58 (cl (not @p_192) (not @p_171) @p_193) :rule equiv_pos2)
+(step t59 (cl @p_193) :rule th_resolution :premises (axiom7 t57 t58))
+(anchor :step t60 :args ((veriT_vr27 V_error_result$)))
+(anchor :step t60.t1 :args ((veriT_vr28 V$)))
+(step t60.t1.t1 (cl (= @p_178 (! (not @p_176) :named @p_195))) :rule implies_simplify)
+(step t60.t1 (cl (= @p_173 (! (forall ((veriT_vr28 V$)) @p_195) :named @p_194))) :rule bind)
+(anchor :step t60.t2 :args ((veriT_vr29 Abort$)))
+(step t60.t2.t1 (cl (= @p_187 (! (not @p_185) :named @p_197))) :rule implies_simplify)
+(step t60.t2 (cl (= @p_180 (! (forall ((veriT_vr29 Abort$)) @p_197) :named @p_196))) :rule bind)
+(step t60.t3 (cl (= @p_189 (! (and @p_194 @p_196) :named @p_198))) :rule cong :premises (t60.t1 t60.t2))
+(step t60.t4 (cl (= @p_191 (! (=> @p_198 false) :named @p_199))) :rule cong :premises (t60.t3))
+(step t60.t5 (cl (= @p_199 (! (not @p_198) :named @p_200))) :rule implies_simplify)
+(step t60.t6 (cl (= @p_191 @p_200)) :rule trans :premises (t60.t4 t60.t5))
+(step t60 (cl (! (= @p_193 (! (forall ((veriT_vr27 V_error_result$)) @p_200) :named @p_202)) :named @p_201)) :rule bind)
+(step t61 (cl (not @p_201) (not @p_193) @p_202) :rule equiv_pos2)
+(step t62 (cl @p_202) :rule th_resolution :premises (t59 t60 t61))
+(anchor :step t63 :args ((:= (veriT_vr27 V_error_result$) veriT_vr30)))
+(anchor :step t63.t1 :args ((:= (veriT_vr28 V$) veriT_vr31)))
+(step t63.t1.t1 (cl (! (= veriT_vr27 veriT_vr30) :named @p_208)) :rule refl)
+(step t63.t1.t2 (cl (= veriT_vr28 veriT_vr31)) :rule refl)
+(step t63.t1.t3 (cl (= @p_175 (! (rraise$ veriT_vr31) :named @p_204))) :rule cong :premises (t63.t1.t2))
+(step t63.t1.t4 (cl (= @p_176 (! (= veriT_vr30 @p_204) :named @p_205))) :rule cong :premises (t63.t1.t1 t63.t1.t3))
+(step t63.t1.t5 (cl (= @p_195 (! (not @p_205) :named @p_206))) :rule cong :premises (t63.t1.t4))
+(step t63.t1 (cl (= @p_194 (! (forall ((veriT_vr31 V$)) @p_206) :named @p_203))) :rule bind)
+(anchor :step t63.t2 :args ((:= (veriT_vr29 Abort$) veriT_vr32)))
+(step t63.t2.t1 (cl @p_208) :rule refl)
+(step t63.t2.t2 (cl (= veriT_vr29 veriT_vr32)) :rule refl)
+(step t63.t2.t3 (cl (= @p_183 (! (rabort$ veriT_vr32) :named @p_209))) :rule cong :premises (t63.t2.t2))
+(step t63.t2.t4 (cl (= @p_185 (! (= veriT_vr30 @p_209) :named @p_210))) :rule cong :premises (t63.t2.t1 t63.t2.t3))
+(step t63.t2.t5 (cl (= @p_197 (! (not @p_210) :named @p_211))) :rule cong :premises (t63.t2.t4))
+(step t63.t2 (cl (= @p_196 (! (forall ((veriT_vr32 Abort$)) @p_211) :named @p_207))) :rule bind)
+(step t63.t3 (cl (= @p_198 (! (and @p_203 @p_207) :named @p_212))) :rule cong :premises (t63.t1 t63.t2))
+(step t63.t4 (cl (= @p_200 (! (not @p_212) :named @p_213))) :rule cong :premises (t63.t3))
+(step t63 (cl (! (= @p_202 (! (forall ((veriT_vr30 V_error_result$)) @p_213) :named @p_215)) :named @p_214)) :rule bind)
+(step t64 (cl (not @p_214) (not @p_202) @p_215) :rule equiv_pos2)
+(step t65 (cl @p_215) :rule th_resolution :premises (t62 t63 t64))
+(anchor :step t66 :args ((:= (?v0 V_astate_v_list_v_result_prod_fun$) veriT_vr33) (:= (?v1 Abort_astate_v_list_v_result_prod_fun$) veriT_vr34) (:= (?v2 V$) veriT_vr35)))
+(step t66.t1 (cl (! (= ?v0 veriT_vr33) :named @p_221)) :rule refl)
+(step t66.t2 (cl (= ?v1 veriT_vr34)) :rule refl)
+(step t66.t3 (cl (! (= ?v2 veriT_vr35) :named @p_222)) :rule refl)
+(step t66.t4 (cl (= @p_217 (! (rraise$ veriT_vr35) :named @p_218))) :rule cong :premises (t66.t3))
+(step t66.t5 (cl (= @p_219 (! (case_error_result$ veriT_vr33 veriT_vr34 @p_218) :named @p_220))) :rule cong :premises (t66.t1 t66.t2 t66.t4))
+(step t66.t6 (cl @p_221) :rule refl)
+(step t66.t7 (cl @p_222) :rule refl)
+(step t66.t8 (cl (= @p_223 (! (fun_app$ veriT_vr33 veriT_vr35) :named @p_224))) :rule cong :premises (t66.t6 t66.t7))
+(step t66.t9 (cl (= @p_225 (! (= @p_220 @p_224) :named @p_226))) :rule cong :premises (t66.t5 t66.t8))
+(step t66 (cl (! (= @p_216 (! (forall ((veriT_vr33 V_astate_v_list_v_result_prod_fun$) (veriT_vr34 Abort_astate_v_list_v_result_prod_fun$) (veriT_vr35 V$)) @p_226) :named @p_228)) :named @p_227)) :rule bind)
+(step t67 (cl (not @p_227) (not @p_216) @p_228) :rule equiv_pos2)
+(step t68 (cl @p_228) :rule th_resolution :premises (axiom8 t66 t67))
+(anchor :step t69 :args ((:= (veriT_vr33 V_astate_v_list_v_result_prod_fun$) veriT_vr36) (:= (veriT_vr34 Abort_astate_v_list_v_result_prod_fun$) veriT_vr37) (:= (veriT_vr35 V$) veriT_vr38)))
+(step t69.t1 (cl (! (= veriT_vr33 veriT_vr36) :named @p_231)) :rule refl)
+(step t69.t2 (cl (= veriT_vr34 veriT_vr37)) :rule refl)
+(step t69.t3 (cl (! (= veriT_vr35 veriT_vr38) :named @p_232)) :rule refl)
+(step t69.t4 (cl (= @p_218 (! (rraise$ veriT_vr38) :named @p_229))) :rule cong :premises (t69.t3))
+(step t69.t5 (cl (= @p_220 (! (case_error_result$ veriT_vr36 veriT_vr37 @p_229) :named @p_230))) :rule cong :premises (t69.t1 t69.t2 t69.t4))
+(step t69.t6 (cl @p_231) :rule refl)
+(step t69.t7 (cl @p_232) :rule refl)
+(step t69.t8 (cl (= @p_224 (! (fun_app$ veriT_vr36 veriT_vr38) :named @p_233))) :rule cong :premises (t69.t6 t69.t7))
+(step t69.t9 (cl (= @p_226 (! (= @p_230 @p_233) :named @p_234))) :rule cong :premises (t69.t5 t69.t8))
+(step t69 (cl (! (= @p_228 (! (forall ((veriT_vr36 V_astate_v_list_v_result_prod_fun$) (veriT_vr37 Abort_astate_v_list_v_result_prod_fun$) (veriT_vr38 V$)) @p_234) :named @p_236)) :named @p_235)) :rule bind)
+(step t70 (cl (not @p_235) (not @p_228) @p_236) :rule equiv_pos2)
+(step t71 (cl @p_236) :rule th_resolution :premises (t68 t69 t70))
+(anchor :step t72 :args ((:= (?v0 V_astate_v_list_v_result_prod_fun$) veriT_vr39) (:= (?v1 Abort_astate_v_list_v_result_prod_fun$) veriT_vr40) (:= (?v2 Abort$) veriT_vr41)))
+(step t72.t1 (cl (= ?v0 veriT_vr39)) :rule refl)
+(step t72.t2 (cl (! (= ?v1 veriT_vr40) :named @p_242)) :rule refl)
+(step t72.t3 (cl (! (= ?v2 veriT_vr41) :named @p_243)) :rule refl)
+(step t72.t4 (cl (= @p_238 (! (rabort$ veriT_vr41) :named @p_239))) :rule cong :premises (t72.t3))
+(step t72.t5 (cl (= @p_240 (! (case_error_result$ veriT_vr39 veriT_vr40 @p_239) :named @p_241))) :rule cong :premises (t72.t1 t72.t2 t72.t4))
+(step t72.t6 (cl @p_242) :rule refl)
+(step t72.t7 (cl @p_243) :rule refl)
+(step t72.t8 (cl (= @p_244 (! (fun_app$a veriT_vr40 veriT_vr41) :named @p_245))) :rule cong :premises (t72.t6 t72.t7))
+(step t72.t9 (cl (= @p_246 (! (= @p_241 @p_245) :named @p_247))) :rule cong :premises (t72.t5 t72.t8))
+(step t72 (cl (! (= @p_237 (! (forall ((veriT_vr39 V_astate_v_list_v_result_prod_fun$) (veriT_vr40 Abort_astate_v_list_v_result_prod_fun$) (veriT_vr41 Abort$)) @p_247) :named @p_249)) :named @p_248)) :rule bind)
+(step t73 (cl (not @p_248) (not @p_237) @p_249) :rule equiv_pos2)
+(step t74 (cl @p_249) :rule th_resolution :premises (axiom9 t72 t73))
+(anchor :step t75 :args ((:= (veriT_vr39 V_astate_v_list_v_result_prod_fun$) veriT_vr42) (:= (veriT_vr40 Abort_astate_v_list_v_result_prod_fun$) veriT_vr43) (:= (veriT_vr41 Abort$) veriT_vr44)))
+(step t75.t1 (cl (= veriT_vr39 veriT_vr42)) :rule refl)
+(step t75.t2 (cl (! (= veriT_vr40 veriT_vr43) :named @p_252)) :rule refl)
+(step t75.t3 (cl (! (= veriT_vr41 veriT_vr44) :named @p_253)) :rule refl)
+(step t75.t4 (cl (= @p_239 (! (rabort$ veriT_vr44) :named @p_250))) :rule cong :premises (t75.t3))
+(step t75.t5 (cl (= @p_241 (! (case_error_result$ veriT_vr42 veriT_vr43 @p_250) :named @p_251))) :rule cong :premises (t75.t1 t75.t2 t75.t4))
+(step t75.t6 (cl @p_252) :rule refl)
+(step t75.t7 (cl @p_253) :rule refl)
+(step t75.t8 (cl (= @p_245 (! (fun_app$a veriT_vr43 veriT_vr44) :named @p_254))) :rule cong :premises (t75.t6 t75.t7))
+(step t75.t9 (cl (= @p_247 (! (= @p_251 @p_254) :named @p_255))) :rule cong :premises (t75.t5 t75.t8))
+(step t75 (cl (! (= @p_249 (! (forall ((veriT_vr42 V_astate_v_list_v_result_prod_fun$) (veriT_vr43 Abort_astate_v_list_v_result_prod_fun$) (veriT_vr44 Abort$)) @p_255) :named @p_257)) :named @p_256)) :rule bind)
+(step t76 (cl (not @p_256) (not @p_249) @p_257) :rule equiv_pos2)
+(step t77 (cl @p_257) :rule th_resolution :premises (t74 t75 t76))
+(anchor :step t78 :args ((:= (?v0 Astate$) veriT_vr45) (:= (?v1 Astate$) veriT_vr46) (:= (?v2 V_list_v_result$) veriT_vr47) (:= (?v3 Astate$) veriT_vr48)))
+(step t78.t1 (cl (= ?v0 veriT_vr45)) :rule refl)
+(step t78.t2 (cl (! (= ?v1 veriT_vr46) :named @p_270)) :rule refl)
+(step t78.t3 (cl (! (= ?v2 veriT_vr47) :named @p_262)) :rule refl)
+(step t78.t4 (cl (= @p_259 (! (pair$ veriT_vr46 veriT_vr47) :named @p_260))) :rule cong :premises (t78.t2 t78.t3))
+(step t78.t5 (cl (= @p_4 (! (fix_clock$ veriT_vr45 @p_260) :named @p_261))) :rule cong :premises (t78.t1 t78.t4))
+(step t78.t6 (cl (! (= ?v3 veriT_vr48) :named @p_267)) :rule refl)
+(step t78.t7 (cl @p_262) :rule refl)
+(step t78.t8 (cl (= @p_263 (! (pair$ veriT_vr48 veriT_vr47) :named @p_264))) :rule cong :premises (t78.t6 t78.t7))
+(step t78.t9 (cl (= @p_265 (! (= @p_261 @p_264) :named @p_266))) :rule cong :premises (t78.t5 t78.t8))
+(step t78.t10 (cl @p_267) :rule refl)
+(step t78.t11 (cl (= @p_268 (! (clock$ veriT_vr48) :named @p_269))) :rule cong :premises (t78.t10))
+(step t78.t12 (cl @p_270) :rule refl)
+(step t78.t13 (cl (= @p_1 (! (clock$ veriT_vr46) :named @p_271))) :rule cong :premises (t78.t12))
+(step t78.t14 (cl (= @p_272 (! (less_eq$ @p_269 @p_271) :named @p_273))) :rule cong :premises (t78.t11 t78.t13))
+(step t78.t15 (cl (= @p_274 (! (=> @p_266 @p_273) :named @p_275))) :rule cong :premises (t78.t9 t78.t14))
+(step t78 (cl (! (= @p_258 (! (forall ((veriT_vr45 Astate$) (veriT_vr46 Astate$) (veriT_vr47 V_list_v_result$) (veriT_vr48 Astate$)) @p_275) :named @p_277)) :named @p_276)) :rule bind)
+(step t79 (cl (not @p_276) (not @p_258) @p_277) :rule equiv_pos2)
+(step t80 (cl @p_277) :rule th_resolution :premises (axiom10 t78 t79))
+(anchor :step t81 :args ((:= (veriT_vr45 Astate$) veriT_vr49) (:= (veriT_vr46 Astate$) veriT_vr50) (:= (veriT_vr47 V_list_v_result$) veriT_vr51) (:= (veriT_vr48 Astate$) veriT_vr52)))
+(step t81.t1 (cl (= veriT_vr45 veriT_vr49)) :rule refl)
+(step t81.t2 (cl (! (= veriT_vr46 veriT_vr50) :named @p_285)) :rule refl)
+(step t81.t3 (cl (! (= veriT_vr47 veriT_vr51) :named @p_280)) :rule refl)
+(step t81.t4 (cl (= @p_260 (! (pair$ veriT_vr50 veriT_vr51) :named @p_278))) :rule cong :premises (t81.t2 t81.t3))
+(step t81.t5 (cl (= @p_261 (! (fix_clock$ veriT_vr49 @p_278) :named @p_279))) :rule cong :premises (t81.t1 t81.t4))
+(step t81.t6 (cl (! (= veriT_vr48 veriT_vr52) :named @p_283)) :rule refl)
+(step t81.t7 (cl @p_280) :rule refl)
+(step t81.t8 (cl (= @p_264 (! (pair$ veriT_vr52 veriT_vr51) :named @p_281))) :rule cong :premises (t81.t6 t81.t7))
+(step t81.t9 (cl (= @p_266 (! (= @p_279 @p_281) :named @p_282))) :rule cong :premises (t81.t5 t81.t8))
+(step t81.t10 (cl @p_283) :rule refl)
+(step t81.t11 (cl (= @p_269 (! (clock$ veriT_vr52) :named @p_284))) :rule cong :premises (t81.t10))
+(step t81.t12 (cl @p_285) :rule refl)
+(step t81.t13 (cl (= @p_271 (! (clock$ veriT_vr50) :named @p_286))) :rule cong :premises (t81.t12))
+(step t81.t14 (cl (= @p_273 (! (less_eq$ @p_284 @p_286) :named @p_287))) :rule cong :premises (t81.t11 t81.t13))
+(step t81.t15 (cl (= @p_275 (! (=> @p_282 @p_287) :named @p_288))) :rule cong :premises (t81.t9 t81.t14))
+(step t81 (cl (! (= @p_277 (! (forall ((veriT_vr49 Astate$) (veriT_vr50 Astate$) (veriT_vr51 V_list_v_result$) (veriT_vr52 Astate$)) @p_288) :named @p_290)) :named @p_289)) :rule bind)
+(step t82 (cl (not @p_289) (not @p_277) @p_290) :rule equiv_pos2)
+(step t83 (cl @p_290) :rule th_resolution :premises (t80 t81 t82))
+(anchor :step t84 :args ((:= (?v0 Astate$) veriT_vr53) (:= (?v1 Astate$) veriT_vr54) (:= (?v2 V_list_v_result$) veriT_vr55)))
+(step t84.t1 (cl (! (= ?v0 veriT_vr53) :named @p_294)) :rule refl)
+(step t84.t2 (cl (! (= ?v1 veriT_vr54) :named @p_295)) :rule refl)
+(step t84.t3 (cl (! (= ?v2 veriT_vr55) :named @p_299)) :rule refl)
+(step t84.t4 (cl (= @p_259 (! (pair$ veriT_vr54 veriT_vr55) :named @p_292))) :rule cong :premises (t84.t2 t84.t3))
+(step t84.t5 (cl (= @p_4 (! (fix_clock$ veriT_vr53 @p_292) :named @p_293))) :rule cong :premises (t84.t1 t84.t4))
+(step t84.t6 (cl @p_294) :rule refl)
+(step t84.t7 (cl @p_295) :rule refl)
+(step t84.t8 (cl (= @p_5 (! (uu$ veriT_vr53 veriT_vr54) :named @p_296))) :rule cong :premises (t84.t6 t84.t7))
+(step t84.t9 (cl @p_295) :rule refl)
+(step t84.t10 (cl (= @p_297 (! (update_clock$ @p_296 veriT_vr54) :named @p_298))) :rule cong :premises (t84.t8 t84.t9))
+(step t84.t11 (cl @p_299) :rule refl)
+(step t84.t12 (cl (= @p_300 (! (pair$ @p_298 veriT_vr55) :named @p_301))) :rule cong :premises (t84.t10 t84.t11))
+(step t84.t13 (cl (= @p_302 (! (= @p_293 @p_301) :named @p_303))) :rule cong :premises (t84.t5 t84.t12))
+(step t84 (cl (! (= @p_291 (! (forall ((veriT_vr53 Astate$) (veriT_vr54 Astate$) (veriT_vr55 V_list_v_result$)) @p_303) :named @p_305)) :named @p_304)) :rule bind)
+(step t85 (cl (not @p_304) (not @p_291) @p_305) :rule equiv_pos2)
+(step t86 (cl @p_305) :rule th_resolution :premises (axiom11 t84 t85))
+(anchor :step t87 :args ((:= (veriT_vr53 Astate$) veriT_vr56) (:= (veriT_vr54 Astate$) veriT_vr57) (:= (veriT_vr55 V_list_v_result$) veriT_vr58)))
+(step t87.t1 (cl (! (= veriT_vr53 veriT_vr56) :named @p_308)) :rule refl)
+(step t87.t2 (cl (! (= veriT_vr54 veriT_vr57) :named @p_309)) :rule refl)
+(step t87.t3 (cl (! (= veriT_vr55 veriT_vr58) :named @p_312)) :rule refl)
+(step t87.t4 (cl (= @p_292 (! (pair$ veriT_vr57 veriT_vr58) :named @p_306))) :rule cong :premises (t87.t2 t87.t3))
+(step t87.t5 (cl (= @p_293 (! (fix_clock$ veriT_vr56 @p_306) :named @p_307))) :rule cong :premises (t87.t1 t87.t4))
+(step t87.t6 (cl @p_308) :rule refl)
+(step t87.t7 (cl @p_309) :rule refl)
+(step t87.t8 (cl (= @p_296 (! (uu$ veriT_vr56 veriT_vr57) :named @p_310))) :rule cong :premises (t87.t6 t87.t7))
+(step t87.t9 (cl @p_309) :rule refl)
+(step t87.t10 (cl (= @p_298 (! (update_clock$ @p_310 veriT_vr57) :named @p_311))) :rule cong :premises (t87.t8 t87.t9))
+(step t87.t11 (cl @p_312) :rule refl)
+(step t87.t12 (cl (= @p_301 (! (pair$ @p_311 veriT_vr58) :named @p_313))) :rule cong :premises (t87.t10 t87.t11))
+(step t87.t13 (cl (= @p_303 (! (= @p_307 @p_313) :named @p_314))) :rule cong :premises (t87.t5 t87.t12))
+(step t87 (cl (! (= @p_305 (! (forall ((veriT_vr56 Astate$) (veriT_vr57 Astate$) (veriT_vr58 V_list_v_result$)) @p_314) :named @p_316)) :named @p_315)) :rule bind)
+(step t88 (cl (not @p_315) (not @p_305) @p_316) :rule equiv_pos2)
+(step t89 (cl @p_316) :rule th_resolution :premises (t86 t87 t88))
+(anchor :step t90 :args ((:= (?v0 V_error_result$) veriT_vr59) (:= (?v1 V$) veriT_vr60)))
+(step t90.t1 (cl (! (= ?v0 veriT_vr59) :named @p_323)) :rule refl)
+(step t90.t2 (cl (= @p_319 (! (rerr$ veriT_vr59) :named @p_320))) :rule cong :premises (t90.t1))
+(step t90.t3 (cl (= @p_321 (! (= r$ @p_320) :named @p_322))) :rule cong :premises (t90.t2))
+(step t90.t4 (cl @p_323) :rule refl)
+(step t90.t5 (cl (! (= ?v1 veriT_vr60) :named @p_328)) :rule refl)
+(step t90.t6 (cl (= @p_174 (! (rraise$ veriT_vr60) :named @p_324))) :rule cong :premises (t90.t5))
+(step t90.t7 (cl (= @p_6 (! (= veriT_vr59 @p_324) :named @p_325))) :rule cong :premises (t90.t4 t90.t6))
+(step t90.t8 (cl (= @p_326 (! (and @p_322 @p_325) :named @p_327))) :rule cong :premises (t90.t3 t90.t7))
+(step t90.t9 (cl @p_328) :rule refl)
+(step t90.t10 (cl (= @p_329 (! (fun_evaluate_match$ st$ env$ veriT_vr60 pes$) :named @p_330))) :rule cong :premises (t90.t9))
+(step t90.t11 (cl @p_328) :rule refl)
+(step t90.t12 (cl (= @p_331 (! (fun_app$ @p_330 veriT_vr60) :named @p_332))) :rule cong :premises (t90.t10 t90.t11))
+(step t90.t13 (cl (= @p_333 (! (fst$ @p_332) :named @p_334))) :rule cong :premises (t90.t12))
+(step t90.t14 (cl (= @p_335 (! (clock$ @p_334) :named @p_336))) :rule cong :premises (t90.t13))
+(step t90.t15 (cl (= @p_337 (! (less_eq$ @p_336 @p_318) :named @p_338))) :rule cong :premises (t90.t14))
+(step t90.t16 (cl (= @p_339 (! (=> @p_327 @p_338) :named @p_340))) :rule cong :premises (t90.t8 t90.t15))
+(step t90 (cl (! (= @p_317 (! (forall ((veriT_vr59 V_error_result$) (veriT_vr60 V$)) @p_340) :named @p_342)) :named @p_341)) :rule bind)
+(step t91 (cl (not @p_341) (not @p_317) @p_342) :rule equiv_pos2)
+(step t92 (cl @p_342) :rule th_resolution :premises (axiom12 t90 t91))
+(anchor :step t93 :args ((:= (veriT_vr59 V_error_result$) veriT_vr61) (:= (veriT_vr60 V$) veriT_vr62)))
+(step t93.t1 (cl (! (= veriT_vr59 veriT_vr61) :named @p_345)) :rule refl)
+(step t93.t2 (cl (= @p_320 (! (rerr$ veriT_vr61) :named @p_343))) :rule cong :premises (t93.t1))
+(step t93.t3 (cl (= @p_322 (! (= r$ @p_343) :named @p_344))) :rule cong :premises (t93.t2))
+(step t93.t4 (cl @p_345) :rule refl)
+(step t93.t5 (cl (! (= veriT_vr60 veriT_vr62) :named @p_349)) :rule refl)
+(step t93.t6 (cl (= @p_324 (! (rraise$ veriT_vr62) :named @p_346))) :rule cong :premises (t93.t5))
+(step t93.t7 (cl (= @p_325 (! (= veriT_vr61 @p_346) :named @p_347))) :rule cong :premises (t93.t4 t93.t6))
+(step t93.t8 (cl (= @p_327 (! (and @p_344 @p_347) :named @p_348))) :rule cong :premises (t93.t3 t93.t7))
+(step t93.t9 (cl @p_349) :rule refl)
+(step t93.t10 (cl (= @p_330 (! (fun_evaluate_match$ st$ env$ veriT_vr62 pes$) :named @p_350))) :rule cong :premises (t93.t9))
+(step t93.t11 (cl @p_349) :rule refl)
+(step t93.t12 (cl (= @p_332 (! (fun_app$ @p_350 veriT_vr62) :named @p_351))) :rule cong :premises (t93.t10 t93.t11))
+(step t93.t13 (cl (= @p_334 (! (fst$ @p_351) :named @p_352))) :rule cong :premises (t93.t12))
+(step t93.t14 (cl (= @p_336 (! (clock$ @p_352) :named @p_353))) :rule cong :premises (t93.t13))
+(step t93.t15 (cl (= @p_338 (! (less_eq$ @p_353 @p_318) :named @p_354))) :rule cong :premises (t93.t14))
+(step t93.t16 (cl (= @p_340 (! (=> @p_348 @p_354) :named @p_355))) :rule cong :premises (t93.t8 t93.t15))
+(step t93 (cl (! (= @p_342 (! (forall ((veriT_vr61 V_error_result$) (veriT_vr62 V$)) @p_355) :named @p_357)) :named @p_356)) :rule bind)
+(step t94 (cl (not @p_356) (not @p_342) @p_357) :rule equiv_pos2)
+(step t95 (cl @p_357) :rule th_resolution :premises (t92 t93 t94))
+(step t96 (cl (! (= @p_358 (! (and @p_359 (! (not @p_360) :named @p_366)) :named @p_362)) :named @p_361)) :rule bool_simplify)
+(step t97 (cl (! (not @p_361) :named @p_365) (! (not @p_358) :named @p_363) @p_362) :rule equiv_pos2)
+(step t98 (cl (not @p_363) @p_364) :rule not_not)
+(step t99 (cl @p_365 @p_364 @p_362) :rule th_resolution :premises (t98 t97))
+(step t100 (cl @p_362) :rule th_resolution :premises (axiom13 t96 t99))
+(step t101 (cl @p_359) :rule and :premises (t100))
+(step t102 (cl @p_366) :rule and :premises (t100))
+(step t103 (cl (or (! (not @p_105) :named @p_368) (! (forall ((veriT_vr13 Nat$) (veriT_vr14 Nat$) (veriT_vr15 Nat$)) (or (not @p_96) (not @p_98) @p_102)) :named @p_573))) :rule qnt_cnf)
+(step t104 (cl (or (! (not @p_170) :named @p_431) (! (forall ((veriT_vr23 Astate$) (veriT_vr24 Astate_v_list_v_result_prod$) (veriT_vr26 V_list_v_result$)) (or @p_367 @p_146)) :named @p_629))) :rule qnt_cnf)
+(step t105 (cl (or @p_368 (! (=> (! (and @p_369 (! (less_eq$ @p_370 @p_371) :named @p_373)) :named @p_372) @p_360) :named @p_374))) :rule forall_inst :args ((:= veriT_vr13 @p_371) (:= veriT_vr14 @p_7) (:= veriT_vr15 @p_370)))
+(step t106 (cl @p_372 (! (not @p_369) :named @p_574) (! (not @p_373) :named @p_375)) :rule and_neg)
+(step t107 (cl (! (not @p_374) :named @p_376) (! (not @p_372) :named @p_377) @p_360) :rule implies_pos)
+(step t108 (cl @p_368 @p_374) :rule or :premises (t105))
+(step t109 (cl @p_372 @p_375) :rule resolution :premises (t106 axiom4))
+(step t110 (cl @p_376 @p_377) :rule resolution :premises (t107 t102))
+(step t111 (cl @p_374) :rule resolution :premises (t108 t38))
+(step t112 (cl @p_377) :rule resolution :premises (t110 t111))
+(step t113 (cl @p_375) :rule resolution :premises (t109 t112))
+(step t114 (cl (not (! (not @p_368) :named @p_578)) @p_105) :rule not_not)
+(step t115 (cl (or (! (not @p_316) :named @p_547) (! (= (fix_clock$ st$a (pair$ @p_378 r$)) (pair$ (! (update_clock$ (uu$ st$a @p_378) @p_378) :named @p_561) r$)) :named @p_548))) :rule forall_inst :args ((:= veriT_vr56 st$a) (:= veriT_vr57 @p_378) (:= veriT_vr58 r$)))
+(step t116 (cl (or (! (not @p_215) :named @p_427) (! (not (! (and (! (forall ((veriT_vr31 V$)) (! (not (! (= x2$ @p_204) :named @p_382)) :named @p_384)) :named @p_380) (! (forall ((veriT_vr32 Abort$)) (! (not (! (= x2$ @p_209) :named @p_388)) :named @p_390)) :named @p_386)) :named @p_392)) :named @p_379))) :rule forall_inst :args ((:= veriT_vr30 x2$)))
+(anchor :step t117)
+(assume t117.h1 @p_379)
+(anchor :step t117.t2 :args ((:= (veriT_vr31 V$) veriT_vr63)))
+(step t117.t2.t1 (cl (= veriT_vr31 veriT_vr63)) :rule refl)
+(step t117.t2.t2 (cl (= @p_204 (! (rraise$ veriT_vr63) :named @p_381))) :rule cong :premises (t117.t2.t1))
+(step t117.t2.t3 (cl (= @p_382 (! (= x2$ @p_381) :named @p_383))) :rule cong :premises (t117.t2.t2))
+(step t117.t2.t4 (cl (= @p_384 (! (not @p_383) :named @p_385))) :rule cong :premises (t117.t2.t3))
+(step t117.t2 (cl (= @p_380 (! (forall ((veriT_vr63 V$)) @p_385) :named @p_393))) :rule bind)
+(anchor :step t117.t3 :args ((:= (veriT_vr32 Abort$) veriT_vr64)))
+(step t117.t3.t1 (cl (= veriT_vr32 veriT_vr64)) :rule refl)
+(step t117.t3.t2 (cl (= @p_209 (! (rabort$ veriT_vr64) :named @p_387))) :rule cong :premises (t117.t3.t1))
+(step t117.t3.t3 (cl (= @p_388 (! (= x2$ @p_387) :named @p_389))) :rule cong :premises (t117.t3.t2))
+(step t117.t3.t4 (cl (= @p_390 (! (not @p_389) :named @p_391))) :rule cong :premises (t117.t3.t3))
+(step t117.t3 (cl (= @p_386 (! (forall ((veriT_vr64 Abort$)) @p_391) :named @p_394))) :rule bind)
+(step t117.t4 (cl (= @p_392 (! (and @p_393 @p_394) :named @p_395))) :rule cong :premises (t117.t2 t117.t3))
+(step t117.t5 (cl (! (= @p_379 (! (not @p_395) :named @p_398)) :named @p_396)) :rule cong :premises (t117.t4))
+(step t117.t6 (cl (! (not @p_396) :named @p_399) (! (not @p_379) :named @p_397) @p_398) :rule equiv_pos2)
+(step t117.t7 (cl (! (not @p_397) :named @p_426) @p_392) :rule not_not)
+(step t117.t8 (cl @p_399 @p_392 @p_398) :rule th_resolution :premises (t117.t7 t117.t6))
+(step t117.t9 (cl @p_398) :rule th_resolution :premises (t117.h1 t117.t5 t117.t8))
+(anchor :step t117.t10 :args ((:= (veriT_vr63 V$) veriT_vr65)))
+(step t117.t10.t1 (cl (= veriT_vr63 veriT_vr65)) :rule refl)
+(step t117.t10.t2 (cl (= @p_381 @p_401)) :rule cong :premises (t117.t10.t1))
+(step t117.t10.t3 (cl (= @p_383 @p_402)) :rule cong :premises (t117.t10.t2))
+(step t117.t10.t4 (cl (= @p_385 @p_400)) :rule cong :premises (t117.t10.t3))
+(step t117.t10 (cl (= @p_393 (! (forall ((veriT_vr65 V$)) @p_400) :named @p_406))) :rule bind)
+(anchor :step t117.t11 :args ((:= (veriT_vr64 Abort$) veriT_vr66)))
+(step t117.t11.t1 (cl (= veriT_vr64 veriT_vr66)) :rule refl)
+(step t117.t11.t2 (cl (= @p_387 @p_404)) :rule cong :premises (t117.t11.t1))
+(step t117.t11.t3 (cl (= @p_389 @p_405)) :rule cong :premises (t117.t11.t2))
+(step t117.t11.t4 (cl (= @p_391 @p_403)) :rule cong :premises (t117.t11.t3))
+(step t117.t11 (cl (= @p_394 (! (forall ((veriT_vr66 Abort$)) @p_403) :named @p_407))) :rule bind)
+(step t117.t12 (cl (= @p_395 (! (and @p_406 @p_407) :named @p_408))) :rule cong :premises (t117.t10 t117.t11))
+(step t117.t13 (cl (! (= @p_398 (! (not @p_408) :named @p_410)) :named @p_409)) :rule cong :premises (t117.t12))
+(step t117.t14 (cl (! (not @p_409) :named @p_412) (! (not @p_398) :named @p_411) @p_410) :rule equiv_pos2)
+(step t117.t15 (cl (not @p_411) @p_395) :rule not_not)
+(step t117.t16 (cl @p_412 @p_395 @p_410) :rule th_resolution :premises (t117.t15 t117.t14))
+(step t117.t17 (cl @p_410) :rule th_resolution :premises (t117.t9 t117.t13 t117.t16))
+(anchor :step t117.t18 :args ((:= (veriT_vr65 V$) veriT_sk0)))
+(step t117.t18.t1 (cl (= veriT_vr65 veriT_sk0)) :rule refl)
+(step t117.t18.t2 (cl (= @p_401 (! (rraise$ veriT_sk0) :named @p_415))) :rule cong :premises (t117.t18.t1))
+(step t117.t18.t3 (cl (= @p_402 (! (= x2$ @p_415) :named @p_416))) :rule cong :premises (t117.t18.t2))
+(step t117.t18.t4 (cl (= @p_400 (! (not @p_416) :named @p_413))) :rule cong :premises (t117.t18.t3))
+(step t117.t18 (cl (= @p_406 @p_413)) :rule sko_forall)
+(anchor :step t117.t19 :args ((:= (veriT_vr66 Abort$) veriT_sk1)))
+(step t117.t19.t1 (cl (= veriT_vr66 veriT_sk1)) :rule refl)
+(step t117.t19.t2 (cl (= @p_404 (! (rabort$ veriT_sk1) :named @p_419))) :rule cong :premises (t117.t19.t1))
+(step t117.t19.t3 (cl (= @p_405 (! (= x2$ @p_419) :named @p_420))) :rule cong :premises (t117.t19.t2))
+(step t117.t19.t4 (cl (= @p_403 (! (not @p_420) :named @p_417))) :rule cong :premises (t117.t19.t3))
+(step t117.t19 (cl (= @p_407 @p_417)) :rule sko_forall)
+(step t117.t20 (cl (= @p_408 (! (and @p_413 @p_417) :named @p_421))) :rule cong :premises (t117.t18 t117.t19))
+(step t117.t21 (cl (! (= @p_410 (! (not @p_421) :named @p_422)) :named @p_423)) :rule cong :premises (t117.t20))
+(step t117.t22 (cl (! (not @p_423) :named @p_425) (! (not @p_410) :named @p_424) @p_422) :rule equiv_pos2)
+(step t117.t23 (cl (not @p_424) @p_408) :rule not_not)
+(step t117.t24 (cl @p_425 @p_408 @p_422) :rule th_resolution :premises (t117.t23 t117.t22))
+(step t117.t25 (cl @p_422) :rule th_resolution :premises (t117.t17 t117.t21 t117.t24))
+(step t117 (cl @p_397 @p_422) :rule subproof :discharge (h1))
+(step t118 (cl @p_426 @p_392) :rule not_not)
+(step t119 (cl @p_392 @p_422) :rule th_resolution :premises (t118 t117))
+(step t120 (cl @p_427 @p_379) :rule or :premises (t116))
+(step t121 (cl (! (or @p_427 @p_422) :named @p_429) (! (not @p_427) :named @p_428)) :rule or_neg)
+(step t122 (cl (not @p_428) @p_215) :rule not_not)
+(step t123 (cl @p_429 @p_215) :rule th_resolution :premises (t122 t121))
+(step t124 (cl @p_429 (! (not @p_422) :named @p_430)) :rule or_neg)
+(step t125 (cl (not @p_430) @p_421) :rule not_not)
+(step t126 (cl @p_429 @p_421) :rule th_resolution :premises (t125 t124))
+(step t127 (cl @p_429) :rule th_resolution :premises (t120 t119 t123 t126))
+(step t128 (cl (not (! (not @p_431) :named @p_468)) @p_170) :rule not_not)
+(step t129 (cl (or @p_431 (! (and (! (=> (! (= @p_378 @p_378) :named @p_432) (! (exists ((veriT_vr25 V_list_v_result$)) (! (= @p_3 (! (pair$ @p_378 veriT_vr25) :named @p_435)) :named @p_437)) :named @p_434)) :named @p_439) (! (=> (! (not (! (forall ((veriT_vr26 V_list_v_result$)) (! (not (! (= @p_3 (! (pair$ @p_378 veriT_vr26) :named @p_442)) :named @p_443)) :named @p_444)) :named @p_441)) :named @p_446) @p_432) :named @p_448)) :named @p_433))) :rule forall_inst :args ((:= veriT_vr23 @p_378) (:= veriT_vr24 @p_3)))
(anchor :step t130)
-(assume t130.h1 @p_440)
-(anchor :step t130.t2 :args ((:= (veriT_vr25 V_list_v_result$) veriT_vr106)))
-(step t130.t2.t1 (cl (= veriT_vr25 veriT_vr106)) :rule refl)
-(step t130.t2.t2 (cl (= @p_442 (! (pair$ st$ veriT_vr106) :named @p_443))) :rule cong :premises (t130.t2.t1))
-(step t130.t2.t3 (cl (= @p_444 (! (= @p_438 @p_443) :named @p_445))) :rule cong :premises (t130.t2.t2))
-(step t130.t2 (cl (= @p_441 (! (exists ((veriT_vr106 V_list_v_result$)) @p_445) :named @p_447))) :rule bind)
-(step t130.t3 (cl (= @p_446 (! (=> @p_439 @p_447) :named @p_457))) :rule cong :premises (t130.t2))
-(anchor :step t130.t4 :args ((:= (veriT_vr26 V_list_v_result$) veriT_vr106)))
-(step t130.t4.t1 (cl (= veriT_vr26 veriT_vr106)) :rule refl)
-(step t130.t4.t2 (cl (= @p_449 @p_443)) :rule cong :premises (t130.t4.t1))
-(step t130.t4.t3 (cl (= @p_450 @p_445)) :rule cong :premises (t130.t4.t2))
-(step t130.t4.t4 (cl (= @p_451 (! (not @p_445) :named @p_452))) :rule cong :premises (t130.t4.t3))
-(step t130.t4 (cl (= @p_448 (! (forall ((veriT_vr106 V_list_v_result$)) @p_452) :named @p_454))) :rule bind)
-(step t130.t5 (cl (= @p_453 (! (not @p_454) :named @p_456))) :rule cong :premises (t130.t4))
-(step t130.t6 (cl (= @p_455 (! (=> @p_456 @p_439) :named @p_458))) :rule cong :premises (t130.t5))
-(step t130.t7 (cl (! (= @p_440 (! (and @p_457 @p_458) :named @p_461)) :named @p_459)) :rule cong :premises (t130.t3 t130.t6))
-(step t130.t8 (cl (not @p_459) (! (not @p_440) :named @p_460) @p_461) :rule equiv_pos2)
-(step t130.t9 (cl @p_461) :rule th_resolution :premises (t130.h1 t130.t7 t130.t8))
-(anchor :step t130.t10 :args ((:= (veriT_vr106 V_list_v_result$) veriT_vr107)))
-(step t130.t10.t1 (cl (= veriT_vr106 veriT_vr107)) :rule refl)
-(step t130.t10.t2 (cl (= @p_443 (! (pair$ st$ veriT_vr107) :named @p_462))) :rule cong :premises (t130.t10.t1))
-(step t130.t10.t3 (cl (= @p_445 (! (= @p_438 @p_462) :named @p_463))) :rule cong :premises (t130.t10.t2))
-(step t130.t10.t4 (cl (= @p_452 (! (not @p_463) :named @p_464))) :rule cong :premises (t130.t10.t3))
-(step t130.t10 (cl (= @p_454 (! (forall ((veriT_vr107 V_list_v_result$)) @p_464) :named @p_465))) :rule bind)
-(step t130.t11 (cl (= @p_456 (! (not @p_465) :named @p_466))) :rule cong :premises (t130.t10))
-(step t130.t12 (cl (= @p_458 (! (=> @p_466 @p_439) :named @p_467))) :rule cong :premises (t130.t11))
-(step t130.t13 (cl (! (= @p_461 (! (and @p_457 @p_467) :named @p_469)) :named @p_468)) :rule cong :premises (t130.t12))
-(step t130.t14 (cl (not @p_468) (not @p_461) @p_469) :rule equiv_pos2)
-(step t130.t15 (cl @p_469) :rule th_resolution :premises (t130.t9 t130.t13 t130.t14))
-(anchor :step t130.t16 :args ((:= (veriT_vr106 V_list_v_result$) veriT_vr108)))
-(step t130.t16.t1 (cl (= veriT_vr106 veriT_vr108)) :rule refl)
-(step t130.t16.t2 (cl (= @p_443 @p_471)) :rule cong :premises (t130.t16.t1))
-(step t130.t16.t3 (cl (= @p_445 @p_470)) :rule cong :premises (t130.t16.t2))
-(step t130.t16 (cl (= @p_447 (! (exists ((veriT_vr108 V_list_v_result$)) @p_470) :named @p_472))) :rule bind)
-(step t130.t17 (cl (= @p_457 (! (=> @p_439 @p_472) :named @p_478))) :rule cong :premises (t130.t16))
-(anchor :step t130.t18 :args ((:= (veriT_vr107 V_list_v_result$) veriT_vr109)))
-(step t130.t18.t1 (cl (= veriT_vr107 veriT_vr109)) :rule refl)
-(step t130.t18.t2 (cl (= @p_462 (! (pair$ st$ veriT_vr109) :named @p_473))) :rule cong :premises (t130.t18.t1))
-(step t130.t18.t3 (cl (= @p_463 (! (= @p_438 @p_473) :named @p_474))) :rule cong :premises (t130.t18.t2))
-(step t130.t18.t4 (cl (= @p_464 (! (not @p_474) :named @p_475))) :rule cong :premises (t130.t18.t3))
-(step t130.t18 (cl (= @p_465 (! (forall ((veriT_vr109 V_list_v_result$)) @p_475) :named @p_476))) :rule bind)
-(step t130.t19 (cl (= @p_466 (! (not @p_476) :named @p_477))) :rule cong :premises (t130.t18))
-(step t130.t20 (cl (= @p_467 (! (=> @p_477 @p_439) :named @p_479))) :rule cong :premises (t130.t19))
-(step t130.t21 (cl (! (= @p_469 (! (and @p_478 @p_479) :named @p_481)) :named @p_480)) :rule cong :premises (t130.t17 t130.t20))
-(step t130.t22 (cl (not @p_480) (not @p_469) @p_481) :rule equiv_pos2)
-(step t130.t23 (cl @p_481) :rule th_resolution :premises (t130.t15 t130.t21 t130.t22))
-(anchor :step t130.t24 :args ((:= (veriT_vr108 V_list_v_result$) veriT_sk11)))
-(step t130.t24.t1 (cl (= veriT_vr108 veriT_sk11)) :rule refl)
-(step t130.t24.t2 (cl (= @p_471 (! (pair$ st$ veriT_sk11) :named @p_484))) :rule cong :premises (t130.t24.t1))
-(step t130.t24.t3 (cl (= @p_470 (! (= @p_438 @p_484) :named @p_482))) :rule cong :premises (t130.t24.t2))
-(step t130.t24 (cl (= @p_472 @p_482)) :rule sko_ex)
-(step t130.t25 (cl (= @p_478 (! (=> @p_439 @p_482) :named @p_485))) :rule cong :premises (t130.t24))
-(step t130.t26 (cl (! (= @p_481 (! (and @p_485 @p_479) :named @p_487)) :named @p_486)) :rule cong :premises (t130.t25))
-(step t130.t27 (cl (not @p_486) (not @p_481) @p_487) :rule equiv_pos2)
-(step t130.t28 (cl @p_487) :rule th_resolution :premises (t130.t23 t130.t26 t130.t27))
-(anchor :step t130.t29 :args ((:= (veriT_vr109 V_list_v_result$) veriT_vr110)))
-(step t130.t29.t1 (cl (= veriT_vr109 veriT_vr110)) :rule refl)
-(step t130.t29.t2 (cl (= @p_473 (! (pair$ st$ veriT_vr110) :named @p_489))) :rule cong :premises (t130.t29.t1))
-(step t130.t29.t3 (cl (= @p_474 (! (= @p_438 @p_489) :named @p_490))) :rule cong :premises (t130.t29.t2))
-(step t130.t29.t4 (cl (= @p_475 (! (not @p_490) :named @p_491))) :rule cong :premises (t130.t29.t3))
-(step t130.t29 (cl (= @p_476 (! (forall ((veriT_vr110 V_list_v_result$)) @p_491) :named @p_488))) :rule bind)
-(step t130.t30 (cl (= @p_477 (! (not @p_488) :named @p_492))) :rule cong :premises (t130.t29))
-(step t130.t31 (cl (= @p_479 (! (=> @p_492 @p_439) :named @p_493))) :rule cong :premises (t130.t30))
-(step t130.t32 (cl (! (= @p_487 (! (and @p_485 @p_493) :named @p_494)) :named @p_495)) :rule cong :premises (t130.t31))
-(step t130.t33 (cl (not @p_495) (not @p_487) @p_494) :rule equiv_pos2)
-(step t130.t34 (cl @p_494) :rule th_resolution :premises (t130.t28 t130.t32 t130.t33))
-(step t130 (cl @p_460 @p_494) :rule subproof :discharge (h1))
-(step t131 (cl @p_399 @p_440) :rule or :premises (t129))
-(step t132 (cl (! (or @p_399 @p_494) :named @p_496) @p_436) :rule or_neg)
-(step t133 (cl @p_496 @p_136) :rule th_resolution :premises (t121 t132))
-(step t134 (cl @p_496 (! (not @p_494) :named @p_503)) :rule or_neg)
-(step t135 (cl @p_496) :rule th_resolution :premises (t131 t130 t133 t134))
-(step t136 (cl @p_497 @p_498) :rule or :premises (t108))
-(step t137 (cl @p_498) :rule resolution :premises (t136 t82))
-(step t138 (cl @p_389 (! (not @p_381) :named @p_499) (! (not @p_385) :named @p_500)) :rule and_neg)
-(step t139 (cl (not @p_499) @p_384) :rule not_not)
-(step t140 (cl @p_389 @p_384 @p_500) :rule th_resolution :premises (t139 t138))
-(step t141 (cl (not @p_500) @p_388) :rule not_not)
-(step t142 (cl @p_389 @p_384 @p_388) :rule th_resolution :premises (t141 t140))
-(step t143 (cl @p_395 @p_390) :rule or :premises (t120))
-(step t144 (cl @p_390) :rule resolution :premises (t143 t58))
-(step t145 (cl @p_399 @p_432) :rule or :premises (t128))
-(step t146 (cl @p_432) :rule resolution :premises (t145 t49))
-(step t147 (cl (! (not @p_493) :named @p_502) (! (not @p_492) :named @p_501) @p_439) :rule implies_pos)
-(step t148 (cl (not @p_501) @p_488) :rule not_not)
-(step t149 (cl @p_502 @p_488 @p_439) :rule th_resolution :premises (t148 t147))
-(step t150 (cl @p_503 @p_493) :rule and_pos)
-(step t151 (cl @p_399 @p_494) :rule or :premises (t135))
-(step t152 (cl @p_494) :rule resolution :premises (t151 t49))
-(step t153 (cl @p_493) :rule resolution :premises (t150 t152))
-(step t154 (cl (or (! (not @p_325) :named @p_508) (! (=> (! (and @p_327 @p_384) :named @p_505) (! (less_eq$ (! (clock$ (! (fst$ (! (fun_app$ (fun_evaluate_match$ st$ env$ veriT_sk0 pes$) veriT_sk0) :named @p_526)) :named @p_566)) :named @p_567) @p_286) :named @p_507)) :named @p_506))) :rule forall_inst :args ((:= veriT_vr61 x2$) (:= veriT_vr62 veriT_sk0)))
-(step t155 (cl (or @p_497 (! (= (! (fix_clock$ st$a @p_434) :named @p_539) (! (pair$ @p_504 veriT_sk3) :named @p_652)) :named @p_509))) :rule forall_inst :args ((:= veriT_vr56 st$a) (:= veriT_vr57 @p_346) (:= veriT_vr58 veriT_sk3)))
-(step t156 (cl (or (! (not @p_257) :named @p_512) (! (=> @p_498 (! (less_eq$ (! (clock$ @p_504) :named @p_518) @p_339) :named @p_511)) :named @p_510))) :rule forall_inst :args ((:= veriT_vr49 st$a) (:= veriT_vr50 @p_346) (:= veriT_vr51 r$) (:= veriT_vr52 @p_504)))
-(step t157 (cl (or (! (not @p_202) :named @p_514) (! (= (! (case_error_result$ uua$ uub$ @p_383) :named @p_569) (! (fun_app$ uua$ veriT_sk0) :named @p_527)) :named @p_515))) :rule forall_inst :args ((:= veriT_vr36 uua$) (:= veriT_vr37 uub$) (:= veriT_vr38 veriT_sk0)))
-(step t158 (cl @p_505 (! (not @p_327) :named @p_561) @p_381) :rule and_neg)
-(step t159 (cl (not @p_506) (not @p_505) @p_507) :rule implies_pos)
-(step t160 (cl @p_508 @p_506) :rule or :premises (t154))
-(step t161 (cl @p_505 @p_381) :rule resolution :premises (t158 t94))
-(step t162 (cl @p_506) :rule resolution :premises (t160 t88))
-(step t163 (cl @p_497 @p_509) :rule or :premises (t155))
-(step t164 (cl @p_509) :rule resolution :premises (t163 t82))
-(step t165 (cl (! (not @p_510) :named @p_513) (not @p_498) @p_511) :rule implies_pos)
-(step t166 (cl @p_512 @p_510) :rule or :premises (t156))
-(step t167 (cl @p_513 @p_511) :rule resolution :premises (t165 t137))
-(step t168 (cl @p_510) :rule resolution :premises (t166 t76))
-(step t169 (cl @p_511) :rule resolution :premises (t167 t168))
-(step t170 (cl @p_514 @p_515) :rule or :premises (t157))
-(step t171 (cl @p_515) :rule resolution :premises (t170 t64))
-(step t172 (cl @p_336 @p_516) :rule or :premises (t96))
-(step t173 (cl (or (! (not @p_516) :named @p_519) (! (or @p_517 (! (not @p_511) :named @p_524) (! (less_eq$ @p_518 @p_4) :named @p_525)) :named @p_520))) :rule forall_inst :args ((:= veriT_vr13 @p_339) (:= veriT_vr14 @p_4) (:= veriT_vr15 @p_518)))
-(step t174 (cl @p_519 @p_520) :rule or :premises (t173))
-(step t175 (cl (! (or @p_336 @p_520) :named @p_522) @p_521) :rule or_neg)
-(step t176 (cl @p_522 @p_71) :rule th_resolution :premises (t107 t175))
-(step t177 (cl @p_522 (! (not @p_520) :named @p_523)) :rule or_neg)
-(step t178 (cl @p_522) :rule th_resolution :premises (t172 t174 t176 t177))
-(step t179 (cl @p_523 @p_517 @p_524 @p_525) :rule or_pos)
-(step t180 (cl @p_336 @p_520) :rule or :premises (t178))
-(step t181 (cl @p_523 @p_525) :rule resolution :premises (t179 a4 t169))
-(step t182 (cl @p_520) :rule resolution :premises (t180 t31))
-(step t183 (cl @p_525) :rule resolution :premises (t181 t182))
-(step t184 (cl (or (! (not @p_223) :named @p_528) (! (= (! (case_error_result$ uua$ uub$ @p_387) :named @p_548) (! (fun_app$a uub$ veriT_sk1) :named @p_542)) :named @p_529))) :rule forall_inst :args ((:= veriT_vr42 uua$) (:= veriT_vr43 uub$) (:= veriT_vr44 veriT_sk1)))
-(step t185 (cl (or @p_336 (! (=> (! (and @p_525 (! (less_eq$ @p_338 @p_518) :named @p_531)) :named @p_530) @p_328) :named @p_532))) :rule forall_inst :args ((:= veriT_vr13 @p_518) (:= veriT_vr14 @p_4) (:= veriT_vr15 @p_338)))
-(step t186 (cl (or (! (not @p_23) :named @p_536) (! (= @p_526 @p_527) :named @p_537))) :rule forall_inst :args ((:= veriT_vr1 veriT_sk0)))
-(step t187 (cl @p_528 @p_529) :rule or :premises (t184))
-(step t188 (cl @p_529) :rule resolution :premises (t187 t70))
-(step t189 (cl @p_530 (not @p_525) (! (not @p_531) :named @p_533)) :rule and_neg)
-(step t190 (cl (! (not @p_532) :named @p_534) (! (not @p_530) :named @p_535) @p_328) :rule implies_pos)
-(step t191 (cl @p_336 @p_532) :rule or :premises (t185))
-(step t192 (cl @p_530 @p_533) :rule resolution :premises (t189 t183))
-(step t193 (cl @p_534 @p_535) :rule resolution :premises (t190 t95))
-(step t194 (cl @p_532) :rule resolution :premises (t191 t31))
-(step t195 (cl @p_535) :rule resolution :premises (t193 t194))
-(step t196 (cl @p_533) :rule resolution :premises (t192 t195))
-(step t197 (cl @p_536 @p_537) :rule or :premises (t186))
-(step t198 (cl @p_537) :rule resolution :premises (t197 t19))
-(step t199 (cl (not (! (= st$a st$a) :named @p_540)) @p_538 (! (= @p_438 @p_539) :named @p_541)) :rule eq_congruent)
-(step t200 (cl @p_540) :rule eq_reflexive)
-(step t201 (cl @p_538 @p_541) :rule th_resolution :premises (t199 t200))
-(step t202 (cl (or (! (not @p_45) :named @p_543) (! (= @p_542 (! (pair$ st$ (! (rerr$ @p_387) :named @p_557)) :named @p_546)) :named @p_544))) :rule forall_inst :args ((:= veriT_vr3 veriT_sk1)))
-(step t203 (cl @p_543 @p_544) :rule or :premises (t202))
-(step t204 (cl @p_544) :rule resolution :premises (t203 t25))
-(step t205 (cl (! (not (! (= @p_545 @p_546) :named @p_558)) :named @p_553) (! (not @p_544) :named @p_554) (! (not @p_529) :named @p_555) (not (! (= @p_547 @p_548) :named @p_549)) (! (= @p_545 @p_547) :named @p_556)) :rule eq_transitive)
-(step t206 (cl (! (not (! (= uua$ uua$) :named @p_550)) :named @p_571) (! (not (! (= uub$ uub$) :named @p_552)) :named @p_551) @p_385 @p_549) :rule eq_congruent)
-(step t207 (cl @p_550) :rule eq_reflexive)
-(step t208 (cl @p_551 @p_385 @p_549) :rule th_resolution :premises (t206 t207))
-(step t209 (cl @p_552) :rule eq_reflexive)
-(step t210 (cl @p_385 @p_549) :rule th_resolution :premises (t208 t209))
-(step t211 (cl @p_553 @p_554 @p_555 @p_556 @p_385) :rule th_resolution :premises (t205 t210))
-(step t212 (cl (not (! (= st$ st$) :named @p_559)) (! (not (! (= r$ @p_557) :named @p_563)) :named @p_560) @p_558) :rule eq_congruent)
-(step t213 (cl @p_559) :rule eq_reflexive)
-(step t214 (cl @p_560 @p_558) :rule th_resolution :premises (t212 t213))
-(step t215 (cl @p_561 (not (! (= @p_562 @p_557) :named @p_564)) @p_563) :rule eq_transitive)
-(step t216 (cl @p_385 @p_564) :rule eq_congruent)
-(step t217 (cl @p_561 @p_563 @p_385) :rule th_resolution :premises (t215 t216))
-(step t218 (cl @p_558 @p_561 @p_385) :rule th_resolution :premises (t214 t217))
-(step t219 (cl @p_554 @p_555 @p_556 @p_385 @p_561 @p_385) :rule th_resolution :premises (t211 t218))
-(step t220 (cl @p_554 @p_555 @p_556 @p_385 @p_561) :rule contraction :premises (t219))
-(step t221 (cl @p_556 @p_385) :rule resolution :premises (t220 t94 t188 t204))
-(step t222 (cl (not (! (= @p_565 @p_566) :named @p_568)) (! (= @p_338 @p_567) :named @p_575)) :rule eq_congruent)
-(step t223 (cl (not (! (= @p_547 @p_526) :named @p_570)) @p_568) :rule eq_congruent)
-(step t224 (cl (not (! (= @p_547 @p_569) :named @p_572)) (! (not @p_515) :named @p_573) (! (not @p_537) :named @p_574) @p_570) :rule eq_transitive)
-(step t225 (cl @p_571 @p_551 @p_381 @p_572) :rule eq_congruent)
-(step t226 (cl @p_551 @p_381 @p_572) :rule th_resolution :premises (t225 t207))
-(step t227 (cl @p_381 @p_572) :rule th_resolution :premises (t226 t209))
-(step t228 (cl @p_573 @p_574 @p_570 @p_381) :rule th_resolution :premises (t224 t227))
-(step t229 (cl @p_568 @p_573 @p_574 @p_381) :rule th_resolution :premises (t223 t228))
-(step t230 (cl @p_575 @p_573 @p_574 @p_381) :rule th_resolution :premises (t222 t229))
-(step t231 (cl (or @p_492 (! (not @p_576) :named @p_578))) :rule forall_inst :args ((:= veriT_vr110 r$)))
-(step t232 (cl @p_399 @p_577) :rule or :premises (t97))
-(step t233 (cl @p_492 @p_578) :rule or :premises (t231))
-(step t234 (cl @p_492) :rule resolution :premises (t233 a3))
-(step t235 (cl @p_439) :rule resolution :premises (t149 t234 t153))
-(step t236 (cl (or @p_497 (! (= (! (pair$ @p_504 @p_557) :named @p_647) (! (fix_clock$ st$a (pair$ @p_346 @p_557)) :named @p_580)) :named @p_579))) :rule forall_inst :args ((:= veriT_vr56 st$a) (:= veriT_vr57 @p_346) (:= veriT_vr58 @p_557)))
-(step t237 (cl @p_497 @p_579) :rule or :premises (t236))
-(step t238 (cl @p_579) :rule resolution :premises (t237 t82))
-(step t239 (cl (or @p_512 (! (=> (! (= (! (pair$ @p_565 @p_557) :named @p_646) @p_580) :named @p_582) @p_341) :named @p_581))) :rule forall_inst :args ((:= veriT_vr49 st$a) (:= veriT_vr50 @p_346) (:= veriT_vr51 @p_557) (:= veriT_vr52 @p_565)))
-(step t240 (cl (! (not @p_581) :named @p_583) (! (not @p_582) :named @p_584) @p_341) :rule implies_pos)
-(step t241 (cl @p_512 @p_581) :rule or :premises (t239))
-(step t242 (cl @p_583 @p_584) :rule resolution :premises (t240 t106))
-(step t243 (cl @p_581) :rule resolution :premises (t241 t76))
-(step t244 (cl @p_584) :rule resolution :premises (t242 t243))
-(step t245 (cl (or @p_399 (! (and (! (=> (! (= @p_565 @p_504) :named @p_585) (! (exists ((veriT_vr25 V_list_v_result$)) (! (= @p_547 (! (pair$ @p_504 veriT_vr25) :named @p_588)) :named @p_590)) :named @p_587)) :named @p_592) (! (=> (! (not (! (forall ((veriT_vr26 V_list_v_result$)) (! (not (! (= @p_547 (! (pair$ @p_504 veriT_vr26) :named @p_595)) :named @p_596)) :named @p_597)) :named @p_594)) :named @p_599) @p_585) :named @p_601)) :named @p_586))) :rule forall_inst :args ((:= veriT_vr23 @p_504) (:= veriT_vr24 @p_547)))
-(anchor :step t246)
-(assume t246.h1 @p_586)
-(anchor :step t246.t2 :args ((:= (veriT_vr25 V_list_v_result$) veriT_vr3120)))
-(step t246.t2.t1 (cl (= veriT_vr25 veriT_vr3120)) :rule refl)
-(step t246.t2.t2 (cl (= @p_588 (! (pair$ @p_504 veriT_vr3120) :named @p_589))) :rule cong :premises (t246.t2.t1))
-(step t246.t2.t3 (cl (= @p_590 (! (= @p_547 @p_589) :named @p_591))) :rule cong :premises (t246.t2.t2))
-(step t246.t2 (cl (= @p_587 (! (exists ((veriT_vr3120 V_list_v_result$)) @p_591) :named @p_593))) :rule bind)
-(step t246.t3 (cl (= @p_592 (! (=> @p_585 @p_593) :named @p_603))) :rule cong :premises (t246.t2))
-(anchor :step t246.t4 :args ((:= (veriT_vr26 V_list_v_result$) veriT_vr3120)))
-(step t246.t4.t1 (cl (= veriT_vr26 veriT_vr3120)) :rule refl)
-(step t246.t4.t2 (cl (= @p_595 @p_589)) :rule cong :premises (t246.t4.t1))
-(step t246.t4.t3 (cl (= @p_596 @p_591)) :rule cong :premises (t246.t4.t2))
-(step t246.t4.t4 (cl (= @p_597 (! (not @p_591) :named @p_598))) :rule cong :premises (t246.t4.t3))
-(step t246.t4 (cl (= @p_594 (! (forall ((veriT_vr3120 V_list_v_result$)) @p_598) :named @p_600))) :rule bind)
-(step t246.t5 (cl (= @p_599 (! (not @p_600) :named @p_602))) :rule cong :premises (t246.t4))
-(step t246.t6 (cl (= @p_601 (! (=> @p_602 @p_585) :named @p_604))) :rule cong :premises (t246.t5))
-(step t246.t7 (cl (! (= @p_586 (! (and @p_603 @p_604) :named @p_607)) :named @p_605)) :rule cong :premises (t246.t3 t246.t6))
-(step t246.t8 (cl (not @p_605) (! (not @p_586) :named @p_606) @p_607) :rule equiv_pos2)
-(step t246.t9 (cl @p_607) :rule th_resolution :premises (t246.h1 t246.t7 t246.t8))
-(anchor :step t246.t10 :args ((:= (veriT_vr3120 V_list_v_result$) veriT_vr3121)))
-(step t246.t10.t1 (cl (= veriT_vr3120 veriT_vr3121)) :rule refl)
-(step t246.t10.t2 (cl (= @p_589 (! (pair$ @p_504 veriT_vr3121) :named @p_608))) :rule cong :premises (t246.t10.t1))
-(step t246.t10.t3 (cl (= @p_591 (! (= @p_547 @p_608) :named @p_609))) :rule cong :premises (t246.t10.t2))
-(step t246.t10.t4 (cl (= @p_598 (! (not @p_609) :named @p_610))) :rule cong :premises (t246.t10.t3))
-(step t246.t10 (cl (= @p_600 (! (forall ((veriT_vr3121 V_list_v_result$)) @p_610) :named @p_611))) :rule bind)
-(step t246.t11 (cl (= @p_602 (! (not @p_611) :named @p_612))) :rule cong :premises (t246.t10))
-(step t246.t12 (cl (= @p_604 (! (=> @p_612 @p_585) :named @p_613))) :rule cong :premises (t246.t11))
-(step t246.t13 (cl (! (= @p_607 (! (and @p_603 @p_613) :named @p_615)) :named @p_614)) :rule cong :premises (t246.t12))
-(step t246.t14 (cl (not @p_614) (not @p_607) @p_615) :rule equiv_pos2)
-(step t246.t15 (cl @p_615) :rule th_resolution :premises (t246.t9 t246.t13 t246.t14))
-(anchor :step t246.t16 :args ((:= (veriT_vr3120 V_list_v_result$) veriT_vr3122)))
-(step t246.t16.t1 (cl (= veriT_vr3120 veriT_vr3122)) :rule refl)
-(step t246.t16.t2 (cl (= @p_589 @p_617)) :rule cong :premises (t246.t16.t1))
-(step t246.t16.t3 (cl (= @p_591 @p_616)) :rule cong :premises (t246.t16.t2))
-(step t246.t16 (cl (= @p_593 (! (exists ((veriT_vr3122 V_list_v_result$)) @p_616) :named @p_618))) :rule bind)
-(step t246.t17 (cl (= @p_603 (! (=> @p_585 @p_618) :named @p_624))) :rule cong :premises (t246.t16))
-(anchor :step t246.t18 :args ((:= (veriT_vr3121 V_list_v_result$) veriT_vr3123)))
-(step t246.t18.t1 (cl (= veriT_vr3121 veriT_vr3123)) :rule refl)
-(step t246.t18.t2 (cl (= @p_608 (! (pair$ @p_504 veriT_vr3123) :named @p_619))) :rule cong :premises (t246.t18.t1))
-(step t246.t18.t3 (cl (= @p_609 (! (= @p_547 @p_619) :named @p_620))) :rule cong :premises (t246.t18.t2))
-(step t246.t18.t4 (cl (= @p_610 (! (not @p_620) :named @p_621))) :rule cong :premises (t246.t18.t3))
-(step t246.t18 (cl (= @p_611 (! (forall ((veriT_vr3123 V_list_v_result$)) @p_621) :named @p_622))) :rule bind)
-(step t246.t19 (cl (= @p_612 (! (not @p_622) :named @p_623))) :rule cong :premises (t246.t18))
-(step t246.t20 (cl (= @p_613 (! (=> @p_623 @p_585) :named @p_625))) :rule cong :premises (t246.t19))
-(step t246.t21 (cl (! (= @p_615 (! (and @p_624 @p_625) :named @p_627)) :named @p_626)) :rule cong :premises (t246.t17 t246.t20))
-(step t246.t22 (cl (not @p_626) (not @p_615) @p_627) :rule equiv_pos2)
-(step t246.t23 (cl @p_627) :rule th_resolution :premises (t246.t15 t246.t21 t246.t22))
-(anchor :step t246.t24 :args ((:= (veriT_vr3122 V_list_v_result$) veriT_sk615)))
-(step t246.t24.t1 (cl (= veriT_vr3122 veriT_sk615)) :rule refl)
-(step t246.t24.t2 (cl (= @p_617 (! (pair$ @p_504 veriT_sk615) :named @p_630))) :rule cong :premises (t246.t24.t1))
-(step t246.t24.t3 (cl (= @p_616 (! (= @p_547 @p_630) :named @p_628))) :rule cong :premises (t246.t24.t2))
-(step t246.t24 (cl (= @p_618 @p_628)) :rule sko_ex)
-(step t246.t25 (cl (= @p_624 (! (=> @p_585 @p_628) :named @p_631))) :rule cong :premises (t246.t24))
-(step t246.t26 (cl (! (= @p_627 (! (and @p_631 @p_625) :named @p_633)) :named @p_632)) :rule cong :premises (t246.t25))
-(step t246.t27 (cl (not @p_632) (not @p_627) @p_633) :rule equiv_pos2)
-(step t246.t28 (cl @p_633) :rule th_resolution :premises (t246.t23 t246.t26 t246.t27))
-(anchor :step t246.t29 :args ((:= (veriT_vr3123 V_list_v_result$) veriT_vr3124)))
-(step t246.t29.t1 (cl (= veriT_vr3123 veriT_vr3124)) :rule refl)
-(step t246.t29.t2 (cl (= @p_619 (! (pair$ @p_504 veriT_vr3124) :named @p_635))) :rule cong :premises (t246.t29.t1))
-(step t246.t29.t3 (cl (= @p_620 (! (= @p_547 @p_635) :named @p_636))) :rule cong :premises (t246.t29.t2))
-(step t246.t29.t4 (cl (= @p_621 (! (not @p_636) :named @p_637))) :rule cong :premises (t246.t29.t3))
-(step t246.t29 (cl (= @p_622 (! (forall ((veriT_vr3124 V_list_v_result$)) @p_637) :named @p_634))) :rule bind)
-(step t246.t30 (cl (= @p_623 (! (not @p_634) :named @p_638))) :rule cong :premises (t246.t29))
-(step t246.t31 (cl (= @p_625 (! (=> @p_638 @p_585) :named @p_639))) :rule cong :premises (t246.t30))
-(step t246.t32 (cl (! (= @p_633 (! (and @p_631 @p_639) :named @p_640)) :named @p_641)) :rule cong :premises (t246.t31))
-(step t246.t33 (cl (not @p_641) (not @p_633) @p_640) :rule equiv_pos2)
-(step t246.t34 (cl @p_640) :rule th_resolution :premises (t246.t28 t246.t32 t246.t33))
-(step t246 (cl @p_606 @p_640) :rule subproof :discharge (h1))
-(step t247 (cl @p_399 @p_586) :rule or :premises (t245))
-(step t248 (cl (! (or @p_399 @p_640) :named @p_642) @p_436) :rule or_neg)
-(step t249 (cl @p_642 @p_136) :rule th_resolution :premises (t121 t248))
-(step t250 (cl @p_642 (! (not @p_640) :named @p_645)) :rule or_neg)
-(step t251 (cl @p_642) :rule th_resolution :premises (t247 t246 t249 t250))
-(step t252 (cl (! (not @p_639) :named @p_644) (! (not @p_638) :named @p_643) @p_585) :rule implies_pos)
-(step t253 (cl (not @p_643) @p_634) :rule not_not)
-(step t254 (cl @p_644 @p_634 @p_585) :rule th_resolution :premises (t253 t252))
-(step t255 (cl @p_645 @p_639) :rule and_pos)
-(step t256 (cl @p_399 @p_640) :rule or :premises (t251))
-(step t257 (cl @p_640) :rule resolution :premises (t256 t49))
-(step t258 (cl @p_639) :rule resolution :premises (t255 t257))
-(step t259 (cl (! (= @p_557 @p_557) :named @p_648)) :rule eq_reflexive)
-(step t260 (cl (not (! (= @p_646 @p_647) :named @p_649)) (! (not @p_579) :named @p_651) @p_582) :rule eq_transitive)
-(step t261 (cl (! (not @p_585) :named @p_650) (not @p_648) @p_649) :rule eq_congruent)
-(step t262 (cl @p_650 @p_649) :rule th_resolution :premises (t261 t259))
-(step t263 (cl @p_651 @p_582 @p_650) :rule th_resolution :premises (t260 t262))
-(step t264 (cl @p_650) :rule resolution :premises (t263 t238 t244))
-(step t265 (cl @p_634) :rule resolution :premises (t254 t264 t258))
-(step t266 (cl (or @p_638 (! (not (! (= @p_547 @p_652) :named @p_671)) :named @p_665))) :rule forall_inst :args ((:= veriT_vr3124 veriT_sk3)))
-(step t267 (cl (or (! (not @p_577) :named @p_653) (! (or (! (not (! (= @p_652 @p_652) :named @p_658)) :named @p_659) (! (= @p_504 (! (fst$ @p_652) :named @p_675)) :named @p_657)) :named @p_654))) :rule forall_inst :args ((:= veriT_vr23 @p_504) (:= veriT_vr24 @p_652) (:= veriT_vr26 veriT_sk3)))
-(step t268 (cl @p_653 @p_654) :rule or :premises (t267))
-(step t269 (cl (! (or @p_399 @p_654) :named @p_655) @p_436) :rule or_neg)
-(step t270 (cl @p_655 @p_136) :rule th_resolution :premises (t121 t269))
-(step t271 (cl @p_655 (! (not @p_654) :named @p_656)) :rule or_neg)
-(step t272 (cl @p_655) :rule th_resolution :premises (t232 t268 t270 t271))
-(anchor :step t273)
-(assume t273.h1 @p_654)
-(step t273.t2 (cl (= @p_658 true)) :rule eq_simplify)
-(step t273.t3 (cl (= @p_659 (! (not true) :named @p_660))) :rule cong :premises (t273.t2))
-(step t273.t4 (cl (= @p_660 false)) :rule not_simplify)
-(step t273.t5 (cl (= @p_659 false)) :rule trans :premises (t273.t3 t273.t4))
-(step t273.t6 (cl (= @p_654 (! (or false @p_657) :named @p_661))) :rule cong :premises (t273.t5))
-(step t273.t7 (cl (= @p_661 (! (or @p_657) :named @p_662))) :rule or_simplify)
-(step t273.t8 (cl (= @p_662 @p_657)) :rule or_simplify)
-(step t273.t9 (cl (! (= @p_654 @p_657) :named @p_663)) :rule trans :premises (t273.t6 t273.t7 t273.t8))
-(step t273.t10 (cl (not @p_663) @p_656 @p_657) :rule equiv_pos2)
-(step t273.t11 (cl @p_657) :rule th_resolution :premises (t273.h1 t273.t9 t273.t10))
-(step t273 (cl @p_656 @p_657) :rule subproof :discharge (h1))
-(step t274 (cl @p_399 @p_654) :rule or :premises (t272))
-(step t275 (cl (! (or @p_399 @p_657) :named @p_664) @p_436) :rule or_neg)
-(step t276 (cl @p_664 @p_136) :rule th_resolution :premises (t121 t275))
-(step t277 (cl @p_664 (! (not @p_657) :named @p_677)) :rule or_neg)
-(step t278 (cl @p_664) :rule th_resolution :premises (t274 t273 t276 t277))
-(step t279 (cl @p_638 @p_665) :rule or :premises (t266))
-(step t280 (cl @p_665) :rule resolution :premises (t279 t265))
-(step t281 (cl @p_399 @p_657) :rule or :premises (t278))
-(step t282 (cl @p_657) :rule resolution :premises (t281 t49))
-(step t283 (cl (! (not @p_541) :named @p_668) (! (not @p_509) :named @p_666) (! (= @p_438 @p_652) :named @p_667)) :rule eq_transitive)
-(step t284 (cl @p_666 @p_667 @p_538) :rule th_resolution :premises (t283 t201))
-(step t285 (cl @p_578 @p_668 @p_666 (! (= @p_545 @p_652) :named @p_669)) :rule eq_transitive)
-(step t286 (cl @p_578 @p_666 @p_669 @p_538) :rule th_resolution :premises (t285 t201))
-(step t287 (cl (! (= @p_547 @p_547) :named @p_670)) :rule eq_reflexive)
-(step t288 (cl (not @p_669) (! (not @p_556) :named @p_672) (! (not @p_670) :named @p_673) @p_671) :rule eq_transitive)
-(step t289 (cl @p_672 @p_673 @p_671 @p_578 @p_666 @p_538) :rule th_resolution :premises (t288 t286))
-(step t290 (cl @p_672 @p_671 @p_578 @p_666 @p_538) :rule th_resolution :premises (t289 t287))
-(step t291 (cl @p_672) :rule resolution :premises (t290 a3 t146 t164 t280))
-(step t292 (cl (not @p_667) (! (= @p_674 @p_675) :named @p_676)) :rule eq_congruent)
-(step t293 (cl @p_676 @p_666 @p_538) :rule th_resolution :premises (t292 t284))
-(step t294 (cl (! (not @p_439) :named @p_678) (not @p_676) @p_677 (! (= st$ @p_504) :named @p_679)) :rule eq_transitive)
-(step t295 (cl @p_678 @p_677 @p_679 @p_666 @p_538) :rule th_resolution :premises (t294 t293))
-(step t296 (cl (not @p_679) (! (= @p_286 @p_518) :named @p_680)) :rule eq_congruent)
-(step t297 (cl @p_680 @p_678 @p_677 @p_666 @p_538) :rule th_resolution :premises (t296 t295))
-(step t298 (cl @p_385) :rule resolution :premises (t221 t291))
-(step t299 (cl @p_384) :rule resolution :premises (t142 t298 t144))
-(step t300 (cl @p_505) :rule resolution :premises (t161 t299))
-(step t301 (cl @p_507) :rule resolution :premises (t159 t300 t162))
-(step t302 (cl (not @p_575) (! (not @p_680) :named @p_681) (! (not @p_507) :named @p_682) @p_531) :rule eq_congruent_pred)
-(step t303 (cl @p_681 @p_682 @p_531 @p_573 @p_574 @p_381) :rule th_resolution :premises (t302 t230))
-(step t304 (cl @p_682 @p_531 @p_573 @p_574 @p_381 @p_678 @p_677 @p_666 @p_538) :rule th_resolution :premises (t303 t297))
-(step t305 (cl) :rule resolution :premises (t304 t299 t146 t235 t301 t164 t171 t196 t198 t282))
+(assume t130.h1 @p_433)
+(anchor :step t130.t2 :args ((:= (veriT_vr25 V_list_v_result$) veriT_vr72)))
+(step t130.t2.t1 (cl (= veriT_vr25 veriT_vr72)) :rule refl)
+(step t130.t2.t2 (cl (= @p_435 (! (pair$ @p_378 veriT_vr72) :named @p_436))) :rule cong :premises (t130.t2.t1))
+(step t130.t2.t3 (cl (= @p_437 (! (= @p_3 @p_436) :named @p_438))) :rule cong :premises (t130.t2.t2))
+(step t130.t2 (cl (= @p_434 (! (exists ((veriT_vr72 V_list_v_result$)) @p_438) :named @p_440))) :rule bind)
+(step t130.t3 (cl (= @p_439 (! (=> @p_432 @p_440) :named @p_450))) :rule cong :premises (t130.t2))
+(anchor :step t130.t4 :args ((:= (veriT_vr26 V_list_v_result$) veriT_vr72)))
+(step t130.t4.t1 (cl (= veriT_vr26 veriT_vr72)) :rule refl)
+(step t130.t4.t2 (cl (= @p_442 @p_436)) :rule cong :premises (t130.t4.t1))
+(step t130.t4.t3 (cl (= @p_443 @p_438)) :rule cong :premises (t130.t4.t2))
+(step t130.t4.t4 (cl (= @p_444 (! (not @p_438) :named @p_445))) :rule cong :premises (t130.t4.t3))
+(step t130.t4 (cl (= @p_441 (! (forall ((veriT_vr72 V_list_v_result$)) @p_445) :named @p_447))) :rule bind)
+(step t130.t5 (cl (= @p_446 (! (not @p_447) :named @p_449))) :rule cong :premises (t130.t4))
+(step t130.t6 (cl (= @p_448 (! (=> @p_449 @p_432) :named @p_451))) :rule cong :premises (t130.t5))
+(step t130.t7 (cl (! (= @p_433 (! (and @p_450 @p_451) :named @p_454)) :named @p_452)) :rule cong :premises (t130.t3 t130.t6))
+(step t130.t8 (cl (not @p_452) (! (not @p_433) :named @p_453) @p_454) :rule equiv_pos2)
+(step t130.t9 (cl @p_454) :rule th_resolution :premises (t130.h1 t130.t7 t130.t8))
+(step t130.t10 (cl (= @p_432 true)) :rule eq_simplify)
+(step t130.t11 (cl (= @p_450 (! (=> true @p_440) :named @p_455))) :rule cong :premises (t130.t10))
+(step t130.t12 (cl (= @p_455 @p_440)) :rule implies_simplify)
+(step t130.t13 (cl (= @p_450 @p_440)) :rule trans :premises (t130.t11 t130.t12))
+(step t130.t14 (cl (= @p_451 (! (=> @p_449 true) :named @p_456))) :rule cong :premises (t130.t10))
+(step t130.t15 (cl (= @p_456 true)) :rule implies_simplify)
+(step t130.t16 (cl (= @p_451 true)) :rule trans :premises (t130.t14 t130.t15))
+(step t130.t17 (cl (= @p_454 (! (and @p_440 true) :named @p_457))) :rule cong :premises (t130.t13 t130.t16))
+(step t130.t18 (cl (= @p_457 (! (and @p_440) :named @p_458))) :rule and_simplify)
+(step t130.t19 (cl (= @p_458 @p_440)) :rule and_simplify)
+(step t130.t20 (cl (! (= @p_454 @p_440) :named @p_459)) :rule trans :premises (t130.t17 t130.t18 t130.t19))
+(step t130.t21 (cl (not @p_459) (not @p_454) @p_440) :rule equiv_pos2)
+(step t130.t22 (cl @p_440) :rule th_resolution :premises (t130.t9 t130.t20 t130.t21))
+(anchor :step t130.t23 :args ((:= (veriT_vr72 V_list_v_result$) veriT_vr73)))
+(step t130.t23.t1 (cl (= veriT_vr72 veriT_vr73)) :rule refl)
+(step t130.t23.t2 (cl (= @p_436 @p_461)) :rule cong :premises (t130.t23.t1))
+(step t130.t23.t3 (cl (= @p_438 @p_460)) :rule cong :premises (t130.t23.t2))
+(step t130.t23 (cl (! (= @p_440 (! (exists ((veriT_vr73 V_list_v_result$)) @p_460) :named @p_463)) :named @p_462)) :rule bind)
+(step t130.t24 (cl (not @p_462) (not @p_440) @p_463) :rule equiv_pos2)
+(step t130.t25 (cl @p_463) :rule th_resolution :premises (t130.t22 t130.t23 t130.t24))
+(anchor :step t130.t26 :args ((:= (veriT_vr73 V_list_v_result$) veriT_sk3)))
+(step t130.t26.t1 (cl (= veriT_vr73 veriT_sk3)) :rule refl)
+(step t130.t26.t2 (cl (= @p_461 (! (pair$ @p_378 veriT_sk3) :named @p_466))) :rule cong :premises (t130.t26.t1))
+(step t130.t26.t3 (cl (= @p_460 (! (= @p_3 @p_466) :named @p_464))) :rule cong :premises (t130.t26.t2))
+(step t130.t26 (cl (! (= @p_463 @p_464) :named @p_467)) :rule sko_ex)
+(step t130.t27 (cl (not @p_467) (not @p_463) @p_464) :rule equiv_pos2)
+(step t130.t28 (cl @p_464) :rule th_resolution :premises (t130.t25 t130.t26 t130.t27))
+(step t130 (cl @p_453 @p_464) :rule subproof :discharge (h1))
+(step t131 (cl @p_431 @p_433) :rule or :premises (t129))
+(step t132 (cl (! (or @p_431 @p_464) :named @p_469) @p_468) :rule or_neg)
+(step t133 (cl @p_469 @p_170) :rule th_resolution :premises (t128 t132))
+(step t134 (cl @p_469 (! (not @p_464) :named @p_595)) :rule or_neg)
+(step t135 (cl @p_469) :rule th_resolution :premises (t131 t130 t133 t134))
+(step t136 (cl (or @p_431 (! (and (! (=> (! (= st$ (! (fst$ @p_470) :named @p_650)) :named @p_471) (! (exists ((veriT_vr25 V_list_v_result$)) (! (= @p_470 (! (pair$ st$ veriT_vr25) :named @p_474)) :named @p_476)) :named @p_473)) :named @p_478) (! (=> (! (not (! (forall ((veriT_vr26 V_list_v_result$)) (! (not (! (= @p_470 (! (pair$ st$ veriT_vr26) :named @p_481)) :named @p_482)) :named @p_483)) :named @p_480)) :named @p_485) @p_471) :named @p_487)) :named @p_472))) :rule forall_inst :args ((:= veriT_vr23 st$) (:= veriT_vr24 @p_470)))
+(anchor :step t137)
+(assume t137.h1 @p_472)
+(anchor :step t137.t2 :args ((:= (veriT_vr25 V_list_v_result$) veriT_vr106)))
+(step t137.t2.t1 (cl (= veriT_vr25 veriT_vr106)) :rule refl)
+(step t137.t2.t2 (cl (= @p_474 (! (pair$ st$ veriT_vr106) :named @p_475))) :rule cong :premises (t137.t2.t1))
+(step t137.t2.t3 (cl (= @p_476 (! (= @p_470 @p_475) :named @p_477))) :rule cong :premises (t137.t2.t2))
+(step t137.t2 (cl (= @p_473 (! (exists ((veriT_vr106 V_list_v_result$)) @p_477) :named @p_479))) :rule bind)
+(step t137.t3 (cl (= @p_478 (! (=> @p_471 @p_479) :named @p_489))) :rule cong :premises (t137.t2))
+(anchor :step t137.t4 :args ((:= (veriT_vr26 V_list_v_result$) veriT_vr106)))
+(step t137.t4.t1 (cl (= veriT_vr26 veriT_vr106)) :rule refl)
+(step t137.t4.t2 (cl (= @p_481 @p_475)) :rule cong :premises (t137.t4.t1))
+(step t137.t4.t3 (cl (= @p_482 @p_477)) :rule cong :premises (t137.t4.t2))
+(step t137.t4.t4 (cl (= @p_483 (! (not @p_477) :named @p_484))) :rule cong :premises (t137.t4.t3))
+(step t137.t4 (cl (= @p_480 (! (forall ((veriT_vr106 V_list_v_result$)) @p_484) :named @p_486))) :rule bind)
+(step t137.t5 (cl (= @p_485 (! (not @p_486) :named @p_488))) :rule cong :premises (t137.t4))
+(step t137.t6 (cl (= @p_487 (! (=> @p_488 @p_471) :named @p_490))) :rule cong :premises (t137.t5))
+(step t137.t7 (cl (! (= @p_472 (! (and @p_489 @p_490) :named @p_493)) :named @p_491)) :rule cong :premises (t137.t3 t137.t6))
+(step t137.t8 (cl (not @p_491) (! (not @p_472) :named @p_492) @p_493) :rule equiv_pos2)
+(step t137.t9 (cl @p_493) :rule th_resolution :premises (t137.h1 t137.t7 t137.t8))
+(anchor :step t137.t10 :args ((:= (veriT_vr106 V_list_v_result$) veriT_vr107)))
+(step t137.t10.t1 (cl (= veriT_vr106 veriT_vr107)) :rule refl)
+(step t137.t10.t2 (cl (= @p_475 (! (pair$ st$ veriT_vr107) :named @p_494))) :rule cong :premises (t137.t10.t1))
+(step t137.t10.t3 (cl (= @p_477 (! (= @p_470 @p_494) :named @p_495))) :rule cong :premises (t137.t10.t2))
+(step t137.t10.t4 (cl (= @p_484 (! (not @p_495) :named @p_496))) :rule cong :premises (t137.t10.t3))
+(step t137.t10 (cl (= @p_486 (! (forall ((veriT_vr107 V_list_v_result$)) @p_496) :named @p_497))) :rule bind)
+(step t137.t11 (cl (= @p_488 (! (not @p_497) :named @p_498))) :rule cong :premises (t137.t10))
+(step t137.t12 (cl (= @p_490 (! (=> @p_498 @p_471) :named @p_499))) :rule cong :premises (t137.t11))
+(step t137.t13 (cl (! (= @p_493 (! (and @p_489 @p_499) :named @p_501)) :named @p_500)) :rule cong :premises (t137.t12))
+(step t137.t14 (cl (not @p_500) (not @p_493) @p_501) :rule equiv_pos2)
+(step t137.t15 (cl @p_501) :rule th_resolution :premises (t137.t9 t137.t13 t137.t14))
+(anchor :step t137.t16 :args ((:= (veriT_vr106 V_list_v_result$) veriT_vr108)))
+(step t137.t16.t1 (cl (= veriT_vr106 veriT_vr108)) :rule refl)
+(step t137.t16.t2 (cl (= @p_475 @p_503)) :rule cong :premises (t137.t16.t1))
+(step t137.t16.t3 (cl (= @p_477 @p_502)) :rule cong :premises (t137.t16.t2))
+(step t137.t16 (cl (= @p_479 (! (exists ((veriT_vr108 V_list_v_result$)) @p_502) :named @p_504))) :rule bind)
+(step t137.t17 (cl (= @p_489 (! (=> @p_471 @p_504) :named @p_510))) :rule cong :premises (t137.t16))
+(anchor :step t137.t18 :args ((:= (veriT_vr107 V_list_v_result$) veriT_vr109)))
+(step t137.t18.t1 (cl (= veriT_vr107 veriT_vr109)) :rule refl)
+(step t137.t18.t2 (cl (= @p_494 (! (pair$ st$ veriT_vr109) :named @p_505))) :rule cong :premises (t137.t18.t1))
+(step t137.t18.t3 (cl (= @p_495 (! (= @p_470 @p_505) :named @p_506))) :rule cong :premises (t137.t18.t2))
+(step t137.t18.t4 (cl (= @p_496 (! (not @p_506) :named @p_507))) :rule cong :premises (t137.t18.t3))
+(step t137.t18 (cl (= @p_497 (! (forall ((veriT_vr109 V_list_v_result$)) @p_507) :named @p_508))) :rule bind)
+(step t137.t19 (cl (= @p_498 (! (not @p_508) :named @p_509))) :rule cong :premises (t137.t18))
+(step t137.t20 (cl (= @p_499 (! (=> @p_509 @p_471) :named @p_511))) :rule cong :premises (t137.t19))
+(step t137.t21 (cl (! (= @p_501 (! (and @p_510 @p_511) :named @p_513)) :named @p_512)) :rule cong :premises (t137.t17 t137.t20))
+(step t137.t22 (cl (not @p_512) (not @p_501) @p_513) :rule equiv_pos2)
+(step t137.t23 (cl @p_513) :rule th_resolution :premises (t137.t15 t137.t21 t137.t22))
+(anchor :step t137.t24 :args ((:= (veriT_vr108 V_list_v_result$) veriT_sk11)))
+(step t137.t24.t1 (cl (= veriT_vr108 veriT_sk11)) :rule refl)
+(step t137.t24.t2 (cl (= @p_503 (! (pair$ st$ veriT_sk11) :named @p_516))) :rule cong :premises (t137.t24.t1))
+(step t137.t24.t3 (cl (= @p_502 (! (= @p_470 @p_516) :named @p_514))) :rule cong :premises (t137.t24.t2))
+(step t137.t24 (cl (= @p_504 @p_514)) :rule sko_ex)
+(step t137.t25 (cl (= @p_510 (! (=> @p_471 @p_514) :named @p_517))) :rule cong :premises (t137.t24))
+(step t137.t26 (cl (! (= @p_513 (! (and @p_517 @p_511) :named @p_519)) :named @p_518)) :rule cong :premises (t137.t25))
+(step t137.t27 (cl (not @p_518) (not @p_513) @p_519) :rule equiv_pos2)
+(step t137.t28 (cl @p_519) :rule th_resolution :premises (t137.t23 t137.t26 t137.t27))
+(anchor :step t137.t29 :args ((:= (veriT_vr109 V_list_v_result$) veriT_vr110)))
+(step t137.t29.t1 (cl (= veriT_vr109 veriT_vr110)) :rule refl)
+(step t137.t29.t2 (cl (= @p_505 (! (pair$ st$ veriT_vr110) :named @p_521))) :rule cong :premises (t137.t29.t1))
+(step t137.t29.t3 (cl (= @p_506 (! (= @p_470 @p_521) :named @p_522))) :rule cong :premises (t137.t29.t2))
+(step t137.t29.t4 (cl (= @p_507 (! (not @p_522) :named @p_523))) :rule cong :premises (t137.t29.t3))
+(step t137.t29 (cl (= @p_508 (! (forall ((veriT_vr110 V_list_v_result$)) @p_523) :named @p_520))) :rule bind)
+(step t137.t30 (cl (= @p_509 (! (not @p_520) :named @p_524))) :rule cong :premises (t137.t29))
+(step t137.t31 (cl (= @p_511 (! (=> @p_524 @p_471) :named @p_525))) :rule cong :premises (t137.t30))
+(step t137.t32 (cl (! (= @p_519 (! (and @p_517 @p_525) :named @p_526)) :named @p_527)) :rule cong :premises (t137.t31))
+(step t137.t33 (cl (not @p_527) (not @p_519) @p_526) :rule equiv_pos2)
+(step t137.t34 (cl @p_526) :rule th_resolution :premises (t137.t28 t137.t32 t137.t33))
+(step t137 (cl @p_492 @p_526) :rule subproof :discharge (h1))
+(step t138 (cl @p_431 @p_472) :rule or :premises (t136))
+(step t139 (cl (! (or @p_431 @p_526) :named @p_528) @p_468) :rule or_neg)
+(step t140 (cl @p_528 @p_170) :rule th_resolution :premises (t128 t139))
+(step t141 (cl @p_528 (! (not @p_526) :named @p_553)) :rule or_neg)
+(step t142 (cl @p_528) :rule th_resolution :premises (t138 t137 t140 t141))
+(step t143 (cl (not (! (not (! (not @p_79) :named @p_529)) :named @p_537)) @p_79) :rule not_not)
+(step t144 (cl (or @p_529 (! (= (! (fun_app$b (! (uu$ @p_378 @p_530) :named @p_655) @p_371) :named @p_532) (! (ite @p_373 @p_370 @p_371) :named @p_533)) :named @p_531))) :rule forall_inst :args ((:= veriT_vr7 @p_378) (:= veriT_vr8 @p_530) (:= veriT_vr9 @p_371)))
+(anchor :step t145)
+(assume t145.h1 @p_531)
+(step t145.t2 (cl (! (= @p_531 (! (and (! (= @p_532 @p_533) :named @p_555) (! (ite @p_373 (= @p_370 @p_533) (! (= @p_371 @p_533) :named @p_557)) :named @p_556)) :named @p_534)) :named @p_535)) :rule ite_intro)
+(step t145.t3 (cl (not @p_535) (! (not @p_531) :named @p_536) @p_534) :rule equiv_pos2)
+(step t145.t4 (cl @p_534) :rule th_resolution :premises (t145.h1 t145.t2 t145.t3))
+(step t145 (cl @p_536 @p_534) :rule subproof :discharge (h1))
+(step t146 (cl @p_529 @p_531) :rule or :premises (t144))
+(step t147 (cl (! (or @p_529 @p_534) :named @p_538) @p_537) :rule or_neg)
+(step t148 (cl @p_538 @p_79) :rule th_resolution :premises (t143 t147))
+(step t149 (cl @p_538 (! (not @p_534) :named @p_554)) :rule or_neg)
+(step t150 (cl @p_538) :rule th_resolution :premises (t146 t145 t148 t149))
+(step t151 (cl (or @p_529 (! (= (! (fun_app$b (! (uu$ @p_378 st$) :named @p_656) @p_371) :named @p_540) (! (ite (! (less_eq$ @p_318 @p_371) :named @p_542) @p_318 @p_371) :named @p_541)) :named @p_539))) :rule forall_inst :args ((:= veriT_vr7 @p_378) (:= veriT_vr8 st$) (:= veriT_vr9 @p_371)))
+(anchor :step t152)
+(assume t152.h1 @p_539)
+(step t152.t2 (cl (! (= @p_539 (! (and (! (= @p_540 @p_541) :named @p_560) (ite @p_542 (! (= @p_318 @p_541) :named @p_662) (= @p_371 @p_541))) :named @p_543)) :named @p_544)) :rule ite_intro)
+(step t152.t3 (cl (not @p_544) (! (not @p_539) :named @p_545) @p_543) :rule equiv_pos2)
+(step t152.t4 (cl @p_543) :rule th_resolution :premises (t152.h1 t152.t2 t152.t3))
+(step t152 (cl @p_545 @p_543) :rule subproof :discharge (h1))
+(step t153 (cl @p_529 @p_539) :rule or :premises (t151))
+(step t154 (cl (! (or @p_529 @p_543) :named @p_546) @p_537) :rule or_neg)
+(step t155 (cl @p_546 @p_79) :rule th_resolution :premises (t143 t154))
+(step t156 (cl @p_546 (! (not @p_543) :named @p_559)) :rule or_neg)
+(step t157 (cl @p_546) :rule th_resolution :premises (t153 t152 t155 t156))
+(step t158 (cl @p_547 @p_548) :rule or :premises (t115))
+(step t159 (cl @p_548) :rule resolution :premises (t158 t89))
+(step t160 (cl @p_421 (! (not @p_413) :named @p_549) (! (not @p_417) :named @p_550)) :rule and_neg)
+(step t161 (cl (not @p_549) @p_416) :rule not_not)
+(step t162 (cl @p_421 @p_416 @p_550) :rule th_resolution :premises (t161 t160))
+(step t163 (cl (not @p_550) @p_420) :rule not_not)
+(step t164 (cl @p_421 @p_416 @p_420) :rule th_resolution :premises (t163 t162))
+(step t165 (cl @p_427 @p_422) :rule or :premises (t127))
+(step t166 (cl @p_422) :rule resolution :premises (t165 t65))
+(step t167 (cl @p_431 @p_464) :rule or :premises (t135))
+(step t168 (cl @p_464) :rule resolution :premises (t167 t56))
+(step t169 (cl (! (not @p_525) :named @p_552) (! (not @p_524) :named @p_551) @p_471) :rule implies_pos)
+(step t170 (cl (not @p_551) @p_520) :rule not_not)
+(step t171 (cl @p_552 @p_520 @p_471) :rule th_resolution :premises (t170 t169))
+(step t172 (cl @p_553 @p_525) :rule and_pos)
+(step t173 (cl @p_431 @p_526) :rule or :premises (t142))
+(step t174 (cl @p_526) :rule resolution :premises (t173 t56))
+(step t175 (cl @p_525) :rule resolution :premises (t172 t174))
+(step t176 (cl @p_554 @p_555) :rule and_pos)
+(step t177 (cl (! (not @p_556) :named @p_558) @p_373 @p_557) :rule ite_pos1)
+(step t178 (cl @p_554 @p_556) :rule and_pos)
+(step t179 (cl @p_529 @p_534) :rule or :premises (t150))
+(step t180 (cl @p_558 @p_557) :rule resolution :premises (t177 t113))
+(step t181 (cl @p_534) :rule resolution :premises (t179 t32))
+(step t182 (cl @p_555) :rule resolution :premises (t176 t181))
+(step t183 (cl @p_556) :rule resolution :premises (t178 t181))
+(step t184 (cl @p_557) :rule resolution :premises (t180 t183))
+(step t185 (cl @p_559 @p_560) :rule and_pos)
+(step t186 (cl @p_529 @p_543) :rule or :premises (t157))
+(step t187 (cl @p_543) :rule resolution :premises (t186 t32))
+(step t188 (cl @p_560) :rule resolution :premises (t185 t187))
+(step t189 (cl (! (not (! (= st$ @p_530) :named @p_651)) :named @p_654) (! (= @p_318 @p_370) :named @p_663)) :rule eq_congruent)
+(step t190 (cl (or (! (not @p_357) :named @p_565) (! (=> (! (and @p_359 @p_416) :named @p_562) (! (less_eq$ (! (clock$ (! (fst$ (! (fun_app$ (fun_evaluate_match$ st$ env$ veriT_sk0 pes$) veriT_sk0) :named @p_583)) :named @p_618)) :named @p_619) @p_318) :named @p_564)) :named @p_563))) :rule forall_inst :args ((:= veriT_vr61 x2$) (:= veriT_vr62 veriT_sk0)))
+(step t191 (cl (or @p_547 (! (= (! (fix_clock$ st$a @p_466) :named @p_596) (! (pair$ @p_561 veriT_sk3) :named @p_676)) :named @p_566))) :rule forall_inst :args ((:= veriT_vr56 st$a) (:= veriT_vr57 @p_378) (:= veriT_vr58 veriT_sk3)))
+(step t192 (cl (or (! (not @p_290) :named @p_569) (! (=> @p_548 (! (less_eq$ (! (clock$ @p_561) :named @p_575) @p_371) :named @p_568)) :named @p_567))) :rule forall_inst :args ((:= veriT_vr49 st$a) (:= veriT_vr50 @p_378) (:= veriT_vr51 r$) (:= veriT_vr52 @p_561)))
+(step t193 (cl (or (! (not @p_236) :named @p_571) (! (= (! (case_error_result$ uua$ uub$ @p_415) :named @p_621) (! (fun_app$ uua$ veriT_sk0) :named @p_584)) :named @p_572))) :rule forall_inst :args ((:= veriT_vr36 uua$) (:= veriT_vr37 uub$) (:= veriT_vr38 veriT_sk0)))
+(step t194 (cl @p_562 (! (not @p_359) :named @p_614) @p_413) :rule and_neg)
+(step t195 (cl (not @p_563) (not @p_562) @p_564) :rule implies_pos)
+(step t196 (cl @p_565 @p_563) :rule or :premises (t190))
+(step t197 (cl @p_562 @p_413) :rule resolution :premises (t194 t101))
+(step t198 (cl @p_563) :rule resolution :premises (t196 t95))
+(step t199 (cl @p_547 @p_566) :rule or :premises (t191))
+(step t200 (cl @p_566) :rule resolution :premises (t199 t89))
+(step t201 (cl (! (not @p_567) :named @p_570) (not @p_548) @p_568) :rule implies_pos)
+(step t202 (cl @p_569 @p_567) :rule or :premises (t192))
+(step t203 (cl @p_570 @p_568) :rule resolution :premises (t201 t159))
+(step t204 (cl @p_567) :rule resolution :premises (t202 t83))
+(step t205 (cl @p_568) :rule resolution :premises (t203 t204))
+(step t206 (cl @p_571 @p_572) :rule or :premises (t193))
+(step t207 (cl @p_572) :rule resolution :premises (t206 t71))
+(step t208 (cl @p_368 @p_573) :rule or :premises (t103))
+(step t209 (cl (or (! (not @p_573) :named @p_576) (! (or @p_574 (! (not @p_568) :named @p_581) (! (less_eq$ @p_575 @p_7) :named @p_582)) :named @p_577))) :rule forall_inst :args ((:= veriT_vr13 @p_371) (:= veriT_vr14 @p_7) (:= veriT_vr15 @p_575)))
+(step t210 (cl @p_576 @p_577) :rule or :premises (t209))
+(step t211 (cl (! (or @p_368 @p_577) :named @p_579) @p_578) :rule or_neg)
+(step t212 (cl @p_579 @p_105) :rule th_resolution :premises (t114 t211))
+(step t213 (cl @p_579 (! (not @p_577) :named @p_580)) :rule or_neg)
+(step t214 (cl @p_579) :rule th_resolution :premises (t208 t210 t212 t213))
+(step t215 (cl @p_580 @p_574 @p_581 @p_582) :rule or_pos)
+(step t216 (cl @p_368 @p_577) :rule or :premises (t214))
+(step t217 (cl @p_580 @p_582) :rule resolution :premises (t215 axiom4 t205))
+(step t218 (cl @p_577) :rule resolution :premises (t216 t38))
+(step t219 (cl @p_582) :rule resolution :premises (t217 t218))
+(step t220 (cl (or (! (not @p_257) :named @p_585) (! (= (! (case_error_result$ uua$ uub$ @p_419) :named @p_603) (! (fun_app$a uub$ veriT_sk1) :named @p_599)) :named @p_586))) :rule forall_inst :args ((:= veriT_vr42 uua$) (:= veriT_vr43 uub$) (:= veriT_vr44 veriT_sk1)))
+(step t221 (cl (or @p_368 (! (=> (! (and @p_582 (! (less_eq$ @p_370 @p_575) :named @p_588)) :named @p_587) @p_360) :named @p_589))) :rule forall_inst :args ((:= veriT_vr13 @p_575) (:= veriT_vr14 @p_7) (:= veriT_vr15 @p_370)))
+(step t222 (cl (or (! (not @p_26) :named @p_593) (! (= @p_583 @p_584) :named @p_594))) :rule forall_inst :args ((:= veriT_vr1 veriT_sk0)))
+(step t223 (cl @p_585 @p_586) :rule or :premises (t220))
+(step t224 (cl @p_586) :rule resolution :premises (t223 t77))
+(step t225 (cl @p_587 (not @p_582) (! (not @p_588) :named @p_590)) :rule and_neg)
+(step t226 (cl (! (not @p_589) :named @p_591) (! (not @p_587) :named @p_592) @p_360) :rule implies_pos)
+(step t227 (cl @p_368 @p_589) :rule or :premises (t221))
+(step t228 (cl @p_587 @p_590) :rule resolution :premises (t225 t219))
+(step t229 (cl @p_591 @p_592) :rule resolution :premises (t226 t102))
+(step t230 (cl @p_589) :rule resolution :premises (t227 t38))
+(step t231 (cl @p_592) :rule resolution :premises (t229 t230))
+(step t232 (cl @p_590) :rule resolution :premises (t228 t231))
+(step t233 (cl @p_593 @p_594) :rule or :premises (t222))
+(step t234 (cl @p_594) :rule resolution :premises (t233 t20))
+(step t235 (cl (not (! (= st$a st$a) :named @p_597)) @p_595 (! (= @p_470 @p_596) :named @p_598)) :rule eq_congruent)
+(step t236 (cl @p_597) :rule eq_reflexive)
+(step t237 (cl @p_595 @p_598) :rule th_resolution :premises (t235 t236))
+(step t238 (cl (or (! (not @p_48) :named @p_600) (! (= @p_599 (! (pair$ st$ (! (rerr$ @p_419) :named @p_608)) :named @p_610)) :named @p_601))) :rule forall_inst :args ((:= veriT_vr3 veriT_sk1)))
+(step t239 (cl @p_600 @p_601) :rule or :premises (t238))
+(step t240 (cl @p_601) :rule resolution :premises (t239 t26))
+(step t241 (cl (! (not (! (= uua$ uua$) :named @p_604)) :named @p_623) (! (not (! (= uub$ uub$) :named @p_607)) :named @p_605) @p_417 (! (= @p_602 @p_603) :named @p_606)) :rule eq_congruent)
+(step t242 (cl @p_604) :rule eq_reflexive)
+(step t243 (cl @p_605 @p_417 @p_606) :rule th_resolution :premises (t241 t242))
+(step t244 (cl @p_607) :rule eq_reflexive)
+(step t245 (cl @p_417 @p_606) :rule th_resolution :premises (t243 t244))
+(step t246 (cl (not (! (= st$ st$) :named @p_611)) (! (not (! (= r$ @p_608) :named @p_616)) :named @p_612) (! (= @p_609 @p_610) :named @p_613)) :rule eq_congruent)
+(step t247 (cl @p_611) :rule eq_reflexive)
+(step t248 (cl @p_612 @p_613) :rule th_resolution :premises (t246 t247))
+(step t249 (cl @p_614 (not (! (= @p_615 @p_608) :named @p_617)) @p_616) :rule eq_transitive)
+(step t250 (cl @p_417 @p_617) :rule eq_congruent)
+(step t251 (cl @p_614 @p_616 @p_417) :rule th_resolution :premises (t249 t250))
+(step t252 (cl @p_613 @p_614 @p_417) :rule th_resolution :premises (t248 t251))
+(step t253 (cl (not (! (= @p_530 @p_618) :named @p_620)) (! (= @p_370 @p_619) :named @p_627)) :rule eq_congruent)
+(step t254 (cl (not (! (= @p_602 @p_583) :named @p_622)) @p_620) :rule eq_congruent)
+(step t255 (cl (not (! (= @p_602 @p_621) :named @p_624)) (! (not @p_572) :named @p_625) (! (not @p_594) :named @p_626) @p_622) :rule eq_transitive)
+(step t256 (cl @p_623 @p_605 @p_413 @p_624) :rule eq_congruent)
+(step t257 (cl @p_605 @p_413 @p_624) :rule th_resolution :premises (t256 t242))
+(step t258 (cl @p_413 @p_624) :rule th_resolution :premises (t257 t244))
+(step t259 (cl @p_625 @p_626 @p_622 @p_413) :rule th_resolution :premises (t255 t258))
+(step t260 (cl @p_620 @p_625 @p_626 @p_413) :rule th_resolution :premises (t254 t259))
+(step t261 (cl @p_627 @p_625 @p_626 @p_413) :rule th_resolution :premises (t253 t260))
+(step t262 (cl (or @p_524 (! (not @p_628) :named @p_630))) :rule forall_inst :args ((:= veriT_vr110 r$)))
+(step t263 (cl @p_431 @p_629) :rule or :premises (t104))
+(step t264 (cl @p_524 @p_630) :rule or :premises (t262))
+(step t265 (cl @p_524) :rule resolution :premises (t264 axiom3))
+(step t266 (cl @p_471) :rule resolution :premises (t171 t265 t175))
+(step t267 (cl (or @p_529 (! (= (! (fun_app$b (! (uu$ @p_378 @p_561) :named @p_631) (! (clock$ (update_clock$ @p_631 @p_561)) :named @p_632)) :named @p_634) (! (ite @p_568 @p_575 @p_371) :named @p_635)) :named @p_633))) :rule forall_inst :args ((:= veriT_vr7 @p_378) (:= veriT_vr8 @p_561) (:= veriT_vr9 @p_632)))
+(anchor :step t268)
+(assume t268.h1 @p_633)
+(step t268.t2 (cl (! (= @p_633 (! (and (= @p_634 @p_635) (! (ite @p_568 (! (= @p_575 @p_635) :named @p_647) (= @p_371 @p_635)) :named @p_646)) :named @p_636)) :named @p_637)) :rule ite_intro)
+(step t268.t3 (cl (not @p_637) (! (not @p_633) :named @p_638) @p_636) :rule equiv_pos2)
+(step t268.t4 (cl @p_636) :rule th_resolution :premises (t268.h1 t268.t2 t268.t3))
+(step t268 (cl @p_638 @p_636) :rule subproof :discharge (h1))
+(step t269 (cl @p_529 @p_633) :rule or :premises (t267))
+(step t270 (cl (! (or @p_529 @p_636) :named @p_639) @p_537) :rule or_neg)
+(step t271 (cl @p_639 @p_79) :rule th_resolution :premises (t143 t270))
+(step t272 (cl @p_639 (! (not @p_636) :named @p_648)) :rule or_neg)
+(step t273 (cl @p_639) :rule th_resolution :premises (t269 t268 t271 t272))
+(step t274 (cl (or @p_529 (! (= @p_635 (! (fun_app$b @p_631 @p_371) :named @p_641)) :named @p_640))) :rule forall_inst :args ((:= veriT_vr7 @p_378) (:= veriT_vr8 @p_561) (:= veriT_vr9 @p_371)))
+(anchor :step t275)
+(assume t275.h1 @p_640)
+(step t275.t2 (cl (! (= @p_640 (! (= @p_635 @p_641) :named @p_642)) :named @p_643)) :rule ite_intro)
+(step t275.t3 (cl (not @p_643) (! (not @p_640) :named @p_644) @p_642) :rule equiv_pos2)
+(step t275.t4 (cl @p_642) :rule th_resolution :premises (t275.h1 t275.t2 t275.t3))
+(step t275 (cl @p_644 @p_642) :rule subproof :discharge (h1))
+(step t276 (cl @p_529 @p_640) :rule or :premises (t274))
+(step t277 (cl (! (or @p_529 @p_642) :named @p_645) @p_537) :rule or_neg)
+(step t278 (cl @p_645 @p_79) :rule th_resolution :premises (t143 t277))
+(step t279 (cl @p_645 (! (not @p_642) :named @p_696)) :rule or_neg)
+(step t280 (cl @p_645) :rule th_resolution :premises (t276 t275 t278 t279))
+(step t281 (cl (! (not @p_646) :named @p_649) @p_581 @p_647) :rule ite_pos2)
+(step t282 (cl @p_648 @p_646) :rule and_pos)
+(step t283 (cl @p_529 @p_636) :rule or :premises (t273))
+(step t284 (cl @p_649 @p_647) :rule resolution :premises (t281 t205))
+(step t285 (cl @p_636) :rule resolution :premises (t283 t32))
+(step t286 (cl @p_646) :rule resolution :premises (t282 t285))
+(step t287 (cl @p_647) :rule resolution :premises (t284 t286))
+(step t288 (cl @p_529 @p_642) :rule or :premises (t280))
+(step t289 (cl @p_642) :rule resolution :premises (t288 t32))
+(step t290 (cl (! (= @p_371 @p_371) :named @p_671)) :rule eq_reflexive)
+(step t291 (cl (! (not @p_471) :named @p_661) (not (! (= @p_530 @p_650) :named @p_652)) @p_651) :rule eq_transitive)
+(step t292 (cl (not (! (= @p_470 @p_602) :named @p_653)) @p_652) :rule eq_congruent)
+(step t293 (cl @p_630 (not @p_613) (! (not @p_601) :named @p_657) (! (not @p_586) :named @p_658) (! (not @p_606) :named @p_659) @p_653) :rule eq_transitive)
+(step t294 (cl (! (not @p_432) :named @p_674) @p_654 (! (= @p_655 @p_656) :named @p_670)) :rule eq_congruent)
+(step t295 (cl @p_432) :rule eq_reflexive)
+(step t296 (cl @p_630 @p_657 @p_658 @p_659 @p_653 @p_614 @p_417) :rule th_resolution :premises (t293 t252))
+(step t297 (cl @p_630 @p_657 @p_658 @p_653 @p_614 @p_417 @p_417) :rule th_resolution :premises (t296 t245))
+(step t298 (cl @p_630 @p_657 @p_658 @p_653 @p_614 @p_417) :rule contraction :premises (t297))
+(step t299 (cl @p_652 @p_630 @p_657 @p_658 @p_614 @p_417) :rule th_resolution :premises (t292 t298))
+(step t300 (cl (not (! (= @p_371 @p_370) :named @p_664)) (! (not (! (= @p_7 @p_7) :named @p_660)) :named @p_675) @p_574 @p_360) :rule eq_congruent_pred)
+(step t301 (cl @p_660) :rule eq_reflexive)
+(step t302 (cl @p_661 @p_651 @p_630 @p_657 @p_658 @p_614 @p_417) :rule th_resolution :premises (t291 t299))
+(step t303 (cl (! (not @p_557) :named @p_665) (! (not @p_555) :named @p_666) (! (not (! (= @p_532 @p_540) :named @p_672)) :named @p_667) (! (not @p_560) :named @p_668) (! (not @p_662) :named @p_669) (not @p_663) @p_664) :rule eq_transitive)
+(step t304 (cl @p_663 @p_661 @p_630 @p_657 @p_658 @p_614 @p_417) :rule th_resolution :premises (t189 t302))
+(step t305 (cl @p_665 @p_666 @p_667 @p_668 @p_669 @p_664 @p_661 @p_630 @p_657 @p_658 @p_614 @p_417) :rule th_resolution :premises (t303 t304))
+(step t306 (cl (! (not @p_670) :named @p_673) (! (not @p_671) :named @p_699) @p_672) :rule eq_congruent)
+(step t307 (cl @p_673 @p_672) :rule th_resolution :premises (t306 t290))
+(step t308 (cl @p_674 @p_670 @p_661 @p_630 @p_657 @p_658 @p_614 @p_417) :rule th_resolution :premises (t294 t302))
+(step t309 (cl @p_670 @p_661 @p_630 @p_657 @p_658 @p_614 @p_417) :rule th_resolution :premises (t308 t295))
+(step t310 (cl @p_672 @p_661 @p_630 @p_657 @p_658 @p_614 @p_417) :rule th_resolution :premises (t307 t309))
+(step t311 (cl @p_665 @p_666 @p_668 @p_669 @p_664 @p_661 @p_630 @p_657 @p_658 @p_614 @p_417 @p_661 @p_630 @p_657 @p_658 @p_614 @p_417) :rule th_resolution :premises (t305 t310))
+(step t312 (cl @p_665 @p_666 @p_668 @p_669 @p_664 @p_661 @p_630 @p_657 @p_658 @p_614 @p_417) :rule contraction :premises (t311))
+(step t313 (cl @p_675 @p_574 @p_360 @p_665 @p_666 @p_668 @p_669 @p_661 @p_630 @p_657 @p_658 @p_614 @p_417) :rule th_resolution :premises (t300 t312))
+(step t314 (cl @p_574 @p_360 @p_665 @p_666 @p_668 @p_669 @p_661 @p_630 @p_657 @p_658 @p_614 @p_417) :rule th_resolution :premises (t313 t301))
+(step t315 (cl @p_669 @p_417) :rule resolution :premises (t314 axiom3 axiom4 t101 t102 t266 t182 t184 t188 t224 t240))
+(step t316 (cl (or (! (not @p_629) :named @p_677) (! (or (! (not (! (= @p_676 @p_676) :named @p_682)) :named @p_683) (! (= @p_561 (! (fst$ @p_676) :named @p_691)) :named @p_681)) :named @p_678))) :rule forall_inst :args ((:= veriT_vr23 @p_561) (:= veriT_vr24 @p_676) (:= veriT_vr26 veriT_sk3)))
+(step t317 (cl @p_677 @p_678) :rule or :premises (t316))
+(step t318 (cl (! (or @p_431 @p_678) :named @p_679) @p_468) :rule or_neg)
+(step t319 (cl @p_679 @p_170) :rule th_resolution :premises (t128 t318))
+(step t320 (cl @p_679 (! (not @p_678) :named @p_680)) :rule or_neg)
+(step t321 (cl @p_679) :rule th_resolution :premises (t263 t317 t319 t320))
+(anchor :step t322)
+(assume t322.h1 @p_678)
+(step t322.t2 (cl (= @p_682 true)) :rule eq_simplify)
+(step t322.t3 (cl (= @p_683 (! (not true) :named @p_684))) :rule cong :premises (t322.t2))
+(step t322.t4 (cl (= @p_684 false)) :rule not_simplify)
+(step t322.t5 (cl (= @p_683 false)) :rule trans :premises (t322.t3 t322.t4))
+(step t322.t6 (cl (= @p_678 (! (or false @p_681) :named @p_685))) :rule cong :premises (t322.t5))
+(step t322.t7 (cl (= @p_685 (! (or @p_681) :named @p_686))) :rule or_simplify)
+(step t322.t8 (cl (= @p_686 @p_681)) :rule or_simplify)
+(step t322.t9 (cl (! (= @p_678 @p_681) :named @p_687)) :rule trans :premises (t322.t6 t322.t7 t322.t8))
+(step t322.t10 (cl (not @p_687) @p_680 @p_681) :rule equiv_pos2)
+(step t322.t11 (cl @p_681) :rule th_resolution :premises (t322.h1 t322.t9 t322.t10))
+(step t322 (cl @p_680 @p_681) :rule subproof :discharge (h1))
+(step t323 (cl @p_431 @p_678) :rule or :premises (t321))
+(step t324 (cl (! (or @p_431 @p_681) :named @p_688) @p_468) :rule or_neg)
+(step t325 (cl @p_688 @p_170) :rule th_resolution :premises (t128 t324))
+(step t326 (cl @p_688 (! (not @p_681) :named @p_693)) :rule or_neg)
+(step t327 (cl @p_688) :rule th_resolution :premises (t323 t322 t325 t326))
+(step t328 (cl @p_431 @p_681) :rule or :premises (t327))
+(step t329 (cl @p_681) :rule resolution :premises (t328 t56))
+(step t330 (cl (not @p_598) (! (not @p_566) :named @p_689) (! (= @p_470 @p_676) :named @p_690)) :rule eq_transitive)
+(step t331 (cl @p_689 @p_690 @p_595) :rule th_resolution :premises (t330 t237))
+(step t332 (cl (not @p_690) (! (= @p_650 @p_691) :named @p_692)) :rule eq_congruent)
+(step t333 (cl @p_692 @p_689 @p_595) :rule th_resolution :premises (t332 t331))
+(step t334 (cl @p_661 (not @p_692) @p_693 (! (= st$ @p_561) :named @p_694)) :rule eq_transitive)
+(step t335 (cl @p_661 @p_693 @p_694 @p_689 @p_595) :rule th_resolution :premises (t334 t333))
+(step t336 (cl (! (not @p_694) :named @p_702) (! (= @p_318 @p_575) :named @p_695)) :rule eq_congruent)
+(step t337 (cl @p_695 @p_661 @p_693 @p_689 @p_595) :rule th_resolution :premises (t336 t335))
+(step t338 (cl (! (not @p_695) :named @p_704) (! (not @p_647) :named @p_697) @p_696 (! (not (! (= @p_540 @p_641) :named @p_700)) :named @p_698) @p_668 @p_662) :rule eq_transitive)
+(step t339 (cl @p_697 @p_696 @p_698 @p_668 @p_662 @p_661 @p_693 @p_689 @p_595) :rule th_resolution :premises (t338 t337))
+(step t340 (cl (! (not (! (= @p_656 @p_631) :named @p_703)) :named @p_701) @p_699 @p_700) :rule eq_congruent)
+(step t341 (cl @p_701 @p_700) :rule th_resolution :premises (t340 t290))
+(step t342 (cl @p_674 @p_702 @p_703) :rule eq_congruent)
+(step t343 (cl @p_702 @p_703) :rule th_resolution :premises (t342 t295))
+(step t344 (cl @p_703 @p_661 @p_693 @p_689 @p_595) :rule th_resolution :premises (t343 t335))
+(step t345 (cl @p_700 @p_661 @p_693 @p_689 @p_595) :rule th_resolution :premises (t341 t344))
+(step t346 (cl @p_697 @p_696 @p_668 @p_662 @p_661 @p_693 @p_689 @p_595 @p_661 @p_693 @p_689 @p_595) :rule th_resolution :premises (t339 t345))
+(step t347 (cl @p_697 @p_696 @p_668 @p_662 @p_661 @p_693 @p_689 @p_595) :rule contraction :premises (t346))
+(step t348 (cl @p_662) :rule resolution :premises (t347 t266 t188 t200 t287 t289 t168 t329))
+(step t349 (cl @p_417) :rule resolution :premises (t315 t348))
+(step t350 (cl @p_416) :rule resolution :premises (t164 t349 t166))
+(step t351 (cl @p_562) :rule resolution :premises (t197 t350))
+(step t352 (cl @p_564) :rule resolution :premises (t195 t351 t198))
+(step t353 (cl (not @p_627) @p_704 (! (not @p_564) :named @p_705) @p_588) :rule eq_congruent_pred)
+(step t354 (cl @p_704 @p_705 @p_588 @p_625 @p_626 @p_413) :rule th_resolution :premises (t353 t261))
+(step t355 (cl @p_705 @p_588 @p_625 @p_626 @p_413 @p_661 @p_693 @p_689 @p_595) :rule th_resolution :premises (t354 t337))
+(step t356 (cl) :rule resolution :premises (t355 t350 t168 t266 t352 t200 t207 t232 t234 t329))
--- a/src/HOL/SMT_Examples/SMT_Word_Examples.certs Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/SMT_Examples/SMT_Word_Examples.certs Tue Mar 29 12:55:25 2022 +0200
@@ -1,4 +1,4 @@
-a5d69231f52771aee13986f9557d0f15deceb578 8 0
+e165589be66542b081eba62a2be2f8d39e278f08 8 0
unsat
((set-logic <null>)
(proof
@@ -7,7 +7,7 @@
(let ((@x49 (trans (monotonicity @x42 (= (not (= (_ bv11 4) (bvneg (_ bv5 4)))) (not true))) (rewrite (= (not true) false)) (= (not (= (_ bv11 4) (bvneg (_ bv5 4)))) false))))
(mp (asserted (not (= (_ bv11 4) (bvneg (_ bv5 4))))) @x49 false))))))
-ce29313a11444a23d27ac32aa304904b58c5ef48 7 0
+20e2d38b51f6dc863f10c42423e9f6f7a33f7e4b 7 0
unsat
((set-logic <null>)
(proof
@@ -15,7 +15,7 @@
(let ((@x39 (trans @x35 (rewrite (= (not true) false)) (= (not (= (_ bv11 4) (_ bv11 4))) false))))
(mp (asserted (not (= (_ bv11 4) (_ bv11 4)))) @x39 false)))))
-bb95b2d5c073512432c61cceeaca86ea168b5973 7 0
+d8ead1987eeaf8dcad77816c2da275e02790bc36 7 0
unsat
((set-logic <null>)
(proof
@@ -23,7 +23,7 @@
(let ((@x42 (trans @x38 (rewrite (= (not true) false)) (= (not (bvult (_ bv23 8) (_ bv27 8))) false))))
(mp (asserted (not (bvult (_ bv23 8) (_ bv27 8)))) @x42 false)))))
-26bb2ac93ef8c385bfbf217919bbafac305e5636 9 0
+4eecaa07b1c9316924af400458f2703dd8953c87 9 0
unsat
((set-logic <null>)
(proof
@@ -33,7 +33,7 @@
(let ((@x49 (trans @x45 (rewrite (= (not true) false)) (= (not (= (bvadd (_ bv27 5) (_ bv11 5)) (_ bv6 5))) false))))
(mp (asserted (not (= (bvadd (_ bv27 5) (_ bv11 5)) (_ bv6 5)))) @x49 false)))))))
-0e3ec4ac7c67aebfff2a5df85b922b50d3602563 9 0
+61ca0ebc9b9c8beef8d244b430a042b2d7554237 9 0
unsat
((set-logic <null>)
(proof
@@ -43,7 +43,15 @@
(let ((@x49 (trans @x45 (rewrite (= (not true) false)) (= (not (= (bvmul (_ bv7 8) (_ bv3 8)) (_ bv21 8))) false))))
(mp (asserted (not (= (bvmul (_ bv7 8) (_ bv3 8)) (_ bv21 8)))) @x49 false)))))))
-9cf93e929e27dc04c30894bd14ced90c3cc565db 9 0
+cb45ce1f17edce2b3b3ad244b6b8eceaf9ddbf50 7 0
+unsat
+((set-logic <null>)
+(proof
+(let ((@x35 (monotonicity (rewrite (= (= (_ bv11 5) (_ bv11 5)) true)) (= (not (= (_ bv11 5) (_ bv11 5))) (not true)))))
+(let ((@x39 (trans @x35 (rewrite (= (not true) false)) (= (not (= (_ bv11 5) (_ bv11 5))) false))))
+(mp (asserted (not (= (_ bv11 5) (_ bv11 5)))) @x39 false)))))
+
+b4a0da18f94642970a0d035b1b57fe43e92d2c57 9 0
unsat
((set-logic <null>)
(proof
@@ -53,15 +61,7 @@
(let ((@x54 (trans @x50 (rewrite (= (not true) false)) (= (not (= (bvsub (_ bv11 8) (_ bv27 8)) (bvneg (_ bv16 8)))) false))))
(mp (asserted (not (= (bvsub (_ bv11 8) (_ bv27 8)) (bvneg (_ bv16 8))))) @x54 false)))))))
-4bf6f825855790123eb3af10c0a8ece72a2696c0 7 0
-unsat
-((set-logic <null>)
-(proof
-(let ((@x35 (monotonicity (rewrite (= (= (_ bv11 5) (_ bv11 5)) true)) (= (not (= (_ bv11 5) (_ bv11 5))) (not true)))))
-(let ((@x39 (trans @x35 (rewrite (= (not true) false)) (= (not (= (_ bv11 5) (_ bv11 5))) false))))
-(mp (asserted (not (= (_ bv11 5) (_ bv11 5)))) @x39 false)))))
-
-faad761e2741d8b647fa62db13d8b0e649fb03d0 11 0
+78c274ff0caaa3763fad0db197f0c2134d9f5f9e 11 0
unsat
((set-logic <null>)
(proof
@@ -73,7 +73,7 @@
(let ((@x63 (trans @x59 (rewrite (= (not true) false)) (= (not (= (bvadd (bvneg (_ bv40 7)) (_ bv1 7)) (bvneg (_ bv39 7)))) false))))
(mp (asserted (not (= (bvadd (bvneg (_ bv40 7)) (_ bv1 7)) (bvneg (_ bv39 7))))) @x63 false)))))))))
-e913ddebe8fd3723faed676f00550d0f85717e48 19 0
+7fcdb48d651781a0ed801bb738bfeb88ce1a3408 19 0
unsat
((set-logic <null>)
(proof
@@ -93,7 +93,7 @@
(let ((@x67 (trans @x63 (rewrite (= (not true) false)) (= $x38 false))))
(mp (asserted $x38) @x67 false)))))))))))))))))
-a481dcd4c078eb4bbc4578997c1becc3d0588892 18 0
+6a1e9b1374089d298641f80da7dba5f13c400a0b 18 0
unsat
((set-logic <null>)
(proof
@@ -112,7 +112,7 @@
(let ((@x84 (trans (monotonicity @x77 (= (not (= (_ bv4 4) ?x31)) (not true))) (rewrite (= (not true) false)) (= (not (= (_ bv4 4) ?x31)) false))))
(mp (not-or-elim (mp (asserted $x34) @x60 $x56) (not (= (_ bv4 4) ?x31))) @x84 false))))))))))))))))
-1cd4bc28651d39e32aab684ecfdd3be7c1dd0a2c 9 0
+c5fc4af7c2aedc018a219b1ff9f416d7b65f5a31 9 0
unsat
((set-logic <null>)
(proof
@@ -122,7 +122,7 @@
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvand (_ bv6 32) (_ bv5 32)) (_ bv4 32))) false))))
(mp (asserted (not (= (bvand (_ bv6 32) (_ bv5 32)) (_ bv4 32)))) @x48 false)))))))
-178251ca0606b596bae71a7cf9b656088f51af57 9 0
+1c20d52cf12e17a84c100be59093e532b3bb68be 9 0
unsat
((set-logic <null>)
(proof
@@ -132,7 +132,7 @@
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvor (_ bv6 8) (_ bv3 8)) (_ bv7 8))) false))))
(mp (asserted (not (= (bvor (_ bv6 8) (_ bv3 8)) (_ bv7 8)))) @x48 false)))))))
-769bdf70860c69df30d176b7eb677294e426fc4b 9 0
+e3b7b6c3b5d69c891a955965789259491afe936e 9 0
unsat
((set-logic <null>)
(proof
@@ -142,7 +142,7 @@
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvxor (_ bv240 8) (_ bv255 8)) (_ bv15 8))) false))))
(mp (asserted (not (= (bvxor (_ bv240 8) (_ bv255 8)) (_ bv15 8)))) @x48 false)))))))
-c2fb3d6f1f3f3e6dd3836f7f610e92c43dd7dfff 8 0
+28cf5c7c114782c55ace89ae60a8c9590a1fe7fa 8 0
unsat
((set-logic <null>)
(proof
@@ -151,7 +151,7 @@
(let ((@x47 (trans (monotonicity @x40 (= (not (= (bvnot (_ bv240 16)) (_ bv65295 16))) (not true))) (rewrite (= (not true) false)) (= (not (= (bvnot (_ bv240 16)) (_ bv65295 16))) false))))
(mp (asserted (not (= (bvnot (_ bv240 16)) (_ bv65295 16)))) @x47 false))))))
-62fc6678382dfb5f2112f46aac810939a87814fd 9 0
+d8191fbbb76dcd44809576b51b6eff8251b75359 9 0
unsat
((set-logic <null>)
(proof
@@ -161,7 +161,7 @@
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (concat (_ bv11 4) (_ bv27 8)) (_ bv2843 12))) false))))
(mp (asserted (not (= (concat (_ bv11 4) (_ bv27 8)) (_ bv2843 12)))) @x48 false)))))))
-584cf4e60989598a0043c67a2cbfb9786830972b 9 0
+eda0203202a2208597ba357936c7f6397472d9e3 9 0
unsat
((set-logic <null>)
(proof
@@ -171,7 +171,7 @@
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (concat (_ bv3 4) (_ bv15 6)) (_ bv207 10))) false))))
(mp (asserted (not (= (concat (_ bv3 4) (_ bv15 6)) (_ bv207 10)))) @x48 false)))))))
-c4ba99a31bff950f61b48e2df91d0092a4605b5b 8 0
+347626e8b074207fa00db1a5481c346ae674c0ef 8 0
unsat
((set-logic <null>)
(proof
@@ -180,7 +180,7 @@
(let ((@x47 (trans (monotonicity @x40 (= (not (= ((_ extract 2 1) (_ bv6 4)) (_ bv3 2))) (not true))) (rewrite (= (not true) false)) (= (not (= ((_ extract 2 1) (_ bv6 4)) (_ bv3 2))) false))))
(mp (asserted (not (= ((_ extract 2 1) (_ bv6 4)) (_ bv3 2)))) @x47 false))))))
-597573e2f4fd839e604ae52ba364ae11700dace1 9 0
+41cbd3386ab2afabe3429a5ba3bb3dba0a63fdda 9 0
unsat
((set-logic <null>)
(proof
@@ -190,7 +190,7 @@
(let ((@x47 (trans @x43 (rewrite (= (not true) false)) (= (not (= ((_ zero_extend 6) (_ bv10 4)) (_ bv10 10))) false))))
(mp (asserted (not (= ((_ zero_extend 6) (_ bv10 4)) (_ bv10 10)))) @x47 false)))))))
-10141671f4de43526d88d4ecd79c12df4bdb4825 9 0
+4840a0f1cb5ba7cadf4e893f0809e950d55d606f 9 0
unsat
((set-logic <null>)
(proof
@@ -200,7 +200,7 @@
(let ((@x47 (trans @x43 (rewrite (= (not true) false)) (= (not (= ((_ sign_extend 2) (_ bv10 4)) (_ bv58 6))) false))))
(mp (asserted (not (= ((_ sign_extend 2) (_ bv10 4)) (_ bv58 6)))) @x47 false)))))))
-9db301365e8ecb55d7eee63724f390087c022cac 9 0
+d128f083f8e89abf5c4703b8c8d009ea3df30435 9 0
unsat
((set-logic <null>)
(proof
@@ -210,7 +210,7 @@
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvshl (_ bv19 8) (_ bv2 8)) (_ bv76 8))) false))))
(mp (asserted (not (= (bvshl (_ bv19 8) (_ bv2 8)) (_ bv76 8)))) @x48 false)))))))
-a14cf81020b4c017a44794d9f507892fc994a0aa 9 0
+1d784062d38bcd3aadcf27beee2ff21ad647962d 9 0
unsat
((set-logic <null>)
(proof
@@ -220,7 +220,7 @@
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvlshr (_ bv25 8) (_ bv2 8)) (_ bv6 8))) false))))
(mp (asserted (not (= (bvlshr (_ bv25 8) (_ bv2 8)) (_ bv6 8)))) @x48 false)))))))
-f043e921c4475109c2fdff12856bf28a46f470e8 9 0
+0ee5cedc38e1172399f1a0c82d9e80da55776724 9 0
unsat
((set-logic <null>)
(proof
@@ -230,7 +230,7 @@
(let ((@x48 (trans @x44 (rewrite (= (not true) false)) (= (not (= (bvashr (_ bv19 8) (_ bv2 8)) (_ bv4 8))) false))))
(mp (asserted (not (= (bvashr (_ bv19 8) (_ bv2 8)) (_ bv4 8)))) @x48 false)))))))
-1737667dcdf52add3cf7ec23188f82da46dd2b0a 9 0
+954b050a7dd5950a1db7cf22773ed0f960e848cf 9 0
unsat
((set-logic <null>)
(proof
@@ -240,17 +240,7 @@
(let ((@x47 (trans @x43 (rewrite (= (not true) false)) (= (not (= ((_ rotate_right 2) (_ bv6 4)) (_ bv9 4))) false))))
(mp (asserted (not (= ((_ rotate_right 2) (_ bv6 4)) (_ bv9 4)))) @x47 false)))))))
-4c62aea85c861b1e65021c56cee22174328eedc0 9 0
-unsat
-((set-logic <null>)
-(proof
-(let ((@x36 (monotonicity (rewrite (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4))) (= (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4)) (= (_ bv13 4) (_ bv13 4))))))
-(let ((@x40 (trans @x36 (rewrite (= (= (_ bv13 4) (_ bv13 4)) true)) (= (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4)) true))))
-(let ((@x43 (monotonicity @x40 (= (not (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4))) (not true)))))
-(let ((@x47 (trans @x43 (rewrite (= (not true) false)) (= (not (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4))) false))))
-(mp (asserted (not (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4)))) @x47 false)))))))
-
-dfec96be9ace458cbe9ee12898f33db7192c335c 17 0
+adcab1ed49379d48decf485ff9b3a574acbba42e 17 0
unsat
((set-logic <null>)
(proof
@@ -268,7 +258,17 @@
(let ((@x55 (unit-resolution ((_ th-lemma bv) $x53) @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 $x52)))
(unit-resolution @x55 @x63 false)))))))))))))))
-73db5e04efabac69390d8eaa510230b30d68aff6 51 0
+9ed6f1c7a48e735be777f66302217a85b3126246 9 0
+unsat
+((set-logic <null>)
+(proof
+(let ((@x36 (monotonicity (rewrite (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4))) (= (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4)) (= (_ bv13 4) (_ bv13 4))))))
+(let ((@x40 (trans @x36 (rewrite (= (= (_ bv13 4) (_ bv13 4)) true)) (= (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4)) true))))
+(let ((@x43 (monotonicity @x40 (= (not (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4))) (not true)))))
+(let ((@x47 (trans @x43 (rewrite (= (not true) false)) (= (not (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4))) false))))
+(mp (asserted (not (= ((_ rotate_left 1) (_ bv14 4)) (_ bv13 4)))) @x47 false)))))))
+
+a287f607ed00218feee9de1c2a188887f4e4fe7f 51 0
unsat
((set-logic <null>)
(proof
@@ -320,7 +320,7 @@
(let ((@x314 (unit-resolution ((_ th-lemma bv) $x312) @x26 @x26 @x26 @x26 @x26 @x26 @x26 @x26 (unit-resolution (def-axiom (or $x95 (not $x74))) @x303 (not $x74)) (unit-resolution (def-axiom (or $x95 (not $x75))) @x303 (not $x75)) (unit-resolution (def-axiom (or $x95 (not $x76))) @x303 (not $x76)) (unit-resolution (def-axiom (or $x95 (not $x77))) @x303 (not $x77)) (unit-resolution (def-axiom (or $x95 (not $x78))) @x303 (not $x78)) (unit-resolution (def-axiom (or $x95 (not $x79))) @x303 (not $x79)) (unit-resolution (def-axiom (or $x95 (not $x80))) @x303 (not $x80)) (unit-resolution (def-axiom (or $x95 $x264)) @x303 $x264) $x300)))
(unit-resolution @x314 @x322 false)))))))))))))))))))))))))))))))))))))))))))))))))
-7378269c0bf8c864db559557bebcaf1734a4d5b0 29 0
+38254797dc481377c1b43bd5f27caf2ac4b4f09e 29 0
unsat
((set-logic <null>)
(proof
@@ -350,7 +350,7 @@
(let ((@x30 (asserted $x29)))
(unit-resolution ((_ th-lemma arith triangle-eq) (or (not $x29) $x183)) @x30 (unit-resolution @x189 @x180 $x184) false)))))))))))))))))))
-ed93cefa9922cae76b281457731fa49405ea5f1e 12 0
+73a07817344b4149f448226a2110372c08f215f6 12 0
unsat
((set-logic <null>)
(proof
--- a/src/HOL/SMT_Examples/VCC_Max.certs Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/SMT_Examples/VCC_Max.certs Tue Mar 29 12:55:25 2022 +0200
@@ -1,4 +1,4 @@
-bb3039fa3c51c2ff1e3d9c4077fcbaf0fc7ae1b5 2924 0
+49e1416aaa3d82d5c60160b24fb878147b44ee17 2924 0
unsat
((set-logic <null>)
(declare-fun ?v0!15 () Int)
--- a/src/HOL/TPTP/atp_problem_import.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/TPTP/atp_problem_import.ML Tue Mar 29 12:55:25 2022 +0200
@@ -313,9 +313,7 @@
Translator
lam_trans uncurried_aliases readable_names presimp [] conj facts
- val ord = Sledgehammer_ATP_Systems.effective_term_order lthy spassN
- val ord_info = K []
- val lines = lines_of_atp_problem format ord ord_info atp_problem
+ val lines = lines_of_atp_problem format (K []) atp_problem
in
List.app Output.physical_stdout lines
end
--- a/src/HOL/TPTP/atp_theory_export.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/TPTP/atp_theory_export.ML Tue Mar 29 12:55:25 2022 +0200
@@ -51,14 +51,13 @@
val prob_file = File.tmp_path (Path.explode "prob")
val atp = atp_of_format format
val {exec, arguments, proof_delims, known_failures, ...} = get_atp thy atp ()
- val ord = effective_term_order ctxt atp
val _ = problem
- |> lines_of_atp_problem format ord (K [])
+ |> lines_of_atp_problem format (K [])
|> File.write_list prob_file
val path = getenv (List.last (fst exec)) ^ "/" ^ List.last (snd exec)
val command =
space_implode " " (File.bash_path (Path.explode path) ::
- arguments ctxt false "" atp_timeout prob_file (ord, K [], K []))
+ arguments ctxt false "" atp_timeout prob_file)
val outcome =
Timeout.apply atp_timeout Isabelle_System.bash_output command
|> fst
@@ -208,9 +207,6 @@
|> order_problem_facts name_ord)
end
-fun lines_of_problem ctxt format =
- lines_of_atp_problem format (effective_term_order ctxt eN (* dummy *)) (K [])
-
fun write_lines path ss =
let
val _ = File.write path ""
@@ -220,7 +216,7 @@
fun generate_atp_inference_file_for_theory ctxt thy format infer_policy type_enc file_name =
let
val (_, problem) = problem_of_theory ctxt thy format infer_policy type_enc
- val ss = lines_of_problem ctxt format problem
+ val ss = lines_of_atp_problem format (K []) problem
in write_lines (Path.explode file_name) ss end
fun ap dir = Path.append dir o Path.explode
@@ -302,7 +298,7 @@
val fact_tab = Symtab.make (map (fn fact as (_, th) => (Thm.get_name_hint th, fact)) facts)
fun write_prelude () =
- let val ss = lines_of_problem ctxt format prelude in
+ let val ss = lines_of_atp_problem format (K []) prelude in
File.append file_order_path (prelude_base_name ^ "\n");
write_lines (ap include_dir prelude_name) ss
end
@@ -310,7 +306,7 @@
fun write_include_file (base_name, fact_lines) =
let
val name = base_name ^ include_suffix
- val ss = lines_of_problem ctxt format [(factsN, fact_lines)]
+ val ss = lines_of_atp_problem format (K []) [(factsN, fact_lines)]
in
File.append file_order_path (base_name ^ "\n");
write_lines (ap include_dir name) ss
--- a/src/HOL/Tools/ATP/atp_problem.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/ATP/atp_problem.ML Tue Mar 29 12:55:25 2022 +0200
@@ -128,40 +128,31 @@
val bool_atype : (string * string) atp_type
val individual_atype : (string * string) atp_type
val mk_anot : ('a, 'b, 'c, 'd) atp_formula -> ('a, 'b, 'c, 'd) atp_formula
- val mk_aconn :
- atp_connective -> ('a, 'b, 'c, 'd) atp_formula
- -> ('a, 'b, 'c, 'd) atp_formula -> ('a, 'b, 'c, 'd) atp_formula
+ val mk_aconn : atp_connective -> ('a, 'b, 'c, 'd) atp_formula -> ('a, 'b, 'c, 'd) atp_formula ->
+ ('a, 'b, 'c, 'd) atp_formula
val mk_app : (string, 'a) atp_term -> (string, 'a) atp_term -> (string, 'a) atp_term
val mk_apps : (string, 'a) atp_term -> (string, 'a) atp_term list -> (string, 'a) atp_term
val mk_simple_aterm: 'a -> ('a, 'b) atp_term
- val aconn_fold :
- bool option -> (bool option -> 'a -> 'b -> 'b) -> atp_connective * 'a list
- -> 'b -> 'b
- val aconn_map :
- bool option -> (bool option -> 'a -> ('b, 'c, 'd, 'e) atp_formula)
- -> atp_connective * 'a list -> ('b, 'c, 'd, 'e) atp_formula
- val formula_fold :
- bool option -> (bool option -> 'c -> 'e -> 'e)
- -> ('a, 'b, 'c, 'd) atp_formula -> 'e -> 'e
- val formula_map :
- ('c -> 'e) -> ('a, 'b, 'c, 'd) atp_formula -> ('a, 'b, 'e, 'd) atp_formula
+ val aconn_fold : bool option -> (bool option -> 'a -> 'b -> 'b) -> atp_connective * 'a list ->
+ 'b -> 'b
+ val aconn_map : bool option -> (bool option -> 'a -> ('b, 'c, 'd, 'e) atp_formula) ->
+ atp_connective * 'a list -> ('b, 'c, 'd, 'e) atp_formula
+ val formula_fold : bool option -> (bool option -> 'c -> 'e -> 'e) ->
+ ('a, 'b, 'c, 'd) atp_formula -> 'e -> 'e
+ val formula_map : ('c -> 'e) -> ('a, 'b, 'c, 'd) atp_formula -> ('a, 'b, 'e, 'd) atp_formula
val strip_atype : 'a atp_type -> 'a list * ('a atp_type list * 'a atp_type)
val is_format_higher_order : atp_format -> bool
val tptp_string_of_format : atp_format -> string
val tptp_string_of_role : atp_formula_role -> string
val tptp_string_of_line : atp_format -> string atp_problem_line -> string
- val lines_of_atp_problem :
- atp_format -> term_order -> (unit -> (string * int) list)
- -> string atp_problem -> string list
- val ensure_cnf_problem :
- (string * string) atp_problem -> (string * string) atp_problem
- val filter_cnf_ueq_problem :
- (string * string) atp_problem -> (string * string) atp_problem
+ val lines_of_atp_problem : atp_format -> (unit -> (string * int) list) -> string atp_problem ->
+ string list
+ val ensure_cnf_problem : (string * string) atp_problem -> (string * string) atp_problem
+ val filter_cnf_ueq_problem : (string * string) atp_problem -> (string * string) atp_problem
val declared_in_atp_problem : 'a atp_problem -> ('a list * 'a list) * 'a list
- val nice_atp_problem :
- bool -> atp_format -> ('a * (string * string) atp_problem_line list) list
- -> ('a * string atp_problem_line list) list
- * (string Symtab.table * string Symtab.table) option
+ val nice_atp_problem : bool -> atp_format ->
+ ('a * (string * string) atp_problem_line list) list ->
+ ('a * string atp_problem_line list) list * (string Symtab.table * string Symtab.table) option
end;
structure ATP_Problem : ATP_PROBLEM =
@@ -583,8 +574,7 @@
|> is_format_higher_order format ? parens
| tptp_string_of_formula format (AConn (c, [phi])) =
tptp_string_of_connective c ^ " " ^
- (tptp_string_of_formula format phi
- |> is_format_higher_order format ? parens)
+ (tptp_string_of_formula format phi |> parens)
|> parens
| tptp_string_of_formula format (AConn (c, phis)) =
space_implode (" " ^ tptp_string_of_connective c ^ " ")
@@ -694,8 +684,14 @@
fun maybe_enclose bef aft "" = "% " ^ bef ^ aft
| maybe_enclose bef aft s = bef ^ s ^ aft
-fun dfg_lines poly {is_lpo, gen_weights, gen_prec, gen_simp} ord_info problem =
+fun dfg_lines poly ord_info problem =
let
+ (* hardcoded settings *)
+ val is_lpo = false
+ val gen_weights = true
+ val gen_prec = true
+ val gen_simp = false
+
val typ = string_of_type (DFG poly)
val term = dfg_string_of_term
fun spair (s, s') = "(" ^ s ^ ", " ^ s' ^ ")"
@@ -802,11 +798,11 @@
["end_problem.\n"]
end
-fun lines_of_atp_problem format ord ord_info problem =
+fun lines_of_atp_problem format ord_info problem =
"% This file was generated by Isabelle (most likely Sledgehammer)\n\
\% " ^ timestamp () ^ "\n" ::
(case format of
- DFG poly => dfg_lines poly ord ord_info
+ DFG poly => dfg_lines poly ord_info
| _ => tptp_lines format) problem
--- a/src/HOL/Tools/ATP/atp_problem_generate.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/ATP/atp_problem_generate.ML Tue Mar 29 12:55:25 2022 +0200
@@ -117,7 +117,6 @@
mode -> string -> bool -> bool -> bool -> term list -> term ->
((string * stature) * term) list -> string atp_problem * string Symtab.table
* (string * term) list * int Symtab.table
- val atp_problem_selection_weights : string atp_problem -> (string * real) list
val atp_problem_term_order_info : string atp_problem -> (string * int) list
end;
@@ -2923,42 +2922,6 @@
val fact_max_weight = 1.0
val type_info_default_weight = 0.8
-(* Weights are from 0.0 (most important) to 1.0 (least important). *)
-fun atp_problem_selection_weights problem =
- let
- fun add_term_weights weight (ATerm ((s, _), tms)) =
- is_tptp_user_symbol s ? Symtab.default (s, weight) #> fold (add_term_weights weight) tms
- | add_term_weights weight (AAbs ((_, tm), args)) =
- add_term_weights weight tm #> fold (add_term_weights weight) args
- fun add_line_weights weight (Formula (_, _, phi, _, _)) =
- formula_fold NONE (K (add_term_weights weight)) phi
- | add_line_weights _ _ = I
- fun add_conjectures_weights [] = I
- | add_conjectures_weights conjs =
- let val (hyps, conj) = split_last conjs in
- add_line_weights conj_weight conj
- #> fold (add_line_weights hyp_weight) hyps
- end
- fun add_facts_weights facts =
- let
- val num_facts = length facts
- fun weight_of j =
- fact_min_weight + (fact_max_weight - fact_min_weight) * Real.fromInt j
- / Real.fromInt num_facts
- in
- fold_index (fn (i, fact) => add_line_weights (weight_of i) fact) facts
- end
- val get = these o AList.lookup (op =) problem
- in
- Symtab.empty
- |> add_conjectures_weights (get free_typesN @ get conjsN)
- |> add_facts_weights (get factsN)
- |> fold (fold (add_line_weights type_info_default_weight) o get)
- [explicit_declsN, subclassesN, tconsN]
- |> Symtab.dest
- |> sort (prod_ord Real.compare string_ord o apply2 swap)
- end
-
(* Ugly hack: may make innocent victims (collateral damage) *)
fun may_be_app s args = String.isPrefix app_op_name s andalso length args = 2
fun may_be_predicator s =
--- a/src/HOL/Tools/BNF/bnf_def.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/BNF/bnf_def.ML Tue Mar 29 12:55:25 2022 +0200
@@ -275,6 +275,7 @@
map_id: thm lazy,
map_ident0: thm lazy,
map_ident: thm lazy,
+ map_ident_strong: thm lazy,
map_transfer: thm lazy,
rel_eq: thm lazy,
rel_flip: thm lazy,
@@ -311,8 +312,8 @@
fun mk_facts bd_Card_order bd_Cinfinite bd_Cnotzero collect_set_map in_bd in_cong in_mono in_rel
inj_map inj_map_strong map_comp map_cong map_cong_simp map_cong_pred map_id map_ident0 map_ident
- map_transfer rel_eq rel_flip set_map rel_cong0 rel_cong rel_cong_simp rel_map rel_mono
- rel_mono_strong0 rel_mono_strong set_transfer rel_Grp rel_conversep rel_OO rel_refl
+ map_ident_strong map_transfer rel_eq rel_flip set_map rel_cong0 rel_cong rel_cong_simp rel_map
+ rel_mono rel_mono_strong0 rel_mono_strong set_transfer rel_Grp rel_conversep rel_OO rel_refl
rel_refl_strong rel_reflp rel_symp rel_transp rel_transfer rel_eq_onp pred_transfer pred_True
pred_map pred_rel pred_mono_strong0 pred_mono_strong pred_mono pred_cong0 pred_cong
pred_cong_simp = {
@@ -333,6 +334,7 @@
map_id = map_id,
map_ident0 = map_ident0,
map_ident = map_ident,
+ map_ident_strong = map_ident_strong,
map_transfer = map_transfer,
rel_eq = rel_eq,
rel_flip = rel_flip,
@@ -384,6 +386,7 @@
map_id,
map_ident0,
map_ident,
+ map_ident_strong,
map_transfer,
rel_eq,
rel_flip,
@@ -433,6 +436,7 @@
map_id = Lazy.map f map_id,
map_ident0 = Lazy.map f map_ident0,
map_ident = Lazy.map f map_ident,
+ map_ident_strong = Lazy.map f map_ident_strong,
map_transfer = Lazy.map f map_transfer,
rel_eq = Lazy.map f rel_eq,
rel_flip = Lazy.map f rel_flip,
@@ -591,6 +595,7 @@
val map_id_of_bnf = Lazy.force o #map_id o #facts o rep_bnf;
val map_ident0_of_bnf = Lazy.force o #map_ident0 o #facts o rep_bnf;
val map_ident_of_bnf = Lazy.force o #map_ident o #facts o rep_bnf;
+val map_ident_strong_of_bnf = Lazy.force o #map_ident_strong o #facts o rep_bnf;
val map_transfer_of_bnf = Lazy.force o #map_transfer o #facts o rep_bnf;
val rel_eq_onp_of_bnf = Lazy.force o #rel_eq_onp o #facts o rep_bnf;
val pred_def_of_bnf = #pred_def o #defs o rep_bnf;
@@ -845,6 +850,7 @@
val map_id0N = "map_id0";
val map_idN = "map_id";
val map_identN = "map_ident";
+val map_ident_strongN = "map_ident_strong";
val map_transferN = "map_transfer";
val pred_mono_strong0N = "pred_mono_strong0";
val pred_mono_strongN = "pred_mono_strong";
@@ -940,6 +946,7 @@
(map_id0N, [#map_id0 axioms], []),
(map_transferN, [Lazy.force (#map_transfer facts)], []),
(map_identN, [Lazy.force (#map_ident facts)], []),
+ (map_ident_strongN, [Lazy.force (#map_ident_strong facts)], []),
(pred_monoN, [Lazy.force (#pred_mono facts)], mono_attrs),
(pred_mono_strongN, [Lazy.force (#pred_mono_strong facts)], []),
(pred_congN, [Lazy.force (#pred_cong facts)], fundefcong_attrs),
@@ -1486,6 +1493,8 @@
val map_id = Lazy.lazy (fn () => mk_map_id (#map_id0 axioms));
val map_ident0 = Lazy.lazy (fn () => mk_map_ident lthy (#map_id0 axioms));
val map_ident = Lazy.lazy (fn () => mk_map_ident lthy (Lazy.force map_id));
+ val map_ident_strong = Lazy.lazy (fn () =>
+ mk_map_ident_strong lthy (#map_cong0 axioms) (Lazy.force map_id));
val map_comp = Lazy.lazy (fn () => mk_map_comp (#map_comp0 axioms));
fun mk_map_cong mk_implies () =
@@ -2019,11 +2028,11 @@
val facts = mk_facts bd_Card_order bd_Cinfinite bd_Cnotzero collect_set_map in_bd in_cong
in_mono in_rel inj_map inj_map_strong map_comp map_cong map_cong_simp map_cong_pred map_id
- map_ident0 map_ident map_transfer rel_eq rel_flip set_map rel_cong0 rel_cong rel_cong_simp
- rel_map rel_mono rel_mono_strong0 rel_mono_strong set_transfer rel_Grp rel_conversep
- rel_OO rel_refl rel_refl_strong rel_reflp rel_symp rel_transp rel_transfer rel_eq_onp
- pred_transfer pred_True pred_map pred_rel pred_mono_strong0 pred_mono_strong pred_mono
- pred_cong0 pred_cong pred_cong_simp;
+ map_ident0 map_ident map_ident_strong map_transfer rel_eq rel_flip set_map rel_cong0
+ rel_cong rel_cong_simp rel_map rel_mono rel_mono_strong0 rel_mono_strong set_transfer
+ rel_Grp rel_conversep rel_OO rel_refl rel_refl_strong rel_reflp rel_symp rel_transp
+ rel_transfer rel_eq_onp pred_transfer pred_True pred_map pred_rel pred_mono_strong0
+ pred_mono_strong pred_mono pred_cong0 pred_cong pred_cong_simp;
val wits = map2 mk_witness bnf_wits wit_thms;
--- a/src/HOL/Tools/BNF/bnf_def_tactics.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/BNF/bnf_def_tactics.ML Tue Mar 29 12:55:25 2022 +0200
@@ -16,6 +16,7 @@
val mk_inj_map_tac: Proof.context -> int -> thm -> thm -> thm -> thm -> tactic
val mk_map_id: thm -> thm
val mk_map_ident: Proof.context -> thm -> thm
+ val mk_map_ident_strong: Proof.context -> thm -> thm -> thm
val mk_map_comp: thm -> thm
val mk_map_cong_tac: Proof.context -> thm -> tactic
val mk_set_map: thm -> thm
@@ -56,6 +57,9 @@
fun mk_map_id id = mk_trans (fun_cong OF [id]) @{thm id_apply};
fun mk_map_ident ctxt = unfold_thms ctxt @{thms id_def};
+fun mk_map_ident_strong ctxt map_cong0 map_id =
+ (trans OF [map_cong0, map_id])
+ |> unfold_thms ctxt @{thms id_apply}
fun mk_map_comp comp = @{thm comp_eq_dest_lhs} OF [mk_sym comp];
fun mk_map_cong_tac ctxt cong0 =
(hyp_subst_tac ctxt THEN' rtac ctxt cong0 THEN'
--- a/src/HOL/Tools/Mirabelle/mirabelle_sledgehammer.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/Mirabelle/mirabelle_sledgehammer.ML Tue Mar 29 12:55:25 2022 +0200
@@ -23,7 +23,6 @@
val keep_probsK = "keep_probs" (*=BOOL: keep temporary problem files created by sledgehammer*)
val keep_proofsK = "keep_proofs" (*=BOOL: keep temporary proof files created by ATPs*)
val proof_methodK = "proof_method" (*=STRING: how to reconstruct proofs (e.g. using metis)*)
-val term_orderK = "term_order" (*=STRING: term order (in E)*)
(*defaults used in this Mirabelle action*)
val check_trivial_default = false
@@ -271,7 +270,7 @@
local
-fun run_sh params term_order keep pos state =
+fun run_sh params keep pos state =
let
fun set_file_name (SOME (dir, keep_probs, keep_proofs)) =
let
@@ -285,12 +284,8 @@
#> Config.put SMT_Config.debug_files (dir ^ "/" ^ filename ^ "__" ^ serial_string ())
end
| set_file_name NONE = I
- val state' =
- state
- |> Proof.map_context
- (set_file_name keep
- #> (Option.map (Config.put Sledgehammer_ATP_Systems.term_order)
- term_order |> the_default I))
+ val state' = state
+ |> Proof.map_context (set_file_name keep)
val ((_, (sledgehammer_outcome, msg)), cpu_time) = Mirabelle.cpu_time (fn () =>
Sledgehammer.run_sledgehammer params Sledgehammer_Prover.Normal NONE 1
@@ -304,8 +299,8 @@
in
-fun run_sledgehammer (params as {provers, ...}) output_dir term_order
- keep_probs keep_proofs proof_method_from_msg thy_index trivial pos st =
+fun run_sledgehammer (params as {provers, ...}) output_dir keep_probs keep_proofs
+ proof_method_from_msg thy_index trivial pos st =
let
val thy = Proof.theory_of st
val thy_name = Context.theory_name thy
@@ -321,7 +316,7 @@
else
NONE
val prover_name = hd provers
- val (sledgehamer_outcome, msg, cpu_time) = run_sh params term_order keep pos st
+ val (sledgehamer_outcome, msg, cpu_time) = run_sh params keep pos st
val (time_prover, change_data, proof_method_and_used_thms) =
(case sledgehamer_outcome of
Sledgehammer.SH_Some {used_facts, run_time, ...} =>
@@ -439,7 +434,6 @@
Mirabelle.get_bool_argument arguments (check_trivialK, check_trivial_default)
val keep_probs = Mirabelle.get_bool_argument arguments (keep_probsK, keep_probs_default)
val keep_proofs = Mirabelle.get_bool_argument arguments (keep_proofsK, keep_proofs_default)
- val term_order = AList.lookup (op =) arguments term_orderK
val proof_method_from_msg = proof_method_from_msg arguments
val params = Sledgehammer_Commands.default_params \<^theory> arguments
@@ -456,8 +450,8 @@
let
val trivial = check_trivial andalso try0 pre handle Timeout.TIMEOUT _ => false
val (outcome, log1, change_data1, proof_method_and_used_thms) =
- run_sledgehammer params output_dir term_order keep_probs keep_proofs
- proof_method_from_msg theory_index trivial pos pre
+ run_sledgehammer params output_dir keep_probs keep_proofs proof_method_from_msg
+ theory_index trivial pos pre
val (log2, change_data2) =
(case proof_method_and_used_thms of
SOME (proof_method, used_thms) =>
--- a/src/HOL/Tools/Qelim/cooper_procedure.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/Qelim/cooper_procedure.ML Tue Mar 29 12:55:25 2022 +0200
@@ -1026,15 +1026,19 @@
fun djf f p q =
(if equal_fm q T then T
else (if equal_fm q F then f p
- else (case f p of T => T | F => q | Lt _ => Or (f p, q)
- | Le _ => Or (f p, q) | Gt _ => Or (f p, q)
- | Ge _ => Or (f p, q) | Eq _ => Or (f p, q)
- | NEq _ => Or (f p, q) | Dvd (_, _) => Or (f p, q)
- | NDvd (_, _) => Or (f p, q) | Not _ => Or (f p, q)
- | And (_, _) => Or (f p, q) | Or (_, _) => Or (f p, q)
- | Imp (_, _) => Or (f p, q) | Iff (_, _) => Or (f p, q)
- | E _ => Or (f p, q) | A _ => Or (f p, q)
- | Closed _ => Or (f p, q) | NClosed _ => Or (f p, q))));
+ else let
+ val fp = f p;
+ in
+ (case fp of T => T | F => q | Lt _ => Or (fp, q)
+ | Le _ => Or (fp, q) | Gt _ => Or (fp, q)
+ | Ge _ => Or (fp, q) | Eq _ => Or (fp, q)
+ | NEq _ => Or (fp, q) | Dvd (_, _) => Or (fp, q)
+ | NDvd (_, _) => Or (fp, q) | Not _ => Or (fp, q)
+ | And (_, _) => Or (fp, q) | Or (_, _) => Or (fp, q)
+ | Imp (_, _) => Or (fp, q) | Iff (_, _) => Or (fp, q)
+ | E _ => Or (fp, q) | A _ => Or (fp, q)
+ | Closed _ => Or (fp, q) | NClosed _ => Or (fp, q))
+ end));
fun evaldjf f ps = foldr (djf f) ps F;
@@ -1811,39 +1815,32 @@
else (zero_inta, Bound n))
| zsplit0 (CN (n, i, a)) =
let
- val aa = zsplit0 a;
- val (ia, ab) = aa;
+ val (ia, aa) = zsplit0 a;
in
- (if equal_nat n zero_nat then (plus_inta i ia, ab)
- else (ia, CN (n, i, ab)))
+ (if equal_nat n zero_nat then (plus_inta i ia, aa)
+ else (ia, CN (n, i, aa)))
end
| zsplit0 (Neg a) = let
- val aa = zsplit0 a;
- val (i, ab) = aa;
+ val (i, aa) = zsplit0 a;
in
- (uminus_int i, Neg ab)
+ (uminus_int i, Neg aa)
end
| zsplit0 (Add (a, b)) = let
- val aa = zsplit0 a;
- val (ia, ab) = aa;
- val ba = zsplit0 b;
- val (ib, bb) = ba;
+ val (ia, aa) = zsplit0 a;
+ val (ib, ba) = zsplit0 b;
in
- (plus_inta ia ib, Add (ab, bb))
+ (plus_inta ia ib, Add (aa, ba))
end
| zsplit0 (Sub (a, b)) = let
- val aa = zsplit0 a;
- val (ia, ab) = aa;
- val ba = zsplit0 b;
- val (ib, bb) = ba;
+ val (ia, aa) = zsplit0 a;
+ val (ib, ba) = zsplit0 b;
in
- (minus_inta ia ib, Sub (ab, bb))
+ (minus_inta ia ib, Sub (aa, ba))
end
| zsplit0 (Mul (i, a)) = let
- val aa = zsplit0 a;
- val (ia, ab) = aa;
+ val (ia, aa) = zsplit0 a;
in
- (times_inta i ia, Mul (i, ab))
+ (times_inta i ia, Mul (i, aa))
end;
fun zlfm (And (p, q)) = And (zlfm p, zlfm q)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Tools/SMT/lethe_isar.ML Tue Mar 29 12:55:25 2022 +0200
@@ -0,0 +1,60 @@
+(* Title: HOL/Tools/SMT/verit_isar.ML
+ Author: Mathias Fleury, TU Muenchen
+ Author: Jasmin Blanchette, TU Muenchen
+
+LETHE proofs as generic ATP proofs for Isar proof reconstruction.
+*)
+
+signature LETHE_ISAR =
+sig
+ type ('a, 'b) atp_step = ('a, 'b) ATP_Proof.atp_step
+ val atp_proof_of_veriT_proof: Proof.context -> term list -> thm list -> term list -> term ->
+ (string * term) list -> int list -> int -> (int * string) list -> Lethe_Proof.lethe_step list ->
+ (term, string) ATP_Proof.atp_step list
+end;
+
+structure Lethe_Isar: LETHE_ISAR =
+struct
+
+open ATP_Util
+open ATP_Problem
+open ATP_Proof
+open ATP_Proof_Reconstruct
+open SMTLIB_Interface
+open SMTLIB_Isar
+open Lethe_Proof
+
+fun atp_proof_of_veriT_proof ctxt ll_defs rewrite_rules hyp_ts concl_t fact_helper_ts prem_ids
+ conjecture_id fact_helper_ids =
+ let
+ fun steps_of (Lethe_Proof.Lethe_Step {id, rule, prems, concl, ...}) =
+ let
+ val concl' = postprocess_step_conclusion ctxt rewrite_rules ll_defs concl
+ fun standard_step role = ((id, []), role, concl', rule, map (rpair []) prems)
+ in
+ if rule = input_rule then
+ let
+ val (_, id_num) = SMTLIB_Interface.role_and_index_of_assert_name id
+ val ss = the_list (AList.lookup (op =) fact_helper_ids id_num)
+ in
+ (case distinguish_conjecture_and_hypothesis ss id_num conjecture_id prem_ids
+ fact_helper_ts hyp_ts concl_t of
+ NONE => []
+ | SOME (role0, concl00) =>
+ let
+ val name0 = (id ^ "a", ss)
+ val concl0 = unskolemize_names ctxt concl00
+ in
+ [(name0, role0, concl0, rule, []),
+ ((id, []), Plain, concl', rewrite_rule,
+ name0 :: normalizing_prems ctxt concl0)]
+ end)
+ end
+ else
+ [standard_step (if null prems then Lemma else Plain)]
+ end
+ in
+ maps steps_of
+ end
+
+end;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Tools/SMT/lethe_proof.ML Tue Mar 29 12:55:25 2022 +0200
@@ -0,0 +1,785 @@
+(* Title: HOL/Tools/SMT/Lethe_Proof.ML
+ Author: Mathias Fleury, ENS Rennes
+ Author: Sascha Boehme, TU Muenchen
+
+Lethe proofs: parsing and abstract syntax tree.
+*)
+
+signature LETHE_PROOF =
+sig
+ (*proofs*)
+ datatype lethe_step = Lethe_Step of {
+ id: string,
+ rule: string,
+ prems: string list,
+ proof_ctxt: term list,
+ concl: term,
+ fixes: string list}
+
+ datatype lethe_replay_node = Lethe_Replay_Node of {
+ id: string,
+ rule: string,
+ args: term list,
+ prems: string list,
+ proof_ctxt: term list,
+ concl: term,
+ bounds: (string * typ) list,
+ declarations: (string * term) list,
+ insts: term Symtab.table,
+ subproof: (string * typ) list * term list * term list * lethe_replay_node list}
+
+ val mk_replay_node: string -> string -> term list -> string list -> term list ->
+ term -> (string * typ) list -> term Symtab.table -> (string * term) list ->
+ (string * typ) list * term list * term list * lethe_replay_node list -> lethe_replay_node
+
+ (*proof parser*)
+ val parse: typ Symtab.table -> term Symtab.table -> string list ->
+ Proof.context -> lethe_step list * Proof.context
+ val parse_replay: typ Symtab.table -> term Symtab.table -> string list ->
+ Proof.context -> lethe_replay_node list * Proof.context
+
+ val step_prefix : string
+ val input_rule: string
+ val keep_app_symbols: string -> bool
+ val keep_raw_lifting: string -> bool
+ val normalized_input_rule: string
+ val la_generic_rule : string
+ val rewrite_rule : string
+ val simp_arith_rule : string
+ val lethe_deep_skolemize_rule : string
+ val lethe_def : string
+ val subproof_rule : string
+ val local_input_rule : string
+ val not_not_rule : string
+ val contract_rule : string
+ val ite_intro_rule : string
+ val eq_congruent_rule : string
+ val eq_congruent_pred_rule : string
+ val skolemization_steps : string list
+ val theory_resolution2_rule: string
+ val equiv_pos2_rule: string
+ val th_resolution_rule: string
+
+ val is_skolemization: string -> bool
+ val is_skolemization_step: lethe_replay_node -> bool
+
+ val number_of_steps: lethe_replay_node list -> int
+
+end;
+
+structure Lethe_Proof: LETHE_PROOF =
+struct
+
+open SMTLIB_Proof
+
+datatype raw_lethe_node = Raw_Lethe_Node of {
+ id: string,
+ rule: string,
+ args: SMTLIB.tree,
+ prems: string list,
+ concl: SMTLIB.tree,
+ declarations: (string * SMTLIB.tree) list,
+ subproof: raw_lethe_node list}
+
+fun mk_raw_node id rule args prems declarations concl subproof =
+ Raw_Lethe_Node {id = id, rule = rule, args = args, prems = prems, declarations = declarations,
+ concl = concl, subproof = subproof}
+
+datatype lethe_node = Lethe_Node of {
+ id: string,
+ rule: string,
+ prems: string list,
+ proof_ctxt: term list,
+ concl: term}
+
+fun mk_node id rule prems proof_ctxt concl =
+ Lethe_Node {id = id, rule = rule, prems = prems, proof_ctxt = proof_ctxt, concl = concl}
+
+datatype lethe_replay_node = Lethe_Replay_Node of {
+ id: string,
+ rule: string,
+ args: term list,
+ prems: string list,
+ proof_ctxt: term list,
+ concl: term,
+ bounds: (string * typ) list,
+ insts: term Symtab.table,
+ declarations: (string * term) list,
+ subproof: (string * typ) list * term list * term list * lethe_replay_node list}
+
+fun mk_replay_node id rule args prems proof_ctxt concl bounds insts declarations subproof =
+ Lethe_Replay_Node {id = id, rule = rule, args = args, prems = prems, proof_ctxt = proof_ctxt,
+ concl = concl, bounds = bounds, insts = insts, declarations = declarations,
+ subproof = subproof}
+
+datatype lethe_step = Lethe_Step of {
+ id: string,
+ rule: string,
+ prems: string list,
+ proof_ctxt: term list,
+ concl: term,
+ fixes: string list}
+
+fun mk_step id rule prems proof_ctxt concl fixes =
+ Lethe_Step {id = id, rule = rule, prems = prems, proof_ctxt = proof_ctxt, concl = concl,
+ fixes = fixes}
+
+val step_prefix = ".c"
+val input_rule = "input"
+val la_generic_rule = "la_generic"
+val normalized_input_rule = "__normalized_input" (*arbitrary*)
+val rewrite_rule = "__rewrite" (*arbitrary*)
+val subproof_rule = "subproof"
+val local_input_rule = "__local_input" (*arbitrary*)
+val simp_arith_rule = "simp_arith"
+val lethe_def = "__skolem_definition" (*arbitrary*)
+val not_not_rule = "not_not"
+val contract_rule = "contraction"
+val eq_congruent_pred_rule = "eq_congruent_pred"
+val eq_congruent_rule = "eq_congruent"
+val ite_intro_rule = "ite_intro"
+val default_skolem_rule = "sko_forall" (*arbitrary, but must be one of the skolems*)
+val theory_resolution2_rule = "__theory_resolution2" (*arbitrary*)
+val equiv_pos2_rule = "equiv_pos2"
+val th_resolution_rule = "th_resolution"
+
+val skolemization_steps = ["sko_forall", "sko_ex"]
+val is_skolemization = member (op =) skolemization_steps
+val keep_app_symbols = member (op =) [eq_congruent_pred_rule, eq_congruent_rule, ite_intro_rule]
+val keep_raw_lifting = member (op =) [eq_congruent_pred_rule, eq_congruent_rule, ite_intro_rule]
+val is_SH_trivial = member (op =) [not_not_rule, contract_rule]
+
+fun is_skolemization_step (Lethe_Replay_Node {id, ...}) = is_skolemization id
+
+(* Even the lethe developers do not know if the following rule can still appear in proofs: *)
+val lethe_deep_skolemize_rule = "deep_skolemize"
+
+fun number_of_steps [] = 0
+ | number_of_steps ((Lethe_Replay_Node {subproof = (_, _, _, subproof), ...}) :: pf) =
+ 1 + number_of_steps subproof + number_of_steps pf
+
+(* proof parser *)
+
+fun node_of p cx =
+ ([], cx)
+ ||>> `(with_fresh_names (term_of p))
+ |>> snd
+
+fun synctactic_var_subst old_name new_name (u $ v) =
+ (synctactic_var_subst old_name new_name u $ synctactic_var_subst old_name new_name v)
+ | synctactic_var_subst old_name new_name (Abs (v, T, u)) =
+ Abs (if String.isPrefix old_name v then new_name else v, T,
+ synctactic_var_subst old_name new_name u)
+ | synctactic_var_subst old_name new_name (Free (v, T)) =
+ if String.isPrefix old_name v then Free (new_name, T) else Free (v, T)
+ | synctactic_var_subst _ _ t = t
+
+fun synctatic_rew_in_lhs_subst old_name new_name (Const(\<^const_name>\<open>HOL.eq\<close>, T) $ t1 $ t2) =
+ Const(\<^const_name>\<open>HOL.eq\<close>, T) $ synctactic_var_subst old_name new_name t1 $ t2
+ | synctatic_rew_in_lhs_subst old_name new_name (Const(\<^const_name>\<open>Trueprop\<close>, T) $ t1) =
+ Const(\<^const_name>\<open>Trueprop\<close>, T) $ (synctatic_rew_in_lhs_subst old_name new_name t1)
+ | synctatic_rew_in_lhs_subst _ _ t = t
+
+fun add_bound_variables_to_ctxt cx =
+ fold (update_binding o
+ (fn (s, SOME typ) => (s, Term (Free (s, type_of cx typ)))))
+
+local
+ fun extract_symbols bds =
+ bds
+ |> map (fn (SMTLIB.S [SMTLIB.Sym "=", SMTLIB.Sym x, SMTLIB.Sym y], typ) => [([x, y], typ)]
+ | t => raise (Fail ("match error " ^ @{make_string} t)))
+ |> flat
+
+ (* onepoint can bind a variable to another variable or to a constant *)
+ fun extract_qnt_symbols cx bds =
+ bds
+ |> map (fn (SMTLIB.S [SMTLIB.Sym "=", SMTLIB.Sym x, SMTLIB.Sym y], typ) =>
+ (case node_of (SMTLIB.Sym y) cx of
+ ((_, []), _) => [([x], typ)]
+ | _ => [([x, y], typ)])
+ | (SMTLIB.S (SMTLIB.Sym "=" :: SMTLIB.Sym x :: _), typ) => [([x], typ)]
+ | t => raise (Fail ("match error " ^ @{make_string} t)))
+ |> flat
+
+ fun extract_symbols_map bds =
+ bds
+ |> map (fn (SMTLIB.S [SMTLIB.Sym "=", SMTLIB.Sym x, _], typ) => [([x], typ)])
+ |> flat
+in
+
+fun declared_csts _ "__skolem_definition" [(SMTLIB.S [SMTLIB.Sym x, typ, _], _)] = [(x, typ)]
+ | declared_csts _ "__skolem_definition" t = raise (Fail ("unrecognized skolem_definition " ^ @{make_string} t))
+ | declared_csts _ _ _ = []
+
+fun skolems_introduced_by_rule (SMTLIB.S bds) =
+ fold (fn (SMTLIB.S [SMTLIB.Sym "=", _, SMTLIB.Sym y]) => curry (op ::) y) bds []
+
+(*FIXME there is probably a way to use the information given by onepoint*)
+fun bound_vars_by_rule _ "bind" (bds) = extract_symbols bds
+ | bound_vars_by_rule cx "onepoint" bds = extract_qnt_symbols cx bds
+ | bound_vars_by_rule _ "sko_forall" bds = extract_symbols_map bds
+ | bound_vars_by_rule _ "sko_ex" bds = extract_symbols_map bds
+ | bound_vars_by_rule _ "__skolem_definition" [(SMTLIB.S [SMTLIB.Sym x, typ, _], _)] = [([x], SOME typ)]
+ | bound_vars_by_rule _ "__skolem_definition" [(SMTLIB.S [_, SMTLIB.Sym x, _], _)] = [([x], NONE)]
+ | bound_vars_by_rule _ _ _ = []
+
+(* Lethe adds "?" before some variables. *)
+fun remove_all_qm (SMTLIB.Sym v :: l) =
+ SMTLIB.Sym (perhaps (try (unprefix "?")) v) :: remove_all_qm l
+ | remove_all_qm (SMTLIB.S l :: l') = SMTLIB.S (remove_all_qm l) :: remove_all_qm l'
+ | remove_all_qm (SMTLIB.Key v :: l) = SMTLIB.Key v :: remove_all_qm l
+ | remove_all_qm (v :: l) = v :: remove_all_qm l
+ | remove_all_qm [] = []
+
+fun remove_all_qm2 (SMTLIB.Sym v) = SMTLIB.Sym (perhaps (try (unprefix "?")) v)
+ | remove_all_qm2 (SMTLIB.S l) = SMTLIB.S (remove_all_qm l)
+ | remove_all_qm2 (SMTLIB.Key v) = SMTLIB.Key v
+ | remove_all_qm2 v = v
+
+end
+
+datatype step_kind = ASSUME | ANCHOR | NO_STEP | NORMAL_STEP | SKOLEM
+
+fun parse_raw_proof_steps (limit : string option) (ls : SMTLIB.tree list) (cx : name_bindings) :
+ (raw_lethe_node list * SMTLIB.tree list * name_bindings) =
+ let
+ fun rotate_pair (a, (b, c)) = ((a, b), c)
+ fun step_kind [] = (NO_STEP, SMTLIB.S [], [])
+ | step_kind ((p as SMTLIB.S (SMTLIB.Sym "anchor" :: _)) :: l) = (ANCHOR, p, l)
+ | step_kind ((p as SMTLIB.S (SMTLIB.Sym "assume" :: _)) :: l) = (ASSUME, p, l)
+ | step_kind ((p as SMTLIB.S (SMTLIB.Sym "step" :: _)) :: l) = (NORMAL_STEP, p, l)
+ | step_kind ((p as SMTLIB.S (SMTLIB.Sym "define-fun" :: _)) :: l) = (SKOLEM, p, l)
+ | step_kind p = raise (Fail ("step_kind unrec: " ^ @{make_string} p))
+ fun parse_skolem (SMTLIB.S [SMTLIB.Sym "define-fun", SMTLIB.Sym id, _, typ,
+ SMTLIB.S (SMTLIB.Sym "!" :: t :: [SMTLIB.Key _, SMTLIB.Sym name])]) cx =
+ (*replace the name binding by the constant instead of the full term in order to reduce
+ the size of the generated terms and therefore the reconstruction time*)
+ let val (l, cx) = (fst oo SMTLIB_Proof.extract_and_update_name_bindings) t cx
+ |> apsnd (SMTLIB_Proof.update_name_binding (name, SMTLIB.Sym id))
+ in
+ (mk_raw_node (id ^ lethe_def) lethe_def (SMTLIB.S [SMTLIB.Sym id, typ, l]) [] []
+ (SMTLIB.S [SMTLIB.Sym "=", SMTLIB.Sym id, l]) [], cx)
+ end
+ | parse_skolem (SMTLIB.S [SMTLIB.Sym "define-fun", SMTLIB.Sym id, _, typ, SMTLIB.S l]) cx =
+ let val (l, cx) = (fst oo SMTLIB_Proof.extract_and_update_name_bindings) (SMTLIB.S l ) cx
+ in
+ (mk_raw_node (id ^ lethe_def) lethe_def (SMTLIB.S [SMTLIB.Sym id, typ, l]) [] []
+ (SMTLIB.S [SMTLIB.Sym "=", SMTLIB.Sym id, l]) [], cx)
+ end
+ | parse_skolem t _ = raise Fail ("unrecognized Lethe proof " ^ \<^make_string> t)
+ fun get_id_cx (SMTLIB.S ((SMTLIB.Sym _) :: (SMTLIB.Sym id) :: l), cx) = (id, (l, cx))
+ | get_id_cx t = raise Fail ("unrecognized Lethe proof " ^ \<^make_string> t)
+ fun get_id (SMTLIB.S ((SMTLIB.Sym _) :: (SMTLIB.Sym id) :: l)) = (id, l)
+ | get_id t = raise Fail ("unrecognized Lethe proof " ^ \<^make_string> t)
+ fun parse_source (SMTLIB.Key "premises" :: SMTLIB.S source ::l, cx) =
+ (SOME (map (fn (SMTLIB.Sym id) => id) source), (l, cx))
+ | parse_source (l, cx) = (NONE, (l, cx))
+ fun parse_rule (SMTLIB.Key "rule" :: SMTLIB.Sym r :: l, cx) = (r, (l, cx))
+ | parse_rule t = raise Fail ("unrecognized Lethe proof " ^ \<^make_string> t)
+ fun parse_anchor_step (SMTLIB.S (SMTLIB.Sym "anchor" :: SMTLIB.Key "step" :: SMTLIB.Sym r :: l), cx) = (r, (l, cx))
+ | parse_anchor_step t = raise Fail ("unrecognized Lethe proof " ^ \<^make_string> t)
+ fun parse_args (SMTLIB.Key "args" :: args :: l, cx) =
+ let val ((args, cx), _) = SMTLIB_Proof.extract_and_update_name_bindings args cx
+ in (args, (l, cx)) end
+ | parse_args (l, cx) = (SMTLIB.S [], (l, cx))
+ fun parse_and_clausify_conclusion (SMTLIB.S (SMTLIB.Sym "cl" :: []) :: l, cx) =
+ (SMTLIB.Sym "false", (l, cx))
+ | parse_and_clausify_conclusion (SMTLIB.S (SMTLIB.Sym "cl" :: concl) :: l, cx) =
+ let val (concl, cx) = fold_map (fst oo SMTLIB_Proof.extract_and_update_name_bindings) concl cx
+ in (SMTLIB.S (SMTLIB.Sym "or" :: concl), (l, cx)) end
+ | parse_and_clausify_conclusion t = raise Fail ("unrecognized Lethe proof " ^ \<^make_string> t)
+ val parse_normal_step =
+ get_id_cx
+ ##> parse_and_clausify_conclusion
+ #> rotate_pair
+ ##> parse_rule
+ #> rotate_pair
+ ##> parse_source
+ #> rotate_pair
+ ##> parse_args
+ #> rotate_pair
+
+ fun to_raw_node subproof ((((id, concl), rule), prems), args) =
+ mk_raw_node id rule args (the_default [] prems) [] concl subproof
+ fun at_discharge NONE _ = false
+ | at_discharge (SOME id) p = p |> get_id |> fst |> (fn id2 => id = id2)
+ in
+ case step_kind ls of
+ (NO_STEP, _, _) => ([],[], cx)
+ | (NORMAL_STEP, p, l) =>
+ if at_discharge limit p then ([], ls, cx) else
+ let
+ (*ignores content of "discharge": Isabelle is keeping track of it via the context*)
+ val (s, (_, cx)) = (p, cx)
+ |> parse_normal_step
+ |>> (to_raw_node [])
+ val (rp, rl, cx) = parse_raw_proof_steps limit l cx
+ in (s :: rp, rl, cx) end
+ | (ASSUME, p, l) =>
+ let
+ val (id, t :: []) = p
+ |> get_id
+ val ((t, cx), _) = SMTLIB_Proof.extract_and_update_name_bindings t cx
+ val s = mk_raw_node id input_rule (SMTLIB.S []) [] [] t []
+ val (rp, rl, cx) = parse_raw_proof_steps limit l cx
+ in (s :: rp, rl, cx) end
+ | (ANCHOR, p, l) =>
+ let
+ val (anchor_id, (anchor_args, (_, cx))) = (p, cx) |> (parse_anchor_step ##> parse_args)
+ val (subproof, discharge_step :: remaining_proof, cx) = parse_raw_proof_steps (SOME anchor_id) l cx
+ val (curss, (_, cx)) = parse_normal_step (discharge_step, cx)
+ val s = to_raw_node subproof (fst curss, anchor_args)
+ val (rp, rl, cx) = parse_raw_proof_steps limit remaining_proof cx
+ in (s :: rp, rl, cx) end
+ | (SKOLEM, p, l) =>
+ let
+ val (s, cx) = parse_skolem p cx
+ val (rp, rl, cx) = parse_raw_proof_steps limit l cx
+ in (s :: rp, rl, cx) end
+ end
+
+fun proof_ctxt_of_rule "bind" t = t
+ | proof_ctxt_of_rule "sko_forall" t = t
+ | proof_ctxt_of_rule "sko_ex" t = t
+ | proof_ctxt_of_rule "let" t = t
+ | proof_ctxt_of_rule "onepoint" t = t
+ | proof_ctxt_of_rule _ _ = []
+
+fun args_of_rule "bind" t = t
+ | args_of_rule "la_generic" t = t
+ | args_of_rule _ _ = []
+
+fun insts_of_forall_inst "forall_inst" t = map (fn SMTLIB.S [_, SMTLIB.Sym x, a] => (x, a)) t
+ | insts_of_forall_inst _ _ = []
+
+fun id_of_last_step prems =
+ if null prems then []
+ else
+ let val Lethe_Replay_Node {id, ...} = List.last prems in [id] end
+
+fun extract_assumptions_from_subproof subproof =
+ let fun extract_assumptions_from_subproof (Lethe_Replay_Node {rule, concl, ...}) assms =
+ if rule = local_input_rule then concl :: assms else assms
+ in
+ fold extract_assumptions_from_subproof subproof []
+ end
+
+fun normalized_rule_name id rule =
+ (case (rule = input_rule, can SMTLIB_Interface.role_and_index_of_assert_name id) of
+ (true, true) => normalized_input_rule
+ | (true, _) => local_input_rule
+ | _ => rule)
+
+fun is_assm_repetition id rule =
+ rule = input_rule andalso can SMTLIB_Interface.role_and_index_of_assert_name id
+
+fun extract_skolem ([SMTLIB.Sym var, typ, choice]) = (var, typ, choice)
+ | extract_skolem t = raise Fail ("fail to parse type" ^ @{make_string} t)
+
+(* The preprocessing takes care of:
+ 1. unfolding the shared terms
+ 2. extract the declarations of skolems to make sure that there are not unfolded
+*)
+fun preprocess compress step =
+ let
+ fun expand_assms cs =
+ map (fn t => case AList.lookup (op =) cs t of NONE => t | SOME a => a)
+ fun expand_lonely_arguments (args as SMTLIB.S [SMTLIB.Sym "=", _, _]) = [args]
+ | expand_lonely_arguments (x as SMTLIB.S [SMTLIB.Sym var, _]) = [SMTLIB.S [SMTLIB.Sym "=", x, SMTLIB.Sym var]]
+
+ fun preprocess (Raw_Lethe_Node {id, rule, args, prems, concl, subproof, ...}) (cx, remap_assms) =
+ let
+ val (skolem_names, stripped_args) = args
+ |> (fn SMTLIB.S args => args)
+ |> map
+ (fn SMTLIB.S [SMTLIB.Key "=", x, y] => SMTLIB.S [SMTLIB.Sym "=", x, y]
+ | x => x)
+ |> (rule = "bind" orelse rule = "onepoint") ? flat o (map expand_lonely_arguments)
+ |> `(if rule = lethe_def then single o extract_skolem else K [])
+ ||> SMTLIB.S
+
+ val (subproof, (cx, _)) = fold_map preprocess subproof (cx, remap_assms) |> apfst flat
+ val remap_assms = (if rule = "or" then (id, hd prems) :: remap_assms else remap_assms)
+ (* declare variables in the context *)
+ val declarations =
+ if rule = lethe_def
+ then skolem_names |> map (fn (name, _, choice) => (name, choice))
+ else []
+ in
+ if compress andalso rule = "or"
+ then ([], (cx, remap_assms))
+ else ([Raw_Lethe_Node {id = id, rule = rule, args = stripped_args,
+ prems = expand_assms remap_assms prems, declarations = declarations, concl = concl, subproof = subproof}],
+ (cx, remap_assms))
+ end
+ in preprocess step end
+
+fun filter_split _ [] = ([], [])
+ | filter_split f (a :: xs) =
+ (if f a then apfst (curry op :: a) else apsnd (curry op :: a)) (filter_split f xs)
+
+fun extract_types_of_args (SMTLIB.S [var, typ, t as SMTLIB.S [SMTLIB.Sym "choice", _, _]]) =
+ (SMTLIB.S [var, typ, t], SOME typ)
+ |> single
+ | extract_types_of_args (SMTLIB.S t) =
+ let
+ fun extract_types_of_arg (SMTLIB.S [eq, SMTLIB.S [var, typ], t]) = (SMTLIB.S [eq, var, t], SOME typ)
+ | extract_types_of_arg t = (t, NONE)
+ in
+ t
+ |> map extract_types_of_arg
+ end
+
+fun collect_skolem_defs (Raw_Lethe_Node {rule, subproof = subproof, args, ...}) =
+ (if is_skolemization rule then map (fn id => id ^ lethe_def) (skolems_introduced_by_rule args) else []) @
+ flat (map collect_skolem_defs subproof)
+
+(*The postprocessing does:
+ 1. translate the terms to Isabelle syntax, taking care of free variables
+ 2. remove the ambiguity in the proof terms:
+ x \<leadsto> y |- x = x
+ means y = x. To remove ambiguity, we use the fact that y is a free variable and replace the term
+ by:
+ xy \<leadsto> y |- xy = x.
+ This is now does not have an ambiguity and we can safely move the "xy \<leadsto> y" to the proof
+ assumptions.
+*)
+fun postprocess_proof compress ctxt step cx =
+ let
+ fun postprocess (Raw_Lethe_Node {id, rule, args, prems, declarations, concl, subproof}) (cx, rew) =
+ let
+ val _ = (SMT_Config.verit_msg ctxt) (fn () => @{print} ("id =", id, "concl =", concl))
+
+ val args = extract_types_of_args args
+ val globally_bound_vars = declared_csts cx rule args
+ val cx = fold (update_binding o (fn (s, typ) => (s, Term (Free (s, type_of cx typ)))))
+ globally_bound_vars cx
+
+ (*find rebound variables specific to the LHS of the equivalence symbol*)
+ val bound_vars = bound_vars_by_rule cx rule args
+ val bound_vars_no_typ = map fst bound_vars
+ val rhs_vars =
+ fold (fn [t', t] => t <> t' ? (curry (op ::) t) | _ => fn x => x) bound_vars_no_typ []
+
+ fun not_already_bound cx t = SMTLIB_Proof.lookup_binding cx t = None andalso
+ not (member (op =) rhs_vars t)
+ val (shadowing_vars, rebound_lhs_vars) = bound_vars
+ |> filter_split (fn ([t, _], typ) => not_already_bound cx t | _ => true)
+ |>> map (apfst (hd))
+ |>> (fn vars => vars @ flat (map (fn ([_, t], typ) => [(t, typ)] | _ => []) bound_vars))
+ val subproof_rew = fold (fn [t, t'] => curry (op ::) (t, t ^ t'))
+ (map fst rebound_lhs_vars) rew
+ val subproof_rewriter = fold (fn (t, t') => synctatic_rew_in_lhs_subst t t')
+ subproof_rew
+
+ val ((concl, bounds), cx') = node_of concl cx
+
+ val extra_lhs_vars = map (fn ([a,b], typ) => (a, a^b, typ)) rebound_lhs_vars
+ val old_lhs_vars = map (fn (a, _, typ) => (a, typ)) extra_lhs_vars
+ val new_lhs_vars = map (fn (_, newvar, typ) => (newvar, typ)) extra_lhs_vars
+
+ (* postprocess conclusion *)
+ val concl = SMTLIB_Isar.unskolemize_names ctxt (subproof_rewriter concl)
+
+ val _ = (SMT_Config.verit_msg ctxt) (fn () => \<^print> ("id =", id, "concl =", concl))
+ val _ = (SMT_Config.verit_msg ctxt) (fn () => \<^print> ("id =", id, "cx' =", cx',
+ "bound_vars =", bound_vars))
+
+ val bound_tvars =
+ map (fn (s, SOME typ) => (s, type_of cx typ))
+ (shadowing_vars @ new_lhs_vars)
+ val subproof_cx =
+ add_bound_variables_to_ctxt cx (shadowing_vars @ new_lhs_vars) cx
+
+ fun could_unify (Bound i, Bound j) = i = j
+ | could_unify (Var v, Var v') = v = v'
+ | could_unify (Free v, Free v') = v = v'
+ | could_unify (Const (v, ty), Const (v', ty')) = v = v' andalso ty = ty'
+ | could_unify (Abs (_, ty, bdy), Abs (_, ty', bdy')) = ty = ty' andalso could_unify (bdy, bdy')
+ | could_unify (u $ v, u' $ v') = could_unify (u, u') andalso could_unify (v, v')
+ | could_unify _ = false
+ fun is_alpha_renaming t =
+ t
+ |> HOLogic.dest_Trueprop
+ |> HOLogic.dest_eq
+ |> could_unify
+ handle TERM _ => false
+ val alpha_conversion = rule = "bind" andalso is_alpha_renaming concl
+
+ val can_remove_subproof =
+ compress andalso (is_skolemization rule orelse alpha_conversion)
+ val (fixed_subproof : lethe_replay_node list, _) =
+ fold_map postprocess (if can_remove_subproof then [] else subproof)
+ (subproof_cx, subproof_rew)
+
+ val unsk_and_rewrite = SMTLIB_Isar.unskolemize_names ctxt o subproof_rewriter
+
+ (* postprocess assms *)
+ val stripped_args = map fst args
+ val sanitized_args = proof_ctxt_of_rule rule stripped_args
+
+ val arg_cx = add_bound_variables_to_ctxt cx (shadowing_vars @ old_lhs_vars) subproof_cx
+ val (termified_args, _) = fold_map node_of sanitized_args arg_cx |> apfst (map fst)
+ val normalized_args = map unsk_and_rewrite termified_args
+
+ val subproof_assms = proof_ctxt_of_rule rule normalized_args
+
+ (* postprocess arguments *)
+ val rule_args = args_of_rule rule stripped_args
+ val (termified_args, _) = fold_map term_of rule_args subproof_cx
+ val normalized_args = map unsk_and_rewrite termified_args
+ val rule_args = map subproof_rewriter normalized_args
+
+ val raw_insts = insts_of_forall_inst rule stripped_args
+ fun termify_term (x, t) cx = let val (t, cx) = term_of t cx in ((x, t), cx) end
+ val (termified_args, _) = fold_map termify_term raw_insts subproof_cx
+ val insts = Symtab.empty
+ |> fold (fn (x, t) => fn insts => Symtab.update_new (x, t) insts) termified_args
+ |> Symtab.map (K unsk_and_rewrite)
+
+ (* declarations *)
+ val (declarations, _) = fold_map termify_term declarations cx
+ |> apfst (map (apsnd unsk_and_rewrite))
+
+ (* fix step *)
+ val _ = if bounds <> [] then raise (Fail "found dangling variable in concl") else ()
+
+ val skolem_defs = (if is_skolemization rule
+ then map (fn id => id ^ lethe_def) (skolems_introduced_by_rule (SMTLIB.S (map fst args))) else [])
+ val skolems_of_subproof = (if is_skolemization rule
+ then flat (map collect_skolem_defs subproof) else [])
+ val fixed_prems =
+ prems @ (if is_assm_repetition id rule then [id] else []) @
+ skolem_defs @ skolems_of_subproof @ (id_of_last_step fixed_subproof)
+
+ (* fix subproof *)
+ val normalized_rule = normalized_rule_name id rule
+ |> (if compress andalso alpha_conversion then K "refl" else I)
+
+ val extra_assms2 =
+ (if rule = subproof_rule then extract_assumptions_from_subproof fixed_subproof else [])
+
+ val step = mk_replay_node id normalized_rule rule_args fixed_prems subproof_assms concl
+ [] insts declarations (bound_tvars, subproof_assms, extra_assms2, fixed_subproof)
+
+ in
+ (step, (cx', rew))
+ end
+ in
+ postprocess step (cx, [])
+ |> (fn (step, (cx, _)) => (step, cx))
+ end
+
+fun combine_proof_steps ((step1 : lethe_replay_node) :: step2 :: steps) =
+ let
+ val (Lethe_Replay_Node {id = id1, rule = rule1, args = args1, prems = prems1,
+ proof_ctxt = proof_ctxt1, concl = concl1, bounds = bounds1, insts = insts1,
+ declarations = declarations1,
+ subproof = (bound_sub1, assms_sub1, assms_extra1, subproof1)}) = step1
+ val (Lethe_Replay_Node {id = id2, rule = rule2, args = args2, prems = prems2,
+ proof_ctxt = proof_ctxt2, concl = concl2, bounds = bounds2, insts = insts2,
+ declarations = declarations2,
+ subproof = (bound_sub2, assms_sub2, assms_extra2, subproof2)}) = step2
+ val goals1 =
+ (case concl1 of
+ _ $ (Const (\<^const_name>\<open>HOL.disj\<close>, _) $ _ $
+ (Const (\<^const_name>\<open>HOL.disj\<close>, _) $ (Const (\<^const_name>\<open>HOL.Not\<close>, _) $a) $ b)) => [a,b]
+ | _ => [])
+ val goal2 = (case concl2 of _ $ a => a)
+ in
+ if rule1 = equiv_pos2_rule andalso rule2 = th_resolution_rule andalso member (op =) prems2 id1
+ andalso member (op =) goals1 goal2
+ then
+ mk_replay_node id2 theory_resolution2_rule args2 (filter_out (curry (op =) id1) prems2)
+ proof_ctxt2 concl2 bounds2 insts2 declarations2
+ (bound_sub2, assms_sub2, assms_extra2, combine_proof_steps subproof2) ::
+ combine_proof_steps steps
+ else
+ mk_replay_node id1 rule1 args1 prems1
+ proof_ctxt1 concl1 bounds1 insts1 declarations1
+ (bound_sub1, assms_sub1, assms_extra1, combine_proof_steps subproof1) ::
+ combine_proof_steps (step2 :: steps)
+ end
+ | combine_proof_steps steps = steps
+
+
+val linearize_proof =
+ let
+ fun map_node_concl f (Lethe_Node {id, rule, prems, proof_ctxt, concl}) =
+ mk_node id rule prems proof_ctxt (f concl)
+ fun linearize (Lethe_Replay_Node {id = id, rule = rule, args = _, prems = prems,
+ proof_ctxt = proof_ctxt, concl = concl, bounds = bounds, insts = _, declarations = _,
+ subproof = (bounds', assms, inputs, subproof)}) =
+ let
+ val bounds = distinct (op =) bounds
+ val bounds' = distinct (op =) bounds'
+ fun mk_prop_of_term concl =
+ concl |> fastype_of concl = \<^typ>\<open>bool\<close> ? curry (op $) \<^term>\<open>Trueprop\<close>
+ fun remove_assumption_id assumption_id prems =
+ filter_out (curry (op =) assumption_id) prems
+ fun add_assumption assumption concl =
+ \<^Const>\<open>Pure.imp for \<open>mk_prop_of_term assumption\<close> \<open>mk_prop_of_term concl\<close>\<close>
+ fun inline_assumption assumption assumption_id
+ (Lethe_Node {id, rule, prems, proof_ctxt, concl}) =
+ mk_node id rule (remove_assumption_id assumption_id prems) proof_ctxt
+ (add_assumption assumption concl)
+ fun find_input_steps_and_inline [] = []
+ | find_input_steps_and_inline
+ (Lethe_Node {id = id', rule, prems, concl, ...} :: steps) =
+ if rule = input_rule then
+ find_input_steps_and_inline (map (inline_assumption concl id') steps)
+ else
+ mk_node (id') rule prems [] concl :: find_input_steps_and_inline steps
+
+ fun free_bounds bounds (concl) =
+ fold (fn (var, typ) => fn t => Logic.all (Free (var, typ)) t) bounds concl
+ val subproof = subproof
+ |> flat o map linearize
+ |> map (map_node_concl (fold add_assumption (assms @ inputs)))
+ |> map (map_node_concl (free_bounds (bounds @ bounds')))
+ |> find_input_steps_and_inline
+ val concl = free_bounds bounds concl
+ in
+ subproof @ [mk_node id rule prems proof_ctxt concl]
+ end
+ in linearize end
+
+fun rule_of (Lethe_Replay_Node {rule,...}) = rule
+fun subproof_of (Lethe_Replay_Node {subproof = (_, _, _, subproof),...}) = subproof
+
+
+(* Massage Skolems for Sledgehammer.
+
+We have to make sure that there is an "arrow" in the graph for skolemization steps.
+
+
+A. The normal easy case
+
+This function detects the steps of the form
+ P \<longleftrightarrow> Q :skolemization
+ Q :resolution with P
+and replace them by
+ Q :skolemization
+Throwing away the step "P \<longleftrightarrow> Q" completely. This throws away a lot of information, but it does not
+matter too much for Sledgehammer.
+
+
+B. Skolems in subproofs
+Supporting this is more or less hopeless as long as the Isar reconstruction of Sledgehammer
+does not support more features like definitions. lethe is able to generate proofs with skolemization
+happening in subproofs inside the formula.
+ (assume "A \<or> P"
+ ...
+ P \<longleftrightarrow> Q :skolemization in the subproof
+ ...)
+ hence A \<or> P \<longrightarrow> A \<or> Q :lemma
+ ...
+ R :something with some rule
+and replace them by
+ R :skolemization with some rule
+Without any subproof
+*)
+fun remove_skolem_definitions_proof steps =
+ let
+ fun replace_equivalent_by_imp (judgement $ ((Const(\<^const_name>\<open>HOL.eq\<close>, typ) $ arg1) $ arg2)) =
+ judgement $ ((Const(\<^const_name>\<open>HOL.implies\<close>, typ) $ arg1) $ arg2)
+ | replace_equivalent_by_imp a = a (*This case is probably wrong*)
+ fun remove_skolem_definitions (Lethe_Replay_Node {id = id, rule = rule, args = args,
+ prems = prems,
+ proof_ctxt = proof_ctxt, concl = concl, bounds = bounds, insts = insts,
+ declarations = declarations,
+ subproof = (vars, assms', extra_assms', subproof)}) (prems_to_remove, skolems) =
+ let
+ val prems = prems
+ |> filter_out (member (op =) prems_to_remove)
+ val trivial_step = is_SH_trivial rule
+ fun has_skolem_substep st NONE = if is_skolemization (rule_of st) then SOME (rule_of st)
+ else fold has_skolem_substep (subproof_of st) NONE
+ | has_skolem_substep _ a = a
+ val promote_to_skolem = exists (fn t => member (op =) skolems t) prems
+ val promote_from_assms = fold has_skolem_substep subproof NONE <> NONE
+ val promote_step = promote_to_skolem orelse promote_from_assms
+ val skolem_step_to_skip = is_skolemization rule orelse
+ (promote_from_assms andalso length prems > 1)
+ val is_skolem = is_skolemization rule orelse promote_step
+ val prems = prems
+ |> filter_out (fn t => member (op =) skolems t)
+ |> is_skolem ? filter_out (String.isPrefix id)
+ val rule = (if promote_step then default_skolem_rule else rule)
+ val subproof = subproof
+ |> (is_skolem ? K []) (*subproofs of skolemization steps are useless for SH*)
+ |> map (fst o (fn st => remove_skolem_definitions st (prems_to_remove, skolems)))
+ (*no new definitions in subproofs*)
+ |> flat
+ val concl = concl
+ |> is_skolem ? replace_equivalent_by_imp
+ val step = (if skolem_step_to_skip orelse rule = lethe_def orelse trivial_step then []
+ else mk_replay_node id rule args prems proof_ctxt concl bounds insts declarations
+ (vars, assms', extra_assms', subproof)
+ |> single)
+ val defs = (if rule = lethe_def orelse trivial_step then id :: prems_to_remove
+ else prems_to_remove)
+ val skolems = (if skolem_step_to_skip then id :: skolems else skolems)
+ in
+ (step, (defs, skolems))
+ end
+ in
+ fold_map remove_skolem_definitions steps ([], [])
+ |> fst
+ |> flat
+ end
+
+local
+ (*TODO useful?*)
+ fun remove_pattern (SMTLIB.S (SMTLIB.Sym "!" :: t :: [SMTLIB.Key _, SMTLIB.S _])) = t
+ | remove_pattern (SMTLIB.S xs) = SMTLIB.S (map remove_pattern xs)
+ | remove_pattern p = p
+
+ fun import_proof_and_post_process typs funs lines ctxt =
+ let
+ val compress = SMT_Config.compress_verit_proofs ctxt
+ val smtlib_lines_without_qm =
+ lines
+ |> map single
+ |> map SMTLIB.parse
+ |> map remove_all_qm2
+ |> map remove_pattern
+ val (raw_steps, _, _) =
+ parse_raw_proof_steps NONE smtlib_lines_without_qm SMTLIB_Proof.empty_name_binding
+
+ fun process step (cx, cx') =
+ let fun postprocess step (cx, cx') =
+ let val (step, cx) = postprocess_proof compress ctxt step cx
+ in (step, (cx, cx')) end
+ in uncurry (fold_map postprocess) (preprocess compress step (cx, cx')) end
+ val step =
+ (empty_context ctxt typs funs, [])
+ |> fold_map process raw_steps
+ |> (fn (steps, (cx, _)) => (flat steps, cx))
+ |> compress? apfst combine_proof_steps
+ in step end
+in
+
+fun parse typs funs lines ctxt =
+ let
+ val (u, env) = import_proof_and_post_process typs funs lines ctxt
+ val t = u
+ |> remove_skolem_definitions_proof
+ |> flat o (map linearize_proof)
+ fun node_to_step (Lethe_Node {id, rule, prems, concl, ...}) =
+ mk_step id rule prems [] concl []
+ in
+ (map node_to_step t, ctxt_of env)
+ end
+
+fun parse_replay typs funs lines ctxt =
+ let
+ val (u, env) = import_proof_and_post_process typs funs lines ctxt
+ val _ = (SMT_Config.verit_msg ctxt) (fn () => \<^print> u)
+ in
+ (u, ctxt_of env)
+ end
+end
+
+end;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Tools/SMT/lethe_proof_parse.ML Tue Mar 29 12:55:25 2022 +0200
@@ -0,0 +1,76 @@
+(* Title: HOL/Tools/SMT/verit_proof_parse.ML
+ Author: Mathias Fleury, TU Muenchen
+ Author: Jasmin Blanchette, TU Muenchen
+
+VeriT proof parsing.
+*)
+
+signature LETHE_PROOF_PARSE =
+sig
+ type ('a, 'b) atp_step = ('a, 'b) ATP_Proof.atp_step
+ val parse_proof: SMT_Translate.replay_data ->
+ ((string * ATP_Problem_Generate.stature) * thm) list -> term list -> term -> string list ->
+ SMT_Solver.parsed_proof
+end;
+
+structure Lethe_Proof_Parse: LETHE_PROOF_PARSE =
+struct
+
+open ATP_Util
+open ATP_Problem
+open ATP_Proof
+open ATP_Proof_Reconstruct
+open Lethe_Isar
+open Lethe_Proof
+
+fun parse_proof
+ ({context = ctxt, typs, terms, ll_defs, rewrite_rules, assms} : SMT_Translate.replay_data)
+ xfacts prems concl output =
+ let
+ val num_ll_defs = length ll_defs
+
+ val id_of_index = Integer.add num_ll_defs
+ val index_of_id = Integer.add (~ num_ll_defs)
+
+ fun step_of_assume j (_, th) =
+ Lethe_Proof.Lethe_Step {id = SMTLIB_Interface.assert_name_of_role_and_index SMT_Util.Axiom (id_of_index j),
+ rule = input_rule, prems = [], proof_ctxt = [], concl = Thm.prop_of th, fixes = []}
+
+ val (actual_steps, _) = Lethe_Proof.parse typs terms output ctxt
+ val used_assert_ids =
+ map_filter (try (snd o SMTLIB_Interface.role_and_index_of_assert_name)) output
+ val used_assm_js =
+ map_filter (fn id => let val i = index_of_id id in if i >= 0 then SOME i else NONE end)
+ used_assert_ids
+ val used_assms = map (nth assms) used_assm_js
+ val assm_steps = map2 step_of_assume used_assm_js used_assms
+ val steps = assm_steps @ actual_steps
+
+ val conjecture_i = 0
+ val prems_i = conjecture_i + 1
+ val num_prems = length prems
+ val facts_i = prems_i + num_prems
+ val num_facts = length xfacts
+ val helpers_i = facts_i + num_facts
+
+ val conjecture_id = id_of_index conjecture_i
+ val prem_ids = map id_of_index (prems_i upto prems_i + num_prems - 1)
+ val fact_ids' =
+ map_filter (fn j =>
+ let val (i, _) = nth assms j in
+ try (apsnd (nth xfacts)) (id_of_index j, i - facts_i)
+ end) used_assm_js
+ val helper_ids' = filter (fn (i, _) => i >= helpers_i) used_assms
+
+ val fact_helper_ts =
+ map (fn (_, th) => (ATP_Util.short_thm_name ctxt th, Thm.prop_of th)) helper_ids' @
+ map (fn (_, ((s, _), th)) => (s, Thm.prop_of th)) fact_ids'
+ val fact_helper_ids' =
+ map (apsnd (ATP_Util.short_thm_name ctxt)) helper_ids' @ map (apsnd (fst o fst)) fact_ids'
+ in
+ {outcome = NONE, fact_ids = SOME fact_ids',
+ atp_proof = fn () => atp_proof_of_veriT_proof ctxt ll_defs rewrite_rules prems concl
+ fact_helper_ts prem_ids conjecture_id fact_helper_ids' steps}
+ end
+
+end;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Tools/SMT/lethe_replay_methods.ML Tue Mar 29 12:55:25 2022 +0200
@@ -0,0 +1,1191 @@
+(* Title: HOL/Tools/SMT/verit_replay_methods.ML
+ Author: Mathias Fleury, MPII, JKU, University Freiburg
+
+Proof method for replaying veriT proofs.
+*)
+
+signature LETHE_REPLAY_METHODS =
+sig
+
+
+ datatype verit_rule =
+ False | True |
+
+ (*input: a repeated (normalized) assumption of assumption of in a subproof*)
+ Normalized_Input | Local_Input |
+ (*Subproof:*)
+ Subproof |
+ (*Conjunction:*)
+ And | Not_And | And_Pos | And_Neg |
+ (*Disjunction""*)
+ Or | Or_Pos | Not_Or | Or_Neg |
+ (*Disjunction:*)
+ Implies | Implies_Neg1 | Implies_Neg2 | Implies_Pos | Not_Implies1 | Not_Implies2 |
+ (*Equivalence:*)
+ Equiv_neg1 | Equiv_pos1 | Equiv_pos2 | Equiv_neg2 | Not_Equiv1 | Not_Equiv2 | Equiv1 | Equiv2 |
+ (*If-then-else:*)
+ ITE_Pos1 | ITE_Pos2 | ITE_Neg1 | ITE_Neg2 | Not_ITE1 | Not_ITE2 | ITE_Intro | ITE1 | ITE2 |
+ (*Equality:*)
+ Eq_Congruent | Eq_Reflexive | Eq_Transitive | Eq_Congruent_Pred | Trans | Refl | Cong |
+ (*Arithmetics:*)
+ LA_Disequality | LA_Generic | LA_Tautology | LIA_Generic | LA_Totality | LA_RW_Eq |
+ NLA_Generic |
+ (*Quantifiers:*)
+ Forall_Inst | Qnt_Rm_Unused | Qnt_Join | Onepoint | Bind | Skolem_Forall | Skolem_Ex |
+ (*Resolution:*)
+ Theory_Resolution | Resolution |
+ (*Temporary rules, that the verit developers want to remove:*)
+ AC_Simp |
+ Bfun_Elim |
+ Qnt_CNF |
+ (*Used to introduce skolem constants*)
+ Definition |
+ (*Former cong rules*)
+ Bool_Simplify | Or_Simplify | Not_Simplify | And_Simplify | Equiv_Simplify |
+ Implies_Simplify | Connective_Def | Minus_Simplify | Comp_Simplify |
+ Eq_Simplify | ITE_Simplify | Sum_Simplify | Prod_Simplify | All_Simplify |
+ Qnt_Simplify | Not_Not | Tautological_Clause | Duplicate_Literals |
+ (*Unsupported rule*)
+ Unsupported |
+ (*For compression*)
+ Theory_Resolution2 |
+ (*Extended rules*)
+ Symm | Not_Symm | Reordering | Tmp_Quantifier_Simplify
+
+ val requires_subproof_assms : string list -> string -> bool
+ val requires_local_input: string list -> string -> bool
+
+ val string_of_verit_rule: verit_rule -> string
+
+ type lethe_tac_args = Proof.context -> thm list -> term list -> term -> thm
+ type lethe_tac = Proof.context -> thm list -> term -> thm
+ type lethe_tac2 = Proof.context -> thm list -> term list -> term Symtab.table -> term -> thm
+ val bind: lethe_tac_args
+ val and_rule: lethe_tac
+ val and_neg_rule: lethe_tac
+ val and_pos: lethe_tac
+ val rewrite_and_simplify: lethe_tac
+ val rewrite_bool_simplify: lethe_tac
+ val rewrite_comp_simplify: lethe_tac
+ val rewrite_minus_simplify: lethe_tac
+ val rewrite_not_simplify: lethe_tac
+ val rewrite_eq_simplify: lethe_tac
+ val rewrite_equiv_simplify: lethe_tac
+ val rewrite_implies_simplify: lethe_tac
+ val rewrite_or_simplify: lethe_tac
+ val cong: lethe_tac
+ val rewrite_connective_def: lethe_tac
+ val duplicate_literals: lethe_tac
+ val eq_congruent: lethe_tac
+ val eq_congruent_pred: lethe_tac
+ val eq_reflexive: lethe_tac
+ val eq_transitive: lethe_tac
+ val equiv1: lethe_tac
+ val equiv2: lethe_tac
+ val equiv_neg1: lethe_tac
+ val equiv_neg2: lethe_tac
+ val equiv_pos1: lethe_tac
+ val equiv_pos2: lethe_tac
+ val false_rule: lethe_tac
+ val forall_inst: lethe_tac2
+ val implies_rules: lethe_tac
+ val implies_neg1: lethe_tac
+ val implies_neg2: lethe_tac
+ val implies_pos: lethe_tac
+ val ite1: lethe_tac
+ val ite2: lethe_tac
+ val ite_intro: lethe_tac
+ val ite_neg1: lethe_tac
+ val ite_neg2: lethe_tac
+ val ite_pos1: lethe_tac
+ val ite_pos2: lethe_tac
+ val rewrite_ite_simplify: lethe_tac
+ val la_disequality: lethe_tac
+ val la_generic: lethe_tac_args
+ val la_rw_eq: lethe_tac
+ val lia_generic: lethe_tac
+ val refl: lethe_tac
+ val normalized_input: lethe_tac
+ val not_and_rule: lethe_tac
+ val not_equiv1: lethe_tac
+ val not_equiv2: lethe_tac
+ val not_implies1: lethe_tac
+ val not_implies2: lethe_tac
+ val not_ite1: lethe_tac
+ val not_ite2: lethe_tac
+ val not_not: lethe_tac
+ val not_or_rule: lethe_tac
+ val or: lethe_tac
+ val or_neg_rule: lethe_tac
+ val or_pos_rule: lethe_tac
+ val theory_resolution2: lethe_tac
+ val prod_simplify: lethe_tac
+ val qnt_join: lethe_tac
+ val qnt_rm_unused: lethe_tac
+ val onepoint: lethe_tac
+ val qnt_simplify: lethe_tac
+ val all_simplify: lethe_tac
+ val unit_res: lethe_tac
+ val skolem_ex: lethe_tac
+ val skolem_forall: lethe_tac
+ val subproof: lethe_tac
+ val sum_simplify: lethe_tac
+ val tautological_clause: lethe_tac
+ val tmp_AC_rule: lethe_tac
+ val bfun_elim: lethe_tac
+ val qnt_cnf: lethe_tac
+ val trans: lethe_tac
+ val symm: lethe_tac
+ val not_symm: lethe_tac
+ val reordering: lethe_tac
+
+(*
+ val : lethe_tac
+*)
+ val REPEAT_CHANGED: ('a -> tactic) -> 'a -> tactic
+ val TRY': ('a -> tactic) -> 'a -> tactic
+
+end;
+
+
+structure Lethe_Replay_Methods: LETHE_REPLAY_METHODS =
+struct
+
+type lethe_tac_args = Proof.context -> thm list -> term list -> term -> thm
+type lethe_tac = Proof.context -> thm list -> term -> thm
+type lethe_tac2 = Proof.context -> thm list -> term list -> term Symtab.table -> term -> thm
+
+(*Some general comments on the proof format:
+ 1. Double negations are not always removed. This means for example that the equivalence rules
+ cannot assume that the double negations have already been removed. Therefore, we match the
+ term, instantiate the theorem, then use simp (to remove double negations), and finally use
+ assumption.
+ 2. The reconstruction for rule forall_inst is buggy and tends to be very fragile, because the rule
+ is doing much more that is supposed to do. Moreover types can make trivial goals (for the
+ boolean structure) impossible to prove.
+ 3. Duplicate literals are sometimes removed, mostly by the SAT solver.
+
+ Rules unsupported on purpose:
+ * Distinct_Elim, XOR, let (we don't need them).
+ * deep_skolemize (because it is not clear if verit still generates using it).
+*)
+
+
+datatype verit_rule =
+ False | True |
+
+ (*input: a repeated (normalized) assumption of assumption of in a subproof*)
+ Normalized_Input | Local_Input |
+ (*Subproof:*)
+ Subproof |
+ (*Conjunction:*)
+ And | Not_And | And_Pos | And_Neg |
+ (*Disjunction""*)
+ Or | Or_Pos | Not_Or | Or_Neg |
+ (*Disjunction:*)
+ Implies | Implies_Neg1 | Implies_Neg2 | Implies_Pos | Not_Implies1 | Not_Implies2 |
+ (*Equivalence:*)
+ Equiv_neg1 | Equiv_pos1 | Equiv_pos2 | Equiv_neg2 | Not_Equiv1 | Not_Equiv2 | Equiv1 | Equiv2 |
+ (*If-then-else:*)
+ ITE_Pos1 | ITE_Pos2 | ITE_Neg1 | ITE_Neg2 | Not_ITE1 | Not_ITE2 | ITE_Intro | ITE1 | ITE2 |
+ (*Equality:*)
+ Eq_Congruent | Eq_Reflexive | Eq_Transitive | Eq_Congruent_Pred | Trans | Refl | Cong |
+ (*Arithmetics:*)
+ LA_Disequality | LA_Generic | LA_Tautology | LIA_Generic | LA_Totality | LA_RW_Eq |
+ NLA_Generic |
+ (*Quantifiers:*)
+ Forall_Inst | Qnt_Rm_Unused | Qnt_Join | Onepoint | Bind | Skolem_Forall | Skolem_Ex |
+ (*Resolution:*)
+ Theory_Resolution | Resolution |
+ (*Temporary rules, that the verit developpers want to remove:*)
+ AC_Simp |
+ Bfun_Elim |
+ Qnt_CNF |
+ (*Used to introduce skolem constants*)
+ Definition |
+ (*Former cong rules*)
+ Bool_Simplify | Or_Simplify | Not_Simplify | And_Simplify | Equiv_Simplify |
+ Implies_Simplify | Connective_Def | Minus_Simplify | Comp_Simplify |
+ Eq_Simplify | ITE_Simplify | Sum_Simplify | Prod_Simplify | All_Simplify |
+ Qnt_Simplify | Not_Not | Tautological_Clause | Duplicate_Literals |
+ (*Unsupported rule*)
+ Unsupported |
+ (*For compression*)
+ Theory_Resolution2 |
+ (*Extended rules*)
+ Symm | Not_Symm | Reordering | Tmp_Quantifier_Simplify
+
+fun string_of_verit_rule Bind = "Bind"
+ | string_of_verit_rule Cong = "Cong"
+ | string_of_verit_rule Refl = "Refl"
+ | string_of_verit_rule Equiv1 = "Equiv1"
+ | string_of_verit_rule Equiv2 = "Equiv2"
+ | string_of_verit_rule Equiv_pos1 = "Equiv_pos1"
+ | string_of_verit_rule Equiv_pos2 = "Equiv_pos2"
+ | string_of_verit_rule Equiv_neg1 = "Equiv_neg1"
+ | string_of_verit_rule Equiv_neg2 = "Equiv_neg2"
+ | string_of_verit_rule Skolem_Forall = "Skolem_Forall"
+ | string_of_verit_rule Skolem_Ex = "Skolem_Ex"
+ | string_of_verit_rule Eq_Reflexive = "Eq_Reflexive"
+ | string_of_verit_rule Theory_Resolution = "Theory_Resolution"
+ | string_of_verit_rule Theory_Resolution2 = "Theory_Resolution2"
+ | string_of_verit_rule Forall_Inst = "forall_inst"
+ | string_of_verit_rule Or = "Or"
+ | string_of_verit_rule Not_Or = "Not_Or"
+ | string_of_verit_rule Resolution = "Resolution"
+ | string_of_verit_rule Eq_Congruent = "eq_congruent"
+ | string_of_verit_rule Trans = "trans"
+ | string_of_verit_rule False = "false"
+ | string_of_verit_rule And = "and"
+ | string_of_verit_rule And_Pos = "and_pos"
+ | string_of_verit_rule Not_And = "not_and"
+ | string_of_verit_rule And_Neg = "and_neg"
+ | string_of_verit_rule Or_Pos = "or_pos"
+ | string_of_verit_rule Or_Neg = "or_neg"
+ | string_of_verit_rule AC_Simp = "ac_simp"
+ | string_of_verit_rule Not_Equiv1 = "not_equiv1"
+ | string_of_verit_rule Not_Equiv2 = "not_equiv2"
+ | string_of_verit_rule Not_Implies1 = "not_implies1"
+ | string_of_verit_rule Not_Implies2 = "not_implies2"
+ | string_of_verit_rule Implies_Neg1 = "implies_neg1"
+ | string_of_verit_rule Implies_Neg2 = "implies_neg2"
+ | string_of_verit_rule Implies = "implies"
+ | string_of_verit_rule Bfun_Elim = "bfun_elim"
+ | string_of_verit_rule ITE1 = "ite1"
+ | string_of_verit_rule ITE2 = "ite2"
+ | string_of_verit_rule Not_ITE1 = "not_ite1"
+ | string_of_verit_rule Not_ITE2 = "not_ite2"
+ | string_of_verit_rule ITE_Pos1 = "ite_pos1"
+ | string_of_verit_rule ITE_Pos2 = "ite_pos2"
+ | string_of_verit_rule ITE_Neg1 = "ite_neg1"
+ | string_of_verit_rule ITE_Neg2 = "ite_neg2"
+ | string_of_verit_rule ITE_Intro = "ite_intro"
+ | string_of_verit_rule LA_Disequality = "la_disequality"
+ | string_of_verit_rule LA_Generic = "la_generic"
+ | string_of_verit_rule LIA_Generic = "lia_generic"
+ | string_of_verit_rule LA_Tautology = "la_tautology"
+ | string_of_verit_rule LA_RW_Eq = "la_rw_eq"
+ | string_of_verit_rule LA_Totality = "LA_Totality"
+ | string_of_verit_rule NLA_Generic = "nla_generic"
+ | string_of_verit_rule Eq_Transitive = "eq_transitive"
+ | string_of_verit_rule Qnt_Rm_Unused = "qnt_remove_unused"
+ | string_of_verit_rule Onepoint = "onepoint"
+ | string_of_verit_rule Qnt_Join = "qnt_join"
+ | string_of_verit_rule Eq_Congruent_Pred = "eq_congruent_pred"
+ | string_of_verit_rule Normalized_Input = Lethe_Proof.normalized_input_rule
+ | string_of_verit_rule Local_Input = Lethe_Proof.local_input_rule
+ | string_of_verit_rule Subproof = "subproof"
+ | string_of_verit_rule Bool_Simplify = "bool_simplify"
+ | string_of_verit_rule Equiv_Simplify = "equiv_simplify"
+ | string_of_verit_rule Eq_Simplify = "eq_simplify"
+ | string_of_verit_rule Not_Simplify = "not_simplify"
+ | string_of_verit_rule And_Simplify = "and_simplify"
+ | string_of_verit_rule Or_Simplify = "or_simplify"
+ | string_of_verit_rule ITE_Simplify = "ite_simplify"
+ | string_of_verit_rule Implies_Simplify = "implies_simplify"
+ | string_of_verit_rule Connective_Def = "connective_def"
+ | string_of_verit_rule Minus_Simplify = "minus_simplify"
+ | string_of_verit_rule Sum_Simplify = "sum_simplify"
+ | string_of_verit_rule Prod_Simplify = "prod_simplify"
+ | string_of_verit_rule All_Simplify = "all_simplify"
+ | string_of_verit_rule Comp_Simplify = "comp_simplify"
+ | string_of_verit_rule Qnt_Simplify = "qnt_simplify"
+ | string_of_verit_rule Symm = "symm"
+ | string_of_verit_rule Not_Symm = "not_symm"
+ | string_of_verit_rule Reordering = "reordering"
+ | string_of_verit_rule Not_Not = Lethe_Proof.not_not_rule
+ | string_of_verit_rule Tautological_Clause = "tautology"
+ | string_of_verit_rule Duplicate_Literals = Lethe_Proof.contract_rule
+ | string_of_verit_rule Qnt_CNF = "qnt_cnf"
+ | string_of_verit_rule r = "Unknown rule: " ^ \<^make_string> r
+
+fun replay_error ctxt msg rule thms t =
+ SMT_Replay_Methods.replay_error ctxt msg (string_of_verit_rule rule) thms t
+
+(* utility function *)
+
+fun eqsubst_all ctxt thms =
+ K ((REPEAT o HEADGOAL) (EqSubst.eqsubst_asm_tac ctxt [0] thms))
+ THEN' K ((REPEAT o HEADGOAL) (EqSubst.eqsubst_tac ctxt [0] thms))
+
+fun simplify_tac ctxt thms =
+ ctxt
+ |> empty_simpset
+ |> put_simpset HOL_basic_ss
+ |> (fn ctxt => ctxt addsimps @{thms simp_thms} addsimps thms)
+ |> Simplifier.asm_full_simp_tac
+
+(* sko_forall requires the assumptions to be able to prove the equivalence in case of double
+skolemization. See comment below. *)
+fun requires_subproof_assms _ t =
+ member (op =) ["refl", "sko_forall", "sko_ex", "cong"] t
+
+fun requires_local_input _ t =
+ member (op =) [Lethe_Proof.local_input_rule] t
+
+(*This is a weaker simplification form. It is weaker, but is also less likely to loop*)
+fun partial_simplify_tac ctxt thms =
+ ctxt
+ |> empty_simpset
+ |> put_simpset HOL_basic_ss
+ |> (fn ctxt => ctxt addsimps @{thms simp_thms} addsimps thms)
+ |> Simplifier.full_simp_tac
+
+val try_provers = SMT_Replay_Methods.try_provers "verit"
+
+fun TRY' tac = fn i => TRY (tac i)
+fun REPEAT' tac = fn i => REPEAT (tac i)
+fun REPEAT_CHANGED tac = fn i => REPEAT (CHANGED (tac i))
+
+
+(* Bind *)
+
+(*The bind rule is non-obvious due to the handling of quantifiers:
+ "\<And>x y a. x = y ==> (\<forall>b. P a b x) \<longleftrightarrow> (\<forall>b. P' a b y)"
+ ------------------------------------------------------
+ \<forall>a. (\<forall>b x. P a b x) \<longleftrightarrow> (\<forall>b y. P' a b y)
+is a valid application.*)
+
+val bind_thms =
+ [@{lemma \<open>(\<And>x x'. x = x' \<Longrightarrow> P x = Q x') \<Longrightarrow> (\<forall>x. P x) = (\<forall>y. Q y)\<close> by blast},
+ @{lemma \<open>(\<And>x x'. x = x' \<Longrightarrow> P x = Q x') \<Longrightarrow> (\<exists>x. P x) = (\<exists>y. Q y)\<close> by blast},
+ @{lemma \<open>(\<And>x x'. x = x' \<Longrightarrow> P x = Q x') \<Longrightarrow> (\<exists>x. P x = Q x)\<close> by blast},
+ @{lemma \<open>(\<And>x x'. x = x' \<Longrightarrow> P x = Q x') \<Longrightarrow> (\<forall>x. P x = Q x)\<close> by blast}]
+
+val bind_thms_same_name =
+ [@{lemma \<open>(\<And>x. P x = Q x) \<Longrightarrow> (\<forall>x. P x) = (\<forall>y. Q y)\<close> by blast},
+ @{lemma \<open>(\<And>x. P x = Q x) \<Longrightarrow> (\<exists>x. P x) = (\<exists>y. Q y)\<close> by blast},
+ @{lemma \<open>(\<And>x. P x = Q x) \<Longrightarrow> (\<exists>x. P x = Q x)\<close> by blast},
+ @{lemma \<open>(\<And>x. P x = Q x) \<Longrightarrow> (\<forall>x. P x = Q x)\<close> by blast}]
+
+fun extract_quantified_names_q (_ $ Abs (name, _, t)) =
+ apfst (curry (op ::) name) (extract_quantified_names_q t)
+ | extract_quantified_names_q t = ([], t)
+
+fun extract_forall_quantified_names_q (Const(\<^const_name>\<open>HOL.All\<close>, _) $ Abs (name, ty, t)) =
+ (name, ty) :: (extract_forall_quantified_names_q t)
+ | extract_forall_quantified_names_q _ = []
+
+fun extract_all_forall_quantified_names_q (Const(\<^const_name>\<open>HOL.All\<close>, _) $ Abs (name, _, t)) =
+ name :: (extract_all_forall_quantified_names_q t)
+ | extract_all_forall_quantified_names_q (t $ u) =
+ extract_all_forall_quantified_names_q t @ extract_all_forall_quantified_names_q u
+ | extract_all_forall_quantified_names_q _ = []
+
+val extract_quantified_names_ba =
+ SMT_Replay_Methods.dest_prop
+ #> extract_quantified_names_q
+ ##> HOLogic.dest_eq
+ ##> fst
+ ##> extract_quantified_names_q
+ ##> fst
+
+val extract_quantified_names =
+ extract_quantified_names_ba
+ #> (op @)
+
+val extract_all_forall_quantified_names =
+ SMT_Replay_Methods.dest_prop
+ #> HOLogic.dest_eq
+ #> fst
+ #> extract_all_forall_quantified_names_q
+
+
+fun extract_all_exists_quantified_names_q (Const(\<^const_name>\<open>HOL.Ex\<close>, _) $ Abs (name, _, t)) =
+ name :: (extract_all_exists_quantified_names_q t)
+ | extract_all_exists_quantified_names_q (t $ u) =
+ extract_all_exists_quantified_names_q t @ extract_all_exists_quantified_names_q u
+ | extract_all_exists_quantified_names_q _ = []
+
+val extract_all_exists_quantified_names =
+ SMT_Replay_Methods.dest_prop
+ #> HOLogic.dest_eq
+ #> fst
+ #> extract_all_exists_quantified_names_q
+
+
+val extract_bind_names =
+ HOLogic.dest_eq
+ #> apply2 (fn (Free (name, _)) => name)
+
+fun combine_quant ctxt ((n1, n2) :: bounds) (n1' :: formula) =
+ TRY' (if n1 = n1'
+ then if n1 <> n2
+ then
+ resolve_tac ctxt bind_thms
+ THEN' TRY'(resolve_tac ctxt [@{thm refl}])
+ THEN' combine_quant ctxt bounds formula
+ else resolve_tac ctxt bind_thms_same_name THEN' combine_quant ctxt bounds formula
+ else resolve_tac ctxt @{thms allI} THEN' combine_quant ctxt ((n1, n2) :: bounds) formula)
+ | combine_quant _ _ _ = K all_tac
+
+fun bind_quants ctxt args t =
+ combine_quant ctxt (map extract_bind_names args) (extract_quantified_names t)
+
+fun generalize_prems_q [] prems = prems
+ | generalize_prems_q (_ :: quants) prems =
+ generalize_prems_q quants (@{thm spec} OF [prems])
+
+fun generalize_prems t = generalize_prems_q (fst (extract_quantified_names_ba t))
+
+fun bind ctxt [prems] args t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ bind_quants ctxt args t
+ THEN' TRY' (SOLVED' (resolve_tac ctxt [generalize_prems t prems]
+ THEN_ALL_NEW TRY' (assume_tac ctxt ORELSE' resolve_tac ctxt @{thms refl}))))
+ | bind ctxt thms _ t = replay_error ctxt "invalid bind application" Bind thms t
+
+
+(* Congruence/Refl *)
+
+fun cong ctxt thms = try_provers ctxt
+ (string_of_verit_rule Cong) [
+ ("basic", SMT_Replay_Methods.cong_basic ctxt thms),
+ ("unfolding then reflexivity", SMT_Replay_Methods.cong_unfolding_trivial ctxt thms),
+ ("unfolding then auto", SMT_Replay_Methods.cong_unfolding_first ctxt thms),
+ ("full", SMT_Replay_Methods.cong_full ctxt thms)] thms
+
+fun refl ctxt thm t =
+ (case find_first (fn thm => t = Thm.full_prop_of thm) thm of
+ SOME thm => thm
+ | NONE =>
+ (case try (fn t => SMT_Replay_Methods.match_instantiate ctxt t @{thm refl}) t of
+ NONE => cong ctxt thm t
+ | SOME thm => thm))
+
+(* Instantiation *)
+
+local
+fun dropWhile _ [] = []
+ | dropWhile f (x :: xs) = if f x then dropWhile f xs else x :: xs
+in
+
+fun forall_inst ctxt _ _ insts t =
+ let
+ fun instantiate_and_solve i ({context = ctxt, prems = [prem], ...}: Subgoal.focus) =
+ let
+ val t = Thm.prop_of prem
+ val quants = t
+ |> SMT_Replay_Methods.dest_prop
+ |> extract_forall_quantified_names_q
+ val insts = map (Symtab.lookup insts o fst) (rev quants)
+ |> dropWhile (curry (op =) NONE)
+ |> rev
+ fun option_map _ NONE = NONE
+ | option_map f (SOME a) = SOME (f a)
+ fun instantiate_with inst prem =
+ Drule.infer_instantiate' ctxt [NONE, inst] @{thm spec} OF [prem]
+ val inst_thm =
+ fold instantiate_with
+ (map (option_map (Thm.cterm_of ctxt)) insts)
+ prem
+ in
+ (Method.insert_tac ctxt [inst_thm]
+ THEN' TRY' (fn i => assume_tac ctxt i)
+ THEN' TRY' (partial_simplify_tac ctxt @{thms eq_commute})) i
+ end
+ | instantiate_and_solve _ ({context = ctxt, prems = thms, ...}: Subgoal.focus) =
+ replay_error ctxt "invalid application" Forall_Inst thms t
+ in
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ match_tac ctxt [@{thm disj_not1} RSN (1, @{thm iffD2}) OF [@{thm impI}]]
+ THEN' (fn i => Subgoal.FOCUS (instantiate_and_solve i) ctxt i))
+ end
+end
+
+
+(* Or *)
+
+fun or _ (thm :: _) _ = thm
+ | or ctxt thms t = replay_error ctxt "invalid bind application" Or thms t
+
+
+(* Implication *)
+
+val implies_pos_thm =
+ [@{lemma \<open>\<not>(A \<longrightarrow> B) \<or> \<not>A \<or> B\<close> by blast},
+ @{lemma \<open>\<not>(\<not>A \<longrightarrow> B) \<or> A \<or> B\<close> by blast}]
+
+fun implies_pos ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ =>
+ resolve_tac ctxt implies_pos_thm)
+
+(* Skolemization *)
+
+fun extract_rewrite_rule_assumption _ thms =
+ let
+ fun is_rewrite_rule thm =
+ (case Thm.prop_of thm of
+ \<^term>\<open>Trueprop\<close> $ (Const(\<^const_name>\<open>HOL.eq\<close>, _) $ _ $ Free(_, _)) => true
+ | _ => false)
+ fun is_context_rule thm =
+ (case Thm.prop_of thm of
+ \<^term>\<open>Trueprop\<close> $ (Const(\<^const_name>\<open>HOL.eq\<close>, _) $ Free(_, _) $ Free(_, _)) => true
+ | _ => false)
+ val ctxt_eq =
+ thms
+ |> filter is_context_rule
+ val rew =
+ thms
+ |> filter_out is_context_rule
+ |> filter is_rewrite_rule
+ in
+ (ctxt_eq, rew)
+ end
+
+local
+ fun rewrite_all_skolems thm_indirect ctxt (SOME thm :: thms) =
+ EqSubst.eqsubst_tac ctxt [0] [thm_indirect OF [thm]]
+ THEN' (partial_simplify_tac ctxt (@{thms eq_commute}))
+ THEN' rewrite_all_skolems thm_indirect ctxt thms
+ | rewrite_all_skolems thm_indirect ctxt (NONE :: thms) = rewrite_all_skolems thm_indirect ctxt thms
+ | rewrite_all_skolems _ _ [] = K (all_tac)
+
+ fun extract_var_name (thm :: thms) =
+ let val name = Thm.concl_of thm
+ |> SMT_Replay_Methods.dest_prop
+ |> HOLogic.dest_eq
+ |> fst
+ |> (fn Const(_,_) $ Abs(name, _, _) => [(name,@{thm sym} OF [thm])]
+ | _ => [])
+ in name :: extract_var_name thms end
+ | extract_var_name [] = []
+
+fun skolem_tac extractor thm1 thm2 ctxt thms t =
+ let
+ val (ctxt_eq, ts) = extract_rewrite_rule_assumption ctxt thms
+ fun ordered_definitions () =
+ let
+ val var_order = extractor t
+ val thm_names_with_var = extract_var_name ts |> flat
+ in map (AList.lookup (op =) thm_names_with_var) var_order end
+
+ in
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ K (unfold_tac ctxt ctxt_eq)
+ THEN' ((SOLVED' (K (unfold_tac ctxt (map (fn thm => thm1 OF [@{thm sym} OF [thm]]) ts))))
+ ORELSE'
+ (rewrite_all_skolems thm2 ctxt (ordered_definitions ())
+ THEN' partial_simplify_tac ctxt @{thms eq_commute})))
+ end
+in
+
+val skolem_forall =
+ skolem_tac extract_all_forall_quantified_names @{thm verit_sko_forall_indirect}
+ @{thm verit_sko_forall_indirect2}
+
+val skolem_ex =
+ skolem_tac extract_all_exists_quantified_names @{thm verit_sko_ex_indirect}
+ @{thm verit_sko_ex_indirect2}
+
+end
+
+fun eq_reflexive ctxt _ t = SMT_Replay_Methods.match_instantiate ctxt t @{thm refl}
+
+local
+ fun not_not_prove ctxt _ =
+ K (unfold_tac ctxt @{thms not_not})
+ THEN' match_tac ctxt @{thms verit_or_simplify_1}
+
+ fun duplicate_literals_prove ctxt prems =
+ Method.insert_tac ctxt prems
+ THEN' match_tac ctxt @{thms ccontr}
+ THEN' K (unfold_tac ctxt @{thms de_Morgan_disj not_not})
+ THEN' TRY o CHANGED_PROP o REPEAT_ALL_NEW (ematch_tac ctxt @{thms conjE})
+ THEN' CHANGED_PROP o REPEAT_ALL_NEW (ematch_tac ctxt @{thms disjE})
+ THEN' REPEAT' (ematch_tac ctxt @{thms notE} THEN' TRY' (assume_tac ctxt))
+
+ fun tautological_clause_prove ctxt _ =
+ match_tac ctxt @{thms verit_or_neg}
+ THEN' K (unfold_tac ctxt @{thms not_not disj_assoc[symmetric]})
+ THEN' TRY' (match_tac ctxt @{thms notE} THEN_ALL_NEW assume_tac ctxt)
+
+ val theory_resolution2_lemma = @{lemma \<open>a \<Longrightarrow> a = b \<Longrightarrow> b\<close> by blast}
+
+in
+
+fun prove_abstract abstracter tac ctxt thms t =
+ let
+ val thms = map (Conv.fconv_rule Thm.eta_long_conversion) thms
+ val t' = Thm.eta_long_conversion (Object_Logic.dest_judgment ctxt (Thm.cterm_of ctxt t))
+ val (_, t2) = Logic.dest_equals (Thm.prop_of t')
+ val thm =
+ SMT_Replay_Methods.prove_abstract ctxt thms t2 tac (
+ fold_map (abstracter o SMT_Replay_Methods.dest_thm) thms ##>>
+ abstracter (SMT_Replay_Methods.dest_prop t2))
+ in
+ @{thm verit_Pure_trans} OF [t', thm]
+ end
+
+val not_not = prove_abstract SMT_Replay_Methods.abstract_bool_shallow not_not_prove
+
+val tautological_clause =
+ prove_abstract SMT_Replay_Methods.abstract_bool_shallow tautological_clause_prove
+
+val duplicate_literals =
+ prove_abstract SMT_Replay_Methods.abstract_bool_shallow duplicate_literals_prove
+
+val unit_res = prove_abstract SMT_Replay_Methods.abstract_bool_shallow SMT_Replay_Methods.prop_tac
+
+(*match_instantiate does not work*)
+fun theory_resolution2 ctxt prems t =
+ SMT_Replay_Methods.prove ctxt t (fn _ => match_tac ctxt [theory_resolution2_lemma OF prems])
+
+end
+
+
+fun normalized_input ctxt prems t = SMT_Replay_Methods.prove ctxt t (fn _ =>
+ Method.insert_tac ctxt prems
+ THEN' TRY' (K (unfold_tac ctxt @{thms SMT.trigger_def}))
+ THEN' TRY' (partial_simplify_tac ctxt @{thms eq_commute}))
+
+val false_rule_thm = @{lemma \<open>\<not>False\<close> by blast}
+
+fun false_rule ctxt _ t = SMT_Replay_Methods.match_instantiate ctxt t false_rule_thm
+
+
+(* Transitivity *)
+
+val trans_bool_thm =
+ @{lemma \<open>P = Q \<Longrightarrow> Q \<Longrightarrow> P\<close> by blast}
+
+fun trans ctxt thms t =
+ let
+ val prop_of = HOLogic.dest_Trueprop o Thm.full_prop_of
+ fun combine_thms [thm1, thm2] =
+ (case (prop_of thm1, prop_of thm2) of
+ ((Const(\<^const_name>\<open>HOL.eq\<close>, _) $ t1 $ t2),
+ (Const(\<^const_name>\<open>HOL.eq\<close>, _) $ t3 $ t4)) =>
+ if t2 aconv t3 then thm1 RSN (1, thm2 RSN (2, @{thm trans}))
+ else if t2 aconv t4 then thm1 RSN ((1, ((thm2 RS sym)) RSN (2, @{thm trans})))
+ else if t1 aconv t4 then thm2 RSN (1, thm1 RSN (2, @{thm trans}))
+ else raise Fail "invalid trans theorem"
+ | _ => trans_bool_thm OF [thm1, thm2])
+ | combine_thms (thm1 :: thm2 :: thms) =
+ combine_thms (combine_thms [thm1, thm2] :: thms)
+ | combine_thms thms = replay_error ctxt "invalid bind application" Trans thms t
+ val t' = Thm.eta_long_conversion (Object_Logic.dest_judgment ctxt (Thm.cterm_of ctxt t))
+ val (_, t2) = Logic.dest_equals (Thm.prop_of t')
+ val thms = map (Conv.fconv_rule Thm.eta_long_conversion) thms
+ val trans_thm = combine_thms thms
+ in
+ (case (prop_of trans_thm, t2) of
+ ((Const(\<^const_name>\<open>HOL.eq\<close>, _) $ t1 $ _),
+ (Const(\<^const_name>\<open>HOL.eq\<close>, _) $ t3 $ _)) =>
+ if t1 aconv t3 then trans_thm else trans_thm RS sym
+ | _ => trans_thm (*to be on the safe side*))
+ end
+
+
+fun tmp_AC_rule ctxt thms t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ Method.insert_tac ctxt thms
+ THEN' REPEAT_ALL_NEW (partial_simplify_tac ctxt @{thms eq_commute}
+ THEN' TRY' (simplify_tac ctxt @{thms ac_simps conj_ac})
+ THEN' TRY' (Classical.fast_tac ctxt)))
+
+
+(* And/Or *)
+
+local
+ fun not_and_rule_prove ctxt prems =
+ Method.insert_tac ctxt prems
+ THEN' K (unfold_tac ctxt @{thms de_Morgan_conj})
+ THEN_ALL_NEW TRY' (assume_tac ctxt)
+
+ fun or_pos_prove ctxt _ =
+ K (unfold_tac ctxt @{thms de_Morgan_disj not_not})
+ THEN' match_tac ctxt @{thms verit_and_pos}
+ THEN' K (unfold_tac ctxt @{thms de_Morgan_conj de_Morgan_disj not_not})
+ THEN' TRY' (assume_tac ctxt)
+
+ fun not_or_rule_prove ctxt prems =
+ Method.insert_tac ctxt prems
+ THEN' K (unfold_tac ctxt @{thms de_Morgan_disj not_not})
+ THEN' TRY' (REPEAT' (match_tac ctxt @{thms conjI}))
+ THEN_ALL_NEW ((REPEAT' (ematch_tac ctxt @{thms conjE}))
+ THEN' TRY' (assume_tac ctxt))
+
+ fun and_rule_prove ctxt prems =
+ Method.insert_tac ctxt prems
+ THEN' (fn i => REPEAT (dresolve_tac ctxt @{thms conjE} i THEN assume_tac ctxt (i+1)))
+ THEN' TRY' (assume_tac ctxt)
+
+ fun and_neg_rule_prove ctxt _ =
+ match_tac ctxt @{thms verit_and_neg}
+ THEN' K (unfold_tac ctxt @{thms de_Morgan_conj not_not})
+ THEN' TRY' (assume_tac ctxt)
+
+ fun prover tac = prove_abstract SMT_Replay_Methods.abstract_prop tac
+
+in
+
+val and_rule = prover and_rule_prove
+
+val not_and_rule = prover not_and_rule_prove
+
+val not_or_rule = prover not_or_rule_prove
+
+val or_pos_rule = prover or_pos_prove
+
+val and_neg_rule = prover and_neg_rule_prove
+
+val or_neg_rule = prove_abstract SMT_Replay_Methods.abstract_bool (fn ctxt => fn _ =>
+ resolve_tac ctxt @{thms verit_or_neg}
+ THEN' K (unfold_tac ctxt @{thms not_not})
+ THEN_ALL_NEW
+ (REPEAT'
+ (SOLVED' (match_tac ctxt @{thms disjI1} THEN_ALL_NEW assume_tac ctxt)
+ ORELSE' (match_tac ctxt @{thms disjI2} THEN' TRY' (assume_tac ctxt)))))
+
+fun and_pos ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ REPEAT_CHANGED (resolve_tac ctxt @{thms verit_and_pos})
+ THEN' TRY' (assume_tac ctxt))
+
+end
+
+
+(* Equivalence Transformation *)
+
+local
+ fun prove_equiv equiv_thm ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ =>
+ Method.insert_tac ctxt [equiv_thm OF [thm]]
+ THEN' TRY' (assume_tac ctxt))
+ | prove_equiv _ ctxt thms t = replay_error ctxt "invalid application in some equiv rule" Unsupported thms t
+in
+
+val not_equiv1 = prove_equiv @{lemma \<open>\<not>(A \<longleftrightarrow> B) \<Longrightarrow> A \<or> B\<close> by blast}
+val not_equiv2 = prove_equiv @{lemma \<open>\<not>(A \<longleftrightarrow> B) \<Longrightarrow> \<not>A \<or> \<not>B\<close> by blast}
+val equiv1 = prove_equiv @{lemma \<open>(A \<longleftrightarrow> B) \<Longrightarrow> \<not>A \<or> B\<close> by blast}
+val equiv2 = prove_equiv @{lemma \<open>(A \<longleftrightarrow> B) \<Longrightarrow> A \<or> \<not>B\<close> by blast}
+val not_implies1 = prove_equiv @{lemma \<open>\<not>(A \<longrightarrow> B) \<Longrightarrow> A\<close> by blast}
+val not_implies2 = prove_equiv @{lemma \<open>\<not>(A \<longrightarrow>B) \<Longrightarrow> \<not>B\<close> by blast}
+
+end
+
+
+(* Equivalence Lemma *)
+(*equiv_pos2 is very important for performance. We have tried various tactics, including
+a specialisation of SMT_Replay_Methods.match_instantiate, but there never was a measurable
+and consistent gain.*)
+local
+ fun prove_equiv_pos_neg2 thm ctxt _ t =
+ SMT_Replay_Methods.match_instantiate ctxt t thm
+in
+
+val equiv_pos1_thm = @{lemma \<open>\<not>(a \<longleftrightarrow> b) \<or> a \<or> \<not>b\<close> by blast+}
+val equiv_pos1 = prove_equiv_pos_neg2 equiv_pos1_thm
+
+val equiv_pos2_thm = @{lemma \<open>\<And>a b. (a \<noteq> b) \<or> \<not>a \<or> b\<close> by blast+}
+val equiv_pos2 = prove_equiv_pos_neg2 equiv_pos2_thm
+
+val equiv_neg1_thm = @{lemma \<open>(a \<longleftrightarrow> b) \<or> \<not>a \<or> \<not>b\<close> by blast+}
+val equiv_neg1 = prove_equiv_pos_neg2 equiv_neg1_thm
+
+val equiv_neg2_thm = @{lemma \<open>(a \<longleftrightarrow> b) \<or> a \<or> b\<close> by blast}
+val equiv_neg2 = prove_equiv_pos_neg2 equiv_neg2_thm
+
+end
+
+
+local
+ fun implies_pos_neg_term ctxt thm (\<^term>\<open>Trueprop\<close> $
+ (\<^term>\<open>HOL.disj\<close> $ (\<^term>\<open>HOL.implies\<close> $ a $ b) $ _)) =
+ Drule.infer_instantiate' ctxt (map (SOME o Thm.cterm_of ctxt) [a, b]) thm
+ | implies_pos_neg_term ctxt thm t =
+ replay_error ctxt "invalid application in Implies" Unsupported [thm] t
+
+ fun prove_implies_pos_neg thm ctxt _ t =
+ let val thm = implies_pos_neg_term ctxt thm t
+ in
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ Method.insert_tac ctxt [thm]
+ THEN' TRY' (assume_tac ctxt))
+ end
+in
+
+val implies_neg1_thm = @{lemma \<open>(a \<longrightarrow> b) \<or> a\<close> by blast}
+val implies_neg1 = prove_implies_pos_neg implies_neg1_thm
+
+val implies_neg2_thm = @{lemma \<open>(a \<longrightarrow> b) \<or> \<not>b\<close> by blast}
+val implies_neg2 = prove_implies_pos_neg implies_neg2_thm
+
+val implies_thm = @{lemma \<open>(a \<longrightarrow> b) \<Longrightarrow> \<not>a \<or> b\<close> by blast}
+fun implies_rules ctxt prems t = SMT_Replay_Methods.prove ctxt t (fn _ =>
+ Method.insert_tac ctxt [implies_thm OF prems]
+ THEN' TRY' (assume_tac ctxt))
+
+end
+
+
+(* BFun *)
+
+local
+ val bfun_theorems = @{thms verit_bfun_elim}
+in
+
+fun bfun_elim ctxt prems t = SMT_Replay_Methods.prove ctxt t (fn _ =>
+ Method.insert_tac ctxt prems
+ THEN' TRY' (eqsubst_all ctxt bfun_theorems)
+ THEN' TRY' (simplify_tac ctxt @{thms eq_commute all_conj_distrib ex_disj_distrib}))
+
+end
+
+
+(* If-Then-Else *)
+
+local
+ fun prove_ite ite_thm thm ctxt =
+ resolve_tac ctxt [ite_thm OF [thm]]
+ THEN' TRY' (assume_tac ctxt)
+in
+
+val ite_pos1_thm =
+ @{lemma \<open>\<not>(if x then P else Q) \<or> x \<or> Q\<close> by auto}
+
+fun ite_pos1 ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ =>
+ resolve_tac ctxt [ite_pos1_thm])
+
+val ite_pos2_thms =
+ @{lemma \<open>\<not>(if x then P else Q) \<or> \<not>x \<or> P\<close> \<open>\<not>(if \<not>x then P else Q) \<or> x \<or> P\<close> by auto}
+
+fun ite_pos2 ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ => resolve_tac ctxt ite_pos2_thms)
+
+val ite_neg1_thms =
+ @{lemma \<open>(if x then P else Q) \<or> x \<or> \<not>Q\<close> \<open>(if x then P else \<not>Q) \<or> x \<or> Q\<close> by auto}
+
+fun ite_neg1 ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ => resolve_tac ctxt ite_neg1_thms)
+
+val ite_neg2_thms =
+ @{lemma \<open>(if x then P else Q) \<or> \<not>x \<or> \<not>P\<close> \<open>(if \<not>x then P else Q) \<or> x \<or> \<not>P\<close>
+ \<open>(if x then \<not>P else Q) \<or> \<not>x \<or> P\<close> \<open>(if \<not>x then \<not>P else Q) \<or> x \<or> P\<close>
+ by auto}
+
+fun ite_neg2 ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ => resolve_tac ctxt ite_neg2_thms)
+
+val ite1_thm =
+ @{lemma \<open>(if x then P else Q) \<Longrightarrow> x \<or> Q\<close> by (auto split: if_splits) }
+
+fun ite1 ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ => prove_ite ite1_thm thm ctxt)
+
+val ite2_thm =
+ @{lemma \<open>(if x then P else Q) \<Longrightarrow> \<not>x \<or> P\<close> by (auto split: if_splits) }
+
+fun ite2 ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ => prove_ite ite2_thm thm ctxt)
+
+val not_ite1_thm =
+ @{lemma \<open>\<not>(if x then P else Q) \<Longrightarrow> x \<or> \<not>Q\<close> by (auto split: if_splits) }
+
+fun not_ite1 ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ => prove_ite not_ite1_thm thm ctxt)
+
+val not_ite2_thm =
+ @{lemma \<open>\<not>(if x then P else Q) \<Longrightarrow> \<not>x \<or> \<not>P\<close> by (auto split: if_splits) }
+
+fun not_ite2 ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ => prove_ite not_ite2_thm thm ctxt)
+
+(*ite_intro can introduce new terms that are in the proof exactly the sames as the old one, but are
+not internally, hence the possible reordering.*)
+fun ite_intro ctxt _ t =
+ let
+ fun simplify_ite ctxt thms =
+ ctxt
+ |> empty_simpset
+ |> put_simpset HOL_basic_ss
+ |> (fn ctxt => ctxt addsimps thms @ @{thms if_True if_False refl simp_thms if_cancel})
+ |> Raw_Simplifier.add_eqcong @{thm verit_ite_if_cong}
+ |> Simplifier.full_simp_tac
+ in
+ SMT_Replay_Methods.prove ctxt t (fn _ => simplify_ite ctxt []
+ THEN' TRY' (simplify_ite ctxt @{thms eq_commute}))
+ end
+end
+
+
+(* Quantifiers *)
+
+local
+ val rm_unused = @{lemma \<open>(\<forall>x. P) = P\<close> \<open>(\<exists>x. P) = P\<close> by blast+}
+
+ fun qnt_cnf_tac ctxt =
+ simplify_tac ctxt @{thms de_Morgan_conj de_Morgan_disj imp_conv_disj
+ iff_conv_conj_imp if_bool_eq_disj ex_simps all_simps ex_disj_distrib
+ verit_connective_def(3) all_conj_distrib}
+ THEN' TRY' (Blast.blast_tac ctxt)
+in
+fun qnt_rm_unused ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ =>
+ K (unfold_tac ctxt rm_unused))
+
+fun onepoint ctxt prems t = SMT_Replay_Methods.prove ctxt t (fn _ =>
+ Method.insert_tac ctxt prems
+ THEN' Simplifier.full_simp_tac (put_simpset HOL_basic_ss (empty_simpset ctxt)
+ addsimps @{thms HOL.simp_thms HOL.all_simps}
+ addsimprocs [@{simproc HOL.defined_All}, @{simproc HOL.defined_Ex}])
+ THEN' TRY' (Blast.blast_tac ctxt)
+ THEN' TRY' (Metis_Tactic.metis_tac [] ATP_Problem_Generate.combsN ctxt []))
+
+fun qnt_join ctxt _ t = SMT_Replay_Methods.prove ctxt t Classical.fast_tac
+
+fun qnt_cnf ctxt _ t = SMT_Replay_Methods.prove ctxt t qnt_cnf_tac
+
+fun qnt_simplify ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ =>
+ partial_simplify_tac ctxt [])
+
+end
+
+(* Equality *)
+
+fun eq_transitive ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ =>
+ REPEAT_CHANGED (resolve_tac ctxt [@{thm disj_not1} RSN (1, @{thm iffD2}) OF @{thms impI}])
+ THEN' REPEAT' (resolve_tac ctxt @{thms impI})
+ THEN' REPEAT' (eresolve_tac ctxt @{thms conjI})
+ THEN' REPEAT' (fn i => dresolve_tac ctxt @{thms verit_eq_transitive} i THEN assume_tac ctxt (i+1))
+ THEN' resolve_tac ctxt @{thms refl})
+
+local
+ fun find_rew rews t t' =
+ (case AList.lookup (op =) rews (t, t') of
+ SOME thm => SOME (thm COMP @{thm symmetric})
+ | NONE =>
+ (case AList.lookup (op =) rews (t', t) of
+ SOME thm => SOME thm
+ | NONE => NONE))
+
+ fun eq_pred_conv rews t ctxt ctrm =
+ (case find_rew rews t (Thm.term_of ctrm) of
+ SOME thm => Conv.rewr_conv thm ctrm
+ | NONE =>
+ (case t of
+ f $ arg =>
+ (Conv.fun_conv (eq_pred_conv rews f ctxt) then_conv
+ Conv.arg_conv (eq_pred_conv rews arg ctxt)) ctrm
+ | Abs (_, _, f) => Conv.abs_conv (eq_pred_conv rews f o snd) ctxt ctrm
+ | _ => Conv.all_conv ctrm))
+
+ fun eq_pred_rewrite_tac ({context = ctxt, prems, concl, ...}: Subgoal.focus) =
+ let
+ val rews = prems
+ |> map_filter (try (apfst (HOLogic.dest_eq o Thm.term_of o Object_Logic.dest_judgment ctxt o
+ Thm.cconcl_of) o `(fn x => x)))
+ |> map (apsnd (fn x => @{thm eq_reflection} OF [x]))
+ fun conv_left conv = Conv.arg_conv (Conv.arg_conv conv)
+ fun conv_left_neg conv = Conv.arg_conv (Conv.arg_conv (Conv.arg_conv conv))
+ val (t1, conv_term) =
+ (case Thm.term_of (Object_Logic.dest_judgment ctxt concl) of
+ Const(_, _) $ (Const(\<^const_name>\<open>HOL.Not\<close>, _) $ t1) $ _ => (t1, conv_left)
+ | Const(_, _) $ t1 $ (Const(\<^const_name>\<open>HOL.Not\<close>, _) $ _) => (t1, conv_left_neg)
+ | Const(_, _) $ t1 $ _ => (t1, conv_left)
+ | t1 => (t1, conv_left))
+ fun throwing_CONVERSION cv i st = Seq.single (Conv.gconv_rule cv i st)
+ in
+ throwing_CONVERSION (conv_term (eq_pred_conv rews t1 ctxt))
+ end
+in
+
+fun eq_congruent_pred ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ REPEAT' (resolve_tac ctxt [@{thm disj_not1[of \<open>_ = _\<close>]} RSN (1, @{thm iffD2}) OF @{thms impI}])
+ THEN' (fn i => Subgoal.FOCUS (fn focus => eq_pred_rewrite_tac focus i) ctxt i)
+ THEN' (resolve_tac ctxt @{thms refl excluded_middle excluded_middle[of \<open>\<not>_\<close>, unfolded not_not]}
+ ORELSE' assume_tac ctxt))
+
+val eq_congruent = eq_congruent_pred
+
+end
+
+
+(* Subproof *)
+
+fun subproof ctxt [prem] t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ (REPEAT' (resolve_tac ctxt [@{thm disj_not1} RSN (1, @{thm iffD2}) OF [@{thm impI}],
+ @{thm disj_not1[of \<open>\<not>_\<close>, unfolded not_not]} RSN (1, @{thm iffD2}) OF [@{thm impI}]])
+ THEN' resolve_tac ctxt [prem]
+ THEN_ALL_NEW assume_tac ctxt
+ THEN' TRY' (assume_tac ctxt))
+ ORELSE' TRY' (Method.insert_tac ctxt [prem] THEN' Blast.blast_tac ctxt))
+ | subproof ctxt prems t =
+ replay_error ctxt "invalid application, only one assumption expected" Subproof prems t
+
+
+(* Simplifying Steps *)
+
+(* The reconstruction is a bit tricky: At first we only rewrite only based on the rules that are
+passed as argument. Then we simply use simp_thms to reconstruct all the proofs (and these theorems
+cover all the simplification below).
+*)
+local
+ fun rewrite_only_thms ctxt thms =
+ ctxt
+ |> empty_simpset
+ |> put_simpset HOL_basic_ss
+ |> (fn ctxt => ctxt addsimps thms)
+ |> Simplifier.full_simp_tac
+ fun rewrite_only_thms_tmp ctxt thms =
+ rewrite_only_thms ctxt thms
+ THEN' TRY' (K (Clasimp.auto_tac ctxt)) (*TODO: TEMP until cvc5 produces fine grained simplification steps *)
+
+ fun rewrite_thms ctxt thms =
+ ctxt
+ |> empty_simpset
+ |> put_simpset HOL_basic_ss
+ |> Raw_Simplifier.add_eqcong @{thm eq_reflection[OF imp_cong]}
+ |> (fn ctxt => ctxt addsimps thms addsimps @{thms simp_thms})
+ |> Simplifier.full_simp_tac
+
+ fun chain_rewrite_thms ctxt thms =
+ TRY' (rewrite_only_thms ctxt thms)
+ THEN' TRY' (rewrite_thms ctxt thms)
+ THEN' TRY' (K (Clasimp.auto_tac ctxt)) (*TODO: TEMP until cvc5 produces fine grained simplification steps *)
+
+ fun chain_rewrite_two_step_with_ac_simps ctxt thms1 thms2 =
+ TRY' (rewrite_only_thms ctxt thms1)
+ THEN' TRY' (rewrite_thms ctxt thms2)
+ THEN' TRY' (K (Clasimp.auto_tac ctxt)) (*TODO: TEMP until cvc5 produces fine grained simplification steps *)
+
+ fun chain_rewrite_thms_two_step ctxt thms1 thms2 thms3 thms4 =
+ chain_rewrite_two_step_with_ac_simps ctxt thms1 thms2
+ THEN' TRY' (chain_rewrite_two_step_with_ac_simps ctxt thms3 thms4)
+
+ val imp_refl = @{lemma \<open>(P \<longrightarrow> P) = True\<close> by blast}
+
+in
+fun rewrite_bool_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ (chain_rewrite_thms ctxt @{thms verit_bool_simplify}))
+
+fun rewrite_and_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ (chain_rewrite_two_step_with_ac_simps ctxt @{thms verit_and_simplify verit_and_simplify1}
+ @{thms verit_and_simplify}))
+
+fun rewrite_or_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ (chain_rewrite_two_step_with_ac_simps ctxt @{thms verit_or_simplify verit_or_simplify_1}
+ @{thms verit_or_simplify})
+ THEN' TRY' (REPEAT' (match_tac ctxt @{thms verit_and_pos}) THEN' assume_tac ctxt))
+
+fun rewrite_not_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ (rewrite_only_thms_tmp ctxt @{thms verit_not_simplify}))
+
+fun rewrite_equiv_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ (rewrite_only_thms_tmp ctxt @{thms verit_equiv_simplify}))
+
+fun rewrite_eq_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ (chain_rewrite_two_step_with_ac_simps ctxt
+ @{thms verit_eq_simplify}
+ (Named_Theorems.get ctxt @{named_theorems ac_simps})))
+
+fun rewrite_implies_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ (rewrite_only_thms_tmp ctxt @{thms verit_implies_simplify}))
+
+(* It is more efficient to first fold the implication symbols.
+ That is however not enough when symbols appears within
+ expressions, hence we also unfold implications in the
+ other direction. *)
+fun rewrite_connective_def ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ chain_rewrite_thms_two_step ctxt
+ (imp_refl :: @{thms not_not verit_connective_def[symmetric]})
+ (@{thms verit_connective_def[symmetric]})
+ (imp_refl :: @{thms not_not verit_connective_def})
+ (@{thms verit_connective_def}))
+
+fun rewrite_minus_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ chain_rewrite_two_step_with_ac_simps ctxt
+ @{thms arith_simps verit_minus_simplify}
+ (Named_Theorems.get ctxt @{named_theorems ac_simps} @
+ @{thms numerals arith_simps arith_special
+ numeral_class.numeral.numeral_One}))
+
+fun rewrite_comp_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ chain_rewrite_thms ctxt @{thms verit_comp_simplify})
+
+fun rewrite_ite_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ (rewrite_only_thms_tmp ctxt @{thms verit_ite_simplify}))
+end
+
+
+(* Simplifications *)
+
+local
+ fun simplify_arith ctxt thms = partial_simplify_tac ctxt
+ (thms @ Named_Theorems.get ctxt @{named_theorems ac_simps} @ @{thms arith_simps})
+in
+
+fun sum_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ simplify_arith ctxt @{thms verit_sum_simplify arith_special}
+ THEN' TRY' (K (Clasimp.auto_tac ctxt))) (*TODO: TEMP until cvc5 produces fine grained simplification steps *)
+
+fun prod_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ simplify_arith ctxt @{thms verit_prod_simplify}
+ THEN' TRY' (K (Clasimp.auto_tac ctxt))) (*TODO: TEMP until cvc5 produces fine grained simplification steps *)
+end
+
+fun all_simplify ctxt _ t =
+ SMT_Replay_Methods.prove ctxt t (fn _ =>
+ TRY' (K (Clasimp.auto_tac ctxt))) (*TODO: TEMP until cvc5 produces fine grained simplification steps *)
+
+(* Arithmetics *)
+local
+
+val la_rw_eq_thm = @{lemma \<open>(a :: nat) = b \<or> (a \<le> b) \<or> (a \<ge> b)\<close> by auto}
+in
+fun la_rw_eq ctxt _ t = SMT_Replay_Methods.match_instantiate ctxt t la_rw_eq_thm
+
+fun la_generic_prove args ctxt _ = SMT_Replay_Arith.la_farkas args ctxt
+
+fun la_generic ctxt _ args =
+ prove_abstract (SMT_Replay_Methods.abstract_arith_shallow ctxt) (la_generic_prove args) ctxt []
+
+fun lia_generic ctxt _ t =
+ SMT_Replay_Methods.prove_arith_rewrite SMT_Replay_Methods.abstract_neq ctxt t
+
+fun la_disequality ctxt _ t =
+ SMT_Replay_Methods.match_instantiate ctxt t @{thm verit_la_disequality}
+
+end
+
+
+(* Symm and Not_Symm*)
+
+local
+ fun prove_symm symm_thm ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ =>
+ Method.insert_tac ctxt [symm_thm OF [thm]]
+ THEN' TRY' (assume_tac ctxt))
+ | prove_symm _ ctxt thms t = replay_error ctxt "invalid application in some symm rule" Unsupported thms t
+in
+ val symm_thm =
+ @{lemma \<open>(B = A) \<Longrightarrow> A = B\<close> by blast }
+ val symm = prove_symm symm_thm
+
+ val not_symm_thm =
+ @{lemma \<open>\<not>(B = A) \<Longrightarrow> \<not>(A = B)\<close> by blast }
+ val not_symm = prove_symm not_symm_thm
+end
+
+(* Reordering *)
+local
+ fun prove_reordering ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ =>(
+ Method.insert_tac ctxt [thm]
+ THEN' match_tac ctxt @{thms ccontr}
+ THEN' K (unfold_tac ctxt @{thms de_Morgan_disj})
+ THEN' TRY o CHANGED_PROP o REPEAT_ALL_NEW (ematch_tac ctxt @{thms conjE})
+ THEN' CHANGED_PROP o REPEAT_ALL_NEW (ematch_tac ctxt @{thms disjE})
+ THEN' REPEAT'(ematch_tac ctxt @{thms notE} THEN' TRY' (assume_tac ctxt))
+ ))
+ | prove_reordering ctxt thms t =
+ replay_error ctxt "invalid application in some reordering rule" Unsupported thms t
+in
+ val reordering = prove_reordering
+end
+
+end;
--- a/src/HOL/Tools/SMT/smt_solver.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/SMT/smt_solver.ML Tue Mar 29 12:55:25 2022 +0200
@@ -21,7 +21,7 @@
command: unit -> string list,
options: Proof.context -> string list,
smt_options: (string * string) list,
- good_slices: ((int * string) * string list) list,
+ good_slices: ((int * int * string) * string list) list,
outcome: string -> string list -> outcome * string list,
parse_proof: (Proof.context -> SMT_Translate.replay_data ->
((string * ATP_Problem_Generate.stature) * thm) list -> term list -> term -> string list ->
@@ -30,7 +30,7 @@
(*registry*)
val add_solver: solver_config -> theory -> theory
- val good_slices: Proof.context -> string -> ((int * string) * string list) list
+ val good_slices: Proof.context -> string -> ((int * int * string) * string list) list
(*filter*)
val smt_filter: Proof.context -> thm -> ((string * ATP_Problem_Generate.stature) * thm) list ->
@@ -155,7 +155,7 @@
command: unit -> string list,
options: Proof.context -> string list,
smt_options: (string * string) list,
- good_slices: ((int * string) * string list) list,
+ good_slices: ((int * int * string) * string list) list,
outcome: string -> string list -> outcome * string list,
parse_proof: (Proof.context -> SMT_Translate.replay_data ->
((string * ATP_Problem_Generate.stature) * thm) list -> term list -> term -> string list ->
@@ -180,7 +180,7 @@
type solver_info = {
command: unit -> string list,
smt_options: (string * string) list,
- good_slices: ((int * string) * string list) list,
+ good_slices: ((int * int * string) * string list) list,
parse_proof: Proof.context -> SMT_Translate.replay_data ->
((string * ATP_Problem_Generate.stature) * thm) list -> term list -> term -> string list ->
parsed_proof,
--- a/src/HOL/Tools/SMT/smt_systems.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/SMT/smt_systems.ML Tue Mar 29 12:55:25 2022 +0200
@@ -96,13 +96,13 @@
smt_options = [(":produce-unsat-cores", "true")],
good_slices =
(* FUDGE *)
- [((512, meshN), ["--full-saturate-quant", "--inst-when=full-last-call", "--inst-no-entail", "--term-db-mode=relevant", "--multi-trigger-linear"]),
- ((64, meshN), ["--decision=internal", "--simplification=none", "--full-saturate-quant"]),
- ((1024, meshN), ["--relevant-triggers", "--full-saturate-quant"]),
- ((256, mepoN), ["--trigger-sel=max", "--full-saturate-quant"]),
- ((32, meshN), ["--term-db-mode=relevant", "--full-saturate-quant"]),
- ((128, meshN), ["--no-e-matching", "--full-saturate-quant"]),
- ((256, meshN), ["--finite-model-find", "--fmf-inst-engine"])],
+ [((1, 512, meshN), ["--full-saturate-quant", "--inst-when=full-last-call", "--inst-no-entail", "--term-db-mode=relevant", "--multi-trigger-linear"]),
+ ((1, 64, meshN), ["--decision=internal", "--simplification=none", "--full-saturate-quant"]),
+ ((1, 1024, meshN), ["--relevant-triggers", "--full-saturate-quant"]),
+ ((1, 256, mepoN), ["--trigger-sel=max", "--full-saturate-quant"]),
+ ((1, 32, meshN), ["--term-db-mode=relevant", "--full-saturate-quant"]),
+ ((1, 128, meshN), ["--no-e-matching", "--full-saturate-quant"]),
+ ((1, 256, meshN), ["--finite-model-find", "--fmf-inst-engine"])],
outcome = on_first_line (outcome_of "unsat" "sat" "unknown" "timeout"),
parse_proof = SOME (K CVC4_Proof_Parse.parse_proof),
replay = NONE }
@@ -141,14 +141,14 @@
smt_options = [(":produce-proofs", "true")],
good_slices =
(* FUDGE *)
- [((1024, meshN), []),
- ((512, mashN), []),
- ((64, meshN), []),
- ((128, meshN), []),
- ((256, mepoN), []),
- ((32, meshN), [])],
+ [((1, 1024, meshN), []),
+ ((1, 512, mashN), []),
+ ((1, 64, meshN), []),
+ ((1, 128, meshN), []),
+ ((1, 256, mepoN), []),
+ ((1, 32, meshN), [])],
outcome = on_first_non_unsupported_line (outcome_of "unsat" "sat" "unknown" "Time limit exceeded"),
- parse_proof = SOME (K VeriT_Proof_Parse.parse_proof),
+ parse_proof = SOME (K Lethe_Proof_Parse.parse_proof),
replay = SOME Verit_Replay.replay }
end
@@ -182,12 +182,12 @@
smt_options = [(":produce-proofs", "true")],
good_slices =
(* FUDGE *)
- [((1024, meshN), []),
- ((512, mepoN), []),
- ((64, meshN), []),
- ((256, meshN), []),
- ((128, mashN), []),
- ((32, meshN), [])],
+ [((1, 1024, meshN), []),
+ ((1, 512, mepoN), []),
+ ((1, 64, meshN), []),
+ ((1, 256, meshN), []),
+ ((1, 128, mashN), []),
+ ((1, 32, meshN), [])],
outcome = on_first_line (outcome_of "unsat" "sat" "unknown" "timeout"),
parse_proof = SOME Z3_Replay.parse_proof,
replay = SOME Z3_Replay.replay }
--- a/src/HOL/Tools/SMT/verit_replay.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/SMT/verit_replay.ML Tue Mar 29 12:55:25 2022 +0200
@@ -137,9 +137,9 @@
val args = map (Term.subst_free concl_tranformation o subst_only_free global_transformation) args
val insts = Symtab.map (K (Term.subst_free concl_tranformation o subst_only_free global_transformation)) insts
val proof_prems =
- if Verit_Replay_Methods.requires_subproof_assms prems rule then proof_prems else []
+ if Lethe_Replay_Methods.requires_subproof_assms prems rule then proof_prems else []
val local_inputs =
- if Verit_Replay_Methods.requires_local_input prems rule then input @ inputs else []
+ if Lethe_Replay_Methods.requires_local_input prems rule then input @ inputs else []
val replay = Timing.timing (replay_thm Verit_Replay_Methods.method_for rewrite_rules ll_defs
ctxt assumed [] (proof_prems @ local_inputs) (nthms @ nthms') concl_tranformation
global_transformation args insts)
--- a/src/HOL/Tools/SMT/verit_replay_methods.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/SMT/verit_replay_methods.ML Tue Mar 29 12:55:25 2022 +0200
@@ -10,9 +10,6 @@
val method_for: string -> Proof.context -> thm list -> term list -> term Symtab.table ->
(string * term) list -> term -> thm
- val requires_subproof_assms : string list -> string -> bool
- val requires_local_input: string list -> string -> bool
- val eq_congruent_pred: Proof.context -> 'a -> term -> thm
val discharge: Proof.context -> thm list -> term -> thm
end;
@@ -20,63 +17,7 @@
structure Verit_Replay_Methods: VERIT_REPLAY_METHODS =
struct
-(*Some general comments on the proof format:
- 1. Double negations are not always removed. This means for example that the equivalence rules
- cannot assume that the double negations have already been removed. Therefore, we match the
- term, instantiate the theorem, then use simp (to remove double negations), and finally use
- assumption.
- 2. The reconstruction for rule forall_inst is buggy and tends to be very fragile, because the rule
- is doing much more that is supposed to do. Moreover types can make trivial goals (for the
- boolean structure) impossible to prove.
- 3. Duplicate literals are sometimes removed, mostly by the SAT solver.
-
- Rules unsupported on purpose:
- * Distinct_Elim, XOR, let (we don't need them).
- * deep_skolemize (because it is not clear if verit still generates using it).
-*)
-
-datatype verit_rule =
- False | True |
-
- (*input: a repeated (normalized) assumption of assumption of in a subproof*)
- Normalized_Input | Local_Input |
- (*Subproof:*)
- Subproof |
- (*Conjunction:*)
- And | Not_And | And_Pos | And_Neg |
- (*Disjunction""*)
- Or | Or_Pos | Not_Or | Or_Neg |
- (*Disjunction:*)
- Implies | Implies_Neg1 | Implies_Neg2 | Implies_Pos | Not_Implies1 | Not_Implies2 |
- (*Equivalence:*)
- Equiv_neg1 | Equiv_pos1 | Equiv_pos2 | Equiv_neg2 | Not_Equiv1 | Not_Equiv2 | Equiv1 | Equiv2 |
- (*If-then-else:*)
- ITE_Pos1 | ITE_Pos2 | ITE_Neg1 | ITE_Neg2 | Not_ITE1 | Not_ITE2 | ITE_Intro | ITE1 | ITE2 |
- (*Equality:*)
- Eq_Congruent | Eq_Reflexive | Eq_Transitive | Eq_Congruent_Pred | Trans | Refl | Cong |
- (*Arithmetics:*)
- LA_Disequality | LA_Generic | LA_Tautology | LIA_Generic | LA_Totality | LA_RW_Eq |
- NLA_Generic |
- (*Quantifiers:*)
- Forall_Inst | Qnt_Rm_Unused | Qnt_Join | Onepoint | Bind | Skolem_Forall | Skolem_Ex |
- (*Resolution:*)
- Theory_Resolution | Resolution |
- (*Temporary rules, that the verit developpers want to remove:*)
- AC_Simp |
- Bfun_Elim |
- Qnt_CNF |
- (*Used to introduce skolem constants*)
- Definition |
- (*Former cong rules*)
- Bool_Simplify | Or_Simplify | Not_Simplify | And_Simplify | Equiv_Simplify |
- Implies_Simplify | Connective_Def | Minus_Simplify | Comp_Simplify |
- Eq_Simplify | ITE_Simplify | Sum_Simplify | Prod_Simplify |
- Qnt_Simplify | Not_Not | Tautological_Clause | Duplicate_Literals |
- (*Unsupported rule*)
- Unsupported |
- (*For compression*)
- Theory_Resolution2
-
+open Lethe_Replay_Methods
fun verit_rule_of "bind" = Bind
| verit_rule_of "cong" = Cong
@@ -149,944 +90,19 @@
| verit_rule_of "tautology" = Tautological_Clause
| verit_rule_of "qnt_cnf" = Qnt_CNF
| verit_rule_of r =
- if r = Verit_Proof.normalized_input_rule then Normalized_Input
- else if r = Verit_Proof.local_input_rule then Local_Input
- else if r = Verit_Proof.veriT_def then Definition
- else if r = Verit_Proof.not_not_rule then Not_Not
- else if r = Verit_Proof.contract_rule then Duplicate_Literals
- else if r = Verit_Proof.ite_intro_rule then ITE_Intro
- else if r = Verit_Proof.eq_congruent_rule then Eq_Congruent
- else if r = Verit_Proof.eq_congruent_pred_rule then Eq_Congruent_Pred
- else if r = Verit_Proof.theory_resolution2_rule then Theory_Resolution2
- else if r = Verit_Proof.th_resolution_rule then Theory_Resolution
- else if r = Verit_Proof.equiv_pos2_rule then Equiv_pos2
+ if r = Lethe_Proof.normalized_input_rule then Normalized_Input
+ else if r = Lethe_Proof.local_input_rule then Local_Input
+ else if r = Lethe_Proof.lethe_def then Definition
+ else if r = Lethe_Proof.not_not_rule then Not_Not
+ else if r = Lethe_Proof.contract_rule then Duplicate_Literals
+ else if r = Lethe_Proof.ite_intro_rule then ITE_Intro
+ else if r = Lethe_Proof.eq_congruent_rule then Eq_Congruent
+ else if r = Lethe_Proof.eq_congruent_pred_rule then Eq_Congruent_Pred
+ else if r = Lethe_Proof.theory_resolution2_rule then Theory_Resolution2
+ else if r = Lethe_Proof.th_resolution_rule then Theory_Resolution
+ else if r = Lethe_Proof.equiv_pos2_rule then Equiv_pos2
else (@{print} ("Unsupport rule", r); Unsupported)
-fun string_of_verit_rule Bind = "Bind"
- | string_of_verit_rule Cong = "Cong"
- | string_of_verit_rule Refl = "Refl"
- | string_of_verit_rule Equiv1 = "Equiv1"
- | string_of_verit_rule Equiv2 = "Equiv2"
- | string_of_verit_rule Equiv_pos1 = "Equiv_pos1"
- | string_of_verit_rule Equiv_pos2 = "Equiv_pos2"
- | string_of_verit_rule Equiv_neg1 = "Equiv_neg1"
- | string_of_verit_rule Equiv_neg2 = "Equiv_neg2"
- | string_of_verit_rule Skolem_Forall = "Skolem_Forall"
- | string_of_verit_rule Skolem_Ex = "Skolem_Ex"
- | string_of_verit_rule Eq_Reflexive = "Eq_Reflexive"
- | string_of_verit_rule Theory_Resolution = "Theory_Resolution"
- | string_of_verit_rule Theory_Resolution2 = "Theory_Resolution2"
- | string_of_verit_rule Forall_Inst = "forall_inst"
- | string_of_verit_rule Or = "Or"
- | string_of_verit_rule Not_Or = "Not_Or"
- | string_of_verit_rule Resolution = "Resolution"
- | string_of_verit_rule Eq_Congruent = "eq_congruent"
- | string_of_verit_rule Trans = "trans"
- | string_of_verit_rule False = "false"
- | string_of_verit_rule And = "and"
- | string_of_verit_rule And_Pos = "and_pos"
- | string_of_verit_rule Not_And = "not_and"
- | string_of_verit_rule And_Neg = "and_neg"
- | string_of_verit_rule Or_Pos = "or_pos"
- | string_of_verit_rule Or_Neg = "or_neg"
- | string_of_verit_rule AC_Simp = "ac_simp"
- | string_of_verit_rule Not_Equiv1 = "not_equiv1"
- | string_of_verit_rule Not_Equiv2 = "not_equiv2"
- | string_of_verit_rule Not_Implies1 = "not_implies1"
- | string_of_verit_rule Not_Implies2 = "not_implies2"
- | string_of_verit_rule Implies_Neg1 = "implies_neg1"
- | string_of_verit_rule Implies_Neg2 = "implies_neg2"
- | string_of_verit_rule Implies = "implies"
- | string_of_verit_rule Bfun_Elim = "bfun_elim"
- | string_of_verit_rule ITE1 = "ite1"
- | string_of_verit_rule ITE2 = "ite2"
- | string_of_verit_rule Not_ITE1 = "not_ite1"
- | string_of_verit_rule Not_ITE2 = "not_ite2"
- | string_of_verit_rule ITE_Pos1 = "ite_pos1"
- | string_of_verit_rule ITE_Pos2 = "ite_pos2"
- | string_of_verit_rule ITE_Neg1 = "ite_neg1"
- | string_of_verit_rule ITE_Neg2 = "ite_neg2"
- | string_of_verit_rule ITE_Intro = "ite_intro"
- | string_of_verit_rule LA_Disequality = "la_disequality"
- | string_of_verit_rule LA_Generic = "la_generic"
- | string_of_verit_rule LIA_Generic = "lia_generic"
- | string_of_verit_rule LA_Tautology = "la_tautology"
- | string_of_verit_rule LA_RW_Eq = "la_rw_eq"
- | string_of_verit_rule LA_Totality = "LA_Totality"
- | string_of_verit_rule NLA_Generic = "nla_generic"
- | string_of_verit_rule Eq_Transitive = "eq_transitive"
- | string_of_verit_rule Qnt_Rm_Unused = "qnt_remove_unused"
- | string_of_verit_rule Onepoint = "onepoint"
- | string_of_verit_rule Qnt_Join = "qnt_join"
- | string_of_verit_rule Eq_Congruent_Pred = "eq_congruent_pred"
- | string_of_verit_rule Normalized_Input = Verit_Proof.normalized_input_rule
- | string_of_verit_rule Local_Input = Verit_Proof.local_input_rule
- | string_of_verit_rule Subproof = "subproof"
- | string_of_verit_rule Bool_Simplify = "bool_simplify"
- | string_of_verit_rule Equiv_Simplify = "equiv_simplify"
- | string_of_verit_rule Eq_Simplify = "eq_simplify"
- | string_of_verit_rule Not_Simplify = "not_simplify"
- | string_of_verit_rule And_Simplify = "and_simplify"
- | string_of_verit_rule Or_Simplify = "or_simplify"
- | string_of_verit_rule ITE_Simplify = "ite_simplify"
- | string_of_verit_rule Implies_Simplify = "implies_simplify"
- | string_of_verit_rule Connective_Def = "connective_def"
- | string_of_verit_rule Minus_Simplify = "minus_simplify"
- | string_of_verit_rule Sum_Simplify = "sum_simplify"
- | string_of_verit_rule Prod_Simplify = "prod_simplify"
- | string_of_verit_rule Comp_Simplify = "comp_simplify"
- | string_of_verit_rule Qnt_Simplify = "qnt_simplify"
- | string_of_verit_rule Not_Not = Verit_Proof.not_not_rule
- | string_of_verit_rule Tautological_Clause = "tautology"
- | string_of_verit_rule Duplicate_Literals = Verit_Proof.contract_rule
- | string_of_verit_rule Qnt_CNF = "qnt_cnf"
- | string_of_verit_rule r = "Unknown rule: " ^ \<^make_string> r
-
-fun replay_error ctxt msg rule thms t =
- SMT_Replay_Methods.replay_error ctxt msg (string_of_verit_rule rule) thms t
-
-
-(* utility function *)
-
-fun eqsubst_all ctxt thms =
- K ((REPEAT o HEADGOAL) (EqSubst.eqsubst_asm_tac ctxt [0] thms))
- THEN' K ((REPEAT o HEADGOAL) (EqSubst.eqsubst_tac ctxt [0] thms))
-
-fun simplify_tac ctxt thms =
- ctxt
- |> empty_simpset
- |> put_simpset HOL_basic_ss
- |> (fn ctxt => ctxt addsimps @{thms simp_thms} addsimps thms)
- |> Simplifier.asm_full_simp_tac
-
-(* sko_forall requires the assumptions to be able to prove the equivalence in case of double
-skolemization. See comment below. *)
-fun requires_subproof_assms _ t =
- member (op =) ["refl", "sko_forall", "sko_ex", "cong"] t
-
-fun requires_local_input _ t =
- member (op =) [Verit_Proof.local_input_rule] t
-
-(*This is a weaker simplification form. It is weaker, but is also less likely to loop*)
-fun partial_simplify_tac ctxt thms =
- ctxt
- |> empty_simpset
- |> put_simpset HOL_basic_ss
- |> (fn ctxt => ctxt addsimps @{thms simp_thms} addsimps thms)
- |> Simplifier.full_simp_tac
-
-val try_provers = SMT_Replay_Methods.try_provers "verit"
-
-fun TRY' tac = fn i => TRY (tac i)
-fun REPEAT' tac = fn i => REPEAT (tac i)
-fun REPEAT_CHANGED tac = fn i => REPEAT (CHANGED (tac i))
-
-
-(* Bind *)
-
-(*The bind rule is non-obvious due to the handling of quantifiers:
- "\<And>x y a. x = y ==> (\<forall>b. P a b x) \<longleftrightarrow> (\<forall>b. P' a b y)"
- ------------------------------------------------------
- \<forall>a. (\<forall>b x. P a b x) \<longleftrightarrow> (\<forall>b y. P' a b y)
-is a valid application.*)
-
-val bind_thms =
- [@{lemma \<open>(\<And>x x'. x = x' \<Longrightarrow> P x = Q x') \<Longrightarrow> (\<forall>x. P x) = (\<forall>y. Q y)\<close> by blast},
- @{lemma \<open>(\<And>x x'. x = x' \<Longrightarrow> P x = Q x') \<Longrightarrow> (\<exists>x. P x) = (\<exists>y. Q y)\<close> by blast},
- @{lemma \<open>(\<And>x x'. x = x' \<Longrightarrow> P x = Q x') \<Longrightarrow> (\<exists>x. P x = Q x)\<close> by blast},
- @{lemma \<open>(\<And>x x'. x = x' \<Longrightarrow> P x = Q x') \<Longrightarrow> (\<forall>x. P x = Q x)\<close> by blast}]
-
-val bind_thms_same_name =
- [@{lemma \<open>(\<And>x. P x = Q x) \<Longrightarrow> (\<forall>x. P x) = (\<forall>y. Q y)\<close> by blast},
- @{lemma \<open>(\<And>x. P x = Q x) \<Longrightarrow> (\<exists>x. P x) = (\<exists>y. Q y)\<close> by blast},
- @{lemma \<open>(\<And>x. P x = Q x) \<Longrightarrow> (\<exists>x. P x = Q x)\<close> by blast},
- @{lemma \<open>(\<And>x. P x = Q x) \<Longrightarrow> (\<forall>x. P x = Q x)\<close> by blast}]
-
-fun extract_quantified_names_q (_ $ Abs (name, _, t)) =
- apfst (curry (op ::) name) (extract_quantified_names_q t)
- | extract_quantified_names_q t = ([], t)
-
-fun extract_forall_quantified_names_q (Const(\<^const_name>\<open>HOL.All\<close>, _) $ Abs (name, ty, t)) =
- (name, ty) :: (extract_forall_quantified_names_q t)
- | extract_forall_quantified_names_q _ = []
-
-fun extract_all_forall_quantified_names_q (Const(\<^const_name>\<open>HOL.All\<close>, _) $ Abs (name, _, t)) =
- name :: (extract_all_forall_quantified_names_q t)
- | extract_all_forall_quantified_names_q (t $ u) =
- extract_all_forall_quantified_names_q t @ extract_all_forall_quantified_names_q u
- | extract_all_forall_quantified_names_q _ = []
-
-val extract_quantified_names_ba =
- SMT_Replay_Methods.dest_prop
- #> extract_quantified_names_q
- ##> HOLogic.dest_eq
- ##> fst
- ##> extract_quantified_names_q
- ##> fst
-
-val extract_quantified_names =
- extract_quantified_names_ba
- #> (op @)
-
-val extract_all_forall_quantified_names =
- SMT_Replay_Methods.dest_prop
- #> HOLogic.dest_eq
- #> fst
- #> extract_all_forall_quantified_names_q
-
-
-fun extract_all_exists_quantified_names_q (Const(\<^const_name>\<open>HOL.Ex\<close>, _) $ Abs (name, _, t)) =
- name :: (extract_all_exists_quantified_names_q t)
- | extract_all_exists_quantified_names_q (t $ u) =
- extract_all_exists_quantified_names_q t @ extract_all_exists_quantified_names_q u
- | extract_all_exists_quantified_names_q _ = []
-
-val extract_all_exists_quantified_names =
- SMT_Replay_Methods.dest_prop
- #> HOLogic.dest_eq
- #> fst
- #> extract_all_exists_quantified_names_q
-
-
-val extract_bind_names =
- HOLogic.dest_eq
- #> apply2 (fn (Free (name, _)) => name)
-
-fun combine_quant ctxt ((n1, n2) :: bounds) (n1' :: formula) =
- TRY' (if n1 = n1'
- then if n1 <> n2
- then
- resolve_tac ctxt bind_thms
- THEN' TRY'(resolve_tac ctxt [@{thm refl}])
- THEN' combine_quant ctxt bounds formula
- else resolve_tac ctxt bind_thms_same_name THEN' combine_quant ctxt bounds formula
- else resolve_tac ctxt @{thms allI} THEN' combine_quant ctxt ((n1, n2) :: bounds) formula)
- | combine_quant _ _ _ = K all_tac
-
-fun bind_quants ctxt args t =
- combine_quant ctxt (map extract_bind_names args) (extract_quantified_names t)
-
-fun generalize_prems_q [] prems = prems
- | generalize_prems_q (_ :: quants) prems =
- generalize_prems_q quants (@{thm spec} OF [prems])
-
-fun generalize_prems t = generalize_prems_q (fst (extract_quantified_names_ba t))
-
-fun bind ctxt [prems] args t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- bind_quants ctxt args t
- THEN' TRY' (SOLVED' (resolve_tac ctxt [generalize_prems t prems]
- THEN_ALL_NEW TRY' (assume_tac ctxt ORELSE' resolve_tac ctxt @{thms refl}))))
- | bind ctxt thms _ t = replay_error ctxt "invalid bind application" Bind thms t
-
-
-(* Congruence/Refl *)
-
-fun cong ctxt thms = try_provers ctxt
- (string_of_verit_rule Cong) [
- ("basic", SMT_Replay_Methods.cong_basic ctxt thms),
- ("unfolding then reflexivity", SMT_Replay_Methods.cong_unfolding_trivial ctxt thms),
- ("unfolding then auto", SMT_Replay_Methods.cong_unfolding_first ctxt thms),
- ("full", SMT_Replay_Methods.cong_full ctxt thms)] thms
-
-fun refl ctxt thm t =
- (case find_first (fn thm => t = Thm.full_prop_of thm) thm of
- SOME thm => thm
- | NONE =>
- (case try (fn t => SMT_Replay_Methods.match_instantiate ctxt t @{thm refl}) t of
- NONE => cong ctxt thm t
- | SOME thm => thm))
-
-
-(* Instantiation *)
-
-local
-fun dropWhile _ [] = []
- | dropWhile f (x :: xs) = if f x then dropWhile f xs else x :: xs
-in
-
-fun forall_inst ctxt _ _ insts t =
- let
- fun instantiate_and_solve i ({context = ctxt, prems = [prem], ...}: Subgoal.focus) =
- let
- val t = Thm.prop_of prem
- val quants = t
- |> SMT_Replay_Methods.dest_prop
- |> extract_forall_quantified_names_q
- val insts = map (Symtab.lookup insts o fst) (rev quants)
- |> dropWhile (curry (op =) NONE)
- |> rev
- fun option_map _ NONE = NONE
- | option_map f (SOME a) = SOME (f a)
- fun instantiate_with inst prem =
- Drule.infer_instantiate' ctxt [NONE, inst] @{thm spec} OF [prem]
- val inst_thm =
- fold instantiate_with
- (map (option_map (Thm.cterm_of ctxt)) insts)
- prem
- in
- (Method.insert_tac ctxt [inst_thm]
- THEN' TRY' (fn i => assume_tac ctxt i)
- THEN' TRY' (partial_simplify_tac ctxt @{thms eq_commute})) i
- end
- | instantiate_and_solve _ ({context = ctxt, prems = thms, ...}: Subgoal.focus) =
- replay_error ctxt "invalid application" Forall_Inst thms t
- in
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- match_tac ctxt [@{thm disj_not1} RSN (1, @{thm iffD2}) OF [@{thm impI}]]
- THEN' (fn i => Subgoal.FOCUS (instantiate_and_solve i) ctxt i))
- end
-end
-
-
-(* Or *)
-
-fun or _ (thm :: _) _ = thm
- | or ctxt thms t = replay_error ctxt "invalid bind application" Or thms t
-
-
-(* Implication *)
-
-val implies_pos_thm =
- [@{lemma \<open>\<not>(A \<longrightarrow> B) \<or> \<not>A \<or> B\<close> by blast},
- @{lemma \<open>\<not>(\<not>A \<longrightarrow> B) \<or> A \<or> B\<close> by blast}]
-
-fun implies_pos ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ =>
- resolve_tac ctxt implies_pos_thm)
-
-fun extract_rewrite_rule_assumption _ thms =
- let
- fun is_rewrite_rule thm =
- (case Thm.prop_of thm of
- \<^term>\<open>Trueprop\<close> $ (Const(\<^const_name>\<open>HOL.eq\<close>, _) $ _ $ Free(_, _)) => true
- | _ => false)
- fun is_context_rule thm =
- (case Thm.prop_of thm of
- \<^term>\<open>Trueprop\<close> $ (Const(\<^const_name>\<open>HOL.eq\<close>, _) $ Free(_, _) $ Free(_, _)) => true
- | _ => false)
- val ctxt_eq =
- thms
- |> filter is_context_rule
- val rew =
- thms
- |> filter_out is_context_rule
- |> filter is_rewrite_rule
- in
- (ctxt_eq, rew)
- end
-
-local
- fun rewrite_all_skolems thm_indirect ctxt (SOME thm :: thms) =
- EqSubst.eqsubst_tac ctxt [0] [thm_indirect OF [thm]]
- THEN' (partial_simplify_tac ctxt (@{thms eq_commute}))
- THEN' rewrite_all_skolems thm_indirect ctxt thms
- | rewrite_all_skolems thm_indirect ctxt (NONE :: thms) = rewrite_all_skolems thm_indirect ctxt thms
- | rewrite_all_skolems _ _ [] = K (all_tac)
-
- fun extract_var_name (thm :: thms) =
- let val name = Thm.concl_of thm
- |> SMT_Replay_Methods.dest_prop
- |> HOLogic.dest_eq
- |> fst
- |> (fn Const(_,_) $ Abs(name, _, _) => [(name,@{thm sym} OF [thm])]
- | _ => [])
- in name :: extract_var_name thms end
- | extract_var_name [] = []
-
-fun skolem_tac extractor thm1 thm2 ctxt thms t =
- let
- val (ctxt_eq, ts) = extract_rewrite_rule_assumption ctxt thms
- fun ordered_definitions () =
- let
- val var_order = extractor t
- val thm_names_with_var = extract_var_name ts |> flat
- in map (AList.lookup (op =) thm_names_with_var) var_order end
-
- in
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- K (unfold_tac ctxt ctxt_eq)
- THEN' ((SOLVED' (K (unfold_tac ctxt (map (fn thm => thm1 OF [@{thm sym} OF [thm]]) ts))))
- ORELSE'
- (rewrite_all_skolems thm2 ctxt (ordered_definitions ())
- THEN' partial_simplify_tac ctxt @{thms eq_commute})))
- end
-in
-
-val skolem_forall =
- skolem_tac extract_all_forall_quantified_names @{thm verit_sko_forall_indirect}
- @{thm verit_sko_forall_indirect2}
-
-val skolem_ex =
- skolem_tac extract_all_exists_quantified_names @{thm verit_sko_ex_indirect}
- @{thm verit_sko_ex_indirect2}
-
-end
-
-fun eq_reflexive ctxt _ t = SMT_Replay_Methods.match_instantiate ctxt t @{thm refl}
-
-local
- fun not_not_prove ctxt _ =
- K (unfold_tac ctxt @{thms not_not})
- THEN' match_tac ctxt @{thms verit_or_simplify_1}
-
- fun duplicate_literals_prove ctxt prems =
- Method.insert_tac ctxt prems
- THEN' match_tac ctxt @{thms ccontr}
- THEN' K (unfold_tac ctxt @{thms de_Morgan_disj not_not})
- THEN' TRY o CHANGED_PROP o REPEAT_ALL_NEW (ematch_tac ctxt @{thms conjE})
- THEN' CHANGED_PROP o REPEAT_ALL_NEW (ematch_tac ctxt @{thms disjE})
- THEN' REPEAT' (ematch_tac ctxt @{thms notE} THEN' TRY' (assume_tac ctxt))
-
- fun tautological_clause_prove ctxt _ =
- match_tac ctxt @{thms verit_or_neg}
- THEN' K (unfold_tac ctxt @{thms not_not disj_assoc[symmetric]})
- THEN' TRY' (match_tac ctxt @{thms notE} THEN_ALL_NEW assume_tac ctxt)
-
- val theory_resolution2_lemma = @{lemma \<open>a \<Longrightarrow> a = b \<Longrightarrow> b\<close> by blast}
-in
-
-fun prove_abstract abstracter tac ctxt thms t =
- let
- val thms = map (Conv.fconv_rule Thm.eta_long_conversion) thms
- val t' = Thm.eta_long_conversion (Object_Logic.dest_judgment ctxt (Thm.cterm_of ctxt t))
- val (_, t2) = Logic.dest_equals (Thm.prop_of t')
- val thm =
- SMT_Replay_Methods.prove_abstract ctxt thms t2 tac (
- fold_map (abstracter o SMT_Replay_Methods.dest_thm) thms ##>>
- abstracter (SMT_Replay_Methods.dest_prop t2))
- in
- @{thm verit_Pure_trans} OF [t', thm]
- end
-
-val not_not = prove_abstract SMT_Replay_Methods.abstract_bool_shallow not_not_prove
-
-val tautological_clause =
- prove_abstract SMT_Replay_Methods.abstract_bool_shallow tautological_clause_prove
-
-val duplicate_literals =
- prove_abstract SMT_Replay_Methods.abstract_bool_shallow duplicate_literals_prove
-
-val unit_res = prove_abstract SMT_Replay_Methods.abstract_bool_shallow SMT_Replay_Methods.prop_tac
-
-(*match_instantiate does not work*)
-fun theory_resolution2 ctxt prems t =
- SMT_Replay_Methods.prove ctxt t (fn _ => match_tac ctxt [theory_resolution2_lemma OF prems])
-
-end
-
-
-fun normalized_input ctxt prems t = SMT_Replay_Methods.prove ctxt t (fn _ =>
- Method.insert_tac ctxt prems
- THEN' TRY' (K (unfold_tac ctxt @{thms SMT.trigger_def}))
- THEN' TRY' (partial_simplify_tac ctxt @{thms eq_commute}))
-
-val false_rule_thm = @{lemma \<open>\<not>False\<close> by blast}
-
-fun false_rule ctxt _ t = SMT_Replay_Methods.match_instantiate ctxt t false_rule_thm
-
-
-(* Transitivity *)
-
-val trans_bool_thm =
- @{lemma \<open>P = Q \<Longrightarrow> Q \<Longrightarrow> P\<close> by blast}
-
-fun trans ctxt thms t =
- let
- val prop_of = HOLogic.dest_Trueprop o Thm.full_prop_of
- fun combine_thms [thm1, thm2] =
- (case (prop_of thm1, prop_of thm2) of
- ((Const(\<^const_name>\<open>HOL.eq\<close>, _) $ t1 $ t2),
- (Const(\<^const_name>\<open>HOL.eq\<close>, _) $ t3 $ t4)) =>
- if t2 aconv t3 then thm1 RSN (1, thm2 RSN (2, @{thm trans}))
- else if t2 aconv t4 then thm1 RSN ((1, ((thm2 RS sym)) RSN (2, @{thm trans})))
- else if t1 aconv t4 then thm2 RSN (1, thm1 RSN (2, @{thm trans}))
- else raise Fail "invalid trans theorem"
- | _ => trans_bool_thm OF [thm1, thm2])
- | combine_thms (thm1 :: thm2 :: thms) =
- combine_thms (combine_thms [thm1, thm2] :: thms)
- | combine_thms thms = replay_error ctxt "invalid bind application" Trans thms t
- val t' = Thm.eta_long_conversion (Object_Logic.dest_judgment ctxt (Thm.cterm_of ctxt t))
- val (_, t2) = Logic.dest_equals (Thm.prop_of t')
- val thms = map (Conv.fconv_rule Thm.eta_long_conversion) thms
- val trans_thm = combine_thms thms
- in
- (case (prop_of trans_thm, t2) of
- ((Const(\<^const_name>\<open>HOL.eq\<close>, _) $ t1 $ _),
- (Const(\<^const_name>\<open>HOL.eq\<close>, _) $ t3 $ _)) =>
- if t1 aconv t3 then trans_thm else trans_thm RS sym
- | _ => trans_thm (*to be on the safe side*))
- end
-
-
-fun tmp_AC_rule ctxt thms t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- Method.insert_tac ctxt thms
- THEN' REPEAT_ALL_NEW (partial_simplify_tac ctxt @{thms eq_commute}
- THEN' TRY' (simplify_tac ctxt @{thms ac_simps conj_ac})
- THEN' TRY' (Classical.fast_tac ctxt)))
-
-
-(* And/Or *)
-
-local
- fun not_and_rule_prove ctxt prems =
- Method.insert_tac ctxt prems
- THEN' K (unfold_tac ctxt @{thms de_Morgan_conj})
- THEN_ALL_NEW TRY' (assume_tac ctxt)
-
- fun or_pos_prove ctxt _ =
- K (unfold_tac ctxt @{thms de_Morgan_disj not_not})
- THEN' match_tac ctxt @{thms verit_and_pos}
- THEN' K (unfold_tac ctxt @{thms de_Morgan_conj de_Morgan_disj not_not})
- THEN' TRY' (assume_tac ctxt)
-
- fun not_or_rule_prove ctxt prems =
- Method.insert_tac ctxt prems
- THEN' K (unfold_tac ctxt @{thms de_Morgan_disj not_not})
- THEN' TRY' (REPEAT' (match_tac ctxt @{thms conjI}))
- THEN_ALL_NEW ((REPEAT' (ematch_tac ctxt @{thms conjE}))
- THEN' TRY' (assume_tac ctxt))
-
- fun and_rule_prove ctxt prems =
- Method.insert_tac ctxt prems
- THEN' (fn i => REPEAT (dresolve_tac ctxt @{thms conjE} i THEN assume_tac ctxt (i+1)))
- THEN' TRY' (assume_tac ctxt)
-
- fun and_neg_rule_prove ctxt _ =
- match_tac ctxt @{thms verit_and_neg}
- THEN' K (unfold_tac ctxt @{thms de_Morgan_conj not_not})
- THEN' TRY' (assume_tac ctxt)
-
- fun prover tac = prove_abstract SMT_Replay_Methods.abstract_prop tac
-
-in
-
-val and_rule = prover and_rule_prove
-
-val not_and_rule = prover not_and_rule_prove
-
-val not_or_rule = prover not_or_rule_prove
-
-val or_pos_rule = prover or_pos_prove
-
-val and_neg_rule = prover and_neg_rule_prove
-
-val or_neg_rule = prove_abstract SMT_Replay_Methods.abstract_bool (fn ctxt => fn _ =>
- resolve_tac ctxt @{thms verit_or_neg}
- THEN' K (unfold_tac ctxt @{thms not_not})
- THEN_ALL_NEW
- (REPEAT'
- (SOLVED' (match_tac ctxt @{thms disjI1} THEN_ALL_NEW assume_tac ctxt)
- ORELSE' (match_tac ctxt @{thms disjI2} THEN' TRY' (assume_tac ctxt)))))
-
-fun and_pos ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- REPEAT_CHANGED (resolve_tac ctxt @{thms verit_and_pos})
- THEN' TRY' (assume_tac ctxt))
-
-end
-
-
-(* Equivalence Transformation *)
-
-local
- fun prove_equiv equiv_thm ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ =>
- Method.insert_tac ctxt [equiv_thm OF [thm]]
- THEN' TRY' (assume_tac ctxt))
- | prove_equiv _ ctxt thms t = replay_error ctxt "invalid application in some equiv rule" Unsupported thms t
-in
-
-val not_equiv1 = prove_equiv @{lemma \<open>\<not>(A \<longleftrightarrow> B) \<Longrightarrow> A \<or> B\<close> by blast}
-val not_equiv2 = prove_equiv @{lemma \<open>\<not>(A \<longleftrightarrow> B) \<Longrightarrow> \<not>A \<or> \<not>B\<close> by blast}
-val equiv1 = prove_equiv @{lemma \<open>(A \<longleftrightarrow> B) \<Longrightarrow> \<not>A \<or> B\<close> by blast}
-val equiv2 = prove_equiv @{lemma \<open>(A \<longleftrightarrow> B) \<Longrightarrow> A \<or> \<not>B\<close> by blast}
-val not_implies1 = prove_equiv @{lemma \<open>\<not>(A \<longrightarrow> B) \<Longrightarrow> A\<close> by blast}
-val not_implies2 = prove_equiv @{lemma \<open>\<not>(A \<longrightarrow>B) \<Longrightarrow> \<not>B\<close> by blast}
-
-end
-
-
-(* Equivalence Lemma *)
-(*equiv_pos2 is very important for performance. We have tried various tactics, including
-a specialisation of SMT_Replay_Methods.match_instantiate, but there never was a measurable
-and consistent gain.*)
-local
- fun prove_equiv_pos_neg2 thm ctxt _ t =
- SMT_Replay_Methods.match_instantiate ctxt t thm
-in
-
-val equiv_pos1_thm = @{lemma \<open>\<not>(a \<longleftrightarrow> b) \<or> a \<or> \<not>b\<close> by blast+}
-val equiv_pos1 = prove_equiv_pos_neg2 equiv_pos1_thm
-
-val equiv_pos2_thm = @{lemma \<open>\<And>a b. (a \<noteq> b) \<or> \<not>a \<or> b\<close> by blast+}
-val equiv_pos2 = prove_equiv_pos_neg2 equiv_pos2_thm
-
-val equiv_neg1_thm = @{lemma \<open>(a \<longleftrightarrow> b) \<or> \<not>a \<or> \<not>b\<close> by blast+}
-val equiv_neg1 = prove_equiv_pos_neg2 equiv_neg1_thm
-
-val equiv_neg2_thm = @{lemma \<open>(a \<longleftrightarrow> b) \<or> a \<or> b\<close> by blast}
-val equiv_neg2 = prove_equiv_pos_neg2 equiv_neg2_thm
-
-end
-
-
-local
- fun implies_pos_neg_term ctxt thm (\<^term>\<open>Trueprop\<close> $
- (\<^term>\<open>HOL.disj\<close> $ (\<^term>\<open>HOL.implies\<close> $ a $ b) $ _)) =
- Drule.infer_instantiate' ctxt (map (SOME o Thm.cterm_of ctxt) [a, b]) thm
- | implies_pos_neg_term ctxt thm t =
- replay_error ctxt "invalid application in Implies" Unsupported [thm] t
-
- fun prove_implies_pos_neg thm ctxt _ t =
- let val thm = implies_pos_neg_term ctxt thm t
- in
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- Method.insert_tac ctxt [thm]
- THEN' TRY' (assume_tac ctxt))
- end
-in
-
-val implies_neg1_thm = @{lemma \<open>(a \<longrightarrow> b) \<or> a\<close> by blast}
-val implies_neg1 = prove_implies_pos_neg implies_neg1_thm
-
-val implies_neg2_thm = @{lemma \<open>(a \<longrightarrow> b) \<or> \<not>b\<close> by blast}
-val implies_neg2 = prove_implies_pos_neg implies_neg2_thm
-
-val implies_thm = @{lemma \<open>(a \<longrightarrow> b) \<Longrightarrow> \<not>a \<or> b\<close> by blast}
-fun implies_rules ctxt prems t = SMT_Replay_Methods.prove ctxt t (fn _ =>
- Method.insert_tac ctxt [implies_thm OF prems]
- THEN' TRY' (assume_tac ctxt))
-
-end
-
-
-(* BFun *)
-
-local
- val bfun_theorems = @{thms verit_bfun_elim}
-in
-
-fun bfun_elim ctxt prems t = SMT_Replay_Methods.prove ctxt t (fn _ =>
- Method.insert_tac ctxt prems
- THEN' TRY' (eqsubst_all ctxt bfun_theorems)
- THEN' TRY' (simplify_tac ctxt @{thms eq_commute all_conj_distrib ex_disj_distrib}))
-
-end
-
-
-(* If-Then-Else *)
-
-local
- fun prove_ite ite_thm thm ctxt =
- resolve_tac ctxt [ite_thm OF [thm]]
- THEN' K (unfold_tac ctxt @{thms not_not})
- THEN' TRY' (assume_tac ctxt)
-in
-
-val ite_pos1_thm =
- @{lemma \<open>\<not>(if x then P else Q) \<or> x \<or> Q\<close> by auto}
-
-fun ite_pos1 ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ =>
- resolve_tac ctxt [ite_pos1_thm])
-
-val ite_pos2_thms =
- @{lemma \<open>\<not>(if x then P else Q) \<or> \<not>x \<or> P\<close> \<open>\<not>(if \<not>x then P else Q) \<or> x \<or> P\<close> by auto}
-
-fun ite_pos2 ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ => resolve_tac ctxt ite_pos2_thms)
-
-val ite_neg1_thms =
- @{lemma \<open>(if x then P else Q) \<or> x \<or> \<not>Q\<close> \<open>(if x then P else \<not>Q) \<or> x \<or> Q\<close> by auto}
-
-fun ite_neg1 ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ => resolve_tac ctxt ite_neg1_thms)
-
-val ite_neg2_thms =
- @{lemma \<open>(if x then P else Q) \<or> \<not>x \<or> \<not>P\<close> \<open>(if \<not>x then P else Q) \<or> x \<or> \<not>P\<close>
- \<open>(if x then \<not>P else Q) \<or> \<not>x \<or> P\<close> \<open>(if \<not>x then \<not>P else Q) \<or> x \<or> P\<close>
- by auto}
-
-fun ite_neg2 ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ => resolve_tac ctxt ite_neg2_thms)
-
-val ite1_thm =
- @{lemma \<open>(if x then P else Q) \<Longrightarrow> x \<or> Q\<close> by (auto split: if_splits) }
-
-fun ite1 ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ => prove_ite ite1_thm thm ctxt)
-
-val ite2_thm =
- @{lemma \<open>(if x then P else Q) \<Longrightarrow> \<not>x \<or> P\<close> by (auto split: if_splits) }
-
-fun ite2 ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ => prove_ite ite2_thm thm ctxt)
-
-val not_ite1_thm =
- @{lemma \<open>\<not>(if x then P else Q) \<Longrightarrow> x \<or> \<not>Q\<close> by (auto split: if_splits) }
-
-fun not_ite1 ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ => prove_ite not_ite1_thm thm ctxt)
-
-val not_ite2_thm =
- @{lemma \<open>\<not>(if x then P else Q) \<Longrightarrow> \<not>x \<or> \<not>P\<close> by (auto split: if_splits) }
-
-fun not_ite2 ctxt [thm] t = SMT_Replay_Methods.prove ctxt t (fn _ => prove_ite not_ite2_thm thm ctxt)
-
-(*ite_intro can introduce new terms that are in the proof exactly the sames as the old one, but are
-not internally, hence the possible reordering.*)
-fun ite_intro ctxt _ t =
- let
- fun simplify_ite ctxt thms =
- ctxt
- |> empty_simpset
- |> put_simpset HOL_basic_ss
- |> (fn ctxt => ctxt addsimps thms @ @{thms if_True if_False refl simp_thms if_cancel})
- |> Raw_Simplifier.add_eqcong @{thm verit_ite_if_cong}
- |> Simplifier.full_simp_tac
- in
- SMT_Replay_Methods.prove ctxt t (fn _ => simplify_ite ctxt []
- THEN' TRY' (simplify_ite ctxt @{thms eq_commute}))
- end
-end
-
-
-(* Quantifiers *)
-
-local
- val rm_unused = @{lemma \<open>(\<forall>x. P) = P\<close> \<open>(\<exists>x. P) = P\<close> by blast+}
-
- fun qnt_cnf_tac ctxt =
- simplify_tac ctxt @{thms de_Morgan_conj de_Morgan_disj imp_conv_disj
- iff_conv_conj_imp if_bool_eq_disj ex_simps all_simps ex_disj_distrib
- verit_connective_def(3) all_conj_distrib}
- THEN' TRY' (Blast.blast_tac ctxt)
-in
-fun qnt_rm_unused ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ =>
- K (unfold_tac ctxt rm_unused))
-
-fun onepoint ctxt prems t = SMT_Replay_Methods.prove ctxt t (fn _ =>
- Method.insert_tac ctxt prems
- THEN' Simplifier.full_simp_tac (put_simpset HOL_basic_ss (empty_simpset ctxt)
- addsimps @{thms HOL.simp_thms HOL.all_simps}
- addsimprocs [@{simproc HOL.defined_All}, @{simproc HOL.defined_Ex}])
- THEN' TRY' (Blast.blast_tac ctxt)
- THEN' TRY' (Metis_Tactic.metis_tac [] ATP_Problem_Generate.combsN ctxt []))
-
-fun qnt_join ctxt _ t = SMT_Replay_Methods.prove ctxt t Classical.fast_tac
-
-fun qnt_cnf ctxt _ t = SMT_Replay_Methods.prove ctxt t qnt_cnf_tac
-
-fun qnt_simplify ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ =>
- partial_simplify_tac ctxt [])
-
-end
-
-(* Equality *)
-
-fun eq_transitive ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ =>
- REPEAT_CHANGED (resolve_tac ctxt [@{thm disj_not1} RSN (1, @{thm iffD2}) OF @{thms impI}])
- THEN' REPEAT' (resolve_tac ctxt @{thms impI})
- THEN' REPEAT' (eresolve_tac ctxt @{thms conjI})
- THEN' REPEAT' (fn i => dresolve_tac ctxt @{thms verit_eq_transitive} i THEN assume_tac ctxt (i+1))
- THEN' resolve_tac ctxt @{thms refl})
-
-local
- fun find_rew rews t t' =
- (case AList.lookup (op =) rews (t, t') of
- SOME thm => SOME (thm COMP @{thm symmetric})
- | NONE =>
- (case AList.lookup (op =) rews (t', t) of
- SOME thm => SOME thm
- | NONE => NONE))
-
- fun eq_pred_conv rews t ctxt ctrm =
- (case find_rew rews t (Thm.term_of ctrm) of
- SOME thm => Conv.rewr_conv thm ctrm
- | NONE =>
- (case t of
- f $ arg =>
- (Conv.fun_conv (eq_pred_conv rews f ctxt) then_conv
- Conv.arg_conv (eq_pred_conv rews arg ctxt)) ctrm
- | Abs (_, _, f) => Conv.abs_conv (eq_pred_conv rews f o snd) ctxt ctrm
- | _ => Conv.all_conv ctrm))
-
- fun eq_pred_rewrite_tac ({context = ctxt, prems, concl, ...}: Subgoal.focus) =
- let
- val rews = prems
- |> map_filter (try (apfst (HOLogic.dest_eq o Thm.term_of o Object_Logic.dest_judgment ctxt o
- Thm.cconcl_of) o `(fn x => x)))
- |> map (apsnd (fn x => @{thm eq_reflection} OF [x]))
- fun conv_left conv = Conv.arg_conv (Conv.arg_conv conv)
- fun conv_left_neg conv = Conv.arg_conv (Conv.arg_conv (Conv.arg_conv conv))
- val (t1, conv_term) =
- (case Thm.term_of (Object_Logic.dest_judgment ctxt concl) of
- Const(_, _) $ (Const(\<^const_name>\<open>HOL.Not\<close>, _) $ t1) $ _ => (t1, conv_left)
- | Const(_, _) $ t1 $ (Const(\<^const_name>\<open>HOL.Not\<close>, _) $ _) => (t1, conv_left_neg)
- | Const(_, _) $ t1 $ _ => (t1, conv_left)
- | t1 => (t1, conv_left))
-
- fun throwing_CONVERSION cv i st = Seq.single (Conv.gconv_rule cv i st)
- in
- throwing_CONVERSION (conv_term (eq_pred_conv rews t1 ctxt))
- end
-in
-
-fun eq_congruent_pred ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- REPEAT' (resolve_tac ctxt [@{thm disj_not1[of \<open>_ = _\<close>]} RSN (1, @{thm iffD2}) OF @{thms impI}])
- THEN' (fn i => Subgoal.FOCUS (fn focus => eq_pred_rewrite_tac focus i) ctxt i)
- THEN' (resolve_tac ctxt @{thms refl excluded_middle excluded_middle[of \<open>\<not>_\<close>, unfolded not_not]}
- ORELSE' assume_tac ctxt))
-
-val eq_congruent = eq_congruent_pred
-
-end
-
-
-(* Subproof *)
-
-fun subproof ctxt [prem] t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- (resolve_tac ctxt [@{thm disj_not1} RSN (1, @{thm iffD2}) OF [@{thm impI}],
- @{thm disj_not1[of \<open>\<not>_\<close>, unfolded not_not]} RSN (1, @{thm iffD2}) OF [@{thm impI}]]
- THEN' resolve_tac ctxt [prem]
- THEN_ALL_NEW assume_tac ctxt
- THEN' TRY' (assume_tac ctxt))
- ORELSE' TRY' (Method.insert_tac ctxt [prem] THEN' Blast.blast_tac ctxt))
- | subproof ctxt prems t =
- replay_error ctxt "invalid application, only one assumption expected" Subproof prems t
-
-
-(* Simplifying Steps *)
-
-(* The reconstruction is a bit tricky: At first we only rewrite only based on the rules that are
-passed as argument. Then we simply use simp_thms to reconstruct all the proofs (and these theorems
-cover all the simplification below).
-*)
-local
- fun rewrite_only_thms ctxt thms =
- ctxt
- |> empty_simpset
- |> put_simpset HOL_basic_ss
- |> (fn ctxt => ctxt addsimps thms)
- |> Simplifier.full_simp_tac
- fun rewrite_thms ctxt thms =
- ctxt
- |> empty_simpset
- |> put_simpset HOL_basic_ss
- |> Raw_Simplifier.add_eqcong @{thm eq_reflection[OF imp_cong]}
- |> (fn ctxt => ctxt addsimps thms addsimps @{thms simp_thms})
- |> Simplifier.full_simp_tac
-
- fun chain_rewrite_thms ctxt thms =
- TRY' (rewrite_only_thms ctxt thms)
- THEN' TRY' (rewrite_thms ctxt thms)
-
- fun chain_rewrite_two_step_with_ac_simps ctxt thms1 thms2 =
- TRY' (rewrite_only_thms ctxt thms1)
- THEN' TRY' (rewrite_thms ctxt thms2)
-
- fun chain_rewrite_thms_two_step ctxt thms1 thms2 thms3 thms4 =
- chain_rewrite_two_step_with_ac_simps ctxt thms1 thms2
- THEN' TRY' (chain_rewrite_two_step_with_ac_simps ctxt thms3 thms4)
-
- val imp_refl = @{lemma \<open>(P \<longrightarrow> P) = True\<close> by blast}
-
-in
-fun rewrite_bool_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- (chain_rewrite_thms ctxt @{thms verit_bool_simplify}))
-
-fun rewrite_and_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- (chain_rewrite_two_step_with_ac_simps ctxt @{thms verit_and_simplify verit_and_simplify1}
- @{thms verit_and_simplify}))
-
-fun rewrite_or_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- (chain_rewrite_two_step_with_ac_simps ctxt @{thms verit_or_simplify verit_or_simplify_1}
- @{thms verit_or_simplify})
- THEN' TRY' (REPEAT' (match_tac ctxt @{thms verit_and_pos}) THEN' assume_tac ctxt))
-
-fun rewrite_not_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- (rewrite_only_thms ctxt @{thms verit_not_simplify}))
-
-fun rewrite_equiv_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- (rewrite_only_thms ctxt @{thms verit_equiv_simplify}))
-
-fun rewrite_eq_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- (chain_rewrite_two_step_with_ac_simps ctxt
- @{thms verit_eq_simplify}
- (Named_Theorems.get ctxt @{named_theorems ac_simps})))
-
-fun rewrite_implies_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- (rewrite_only_thms ctxt @{thms verit_implies_simplify}))
-
-(* It is more efficient to first fold the implication symbols.
- That is however not enough when symbols appears within
- expressions, hence we also unfold implications in the
- other direction. *)
-fun rewrite_connective_def ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- chain_rewrite_thms_two_step ctxt
- (imp_refl :: @{thms not_not verit_connective_def[symmetric]})
- (@{thms verit_connective_def[symmetric]})
- (imp_refl :: @{thms not_not verit_connective_def})
- (@{thms verit_connective_def}))
-
-fun rewrite_minus_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- chain_rewrite_two_step_with_ac_simps ctxt
- @{thms arith_simps verit_minus_simplify}
- (Named_Theorems.get ctxt @{named_theorems ac_simps} @
- @{thms numerals arith_simps arith_special
- numeral_class.numeral.numeral_One}))
-
-fun rewrite_comp_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- chain_rewrite_thms ctxt @{thms verit_comp_simplify})
-
-fun rewrite_ite_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- (rewrite_only_thms ctxt @{thms verit_ite_simplify}))
-end
-
-
-(* Simplifications *)
-
-local
- fun simplify_arith ctxt thms = partial_simplify_tac ctxt
- (thms @ Named_Theorems.get ctxt @{named_theorems ac_simps} @ @{thms arith_simps})
-in
-
-fun sum_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- simplify_arith ctxt @{thms verit_sum_simplify arith_special})
-
-fun prod_simplify ctxt _ t =
- SMT_Replay_Methods.prove ctxt t (fn _ =>
- simplify_arith ctxt @{thms verit_prod_simplify})
-
-end
-
-
-(* Arithmetics *)
-local
-
-val la_rw_eq_thm = @{lemma \<open>(a :: nat) = b \<or> (a \<le> b) \<or> (a \<ge> b)\<close> by auto}
-in
-fun la_rw_eq ctxt _ t = SMT_Replay_Methods.match_instantiate ctxt t la_rw_eq_thm
-
-fun la_generic_prove args ctxt _ = SMT_Replay_Arith.la_farkas args ctxt
-
-fun la_generic ctxt _ args =
- prove_abstract (SMT_Replay_Methods.abstract_arith_shallow ctxt) (la_generic_prove args) ctxt []
-
-fun lia_generic ctxt _ t =
- SMT_Replay_Methods.prove_arith_rewrite SMT_Replay_Methods.abstract_neq ctxt t
-
-fun la_disequality ctxt _ t =
- SMT_Replay_Methods.match_instantiate ctxt t @{thm verit_la_disequality}
-
-end
(* Combining all together *)
--- a/src/HOL/Tools/Sledgehammer/sledgehammer.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer.ML Tue Mar 29 12:55:25 2022 +0200
@@ -136,7 +136,7 @@
fun launch_prover (params as {verbose, spy, slices, timeout, ...}) mode learn
(problem as {state, subgoal, factss, ...} : prover_problem)
- (slice as ((num_facts, fact_filter), _)) name =
+ (slice as ((slice_size, num_facts, fact_filter), _)) name =
let
val ctxt = Proof.context_of state
@@ -145,7 +145,8 @@
val _ =
if verbose then
writeln (name ^ " with " ^ string_of_int num_facts ^ " " ^ fact_filter ^ " fact" ^
- plural_s num_facts ^ " for " ^ string_of_time (slice_timeout slices timeout) ^ "...")
+ plural_s num_facts ^ " for " ^ string_of_time (slice_timeout slice_size slices timeout) ^
+ "...")
else
()
@@ -273,10 +274,10 @@
cat_lines (map (fn (filter, facts) => string_of_facts filter facts) factss)
val default_slice_schedule =
- (* FUDGE (based on Seventeen evaluation) *)
+ (* FUDGE (inspired by Seventeen evaluation) *)
[cvc4N, zipperpositionN, vampireN, veritN, eN, cvc4N, zipperpositionN, cvc4N, vampireN, cvc4N,
- cvc4N, vampireN, cvc4N, eN, iproverN, zipperpositionN, vampireN, eN, vampireN, zipperpositionN,
- z3N, cvc4N, vampireN, iproverN, vampireN, zipperpositionN, z3N, z3N, cvc4N, cvc4N]
+ cvc4N, vampireN, cvc4N, iproverN, zipperpositionN, vampireN, vampireN, zipperpositionN, z3N,
+ cvc4N, vampireN, iproverN, vampireN, zipperpositionN, z3N, z3N, cvc4N, cvc4N]
fun schedule_of_provers provers num_slices =
let
@@ -303,10 +304,11 @@
fun triplicate_slices original =
let
val shift =
- map (apfst (apsnd (fn fact_filter =>
- if fact_filter = mashN then mepoN
- else if fact_filter = mepoN then meshN
- else mashN)))
+ map (apfst (fn (slice_size, num_facts, fact_filter) =>
+ (slice_size, num_facts,
+ if fact_filter = mashN then mepoN
+ else if fact_filter = mepoN then meshN
+ else mashN)))
val shifted_once = shift original
val shifted_twice = shift shifted_once
@@ -320,32 +322,39 @@
the_default uncurried_aliases0 uncurried_aliases, extra_extra0)
| adjust_extra (extra as SMT_Slice _) = extra
- fun adjust_slice ((num_facts0, fact_filter0), extra) =
+ fun adjust_slice max_slice_size ((slice_size0, num_facts0, fact_filter0), extra) =
let
+ val slice_size = Int.min (max_slice_size, slice_size0)
val fact_filter = fact_filter |> the_default fact_filter0
val max_facts = max_facts |> the_default num_facts0
val num_facts = Int.min (max_facts, length (facts_of_filter fact_filter factss))
in
- ((num_facts, fact_filter), adjust_extra extra)
+ ((slice_size, num_facts, fact_filter), adjust_extra extra)
end
val provers = distinct (op =) schedule
val prover_slices =
map (fn prover => (prover,
- (is_none fact_filter ? triplicate_slices)
- (map adjust_slice (get_slices ctxt prover))))
+ (is_none fact_filter ? triplicate_slices) (get_slices ctxt prover)))
provers
- fun translate _ [] = []
- | translate prover_slices (prover :: schedule) =
+ val max_threads = Multithreading.max_threads ()
+
+ fun translate_schedule _ 0 _ = []
+ | translate_schedule _ _ [] = []
+ | translate_schedule prover_slices slices_left (prover :: schedule) =
(case AList.lookup (op =) prover_slices prover of
- SOME (slice :: slices) =>
- let val prover_slices' = AList.update (op =) (prover, slices) prover_slices in
- (prover, slice) :: translate prover_slices' schedule
+ SOME (slice0 :: slices) =>
+ let
+ val prover_slices' = AList.update (op =) (prover, slices) prover_slices
+ val slice as ((slice_size, _, _), _) =
+ adjust_slice ((slices_left + max_threads - 1) div max_threads) slice0
+ in
+ (prover, slice) :: translate_schedule prover_slices' (slices_left - slice_size) schedule
end
- | _ => translate prover_slices schedule)
+ | _ => translate_schedule prover_slices slices_left schedule)
in
- translate prover_slices schedule
+ translate_schedule prover_slices (length schedule) schedule
|> distinct (op =)
end
@@ -397,7 +406,7 @@
SOME n => n
| NONE =>
fold (fn prover =>
- fold (fn ((n, _), _) => Integer.max n) (get_slices ctxt prover))
+ fold (fn ((_, n, _), _) => Integer.max n) (get_slices ctxt prover))
provers 0)
* 51 div 50 (* some slack to account for filtering of induction facts below *)
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_atp_systems.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer_atp_systems.ML Tue Mar 29 12:55:25 2022 +0200
@@ -7,17 +7,15 @@
signature SLEDGEHAMMER_ATP_SYSTEMS =
sig
- type term_order = ATP_Problem.term_order
type atp_format = ATP_Problem.atp_format
type atp_formula_role = ATP_Problem.atp_formula_role
type atp_failure = ATP_Proof.atp_failure
- type base_slice = int * string
+ type base_slice = int * int * string
type atp_slice = atp_format * string * string * bool * string
type atp_config =
{exec : string list * string list,
- arguments : Proof.context -> bool -> string -> Time.time -> Path.T ->
- term_order * (unit -> (string * int) list) * (unit -> (string * real) list) -> string list,
+ arguments : Proof.context -> bool -> string -> Time.time -> Path.T -> string list,
proof_delims : (string * string) list,
known_failures : (atp_failure * string) list,
prem_role : atp_formula_role,
@@ -27,16 +25,6 @@
val default_max_mono_iters : int
val default_max_new_mono_instances : int
- val term_order : string Config.T
- val e_autoscheduleN : string
- val e_fun_weightN : string
- val e_sym_offset_weightN : string
- val e_default_fun_weight : real Config.T
- val e_fun_weight_base : real Config.T
- val e_fun_weight_span : real Config.T
- val e_default_sym_offs_weight : real Config.T
- val e_sym_offs_weight_base : real Config.T
- val e_sym_offs_weight_span : real Config.T
val spass_H1SOS : string
val spass_H2 : string
val spass_H2LR0LT0 : string
@@ -51,7 +39,6 @@
val get_atp : theory -> string -> (unit -> atp_config)
val is_atp_installed : theory -> string -> bool
val refresh_systems_on_tptp : unit -> unit
- val effective_term_order : Proof.context -> string -> term_order
val local_atps : string list
val remote_atps : string list
val atps : string list
@@ -77,13 +64,16 @@
val default_max_mono_iters = 3 (* FUDGE *)
val default_max_new_mono_instances = 100 (* FUDGE *)
-type base_slice = int * string
+(* desired slice size, desired number of facts, fact filter *)
+type base_slice = int * int * string
+
+(* problem file format, type encoding, lambda translation scheme, uncurried aliases?,
+ prover-specific extra information *)
type atp_slice = atp_format * string * string * bool * string
type atp_config =
{exec : string list * string list,
- arguments : Proof.context -> bool -> string -> Time.time -> Path.T ->
- term_order * (unit -> (string * int) list) * (unit -> (string * real) list) -> string list,
+ arguments : Proof.context -> bool -> string -> Time.time -> Path.T -> string list,
proof_delims : (string * string) list,
known_failures : (atp_failure * string) list,
prem_role : atp_formula_role,
@@ -91,22 +81,8 @@
good_max_mono_iters : int,
good_max_new_mono_instances : int}
-(* "good_slices" must be found empirically, taking a holistic approach since the
- ATPs are run in parallel. Each slice has the format
-
- (time_frac, ((max_facts, fact_filter), format, type_enc,
- lam_trans, uncurried_aliases), extra)
-
- where
-
- time_frac = faction of the time available given to the slice (which should
- add up to 1.0)
-
- extra = extra information to the prover (e.g., SOS or no SOS).
-
- The last slice should be the most "normal" one, because it will get all the
- time available if the other slices fail early and also because it is used if
- slicing is disabled (e.g., by the minimizer). *)
+(* "good_slices" must be found empirically, ideally taking a holistic approach since the ATPs are
+ run in parallel. *)
val mepoN = "mepo"
val mashN = "mash"
@@ -149,30 +125,19 @@
val sosN = "sos"
val no_sosN = "no_sos"
-val smartN = "smart"
-(* val kboN = "kbo" *)
-val lpoN = "lpo"
-val xweightsN = "_weights"
-val xprecN = "_prec"
-val xsimpN = "_simp" (* SPASS-specific *)
-
-(* Possible values for "atp_term_order":
- "smart", "(kbo|lpo)(_weights)?(_prec|_simp)?" *)
-val term_order =
- Attrib.setup_config_string \<^binding>\<open>atp_term_order\<close> (K smartN)
(* agsyHOL *)
val agsyhol_config : atp_config =
{exec = (["AGSYHOL_HOME"], ["agsyHOL"]),
- arguments = fn _ => fn _ => fn _ => fn timeout => fn problem => fn _ =>
+ arguments = fn _ => fn _ => fn _ => fn timeout => fn problem =>
["--proof --time-out " ^ string_of_int (to_secs 1 timeout) ^ " " ^ File.bash_path problem],
proof_delims = tstp_proof_delims,
known_failures = known_szs_status_failures,
prem_role = Hypothesis,
good_slices =
(* FUDGE *)
- K [((60, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, ""))],
+ K [((1, 60, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, ""))],
good_max_mono_iters = default_max_mono_iters - 1 (* FUDGE *),
good_max_new_mono_instances = default_max_new_mono_instances}
@@ -183,7 +148,7 @@
val alt_ergo_config : atp_config =
{exec = (["WHY3_HOME"], ["why3"]),
- arguments = fn _ => fn _ => fn _ => fn timeout => fn problem => fn _ =>
+ arguments = fn _ => fn _ => fn _ => fn timeout => fn problem =>
["--format tptp --prover 'Alt-Ergo,0.95.2,' --timelimit " ^ string_of_int (to_secs 1 timeout) ^
" " ^ File.bash_path problem],
proof_delims = [],
@@ -194,7 +159,7 @@
prem_role = Hypothesis,
good_slices =
(* FUDGE *)
- K [((100, meshN), (TF1, "poly_native", liftingN, false, ""))],
+ K [((1000 (* infinity *), 100, meshN), (TF1, "poly_native", liftingN, false, ""))],
good_max_mono_iters = default_max_mono_iters,
good_max_new_mono_instances = default_max_new_mono_instances}
@@ -203,81 +168,11 @@
(* E *)
-val e_autoscheduleN = "auto"
-val e_fun_weightN = "fun_weight"
-val e_sym_offset_weightN = "sym_offset_weight"
-
-(* FUDGE *)
-val e_default_fun_weight =
- Attrib.setup_config_real \<^binding>\<open>atp_e_default_fun_weight\<close> (K 20.0)
-val e_fun_weight_base =
- Attrib.setup_config_real \<^binding>\<open>atp_e_fun_weight_base\<close> (K 0.0)
-val e_fun_weight_span =
- Attrib.setup_config_real \<^binding>\<open>atp_e_fun_weight_span\<close> (K 40.0)
-val e_default_sym_offs_weight =
- Attrib.setup_config_real \<^binding>\<open>atp_e_default_sym_offs_weight\<close> (K 1.0)
-val e_sym_offs_weight_base =
- Attrib.setup_config_real \<^binding>\<open>atp_e_sym_offs_weight_base\<close> (K ~20.0)
-val e_sym_offs_weight_span =
- Attrib.setup_config_real \<^binding>\<open>atp_e_sym_offs_weight_span\<close> (K 60.0)
-
-fun e_selection_heuristic_case heuristic fw sow =
- if heuristic = e_fun_weightN then fw
- else if heuristic = e_sym_offset_weightN then sow
- else raise Fail ("unexpected " ^ quote heuristic)
-
-fun scaled_e_selection_weight ctxt heuristic w =
- w * Config.get ctxt (e_selection_heuristic_case heuristic
- e_fun_weight_span e_sym_offs_weight_span)
- + Config.get ctxt (e_selection_heuristic_case heuristic
- e_fun_weight_base e_sym_offs_weight_base)
- |> Real.ceil |> signed_string_of_int
-
-fun e_selection_weight_arguments ctxt heuristic sel_weights =
- if heuristic = e_fun_weightN orelse heuristic = e_sym_offset_weightN then
- (* supplied by Stephan Schulz *)
- "--split-clauses=4 --split-reuse-defs --simul-paramod --forward-context-sr \
- \--destructive-er-aggressive --destructive-er --presat-simplify \
- \--prefer-initial-clauses -winvfreqrank -c1 -Ginvfreqconjmax -F1 \
- \--delete-bad-limit=150000000 -WSelectMaxLComplexAvoidPosPred -H'(4*" ^
- e_selection_heuristic_case heuristic "FunWeight" "SymOffsetWeight" ^
- "(SimulateSOS," ^
- (e_selection_heuristic_case heuristic
- e_default_fun_weight e_default_sym_offs_weight
- |> Config.get ctxt |> Real.ceil |> signed_string_of_int) ^
- ",20,1.5,1.5,1" ^
- (sel_weights ()
- |> map (fn (s, w) => "," ^ s ^ ":" ^
- scaled_e_selection_weight ctxt heuristic w)
- |> implode) ^
- "),3*ConjectureGeneralSymbolWeight(PreferNonGoals,200,100,200,50,50,1,100,\
- \1.5,1.5,1),1*Clauseweight(PreferProcessed,1,1,1),1*\
- \FIFOWeight(PreferProcessed))' "
- else
- "--auto-schedule "
-
-val e_ord_weights = map (fn (s, w) => s ^ ":" ^ string_of_int w) #> space_implode ","
-fun e_ord_precedence [_] = ""
- | e_ord_precedence info = info |> map fst |> space_implode "<"
-
-fun e_term_order_info_arguments false false _ = ""
- | e_term_order_info_arguments gen_weights gen_prec ord_info =
- let val ord_info = ord_info () in
- (if gen_weights then "--order-weights='" ^ e_ord_weights ord_info ^ "' " else "") ^
- (if gen_prec then "--precedence='" ^ e_ord_precedence ord_info ^ "' " else "")
- end
-
val e_config : atp_config =
{exec = (["E_HOME"], ["eprover-ho", "eprover"]),
- arguments = fn ctxt => fn _ => fn heuristic => fn timeout => fn problem =>
- fn ({is_lpo, gen_weights, gen_prec, ...}, ord_info, sel_weights) =>
- ["--tstp-in --tstp-out --silent " ^
- e_selection_weight_arguments ctxt heuristic sel_weights ^
- e_term_order_info_arguments gen_weights gen_prec ord_info ^
- "--term-ordering=" ^ (if is_lpo then "LPO4" else "KBO6") ^ " " ^
- "--cpu-limit=" ^ string_of_int (to_secs 2 timeout) ^
- " --proof-object=1 " ^
- File.bash_path problem],
+ arguments = fn _ => fn _ => fn extra_options => fn timeout => fn problem =>
+ ["--tstp-in --tstp-out --silent " ^ extra_options ^ " --cpu-limit=" ^
+ string_of_int (to_secs 2 timeout) ^ " --proof-object=1 " ^ File.bash_path problem],
proof_delims =
[("# SZS output start CNFRefutation", "# SZS output end CNFRefutation")] @
tstp_proof_delims,
@@ -288,21 +183,21 @@
prem_role = Conjecture,
good_slices =
let
- val (format, type_enc, lam_trans) =
+ val (format, type_enc, lam_trans, extra_options) =
if string_ord (getenv "E_VERSION", "2.7") <> LESS then
- (THF (Monomorphic, {with_ite = true, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN)
+ (THF (Monomorphic, {with_ite = true, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, "--auto-schedule=4 --serialize-schedule=true")
else if string_ord (getenv "E_VERSION", "2.6") <> LESS then
- (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN)
+ (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, "--auto-schedule")
else
- (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Lambda_Free), "mono_native_higher", combsN)
+ (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Lambda_Free), "mono_native_higher", combsN, "--auto-schedule")
in
(* FUDGE *)
- K [((512, meshN), (format, type_enc, lam_trans, false, e_fun_weightN)),
- ((1024, meshN), (format, type_enc, lam_trans, false, e_sym_offset_weightN)),
- ((128, mepoN), (format, type_enc, lam_trans, false, e_autoscheduleN)),
- ((724, meshN), (format, "poly_guards??", lam_trans, false, e_sym_offset_weightN)),
- ((256, mepoN), (format, type_enc, liftingN, false, e_fun_weightN)),
- ((64, mashN), (format, type_enc, combsN, false, e_fun_weightN))]
+ K [((1000 (* infinity *), 1024, meshN), (format, type_enc, lam_trans, false, extra_options)),
+ ((1000 (* infinity *), 512, meshN), (format, type_enc, lam_trans, false, extra_options)),
+ ((1000 (* infinity *), 128, mepoN), (format, type_enc, lam_trans, false, extra_options)),
+ ((1000 (* infinity *), 724, meshN), (TF0, "poly_guards??", lam_trans, false, extra_options)),
+ ((1000 (* infinity *), 256, mepoN), (format, type_enc, liftingN, false, extra_options)),
+ ((1000 (* infinity *), 64, mashN), (format, type_enc, combsN, false, extra_options))]
end,
good_max_mono_iters = default_max_mono_iters,
good_max_new_mono_instances = default_max_new_mono_instances}
@@ -314,7 +209,7 @@
val iprover_config : atp_config =
{exec = (["IPROVER_HOME"], ["iproveropt", "iprover"]),
- arguments = fn _ => fn _ => fn _ => fn timeout => fn problem => fn _ =>
+ arguments = fn _ => fn _ => fn _ => fn timeout => fn problem =>
["--clausifier \"$VAMPIRE_HOME\"/vampire " ^
"--clausifier_options \"--mode clausify\" " ^
"--time_out_real " ^ string_of_real (Time.toReal timeout) ^ " " ^ File.bash_path problem],
@@ -325,11 +220,11 @@
prem_role = Hypothesis,
good_slices =
(* FUDGE *)
- K [((32, meshN), (TF0, "mono_native", liftingN, false, "")),
- ((512, meshN), (TX0, "mono_native", liftingN, false, "")),
- ((128, mashN), (TF0, "mono_native", combsN, false, "")),
- ((1024, meshN), (TF0, "mono_native", liftingN, false, "")),
- ((256, mepoN), (TF0, "mono_native", combsN, false, ""))],
+ K [((1, 32, meshN), (TF0, "mono_native", liftingN, false, "")),
+ ((1, 512, meshN), (TX0, "mono_native", liftingN, false, "")),
+ ((1, 128, mashN), (TF0, "mono_native", combsN, false, "")),
+ ((1, 1024, meshN), (TF0, "mono_native", liftingN, false, "")),
+ ((1, 256, mepoN), (TF0, "mono_native", combsN, false, ""))],
good_max_mono_iters = default_max_mono_iters,
good_max_new_mono_instances = default_max_new_mono_instances}
@@ -340,7 +235,7 @@
val leo2_config : atp_config =
{exec = (["LEO2_HOME"], ["leo.opt", "leo"]),
- arguments = fn _ => fn full_proofs => fn _ => fn timeout => fn problem => fn _ =>
+ arguments = fn _ => fn full_proofs => fn _ => fn timeout => fn problem =>
["--foatp e --atp e=\"$E_HOME\"/eprover \
\--atp epclextract=\"$E_HOME\"/epclextract \
\--proofoutput 1 --timeout " ^ string_of_int (to_secs 1 timeout) ^ " " ^
@@ -354,7 +249,7 @@
prem_role = Hypothesis,
good_slices =
(* FUDGE *)
- K [((40, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, ""))],
+ K [((1, 40, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, ""))],
good_max_mono_iters = default_max_mono_iters - 1 (* FUDGE *),
good_max_new_mono_instances = default_max_new_mono_instances}
@@ -366,7 +261,7 @@
(* Include choice? Disabled now since it's disabled for Satallax as well. *)
val leo3_config : atp_config =
{exec = (["LEO3_HOME"], ["leo3"]),
- arguments = fn _ => fn full_proofs => fn _ => fn timeout => fn problem => fn _ =>
+ arguments = fn _ => fn full_proofs => fn _ => fn timeout => fn problem =>
[File.bash_path problem ^ " " ^ "--atp cvc=\"$CVC4_SOLVER\" --atp e=\"$E_HOME\"/eprover \
\-p -t " ^ string_of_int (to_secs 1 timeout) ^ " " ^
(if full_proofs then "--nleq --naeq " else "")],
@@ -375,8 +270,8 @@
prem_role = Hypothesis,
good_slices =
(* FUDGE *)
- K [((512, meshN), (TH0, "mono_native_higher", keep_lamsN, false, "")),
- ((512, meshN), (TF0, "mono_native", liftingN, false, ""))],
+ K [((3, 512, meshN), (TH0, "mono_native_higher", keep_lamsN, false, "")),
+ ((3, 512, meshN), (TF0, "mono_native", liftingN, false, ""))],
good_max_mono_iters = default_max_mono_iters - 1 (* FUDGE *),
good_max_new_mono_instances = default_max_new_mono_instances}
@@ -388,7 +283,7 @@
(* Choice is disabled until there is proper reconstruction for it. *)
val satallax_config : atp_config =
{exec = (["SATALLAX_HOME"], ["satallax.opt", "satallax"]),
- arguments = fn _ => fn _ => fn _ => fn timeout => fn problem => fn _ =>
+ arguments = fn _ => fn _ => fn _ => fn timeout => fn problem =>
[(case getenv "E_HOME" of
"" => ""
| home => "-E " ^ home ^ "/eprover ") ^
@@ -399,7 +294,7 @@
prem_role = Hypothesis,
good_slices =
(* FUDGE *)
- K [((256, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, ""))],
+ K [((6, 256, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, ""))],
good_max_mono_iters = default_max_mono_iters - 1 (* FUDGE *),
good_max_new_mono_instances = default_max_new_mono_instances}
@@ -420,7 +315,7 @@
val format = DFG Monomorphic
in
{exec = (["SPASS_HOME"], ["SPASS"]),
- arguments = fn _ => fn full_proofs => fn extra_options => fn timeout => fn problem => fn _ =>
+ arguments = fn _ => fn full_proofs => fn extra_options => fn timeout => fn problem =>
["-Isabelle=1 " ^ (if full_proofs then "-CNFRenaming=0 -Splits=0 " else "") ^
"-TimeLimit=" ^ string_of_int (to_secs 1 timeout) ^ " " ^ File.bash_path problem
|> extra_options <> "" ? prefix (extra_options ^ " ")],
@@ -436,14 +331,14 @@
prem_role = Conjecture,
good_slices =
(* FUDGE *)
- K [((150, meshN), (format, "mono_native", combsN, true, "")),
- ((500, meshN), (format, "mono_native", liftingN, true, spass_H2SOS)),
- ((50, meshN), (format, "mono_native", liftingN, true, spass_H2LR0LT0)),
- ((250, meshN), (format, "mono_native", combsN, true, spass_H2NuVS0)),
- ((1000, mepoN), (format, "mono_native", liftingN, true, spass_H1SOS)),
- ((150, meshN), (format, "poly_guards??", liftingN, false, spass_H2NuVS0Red2)),
- ((300, meshN), (format, "mono_native", combsN, true, spass_H2SOS)),
- ((100, meshN), (format, "mono_native", combs_and_liftingN, true, spass_H2))],
+ K [((1, 150, meshN), (format, "mono_native", combsN, true, "")),
+ ((1, 500, meshN), (format, "mono_native", liftingN, true, spass_H2SOS)),
+ ((1, 50, meshN), (format, "mono_native", liftingN, true, spass_H2LR0LT0)),
+ ((1, 250, meshN), (format, "mono_native", combsN, true, spass_H2NuVS0)),
+ ((1, 1000, mepoN), (format, "mono_native", liftingN, true, spass_H1SOS)),
+ ((1, 150, meshN), (format, "poly_guards??", liftingN, false, spass_H2NuVS0Red2)),
+ ((1, 300, meshN), (format, "mono_native", combsN, true, spass_H2SOS)),
+ ((1, 100, meshN), (format, "mono_native", combs_and_liftingN, true, spass_H2))],
good_max_mono_iters = default_max_mono_iters,
good_max_new_mono_instances = default_max_new_mono_instances}
end
@@ -464,7 +359,7 @@
val vampire_config : atp_config =
{exec = (["VAMPIRE_HOME"], ["vampire"]),
- arguments = fn _ => fn full_proofs => fn sos => fn timeout => fn problem => fn _ =>
+ arguments = fn _ => fn full_proofs => fn sos => fn timeout => fn problem =>
[vampire_basic_options ^ (if full_proofs then " " ^ vampire_full_proof_options else "") ^
" -t " ^ string_of_int (to_secs 1 timeout) ^ " --input_file " ^ File.bash_path problem
|> sos = sosN ? prefix "--sos on "],
@@ -482,14 +377,14 @@
prem_role = Hypothesis,
good_slices =
(* FUDGE *)
- K [((512, meshN), (TX1, "mono_native_fool", combsN, false, sosN)),
- ((1024, meshN), (TX1, "mono_native_fool", liftingN, false, sosN)),
- ((256, mashN), (TX1, "mono_native_fool", liftingN, false, no_sosN)),
- ((512, mepoN), (TF1, "poly_native", liftingN, false, no_sosN)),
- ((16, meshN), (TX1, "mono_native_fool", liftingN, false, no_sosN)),
- ((32, meshN), (TX1, "mono_native_fool", combsN, false, no_sosN)),
- ((64, meshN), (TX1, "mono_native_fool", combs_or_liftingN, false, no_sosN)),
- ((128, meshN), (TX1, "mono_native_fool", liftingN, false, no_sosN))],
+ K [((1, 512, meshN), (TX1, "mono_native_fool", combsN, false, sosN)),
+ ((1, 1024, meshN), (TX1, "mono_native_fool", liftingN, false, sosN)),
+ ((1, 256, mashN), (TX1, "mono_native_fool", liftingN, false, no_sosN)),
+ ((1, 512, mepoN), (TF1, "poly_native", liftingN, false, no_sosN)),
+ ((1, 16, meshN), (TX1, "mono_native_fool", liftingN, false, no_sosN)),
+ ((1, 32, meshN), (TX1, "mono_native_fool", combsN, false, no_sosN)),
+ ((1, 64, meshN), (TX1, "mono_native_fool", combs_or_liftingN, false, no_sosN)),
+ ((1, 128, meshN), (TX1, "mono_native_fool", liftingN, false, no_sosN))],
good_max_mono_iters = default_max_mono_iters,
good_max_new_mono_instances = 2 * default_max_new_mono_instances (* FUDGE *)}
@@ -504,7 +399,7 @@
THF (Polymorphic, {with_ite = true, with_let = false}, THF_Without_Choice)
in
{exec = (["ZIPPERPOSITION_HOME"], ["zipperposition"]),
- arguments = fn _ => fn _ => fn extra_options => fn timeout => fn problem => fn _ =>
+ arguments = fn _ => fn _ => fn extra_options => fn timeout => fn problem =>
["--input tptp", "--output tptp", "--timeout " ^ Time.toString timeout, extra_options,
File.bash_path problem],
proof_delims = tstp_proof_delims,
@@ -513,12 +408,12 @@
known_szs_status_failures,
prem_role = Hypothesis,
good_slices =
- K [((1024, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --tptp-def-as-rewrite --rewrite-before-cnf=true --max-inferences=1 --ho-unif-max-depth=1 --ho-max-elims=0 --ho-max-app-projections=0 --ho-max-rigid-imitations=1 --ho-max-identifications=0 --boolean-reasoning=bool-hoist --bool-hoist-simpl=true --bool-select=LI --recognize-injectivity=true --ext-rules=ext-family --ext-rules-max-depth=1 --ho-choice-inst=true --ho-prim-enum=none --ho-elim-leibniz=0 --interpret-bool-funs=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --ho-unif-level=pragmatic-framework --select=bb+e-selection2 --post-cnf-lambda-lifting=true -q \"4|prefer-sos|pnrefined(2,1,1,1,2,2,2)\" -q \"6|prefer-processed|conjecture-relative-struct(1.5,3.5,2,3)\" -q \"1|const|fifo\" -q \"4|prefer-ground|orient-lmax(2,1,2,1,1)\" -q \"4|defer-sos|conjecture-relative-struct(1,5,2,3)\" --avatar=off --recognize-injectivity=true --ho-neg-ext=true --e-timeout=2 --ho-pattern-decider=true --ho-fixpoint-decider=true --e-max-derived=50 --ignore-orphans=true --e-auto=true --presaturate=true --e-call-point=0.1")),
- ((128, mepoN), (format, "mono_native_higher_fool", keep_lamsN, false, "-nc --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=off --ho-prim-enum=full --ho-prim-max=1 --avatar=off --recognize-injectivity=true --ho-elim-leibniz=4 --ho-unif-level=full-framework --no-max-vars -q \"2|prefer-goals|conjecture-relative-e(0.5,1,100,100,100,100,1.5,1.5,1)\" -q \"4|const|conjecture-relative-e(0.1,1,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-e(0.5,1,100,100,100,100,1.5,1.5,1.5)\" -q \"4|prefer-sos|pnrefined(1,1,1,1,2,1.5,2)\" --select=ho-selection5 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=5 --e-call-point=0.25 --e-auto=true --sine=50 --sine-tolerance=2 --sine-depth-max=4 --sine-depth-min=1 --e-max-derived=96 --e-encode-lambdas=lift --scan-clause-ac=false --kbo-weight-fun=arity0 --prec-gen-fun=invfreq_conj")),
- ((512, mashN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=ext-family --ext-rules-max-depth=1 --ho-prim-enum=none --avatar=off --recognize-injectivity=true --ho-elim-leibniz=1 --ho-unif-level=pragmatic-framework --no-max-vars --max-inferences=2 --ho-unif-max-depth=1 -q \"6|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"6|const|conjecture-relative-var(1.02,l,f)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-var(1,l,f)\" -q \"4|prefer-easy-ho|conjecture-relative-var(1.01,s,f)\" --select=e-selection16 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=3 --e-auto=true --sine=50 --sine-tolerance=1.0 --sine-depth-max=3 --sine-depth-min=1 --sine-trim-implications=true --ho-unif-level=pragmatic-framework --e-encode-lambdas=lift --scan-clause-ac=false --kbo-weight-fun=lambda-def-invfreqrank --e-call-point=0.1")),
- ((32, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic -nc --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=ext-family --ext-rules-max-depth=1 --ho-prim-enum=none --avatar=off --recognize-injectivity=true --ho-elim-leibniz=1 --ho-unif-level=pragmatic-framework --no-max-vars --max-inferences=4 --ho-max-app-projections=1 --ho-max-elims=0 --ho-max-rigid-imitations=2 --ho-max-identifications=0 --ho-unif-max-depth=3 -q \"6|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"6|const|conjecture-relative-var(1.02,l,f)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-var(1,l,f)\" -q \"4|prefer-easy-ho|conjecture-relative-var(1.01,s,f)\" --select=e-selection7 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=7 --sine=50 --sine-tolerance=1 --sine-depth-max=2 --sine-depth-min=1 --e-max-derived=64 --sine-ignore-k-most-common-syms=2 --sine-trim-implications=true --e-encode-lambdas=lift --scan-clause-ac=false --lambdasup=0 --kbo-weight-fun=lambda-def-invfreqrank --demod-in-var-args=true --bool-demod=true --lambda-demod=true --e-call-point=0.1 --lazy-cnf-kind=simp")),
- ((64, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-comb-complete --boolean-reasoning=simpl-only --ext-rules=off --kbo-weight-fun=lambda-def-sqarity --ho-prim-enum=none --tptp-def-as-rewrite -q \"4|prefer-sos|orient-lmax(2,1,2,1,1)\" -q \"4|defer-sos|conjecture-relative-var(1,s,f)\" -q \"3|const|default\" -q \"1|prefer-processed|fifo\" --ho-elim-leibniz=1 --select=NoSelection --solve-formulas=true --lazy-cnf=true --lazy-cnf-kind=simp --lazy-cnf-renaming-threshold=8 --sine=60 --sine-tolerance=2 --sine-depth-max=5 --sine-depth-min=1 --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=3 --e-auto=true --e-max-derived=50 --e-encode-lambdas=ignore --scan-clause-ac=false --presaturate=true --comb-b-penalty=3 --comb-c-penalty=3 --comb-k-penalty=1 --comb-s-penalty=5 --subvarsup=false --e-call-point=0.15 --lazy-cnf-kind=simp --trigger-bool-ind=1")),
- ((256, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --boolean-reasoning=simpl-only --ho-unif-max-depth=0 --ho-prim-enum=none -q \"2|prefer-ho-steps|conjecture-relative-e(0.1,0.5,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"2|prefer-ground|default\" -q \"2|prefer-empty-trail|conjecture-relative-e(0.1,0.5,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-processed|fifo\" --select=bb+e-selection7 --ho-pattern-decider=false --ho-fixpoint-decider=true --ho-solid-decider=false --sine=150 --sine-tolerance=2 --sine-depth-max=3 --sine-depth-min=1 --prec-gen-fun=invfreqhack --lazy-cnf=true --lazy-cnf-kind=simp --lazy-cnf-renaming-threshold=2 --fluid-log-hoist=false --tptp-def-as-rewrite --rewrite-before-cnf=true --ho-prim-enum=eq --ho-prim-enum-add-var=true --ho-prim-max=1 --ho-prim-enum-early-bird=true -o tptp --avatar=eager --split-only-ground=true"))],
+ K [((1, 1024, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --tptp-def-as-rewrite --rewrite-before-cnf=true --max-inferences=1 --ho-unif-max-depth=1 --ho-max-elims=0 --ho-max-app-projections=0 --ho-max-rigid-imitations=1 --ho-max-identifications=0 --boolean-reasoning=bool-hoist --bool-hoist-simpl=true --bool-select=LI --recognize-injectivity=true --ext-rules=ext-family --ext-rules-max-depth=1 --ho-choice-inst=true --ho-prim-enum=none --ho-elim-leibniz=0 --interpret-bool-funs=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --ho-unif-level=pragmatic-framework --select=bb+e-selection2 --post-cnf-lambda-lifting=true -q \"4|prefer-sos|pnrefined(2,1,1,1,2,2,2)\" -q \"6|prefer-processed|conjecture-relative-struct(1.5,3.5,2,3)\" -q \"1|const|fifo\" -q \"4|prefer-ground|orient-lmax(2,1,2,1,1)\" -q \"4|defer-sos|conjecture-relative-struct(1,5,2,3)\" --avatar=off --recognize-injectivity=true --ho-neg-ext=true --e-timeout=2 --ho-pattern-decider=true --ho-fixpoint-decider=true --e-max-derived=50 --ignore-orphans=true --e-auto=true --presaturate=true --e-call-point=0.1")),
+ ((1, 128, mepoN), (format, "mono_native_higher_fool", keep_lamsN, false, "-nc --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=off --ho-prim-enum=full --ho-prim-max=1 --avatar=off --recognize-injectivity=true --ho-elim-leibniz=4 --ho-unif-level=full-framework --no-max-vars -q \"2|prefer-goals|conjecture-relative-e(0.5,1,100,100,100,100,1.5,1.5,1)\" -q \"4|const|conjecture-relative-e(0.1,1,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-e(0.5,1,100,100,100,100,1.5,1.5,1.5)\" -q \"4|prefer-sos|pnrefined(1,1,1,1,2,1.5,2)\" --select=ho-selection5 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=5 --e-call-point=0.25 --e-auto=true --sine=50 --sine-tolerance=2 --sine-depth-max=4 --sine-depth-min=1 --e-max-derived=96 --e-encode-lambdas=lift --scan-clause-ac=false --kbo-weight-fun=arity0 --prec-gen-fun=invfreq_conj")),
+ ((1, 512, mashN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=ext-family --ext-rules-max-depth=1 --ho-prim-enum=none --avatar=off --recognize-injectivity=true --ho-elim-leibniz=1 --ho-unif-level=pragmatic-framework --no-max-vars --max-inferences=2 --ho-unif-max-depth=1 -q \"6|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"6|const|conjecture-relative-var(1.02,l,f)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-var(1,l,f)\" -q \"4|prefer-easy-ho|conjecture-relative-var(1.01,s,f)\" --select=e-selection16 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=3 --e-auto=true --sine=50 --sine-tolerance=1.0 --sine-depth-max=3 --sine-depth-min=1 --sine-trim-implications=true --ho-unif-level=pragmatic-framework --e-encode-lambdas=lift --scan-clause-ac=false --kbo-weight-fun=lambda-def-invfreqrank --e-call-point=0.1")),
+ ((1, 32, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic -nc --tptp-def-as-rewrite --rewrite-before-cnf=true --mode=ho-competitive --boolean-reasoning=simpl-only --ext-rules=ext-family --ext-rules-max-depth=1 --ho-prim-enum=none --avatar=off --recognize-injectivity=true --ho-elim-leibniz=1 --ho-unif-level=pragmatic-framework --no-max-vars --max-inferences=4 --ho-max-app-projections=1 --ho-max-elims=0 --ho-max-rigid-imitations=2 --ho-max-identifications=0 --ho-unif-max-depth=3 -q \"6|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"6|const|conjecture-relative-var(1.02,l,f)\" -q \"1|prefer-processed|fifo\" -q \"1|prefer-non-goals|conjecture-relative-var(1,l,f)\" -q \"4|prefer-easy-ho|conjecture-relative-var(1.01,s,f)\" --select=e-selection7 --ho-choice-inst=true --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=7 --sine=50 --sine-tolerance=1 --sine-depth-max=2 --sine-depth-min=1 --e-max-derived=64 --sine-ignore-k-most-common-syms=2 --sine-trim-implications=true --e-encode-lambdas=lift --scan-clause-ac=false --lambdasup=0 --kbo-weight-fun=lambda-def-invfreqrank --demod-in-var-args=true --bool-demod=true --lambda-demod=true --e-call-point=0.1 --lazy-cnf-kind=simp")),
+ ((1, 64, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-comb-complete --boolean-reasoning=simpl-only --ext-rules=off --kbo-weight-fun=lambda-def-sqarity --ho-prim-enum=none --tptp-def-as-rewrite -q \"4|prefer-sos|orient-lmax(2,1,2,1,1)\" -q \"4|defer-sos|conjecture-relative-var(1,s,f)\" -q \"3|const|default\" -q \"1|prefer-processed|fifo\" --ho-elim-leibniz=1 --select=NoSelection --solve-formulas=true --lazy-cnf=true --lazy-cnf-kind=simp --lazy-cnf-renaming-threshold=8 --sine=60 --sine-tolerance=2 --sine-depth-max=5 --sine-depth-min=1 --try-e=\"$E_HOME/eprover\" --tmp-dir=\"$ISABELLE_TMP_PREFIX\" --e-timeout=3 --e-auto=true --e-max-derived=50 --e-encode-lambdas=ignore --scan-clause-ac=false --presaturate=true --comb-b-penalty=3 --comb-c-penalty=3 --comb-k-penalty=1 --comb-s-penalty=5 --subvarsup=false --e-call-point=0.15 --lazy-cnf-kind=simp --trigger-bool-ind=1")),
+ ((1, 256, meshN), (format, "mono_native_higher_fool", keep_lamsN, false, "--mode=ho-pragmatic --boolean-reasoning=simpl-only --ho-unif-max-depth=0 --ho-prim-enum=none -q \"2|prefer-ho-steps|conjecture-relative-e(0.1,0.5,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-sos|pnrefined(1,1,1,2,2,2,0.5)\" -q \"2|prefer-ground|default\" -q \"2|prefer-empty-trail|conjecture-relative-e(0.1,0.5,100,100,100,100,1.5,1.5,1.5)\" -q \"1|prefer-processed|fifo\" --select=bb+e-selection7 --ho-pattern-decider=false --ho-fixpoint-decider=true --ho-solid-decider=false --sine=150 --sine-tolerance=2 --sine-depth-max=3 --sine-depth-min=1 --prec-gen-fun=invfreqhack --lazy-cnf=true --lazy-cnf-kind=simp --lazy-cnf-renaming-threshold=2 --fluid-log-hoist=false --tptp-def-as-rewrite --rewrite-before-cnf=true --ho-prim-enum=eq --ho-prim-enum-add-var=true --ho-prim-max=1 --ho-prim-enum-early-bird=true -o tptp --avatar=eager --split-only-ground=true"))],
good_max_mono_iters = default_max_mono_iters,
good_max_new_mono_instances = default_max_new_mono_instances}
end
@@ -567,7 +462,7 @@
fun remote_config system_name system_versions proof_delims known_failures prem_role good_slice =
{exec = isabelle_scala_function,
- arguments = fn _ => fn _ => fn command => fn timeout => fn problem => fn _ =>
+ arguments = fn _ => fn _ => fn command => fn timeout => fn problem =>
[the_remote_system system_name system_versions,
Isabelle_System.absolute_path problem,
command, string_of_int (Int.min (max_remote_secs, to_secs 1 timeout) * 1000)],
@@ -595,42 +490,42 @@
(Crashed, "Unrecoverable Segmentation Fault")]
@ known_szs_status_failures)
Hypothesis
- (K ((50, meshN), (CNF_UEQ, type_enc, combsN, false, "")) (* FUDGE *))
+ (K ((1000 (* infinity *), 50, meshN), (CNF_UEQ, type_enc, combsN, false, "")) (* FUDGE *))
val remote_agsyhol =
remotify_atp agsyhol "agsyHOL" ["1.0", "1"]
- (K ((60, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, "")) (* FUDGE *))
+ (K ((1000 (* infinity *), 60, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, "")) (* FUDGE *))
val remote_alt_ergo =
remotify_atp alt_ergo "Alt-Ergo" ["0.95.2"]
- (K ((250, meshN), (TF1, "poly_native", keep_lamsN, false, "")) (* FUDGE *))
+ (K ((1000 (* infinity *), 250, meshN), (TF1, "poly_native", keep_lamsN, false, "")) (* FUDGE *))
val remote_e =
remotify_atp e "E" ["2.0", "1.9.1", "1.8"]
- (K ((750, meshN), (TF0, "mono_native", combsN, false, "")) (* FUDGE *))
+ (K ((1000 (* infinity *), 750, meshN), (TF0, "mono_native", combsN, false, "")) (* FUDGE *))
val remote_iprover =
remotify_atp iprover "iProver" ["0.99"]
- (K ((150, meshN), (FOF, "mono_guards??", liftingN, false, "")) (* FUDGE *))
+ (K ((1000 (* infinity *), 150, meshN), (FOF, "mono_guards??", liftingN, false, "")) (* FUDGE *))
val remote_leo2 =
remotify_atp leo2 "LEO-II" ["1.5.0", "1.4", "1.3", "1.2", "1"]
- (K ((40, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", liftingN, false, "")) (* FUDGE *))
+ (K ((1000 (* infinity *), 40, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", liftingN, false, "")) (* FUDGE *))
val remote_leo3 =
remotify_atp leo3 "Leo-III" ["1.1"]
- (K ((150, meshN), (THF (Polymorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "poly_native_higher", keep_lamsN, false, "")) (* FUDGE *))
+ (K ((1000 (* infinity *), 150, meshN), (THF (Polymorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "poly_native_higher", keep_lamsN, false, "")) (* FUDGE *))
val remote_waldmeister = gen_remote_waldmeister waldmeisterN "raw_mono_tags??"
val remote_zipperposition =
remotify_atp zipperposition "Zipperpin" ["2.1", "2.0"]
- (K ((512, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, "")) (* FUDGE *))
+ (K ((1000 (* infinity *), 512, meshN), (THF (Monomorphic, {with_ite = false, with_let = false}, THF_Without_Choice), "mono_native_higher", keep_lamsN, false, "")) (* FUDGE *))
(* Dummy prover *)
fun dummy_config prem_role format type_enc uncurried_aliases : atp_config =
{exec = (["ISABELLE_ATP"], ["scripts/dummy_atp"]),
- arguments = K (K (K (K (K (K []))))),
+ arguments = K (K (K (K (K [])))),
proof_delims = [],
known_failures = known_szs_status_failures,
prem_role = prem_role,
good_slices =
- K [((200, "mepo"), (format, type_enc,
+ K [((1, 256, "mepo"), (format, type_enc,
if is_format_higher_order format then keep_lamsN else combsN, uncurried_aliases, ""))],
good_max_mono_iters = default_max_mono_iters,
good_max_new_mono_instances = default_max_new_mono_instances}
@@ -668,18 +563,6 @@
fun refresh_systems_on_tptp () =
Synchronized.change remote_systems (fn _ => get_remote_systems ())
-fun effective_term_order ctxt atp =
- let val ord = Config.get ctxt term_order in
- if ord = smartN then
- {is_lpo = false, gen_weights = (atp = spassN), gen_prec = (atp = spassN),
- gen_simp = false}
- else
- let val is_lpo = String.isSubstring lpoN ord in
- {is_lpo = is_lpo, gen_weights = not is_lpo andalso String.isSubstring xweightsN ord,
- gen_prec = String.isSubstring xprecN ord, gen_simp = String.isSubstring xsimpN ord}
- end
- end
-
val local_atps =
[agsyhol, alt_ergo, e, iprover, leo2, leo3, satallax, spass, vampire, zipperposition]
val remote_atps =
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_prover.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer_prover.ML Tue Mar 29 12:55:25 2022 +0200
@@ -52,7 +52,7 @@
expect : string}
val string_of_params : params -> string
- val slice_timeout : int -> Time.time -> Time.time
+ val slice_timeout : int -> int -> Time.time -> Time.time
type prover_problem =
{comment : string,
@@ -164,12 +164,12 @@
induction_rules = Exclude ?
filter_out (fn ((_, (_, ATP_Problem_Generate.Induction)), _) => true | _ => false)
-fun slice_timeout slices timeout =
+fun slice_timeout slice_size slices timeout =
let
val max_threads = Multithreading.max_threads ()
val batches = (slices + max_threads - 1) div max_threads
in
- seconds (Time.toReal timeout / Real.fromInt batches)
+ seconds (Real.fromInt slice_size * Time.toReal timeout / Real.fromInt batches)
end
type prover_problem =
@@ -239,7 +239,7 @@
SOME facts => facts
| NONE => snd (hd factss))
-fun facts_of_basic_slice (num_facts, fact_filter) factss =
+fun facts_of_basic_slice (_, num_facts, fact_filter) factss =
facts_of_filter fact_filter factss
|> take num_facts
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_prover_atp.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer_prover_atp.ML Tue Mar 29 12:55:25 2022 +0200
@@ -107,7 +107,8 @@
({comment, state, goal, subgoal, subgoal_count, factss, found_proof} : prover_problem)
slice =
let
- val (basic_slice, ATP_Slice (good_format, good_type_enc, good_lam_trans, good_uncurried_aliases, extra)) =
+ val (basic_slice as (slice_size, _, _),
+ ATP_Slice (good_format, good_type_enc, good_lam_trans, good_uncurried_aliases, extra)) =
slice
val facts = facts_of_basic_slice basic_slice factss
val thy = Proof.theory_of state
@@ -183,7 +184,7 @@
val strictness = if strict then Strict else Non_Strict
val type_enc = choose_type_enc strictness good_format good_type_enc
- val run_timeout = slice_timeout slices timeout
+ val run_timeout = slice_timeout slice_size slices timeout
val generous_run_timeout = if mode = MaSh then one_day else run_timeout
val ({elapsed, ...}, atp_problem_data as (atp_problem, _, _, _)) = Timing.timing (fn () =>
let
@@ -203,12 +204,7 @@
(state, subgoal, name, "Generating ATP problem in " ^
string_of_int (Time.toMilliseconds elapsed) ^ " ms"))
- fun sel_weights () = atp_problem_selection_weights atp_problem
- fun ord_info () = atp_problem_term_order_info atp_problem
-
- val ord = effective_term_order ctxt name
val args = arguments ctxt full_proofs extra run_timeout prob_path
- (ord, ord_info, sel_weights)
val command = space_implode " " (File.bash_path executable :: args)
fun run_command () =
@@ -219,9 +215,8 @@
let val res = Isabelle_System.bash_process (Bash.script command |> Bash.redirect)
in (Process_Result.out res, Process_Result.timing_elapsed res) end
- val _ =
- atp_problem
- |> lines_of_atp_problem good_format ord ord_info
+ val _ = atp_problem
+ |> lines_of_atp_problem good_format (fn () => atp_problem_term_order_info atp_problem)
|> (exec <> isabelle_scala_function) ?
cons ("% " ^ command ^ "\n" ^ (if comment = "" then "" else "% " ^ comment ^ "\n"))
|> File.write_list prob_path
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_prover_smt.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer_prover_smt.ML Tue Mar 29 12:55:25 2022 +0200
@@ -69,10 +69,10 @@
val is_boring_builtin_typ =
not o exists_subtype (member (op =) [\<^typ>\<open>nat\<close>, \<^typ>\<open>int\<close>, HOLogic.realT])
-fun smt_filter name ({debug, overlord, max_mono_iters, max_new_mono_instances,
- type_enc, slices, timeout, ...} : params) state goal i facts options =
+fun smt_filter name ({debug, overlord, max_mono_iters, max_new_mono_instances, type_enc, slices,
+ timeout, ...} : params) state goal i slice_size facts options =
let
- val run_timeout = slice_timeout slices timeout
+ val run_timeout = slice_timeout slice_size slices timeout
val (higher_order, nat_as_int) =
(case type_enc of
SOME s => (SOME (String.isSubstring "native_higher" s), SOME (String.isSubstring "arith" s))
@@ -123,12 +123,12 @@
({state, goal, subgoal, subgoal_count, factss, found_proof, ...} : prover_problem)
slice =
let
- val (basic_slice, SMT_Slice options) = slice
+ val (basic_slice as (slice_size, _, _), SMT_Slice options) = slice
val facts = facts_of_basic_slice basic_slice factss
val ctxt = Proof.context_of state
val {outcome, filter_result = {fact_ids, atp_proof, ...}, used_from, run_time} =
- smt_filter name params state goal subgoal facts options
+ smt_filter name params state goal subgoal slice_size facts options
val used_facts =
(case fact_ids of
NONE => map fst used_from
--- a/src/HOL/Tools/Sledgehammer/sledgehammer_tactics.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/HOL/Tools/Sledgehammer/sledgehammer_tactics.ML Tue Mar 29 12:55:25 2022 +0200
@@ -33,7 +33,7 @@
val params as {provers, induction_rules, max_facts, ...} = default_params thy override_params
val name = hd provers
val prover = get_prover ctxt mode name
- val default_max_facts = fst (fst (hd (get_slices ctxt name)))
+ val default_max_facts = #2 (fst (hd (get_slices ctxt name)))
val (_, hyp_ts, concl_t) = ATP_Util.strip_subgoal goal i ctxt
val keywords = Thy_Header.get_keywords' ctxt
val css_table = clasimpset_rule_table_of ctxt
--- a/src/HOL/ex/Dedekind_Real.thy Mon Mar 28 17:16:42 2022 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1663 +0,0 @@
-section \<open>The Reals as Dedekind Sections of Positive Rationals\<close>
-
-text \<open>Fundamentals of Abstract Analysis [Gleason- p. 121] provides some of the definitions.\<close>
-
-(* Title: HOL/ex/Dedekind_Real.thy
- Author: Jacques D. Fleuriot, University of Cambridge
- Conversion to Isar and new proofs by Lawrence C Paulson, 2003/4; 2019
-*)
-
-theory Dedekind_Real
-imports Complex_Main
-begin
-
-text\<open>Could be moved to \<open>Groups\<close>\<close>
-lemma add_eq_exists: "\<exists>x. a+x = (b::'a::ab_group_add)"
- by (rule_tac x="b-a" in exI, simp)
-
-subsection \<open>Dedekind cuts or sections\<close>
-
-definition
- cut :: "rat set \<Rightarrow> bool" where
- "cut A \<equiv> {} \<subset> A \<and> A \<subset> {0<..} \<and>
- (\<forall>y \<in> A. ((\<forall>z. 0<z \<and> z < y \<longrightarrow> z \<in> A) \<and> (\<exists>u \<in> A. y < u)))"
-
-lemma cut_of_rat:
- assumes q: "0 < q" shows "cut {r::rat. 0 < r \<and> r < q}" (is "cut ?A")
-proof -
- from q have pos: "?A \<subset> {0<..}" by force
- have nonempty: "{} \<subset> ?A"
- proof
- show "{} \<subseteq> ?A" by simp
- show "{} \<noteq> ?A"
- using field_lbound_gt_zero q by auto
- qed
- show ?thesis
- by (simp add: cut_def pos nonempty,
- blast dest: dense intro: order_less_trans)
-qed
-
-
-typedef preal = "Collect cut"
- by (blast intro: cut_of_rat [OF zero_less_one])
-
-lemma Abs_preal_induct [induct type: preal]:
- "(\<And>x. cut x \<Longrightarrow> P (Abs_preal x)) \<Longrightarrow> P x"
- using Abs_preal_induct [of P x] by simp
-
-lemma cut_Rep_preal [simp]: "cut (Rep_preal x)"
- using Rep_preal [of x] by simp
-
-definition
- psup :: "preal set \<Rightarrow> preal" where
- "psup P = Abs_preal (\<Union>X \<in> P. Rep_preal X)"
-
-definition
- add_set :: "[rat set,rat set] \<Rightarrow> rat set" where
- "add_set A B = {w. \<exists>x \<in> A. \<exists>y \<in> B. w = x + y}"
-
-definition
- diff_set :: "[rat set,rat set] \<Rightarrow> rat set" where
- "diff_set A B = {w. \<exists>x. 0 < w \<and> 0 < x \<and> x \<notin> B \<and> x + w \<in> A}"
-
-definition
- mult_set :: "[rat set,rat set] \<Rightarrow> rat set" where
- "mult_set A B = {w. \<exists>x \<in> A. \<exists>y \<in> B. w = x * y}"
-
-definition
- inverse_set :: "rat set \<Rightarrow> rat set" where
- "inverse_set A \<equiv> {x. \<exists>y. 0 < x \<and> x < y \<and> inverse y \<notin> A}"
-
-instantiation preal :: "{ord, plus, minus, times, inverse, one}"
-begin
-
-definition
- preal_less_def:
- "r < s \<equiv> Rep_preal r < Rep_preal s"
-
-definition
- preal_le_def:
- "r \<le> s \<equiv> Rep_preal r \<subseteq> Rep_preal s"
-
-definition
- preal_add_def:
- "r + s \<equiv> Abs_preal (add_set (Rep_preal r) (Rep_preal s))"
-
-definition
- preal_diff_def:
- "r - s \<equiv> Abs_preal (diff_set (Rep_preal r) (Rep_preal s))"
-
-definition
- preal_mult_def:
- "r * s \<equiv> Abs_preal (mult_set (Rep_preal r) (Rep_preal s))"
-
-definition
- preal_inverse_def:
- "inverse r \<equiv> Abs_preal (inverse_set (Rep_preal r))"
-
-definition "r div s = r * inverse (s::preal)"
-
-definition
- preal_one_def:
- "1 \<equiv> Abs_preal {x. 0 < x \<and> x < 1}"
-
-instance ..
-
-end
-
-
-text\<open>Reduces equality on abstractions to equality on representatives\<close>
-declare Abs_preal_inject [simp]
-declare Abs_preal_inverse [simp]
-
-lemma rat_mem_preal: "0 < q \<Longrightarrow> cut {r::rat. 0 < r \<and> r < q}"
-by (simp add: cut_of_rat)
-
-lemma preal_nonempty: "cut A \<Longrightarrow> \<exists>x\<in>A. 0 < x"
- unfolding cut_def [abs_def] by blast
-
-lemma preal_Ex_mem: "cut A \<Longrightarrow> \<exists>x. x \<in> A"
- using preal_nonempty by blast
-
-lemma preal_exists_bound: "cut A \<Longrightarrow> \<exists>x. 0 < x \<and> x \<notin> A"
- using Dedekind_Real.cut_def by fastforce
-
-lemma preal_exists_greater: "\<lbrakk>cut A; y \<in> A\<rbrakk> \<Longrightarrow> \<exists>u \<in> A. y < u"
- unfolding cut_def [abs_def] by blast
-
-lemma preal_downwards_closed: "\<lbrakk>cut A; y \<in> A; 0 < z; z < y\<rbrakk> \<Longrightarrow> z \<in> A"
- unfolding cut_def [abs_def] by blast
-
-text\<open>Relaxing the final premise\<close>
-lemma preal_downwards_closed': "\<lbrakk>cut A; y \<in> A; 0 < z; z \<le> y\<rbrakk> \<Longrightarrow> z \<in> A"
- using less_eq_rat_def preal_downwards_closed by blast
-
-text\<open>A positive fraction not in a positive real is an upper bound.
- Gleason p. 122 - Remark (1)\<close>
-
-lemma not_in_preal_ub:
- assumes A: "cut A"
- and notx: "x \<notin> A"
- and y: "y \<in> A"
- and pos: "0 < x"
- shows "y < x"
-proof (cases rule: linorder_cases)
- assume "x<y"
- with notx show ?thesis
- by (simp add: preal_downwards_closed [OF A y] pos)
-next
- assume "x=y"
- with notx and y show ?thesis by simp
-next
- assume "y<x"
- thus ?thesis .
-qed
-
-text \<open>preal lemmas instantiated to \<^term>\<open>Rep_preal X\<close>\<close>
-
-lemma mem_Rep_preal_Ex: "\<exists>x. x \<in> Rep_preal X"
-thm preal_Ex_mem
-by (rule preal_Ex_mem [OF cut_Rep_preal])
-
-lemma Rep_preal_exists_bound: "\<exists>x>0. x \<notin> Rep_preal X"
-by (rule preal_exists_bound [OF cut_Rep_preal])
-
-lemmas not_in_Rep_preal_ub = not_in_preal_ub [OF cut_Rep_preal]
-
-
-subsection\<open>Properties of Ordering\<close>
-
-instance preal :: order
-proof
- fix w :: preal
- show "w \<le> w" by (simp add: preal_le_def)
-next
- fix i j k :: preal
- assume "i \<le> j" and "j \<le> k"
- then show "i \<le> k" by (simp add: preal_le_def)
-next
- fix z w :: preal
- assume "z \<le> w" and "w \<le> z"
- then show "z = w" by (simp add: preal_le_def Rep_preal_inject)
-next
- fix z w :: preal
- show "z < w \<longleftrightarrow> z \<le> w \<and> \<not> w \<le> z"
- by (auto simp: preal_le_def preal_less_def Rep_preal_inject)
-qed
-
-lemma preal_imp_pos: "\<lbrakk>cut A; r \<in> A\<rbrakk> \<Longrightarrow> 0 < r"
- by (auto simp: cut_def)
-
-instance preal :: linorder
-proof
- fix x y :: preal
- show "x \<le> y \<or> y \<le> x"
- unfolding preal_le_def
- by (meson cut_Rep_preal not_in_preal_ub preal_downwards_closed preal_imp_pos subsetI)
-qed
-
-instantiation preal :: distrib_lattice
-begin
-
-definition
- "(inf :: preal \<Rightarrow> preal \<Rightarrow> preal) = min"
-
-definition
- "(sup :: preal \<Rightarrow> preal \<Rightarrow> preal) = max"
-
-instance
- by intro_classes
- (auto simp: inf_preal_def sup_preal_def max_min_distrib2)
-
-end
-
-subsection\<open>Properties of Addition\<close>
-
-lemma preal_add_commute: "(x::preal) + y = y + x"
- unfolding preal_add_def add_set_def
- by (metis (no_types, opaque_lifting) add.commute)
-
-text\<open>Lemmas for proving that addition of two positive reals gives
- a positive real\<close>
-
-lemma mem_add_set:
- assumes "cut A" "cut B"
- shows "cut (add_set A B)"
-proof -
- have "{} \<subset> add_set A B"
- using assms by (force simp: add_set_def dest: preal_nonempty)
- moreover
- obtain q where "q > 0" "q \<notin> add_set A B"
- proof -
- obtain a b where "a > 0" "a \<notin> A" "b > 0" "b \<notin> B" "\<And>x. x \<in> A \<Longrightarrow> x < a" "\<And>y. y \<in> B \<Longrightarrow> y < b"
- by (meson assms preal_exists_bound not_in_preal_ub)
- with assms have "a+b \<notin> add_set A B"
- by (fastforce simp add: add_set_def)
- then show thesis
- using \<open>0 < a\<close> \<open>0 < b\<close> add_pos_pos that by blast
- qed
- then have "add_set A B \<subset> {0<..}"
- unfolding add_set_def
- using preal_imp_pos [OF \<open>cut A\<close>] preal_imp_pos [OF \<open>cut B\<close>] by fastforce
- moreover have "z \<in> add_set A B"
- if u: "u \<in> add_set A B" and "0 < z" "z < u" for u z
- using u unfolding add_set_def
- proof (clarify)
- fix x::rat and y::rat
- assume ueq: "u = x + y" and x: "x \<in> A" and y:"y \<in> B"
- have xpos [simp]: "x > 0" and ypos [simp]: "y > 0"
- using assms preal_imp_pos x y by blast+
- have xypos [simp]: "x+y > 0" by (simp add: pos_add_strict)
- let ?f = "z/(x+y)"
- have fless: "?f < 1"
- using divide_less_eq_1_pos \<open>z < u\<close> ueq xypos by blast
- show "\<exists>x' \<in> A. \<exists>y'\<in>B. z = x' + y'"
- proof (intro bexI)
- show "z = x*?f + y*?f"
- by (simp add: distrib_right [symmetric] divide_inverse ac_simps order_less_imp_not_eq2)
- next
- show "y * ?f \<in> B"
- proof (rule preal_downwards_closed [OF \<open>cut B\<close> y])
- show "0 < y * ?f"
- by (simp add: \<open>0 < z\<close>)
- next
- show "y * ?f < y"
- by (insert mult_strict_left_mono [OF fless ypos], simp)
- qed
- next
- show "x * ?f \<in> A"
- proof (rule preal_downwards_closed [OF \<open>cut A\<close> x])
- show "0 < x * ?f"
- by (simp add: \<open>0 < z\<close>)
- next
- show "x * ?f < x"
- by (insert mult_strict_left_mono [OF fless xpos], simp)
- qed
- qed
- qed
- moreover
- have "\<And>y. y \<in> add_set A B \<Longrightarrow> \<exists>u \<in> add_set A B. y < u"
- unfolding add_set_def using preal_exists_greater assms by fastforce
- ultimately show ?thesis
- by (simp add: Dedekind_Real.cut_def)
-qed
-
-lemma preal_add_assoc: "((x::preal) + y) + z = x + (y + z)"
- apply (simp add: preal_add_def mem_add_set)
- apply (force simp: add_set_def ac_simps)
- done
-
-instance preal :: ab_semigroup_add
-proof
- fix a b c :: preal
- show "(a + b) + c = a + (b + c)" by (rule preal_add_assoc)
- show "a + b = b + a" by (rule preal_add_commute)
-qed
-
-
-subsection\<open>Properties of Multiplication\<close>
-
-text\<open>Proofs essentially same as for addition\<close>
-
-lemma preal_mult_commute: "(x::preal) * y = y * x"
- unfolding preal_mult_def mult_set_def
- by (metis (no_types, opaque_lifting) mult.commute)
-
-text\<open>Multiplication of two positive reals gives a positive real.\<close>
-
-lemma mem_mult_set:
- assumes "cut A" "cut B"
- shows "cut (mult_set A B)"
-proof -
- have "{} \<subset> mult_set A B"
- using assms
- by (force simp: mult_set_def dest: preal_nonempty)
- moreover
- obtain q where "q > 0" "q \<notin> mult_set A B"
- proof -
- obtain x y where x [simp]: "0 < x" "x \<notin> A" and y [simp]: "0 < y" "y \<notin> B"
- using preal_exists_bound assms by blast
- show thesis
- proof
- show "0 < x*y" by simp
- show "x * y \<notin> mult_set A B"
- proof -
- {
- fix u::rat and v::rat
- assume u: "u \<in> A" and v: "v \<in> B" and xy: "x*y = u*v"
- moreover have "u<x" and "v<y" using assms x y u v by (blast dest: not_in_preal_ub)+
- moreover have "0\<le>v"
- using less_imp_le preal_imp_pos assms x y u v by blast
- moreover have "u*v < x*y"
- using assms x \<open>u < x\<close> \<open>v < y\<close> \<open>0 \<le> v\<close> by (blast intro: mult_strict_mono)
- ultimately have False by force
- }
- thus ?thesis by (auto simp: mult_set_def)
- qed
- qed
- qed
- then have "mult_set A B \<subset> {0<..}"
- unfolding mult_set_def
- using preal_imp_pos [OF \<open>cut A\<close>] preal_imp_pos [OF \<open>cut B\<close>] by fastforce
- moreover have "z \<in> mult_set A B"
- if u: "u \<in> mult_set A B" and "0 < z" "z < u" for u z
- using u unfolding mult_set_def
- proof (clarify)
- fix x::rat and y::rat
- assume ueq: "u = x * y" and x: "x \<in> A" and y: "y \<in> B"
- have [simp]: "y > 0"
- using \<open>cut B\<close> preal_imp_pos y by blast
- show "\<exists>x' \<in> A. \<exists>y' \<in> B. z = x' * y'"
- proof
- have "z = (z/y)*y"
- by (simp add: divide_inverse mult.commute [of y] mult.assoc order_less_imp_not_eq2)
- then show "\<exists>y'\<in>B. z = (z/y) * y'"
- using y by blast
- next
- show "z/y \<in> A"
- proof (rule preal_downwards_closed [OF \<open>cut A\<close> x])
- show "0 < z/y"
- by (simp add: \<open>0 < z\<close>)
- show "z/y < x"
- using \<open>0 < y\<close> pos_divide_less_eq \<open>z < u\<close> ueq by blast
- qed
- qed
- qed
- moreover have "\<And>y. y \<in> mult_set A B \<Longrightarrow> \<exists>u \<in> mult_set A B. y < u"
- apply (simp add: mult_set_def)
- by (metis preal_exists_greater mult_strict_right_mono preal_imp_pos assms)
- ultimately show ?thesis
- by (simp add: Dedekind_Real.cut_def)
-qed
-
-lemma preal_mult_assoc: "((x::preal) * y) * z = x * (y * z)"
- apply (simp add: preal_mult_def mem_mult_set Rep_preal)
- apply (simp add: mult_set_def)
- apply (metis (no_types, opaque_lifting) ab_semigroup_mult_class.mult_ac(1))
- done
-
-instance preal :: ab_semigroup_mult
-proof
- fix a b c :: preal
- show "(a * b) * c = a * (b * c)" by (rule preal_mult_assoc)
- show "a * b = b * a" by (rule preal_mult_commute)
-qed
-
-
-text\<open>Positive real 1 is the multiplicative identity element\<close>
-
-lemma preal_mult_1: "(1::preal) * z = z"
-proof (induct z)
- fix A :: "rat set"
- assume A: "cut A"
- have "{w. \<exists>u. 0 < u \<and> u < 1 \<and> (\<exists>v \<in> A. w = u * v)} = A" (is "?lhs = A")
- proof
- show "?lhs \<subseteq> A"
- proof clarify
- fix x::rat and u::rat and v::rat
- assume upos: "0<u" and "u<1" and v: "v \<in> A"
- have vpos: "0<v" by (rule preal_imp_pos [OF A v])
- hence "u*v < 1*v" by (simp only: mult_strict_right_mono upos \<open>u < 1\<close> v)
- thus "u * v \<in> A"
- by (force intro: preal_downwards_closed [OF A v] mult_pos_pos upos vpos)
- qed
- next
- show "A \<subseteq> ?lhs"
- proof clarify
- fix x::rat
- assume x: "x \<in> A"
- have xpos: "0<x" by (rule preal_imp_pos [OF A x])
- from preal_exists_greater [OF A x]
- obtain v where v: "v \<in> A" and xlessv: "x < v" ..
- have vpos: "0<v" by (rule preal_imp_pos [OF A v])
- show "\<exists>u. 0 < u \<and> u < 1 \<and> (\<exists>v\<in>A. x = u * v)"
- proof (intro exI conjI)
- show "0 < x/v"
- by (simp add: zero_less_divide_iff xpos vpos)
- show "x / v < 1"
- by (simp add: pos_divide_less_eq vpos xlessv)
- have "x = (x/v)*v"
- by (simp add: divide_inverse mult.assoc vpos order_less_imp_not_eq2)
- then show "\<exists>v'\<in>A. x = (x / v) * v'"
- using v by blast
- qed
- qed
- qed
- thus "1 * Abs_preal A = Abs_preal A"
- by (simp add: preal_one_def preal_mult_def mult_set_def rat_mem_preal A)
-qed
-
-instance preal :: comm_monoid_mult
- by intro_classes (rule preal_mult_1)
-
-
-subsection\<open>Distribution of Multiplication across Addition\<close>
-
-lemma mem_Rep_preal_add_iff:
- "(z \<in> Rep_preal(r+s)) = (\<exists>x \<in> Rep_preal r. \<exists>y \<in> Rep_preal s. z = x + y)"
- apply (simp add: preal_add_def mem_add_set Rep_preal)
- apply (simp add: add_set_def)
- done
-
-lemma mem_Rep_preal_mult_iff:
- "(z \<in> Rep_preal(r*s)) = (\<exists>x \<in> Rep_preal r. \<exists>y \<in> Rep_preal s. z = x * y)"
- apply (simp add: preal_mult_def mem_mult_set Rep_preal)
- apply (simp add: mult_set_def)
- done
-
-lemma distrib_subset1:
- "Rep_preal (w * (x + y)) \<subseteq> Rep_preal (w * x + w * y)"
- by (force simp: Bex_def mem_Rep_preal_add_iff mem_Rep_preal_mult_iff distrib_left)
-
-lemma preal_add_mult_distrib_mean:
- assumes a: "a \<in> Rep_preal w"
- and b: "b \<in> Rep_preal w"
- and d: "d \<in> Rep_preal x"
- and e: "e \<in> Rep_preal y"
- shows "\<exists>c \<in> Rep_preal w. a * d + b * e = c * (d + e)"
-proof
- let ?c = "(a*d + b*e)/(d+e)"
- have [simp]: "0<a" "0<b" "0<d" "0<e" "0<d+e"
- by (blast intro: preal_imp_pos [OF cut_Rep_preal] a b d e pos_add_strict)+
- have cpos: "0 < ?c"
- by (simp add: zero_less_divide_iff zero_less_mult_iff pos_add_strict)
- show "a * d + b * e = ?c * (d + e)"
- by (simp add: divide_inverse mult.assoc order_less_imp_not_eq2)
- show "?c \<in> Rep_preal w"
- proof (cases rule: linorder_le_cases)
- assume "a \<le> b"
- hence "?c \<le> b"
- by (simp add: pos_divide_le_eq distrib_left mult_right_mono
- order_less_imp_le)
- thus ?thesis by (rule preal_downwards_closed' [OF cut_Rep_preal b cpos])
- next
- assume "b \<le> a"
- hence "?c \<le> a"
- by (simp add: pos_divide_le_eq distrib_left mult_right_mono
- order_less_imp_le)
- thus ?thesis by (rule preal_downwards_closed' [OF cut_Rep_preal a cpos])
- qed
-qed
-
-lemma distrib_subset2:
- "Rep_preal (w * x + w * y) \<subseteq> Rep_preal (w * (x + y))"
- apply (clarsimp simp: mem_Rep_preal_add_iff mem_Rep_preal_mult_iff)
- using mem_Rep_preal_add_iff preal_add_mult_distrib_mean by blast
-
-lemma preal_add_mult_distrib2: "(w * ((x::preal) + y)) = (w * x) + (w * y)"
- by (metis Rep_preal_inverse distrib_subset1 distrib_subset2 subset_antisym)
-
-lemma preal_add_mult_distrib: "(((x::preal) + y) * w) = (x * w) + (y * w)"
- by (simp add: preal_mult_commute preal_add_mult_distrib2)
-
-instance preal :: comm_semiring
- by intro_classes (rule preal_add_mult_distrib)
-
-
-subsection\<open>Existence of Inverse, a Positive Real\<close>
-
-lemma mem_inverse_set:
- assumes "cut A" shows "cut (inverse_set A)"
-proof -
- have "\<exists>x y. 0 < x \<and> x < y \<and> inverse y \<notin> A"
- proof -
- from preal_exists_bound [OF \<open>cut A\<close>]
- obtain x where [simp]: "0<x" "x \<notin> A" by blast
- show ?thesis
- proof (intro exI conjI)
- show "0 < inverse (x+1)"
- by (simp add: order_less_trans [OF _ less_add_one])
- show "inverse(x+1) < inverse x"
- by (simp add: less_imp_inverse_less less_add_one)
- show "inverse (inverse x) \<notin> A"
- by (simp add: order_less_imp_not_eq2)
- qed
- qed
- then have "{} \<subset> inverse_set A"
- using inverse_set_def by fastforce
- moreover obtain q where "q > 0" "q \<notin> inverse_set A"
- proof -
- from preal_nonempty [OF \<open>cut A\<close>]
- obtain x where x: "x \<in> A" and xpos [simp]: "0<x" ..
- show ?thesis
- proof
- show "0 < inverse x" by simp
- show "inverse x \<notin> inverse_set A"
- proof -
- { fix y::rat
- assume ygt: "inverse x < y"
- have [simp]: "0 < y" by (simp add: order_less_trans [OF _ ygt])
- have iyless: "inverse y < x"
- by (simp add: inverse_less_imp_less [of x] ygt)
- have "inverse y \<in> A"
- by (simp add: preal_downwards_closed [OF \<open>cut A\<close> x] iyless)}
- thus ?thesis by (auto simp: inverse_set_def)
- qed
- qed
- qed
- moreover have "inverse_set A \<subset> {0<..}"
- using calculation inverse_set_def by blast
- moreover have "z \<in> inverse_set A"
- if u: "u \<in> inverse_set A" and "0 < z" "z < u" for u z
- using u that less_trans unfolding inverse_set_def by auto
- moreover have "\<And>y. y \<in> inverse_set A \<Longrightarrow> \<exists>u \<in> inverse_set A. y < u"
- by (simp add: inverse_set_def) (meson dense less_trans)
- ultimately show ?thesis
- by (simp add: Dedekind_Real.cut_def)
-qed
-
-
-subsection\<open>Gleason's Lemma 9-3.4, page 122\<close>
-
-lemma Gleason9_34_exists:
- assumes A: "cut A"
- and "\<forall>x\<in>A. x + u \<in> A"
- and "0 \<le> z"
- shows "\<exists>b\<in>A. b + (of_int z) * u \<in> A"
-proof (cases z rule: int_cases)
- case (nonneg n)
- show ?thesis
- proof (simp add: nonneg, induct n)
- case 0
- from preal_nonempty [OF A]
- show ?case by force
- next
- case (Suc k)
- then obtain b where b: "b \<in> A" "b + of_nat k * u \<in> A" ..
- hence "b + of_int (int k)*u + u \<in> A" by (simp add: assms)
- thus ?case by (force simp: algebra_simps b)
- qed
-next
- case (neg n)
- with assms show ?thesis by simp
-qed
-
-lemma Gleason9_34_contra:
- assumes A: "cut A"
- shows "\<lbrakk>\<forall>x\<in>A. x + u \<in> A; 0 < u; 0 < y; y \<notin> A\<rbrakk> \<Longrightarrow> False"
-proof (induct u, induct y)
- fix a::int and b::int
- fix c::int and d::int
- assume bpos [simp]: "0 < b"
- and dpos [simp]: "0 < d"
- and closed: "\<forall>x\<in>A. x + (Fract c d) \<in> A"
- and upos: "0 < Fract c d"
- and ypos: "0 < Fract a b"
- and notin: "Fract a b \<notin> A"
- have cpos [simp]: "0 < c"
- by (simp add: zero_less_Fract_iff [OF dpos, symmetric] upos)
- have apos [simp]: "0 < a"
- by (simp add: zero_less_Fract_iff [OF bpos, symmetric] ypos)
- let ?k = "a*d"
- have frle: "Fract a b \<le> Fract ?k 1 * (Fract c d)"
- proof -
- have "?thesis = ((a * d * b * d) \<le> c * b * (a * d * b * d))"
- by (simp add: order_less_imp_not_eq2 ac_simps)
- moreover
- have "(1 * (a * d * b * d)) \<le> c * b * (a * d * b * d)"
- by (rule mult_mono,
- simp_all add: int_one_le_iff_zero_less zero_less_mult_iff
- order_less_imp_le)
- ultimately
- show ?thesis by simp
- qed
- have k: "0 \<le> ?k" by (simp add: order_less_imp_le zero_less_mult_iff)
- from Gleason9_34_exists [OF A closed k]
- obtain z where z: "z \<in> A"
- and mem: "z + of_int ?k * Fract c d \<in> A" ..
- have less: "z + of_int ?k * Fract c d < Fract a b"
- by (rule not_in_preal_ub [OF A notin mem ypos])
- have "0<z" by (rule preal_imp_pos [OF A z])
- with frle and less show False by (simp add: Fract_of_int_eq)
-qed
-
-
-lemma Gleason9_34:
- assumes "cut A" "0 < u"
- shows "\<exists>r \<in> A. r + u \<notin> A"
- using assms Gleason9_34_contra preal_exists_bound by blast
-
-
-
-subsection\<open>Gleason's Lemma 9-3.6\<close>
-
-lemma lemma_gleason9_36:
- assumes A: "cut A"
- and x: "1 < x"
- shows "\<exists>r \<in> A. r*x \<notin> A"
-proof -
- from preal_nonempty [OF A]
- obtain y where y: "y \<in> A" and ypos: "0<y" ..
- show ?thesis
- proof (rule classical)
- assume "~(\<exists>r\<in>A. r * x \<notin> A)"
- with y have ymem: "y * x \<in> A" by blast
- from ypos mult_strict_left_mono [OF x]
- have yless: "y < y*x" by simp
- let ?d = "y*x - y"
- from yless have dpos: "0 < ?d" and eq: "y + ?d = y*x" by auto
- from Gleason9_34 [OF A dpos]
- obtain r where r: "r\<in>A" and notin: "r + ?d \<notin> A" ..
- have rpos: "0<r" by (rule preal_imp_pos [OF A r])
- with dpos have rdpos: "0 < r + ?d" by arith
- have "~ (r + ?d \<le> y + ?d)"
- proof
- assume le: "r + ?d \<le> y + ?d"
- from ymem have yd: "y + ?d \<in> A" by (simp add: eq)
- have "r + ?d \<in> A" by (rule preal_downwards_closed' [OF A yd rdpos le])
- with notin show False by simp
- qed
- hence "y < r" by simp
- with ypos have dless: "?d < (r * ?d)/y"
- using dpos less_divide_eq_1 by fastforce
- have "r + ?d < r*x"
- proof -
- have "r + ?d < r + (r * ?d)/y" by (simp add: dless)
- also from ypos have "\<dots> = (r/y) * (y + ?d)"
- by (simp only: algebra_simps divide_inverse, simp)
- also have "\<dots> = r*x" using ypos
- by simp
- finally show "r + ?d < r*x" .
- qed
- with r notin rdpos
- show "\<exists>r\<in>A. r * x \<notin> A" by (blast dest: preal_downwards_closed [OF A])
- qed
-qed
-
-subsection\<open>Existence of Inverse: Part 2\<close>
-
-lemma mem_Rep_preal_inverse_iff:
- "(z \<in> Rep_preal(inverse r)) \<longleftrightarrow> (0 < z \<and> (\<exists>y. z < y \<and> inverse y \<notin> Rep_preal r))"
- apply (simp add: preal_inverse_def mem_inverse_set Rep_preal)
- apply (simp add: inverse_set_def)
- done
-
-lemma Rep_preal_one:
- "Rep_preal 1 = {x. 0 < x \<and> x < 1}"
-by (simp add: preal_one_def rat_mem_preal)
-
-lemma subset_inverse_mult_lemma:
- assumes xpos: "0 < x" and xless: "x < 1"
- shows "\<exists>v u y. 0 < v \<and> v < y \<and> inverse y \<notin> Rep_preal R \<and>
- u \<in> Rep_preal R \<and> x = v * u"
-proof -
- from xpos and xless have "1 < inverse x" by (simp add: one_less_inverse_iff)
- from lemma_gleason9_36 [OF cut_Rep_preal this]
- obtain t where t: "t \<in> Rep_preal R"
- and notin: "t * (inverse x) \<notin> Rep_preal R" ..
- have rpos: "0<t" by (rule preal_imp_pos [OF cut_Rep_preal t])
- from preal_exists_greater [OF cut_Rep_preal t]
- obtain u where u: "u \<in> Rep_preal R" and rless: "t < u" ..
- have upos: "0<u" by (rule preal_imp_pos [OF cut_Rep_preal u])
- show ?thesis
- proof (intro exI conjI)
- show "0 < x/u" using xpos upos
- by (simp add: zero_less_divide_iff)
- show "x/u < x/t" using xpos upos rpos
- by (simp add: divide_inverse mult_less_cancel_left rless)
- show "inverse (x / t) \<notin> Rep_preal R" using notin
- by (simp add: divide_inverse mult.commute)
- show "u \<in> Rep_preal R" by (rule u)
- show "x = x / u * u" using upos
- by (simp add: divide_inverse mult.commute)
- qed
-qed
-
-lemma subset_inverse_mult:
- "Rep_preal 1 \<subseteq> Rep_preal(inverse r * r)"
- by (force simp: Rep_preal_one mem_Rep_preal_inverse_iff mem_Rep_preal_mult_iff dest: subset_inverse_mult_lemma)
-
-lemma inverse_mult_subset: "Rep_preal(inverse r * r) \<subseteq> Rep_preal 1"
- proof -
- have "0 < u * v" if "v \<in> Rep_preal r" "0 < u" "u < t" for u v t :: rat
- using that by (simp add: zero_less_mult_iff preal_imp_pos [OF cut_Rep_preal])
- moreover have "t * q < 1"
- if "q \<in> Rep_preal r" "0 < t" "t < y" "inverse y \<notin> Rep_preal r"
- for t q y :: rat
- proof -
- have "q < inverse y"
- using not_in_Rep_preal_ub that by auto
- hence "t * q < t/y"
- using that by (simp add: divide_inverse mult_less_cancel_left)
- also have "\<dots> \<le> 1"
- using that by (simp add: pos_divide_le_eq)
- finally show ?thesis .
- qed
- ultimately show ?thesis
- by (auto simp: Rep_preal_one mem_Rep_preal_inverse_iff mem_Rep_preal_mult_iff)
-qed
-
-lemma preal_mult_inverse: "inverse r * r = (1::preal)"
- by (meson Rep_preal_inject inverse_mult_subset subset_antisym subset_inverse_mult)
-
-lemma preal_mult_inverse_right: "r * inverse r = (1::preal)"
- using preal_mult_commute preal_mult_inverse by auto
-
-
-text\<open>Theorems needing \<open>Gleason9_34\<close>\<close>
-
-lemma Rep_preal_self_subset: "Rep_preal (r) \<subseteq> Rep_preal(r + s)"
-proof
- fix x
- assume x: "x \<in> Rep_preal r"
- obtain y where y: "y \<in> Rep_preal s" and "y > 0"
- using Rep_preal preal_nonempty by blast
- have ry: "x+y \<in> Rep_preal(r + s)" using x y
- by (auto simp: mem_Rep_preal_add_iff)
- then show "x \<in> Rep_preal(r + s)"
- by (meson \<open>0 < y\<close> add_less_same_cancel1 not_in_Rep_preal_ub order.asym preal_imp_pos [OF cut_Rep_preal x])
-qed
-
-lemma Rep_preal_sum_not_subset: "~ Rep_preal (r + s) \<subseteq> Rep_preal(r)"
-proof -
- obtain y where y: "y \<in> Rep_preal s" and "y > 0"
- using Rep_preal preal_nonempty by blast
- obtain x where "x \<in> Rep_preal r" and notin: "x + y \<notin> Rep_preal r"
- using Dedekind_Real.Rep_preal Gleason9_34 \<open>0 < y\<close> by blast
- then have "x + y \<in> Rep_preal (r + s)" using y
- by (auto simp: mem_Rep_preal_add_iff)
- thus ?thesis using notin by blast
-qed
-
-text\<open>at last, Gleason prop. 9-3.5(iii) page 123\<close>
-proposition preal_self_less_add_left: "(r::preal) < r + s"
- by (meson Rep_preal_sum_not_subset not_less preal_le_def)
-
-
-subsection\<open>Subtraction for Positive Reals\<close>
-
-text\<open>gleason prop. 9-3.5(iv), page 123: proving \<^prop>\<open>a < b \<Longrightarrow> \<exists>d. a + d = b\<close>.
-We define the claimed \<^term>\<open>D\<close> and show that it is a positive real\<close>
-
-lemma mem_diff_set:
- assumes "r < s"
- shows "cut (diff_set (Rep_preal s) (Rep_preal r))"
-proof -
- obtain p where "Rep_preal r \<subseteq> Rep_preal s" "p \<in> Rep_preal s" "p \<notin> Rep_preal r"
- using assms unfolding preal_less_def by auto
- then have "{} \<subset> diff_set (Rep_preal s) (Rep_preal r)"
- apply (simp add: diff_set_def psubset_eq)
- by (metis cut_Rep_preal add_eq_exists less_add_same_cancel1 preal_exists_greater preal_imp_pos)
- moreover
- obtain q where "q > 0" "q \<notin> Rep_preal s"
- using Rep_preal_exists_bound by blast
- then have qnot: "q \<notin> diff_set (Rep_preal s) (Rep_preal r)"
- by (auto simp: diff_set_def dest: cut_Rep_preal [THEN preal_downwards_closed])
- moreover have "diff_set (Rep_preal s) (Rep_preal r) \<subset> {0<..}" (is "?lhs < ?rhs")
- using \<open>0 < q\<close> diff_set_def qnot by blast
- moreover have "z \<in> diff_set (Rep_preal s) (Rep_preal r)"
- if u: "u \<in> diff_set (Rep_preal s) (Rep_preal r)" and "0 < z" "z < u" for u z
- using u that less_trans Rep_preal unfolding diff_set_def Dedekind_Real.cut_def by auto
- moreover have "\<exists>u \<in> diff_set (Rep_preal s) (Rep_preal r). y < u"
- if y: "y \<in> diff_set (Rep_preal s) (Rep_preal r)" for y
- proof -
- obtain a b where "0 < a" "0 < b" "a \<notin> Rep_preal r" "a + y + b \<in> Rep_preal s"
- using y
- by (simp add: diff_set_def) (metis cut_Rep_preal add_eq_exists less_add_same_cancel1 preal_exists_greater)
- then have "a + (y + b) \<in> Rep_preal s"
- by (simp add: add.assoc)
- then have "y + b \<in> diff_set (Rep_preal s) (Rep_preal r)"
- using \<open>0 < a\<close> \<open>0 < b\<close> \<open>a \<notin> Rep_preal r\<close> y
- by (auto simp: diff_set_def)
- then show ?thesis
- using \<open>0 < b\<close> less_add_same_cancel1 by blast
- qed
- ultimately show ?thesis
- by (simp add: Dedekind_Real.cut_def)
-qed
-
-lemma mem_Rep_preal_diff_iff:
- "r < s \<Longrightarrow>
- (z \<in> Rep_preal (s - r)) \<longleftrightarrow>
- (\<exists>x. 0 < x \<and> 0 < z \<and> x \<notin> Rep_preal r \<and> x + z \<in> Rep_preal s)"
- apply (simp add: preal_diff_def mem_diff_set Rep_preal)
- apply (force simp: diff_set_def)
- done
-
-proposition less_add_left:
- fixes r::preal
- assumes "r < s"
- shows "r + (s-r) = s"
-proof -
- have "a + b \<in> Rep_preal s"
- if "a \<in> Rep_preal r" "c + b \<in> Rep_preal s" "c \<notin> Rep_preal r"
- and "0 < b" "0 < c" for a b c
- by (meson cut_Rep_preal add_less_imp_less_right add_pos_pos not_in_Rep_preal_ub preal_downwards_closed preal_imp_pos that)
- then have "r + (s-r) \<le> s"
- using assms mem_Rep_preal_add_iff mem_Rep_preal_diff_iff preal_le_def by auto
- have "x \<in> Rep_preal (r + (s - r))" if "x \<in> Rep_preal s" for x
- proof (cases "x \<in> Rep_preal r")
- case True
- then show ?thesis
- using Rep_preal_self_subset by blast
- next
- case False
- have "\<exists>u v z. 0 < v \<and> 0 < z \<and> u \<in> Rep_preal r \<and> z \<notin> Rep_preal r \<and> z + v \<in> Rep_preal s \<and> x = u + v"
- if x: "x \<in> Rep_preal s"
- proof -
- have xpos: "x > 0"
- using Rep_preal preal_imp_pos that by blast
- obtain e where epos: "0 < e" and xe: "x + e \<in> Rep_preal s"
- by (metis cut_Rep_preal x add_eq_exists less_add_same_cancel1 preal_exists_greater)
- from Gleason9_34 [OF cut_Rep_preal epos]
- obtain u where r: "u \<in> Rep_preal r" and notin: "u + e \<notin> Rep_preal r" ..
- with x False xpos have rless: "u < x" by (blast intro: not_in_Rep_preal_ub)
- from add_eq_exists [of u x]
- obtain y where eq: "x = u+y" by auto
- show ?thesis
- proof (intro exI conjI)
- show "u + e \<notin> Rep_preal r" by (rule notin)
- show "u + e + y \<in> Rep_preal s" using xe eq by (simp add: ac_simps)
- show "0 < u + e"
- using epos preal_imp_pos [OF cut_Rep_preal r] by simp
- qed (use r rless eq in auto)
- qed
- then show ?thesis
- using assms mem_Rep_preal_add_iff mem_Rep_preal_diff_iff that by blast
- qed
- then have "s \<le> r + (s-r)"
- by (auto simp: preal_le_def)
- then show ?thesis
- by (simp add: \<open>r + (s - r) \<le> s\<close> antisym)
-qed
-
-lemma preal_add_less2_mono1: "r < (s::preal) \<Longrightarrow> r + t < s + t"
- by (metis add.assoc add.commute less_add_left preal_self_less_add_left)
-
-lemma preal_add_less2_mono2: "r < (s::preal) \<Longrightarrow> t + r < t + s"
- by (auto intro: preal_add_less2_mono1 simp add: preal_add_commute [of t])
-
-lemma preal_add_right_less_cancel: "r + t < s + t \<Longrightarrow> r < (s::preal)"
- by (metis linorder_cases order.asym preal_add_less2_mono1)
-
-lemma preal_add_left_less_cancel: "t + r < t + s \<Longrightarrow> r < (s::preal)"
- by (auto elim: preal_add_right_less_cancel simp add: preal_add_commute [of t])
-
-lemma preal_add_less_cancel_left [simp]: "(t + (r::preal) < t + s) \<longleftrightarrow> (r < s)"
- by (blast intro: preal_add_less2_mono2 preal_add_left_less_cancel)
-
-lemma preal_add_less_cancel_right [simp]: "((r::preal) + t < s + t) = (r < s)"
- using preal_add_less_cancel_left [symmetric, of r s t] by (simp add: ac_simps)
-
-lemma preal_add_le_cancel_left [simp]: "(t + (r::preal) \<le> t + s) = (r \<le> s)"
- by (simp add: linorder_not_less [symmetric])
-
-lemma preal_add_le_cancel_right [simp]: "((r::preal) + t \<le> s + t) = (r \<le> s)"
- using preal_add_le_cancel_left [symmetric, of r s t] by (simp add: ac_simps)
-
-lemma preal_add_right_cancel: "(r::preal) + t = s + t \<Longrightarrow> r = s"
- by (metis less_irrefl linorder_cases preal_add_less_cancel_right)
-
-lemma preal_add_left_cancel: "c + a = c + b \<Longrightarrow> a = (b::preal)"
- by (auto intro: preal_add_right_cancel simp add: preal_add_commute)
-
-instance preal :: linordered_ab_semigroup_add
-proof
- fix a b c :: preal
- show "a \<le> b \<Longrightarrow> c + a \<le> c + b" by (simp only: preal_add_le_cancel_left)
-qed
-
-
-subsection\<open>Completeness of type \<^typ>\<open>preal\<close>\<close>
-
-text\<open>Prove that supremum is a cut\<close>
-
-text\<open>Part 1 of Dedekind sections definition\<close>
-
-lemma preal_sup:
- assumes le: "\<And>X. X \<in> P \<Longrightarrow> X \<le> Y" and "P \<noteq> {}"
- shows "cut (\<Union>X \<in> P. Rep_preal(X))"
-proof -
- have "{} \<subset> (\<Union>X \<in> P. Rep_preal(X))"
- using \<open>P \<noteq> {}\<close> mem_Rep_preal_Ex by fastforce
- moreover
- obtain q where "q > 0" and "q \<notin> (\<Union>X \<in> P. Rep_preal(X))"
- using Rep_preal_exists_bound [of Y] le by (auto simp: preal_le_def)
- then have "(\<Union>X \<in> P. Rep_preal(X)) \<subset> {0<..}"
- using cut_Rep_preal preal_imp_pos by force
- moreover
- have "\<And>u z. \<lbrakk>u \<in> (\<Union>X \<in> P. Rep_preal(X)); 0 < z; z < u\<rbrakk> \<Longrightarrow> z \<in> (\<Union>X \<in> P. Rep_preal(X))"
- by (auto elim: cut_Rep_preal [THEN preal_downwards_closed])
- moreover
- have "\<And>y. y \<in> (\<Union>X \<in> P. Rep_preal(X)) \<Longrightarrow> \<exists>u \<in> (\<Union>X \<in> P. Rep_preal(X)). y < u"
- by (blast dest: cut_Rep_preal [THEN preal_exists_greater])
- ultimately show ?thesis
- by (simp add: Dedekind_Real.cut_def)
-qed
-
-lemma preal_psup_le:
- "\<lbrakk>\<And>X. X \<in> P \<Longrightarrow> X \<le> Y; x \<in> P\<rbrakk> \<Longrightarrow> x \<le> psup P"
- using preal_sup [of P Y] unfolding preal_le_def psup_def by fastforce
-
-lemma psup_le_ub: "\<lbrakk>\<And>X. X \<in> P \<Longrightarrow> X \<le> Y; P \<noteq> {}\<rbrakk> \<Longrightarrow> psup P \<le> Y"
- using preal_sup [of P Y] by (simp add: SUP_least preal_le_def psup_def)
-
-text\<open>Supremum property\<close>
-proposition preal_complete:
- assumes le: "\<And>X. X \<in> P \<Longrightarrow> X \<le> Y" and "P \<noteq> {}"
- shows "(\<exists>X \<in> P. Z < X) \<longleftrightarrow> (Z < psup P)" (is "?lhs = ?rhs")
-proof
- assume ?lhs
- then show ?rhs
- using preal_sup [OF assms] preal_less_def psup_def by auto
-next
- assume ?rhs
- then show ?lhs
- by (meson \<open>P \<noteq> {}\<close> not_less psup_le_ub)
-qed
-
-subsection \<open>Defining the Reals from the Positive Reals\<close>
-
-text \<open>Here we do quotients the old-fashioned way\<close>
-
-definition
- realrel :: "((preal * preal) * (preal * preal)) set" where
- "realrel = {p. \<exists>x1 y1 x2 y2. p = ((x1,y1),(x2,y2)) \<and> x1+y2 = x2+y1}"
-
-definition "Real = UNIV//realrel"
-
-typedef real = Real
- morphisms Rep_Real Abs_Real
- unfolding Real_def by (auto simp: quotient_def)
-
-text \<open>This doesn't involve the overloaded "real" function: users don't see it\<close>
-definition
- real_of_preal :: "preal \<Rightarrow> real" where
- "real_of_preal m = Abs_Real (realrel `` {(m + 1, 1)})"
-
-instantiation real :: "{zero, one, plus, minus, uminus, times, inverse, ord, abs, sgn}"
-begin
-
-definition
- real_zero_def: "0 = Abs_Real(realrel``{(1, 1)})"
-
-definition
- real_one_def: "1 = Abs_Real(realrel``{(1 + 1, 1)})"
-
-definition
- real_add_def: "z + w =
- the_elem (\<Union>(x,y) \<in> Rep_Real(z). \<Union>(u,v) \<in> Rep_Real(w).
- { Abs_Real(realrel``{(x+u, y+v)}) })"
-
-definition
- real_minus_def: "- r = the_elem (\<Union>(x,y) \<in> Rep_Real(r). { Abs_Real(realrel``{(y,x)}) })"
-
-definition
- real_diff_def: "r - (s::real) = r + - s"
-
-definition
- real_mult_def:
- "z * w =
- the_elem (\<Union>(x,y) \<in> Rep_Real(z). \<Union>(u,v) \<in> Rep_Real(w).
- { Abs_Real(realrel``{(x*u + y*v, x*v + y*u)}) })"
-
-definition
- real_inverse_def: "inverse (r::real) = (THE s. (r = 0 \<and> s = 0) \<or> s * r = 1)"
-
-definition
- real_divide_def: "r div (s::real) = r * inverse s"
-
-definition
- real_le_def: "z \<le> (w::real) \<longleftrightarrow>
- (\<exists>x y u v. x+v \<le> u+y \<and> (x,y) \<in> Rep_Real z \<and> (u,v) \<in> Rep_Real w)"
-
-definition
- real_less_def: "x < (y::real) \<longleftrightarrow> x \<le> y \<and> x \<noteq> y"
-
-definition
- real_abs_def: "\<bar>r::real\<bar> = (if r < 0 then - r else r)"
-
-definition
- real_sgn_def: "sgn (x::real) = (if x=0 then 0 else if 0<x then 1 else - 1)"
-
-instance ..
-
-end
-
-subsection \<open>Equivalence relation over positive reals\<close>
-
-lemma realrel_iff [simp]: "(((x1,y1),(x2,y2)) \<in> realrel) = (x1 + y2 = x2 + y1)"
- by (simp add: realrel_def)
-
-lemma preal_trans_lemma:
- assumes "x + y1 = x1 + y" and "x + y2 = x2 + y"
- shows "x1 + y2 = x2 + (y1::preal)"
- by (metis add.left_commute assms preal_add_left_cancel)
-
-lemma equiv_realrel: "equiv UNIV realrel"
- by (auto simp: equiv_def refl_on_def sym_def trans_def realrel_def intro: dest: preal_trans_lemma)
-
-text\<open>Reduces equality of equivalence classes to the \<^term>\<open>realrel\<close> relation:
- \<^term>\<open>(realrel `` {x} = realrel `` {y}) = ((x,y) \<in> realrel)\<close>\<close>
-lemmas equiv_realrel_iff [simp] =
- eq_equiv_class_iff [OF equiv_realrel UNIV_I UNIV_I]
-
-lemma realrel_in_real [simp]: "realrel``{(x,y)} \<in> Real"
- by (simp add: Real_def realrel_def quotient_def, blast)
-
-declare Abs_Real_inject [simp] Abs_Real_inverse [simp]
-
-
-text\<open>Case analysis on the representation of a real number as an equivalence
- class of pairs of positive reals.\<close>
-lemma eq_Abs_Real [case_names Abs_Real, cases type: real]:
- "(\<And>x y. z = Abs_Real(realrel``{(x,y)}) \<Longrightarrow> P) \<Longrightarrow> P"
- by (metis Rep_Real_inverse prod.exhaust Rep_Real [of z, unfolded Real_def, THEN quotientE])
-
-subsection \<open>Addition and Subtraction\<close>
-
-lemma real_add:
- "Abs_Real (realrel``{(x,y)}) + Abs_Real (realrel``{(u,v)}) =
- Abs_Real (realrel``{(x+u, y+v)})"
-proof -
- have "(\<lambda>z w. (\<lambda>(x,y). (\<lambda>(u,v). {Abs_Real (realrel `` {(x+u, y+v)})}) w) z)
- respects2 realrel"
- by (clarsimp simp: congruent2_def) (metis add.left_commute preal_add_assoc)
- thus ?thesis
- by (simp add: real_add_def UN_UN_split_split_eq UN_equiv_class2 [OF equiv_realrel equiv_realrel])
-qed
-
-lemma real_minus: "- Abs_Real(realrel``{(x,y)}) = Abs_Real(realrel `` {(y,x)})"
-proof -
- have "(\<lambda>(x,y). {Abs_Real (realrel``{(y,x)})}) respects realrel"
- by (auto simp: congruent_def add.commute)
- thus ?thesis
- by (simp add: real_minus_def UN_equiv_class [OF equiv_realrel])
-qed
-
-instance real :: ab_group_add
-proof
- fix x y z :: real
- show "(x + y) + z = x + (y + z)"
- by (cases x, cases y, cases z, simp add: real_add add.assoc)
- show "x + y = y + x"
- by (cases x, cases y, simp add: real_add add.commute)
- show "0 + x = x"
- by (cases x, simp add: real_add real_zero_def ac_simps)
- show "- x + x = 0"
- by (cases x, simp add: real_minus real_add real_zero_def add.commute)
- show "x - y = x + - y"
- by (simp add: real_diff_def)
-qed
-
-
-subsection \<open>Multiplication\<close>
-
-lemma real_mult_congruent2_lemma:
- "!!(x1::preal). \<lbrakk>x1 + y2 = x2 + y1\<rbrakk> \<Longrightarrow>
- x * x1 + y * y1 + (x * y2 + y * x2) =
- x * x2 + y * y2 + (x * y1 + y * x1)"
- by (metis (no_types, opaque_lifting) add.left_commute preal_add_commute preal_add_mult_distrib2)
-
-lemma real_mult_congruent2:
- "(\<lambda>p1 p2.
- (\<lambda>(x1,y1). (\<lambda>(x2,y2).
- { Abs_Real (realrel``{(x1*x2 + y1*y2, x1*y2+y1*x2)}) }) p2) p1)
- respects2 realrel"
- apply (rule congruent2_commuteI [OF equiv_realrel])
- by (auto simp: mult.commute add.commute combine_common_factor preal_add_assoc preal_add_commute)
-
-lemma real_mult:
- "Abs_Real((realrel``{(x1,y1)})) * Abs_Real((realrel``{(x2,y2)})) =
- Abs_Real(realrel `` {(x1*x2+y1*y2,x1*y2+y1*x2)})"
- by (simp add: real_mult_def UN_UN_split_split_eq
- UN_equiv_class2 [OF equiv_realrel equiv_realrel real_mult_congruent2])
-
-lemma real_mult_commute: "(z::real) * w = w * z"
-by (cases z, cases w, simp add: real_mult ac_simps)
-
-lemma real_mult_assoc: "((z1::real) * z2) * z3 = z1 * (z2 * z3)"
- by (cases z1, cases z2, cases z3) (simp add: real_mult algebra_simps)
-
-lemma real_mult_1: "(1::real) * z = z"
- by (cases z) (simp add: real_mult real_one_def algebra_simps)
-
-lemma real_add_mult_distrib: "((z1::real) + z2) * w = (z1 * w) + (z2 * w)"
- by (cases z1, cases z2, cases w) (simp add: real_add real_mult algebra_simps)
-
-text\<open>one and zero are distinct\<close>
-lemma real_zero_not_eq_one: "0 \<noteq> (1::real)"
-proof -
- have "(1::preal) < 1 + 1"
- by (simp add: preal_self_less_add_left)
- then show ?thesis
- by (simp add: real_zero_def real_one_def neq_iff)
-qed
-
-instance real :: comm_ring_1
-proof
- fix x y z :: real
- show "(x * y) * z = x * (y * z)" by (rule real_mult_assoc)
- show "x * y = y * x" by (rule real_mult_commute)
- show "1 * x = x" by (rule real_mult_1)
- show "(x + y) * z = x * z + y * z" by (rule real_add_mult_distrib)
- show "0 \<noteq> (1::real)" by (rule real_zero_not_eq_one)
-qed
-
-subsection \<open>Inverse and Division\<close>
-
-lemma real_zero_iff: "Abs_Real (realrel `` {(x, x)}) = 0"
- by (simp add: real_zero_def add.commute)
-
-lemma real_mult_inverse_left_ex:
- assumes "x \<noteq> 0" obtains y::real where "y*x = 1"
-proof (cases x)
- case (Abs_Real u v)
- show ?thesis
- proof (cases u v rule: linorder_cases)
- case less
- then have "v * inverse (v - u) = 1 + u * inverse (v - u)"
- using less_add_left [of u v]
- by (metis preal_add_commute preal_add_mult_distrib preal_mult_inverse_right)
- then have "Abs_Real (realrel``{(1, inverse (v-u) + 1)}) * x - 1 = 0"
- by (simp add: Abs_Real real_mult preal_mult_inverse_right real_one_def) (simp add: algebra_simps)
- with that show thesis by auto
- next
- case equal
- then show ?thesis
- using Abs_Real assms real_zero_iff by blast
- next
- case greater
- then have "u * inverse (u - v) = 1 + v * inverse (u - v)"
- using less_add_left [of v u] by (metis add.commute distrib_right preal_mult_inverse_right)
- then have "Abs_Real (realrel``{(inverse (u-v) + 1, 1)}) * x - 1 = 0"
- by (simp add: Abs_Real real_mult preal_mult_inverse_right real_one_def) (simp add: algebra_simps)
- with that show thesis by auto
- qed
-qed
-
-
-lemma real_mult_inverse_left:
- fixes x :: real
- assumes "x \<noteq> 0" shows "inverse x * x = 1"
-proof -
- obtain y where "y*x = 1"
- using assms real_mult_inverse_left_ex by blast
- then have "(THE s. s * x = 1) * x = 1"
- proof (rule theI)
- show "y' = y" if "y' * x = 1" for y'
- by (metis \<open>y * x = 1\<close> mult.left_commute mult.right_neutral that)
- qed
- then show ?thesis
- using assms real_inverse_def by auto
-qed
-
-
-subsection\<open>The Real Numbers form a Field\<close>
-
-instance real :: field
-proof
- fix x y z :: real
- show "x \<noteq> 0 \<Longrightarrow> inverse x * x = 1" by (rule real_mult_inverse_left)
- show "x / y = x * inverse y" by (simp add: real_divide_def)
- show "inverse 0 = (0::real)" by (simp add: real_inverse_def)
-qed
-
-
-subsection\<open>The \<open>\<le>\<close> Ordering\<close>
-
-lemma real_le_refl: "w \<le> (w::real)"
- by (cases w, force simp: real_le_def)
-
-text\<open>The arithmetic decision procedure is not set up for type preal.
- This lemma is currently unused, but it could simplify the proofs of the
- following two lemmas.\<close>
-lemma preal_eq_le_imp_le:
- assumes eq: "a+b = c+d" and le: "c \<le> a"
- shows "b \<le> (d::preal)"
-proof -
- from le have "c+d \<le> a+d" by simp
- hence "a+b \<le> a+d" by (simp add: eq)
- thus "b \<le> d" by simp
-qed
-
-lemma real_le_lemma:
- assumes l: "u1 + v2 \<le> u2 + v1"
- and "x1 + v1 = u1 + y1"
- and "x2 + v2 = u2 + y2"
- shows "x1 + y2 \<le> x2 + (y1::preal)"
-proof -
- have "(x1+v1) + (u2+y2) = (u1+y1) + (x2+v2)" by (simp add: assms)
- hence "(x1+y2) + (u2+v1) = (x2+y1) + (u1+v2)" by (simp add: ac_simps)
- also have "\<dots> \<le> (x2+y1) + (u2+v1)" by (simp add: assms)
- finally show ?thesis by simp
-qed
-
-lemma real_le:
- "Abs_Real(realrel``{(x1,y1)}) \<le> Abs_Real(realrel``{(x2,y2)}) \<longleftrightarrow> x1 + y2 \<le> x2 + y1"
- unfolding real_le_def by (auto intro: real_le_lemma)
-
-lemma real_le_antisym: "\<lbrakk>z \<le> w; w \<le> z\<rbrakk> \<Longrightarrow> z = (w::real)"
- by (cases z, cases w, simp add: real_le)
-
-lemma real_trans_lemma:
- assumes "x + v \<le> u + y"
- and "u + v' \<le> u' + v"
- and "x2 + v2 = u2 + y2"
- shows "x + v' \<le> u' + (y::preal)"
-proof -
- have "(x+v') + (u+v) = (x+v) + (u+v')" by (simp add: ac_simps)
- also have "\<dots> \<le> (u+y) + (u+v')" by (simp add: assms)
- also have "\<dots> \<le> (u+y) + (u'+v)" by (simp add: assms)
- also have "\<dots> = (u'+y) + (u+v)" by (simp add: ac_simps)
- finally show ?thesis by simp
-qed
-
-lemma real_le_trans: "\<lbrakk>i \<le> j; j \<le> k\<rbrakk> \<Longrightarrow> i \<le> (k::real)"
- by (cases i, cases j, cases k) (auto simp: real_le intro: real_trans_lemma)
-
-instance real :: order
-proof
- show "u < v \<longleftrightarrow> u \<le> v \<and> \<not> v \<le> u" for u v::real
- by (auto simp: real_less_def intro: real_le_antisym)
-qed (auto intro: real_le_refl real_le_trans real_le_antisym)
-
-instance real :: linorder
-proof
- show "x \<le> y \<or> y \<le> x" for x y :: real
- by (meson eq_refl le_cases real_le_def)
-qed
-
-instantiation real :: distrib_lattice
-begin
-
-definition
- "(inf :: real \<Rightarrow> real \<Rightarrow> real) = min"
-
-definition
- "(sup :: real \<Rightarrow> real \<Rightarrow> real) = max"
-
-instance
- by standard (auto simp: inf_real_def sup_real_def max_min_distrib2)
-
-end
-
-subsection\<open>The Reals Form an Ordered Field\<close>
-
-lemma real_le_eq_diff: "(x \<le> y) \<longleftrightarrow> (x-y \<le> (0::real))"
- by (cases x, cases y) (simp add: real_le real_zero_def real_diff_def real_add real_minus preal_add_commute)
-
-lemma real_add_left_mono:
- assumes le: "x \<le> y" shows "z + x \<le> z + (y::real)"
-proof -
- have "z + x - (z + y) = (z + -z) + (x - y)"
- by (simp add: algebra_simps)
- with le show ?thesis
- by (simp add: real_le_eq_diff[of x] real_le_eq_diff[of "z+x"])
-qed
-
-lemma real_sum_gt_zero_less: "(0 < s + (-w::real)) \<Longrightarrow> (w < s)"
- by (simp add: linorder_not_le [symmetric] real_le_eq_diff [of s])
-
-lemma real_less_sum_gt_zero: "(w < s) \<Longrightarrow> (0 < s + (-w::real))"
- by (simp add: linorder_not_le [symmetric] real_le_eq_diff [of s])
-
-lemma real_mult_order:
- fixes x y::real
- assumes "0 < x" "0 < y"
- shows "0 < x * y"
- proof (cases x, cases y)
- show "0 < x * y"
- if x: "x = Abs_Real (Dedekind_Real.realrel `` {(x1, x2)})"
- and y: "y = Abs_Real (Dedekind_Real.realrel `` {(y1, y2)})"
- for x1 x2 y1 y2
- proof -
- have "x2 < x1" "y2 < y1"
- using assms not_le real_zero_def real_le x y
- by (metis preal_add_le_cancel_left real_zero_iff)+
- then obtain xd yd where "x1 = x2 + xd" "y1 = y2 + yd"
- using less_add_left by metis
- then have "\<not> (x * y \<le> 0)"
- apply (simp add: x y real_mult real_zero_def real_le)
- apply (simp add: not_le algebra_simps preal_self_less_add_left)
- done
- then show ?thesis
- by auto
- qed
-qed
-
-lemma real_mult_less_mono2: "\<lbrakk>(0::real) < z; x < y\<rbrakk> \<Longrightarrow> z * x < z * y"
- by (metis add_uminus_conv_diff real_less_sum_gt_zero real_mult_order real_sum_gt_zero_less right_diff_distrib')
-
-
-instance real :: linordered_field
-proof
- fix x y z :: real
- show "x \<le> y \<Longrightarrow> z + x \<le> z + y" by (rule real_add_left_mono)
- show "\<bar>x\<bar> = (if x < 0 then -x else x)" by (simp only: real_abs_def)
- show "sgn x = (if x=0 then 0 else if 0<x then 1 else - 1)"
- by (simp only: real_sgn_def)
- show "z * x < z * y" if "x < y" "0 < z"
- by (simp add: real_mult_less_mono2 that)
-qed
-
-
-subsection \<open>Completeness of the reals\<close>
-
-text\<open>The function \<^term>\<open>real_of_preal\<close> requires many proofs, but it seems
-to be essential for proving completeness of the reals from that of the
-positive reals.\<close>
-
-lemma real_of_preal_add:
- "real_of_preal ((x::preal) + y) = real_of_preal x + real_of_preal y"
- by (simp add: real_of_preal_def real_add algebra_simps)
-
-lemma real_of_preal_mult:
- "real_of_preal ((x::preal) * y) = real_of_preal x * real_of_preal y"
- by (simp add: real_of_preal_def real_mult algebra_simps)
-
-text\<open>Gleason prop 9-4.4 p 127\<close>
-lemma real_of_preal_trichotomy:
- "\<exists>m. (x::real) = real_of_preal m \<or> x = 0 \<or> x = -(real_of_preal m)"
-proof (cases x)
- case (Abs_Real u v)
- show ?thesis
- proof (cases u v rule: linorder_cases)
- case less
- then show ?thesis
- using less_add_left
- apply (simp add: Abs_Real real_of_preal_def real_minus real_zero_def)
- by (metis preal_add_assoc preal_add_commute)
- next
- case equal
- then show ?thesis
- using Abs_Real real_zero_iff by blast
- next
- case greater
- then show ?thesis
- using less_add_left
- apply (simp add: Abs_Real real_of_preal_def real_minus real_zero_def)
- by (metis preal_add_assoc preal_add_commute)
- qed
-qed
-
-lemma real_of_preal_less_iff [simp]:
- "(real_of_preal m1 < real_of_preal m2) = (m1 < m2)"
- by (metis not_less preal_add_less_cancel_right real_le real_of_preal_def)
-
-lemma real_of_preal_le_iff [simp]:
- "(real_of_preal m1 \<le> real_of_preal m2) = (m1 \<le> m2)"
- by (simp add: linorder_not_less [symmetric])
-
-lemma real_of_preal_zero_less [simp]: "0 < real_of_preal m"
- by (metis less_add_same_cancel2 preal_self_less_add_left real_of_preal_add real_of_preal_less_iff)
-
-
-subsection\<open>Theorems About the Ordering\<close>
-
-lemma real_gt_zero_preal_Ex: "(0 < x) \<longleftrightarrow> (\<exists>y. x = real_of_preal y)"
- using order.asym real_of_preal_trichotomy by fastforce
-
-subsection \<open>Completeness of Positive Reals\<close>
-
-text \<open>
- Supremum property for the set of positive reals
-
- Let \<open>P\<close> be a non-empty set of positive reals, with an upper
- bound \<open>y\<close>. Then \<open>P\<close> has a least upper bound
- (written \<open>S\<close>).
-
- FIXME: Can the premise be weakened to \<open>\<forall>x \<in> P. x\<le> y\<close>?
-\<close>
-
-lemma posreal_complete:
- assumes positive_P: "\<forall>x \<in> P. (0::real) < x"
- and not_empty_P: "\<exists>x. x \<in> P"
- and upper_bound_Ex: "\<exists>y. \<forall>x \<in> P. x<y"
- shows "\<exists>s. \<forall>y. (\<exists>x \<in> P. y < x) = (y < s)"
-proof (rule exI, rule allI)
- fix y
- let ?pP = "{w. real_of_preal w \<in> P}"
-
- show "(\<exists>x\<in>P. y < x) = (y < real_of_preal (psup ?pP))"
- proof (cases "0 < y")
- assume neg_y: "\<not> 0 < y"
- show ?thesis
- proof
- assume "\<exists>x\<in>P. y < x"
- thus "y < real_of_preal (psup ?pP)"
- by (metis dual_order.strict_trans neg_y not_less_iff_gr_or_eq real_of_preal_zero_less)
- next
- assume "y < real_of_preal (psup ?pP)"
- obtain "x" where x_in_P: "x \<in> P" using not_empty_P ..
- thus "\<exists>x \<in> P. y < x" using x_in_P
- using neg_y not_less_iff_gr_or_eq positive_P by fastforce
- qed
- next
- assume pos_y: "0 < y"
- then obtain py where y_is_py: "y = real_of_preal py"
- by (auto simp: real_gt_zero_preal_Ex)
-
- obtain a where "a \<in> P" using not_empty_P ..
- with positive_P have a_pos: "0 < a" ..
- then obtain pa where "a = real_of_preal pa"
- by (auto simp: real_gt_zero_preal_Ex)
- hence "pa \<in> ?pP" using \<open>a \<in> P\<close> by auto
- hence pP_not_empty: "?pP \<noteq> {}" by auto
-
- obtain sup where sup: "\<forall>x \<in> P. x < sup"
- using upper_bound_Ex ..
- from this and \<open>a \<in> P\<close> have "a < sup" ..
- hence "0 < sup" using a_pos by arith
- then obtain possup where "sup = real_of_preal possup"
- by (auto simp: real_gt_zero_preal_Ex)
- hence "\<forall>X \<in> ?pP. X \<le> possup"
- using sup by auto
- with pP_not_empty have psup: "\<And>Z. (\<exists>X \<in> ?pP. Z < X) = (Z < psup ?pP)"
- by (meson preal_complete)
- show ?thesis
- proof
- assume "\<exists>x \<in> P. y < x"
- then obtain x where x_in_P: "x \<in> P" and y_less_x: "y < x" ..
- hence "0 < x" using pos_y by arith
- then obtain px where x_is_px: "x = real_of_preal px"
- by (auto simp: real_gt_zero_preal_Ex)
-
- have py_less_X: "\<exists>X \<in> ?pP. py < X"
- proof
- show "py < px" using y_is_py and x_is_px and y_less_x
- by simp
- show "px \<in> ?pP" using x_in_P and x_is_px by simp
- qed
-
- have "(\<exists>X \<in> ?pP. py < X) \<Longrightarrow> (py < psup ?pP)"
- using psup by simp
- hence "py < psup ?pP" using py_less_X by simp
- thus "y < real_of_preal (psup {w. real_of_preal w \<in> P})"
- using y_is_py and pos_y by simp
- next
- assume y_less_psup: "y < real_of_preal (psup ?pP)"
-
- hence "py < psup ?pP" using y_is_py
- by simp
- then obtain "X" where py_less_X: "py < X" and X_in_pP: "X \<in> ?pP"
- using psup by auto
- then obtain x where x_is_X: "x = real_of_preal X"
- by (simp add: real_gt_zero_preal_Ex)
- hence "y < x" using py_less_X and y_is_py
- by simp
- moreover have "x \<in> P"
- using x_is_X and X_in_pP by simp
- ultimately show "\<exists> x \<in> P. y < x" ..
- qed
- qed
-qed
-
-
-subsection \<open>Completeness\<close>
-
-lemma reals_complete:
- fixes S :: "real set"
- assumes notempty_S: "\<exists>X. X \<in> S"
- and exists_Ub: "bdd_above S"
- shows "\<exists>x. (\<forall>s\<in>S. s \<le> x) \<and> (\<forall>y. (\<forall>s\<in>S. s \<le> y) \<longrightarrow> x \<le> y)"
-proof -
- obtain X where X_in_S: "X \<in> S" using notempty_S ..
- obtain Y where Y_isUb: "\<forall>s\<in>S. s \<le> Y"
- using exists_Ub by (auto simp: bdd_above_def)
- let ?SHIFT = "{z. \<exists>x \<in>S. z = x + (-X) + 1} \<inter> {x. 0 < x}"
-
- {
- fix x
- assume S_le_x: "\<forall>s\<in>S. s \<le> x"
- {
- fix s
- assume "s \<in> {z. \<exists>x\<in>S. z = x + - X + 1}"
- hence "\<exists> x \<in> S. s = x + -X + 1" ..
- then obtain x1 where x1: "x1 \<in> S" "s = x1 + (-X) + 1" ..
- then have "x1 \<le> x" using S_le_x by simp
- with x1 have "s \<le> x + - X + 1" by arith
- }
- then have "\<forall>s\<in>?SHIFT. s \<le> x + (-X) + 1"
- by auto
- } note S_Ub_is_SHIFT_Ub = this
-
- have *: "\<forall>s\<in>?SHIFT. s \<le> Y + (-X) + 1" using Y_isUb by (rule S_Ub_is_SHIFT_Ub)
- have "\<forall>s\<in>?SHIFT. s < Y + (-X) + 2"
- proof
- fix s assume "s\<in>?SHIFT"
- with * have "s \<le> Y + (-X) + 1" by simp
- also have "\<dots> < Y + (-X) + 2" by simp
- finally show "s < Y + (-X) + 2" .
- qed
- moreover have "\<forall>y \<in> ?SHIFT. 0 < y" by auto
- moreover have shifted_not_empty: "\<exists>u. u \<in> ?SHIFT"
- using X_in_S and Y_isUb by auto
- ultimately obtain t where t_is_Lub: "\<forall>y. (\<exists>x\<in>?SHIFT. y < x) = (y < t)"
- using posreal_complete [of ?SHIFT] unfolding bdd_above_def by blast
-
- show ?thesis
- proof
- show "(\<forall>s\<in>S. s \<le> (t + X + (-1))) \<and> (\<forall>y. (\<forall>s\<in>S. s \<le> y) \<longrightarrow> (t + X + (-1)) \<le> y)"
- proof safe
- fix x
- assume "\<forall>s\<in>S. s \<le> x"
- hence "\<forall>s\<in>?SHIFT. s \<le> x + (-X) + 1"
- using S_Ub_is_SHIFT_Ub by simp
- then have "\<not> x + (-X) + 1 < t"
- by (subst t_is_Lub[rule_format, symmetric]) (simp add: not_less)
- thus "t + X + -1 \<le> x" by arith
- next
- fix y
- assume y_in_S: "y \<in> S"
- obtain "u" where u_in_shift: "u \<in> ?SHIFT" using shifted_not_empty ..
- hence "\<exists> x \<in> S. u = x + - X + 1" by simp
- then obtain "x" where x_and_u: "u = x + - X + 1" ..
- have u_le_t: "u \<le> t"
- proof (rule dense_le)
- fix x assume "x < u" then have "x < t"
- using u_in_shift t_is_Lub by auto
- then show "x \<le> t" by simp
- qed
-
- show "y \<le> t + X + -1"
- proof cases
- assume "y \<le> x"
- moreover have "x = u + X + - 1" using x_and_u by arith
- moreover have "u + X + - 1 \<le> t + X + -1" using u_le_t by arith
- ultimately show "y \<le> t + X + -1" by arith
- next
- assume "~(y \<le> x)"
- hence x_less_y: "x < y" by arith
-
- have "x + (-X) + 1 \<in> ?SHIFT" using x_and_u and u_in_shift by simp
- hence "0 < x + (-X) + 1" by simp
- hence "0 < y + (-X) + 1" using x_less_y by arith
- hence *: "y + (-X) + 1 \<in> ?SHIFT" using y_in_S by simp
- have "y + (-X) + 1 \<le> t"
- proof (rule dense_le)
- fix x assume "x < y + (-X) + 1" then have "x < t"
- using * t_is_Lub by auto
- then show "x \<le> t" by simp
- qed
- thus ?thesis by simp
- qed
- qed
- qed
-qed
-
-subsection \<open>The Archimedean Property of the Reals\<close>
-
-theorem reals_Archimedean:
- fixes x :: real
- assumes x_pos: "0 < x"
- shows "\<exists>n. inverse (of_nat (Suc n)) < x"
-proof (rule ccontr)
- assume contr: "\<not> ?thesis"
- have "\<forall>n. x * of_nat (Suc n) \<le> 1"
- proof
- fix n
- from contr have "x \<le> inverse (of_nat (Suc n))"
- by (simp add: linorder_not_less)
- hence "x \<le> (1 / (of_nat (Suc n)))"
- by (simp add: inverse_eq_divide)
- moreover have "(0::real) \<le> of_nat (Suc n)"
- by (rule of_nat_0_le_iff)
- ultimately have "x * of_nat (Suc n) \<le> (1 / of_nat (Suc n)) * of_nat (Suc n)"
- by (rule mult_right_mono)
- thus "x * of_nat (Suc n) \<le> 1" by (simp del: of_nat_Suc)
- qed
- hence 2: "bdd_above {z. \<exists>n. z = x * (of_nat (Suc n))}"
- by (auto intro!: bdd_aboveI[of _ 1])
- have 1: "\<exists>X. X \<in> {z. \<exists>n. z = x* (of_nat (Suc n))}" by auto
- obtain t where
- upper: "\<And>z. z \<in> {z. \<exists>n. z = x * of_nat (Suc n)} \<Longrightarrow> z \<le> t" and
- least: "\<And>y. (\<And>a. a \<in> {z. \<exists>n. z = x * of_nat (Suc n)} \<Longrightarrow> a \<le> y) \<Longrightarrow> t \<le> y"
- using reals_complete[OF 1 2] by auto
-
- have "t \<le> t + - x"
- proof (rule least)
- fix a assume a: "a \<in> {z. \<exists>n. z = x * (of_nat (Suc n))}"
- have "\<forall>n::nat. x * of_nat n \<le> t + - x"
- proof
- fix n
- have "x * of_nat (Suc n) \<le> t"
- by (simp add: upper)
- hence "x * (of_nat n) + x \<le> t"
- by (simp add: distrib_left)
- thus "x * (of_nat n) \<le> t + - x" by arith
- qed hence "\<forall>m. x * of_nat (Suc m) \<le> t + - x" by (simp del: of_nat_Suc)
- with a show "a \<le> t + - x"
- by auto
- qed
- thus False using x_pos by arith
-qed
-
-text \<open>
- There must be other proofs, e.g. \<open>Suc\<close> of the largest
- integer in the cut representing \<open>x\<close>.
-\<close>
-
-lemma reals_Archimedean2: "\<exists>n. (x::real) < of_nat (n::nat)"
-proof cases
- assume "x \<le> 0"
- hence "x < of_nat (1::nat)" by simp
- thus ?thesis ..
-next
- assume "\<not> x \<le> 0"
- hence x_greater_zero: "0 < x" by simp
- hence "0 < inverse x" by simp
- then obtain n where "inverse (of_nat (Suc n)) < inverse x"
- using reals_Archimedean by blast
- hence "inverse (of_nat (Suc n)) * x < inverse x * x"
- using x_greater_zero by (rule mult_strict_right_mono)
- hence "inverse (of_nat (Suc n)) * x < 1"
- using x_greater_zero by simp
- hence "of_nat (Suc n) * (inverse (of_nat (Suc n)) * x) < of_nat (Suc n) * 1"
- by (rule mult_strict_left_mono) (simp del: of_nat_Suc)
- hence "x < of_nat (Suc n)"
- by (simp add: algebra_simps del: of_nat_Suc)
- thus "\<exists>(n::nat). x < of_nat n" ..
-qed
-
-instance real :: archimedean_field
-proof
- fix r :: real
- obtain n :: nat where "r < of_nat n"
- using reals_Archimedean2 ..
- then have "r \<le> of_int (int n)"
- by simp
- then show "\<exists>z. r \<le> of_int z" ..
-qed
-
-end
--- a/src/HOL/ex/Primrec.thy Mon Mar 28 17:16:42 2022 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,323 +0,0 @@
-(* Title: HOL/ex/Primrec.thy
- Author: Lawrence C Paulson, Cambridge University Computer Laboratory
- Copyright 1997 University of Cambridge
-*)
-
-section \<open>Ackermann's Function and the Primitive Recursive Functions\<close>
-
-theory Primrec imports Main begin
-
-text \<open>
- Proof adopted from
-
- Nora Szasz, A Machine Checked Proof that Ackermann's Function is not
- Primitive Recursive, In: Huet \& Plotkin, eds., Logical Environments
- (CUP, 1993), 317-338.
-
- See also E. Mendelson, Introduction to Mathematical Logic. (Van
- Nostrand, 1964), page 250, exercise 11.
- \medskip
-\<close>
-
-
-subsection\<open>Ackermann's Function\<close>
-
-fun ack :: "[nat,nat] \<Rightarrow> nat" where
- "ack 0 n = Suc n"
-| "ack (Suc m) 0 = ack m 1"
-| "ack (Suc m) (Suc n) = ack m (ack (Suc m) n)"
-
-
-text \<open>PROPERTY A 4\<close>
-
-lemma less_ack2 [iff]: "j < ack i j"
- by (induct i j rule: ack.induct) simp_all
-
-
-text \<open>PROPERTY A 5-, the single-step lemma\<close>
-
-lemma ack_less_ack_Suc2 [iff]: "ack i j < ack i (Suc j)"
- by (induct i j rule: ack.induct) simp_all
-
-
-text \<open>PROPERTY A 5, monotonicity for \<open><\<close>\<close>
-
-lemma ack_less_mono2: "j < k \<Longrightarrow> ack i j < ack i k"
- by (simp add: lift_Suc_mono_less)
-
-
-text \<open>PROPERTY A 5', monotonicity for \<open>\<le>\<close>\<close>
-
-lemma ack_le_mono2: "j \<le> k \<Longrightarrow> ack i j \<le> ack i k"
- by (simp add: ack_less_mono2 less_mono_imp_le_mono)
-
-
-text \<open>PROPERTY A 6\<close>
-
-lemma ack2_le_ack1 [iff]: "ack i (Suc j) \<le> ack (Suc i) j"
-proof (induct j)
- case 0 show ?case by simp
-next
- case (Suc j) show ?case
- by (metis Suc ack.simps(3) ack_le_mono2 le_trans less_ack2 less_eq_Suc_le)
-qed
-
-
-text \<open>PROPERTY A 7-, the single-step lemma\<close>
-
-lemma ack_less_ack_Suc1 [iff]: "ack i j < ack (Suc i) j"
- by (blast intro: ack_less_mono2 less_le_trans)
-
-
-text \<open>PROPERTY A 4'? Extra lemma needed for \<^term>\<open>CONSTANT\<close> case, constant functions\<close>
-
-lemma less_ack1 [iff]: "i < ack i j"
-proof (induct i)
- case 0
- then show ?case
- by simp
-next
- case (Suc i)
- then show ?case
- using less_trans_Suc by blast
-qed
-
-
-text \<open>PROPERTY A 8\<close>
-
-lemma ack_1 [simp]: "ack (Suc 0) j = j + 2"
- by (induct j) simp_all
-
-
-text \<open>PROPERTY A 9. The unary \<open>1\<close> and \<open>2\<close> in \<^term>\<open>ack\<close> is essential for the rewriting.\<close>
-
-lemma ack_2 [simp]: "ack (Suc (Suc 0)) j = 2 * j + 3"
- by (induct j) simp_all
-
-text \<open>Added in 2022 just for fun\<close>
-lemma ack_3: "ack (Suc (Suc (Suc 0))) j = 2 ^ (j+3) - 3"
-proof (induct j)
- case 0
- then show ?case by simp
-next
- case (Suc j)
- with less_le_trans show ?case
- by (fastforce simp add: power_add algebra_simps)
-qed
-
-text \<open>PROPERTY A 7, monotonicity for \<open><\<close> [not clear why
- @{thm [source] ack_1} is now needed first!]\<close>
-
-lemma ack_less_mono1_aux: "ack i k < ack (Suc (i +i')) k"
-proof (induct i k rule: ack.induct)
- case (1 n) show ?case
- using less_le_trans by auto
-next
- case (2 m) thus ?case by simp
-next
- case (3 m n) thus ?case
- using ack_less_mono2 less_trans by fastforce
-qed
-
-lemma ack_less_mono1: "i < j \<Longrightarrow> ack i k < ack j k"
- using ack_less_mono1_aux less_iff_Suc_add by auto
-
-
-text \<open>PROPERTY A 7', monotonicity for \<open>\<le>\<close>\<close>
-
-lemma ack_le_mono1: "i \<le> j \<Longrightarrow> ack i k \<le> ack j k"
- using ack_less_mono1 le_eq_less_or_eq by auto
-
-
-text \<open>PROPERTY A 10\<close>
-
-lemma ack_nest_bound: "ack i1 (ack i2 j) < ack (2 + (i1 + i2)) j"
-proof -
- have "ack i1 (ack i2 j) < ack (i1 + i2) (ack (Suc (i1 + i2)) j)"
- by (meson ack_le_mono1 ack_less_mono1 ack_less_mono2 le_add1 le_trans less_add_Suc2 not_less)
- also have "... = ack (Suc (i1 + i2)) (Suc j)"
- by simp
- also have "... \<le> ack (2 + (i1 + i2)) j"
- using ack2_le_ack1 add_2_eq_Suc by presburger
- finally show ?thesis .
-qed
-
-
-
-text \<open>PROPERTY A 11\<close>
-
-lemma ack_add_bound: "ack i1 j + ack i2 j < ack (4 + (i1 + i2)) j"
-proof -
- have "ack i1 j \<le> ack (i1 + i2) j" "ack i2 j \<le> ack (i1 + i2) j"
- by (simp_all add: ack_le_mono1)
- then have "ack i1 j + ack i2 j < ack (Suc (Suc 0)) (ack (i1 + i2) j)"
- by simp
- also have "... < ack (4 + (i1 + i2)) j"
- by (metis ack_nest_bound add.assoc numeral_2_eq_2 numeral_Bit0)
- finally show ?thesis .
-qed
-
-
-text \<open>PROPERTY A 12. Article uses existential quantifier but the ALF proof
- used \<open>k + 4\<close>. Quantified version must be nested \<open>\<exists>k'. \<forall>i j. ...\<close>\<close>
-
-lemma ack_add_bound2:
- assumes "i < ack k j" shows "i + j < ack (4 + k) j"
-proof -
- have "i + j < ack k j + ack 0 j"
- using assms by auto
- also have "... < ack (4 + k) j"
- by (metis ack_add_bound add.right_neutral)
- finally show ?thesis .
-qed
-
-
-subsection\<open>Primitive Recursive Functions\<close>
-
-primrec hd0 :: "nat list \<Rightarrow> nat" where
- "hd0 [] = 0"
-| "hd0 (m # ms) = m"
-
-
-text \<open>Inductive definition of the set of primitive recursive functions of type \<^typ>\<open>nat list \<Rightarrow> nat\<close>.\<close>
-
-definition SC :: "nat list \<Rightarrow> nat"
- where "SC l = Suc (hd0 l)"
-
-definition CONSTANT :: "nat \<Rightarrow> nat list \<Rightarrow> nat"
- where "CONSTANT k l = k"
-
-definition PROJ :: "nat \<Rightarrow> nat list \<Rightarrow> nat"
- where "PROJ i l = hd0 (drop i l)"
-
-definition COMP :: "[nat list \<Rightarrow> nat, (nat list \<Rightarrow> nat) list, nat list] \<Rightarrow> nat"
- where "COMP g fs l = g (map (\<lambda>f. f l) fs)"
-
-fun PREC :: "[nat list \<Rightarrow> nat, nat list \<Rightarrow> nat, nat list] \<Rightarrow> nat"
- where
- "PREC f g [] = 0"
- | "PREC f g (x # l) = rec_nat (f l) (\<lambda>y r. g (r # y # l)) x"
- \<comment> \<open>Note that \<^term>\<open>g\<close> is applied first to \<^term>\<open>PREC f g y\<close> and then to \<^term>\<open>y\<close>!\<close>
-
-inductive PRIMREC :: "(nat list \<Rightarrow> nat) \<Rightarrow> bool" where
- SC: "PRIMREC SC"
-| CONSTANT: "PRIMREC (CONSTANT k)"
-| PROJ: "PRIMREC (PROJ i)"
-| COMP: "PRIMREC g \<Longrightarrow> \<forall>f \<in> set fs. PRIMREC f \<Longrightarrow> PRIMREC (COMP g fs)"
-| PREC: "PRIMREC f \<Longrightarrow> PRIMREC g \<Longrightarrow> PRIMREC (PREC f g)"
-
-
-text \<open>Useful special cases of evaluation\<close>
-
-lemma SC [simp]: "SC (x # l) = Suc x"
- by (simp add: SC_def)
-
-lemma PROJ_0 [simp]: "PROJ 0 (x # l) = x"
- by (simp add: PROJ_def)
-
-lemma COMP_1 [simp]: "COMP g [f] l = g [f l]"
- by (simp add: COMP_def)
-
-lemma PREC_0: "PREC f g (0 # l) = f l"
- by simp
-
-lemma PREC_Suc [simp]: "PREC f g (Suc x # l) = g (PREC f g (x # l) # x # l)"
- by auto
-
-
-subsection \<open>MAIN RESULT\<close>
-
-lemma SC_case: "SC l < ack 1 (sum_list l)"
- unfolding SC_def
- by (induct l) (simp_all add: le_add1 le_imp_less_Suc)
-
-lemma CONSTANT_case: "CONSTANT k l < ack k (sum_list l)"
- by (simp add: CONSTANT_def)
-
-lemma PROJ_case: "PROJ i l < ack 0 (sum_list l)"
- unfolding PROJ_def
-proof (induct l arbitrary: i)
- case Nil
- then show ?case
- by simp
-next
- case (Cons a l)
- then show ?case
- by (metis ack.simps(1) add.commute drop_Cons' hd0.simps(2) leD leI lessI not_less_eq sum_list.Cons trans_le_add2)
-qed
-
-
-text \<open>\<^term>\<open>COMP\<close> case\<close>
-
-lemma COMP_map_aux: "\<forall>f \<in> set fs. PRIMREC f \<and> (\<exists>kf. \<forall>l. f l < ack kf (sum_list l))
- \<Longrightarrow> \<exists>k. \<forall>l. sum_list (map (\<lambda>f. f l) fs) < ack k (sum_list l)"
-proof (induct fs)
- case Nil
- then show ?case
- by auto
-next
- case (Cons a fs)
- then show ?case
- by simp (blast intro: add_less_mono ack_add_bound less_trans)
-qed
-
-lemma COMP_case:
- assumes 1: "\<forall>l. g l < ack kg (sum_list l)"
- and 2: "\<forall>f \<in> set fs. PRIMREC f \<and> (\<exists>kf. \<forall>l. f l < ack kf (sum_list l))"
- shows "\<exists>k. \<forall>l. COMP g fs l < ack k (sum_list l)"
- unfolding COMP_def
- using 1 COMP_map_aux [OF 2] by (meson ack_less_mono2 ack_nest_bound less_trans)
-
-text \<open>\<^term>\<open>PREC\<close> case\<close>
-
-lemma PREC_case_aux:
- assumes f: "\<And>l. f l + sum_list l < ack kf (sum_list l)"
- and g: "\<And>l. g l + sum_list l < ack kg (sum_list l)"
- shows "PREC f g l + sum_list l < ack (Suc (kf + kg)) (sum_list l)"
-proof (cases l)
- case Nil
- then show ?thesis
- by (simp add: Suc_lessD)
-next
- case (Cons m l)
- have "rec_nat (f l) (\<lambda>y r. g (r # y # l)) m + (m + sum_list l) < ack (Suc (kf + kg)) (m + sum_list l)"
- proof (induct m)
- case 0
- then show ?case
- using ack_less_mono1_aux f less_trans by fastforce
- next
- case (Suc m)
- let ?r = "rec_nat (f l) (\<lambda>y r. g (r # y # l)) m"
- have "\<not> g (?r # m # l) + sum_list (?r # m # l) < g (?r # m # l) + (m + sum_list l)"
- by force
- then have "g (?r # m # l) + (m + sum_list l) < ack kg (sum_list (?r # m # l))"
- by (meson assms(2) leI less_le_trans)
- moreover
- have "... < ack (kf + kg) (ack (Suc (kf + kg)) (m + sum_list l))"
- using Suc.hyps by simp (meson ack_le_mono1 ack_less_mono2 le_add2 le_less_trans)
- ultimately show ?case
- by auto
- qed
- then show ?thesis
- by (simp add: local.Cons)
-qed
-
-proposition PREC_case:
- "\<lbrakk>\<And>l. f l < ack kf (sum_list l); \<And>l. g l < ack kg (sum_list l)\<rbrakk>
- \<Longrightarrow> \<exists>k. \<forall>l. PREC f g l < ack k (sum_list l)"
- by (metis le_less_trans [OF le_add1 PREC_case_aux] ack_add_bound2)
-
-lemma ack_bounds_PRIMREC: "PRIMREC f \<Longrightarrow> \<exists>k. \<forall>l. f l < ack k (sum_list l)"
- by (erule PRIMREC.induct) (blast intro: SC_case CONSTANT_case PROJ_case COMP_case PREC_case)+
-
-theorem ack_not_PRIMREC:
- "\<not> PRIMREC (\<lambda>l. case l of [] \<Rightarrow> 0 | x # l' \<Rightarrow> ack x x)"
-proof
- assume *: "PRIMREC (\<lambda>l. case l of [] \<Rightarrow> 0 | x # l' \<Rightarrow> ack x x)"
- then obtain m where m: "\<And>l. (case l of [] \<Rightarrow> 0 | x # l' \<Rightarrow> ack x x) < ack m (sum_list l)"
- using ack_bounds_PRIMREC by metis
- show False
- using m [of "[m]"] by simp
-qed
-
-end
--- a/src/Pure/Admin/build_release.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Pure/Admin/build_release.scala Tue Mar 29 12:55:25 2022 +0200
@@ -316,7 +316,7 @@
-classpath """" + classpath.map(p => "$ISABELLE_HOME/" + p.implode).mkString(":") + """" \
"-splash:$ISABELLE_HOME/lib/logo/isabelle.gif" \
""" + (if (dock_icon) """"-Xdock:icon=$ISABELLE_HOME/lib/logo/isabelle_transparent-128.png" \
-""" else "") + """isabelle.jedit.Main "$@"
+""" else "") + """isabelle.jedit.JEdit_Main "$@"
"""
val script_path = isabelle_target + Path.explode("lib/scripts/Isabelle_app")
File.write(script_path, script)
--- a/src/Pure/General/path.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Pure/General/path.scala Tue Mar 29 12:55:25 2022 +0200
@@ -235,6 +235,7 @@
def log: Path = ext("log")
def orig: Path = ext("orig")
def patch: Path = ext("patch")
+ def shasum: Path = ext("shasum")
def backup: Path =
{
--- a/src/Pure/General/sha1.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Pure/General/sha1.scala Tue Mar 29 12:55:25 2022 +0200
@@ -1,7 +1,7 @@
/* Title: Pure/General/sha1.scala
Author: Makarius
-Digest strings according to SHA-1 (see RFC 3174).
+SHA-1 message digest according to RFC 3174.
*/
package isabelle
@@ -10,64 +10,48 @@
import java.io.{File => JFile, FileInputStream}
import java.security.MessageDigest
+import isabelle.setup.{Build => Setup_Build}
+
object SHA1
{
- final class Digest private[SHA1](val rep: String)
+ final class Digest private[SHA1](rep: String)
{
+ override def toString: String = rep
override def hashCode: Int = rep.hashCode
override def equals(that: Any): Boolean =
that match {
- case other: Digest => rep == other.rep
+ case other: Digest => rep == other.toString
case _ => false
}
- override def toString: String = rep
+ def shasum(name: String): String = rep + " " + name
}
- private def make_result(digest: MessageDigest): Digest =
+ def fake_digest(rep: String): Digest = new Digest(rep)
+
+ def make_digest(body: MessageDigest => Unit): Digest =
{
- val result = new StringBuilder
- for (b <- digest.digest()) {
- val i = b.asInstanceOf[Int] & 0xFF
- if (i < 16) result += '0'
- result ++= Integer.toHexString(i)
- }
- new Digest(result.toString)
+ val digest_body = new Setup_Build.Digest_Body { def apply(sha: MessageDigest): Unit = body(sha)}
+ new Digest(Setup_Build.make_digest(digest_body))
}
- def fake(rep: String): Digest = new Digest(rep)
-
def digest(file: JFile): Digest =
- {
- val digest = MessageDigest.getInstance("SHA")
-
- using(new FileInputStream(file))(stream =>
- {
- val buf = new Array[Byte](65536)
- var m = 0
- do {
- m = stream.read(buf, 0, buf.length)
- if (m != -1) digest.update(buf, 0, m)
- } while (m != -1)
- })
-
- make_result(digest)
- }
+ make_digest(sha => using(new FileInputStream(file))(stream =>
+ {
+ val buf = new Array[Byte](65536)
+ var m = 0
+ do {
+ m = stream.read(buf, 0, buf.length)
+ if (m != -1) sha.update(buf, 0, m)
+ } while (m != -1)
+ }))
def digest(path: Path): Digest = digest(path.file)
-
- def digest(bytes: Array[Byte]): Digest =
- {
- val digest = MessageDigest.getInstance("SHA")
- digest.update(bytes)
-
- make_result(digest)
- }
-
+ def digest(bytes: Array[Byte]): Digest = make_digest(_.update(bytes))
def digest(bytes: Bytes): Digest = bytes.sha1_digest
def digest(string: String): Digest = digest(Bytes(string))
def digest_set(digests: List[Digest]): Digest =
digest(cat_lines(digests.map(_.toString).sorted))
- val digest_length: Int = digest("").rep.length
+ val digest_length: Int = digest("").toString.length
}
--- a/src/Pure/Isar/code.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Pure/Isar/code.ML Tue Mar 29 12:55:25 2022 +0200
@@ -113,7 +113,7 @@
fun devarify ty =
let
- val tys = fold_atyps (fn TVar vi_sort => AList.update (op =) vi_sort) ty [];
+ val tys = build (fold_atyps (fn TVar vi_sort => AList.update (op =) vi_sort) ty);
val vs = Name.invent Name.context Name.aT (length tys);
val mapping = map2 (fn v => fn (vi, sort) => (vi, TFree (v, sort))) vs tys;
in Term.typ_subst_TVars mapping ty end;
@@ -795,7 +795,7 @@
fun desymbolize_tvars thy thms =
let
- val tvs = fold (Term.add_tvars o Thm.prop_of) thms [];
+ val tvs = build (fold (Term.add_tvars o Thm.prop_of) thms);
val instT =
mk_desymbolization (unprefix "'") (prefix "'") (Thm.global_ctyp_of thy o TVar) tvs;
in map (Thm.instantiate (TVars.make instT, Vars.empty)) thms end;
@@ -963,8 +963,8 @@
^ string_of_const thy c ^ "\n" ^ Thm.string_of_thm_global thy thm)) thms;
val tvars_of = build_rev o Term.add_tvarsT;
val vss = map (tvars_of o snd o head_eqn) thms;
- fun inter_sorts vs =
- fold (curry (Sorts.inter_sort (Sign.classes_of thy)) o snd) vs [];
+ val inter_sorts =
+ build o fold (curry (Sorts.inter_sort (Sign.classes_of thy)) o snd);
val sorts = map_transpose inter_sorts vss;
val vts = Name.invent_names Name.context Name.aT sorts;
fun instantiate vs =
@@ -1046,7 +1046,7 @@
val equations = if null propers then [] else
Thm.prop_of cert_thm
|> Logic.dest_conjunction_balanced (length propers);
- in (vs, fold (add_rhss_of_eqn thy) equations []) end
+ in (vs, build (fold (add_rhss_of_eqn thy) equations)) end
| typargs_deps_of_cert thy (Projection (t, _)) =
(fst (typscheme_projection thy t), add_rhss_of_eqn thy t [])
| typargs_deps_of_cert thy (Abstract (abs_thm, tyco)) =
@@ -1168,7 +1168,7 @@
in (param, co) end;
fun analyze_cases cases =
let
- val co_list = fold (AList.update (op =) o dest_case) cases [];
+ val co_list = build (fold (AList.update (op =) o dest_case) cases);
in map (AList.lookup (op =) co_list) params end;
fun analyze_let t =
let
--- a/src/Pure/ROOT.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Pure/ROOT.scala Tue Mar 29 12:55:25 2022 +0200
@@ -18,6 +18,7 @@
val quote = Library.quote _
val commas = Library.commas _
val commas_quote = Library.commas_quote _
+ val proper_bool = Library.proper_bool _
val proper_string = Library.proper_string _
def proper_list[A](list: List[A]): Option[List[A]] = Library.proper_list(list)
}
--- a/src/Pure/System/components.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Pure/System/components.scala Tue Mar 29 12:55:25 2022 +0200
@@ -124,26 +124,26 @@
val components_sha1: Path = Path.explode("~~/Admin/components/components.sha1")
- sealed case class SHA1_Digest(sha1: String, file_name: String)
+ sealed case class SHA1_Digest(digest: SHA1.Digest, name: String)
{
- override def toString: String = sha1 + " " + file_name
+ override def toString: String = digest.shasum(name)
}
def read_components_sha1(lines: List[String] = Nil): List[SHA1_Digest] =
(proper_list(lines) getOrElse split_lines(File.read(components_sha1))).flatMap(line =>
Word.explode(line) match {
case Nil => None
- case List(sha1, name) => Some(SHA1_Digest(sha1, name))
+ case List(sha1, name) => Some(SHA1_Digest(SHA1.fake_digest(sha1), name))
case _ => error("Bad components.sha1 entry: " + quote(line))
})
def write_components_sha1(entries: List[SHA1_Digest]): Unit =
- File.write(components_sha1, entries.sortBy(_.file_name).mkString("", "\n", "\n"))
+ File.write(components_sha1, entries.sortBy(_.name).mkString("", "\n", "\n"))
/** manage user components **/
- val components_path = Path.explode("$ISABELLE_HOME_USER/etc/components")
+ val components_path: Path = Path.explode("$ISABELLE_HOME_USER/etc/components")
def read_components(): List[String] =
if (components_path.is_file) Library.trim_split_lines(File.read(components_path))
@@ -301,16 +301,15 @@
val new_entries =
for (archive <- archives)
yield {
- val file_name = archive.file_name
- progress.echo("Digesting local " + file_name)
- val sha1 = SHA1.digest(archive).rep
- SHA1_Digest(sha1, file_name)
+ val name = archive.file_name
+ progress.echo("Digesting local " + name)
+ SHA1_Digest(SHA1.digest(archive), name)
}
- val new_names = new_entries.map(_.file_name).toSet
+ val new_names = new_entries.map(_.name).toSet
write_components_sha1(
new_entries :::
- read_components_sha1().filterNot(entry => new_names.contains(entry.file_name)))
+ read_components_sha1().filterNot(entry => new_names.contains(entry.name)))
}
}
--- a/src/Pure/System/isabelle_tool.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Pure/System/isabelle_tool.scala Tue Mar 29 12:55:25 2022 +0200
@@ -210,7 +210,6 @@
Update_Then.isabelle_tool,
Update_Theorems.isabelle_tool,
isabelle.mirabelle.Mirabelle.isabelle_tool,
- isabelle.vscode.TextMate_Grammar.isabelle_tool,
isabelle.vscode.Language_Server.isabelle_tool)
class Admin_Tools extends Isabelle_Scala_Tools(
@@ -237,4 +236,4 @@
isabelle.vscode.Build_VSCode.isabelle_tool,
isabelle.vscode.Build_VSCodium.isabelle_tool1,
isabelle.vscode.Build_VSCodium.isabelle_tool2,
- isabelle.vscode.VSCode_Setup.isabelle_tool)
+ isabelle.vscode.VSCode_Main.isabelle_tool)
--- a/src/Pure/Thy/document_build.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Pure/Thy/document_build.scala Tue Mar 29 12:55:25 2022 +0200
@@ -81,7 +81,7 @@
{
val name = res.string(Data.name)
val sources = res.string(Data.sources)
- Document_Input(name, SHA1.fake(sources))
+ Document_Input(name, SHA1.fake_digest(sources))
}).toList)
}
@@ -96,7 +96,7 @@
val sources = res.string(Data.sources)
val log_xz = res.bytes(Data.log_xz)
val pdf = res.bytes(Data.pdf)
- Some(Document_Output(name, SHA1.fake(sources), log_xz, pdf))
+ Some(Document_Output(name, SHA1.fake_digest(sources), log_xz, pdf))
}
else None
})
--- a/src/Pure/Thy/sessions.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Pure/Thy/sessions.scala Tue Mar 29 12:55:25 2022 +0200
@@ -1013,7 +1013,7 @@
def is_session_dir(dir: Path): Boolean =
(dir + ROOT).is_file || (dir + ROOTS).is_file
- private def check_session_dir(dir: Path): Path =
+ def check_session_dir(dir: Path): Path =
if (is_session_dir(dir)) File.pwd() + dir.expand
else error("Bad session root directory (missing ROOT or ROOTS): " + dir.expand.toString)
@@ -1172,7 +1172,7 @@
def write_heap_digest(heap: Path): String =
read_heap_digest(heap) match {
case None =>
- val s = SHA1.digest(heap).rep
+ val s = SHA1.digest(heap).toString
File.append(heap, sha1_prefix + s)
s
case Some(s) => s
--- a/src/Pure/library.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Pure/library.scala Tue Mar 29 12:55:25 2022 +0200
@@ -280,6 +280,9 @@
/* proper values */
+ def proper_bool(b: Boolean): Option[Boolean] =
+ if (!b) None else Some(b)
+
def proper_string(s: String): Option[String] =
if (s == null || s == "") None else Some(s)
--- a/src/Tools/Code/code_haskell.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/Code/code_haskell.ML Tue Mar 29 12:55:25 2022 +0200
@@ -146,8 +146,7 @@
val vars = reserved
|> intro_base_names_for (is_none o const_syntax)
deresolve (t :: ts)
- |> intro_vars ((fold o Code_Thingol.fold_varnames)
- (insert (op =)) ts []);
+ |> intro_vars (build (fold Code_Thingol.add_varnames ts));
in
semicolon (
(str o deresolve_const) const
--- a/src/Tools/Code/code_ml.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/Code/code_ml.ML Tue Mar 29 12:55:25 2022 +0200
@@ -195,8 +195,7 @@
val vars = reserved
|> intro_base_names_for (is_none o const_syntax)
deresolve (t :: ts)
- |> intro_vars ((fold o Code_Thingol.fold_varnames)
- (insert (op =)) ts []);
+ |> intro_vars (build (fold Code_Thingol.add_varnames ts));
val prolog = if needs_typ then
concat [str definer, (str o deresolve_const) const, str ":", print_typ NOBR ty]
else (concat o map str) [definer, deresolve_const const];
@@ -513,8 +512,7 @@
val vars = reserved
|> intro_base_names_for (is_none o const_syntax)
deresolve (t :: ts)
- |> intro_vars ((fold o Code_Thingol.fold_varnames)
- (insert (op =)) ts []);
+ |> intro_vars (build (fold Code_Thingol.add_varnames ts));
in concat [
(Pretty.block o commas)
(map (print_term is_pseudo_fun some_thm vars NOBR) ts),
@@ -526,8 +524,7 @@
val vars = reserved
|> intro_base_names_for (is_none o const_syntax)
deresolve (t :: ts)
- |> intro_vars ((fold o Code_Thingol.fold_varnames)
- (insert (op =)) ts []);
+ |> intro_vars (build (fold Code_Thingol.add_varnames ts));
in
concat (
(if is_pseudo then [str "()"]
--- a/src/Tools/Code/code_namespace.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/Code/code_namespace.ML Tue Mar 29 12:55:25 2022 +0200
@@ -181,7 +181,7 @@
fun build_module_namespace ctxt enforce_upper { module_prefix, module_name, identifiers, reserved } program =
let
- val module_names = Code_Symbol.Graph.fold (insert (op =) o Code_Symbol.default_prefix ctxt o fst) program [];
+ val module_names = build (Code_Symbol.Graph.fold (insert (op =) o Code_Symbol.default_prefix ctxt o fst) program);
val module_fragments' = module_fragments
{ module_name = module_name, identifiers = identifiers, reserved = reserved };
val adjust_case = if enforce_upper then map (Name.enforce_case true) else I;
--- a/src/Tools/Code/code_preproc.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/Code/code_preproc.ML Tue Mar 29 12:55:25 2022 +0200
@@ -201,7 +201,7 @@
let
val t = Thm.term_of ct;
val vs_original =
- fold_term_types (K (fold_atyps (insert (eq_fst op =) o dest_TFree))) t [];
+ build (fold_term_types (K (fold_atyps (insert (eq_fst op =) o dest_TFree))) t);
val vs_normalized = Name.invent_names Name.context Name.aT (map snd vs_original);
val normalize =
map_type_tfree (TFree o the o AList.lookup (op =) (vs_original ~~ vs_normalized));
--- a/src/Tools/Code/code_printer.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/Code/code_printer.ML Tue Mar 29 12:55:25 2022 +0200
@@ -341,7 +341,7 @@
fun gen_print_bind print_term thm (fxy : fixity) pat vars =
let
- val vs = Code_Thingol.fold_varnames (insert (op =)) pat [];
+ val vs = build (Code_Thingol.add_varnames pat);
val vars' = intro_vars vs vars;
in (print_term thm vars' fxy pat, vars') end;
--- a/src/Tools/Code/code_runtime.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/Code/code_runtime.ML Tue Mar 29 12:55:25 2022 +0200
@@ -302,7 +302,7 @@
Ts
|> cons T
|> fold (fold add_typ o snd) typ_signs;
- val required_Ts = fold add_typ requested_Ts [];
+ val required_Ts = build (fold add_typ requested_Ts);
val of_term_for_typ' = of_term_for_typ required_Ts;
val eval_for_const' = eval_for_const ctxt proper_cTs;
val eval_for_const'' = the_default "_" o Option.map eval_for_const';
--- a/src/Tools/Code/code_scala.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/Code/code_scala.ML Tue Mar 29 12:55:25 2022 +0200
@@ -211,8 +211,8 @@
end
| print_def const (vs, ty) eqs =
let
- val tycos = fold (fn ((ts, t), _) =>
- fold Code_Thingol.add_tyconames (t :: ts)) eqs [];
+ val tycos = build (fold (fn ((ts, t), _) =>
+ fold Code_Thingol.add_tyconames (t :: ts)) eqs);
val tyvars = reserved
|> intro_base_names
(is_none o tyco_syntax) deresolve_tyco tycos
@@ -234,8 +234,8 @@
print_term tyvars false some_thm vars' NOBR t;
fun print_clause (eq as ((ts, _), (some_thm, _))) =
let
- val vars' = intro_vars ((fold o Code_Thingol.fold_varnames)
- (insert (op =)) ts []) vars1;
+ val vars' =
+ intro_vars (build (fold Code_Thingol.add_varnames ts)) vars1;
in
concat [str "case",
tuplify (map (print_term tyvars true some_thm vars' NOBR) ts),
--- a/src/Tools/Code/code_thingol.ML Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/Code/code_thingol.ML Tue Mar 29 12:55:25 2022 +0200
@@ -53,6 +53,7 @@
val split_pat_abs: iterm -> ((iterm * itype) * iterm) option
val unfold_pat_abs: iterm -> (iterm * itype) list * iterm
val unfold_const_app: iterm -> (const * iterm list) option
+ val map_terms_bottom_up: (iterm -> iterm) -> iterm -> iterm
val is_IVar: iterm -> bool
val is_IAbs: iterm -> bool
val eta_expand: int -> const * iterm list -> iterm
@@ -61,6 +62,7 @@
val add_constsyms: iterm -> Code_Symbol.T list -> Code_Symbol.T list
val add_tyconames: iterm -> string list -> string list
val fold_varnames: (string -> 'a -> 'a) -> iterm -> 'a -> 'a
+ val add_varnames: iterm -> string list -> string list
datatype stmt =
NoStmt
@@ -78,7 +80,6 @@
type program = stmt Code_Symbol.Graph.T
val unimplemented: program -> string list
val implemented_deps: program -> string list
- val map_terms_bottom_up: (iterm -> iterm) -> iterm -> iterm
val map_terms_stmt: (iterm -> iterm) -> stmt -> stmt
val is_constr: program -> Code_Symbol.T -> bool
val is_case: stmt -> bool
@@ -233,6 +234,10 @@
fun add_vars t = fold_aux add_vars (insert (op =)) t;
in fold_aux add_vars f end;
+val add_varnames = fold_varnames (insert (op =));
+
+val declare_varnames = fold_varnames Name.declare;
+
fun exists_var t v = fold_varnames (fn w => fn b => v = w orelse b) t false;
fun split_pat_abs ((NONE, ty) `|=> t) = SOME ((IVar NONE, ty), t)
@@ -253,7 +258,7 @@
in (v_ty :: vs_tys, t') end
| unfold_abs_eta tys t =
let
- val ctxt = fold_varnames Name.declare t Name.context;
+ val ctxt = Name.build_context (declare_varnames t);
val vs_tys = (map o apfst) SOME (Name.invent_names ctxt "a" tys);
in (vs_tys, t `$$ map (IVar o fst) vs_tys) end;
@@ -263,11 +268,60 @@
val l = k - j;
val _ = if l > length tys
then error "Impossible eta-expansion" else ();
- val vars = (fold o fold_varnames) Name.declare ts Name.context;
+ val vars = Name.build_context (fold declare_varnames ts);
val vs_tys = (map o apfst) SOME
(Name.invent_names vars "a" ((take l o drop j) tys));
in vs_tys `|==> IConst const `$$ ts @ map (IVar o fst) vs_tys end;
+fun map_terms_bottom_up f (t as IConst _) = f t
+ | map_terms_bottom_up f (t as IVar _) = f t
+ | map_terms_bottom_up f (t1 `$ t2) = f
+ (map_terms_bottom_up f t1 `$ map_terms_bottom_up f t2)
+ | map_terms_bottom_up f ((v, ty) `|=> t) = f
+ ((v, ty) `|=> map_terms_bottom_up f t)
+ | map_terms_bottom_up f (ICase { term = t, typ = ty, clauses = clauses, primitive = t0 }) = f
+ (ICase { term = map_terms_bottom_up f t, typ = ty,
+ clauses = (map o apply2) (map_terms_bottom_up f) clauses,
+ primitive = map_terms_bottom_up f t0 });
+
+fun distill_minimized_clause tys t =
+ let
+ fun restrict_vars_to vs =
+ map_terms_bottom_up (fn IVar (SOME v) =>
+ IVar (if member (op =) vs v then SOME v else NONE) | t => t);
+ fun purge_unused_vars_in t =
+ restrict_vars_to (build (add_varnames t));
+ fun distill' vs_map pat_args v i clauses =
+ let
+ val vs = build (fold add_varnames (nth_drop i pat_args));
+ fun varnames_disjunctive pat =
+ null (inter (op =) vs (build (add_varnames pat)));
+ in
+ if forall (fn (pat', body') => varnames_disjunctive pat'
+ (*prevent mingled scopes resulting in duplicated variables in pattern arguments*)
+ andalso (exists_var pat' v (*reducible if shadowed by pattern*)
+ orelse not (exists_var body' v))) clauses (*reducible if absent in body*)
+ then clauses
+ |> maps (fn (pat', body') =>
+ distill vs_map
+ (nth_map i (K pat') pat_args |> map (purge_unused_vars_in body'))
+ body')
+ |> SOME
+ else NONE
+ end
+ and distill vs_map pat_args
+ (body as ICase { term = IVar (SOME v), clauses = clauses, ... }) =
+ (case AList.lookup (op =) vs_map v
+ of SOME i => distill' (AList.delete (op =) v vs_map) pat_args v i clauses
+ |> the_default [(pat_args, body)]
+ | NONE => [(pat_args, body)])
+ | distill vs_map pat_args body = [(pat_args, body)];
+ val (vTs, body) = unfold_abs_eta tys t;
+ val vs = map fst vTs;
+ val vs_map =
+ build (fold_index (fn (i, SOME v) => cons (v, i) | _ => I) vs);
+ in distill vs_map (map IVar vs) body end;
+
fun exists_dict_var f (Dict (_, d)) = exists_plain_dict_var_pred f d
and exists_plain_dict_var_pred f (Dict_Const (_, dss)) = exists_dictss_var f dss
| exists_plain_dict_var_pred f (Dict_Var x) = f x
@@ -300,25 +354,14 @@
type program = stmt Code_Symbol.Graph.T;
-fun unimplemented program =
- Code_Symbol.Graph.fold (fn (Constant c, (NoStmt, _)) => cons c | _ => I) program [];
+val unimplemented =
+ build o Code_Symbol.Graph.fold (fn (Constant c, (NoStmt, _)) => cons c | _ => I);
fun implemented_deps program =
Code_Symbol.Graph.keys program
|> subtract (op =) (Code_Symbol.Graph.all_preds program (map Constant (unimplemented program)))
|> map_filter (fn Constant c => SOME c | _ => NONE);
-fun map_terms_bottom_up f (t as IConst _) = f t
- | map_terms_bottom_up f (t as IVar _) = f t
- | map_terms_bottom_up f (t1 `$ t2) = f
- (map_terms_bottom_up f t1 `$ map_terms_bottom_up f t2)
- | map_terms_bottom_up f ((v, ty) `|=> t) = f
- ((v, ty) `|=> map_terms_bottom_up f t)
- | map_terms_bottom_up f (ICase { term = t, typ = ty, clauses = clauses, primitive = t0 }) = f
- (ICase { term = map_terms_bottom_up f t, typ = ty,
- clauses = (map o apply2) (map_terms_bottom_up f) clauses,
- primitive = map_terms_bottom_up f t0 });
-
fun map_classparam_instances_as_term f =
(map o apfst o apsnd o apfst) (fn const => case f (IConst const) of IConst const' => const')
@@ -473,6 +516,31 @@
(annotate ctxt' algbr eqngr (c, ty) args rhs, some_abs)))) eqns
end;
+
+(* preprocessing pattern schemas *)
+
+fun preprocess_pattern_schema ctxt (t_pos, case_pats) (c_ty, ts) =
+ let
+ val thy = Proof_Context.theory_of ctxt;
+ val ty = nth (binder_types (snd c_ty)) t_pos;
+ fun select_clauses xs =
+ xs
+ |> nth_drop t_pos
+ |> curry (op ~~) case_pats
+ |> map_filter (fn (NONE, _) => NONE | (SOME _, x) => SOME x);
+ fun mk_constr c t =
+ let
+ val n = Code.args_number thy c;
+ in ((c, (take n o binder_types o fastype_of o untag_term) t ---> ty), n) end;
+ val constrs =
+ if null case_pats then []
+ else map2 mk_constr (case_pats |> map_filter I) (select_clauses ts);
+ val split_clauses =
+ if null case_pats then (fn ts => (nth ts t_pos, nth_drop t_pos ts))
+ else (fn ts => (nth ts t_pos, select_clauses ts));
+ in (ty, constrs, split_clauses) end;
+
+
(* abstract dictionary construction *)
datatype typarg_witness =
@@ -673,74 +741,36 @@
translate_const ctxt algbr eqngr permissive some_thm (c_ty, some_abs)
##>> fold_map (translate_term ctxt algbr eqngr permissive some_thm o rpair NONE) ts
#>> (fn (t, ts) => t `$$ ts)
-and translate_case ctxt algbr eqngr permissive some_thm (num_args, (t_pos, case_pats)) (c_ty, ts) =
+and translate_case ctxt algbr eqngr permissive some_thm pattern_schema (c_ty, ts) =
let
- val thy = Proof_Context.theory_of ctxt;
- fun arg_types num_args ty = fst (chop num_args (binder_types ty));
- val tys = arg_types num_args (snd c_ty);
- val ty = nth tys t_pos;
- fun mk_constr NONE t = NONE
- | mk_constr (SOME c) t =
- let
- val n = Code.args_number thy c;
- in SOME ((c, arg_types n (fastype_of (untag_term t)) ---> ty), n) end;
- val constrs =
- if null case_pats then []
- else map_filter I (map2 mk_constr case_pats (nth_drop t_pos ts));
- fun disjunctive_varnames ts =
- let
- val vs = (fold o fold_varnames) (insert (op =)) ts [];
- in fn pat => null (inter (op =) vs (fold_varnames (insert (op =)) pat [])) end;
- fun purge_unused_vars_in t =
+ val (ty, constrs, split_clauses) =
+ preprocess_pattern_schema ctxt pattern_schema (c_ty, ts);
+ fun is_undefined_clause (_, IConst { sym = Constant c, ... }) =
+ Code.is_undefined (Proof_Context.theory_of ctxt) c
+ | is_undefined_clause _ =
+ false;
+ fun distill_clauses constrs ty ts =
let
- val vs = fold_varnames (insert (op =)) t [];
- in
- map_terms_bottom_up (fn IVar (SOME v) =>
- IVar (if member (op =) vs v then SOME v else NONE) | t => t)
- end;
- fun collapse_clause vs_map ts body =
- case body
- of IConst { sym = Constant c, ... } => if Code.is_undefined thy c
- then []
- else [(ts, body)]
- | ICase { term = IVar (SOME v), clauses = clauses, ... } =>
- if forall (fn (pat', body') => exists_var pat' v
- orelse not (exists_var body' v)) clauses
- andalso forall (disjunctive_varnames ts o fst) clauses
- then case AList.lookup (op =) vs_map v
- of SOME i => maps (fn (pat', body') =>
- collapse_clause (AList.delete (op =) v vs_map)
- (nth_map i (K pat') ts |> map (purge_unused_vars_in body')) body') clauses
- | NONE => [(ts, body)]
- else [(ts, body)]
- | _ => [(ts, body)];
- fun mk_clause mk tys t =
- let
- val (vs, body) = unfold_abs_eta tys t;
- val vs_map = fold_index (fn (i, (SOME v, _)) => cons (v, i) | _ => I) vs [];
- val ts = map (IVar o fst) vs;
- in map mk (collapse_clause vs_map ts body) end;
- fun casify constrs ty t_app ts =
- let
- val t = nth ts t_pos;
- val ts_clause = nth_drop t_pos ts;
- val clauses = if null case_pats
- then mk_clause (fn ([t], body) => (t, body)) [ty] (the_single ts_clause)
+ val (t, ts_clause) = split_clauses ts;
+ val clauses = if null constrs
+ then map (fn ([pat], body) => (pat, body))
+ (distill_minimized_clause [ty] (the_single ts_clause))
else maps (fn ((constr as IConst { dom = tys, ... }, n), t) =>
- mk_clause (fn (ts, body) => (constr `$$ ts, body)) (take n tys) t)
- (constrs ~~ (map_filter (fn (NONE, _) => NONE | (SOME _, t) => SOME t)
- (case_pats ~~ ts_clause)));
- in ICase { term = t, typ = ty, clauses = clauses, primitive = t_app `$$ ts } end;
+ map (fn (pat_args, body) => (constr `$$ pat_args, body))
+ (distill_minimized_clause (take n tys) t))
+ (constrs ~~ ts_clause);
+ in (t, filter_out is_undefined_clause clauses) end;
in
translate_const ctxt algbr eqngr permissive some_thm (c_ty, NONE)
##>> fold_map (fn (constr, n) => translate_const ctxt algbr eqngr permissive some_thm (constr, NONE)
#>> rpair n) constrs
##>> translate_typ ctxt algbr eqngr permissive ty
##>> fold_map (translate_term ctxt algbr eqngr permissive some_thm o rpair NONE) ts
- #>> (fn (((t, constrs), ty), ts) =>
- casify constrs ty t ts)
+ #>> (fn (((t_app, constrs), ty), ts) =>
+ case distill_clauses constrs ty ts of (t, clauses) =>
+ ICase { term = t, typ = ty, clauses = clauses, primitive = t_app `$$ ts })
end
-and translate_app_case ctxt algbr eqngr permissive some_thm (case_schema as (num_args, _)) ((c, ty), ts) =
+and translate_app_case ctxt algbr eqngr permissive some_thm (num_args, pattern_schema) ((c, ty), ts) =
if length ts < num_args then
let
val k = length ts;
@@ -749,15 +779,15 @@
val vs = Name.invent_names names "a" tys;
in
fold_map (translate_typ ctxt algbr eqngr permissive) tys
- ##>> translate_case ctxt algbr eqngr permissive some_thm case_schema ((c, ty), ts @ map Free vs)
+ ##>> translate_case ctxt algbr eqngr permissive some_thm pattern_schema ((c, ty), ts @ map Free vs)
#>> (fn (tys, t) => map2 (fn (v, _) => pair (SOME v)) vs tys `|==> t)
end
else if length ts > num_args then
- translate_case ctxt algbr eqngr permissive some_thm case_schema ((c, ty), take num_args ts)
+ translate_case ctxt algbr eqngr permissive some_thm pattern_schema ((c, ty), take num_args ts)
##>> fold_map (translate_term ctxt algbr eqngr permissive some_thm o rpair NONE) (drop num_args ts)
#>> (fn (t, ts) => t `$$ ts)
else
- translate_case ctxt algbr eqngr permissive some_thm case_schema ((c, ty), ts)
+ translate_case ctxt algbr eqngr permissive some_thm pattern_schema ((c, ty), ts)
and translate_app ctxt algbr eqngr permissive some_thm (c_ty_ts as ((c, _), _), some_abs) =
case Code.get_case_schema (Proof_Context.theory_of ctxt) c
of SOME case_schema => translate_app_case ctxt algbr eqngr permissive some_thm case_schema c_ty_ts
--- a/src/Tools/Setup/src/Build.java Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/Setup/src/Build.java Tue Mar 29 12:55:25 2022 +0200
@@ -8,7 +8,6 @@
import java.io.BufferedOutputStream;
-import java.io.ByteArrayOutputStream;
import java.io.CharArrayWriter;
import java.io.File;
import java.io.IOException;
@@ -44,6 +43,30 @@
public class Build
{
+ /** SHA1 digest **/
+
+ @FunctionalInterface
+ public interface Digest_Body
+ {
+ void apply(MessageDigest sha) throws IOException, InterruptedException;
+ }
+
+ public static String make_digest(Digest_Body body)
+ throws NoSuchAlgorithmException, IOException, InterruptedException
+ {
+ MessageDigest sha = MessageDigest.getInstance("SHA");
+ body.apply(sha);
+ return String.format(Locale.ROOT, "%040x", new BigInteger(1, sha.digest()));
+ }
+
+ public static String make_shasum(String name, Digest_Body body)
+ throws NoSuchAlgorithmException, IOException, InterruptedException
+ {
+ return make_digest(body) + " " + name + "\n";
+ }
+
+
+
/** context **/
public static String BUILD_PROPS = "build.props";
@@ -77,12 +100,6 @@
return List.copyOf(result);
}
- private static String sha_digest(MessageDigest sha, String name)
- {
- String digest = String.format(Locale.ROOT, "%040x", new BigInteger(1, sha.digest()));
- return digest + " " + name + "\n";
- }
-
public static class Context
{
private final Path _dir;
@@ -181,37 +198,37 @@
}
public String shasum(String name, List<Path> paths)
- throws IOException, NoSuchAlgorithmException
+ throws NoSuchAlgorithmException, IOException, InterruptedException
{
- MessageDigest sha = MessageDigest.getInstance("SHA");
- for (Path file : paths) {
- if (Files.isRegularFile(file)) {
- sha.update(Files.readAllBytes(file));
- }
- else {
- throw new RuntimeException(
- error_message("Bad input file " + Library.quote(file.toString())));
- }
- }
- return sha_digest(sha, name);
+ return make_shasum(name, sha ->
+ {
+ for (Path file : paths) {
+ if (Files.isRegularFile(file)) {
+ sha.update(Files.readAllBytes(file));
+ }
+ else {
+ throw new RuntimeException(
+ error_message("Bad input file " + Library.quote(file.toString())));
+ }
+ }
+ });
}
public String shasum(String file)
- throws IOException, NoSuchAlgorithmException, InterruptedException
+ throws NoSuchAlgorithmException, IOException, InterruptedException
{
return shasum(file, List.of(path(file)));
}
public String shasum_props()
- throws NoSuchAlgorithmException
+ throws NoSuchAlgorithmException, IOException, InterruptedException
{
TreeMap<String,Object> sorted = new TreeMap<String,Object>();
for (Object x : _props.entrySet()) {
sorted.put(x.toString(), _props.get(x));
}
- MessageDigest sha = MessageDigest.getInstance("SHA");
- sha.update(sorted.toString().getBytes(StandardCharsets.UTF_8));
- return sha_digest(sha, "<props>");
+ return make_shasum("<props>",
+ sha -> sha.update(sorted.toString().getBytes(StandardCharsets.UTF_8)));
}
}
@@ -423,7 +440,7 @@
/** build **/
public static void build(PrintStream output, Context context, boolean fresh)
- throws IOException, InterruptedException, NoSuchAlgorithmException
+ throws NoSuchAlgorithmException, IOException, InterruptedException
{
String module = context.module_result();
if (!module.isEmpty()) {
@@ -532,7 +549,7 @@
}
public static void build_components(PrintStream output, boolean fresh)
- throws IOException, InterruptedException, NoSuchAlgorithmException
+ throws NoSuchAlgorithmException, IOException, InterruptedException
{
for (Context context : component_contexts()) {
build(output, context, fresh);
--- a/src/Tools/VSCode/etc/settings Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/VSCode/etc/settings Tue Mar 29 12:55:25 2022 +0200
@@ -1,5 +1,5 @@
# -*- shell-script -*- :mode=shellscript:
-ISABELLE_VSCODE_VERSION="1.65.0"
+ISABELLE_VSCODE_VERSION="1.65.2"
ISABELLE_VSCODE_HOME="$ISABELLE_HOME/src/Tools/VSCode"
ISABELLE_VSCODE_SETTINGS="$ISABELLE_HOME_USER/vscode"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Tools/VSCode/extension/MANIFEST Tue Mar 29 12:55:25 2022 +0200
@@ -0,0 +1,39 @@
+isabelle-language.json
+isabelle-ml-grammar.json
+isabelle-ml-language.json
+isabelle.png
+isabelle_vscode.png
+media/main.js
+media/Preview_inverse.svg
+media/PreviewOnRightPane_16x_dark.svg
+media/PreviewOnRightPane_16x.svg
+media/Preview.svg
+media/ViewSource_inverse.svg
+media/ViewSource.svg
+media/vscode.css
+package.json
+README.md
+src/abbreviations.ts
+src/completion.ts
+src/decorations.ts
+src/extension.ts
+src/file.ts
+src/library.ts
+src/lsp.ts
+src/output_view.ts
+src/platform.ts
+src/prefix_tree.ts
+src/preview_panel.ts
+src/script_decorations.ts
+src/state_panel.ts
+src/symbol.ts
+src/vscode_lib.ts
+test/extension.test.ts
+test/index.ts
+tsconfig.json
+.vscodeignore
+.vscode/launch.json
+.vscode/settings.json
+.vscode/tasks.json
+yarn.lock
+.yarnrc
--- a/src/Tools/VSCode/extension/README.md Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/VSCode/extension/README.md Tue Mar 29 12:55:25 2022 +0200
@@ -1,115 +1,39 @@
-# Isabelle Prover IDE support
+# Isabelle/VSCode Prover IDE
+
+## General notes
-This extension connects VSCode to the Isabelle Prover IDE infrastructure: it
-requires a suitable repository version of Isabelle.
-
-The implementation is centered around the VSCode Language Server protocol, but
-with many add-ons that are specific to VSCode and Isabelle/PIDE.
+This is the Isabelle/VSCode extension to connect VSCodium to
+Isabelle/PIDE. The application is invoked via `isabelle vscode` on the
+command-line. It takes care about configuring the extension and user
+settings.
-See also:
-
- * <https://isabelle.sketis.net/repos/isabelle/file/tip/src/Tools/VSCode>
- * <https://github.com/Microsoft/language-server-protocol>
+The implementation is centered around the VSCode Language Server
+Protocol (LSP), but there are many add-ons that are specific to
+Isabelle/PIDE. Moreover, there are important patches to the VSCodium
+code-base itself, e.g. to support the UTF-8-Isabelle encoding for
+mathematical symbols and to incorporate the corresponding Isabelle
+fonts. It is unlikely that this extension will with regular VSCode nor
+with any other LSP-based editor.
-
-## Screenshot
-
-![[Isabelle/VSCode]](https://isabelle.in.tum.de/repos/isabelle/raw-file/b565a39627bb/src/Tools/VSCode/extension/isabelle_vscode.png)
+Isabelle/VSCode works best when opening an Isabelle project directory
+as a "workspace", with explorer access to the sources. Afterwards it
+is possible to edit `.thy` and `.ML` files with semantic checking by
+the prover in the background, similar to Isabelle/jEdit. There is also
+support for other file formats, e.g. `bib` for bibliographic
+databases, which may be combined with a regular VSCode extension for
+LaTeX/BibTeX.
-## Notable Features
-
- * Static syntax tables for Isabelle `.thy` and `.ML` files.
-
- * Implicit dependency management of sources, subject to changes of theory
- files within the editor, as well as external file-system events.
-
- * Implicit formal checking of theory files, using the *cursor position* of the
- active editor panel as indication for relevant spots.
-
- * Text overview lane with formal status of prover commands (unprocessed,
- running, error, warning).
-
- * Prover messages within the source text (errors/warnings and information
- messages).
-
- * Semantic text decorations: colors for free/bound variables, inferred types
- etc.
-
- * Visual indication of formal scopes and hyperlinks for formal entities.
-
- * Implicit proof state output via the VSCode message channel "Isabelle
- Output".
-
- * Explicit proof state output via separate GUI panel (command
- `isabelle.state`).
-
- * HTML preview via separate GUI panel (command `isabelle.preview`).
-
- * Rich completion information: Isabelle symbols (e.g. `\forall` or
- `\<forall>`), outer syntax keywords, formal entities, file-system paths,
- BibTeX entries etc.
-
- * Spell-checking of informal texts, including dictionary operations: via the
- regular completion dialog.
-
-
-## Requirements
-
-### Isabelle/VSCode Installation
-
- * Download a recent Isabelle development snapshot from
- <https://isabelle.sketis.net/devel/release_snapshot>
-
- * Unpack and run the main Isabelle/jEdit application as usual, to ensure that
- the logic image is built properly and Isabelle works as expected.
-
- * Download and install VSCode from <https://code.visualstudio.com>
-
- * Open the VSCode *Extensions* view and install the following:
-
- + *Isabelle* (needs to fit to the underlying Isabelle release).
-
- + *bibtexLanguage* (optional): it gives `.bib` a formal status, thus
- `@{cite}` antiquotations become active for completion and hyperlinks.
-
- * Restart the VSCode application to ensure that all extensions are properly
- initialized and user settings are updated. Afterwards VSCode should know about
- `.thy` files (Isabelle theories) and `.ML` files (Isabelle/ML modules).
-
- The Isabelle extension is initialized when the first Isabelle file is opened.
- It requires a few seconds to start up: a small popup window eventually says
- *"Welcome to Isabelle ..."*.
-
-
-### Further Preferences
-
- * Preferred Color Theme: `Light+ (default light)`
-
- * Alternative Color Theme: `Dark+ (default dark)` – with restrictions: some
- color combinations don't work out properly.
-
- * Recommended changes to default VSCode settings:
-
- ```
- "editor.acceptSuggestionOnEnter": "off",
- "editor.wordBasedSuggestions": true,
- ```
-
-## Known Limitations of Isabelle/VSCode
-
- * Isabelle symbol abbreviations like "-->" are not accepted by VSCode.
+## Known limitations of Isabelle/VSCode
* Lack of formal editor perspective in VSCode: only the cursor position is
used (with some surrounding lines of text).
- * Lack of formal markup in prover messages and popups.
-
* Lack of pretty-printing (logical line breaks) according to window and font
dimensions.
- * Lack of GUI panels for Sledgehammer, Query operations etc.
-
* Big theory files may cause problems to the VSCode rendering engine, since
messages and text decorations are applied to the text as a whole (cf. the
minimap view).
+
+ * Overall lack of features and refinements compared to Isabelle/jEdit.
--- a/src/Tools/VSCode/extension/package.json Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/VSCode/extension/package.json Tue Mar 29 12:55:25 2022 +0200
@@ -11,13 +11,13 @@
],
"icon": "isabelle.png",
"version": "2.0.0",
- "publisher": "Isabelle",
+ "publisher": "isabelle",
"license": "MIT",
"repository": {
"url": "https://isabelle-dev.sketis.net"
},
"engines": {
- "vscode": "1.65.0"
+ "vscode": "1.65.2"
},
"categories": [
"Programming Languages"
@@ -193,14 +193,6 @@
"configuration": {
"title": "Isabelle",
"properties": {
- "isabelle.args": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "default": [],
- "description": "Command-line arguments for isabelle vscode_server process."
- },
"isabelle.replacement": {
"type": "string",
"default": "non-alphanumeric",
@@ -321,7 +313,7 @@
"devDependencies": {
"@types/mocha": "^9.1.0",
"@types/node": "^17.0.19",
- "@types/vscode": "1.65.0",
+ "@types/vscode": "^1.65.0",
"mocha": "^9.2.1",
"typescript": "^4.5.5"
},
--- a/src/Tools/VSCode/extension/src/extension.ts Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/VSCode/extension/src/extension.ts Tue Mar 29 12:55:25 2022 +0200
@@ -25,6 +25,63 @@
let last_caret_update: lsp.Caret_Update = {}
+
+/* command-line arguments from "isabelle vscode" */
+
+interface Args
+{
+ options?: string[],
+ logic?: string,
+ logic_ancestor?: string,
+ logic_requirements?: boolean,
+ sesion_dirs?: string[],
+ include_sessions?: string[],
+ modes?: string[],
+ log_file?: string,
+ verbose?: boolean
+}
+
+function print_value(x: any): string
+{
+ return typeof(x) === "string" ? x : JSON.stringify(x)
+}
+
+function isabelle_options(args: Args): string[]
+{
+ var result: string[] = []
+ function add(s: string) { result.push(s) }
+ function add_value(opt: string, slot: string)
+ {
+ const x = args[slot]
+ if (x) { add(opt); add(print_value(x)) }
+ }
+ function add_values(opt: string, slot: string)
+ {
+ const xs: any[] = args[slot]
+ if (xs) {
+ for (const x of xs) { add(opt); add(print_value(x)) }
+ }
+ }
+
+ add("-o"); add("vscode_unicode_symbols")
+ add("-o"); add("vscode_pide_extensions")
+ add_values("-o", "options")
+
+ add_value("-A", "logic_ancestor")
+ if (args.logic) { add_value(args.logic_requirements ? "-R" : "-l", "logic") }
+
+ add_values("-d", "session_dirs")
+ add_values("-i", "include_sessions")
+ add_values("-m", "modes")
+ add_value("-L", "log_file")
+ if (args.verbose) { add("-v") }
+
+ return result
+}
+
+
+/* activate extension */
+
export async function activate(context: ExtensionContext)
{
/* server */
@@ -32,16 +89,15 @@
try {
const isabelle_home = library.getenv_strict("ISABELLE_HOME")
const isabelle_tool = isabelle_home + "/bin/isabelle"
- const isabelle_args =
- ["-o", "vscode_unicode_symbols", "-o", "vscode_pide_extensions"]
- .concat(vscode_lib.get_configuration<Array<string>>("args"))
+ const args = JSON.parse(library.getenv("ISABELLE_VSCODIUM_ARGS") || "{}")
+ const server_opts = isabelle_options(args)
const server_options: ServerOptions =
platform.is_windows() ?
{ command: file.cygwin_bash(),
- args: ["-l", isabelle_tool, "vscode_server"].concat(isabelle_args) } :
+ args: ["-l", isabelle_tool, "vscode_server"].concat(server_opts) } :
{ command: isabelle_tool,
- args: ["vscode_server"].concat(isabelle_args) }
+ args: ["vscode_server"].concat(server_opts) }
const language_client_options: LanguageClientOptions = {
documentSelector: [
--- a/src/Tools/VSCode/extension/src/symbol.ts Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/VSCode/extension/src/symbol.ts Tue Mar 29 12:55:25 2022 +0200
@@ -79,9 +79,9 @@
function load_symbols(): Entry[]
{
- const vscodium_home = library.getenv("ISABELLE_VSCODIUM_HOME")
- if (vscodium_home) {
- const path = vscodium_home + "/resources/app/out/vs/base/browser/ui/fonts/symbols.json"
+ const vscodium_resources = library.getenv("ISABELLE_VSCODIUM_RESOURCES")
+ if (vscodium_resources) {
+ const path = vscodium_resources + "/vscodium/out/vs/base/browser/ui/fonts/symbols.json"
return file.read_json_sync(file.platform_path(path))
}
else { return [] }
--- a/src/Tools/VSCode/extension/vsc-extension-quickstart.md Mon Mar 28 17:16:42 2022 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-# Welcome to your first VS Code Extension
-
-## What's in the folder
-* This folder contains all of the files necessary for your extension
-* `package.json` - this is the manifest file in which you declare your extension and command.
-The sample plugin registers a command and defines its title and command name. With this information
-VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
-* `src/extension.ts` - this is the main file where you will provide the implementation of your command.
-The file exports one function, `activate`, which is called the very first time your extension is
-activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`.
-We pass the function containing the implementation of the command as the second parameter to
-`registerCommand`.
-
-## Get up and running straight away
-* press `F5` to open a new window with your extension loaded
-* run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`
-* set breakpoints in your code inside `src/extension.ts` to debug your extension
-* find output from your extension in the debug console
-
-## Make changes
-* you can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`
-* you can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes
-
-## Explore the API
-* you can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`
-
-## Run tests
-* open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests`
-* press `F5` to run the tests in a new window with your extension loaded
-* see the output of the test result in the debug console
-* make changes to `test/extension.test.ts` or create new test files inside the `test` folder
- * by convention, the test runner will only consider files matching the name pattern `**.test.ts`
- * you can create folders inside the `test` folder to structure your tests any way you want
\ No newline at end of file
--- a/src/Tools/VSCode/extension/yarn.lock Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/VSCode/extension/yarn.lock Tue Mar 29 12:55:25 2022 +0200
@@ -12,7 +12,7 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644"
integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==
-"@types/vscode@1.65.0":
+"@types/vscode@^1.65.0":
version "1.65.0"
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.65.0.tgz#042dd8d93c32ac62cb826cd0fa12376069d1f448"
integrity sha512-wQhExnh2nEzpjDMSKhUvnNmz3ucpd3E+R7wJkOhBNK3No6fG3VUdmVmMOKD0A8NDZDDDiQcLNxe3oGmX5SjJ5w==
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Tools/VSCode/patches/cli.patch Tue Mar 29 12:55:25 2022 +0200
@@ -0,0 +1,25 @@
+diff --git a/src/vs/code/node/cli.ts b/src/vs/code/node/cli.ts
+--- a/src/vs/code/node/cli.ts
++++ b/src/vs/code/node/cli.ts
+@@ -363,9 +363,11 @@ export async function main(argv: string[]): Promise<any> {
+ }
+
+ let child: ChildProcess;
++ const app_arg = '--app=' + process.env['ISABELLE_VSCODIUM_APP'];
++ const electron_args = [app_arg].concat(argv.slice(2));
+ if (!isMacOSBigSurOrNewer) {
+ // We spawn process.execPath directly
+- child = spawn(process.execPath, argv.slice(2), options);
++ child = spawn(process.execPath, electron_args, options);
+ } else {
+ // On Big Sur, we spawn using the open command to obtain behavior
+ // similar to if the app was launched from the dock
+@@ -425,7 +427,7 @@ export async function main(argv: string[]): Promise<any> {
+ }
+ }
+
+- spawnArgs.push('--args', ...argv.slice(2)); // pass on our arguments
++ spawnArgs.push('--args', ...electron_args); // pass on our arguments
+
+ if (env['VSCODE_DEV']) {
+ // If we're in development mode, replace the . arg with the
--- a/src/Tools/VSCode/src/build_vscode_extension.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/VSCode/src/build_vscode_extension.scala Tue Mar 29 12:55:25 2022 +0200
@@ -1,7 +1,7 @@
/* Title: Tools/VSCode/src/build_vscode_extension.scala
Author: Makarius
-Build the Isabelle/VSCode extension.
+Build the Isabelle/VSCode extension as component.
*/
package isabelle.vscode
@@ -12,49 +12,204 @@
object Build_VSCode
{
- val extension_dir = Path.explode("$ISABELLE_VSCODE_HOME/extension")
+ /* build grammar */
+ def default_logic: String = Isabelle_System.getenv("ISABELLE_LOGIC")
- /* grammar */
-
- def build_grammar(options: Options, progress: Progress = new Progress): Unit =
+ def build_grammar(options: Options, build_dir: Path,
+ logic: String = default_logic,
+ dirs: List[Path] = Nil,
+ progress: Progress = new Progress): Unit =
{
- val logic = TextMate_Grammar.default_logic
- val keywords = Sessions.base_info(options, logic).check.base.overall_syntax.keywords
+ val keywords =
+ Sessions.base_info(options, logic, dirs = dirs).check.base.overall_syntax.keywords
+
+ val output_path = build_dir + Path.explode("isabelle-grammar.json")
+ progress.echo(output_path.expand.implode)
+
+ val (minor_keywords, operators) =
+ keywords.minor.iterator.toList.partition(Symbol.is_ascii_identifier)
+
+ def major_keywords(pred: String => Boolean): List[String] =
+ (for {
+ k <- keywords.major.iterator
+ kind <- keywords.kinds.get(k)
+ if pred(kind)
+ } yield k).toList
+
+ val keywords1 =
+ major_keywords(k => k != Keyword.THY_END && k != Keyword.PRF_ASM && k != Keyword.PRF_ASM_GOAL)
+ val keywords2 = minor_keywords ::: major_keywords(Set(Keyword.THY_END))
+ val keywords3 = major_keywords(Set(Keyword.PRF_ASM, Keyword.PRF_ASM_GOAL))
+
+ def grouped_names(as: List[String]): String =
+ JSON.Format("\\b(" + as.sorted.map(Library.escape_regex).mkString("|") + ")\\b")
- val output_path = extension_dir + Path.explode(TextMate_Grammar.default_output(logic))
- progress.echo(output_path.expand.implode)
- File.write_backup(output_path, TextMate_Grammar.generate(keywords))
+ File.write_backup(output_path, """{
+ "name": "Isabelle",
+ "scopeName": "source.isabelle",
+ "fileTypes": ["thy"],
+ "uuid": """ + JSON.Format(UUID.random().toString) + """,
+ "repository": {
+ "comment": {
+ "patterns": [
+ {
+ "name": "comment.block.isabelle",
+ "begin": "\\(\\*",
+ "patterns": [{ "include": "#comment" }],
+ "end": "\\*\\)"
+ }
+ ]
+ },
+ "cartouche": {
+ "patterns": [
+ {
+ "name": "string.quoted.other.multiline.isabelle",
+ "begin": "(?:\\\\<open>|‹)",
+ "patterns": [{ "include": "#cartouche" }],
+ "end": "(?:\\\\<close>|›)"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comment"
+ },
+ {
+ "include": "#cartouche"
+ },
+ {
+ "name": "keyword.control.isabelle",
+ "match": """ + grouped_names(keywords1) + """
+ },
+ {
+ "name": "keyword.other.unit.isabelle",
+ "match": """ + grouped_names(keywords2) + """
+ },
+ {
+ "name": "keyword.operator.isabelle",
+ "match": """ + grouped_names(operators) + """
+ },
+ {
+ "name": "entity.name.type.isabelle",
+ "match": """ + grouped_names(keywords3) + """
+ },
+ {
+ "name": "constant.numeric.isabelle",
+ "match": "\\b\\d*\\.?\\d+\\b"
+ },
+ {
+ "name": "string.quoted.double.isabelle",
+ "begin": "\"",
+ "patterns": [
+ {
+ "name": "constant.character.escape.isabelle",
+ "match": """ + JSON.Format("""\\[\"]|\\\d\d\d""") + """
+ }
+ ],
+ "end": "\""
+ },
+ {
+ "name": "string.quoted.backtick.isabelle",
+ "begin": "`",
+ "patterns": [
+ {
+ "name": "constant.character.escape.isabelle",
+ "match": """ + JSON.Format("""\\[\`]|\\\d\d\d""") + """
+ }
+ ],
+ "end": "`"
+ },
+ {
+ "name": "string.quoted.verbatim.isabelle",
+ "begin": """ + JSON.Format("""\{\*""") + """,
+ "patterns": [
+ { "match": """ + JSON.Format("""[^*]+|\*(?!\})""") + """ }
+ ],
+ "end": """ + JSON.Format("""\*\}""") + """
+ }
+ ]
+}
+""")
}
- /* extension */
-
- def uninstall_extension(progress: Progress = new Progress): Unit =
- progress.bash("isabelle vscode --uninstall-extension Isabelle.isabelle").check
+ /* build extension */
- def install_extension(vsix_path: Path, progress: Progress = new Progress): Unit =
- progress.bash("isabelle vscode --install-extension " +
- File.bash_platform_path(vsix_path))
-
- def build_extension(progress: Progress = new Progress): Path =
+ def build_extension(options: Options,
+ target_dir: Path = Path.current,
+ logic: String = default_logic,
+ dirs: List[Path] = Nil,
+ progress: Progress = new Progress): Unit =
{
Isabelle_System.require_command("node")
Isabelle_System.require_command("yarn")
Isabelle_System.require_command("vsce")
- val output_path = extension_dir + Path.explode("out")
- Isabelle_System.rm_tree(output_path)
- Isabelle_System.make_directory(output_path)
- progress.echo(output_path.expand.implode)
+
+ /* component */
+
+ val component_name = "vscode_extension-" + Date.Format.alt_date(Date.now())
+ val component_dir = Isabelle_System.new_directory(target_dir + Path.basic(component_name))
+ progress.echo("Component " + component_dir)
+
+
+ /* build */
+
+ val vsix_name =
+ Isabelle_System.with_tmp_dir("build")(build_dir =>
+ {
+ val manifest_text = File.read(VSCode_Main.extension_dir + VSCode_Main.MANIFEST)
+ val manifest_entries = split_lines(manifest_text).filter(_.nonEmpty)
+ val manifest_shasum: String =
+ {
+ val a = SHA1.digest(manifest_text).shasum("<MANIFEST>")
+ val bs =
+ for (entry <- manifest_entries)
+ yield SHA1.digest(VSCode_Main.extension_dir + Path.explode(entry)).shasum(entry)
+ terminate_lines(a :: bs)
+ }
+ for (entry <- manifest_entries) {
+ val path = Path.explode(entry)
+ Isabelle_System.copy_file(VSCode_Main.extension_dir + path,
+ Isabelle_System.make_directory(build_dir + path.dir))
+ }
+ File.write(build_dir + VSCode_Main.MANIFEST.shasum, manifest_shasum)
+
+ build_grammar(options, build_dir, logic = logic, dirs = dirs, progress = progress)
- val result =
- progress.bash("yarn && vsce package", cwd = extension_dir.file, echo = true).check
+ val result =
+ progress.bash("yarn && vsce package", cwd = build_dir.file, echo = true).check
+ val Pattern = """.*Packaged:.*(isabelle-.*\.vsix).*""".r
+ val vsix_name =
+ result.out_lines.collectFirst({ case Pattern(name) => name })
+ .getOrElse(error("Failed to guess resulting .vsix file name"))
+
+ Isabelle_System.copy_file(build_dir + Path.basic(vsix_name), component_dir)
+ vsix_name
+ })
+
+
+ /* settings */
- val Pattern = """.*Packaged:.*(isabelle-.*\.vsix).*""".r
- result.out_lines.collectFirst(
- { case Pattern(vsix_name) => extension_dir + Path.basic(vsix_name) })
- .getOrElse(error("Failed to guess resulting .vsix file name"))
+ val etc_dir = Isabelle_System.make_directory(component_dir + Path.basic("etc"))
+ File.write(etc_dir + Path.basic("settings"),
+ """# -*- shell-script -*- :mode=shellscript:
+
+ISABELLE_VSCODE_VSIX="$COMPONENT/""" + vsix_name + "\"\n")
+
+
+ /* README */
+
+ File.write(component_dir + Path.basic("README"),
+ """This the Isabelle/VSCode extension as VSIX package
+
+It has been produced from the sources in $ISABELLE_HOME/src/Tools/extension/.
+
+
+ Makarius
+ """ + Date.Format.date(Date.now()) + "\n")
}
@@ -64,21 +219,24 @@
Isabelle_Tool("build_vscode_extension", "build Isabelle/VSCode extension module",
Scala_Project.here, args =>
{
- var install = false
- var uninstall = false
+ var target_dir = Path.current
+ var dirs: List[Path] = Nil
+ var logic = default_logic
val getopts = Getopts("""
Usage: isabelle build_vscode_extension
Options are:
- -I install resulting extension
- -U uninstall extension (no build)
+ -D DIR target directory (default ".")
+ -d DIR include session directory
+ -l NAME logic session name (default ISABELLE_LOGIC=""" + quote(default_logic) + """)
-Build Isabelle/VSCode extension module in directory
-""" + extension_dir.expand + """
+Build the Isabelle/VSCode extension as component, for inclusion into the
+local VSCodium configuration.
""",
- "I" -> (_ => install = true),
- "U" -> (_ => uninstall = true))
+ "D:" -> (arg => target_dir = Path.explode(arg)),
+ "d:" -> (arg => dirs = dirs ::: List(Path.explode(arg))),
+ "l:" -> (arg => logic = arg))
val more_args = getopts(args)
if (more_args.nonEmpty) getopts.usage()
@@ -86,13 +244,7 @@
val options = Options.init()
val progress = new Console_Progress()
- if (uninstall) {
- uninstall_extension(progress = progress)
- }
- else {
- build_grammar(options, progress = progress)
- val path = build_extension(progress = progress)
- if (install) install_extension(path, progress = progress)
- }
+ build_extension(options, target_dir = target_dir, logic = logic, dirs = dirs,
+ progress = progress)
})
}
--- a/src/Tools/VSCode/src/build_vscodium.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/VSCode/src/build_vscodium.scala Tue Mar 29 12:55:25 2022 +0200
@@ -22,6 +22,8 @@
val vscodium_repository = "https://github.com/VSCodium/vscodium.git"
val vscodium_download = "https://github.com/VSCodium/vscodium/releases/download"
+ private val resources = Path.explode("resources")
+
/* Isabelle symbols (static subset only) */
@@ -140,7 +142,7 @@
// explicit patches
{
val patches_dir = Path.explode("$ISABELLE_VSCODE_HOME/patches")
- for (name <- Seq("isabelle_encoding", "no_ocaml_icons")) {
+ for (name <- Seq("cli", "isabelle_encoding", "no_ocaml_icons")) {
val path = patches_dir + Path.explode(name).patch
Isabelle_System.bash("patch -p1 < " + File.bash_path(path), cwd = dir.file).check
}
@@ -152,36 +154,48 @@
def patch_resources(base_dir: Path): String =
{
- val dir = base_dir + Path.explode("resources")
- Isabelle_System.with_copy_dir(dir, dir.orig) {
- val fonts_dir = dir + Path.explode("app/out/vs/base/browser/ui/fonts")
- HTML.init_fonts(fonts_dir.dir)
- make_symbols().write(fonts_dir)
+ val dir = base_dir + resources
+ val patch =
+ Isabelle_System.with_copy_dir(dir, dir.orig) {
+ val fonts_dir = dir + Path.explode("app/out/vs/base/browser/ui/fonts")
+ HTML.init_fonts(fonts_dir.dir)
+ make_symbols().write(fonts_dir)
- val workbench_css = dir + Path.explode("app/out/vs/workbench/workbench.desktop.main.css")
- val checksum1 = file_checksum(workbench_css)
- File.append(workbench_css, "\n\n" + HTML.fonts_css_dir(prefix = "../base/browser/ui"))
- val checksum2 = file_checksum(workbench_css)
+ val workbench_css = dir + Path.explode("app/out/vs/workbench/workbench.desktop.main.css")
+ val checksum1 = file_checksum(workbench_css)
+ File.append(workbench_css, "\n\n" + HTML.fonts_css_dir(prefix = "../base/browser/ui"))
+ val checksum2 = file_checksum(workbench_css)
- val file_name = workbench_css.file_name
- File.change_lines(dir + Path.explode("app/product.json")) { _.map(line =>
- if (line.containsSlice(file_name) && line.contains(checksum1)) {
- line.replace(checksum1, checksum2)
+ val file_name = workbench_css.file_name
+ File.change_lines(dir + Path.explode("app/product.json")) { _.map(line =>
+ if (line.containsSlice(file_name) && line.contains(checksum1)) {
+ line.replace(checksum1, checksum2)
+ }
+ else line)
}
- else line)
+
+ Isabelle_System.make_patch(dir.dir, dir.orig.base, dir.base)
}
- Isabelle_System.make_patch(dir.dir, dir.orig.base, dir.base)
+ val app_dir = dir + Path.explode("app")
+ val vscodium_app_dir = dir + Path.explode("vscodium")
+ Isabelle_System.move_file(app_dir, vscodium_app_dir)
+
+ Isabelle_System.make_directory(app_dir)
+ if ((vscodium_app_dir + resources).is_dir) {
+ Isabelle_System.copy_dir(vscodium_app_dir + resources, app_dir)
}
+
+ patch
}
def init_resources(base_dir: Path): Path =
{
- val resources_dir = base_dir + Path.explode("resources")
+ val dir = base_dir + resources
if (platform == Platform.Family.macos) {
- Isabelle_System.symlink(Path.explode("VSCodium.app/Contents/Resources"), resources_dir)
+ Isabelle_System.symlink(Path.explode("VSCodium.app/Contents/Resources"), dir)
}
- resources_dir
+ dir
}
def setup_node(target_dir: Path, progress: Progress): Unit =
@@ -205,13 +219,12 @@
platform match {
case Platform.Family.linux | Platform.Family.linux_arm =>
Isabelle_System.move_file(dir + Path.explode("codium"), dir + electron)
- case Platform.Family.macos =>
- Isabelle_System.symlink(Path.explode("VSCodium.app/Contents/MacOS/Electron"), dir + electron)
case Platform.Family.windows =>
Isabelle_System.move_file(dir + Path.explode("VSCodium.exe"), dir + electron.exe)
Isabelle_System.move_file(
dir + Path.explode("VSCodium.VisualElementsManifest.xml"),
dir + Path.explode("electron.VisualElementsManifest.xml"))
+ case Platform.Family.macos =>
}
}
@@ -219,16 +232,6 @@
{
Isabelle_System.rm_tree(dir + Path.explode("bin"))
- val exe = dir + Path.explode("vscodium")
- File.write(exe, """#!/usr/bin/env bash
-
-unset CDPATH
-THIS="$(cd "$(dirname "$0")"; pwd -P)"
-
-ELECTRON_RUN_AS_NODE=1 "$THIS/electron" "$THIS/resources/app/out/cli.js" --ms-enable-electron-run-as-node "$@"
-""")
- File.set_executable(exe, true)
-
if (platform == Platform.Family.windows) {
val files =
File.find_files(dir.file, pred = file =>
@@ -388,6 +391,10 @@
val resources_patch = platform_info.patch_resources(platform_dir)
if (platform_info.is_linux) write_patch("03-isabelle_resources", resources_patch)
+ Isabelle_System.copy_file(
+ build_dir + Path.explode("vscode/node_modules/electron/dist/resources/default_app.asar"),
+ platform_dir + resources)
+
platform_info.setup_executables(platform_dir)
})
}
@@ -402,6 +409,14 @@
"""# -*- shell-script -*- :mode=shellscript:
ISABELLE_VSCODIUM_HOME="$COMPONENT/${ISABELLE_WINDOWS_PLATFORM64:-$ISABELLE_PLATFORM64}"
+
+if [ "$ISABELLE_PLATFORM_FAMILY" = "macos" ]; then
+ ISABELLE_VSCODIUM_ELECTRON="$ISABELLE_VSCODIUM_HOME/VSCodium.app/Contents/MacOS/Electron"
+ ISABELLE_VSCODIUM_RESOURCES="$ISABELLE_VSCODIUM_HOME/VSCodium.app/Contents/Resources"
+else
+ ISABELLE_VSCODIUM_ELECTRON="$ISABELLE_VSCODIUM_HOME/electron"
+ ISABELLE_VSCODIUM_RESOURCES="$ISABELLE_VSCODIUM_HOME/resources"
+fi
""")
--- a/src/Tools/VSCode/src/language_server.scala Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/VSCode/src/language_server.scala Tue Mar 29 12:55:25 2022 +0200
@@ -39,6 +39,7 @@
var include_sessions: List[String] = Nil
var logic = default_logic
var modes: List[String] = Nil
+ var no_build = false
var options = Options.init()
var verbose = false
@@ -53,6 +54,7 @@
-i NAME include session in name-space of theories
-l NAME logic session name (default ISABELLE_LOGIC=""" + quote(default_logic) + """)
-m MODE add print mode for output
+ -n no build of session image on startup
-o OPTION override Isabelle system OPTION (via NAME=VAL or NAME)
-v verbose logging
@@ -65,6 +67,7 @@
"i:" -> (arg => include_sessions = include_sessions ::: List(arg)),
"l:" -> (arg => logic = arg),
"m:" -> (arg => modes = arg :: modes),
+ "n" -> (_ => no_build = true),
"o:" -> (arg => options = options + arg),
"v" -> (_ => verbose = true))
@@ -76,7 +79,8 @@
val server =
new Language_Server(channel, options, session_name = logic, session_dirs = dirs,
include_sessions = include_sessions, session_ancestor = logic_ancestor,
- session_requirements = logic_requirements, modes = modes, log = log)
+ session_requirements = logic_requirements, session_no_build = no_build,
+ modes = modes, log = log)
// prevent spurious garbage on the main protocol channel
val orig_out = System.out
@@ -103,6 +107,7 @@
session_dirs: List[Path] = Nil,
session_ancestor: Option[String] = None,
session_requirements: Boolean = false,
+ session_no_build: Boolean = false,
modes: List[String] = Nil,
log: Logger = No_Logger)
{
@@ -274,7 +279,7 @@
selection = Sessions.Selection.session(base_info.session), build_heap = true,
no_build = no_build, dirs = session_dirs, infos = base_info.infos)
- if (!build(no_build = true).ok) {
+ if (!session_no_build && !build(no_build = true).ok) {
val start_msg = "Build started for Isabelle/" + base_info.session + " ..."
val fail_msg = "Session build failed -- prover process remains inactive!"
--- a/src/Tools/VSCode/src/textmate_grammar.scala Mon Mar 28 17:16:42 2022 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-/* Title: Tools/VSCode/src/textmate_grammar.scala
- Author: Makarius
-
-Generate static TextMate grammar for VSCode editor.
-*/
-
-package isabelle.vscode
-
-
-import isabelle._
-
-
-object TextMate_Grammar
-{
- /* generate grammar */
-
- lazy val default_logic = Isabelle_System.getenv("ISABELLE_LOGIC")
-
- def default_output(logic: String = ""): String =
- if (logic == "" || logic == default_logic) "isabelle-grammar.json"
- else "isabelle-" + logic + "-grammar.json"
-
- def generate(keywords: Keyword.Keywords): JSON.S =
- {
- val (minor_keywords, operators) =
- keywords.minor.iterator.toList.partition(Symbol.is_ascii_identifier)
-
- def major_keywords(pred: String => Boolean): List[String] =
- (for {
- k <- keywords.major.iterator
- kind <- keywords.kinds.get(k)
- if pred(kind)
- } yield k).toList
-
- val keywords1 =
- major_keywords(k => k != Keyword.THY_END && k != Keyword.PRF_ASM && k != Keyword.PRF_ASM_GOAL)
- val keywords2 = minor_keywords ::: major_keywords(Set(Keyword.THY_END))
- val keywords3 = major_keywords(Set(Keyword.PRF_ASM, Keyword.PRF_ASM_GOAL))
-
-
- def grouped_names(as: List[String]): String =
- JSON.Format("\\b(" + as.sorted.map(Library.escape_regex).mkString("|") + ")\\b")
-
- """{
- "name": "Isabelle",
- "scopeName": "source.isabelle",
- "fileTypes": ["thy"],
- "uuid": """ + JSON.Format(UUID.random().toString) + """,
- "repository": {
- "comment": {
- "patterns": [
- {
- "name": "comment.block.isabelle",
- "begin": "\\(\\*",
- "patterns": [{ "include": "#comment" }],
- "end": "\\*\\)"
- }
- ]
- },
- "cartouche": {
- "patterns": [
- {
- "name": "string.quoted.other.multiline.isabelle",
- "begin": "(?:\\\\<open>|‹)",
- "patterns": [{ "include": "#cartouche" }],
- "end": "(?:\\\\<close>|›)"
- }
- ]
- }
- },
- "patterns": [
- {
- "include": "#comment"
- },
- {
- "include": "#cartouche"
- },
- {
- "name": "keyword.control.isabelle",
- "match": """ + grouped_names(keywords1) + """
- },
- {
- "name": "keyword.other.unit.isabelle",
- "match": """ + grouped_names(keywords2) + """
- },
- {
- "name": "keyword.operator.isabelle",
- "match": """ + grouped_names(operators) + """
- },
- {
- "name": "entity.name.type.isabelle",
- "match": """ + grouped_names(keywords3) + """
- },
- {
- "name": "constant.numeric.isabelle",
- "match": "\\b\\d*\\.?\\d+\\b"
- },
- {
- "name": "string.quoted.double.isabelle",
- "begin": "\"",
- "patterns": [
- {
- "name": "constant.character.escape.isabelle",
- "match": """ + JSON.Format("""\\[\"]|\\\d\d\d""") + """
- }
- ],
- "end": "\""
- },
- {
- "name": "string.quoted.backtick.isabelle",
- "begin": "`",
- "patterns": [
- {
- "name": "constant.character.escape.isabelle",
- "match": """ + JSON.Format("""\\[\`]|\\\d\d\d""") + """
- }
- ],
- "end": "`"
- },
- {
- "name": "string.quoted.verbatim.isabelle",
- "begin": """ + JSON.Format("""\{\*""") + """,
- "patterns": [
- { "match": """ + JSON.Format("""[^*]+|\*(?!\})""") + """ }
- ],
- "end": """ + JSON.Format("""\*\}""") + """
- }
- ]
-}
-"""
- }
-
-
- /* Isabelle tool wrapper */
-
- val isabelle_tool = Isabelle_Tool("vscode_grammar",
- "generate static TextMate grammar for VSCode editor", Scala_Project.here, args =>
- {
- var dirs: List[Path] = Nil
- var logic = default_logic
- var output: Option[Path] = None
-
- val getopts = Getopts("""
-Usage: isabelle vscode_grammar [OPTIONS]
-
- Options are:
- -d DIR include session directory
- -l NAME logic session name (default ISABELLE_LOGIC=""" + quote(default_logic) + """)
- -o FILE output file name (default """ + default_output() + """)
-
- Generate static TextMate grammar for VSCode editor.
-""",
- "d:" -> (arg => dirs = dirs ::: List(Path.explode(arg))),
- "l:" -> (arg => logic = arg),
- "o:" -> (arg => output = Some(Path.explode(arg))))
-
- val more_args = getopts(args)
- if (more_args.nonEmpty) getopts.usage()
-
- val keywords =
- Sessions.base_info(Options.init(), logic, dirs = dirs).check.base.overall_syntax.keywords
- val output_path = output getOrElse Path.explode(default_output(logic))
-
- Output.writeln(output_path.implode)
- File.write_backup(output_path, generate(keywords))
- })
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Tools/VSCode/src/vscode_main.scala Tue Mar 29 12:55:25 2022 +0200
@@ -0,0 +1,260 @@
+/* Title: Tools/VSCode/src/vscode_main.scala
+ Author: Makarius
+
+Main application entry point for Isabelle/VSCode.
+*/
+
+package isabelle.vscode
+
+
+import isabelle._
+
+import java.util.zip.ZipFile
+
+
+object VSCode_Main
+{
+ /* vscodium command-line interface */
+
+ def server_log_path: Path =
+ Path.explode("$ISABELLE_VSCODE_SETTINGS/server.log").expand
+
+ def run_vscodium(args: List[String],
+ environment: Iterable[(String, String)] = Nil,
+ options: List[String] = Nil,
+ logic: String = "",
+ logic_ancestor: String = "",
+ logic_requirements: Boolean = false,
+ session_dirs: List[Path] = Nil,
+ include_sessions: List[String] = Nil,
+ modes: List[String] = Nil,
+ no_build: Boolean = false,
+ server_log: Boolean = false,
+ verbose: Boolean = false,
+ background: Boolean = false,
+ progress: Progress = new Progress): Process_Result =
+ {
+ def platform_path(s: String): String = File.platform_path(Path.explode(s))
+
+ val args_json =
+ JSON.optional("options" -> proper_list(options)) ++
+ JSON.optional("logic" -> proper_string(logic)) ++
+ JSON.optional("logic_ancestor" -> proper_string(logic_ancestor)) ++
+ JSON.optional("logic_requirements" -> proper_bool(logic_requirements)) ++
+ JSON.optional("session_dirs" ->
+ proper_list(session_dirs.map(dir => Sessions.check_session_dir(dir).absolute.implode))) ++
+ JSON.optional("include_sessions" -> proper_list(include_sessions)) ++
+ JSON.optional("modes" -> proper_list(modes)) ++
+ JSON.optional("no_build" -> proper_bool(no_build)) ++
+ JSON.optional("log_file" ->
+ (if (server_log) Some(server_log_path.absolute.implode) else None)) ++
+ JSON.optional("verbose" -> proper_bool(verbose))
+
+ val env = new java.util.HashMap(Isabelle_System.settings())
+ for ((a, b) <- environment) env.put(a, b)
+ env.put("ISABELLE_VSCODIUM_ARGS", JSON.Format(args_json))
+ env.put("ISABELLE_VSCODIUM_APP", platform_path("$ISABELLE_VSCODIUM_RESOURCES/vscodium"))
+ env.put("ELECTRON_RUN_AS_NODE", "1")
+
+ val electron = Isabelle_System.getenv("ISABELLE_VSCODIUM_ELECTRON")
+ if (electron.isEmpty) {
+ error("""Undefined $ISABELLE_VSCODIUM_ELECTRON: missing "vscodium" component""")
+ }
+ val args0 =
+ List(platform_path("$ISABELLE_VSCODIUM_RESOURCES/vscodium/out/cli.js"),
+ "--ms-enable-electron-run-as-node", "--locale", "en-US",
+ "--user-data-dir", platform_path("$ISABELLE_VSCODE_SETTINGS/user-data"),
+ "--extensions-dir", platform_path("$ISABELLE_VSCODE_SETTINGS/extensions"))
+ val script =
+ Bash.strings(electron :: args0 ::: args) +
+ (if (background) " > /dev/null 2> /dev/null &" else "")
+
+ progress.bash(script, env = env, echo = true)
+ }
+
+
+ /* extension */
+
+ def default_vsix_path: Path = Path.explode("$ISABELLE_VSCODE_VSIX")
+
+ def extension_dir: Path = Path.explode("$ISABELLE_VSCODE_HOME/extension")
+ val extension_name: String = "isabelle.isabelle"
+
+ val MANIFEST: Path = Path.explode("MANIFEST")
+
+ private def shasum_vsix(vsix_path: Path): String =
+ {
+ val name = "extension/MANIFEST.shasum"
+ def err(): Nothing = error("Cannot retrieve " + quote(name) + " from " + vsix_path)
+ if (vsix_path.is_file) {
+ using(new ZipFile(vsix_path.file))(zip_file =>
+ zip_file.getEntry(name) match {
+ case null => err()
+ case entry =>
+ zip_file.getInputStream(entry) match {
+ case null => err()
+ case stream => File.read_stream(stream)
+ }
+ })
+ }
+ else err()
+ }
+
+ private def shasum_dir(dir: Path): Option[String] =
+ {
+ val path = dir + MANIFEST.shasum
+ if (path.is_file) Some(File.read(path)) else None
+ }
+
+ def locate_extension(): Option[Path] =
+ {
+ val out = run_vscodium(List("--locate-extension", extension_name)).check.out
+ if (out.nonEmpty) Some(Path.explode(File.standard_path(out))) else None
+ }
+
+ def uninstall_extension(progress: Progress = new Progress): Unit =
+ locate_extension() match {
+ case None => progress.echo_warning("No Isabelle/VSCode extension to uninstall")
+ case Some(dir) =>
+ run_vscodium(List("--uninstall-extension", extension_name)).check
+ progress.echo("Uninstalled Isabelle/VSCode extension from directory:\n" + dir)
+ }
+
+ def install_extension(
+ vsix_path: Path = default_vsix_path,
+ progress: Progress = new Progress): Unit =
+ {
+ val new_shasum = shasum_vsix(vsix_path)
+ val old_shasum = locate_extension().flatMap(shasum_dir)
+ val current = old_shasum.isDefined && old_shasum.get == new_shasum
+
+ if (!current) {
+ run_vscodium(List("--install-extension", File.bash_platform_path(vsix_path))).check
+ locate_extension() match {
+ case None => error("Missing Isabelle/VSCode extension after installation")
+ case Some(dir) =>
+ progress.echo("Installed Isabelle/VSCode extension " + vsix_path.expand +
+ "\ninto directory: " + dir)
+ }
+ }
+ }
+
+
+ /* settings */
+
+ def settings_path: Path =
+ Path.explode("$ISABELLE_VSCODE_SETTINGS/user-data/User/settings.json")
+
+ private val default_settings = """ {
+ "editor.fontFamily": "'Isabelle DejaVu Sans Mono'",
+ "editor.fontSize": 18,
+ "editor.lineNumbers": "off",
+ "editor.renderIndentGuides": false,
+ "editor.rulers": [80, 100],
+ "editor.unicodeHighlight.ambiguousCharacters": false,
+ "extensions.autoCheckUpdates": false,
+ "extensions.autoUpdate": false,
+ "terminal.integrated.fontFamily": "monospace",
+ "update.mode": "none"
+ }
+"""
+
+ def init_settings(): Unit =
+ {
+ if (!settings_path.is_file) {
+ Isabelle_System.make_directory(settings_path.dir)
+ File.write(settings_path, default_settings)
+ }
+ }
+
+
+ /* Isabelle tool wrapper */
+
+ val isabelle_tool =
+ Isabelle_Tool("vscode", "Isabelle/VSCode interface wrapper", Scala_Project.here, args =>
+ {
+ var logic_ancestor = ""
+ var console = false
+ var edit_extension = false
+ var server_log = false
+ var logic_requirements = false
+ var uninstall = false
+ var vsix_path = default_vsix_path
+ var session_dirs = List.empty[Path]
+ var include_sessions = List.empty[String]
+ var logic = ""
+ var modes = List.empty[String]
+ var no_build = false
+ var options = List.empty[String]
+ var verbose = false
+
+ def add_option(opt: String): Unit = options = options ::: List(opt)
+
+ val getopts = Getopts("""
+Usage: isabelle vscode [OPTIONS] [ARGUMENTS] [-- VSCODE_OPTIONS]
+
+ -A NAME ancestor session for option -R (default: parent)
+ -C run as foreground process, with console output
+ -E edit Isabelle/VSCode extension project sources
+ -L enable language server log to file:
+ """ + server_log_path.implode + """
+ -R NAME build image with requirements from other sessions
+ -U uninstall Isabelle/VSCode extension
+ -V FILE specify VSIX file for Isabelle/VSCode extension
+ (default: """ + default_vsix_path + """)
+ -d DIR include session directory
+ -i NAME include session in name-space of theories
+ -l NAME logic session name
+ -m MODE add print mode for output
+ -n no build of session image on startup
+ -o OPTION override Isabelle system OPTION (via NAME=VAL or NAME)
+ -p CMD ML process command prefix (process policy)
+ -s system build mode for session image (system_heaps=true)
+ -u user build mode for session image (system_heaps=false)
+ -v verbose logging of language server
+
+ Start Isabelle/VSCode application, with automatic configuration of
+ user settings.
+
+ The following initial settings are provided for a fresh installation:
+""" + default_settings,
+ "A:" -> (arg => logic_ancestor = arg),
+ "C" -> (_ => console = true),
+ "E" -> (_ => edit_extension = true),
+ "L" -> (_ => server_log = true),
+ "R:" -> (arg => { logic = arg; logic_requirements = true }),
+ "U" -> (_ => uninstall = true),
+ "V:" -> (arg => vsix_path = Path.explode(arg)),
+ "d:" -> (arg => session_dirs = session_dirs ::: List(Path.explode(arg))),
+ "i:" -> (arg => include_sessions = include_sessions ::: List(arg)),
+ "l:" -> (arg => { logic = arg; logic_requirements = false }),
+ "m:" -> (arg => modes = modes ::: List(arg)),
+ "n" -> (_ => no_build = true),
+ "o:" -> add_option,
+ "p:" -> (arg => add_option("ML_process_policy=" + arg)),
+ "s" -> (_ => add_option("system_heaps=true")),
+ "u" -> (_ => add_option("system_heaps=false")),
+ "v" -> (_ => verbose = true))
+
+ val more_args = getopts(args)
+
+ init_settings()
+
+ val console_progress = new Console_Progress
+
+ if (uninstall) uninstall_extension(progress = console_progress)
+ else install_extension(vsix_path = vsix_path, progress = console_progress)
+
+ val (background, app_progress) =
+ if (console) (false, console_progress)
+ else { run_vscodium(List("--version")).check; (true, new Progress) }
+
+ run_vscodium(
+ more_args ::: (if (edit_extension) List(File.platform_path(extension_dir)) else Nil),
+ options = options, logic = logic, logic_ancestor = logic_ancestor,
+ logic_requirements = logic_requirements, session_dirs = session_dirs,
+ include_sessions = include_sessions, modes = modes, no_build = no_build,
+ server_log = server_log, verbose = verbose, background = background,
+ progress = app_progress).check
+ })
+}
--- a/src/Tools/VSCode/src/vscode_setup.scala Mon Mar 28 17:16:42 2022 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/* Title: Tools/VSCode/src/vscode_setup.scala
- Author: Makarius
-
-Provide user configuration for Isabelle/VSCode.
-*/
-
-package isabelle.vscode
-
-
-import isabelle._
-
-
-object VSCode_Setup
-{
- /* vscode setup */
-
- def vscode_settings_user: Path =
- Path.explode("$ISABELLE_VSCODE_SETTINGS/user-data/User/settings.json")
-
- private val init_settings = """ {
- "editor.fontFamily": "'Isabelle DejaVu Sans Mono'",
- "editor.fontSize": 18,
- "editor.lineNumbers": "off",
- "editor.renderIndentGuides": false,
- "editor.rulers": [80, 100],
- "editor.unicodeHighlight.ambiguousCharacters": false,
- "extensions.autoCheckUpdates": false,
- "extensions.autoUpdate": false,
- "terminal.integrated.fontFamily": "monospace",
- "update.mode": "none"
- }
-"""
-
- def vscode_setup(): Unit =
- {
- if (Isabelle_System.getenv("ISABELLE_VSCODIUM_HOME").isEmpty) {
- error("""Missing $ISABELLE_VSCODIUM_HOME: proper vscodium-X.YY.Z component required""")
- }
-
- if (!vscode_settings_user.is_file) {
- Isabelle_System.make_directory(vscode_settings_user.dir)
- File.write(vscode_settings_user, init_settings)
- }
- }
-
-
- /* Isabelle tool wrapper */
-
- val isabelle_tool =
- Isabelle_Tool("vscode_setup", "provide user configuration for Isabelle/VSCode",
- Scala_Project.here, args =>
- {
- val getopts = Getopts("""
-Usage: vscode_setup
-
- Provide user configuration for Isabelle/VSCode.
-
- The following initial settings are provided for a fresh installation:
-""" + init_settings)
-
- val more_args = getopts(args)
- if (more_args.nonEmpty) getopts.usage()
-
- vscode_setup()
- })
-}
--- a/src/Tools/jEdit/lib/Tools/jedit Mon Mar 28 17:16:42 2022 +0200
+++ b/src/Tools/jEdit/lib/Tools/jedit Tue Mar 29 12:55:25 2022 +0200
@@ -106,6 +106,7 @@
;;
l)
JEDIT_LOGIC="$OPTARG"
+ JEDIT_LOGIC_REQUIREMENTS="false"
;;
m)
if [ -z "$JEDIT_PRINT_MODE" ]; then
@@ -164,5 +165,5 @@
JEDIT_INCLUDE_SESSIONS JEDIT_PRINT_MODE JEDIT_NO_BUILD JEDIT_BUILD_MODE
export JEDIT_ML_PROCESS_POLICY="$ML_PROCESS_POLICY"
exec isabelle java -splash:"$(platform_path "$ISABELLE_HOME/lib/logo/isabelle.gif")" \
- "${JAVA_ARGS[@]}" isabelle.jedit.Main "${ARGS[@]}"
+ "${JAVA_ARGS[@]}" isabelle.jedit.JEdit_Main "${ARGS[@]}"
fi
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Tools/jEdit/src/jedit_main.scala Tue Mar 29 12:55:25 2022 +0200
@@ -0,0 +1,142 @@
+/* Title: src/Tools/jEdit/src/jedit_main.scala
+ Author: Makarius
+
+Main application entry point for Isabelle/jEdit.
+*/
+
+package isabelle.jedit
+
+
+import isabelle._
+
+import org.gjt.sp.jedit.{MiscUtilities, jEdit}
+
+
+object JEdit_Main
+{
+ /* main entry point */
+
+ def main(args: Array[String]): Unit =
+ {
+ if (args.nonEmpty && args(0) == "-init") {
+ Isabelle_System.init()
+ }
+ else {
+ val start =
+ {
+ try {
+ Isabelle_System.init()
+ Isabelle_Fonts.init()
+
+ GUI.init_lafs()
+
+
+ /* ROOTS template */
+
+ {
+ val roots = Path.explode("$ISABELLE_HOME_USER/ROOTS")
+ if (!roots.is_file) File.write(roots, """# Additional session root directories
+#
+# * each line contains one directory entry in Isabelle path notation, e.g.
+#
+# $ISABELLE_HOME/../AFP/thys
+#
+# for a copy of AFP put side-by-side to the Isabelle distribution
+#
+# * Isabelle/jEdit provides formal markup for C-hover-click and completion
+#
+# * lines starting with "#" are stripped
+#
+# * changes require restart of the Isabelle application
+#
+#:mode=text:encoding=UTF-8:
+
+#$ISABELLE_HOME/../AFP/thys
+""")
+ }
+
+
+ /* settings directory */
+
+ val settings_dir = Path.explode("$JEDIT_SETTINGS")
+
+ val properties = settings_dir + Path.explode("properties")
+ if (properties.is_file) {
+ val props1 = split_lines(File.read(properties))
+ val props2 = props1.filterNot(_.startsWith("plugin-blacklist.isabelle_jedit"))
+ if (props1 != props2) File.write(properties, cat_lines(props2))
+ }
+
+ Isabelle_System.make_directory(settings_dir + Path.explode("DockableWindowManager"))
+
+ if (!(settings_dir + Path.explode("perspective.xml")).is_file) {
+ File.write(settings_dir + Path.explode("DockableWindowManager/perspective-view0.xml"),
+ """<DOCKING LEFT="isabelle-documentation" TOP="" RIGHT="isabelle-theories" BOTTOM="" LEFT_POS="250" TOP_POS="0" RIGHT_POS="250" BOTTOM_POS="250" />""")
+ File.write(settings_dir + Path.explode("perspective.xml"),
+ XML.header +
+"""<!DOCTYPE PERSPECTIVE SYSTEM "perspective.dtd">
+<PERSPECTIVE>
+<VIEW PLAIN="FALSE">
+<GEOMETRY X="0" Y="35" WIDTH="1200" HEIGHT="850" EXT_STATE="0" />
+</VIEW>
+</PERSPECTIVE>""")
+ }
+
+ for (plugin <- Scala_Project.plugins) { plugin.context().build() }
+
+
+ /* args */
+
+ val jedit_settings =
+ "-settings=" + File.platform_path(Path.explode("$JEDIT_SETTINGS"))
+
+ val jedit_server =
+ System.getProperty("isabelle.jedit_server") match {
+ case null | "" => "-noserver"
+ case name => "-server=" + name
+ }
+
+ val jedit_options =
+ Isabelle_System.getenv_strict("JEDIT_OPTIONS").split(" +")
+
+ val more_args =
+ {
+ args.toList.dropWhile(arg => arg.startsWith("-") && arg != "--") match {
+ case Nil | List("--") =>
+ args ++ Array(File.platform_path(Path.explode("$USER_HOME/Scratch.thy")))
+ case List(":") => args.slice(0, args.length - 1)
+ case _ => args
+ }
+ }
+
+
+ /* environment */
+
+ for (name <- List("ISABELLE_HOME", "ISABELLE_HOME_USER", "JEDIT_HOME", "JEDIT_SETTINGS")) {
+ MiscUtilities.putenv(name, File.platform_path(Isabelle_System.getenv(name)))
+ }
+ MiscUtilities.putenv("ISABELLE_ROOT", null)
+
+
+ /* properties */
+
+ System.setProperty("jedit.home", File.platform_path(Path.explode("$JEDIT_HOME")))
+ System.setProperty("scala.home", File.platform_path(Path.explode("$SCALA_HOME")))
+ System.setProperty("scala.color", "false")
+
+
+ /* main startup */
+
+ () => jEdit.main(Array(jedit_settings, jedit_server) ++ jedit_options ++ more_args)
+ }
+ catch {
+ case exn: Throwable =>
+ GUI.init_laf()
+ GUI.dialog(null, "Isabelle", GUI.scrollable_text(Exn.message(exn)))
+ sys.exit(Process_Result.RC.failure)
+ }
+ }
+ start()
+ }
+ }
+}
--- a/src/Tools/jEdit/src/main.scala Mon Mar 28 17:16:42 2022 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/* Title: src/Tools/jEdit/src/main.scala
- Author: Makarius
-
-Main Isabelle application entry point.
-*/
-
-package isabelle.jedit
-
-
-import isabelle._
-
-import org.gjt.sp.jedit.{MiscUtilities, jEdit}
-
-
-object Main
-{
- /* main entry point */
-
- def main(args: Array[String]): Unit =
- {
- if (args.nonEmpty && args(0) == "-init") {
- Isabelle_System.init()
- }
- else {
- val start =
- {
- try {
- Isabelle_System.init()
- Isabelle_Fonts.init()
-
- GUI.init_lafs()
-
-
- /* ROOTS template */
-
- {
- val roots = Path.explode("$ISABELLE_HOME_USER/ROOTS")
- if (!roots.is_file) File.write(roots, """# Additional session root directories
-#
-# * each line contains one directory entry in Isabelle path notation, e.g.
-#
-# $ISABELLE_HOME/../AFP/thys
-#
-# for a copy of AFP put side-by-side to the Isabelle distribution
-#
-# * Isabelle/jEdit provides formal markup for C-hover-click and completion
-#
-# * lines starting with "#" are stripped
-#
-# * changes require restart of the Isabelle application
-#
-#:mode=text:encoding=UTF-8:
-
-#$ISABELLE_HOME/../AFP/thys
-""")
- }
-
-
- /* settings directory */
-
- val settings_dir = Path.explode("$JEDIT_SETTINGS")
-
- val properties = settings_dir + Path.explode("properties")
- if (properties.is_file) {
- val props1 = split_lines(File.read(properties))
- val props2 = props1.filterNot(_.startsWith("plugin-blacklist.isabelle_jedit"))
- if (props1 != props2) File.write(properties, cat_lines(props2))
- }
-
- Isabelle_System.make_directory(settings_dir + Path.explode("DockableWindowManager"))
-
- if (!(settings_dir + Path.explode("perspective.xml")).is_file) {
- File.write(settings_dir + Path.explode("DockableWindowManager/perspective-view0.xml"),
- """<DOCKING LEFT="isabelle-documentation" TOP="" RIGHT="isabelle-theories" BOTTOM="" LEFT_POS="250" TOP_POS="0" RIGHT_POS="250" BOTTOM_POS="250" />""")
- File.write(settings_dir + Path.explode("perspective.xml"),
- XML.header +
-"""<!DOCTYPE PERSPECTIVE SYSTEM "perspective.dtd">
-<PERSPECTIVE>
-<VIEW PLAIN="FALSE">
-<GEOMETRY X="0" Y="35" WIDTH="1200" HEIGHT="850" EXT_STATE="0" />
-</VIEW>
-</PERSPECTIVE>""")
- }
-
- for (plugin <- Scala_Project.plugins) { plugin.context().build() }
-
-
- /* args */
-
- val jedit_settings =
- "-settings=" + File.platform_path(Path.explode("$JEDIT_SETTINGS"))
-
- val jedit_server =
- System.getProperty("isabelle.jedit_server") match {
- case null | "" => "-noserver"
- case name => "-server=" + name
- }
-
- val jedit_options =
- Isabelle_System.getenv_strict("JEDIT_OPTIONS").split(" +")
-
- val more_args =
- {
- args.toList.dropWhile(arg => arg.startsWith("-") && arg != "--") match {
- case Nil | List("--") =>
- args ++ Array(File.platform_path(Path.explode("$USER_HOME/Scratch.thy")))
- case List(":") => args.slice(0, args.length - 1)
- case _ => args
- }
- }
-
-
- /* environment */
-
- for (name <- List("ISABELLE_HOME", "ISABELLE_HOME_USER", "JEDIT_HOME", "JEDIT_SETTINGS")) {
- MiscUtilities.putenv(name, File.platform_path(Isabelle_System.getenv(name)))
- }
- MiscUtilities.putenv("ISABELLE_ROOT", null)
-
-
- /* properties */
-
- System.setProperty("jedit.home", File.platform_path(Path.explode("$JEDIT_HOME")))
- System.setProperty("scala.home", File.platform_path(Path.explode("$SCALA_HOME")))
- System.setProperty("scala.color", "false")
-
-
- /* main startup */
-
- () => jEdit.main(Array(jedit_settings, jedit_server) ++ jedit_options ++ more_args)
- }
- catch {
- case exn: Throwable =>
- GUI.init_laf()
- GUI.dialog(null, "Isabelle", GUI.scrollable_text(Exn.message(exn)))
- sys.exit(Process_Result.RC.failure)
- }
- }
- start()
- }
- }
-}