%------------------------------------------------------------------------------ % File : Princess---230619 % Problem : DAT033_1 : TPTP v8.1.2. Released v5.0.0. % Transfm : none % Format : tptp % Command : princess -inputFormat=tptp +threads -portfolio=casc +printProof -timeoutSec=%d %s % Computer : n020.cluster.edu % Model : x86_64 x86_64 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz % Memory : 8042.1875MB % OS : Linux 3.10.0-693.el7.x86_64 % CPULimit : 300s % WCLimit : 300s % DateTime : Wed Aug 30 22:18:57 EDT 2023 % Result : Theorem 7.50s 1.72s % Output : Proof 12.08s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.00/0.12 % Problem : DAT033_1 : TPTP v8.1.2. Released v5.0.0. % 0.00/0.13 % Command : princess -inputFormat=tptp +threads -portfolio=casc +printProof -timeoutSec=%d %s % 0.13/0.34 % Computer : n020.cluster.edu % 0.13/0.34 % Model : x86_64 x86_64 % 0.13/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz % 0.13/0.34 % Memory : 8042.1875MB % 0.13/0.34 % OS : Linux 3.10.0-693.el7.x86_64 % 0.13/0.34 % CPULimit : 300 % 0.13/0.34 % WCLimit : 300 % 0.13/0.34 % DateTime : Thu Aug 24 14:33:45 EDT 2023 % 0.13/0.34 % CPUTime : % 0.20/0.59 ________ _____ % 0.20/0.59 ___ __ \_________(_)________________________________ % 0.20/0.59 __ /_/ /_ ___/_ /__ __ \ ___/ _ \_ ___/_ ___/ % 0.20/0.59 _ ____/_ / _ / _ / / / /__ / __/(__ )_(__ ) % 0.20/0.59 /_/ /_/ /_/ /_/ /_/\___/ \___//____/ /____/ % 0.20/0.59 % 0.20/0.59 A Theorem Prover for First-Order Logic modulo Linear Integer Arithmetic % 0.20/0.59 (2023-06-19) % 0.20/0.59 % 0.20/0.59 (c) Philipp Rümmer, 2009-2023 % 0.20/0.59 Contributors: Peter Backeman, Peter Baumgartner, Angelo Brillout, Zafer Esen, % 0.20/0.59 Amanda Stjerna. % 0.20/0.59 Free software under BSD-3-Clause. % 0.20/0.59 % 0.20/0.59 For more information, visit http://www.philipp.ruemmer.org/princess.shtml % 0.20/0.59 % 0.20/0.59 Loading /export/starexec/sandbox/benchmark/theBenchmark.p ... % 0.20/0.60 Running up to 7 provers in parallel. % 0.20/0.62 Prover 0: Options: +triggersInConjecture +genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=0 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=1042961893 % 0.20/0.62 Prover 2: Options: +triggersInConjecture +genTotalityAxioms -tightFunctionScopes -clausifier=simple +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMinimalAndEmpty -realRatSaturationRounds=1 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=-1065072994 % 0.20/0.62 Prover 1: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-1571432423 % 0.20/0.62 Prover 3: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=1922548996 % 0.20/0.62 Prover 4: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=1868514696 % 0.20/0.62 Prover 5: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=none +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMaximal -realRatSaturationRounds=1 -ignoreQuantifiers -constructProofs=never -generateTriggers=complete -randomSeed=1259561288 % 0.20/0.62 Prover 6: Options: -triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=none +reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximalOutermost -realRatSaturationRounds=0 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=-1399714365 % 2.37/1.08 Prover 4: Preprocessing ... % 2.37/1.08 Prover 1: Preprocessing ... % 2.95/1.12 Prover 3: Preprocessing ... % 2.95/1.12 Prover 0: Preprocessing ... % 2.95/1.12 Prover 5: Preprocessing ... % 2.95/1.12 Prover 2: Preprocessing ... % 2.95/1.13 Prover 6: Preprocessing ... % 5.28/1.42 Prover 6: Constructing countermodel ... % 5.28/1.42 Prover 3: Constructing countermodel ... % 5.28/1.42 Prover 4: Constructing countermodel ... % 5.28/1.43 Prover 1: Constructing countermodel ... % 5.28/1.44 Prover 5: Proving ... % 5.28/1.45 Prover 2: Proving ... % 5.28/1.47 Prover 0: Proving ... % 7.48/1.71 Prover 3: proved (1103ms) % 7.48/1.71 % 7.50/1.72 % SZS status Theorem for /export/starexec/sandbox/benchmark/theBenchmark.p % 7.50/1.72 % 7.50/1.72 Prover 0: stopped % 7.50/1.72 Prover 5: stopped % 7.50/1.74 Prover 6: stopped % 7.50/1.74 Prover 2: stopped % 7.50/1.74 Prover 7: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-236303470 % 7.50/1.74 Prover 8: Options: +triggersInConjecture +genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-200781089 % 7.50/1.74 Prover 11: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-1509710984 % 7.50/1.74 Prover 13: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=complete -randomSeed=1138197443 % 7.50/1.74 Prover 10: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=919308125 % 7.50/1.76 Prover 7: Preprocessing ... % 7.50/1.77 Prover 10: Preprocessing ... % 7.50/1.78 Prover 8: Preprocessing ... % 7.50/1.78 Prover 11: Preprocessing ... % 7.50/1.79 Prover 13: Preprocessing ... % 8.15/1.83 Prover 10: Constructing countermodel ... % 8.15/1.84 Prover 7: Constructing countermodel ... % 8.15/1.87 Prover 8: Warning: ignoring some quantifiers % 8.15/1.88 Prover 8: Constructing countermodel ... % 8.76/1.88 Prover 13: Warning: ignoring some quantifiers % 8.76/1.90 Prover 13: Constructing countermodel ... % 8.76/1.91 Prover 11: Constructing countermodel ... % 11.24/2.25 Prover 10: Found proof (size 521) % 11.24/2.25 Prover 10: proved (503ms) % 11.24/2.25 Prover 7: stopped % 11.24/2.25 Prover 8: stopped % 11.24/2.25 Prover 1: stopped % 11.24/2.25 Prover 11: stopped % 11.24/2.25 Prover 13: stopped % 11.24/2.26 Prover 4: stopped % 11.24/2.26 % 11.24/2.26 % SZS status Theorem for /export/starexec/sandbox/benchmark/theBenchmark.p % 11.24/2.26 % 11.24/2.28 % SZS output start Proof for theBenchmark % 11.24/2.28 Assumptions after simplification: % 11.24/2.28 --------------------------------- % 11.24/2.28 % 11.24/2.28 (ax3) % 11.24/2.30 ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ (remove(v0, v1) % 11.24/2.30 = v2) | ~ collection(v1) | ~ in(v0, v2)) & ! [v0: int] : ! [v1: % 11.24/2.30 collection] : ! [v2: collection] : ( ~ (add(v0, v1) = v2) | ~ % 11.24/2.30 collection(v1) | ~ in(v0, v1) | ? [v3: int] : ? [v4: int] : ( ~ % 11.24/2.30 ($difference(v4, v3) = -1) & count(v2) = v3 & count(v1) = v4)) & ! [v0: % 11.24/2.31 int] : ! [v1: collection] : ! [v2: collection] : ( ~ (add(v0, v1) = v2) | % 11.24/2.31 ~ collection(v1) | in(v0, v1) | ? [v3: int] : (count(v2) = v3 & count(v1) = % 11.24/2.31 $sum(v3, -1))) % 11.24/2.31 % 11.24/2.31 (ax4) % 11.24/2.31 ! [v0: int] : ! [v1: collection] : ! [v2: int] : ! [v3: collection] : (v2 % 11.24/2.31 = v0 | ~ (add(v2, v1) = v3) | ~ collection(v1) | ~ in(v0, v3) | in(v0, % 11.24/2.31 v1)) & ! [v0: int] : ! [v1: collection] : ! [v2: int] : ! [v3: % 11.24/2.31 collection] : ( ~ (add(v2, v1) = v3) | ~ collection(v1) | ~ in(v0, v1) | % 11.24/2.31 in(v0, v3)) & ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ % 11.24/2.31 (add(v0, v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: int] : % 11.24/2.31 (count(v2) = v3 & count(v1) = v3)) & ! [v0: int] : ! [v1: collection] : ! % 11.24/2.31 [v2: collection] : ( ~ (add(v0, v1) = v2) | ~ collection(v1) | in(v0, v2)) & % 11.24/2.31 ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ (add(v0, v1) = % 11.24/2.31 v2) | ~ collection(v1) | in(v0, v1) | ? [v3: int] : ? [v4: int] : ( ~ % 11.24/2.31 (v4 = v3) & count(v2) = v3 & count(v1) = v4)) % 11.24/2.31 % 11.24/2.31 (ax5) % 11.24/2.32 ! [v0: int] : ! [v1: collection] : ! [v2: int] : ! [v3: collection] : (v2 % 11.24/2.32 = v0 | ~ (remove(v2, v1) = v3) | ~ collection(v1) | ~ in(v0, v1) | in(v0, % 11.24/2.32 v3)) & ! [v0: int] : ! [v1: collection] : ! [v2: int] : ! [v3: % 11.24/2.32 collection] : ( ~ (remove(v2, v1) = v3) | ~ collection(v1) | ~ in(v0, v3) % 11.24/2.32 | in(v0, v1)) & ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( % 11.24/2.32 ~ (remove(v0, v1) = v2) | ~ collection(v1) | ~ in(v0, v2)) & ! [v0: int] % 11.24/2.32 : ! [v1: collection] : ! [v2: collection] : ( ~ (remove(v0, v1) = v2) | ~ % 11.24/2.32 collection(v1) | ~ in(v0, v1) | ? [v3: int] : (count(v2) = v3 & count(v1) % 11.24/2.32 = $sum(v3, 1))) & ! [v0: int] : ! [v1: collection] : ! [v2: collection] % 11.24/2.32 : ( ~ (remove(v0, v1) = v2) | ~ collection(v1) | in(v0, v1) | ? [v3: int] : % 11.24/2.32 ? [v4: int] : ( ~ ($difference(v4, v3) = 1) & count(v2) = v3 & count(v1) = % 11.24/2.32 v4)) % 11.24/2.32 % 11.24/2.32 (ax6) % 11.24/2.32 ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ (remove(v0, v1) % 11.24/2.32 = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: int] : ? [v4: int] : % 11.24/2.32 ( ~ (v4 = v3) & count(v2) = v3 & count(v1) = v4)) & ! [v0: int] : ! [v1: % 11.24/2.32 collection] : ! [v2: collection] : ( ~ (remove(v0, v1) = v2) | ~ % 11.24/2.32 collection(v1) | in(v0, v1) | ? [v3: int] : (count(v2) = v3 & count(v1) = % 11.24/2.32 v3)) % 11.24/2.32 % 11.24/2.32 (co1) % 11.24/2.32 ? [v0: collection] : ? [v1: collection] : ? [v2: int] : ? [v3: collection] % 11.24/2.32 : ? [v4: collection] : ? [v5: int] : ? [v6: collection] : ? [v7: int] : ( % 11.24/2.32 ~ (v7 = v5) & remove(5, v0) = v4 & remove(3, v0) = v6 & add(5, v0) = v1 & % 11.24/2.32 add(3, v0) = v3 & count(v6) = v7 & count(v4) = v5 & count(v3) = v2 & % 11.24/2.32 count(v1) = v2 & collection(v6) & collection(v4) & collection(v3) & % 11.24/2.32 collection(v1) & collection(v0)) % 11.24/2.32 % 11.24/2.32 (function-axioms) % 11.24/2.32 ! [v0: collection] : ! [v1: collection] : ! [v2: collection] : ! [v3: int] % 11.24/2.32 : (v1 = v0 | ~ (remove(v3, v2) = v1) | ~ (remove(v3, v2) = v0)) & ! [v0: % 11.24/2.32 collection] : ! [v1: collection] : ! [v2: collection] : ! [v3: int] : (v1 % 11.24/2.32 = v0 | ~ (add(v3, v2) = v1) | ~ (add(v3, v2) = v0)) & ! [v0: int] : ! % 11.24/2.32 [v1: int] : ! [v2: collection] : (v1 = v0 | ~ (count(v2) = v1) | ~ % 11.24/2.32 (count(v2) = v0)) % 11.24/2.32 % 11.24/2.32 Further assumptions not needed in the proof: % 11.24/2.32 -------------------------------------------- % 11.24/2.32 ax1, ax2, ax7 % 11.24/2.32 % 11.24/2.32 Those formulas are unsatisfiable: % 11.24/2.32 --------------------------------- % 11.24/2.32 % 11.24/2.32 Begin of proof % 11.24/2.32 | % 11.24/2.32 | ALPHA: (ax3) implies: % 11.24/2.33 | (1) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ (add(v0, % 11.24/2.33 | v1) = v2) | ~ collection(v1) | in(v0, v1) | ? [v3: int] : % 11.24/2.33 | (count(v2) = v3 & count(v1) = $sum(v3, -1))) % 11.24/2.33 | (2) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ (add(v0, % 11.24/2.33 | v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: int] : ? % 11.24/2.33 | [v4: int] : ( ~ ($difference(v4, v3) = -1) & count(v2) = v3 & % 11.24/2.33 | count(v1) = v4)) % 11.24/2.33 | % 11.24/2.33 | ALPHA: (ax4) implies: % 11.77/2.33 | (3) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ (add(v0, % 11.77/2.33 | v1) = v2) | ~ collection(v1) | in(v0, v1) | ? [v3: int] : ? % 11.77/2.33 | [v4: int] : ( ~ (v4 = v3) & count(v2) = v3 & count(v1) = v4)) % 11.77/2.33 | (4) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ (add(v0, % 11.77/2.33 | v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: int] : % 11.77/2.33 | (count(v2) = v3 & count(v1) = v3)) % 11.77/2.33 | % 11.77/2.33 | ALPHA: (ax5) implies: % 11.77/2.33 | (5) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ % 11.77/2.33 | (remove(v0, v1) = v2) | ~ collection(v1) | in(v0, v1) | ? [v3: int] % 11.77/2.33 | : ? [v4: int] : ( ~ ($difference(v4, v3) = 1) & count(v2) = v3 & % 11.77/2.33 | count(v1) = v4)) % 11.77/2.33 | (6) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ % 11.77/2.33 | (remove(v0, v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: % 11.77/2.33 | int] : (count(v2) = v3 & count(v1) = $sum(v3, 1))) % 11.77/2.33 | % 11.77/2.33 | ALPHA: (ax6) implies: % 11.77/2.33 | (7) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ % 11.77/2.33 | (remove(v0, v1) = v2) | ~ collection(v1) | in(v0, v1) | ? [v3: int] % 11.77/2.33 | : (count(v2) = v3 & count(v1) = v3)) % 11.77/2.33 | (8) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ % 11.77/2.33 | (remove(v0, v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: % 11.77/2.33 | int] : ? [v4: int] : ( ~ (v4 = v3) & count(v2) = v3 & count(v1) = % 11.77/2.33 | v4)) % 11.77/2.33 | % 11.77/2.33 | ALPHA: (function-axioms) implies: % 11.77/2.33 | (9) ! [v0: int] : ! [v1: int] : ! [v2: collection] : (v1 = v0 | ~ % 11.77/2.33 | (count(v2) = v1) | ~ (count(v2) = v0)) % 11.77/2.33 | % 11.77/2.34 | DELTA: instantiating (co1) with fresh symbols all_13_0, all_13_1, all_13_2, % 11.77/2.34 | all_13_3, all_13_4, all_13_5, all_13_6, all_13_7 gives: % 11.77/2.34 | (10) ~ (all_13_0 = all_13_2) & remove(5, all_13_7) = all_13_3 & remove(3, % 11.77/2.34 | all_13_7) = all_13_1 & add(5, all_13_7) = all_13_6 & add(3, % 11.77/2.34 | all_13_7) = all_13_4 & count(all_13_1) = all_13_0 & count(all_13_3) % 11.77/2.34 | = all_13_2 & count(all_13_4) = all_13_5 & count(all_13_6) = all_13_5 & % 11.77/2.34 | collection(all_13_1) & collection(all_13_3) & collection(all_13_4) & % 11.77/2.34 | collection(all_13_6) & collection(all_13_7) % 11.77/2.34 | % 11.77/2.34 | ALPHA: (10) implies: % 11.77/2.34 | (11) ~ (all_13_0 = all_13_2) % 11.77/2.34 | (12) collection(all_13_7) % 11.77/2.34 | (13) count(all_13_6) = all_13_5 % 11.77/2.34 | (14) count(all_13_4) = all_13_5 % 11.77/2.34 | (15) count(all_13_3) = all_13_2 % 11.77/2.34 | (16) count(all_13_1) = all_13_0 % 11.77/2.34 | (17) add(3, all_13_7) = all_13_4 % 11.77/2.34 | (18) add(5, all_13_7) = all_13_6 % 11.77/2.34 | (19) remove(3, all_13_7) = all_13_1 % 11.77/2.34 | (20) remove(5, all_13_7) = all_13_3 % 11.77/2.34 | % 11.77/2.34 | GROUND_INST: instantiating (3) with 3, all_13_7, all_13_4, simplifying with % 11.77/2.34 | (12), (17) gives: % 11.77/2.34 | (21) in(3, all_13_7) | ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & % 11.77/2.34 | count(all_13_4) = v0 & count(all_13_7) = v1) % 11.77/2.34 | % 11.77/2.34 | GROUND_INST: instantiating (1) with 3, all_13_7, all_13_4, simplifying with % 11.77/2.34 | (12), (17) gives: % 11.77/2.34 | (22) in(3, all_13_7) | ? [v0: int] : (count(all_13_4) = v0 & % 11.77/2.34 | count(all_13_7) = $sum(v0, -1)) % 11.77/2.34 | % 11.77/2.34 | GROUND_INST: instantiating (3) with 5, all_13_7, all_13_6, simplifying with % 11.77/2.34 | (12), (18) gives: % 11.77/2.34 | (23) in(5, all_13_7) | ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & % 11.77/2.34 | count(all_13_6) = v0 & count(all_13_7) = v1) % 11.77/2.34 | % 11.77/2.34 | GROUND_INST: instantiating (1) with 5, all_13_7, all_13_6, simplifying with % 11.77/2.34 | (12), (18) gives: % 11.77/2.34 | (24) in(5, all_13_7) | ? [v0: int] : (count(all_13_6) = v0 & % 11.77/2.34 | count(all_13_7) = $sum(v0, -1)) % 11.77/2.34 | % 11.77/2.34 | GROUND_INST: instantiating (5) with 3, all_13_7, all_13_1, simplifying with % 11.77/2.34 | (12), (19) gives: % 11.77/2.34 | (25) in(3, all_13_7) | ? [v0: int] : ? [v1: int] : ( ~ ($difference(v1, % 11.77/2.34 | v0) = 1) & count(all_13_1) = v0 & count(all_13_7) = v1) % 11.77/2.34 | % 11.77/2.34 | GROUND_INST: instantiating (7) with 3, all_13_7, all_13_1, simplifying with % 11.77/2.34 | (12), (19) gives: % 11.77/2.34 | (26) in(3, all_13_7) | ? [v0: int] : (count(all_13_1) = v0 & % 11.77/2.34 | count(all_13_7) = v0) % 11.77/2.34 | % 11.77/2.34 | GROUND_INST: instantiating (5) with 5, all_13_7, all_13_3, simplifying with % 11.77/2.35 | (12), (20) gives: % 11.77/2.35 | (27) in(5, all_13_7) | ? [v0: int] : ? [v1: int] : ( ~ ($difference(v1, % 11.77/2.35 | v0) = 1) & count(all_13_3) = v0 & count(all_13_7) = v1) % 11.77/2.35 | % 11.77/2.35 | GROUND_INST: instantiating (7) with 5, all_13_7, all_13_3, simplifying with % 11.77/2.35 | (12), (20) gives: % 11.77/2.35 | (28) in(5, all_13_7) | ? [v0: int] : (count(all_13_3) = v0 & % 11.77/2.35 | count(all_13_7) = v0) % 11.77/2.35 | % 11.77/2.35 | BETA: splitting (28) gives: % 11.77/2.35 | % 11.77/2.35 | Case 1: % 11.77/2.35 | | % 11.77/2.35 | | (29) in(5, all_13_7) % 11.77/2.35 | | % 11.77/2.35 | | GROUND_INST: instantiating (8) with 5, all_13_7, all_13_3, simplifying with % 11.77/2.35 | | (12), (20), (29) gives: % 11.77/2.35 | | (30) ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & count(all_13_3) = v0 & % 11.77/2.35 | | count(all_13_7) = v1) % 11.77/2.35 | | % 11.77/2.35 | | REF_CLOSE: (2), (4), (6), (8), (9), (11), (12), (13), (14), (15), (16), % 11.77/2.35 | | (18), (19), (20), (21), (22), (26), (29), (30) are inconsistent % 11.77/2.35 | | by sub-proof #2. % 11.77/2.35 | | % 11.77/2.35 | Case 2: % 11.77/2.35 | | % 11.77/2.35 | | (31) ? [v0: int] : (count(all_13_3) = v0 & count(all_13_7) = v0) % 11.77/2.35 | | % 11.77/2.35 | | DELTA: instantiating (31) with fresh symbol all_32_0 gives: % 11.77/2.35 | | (32) count(all_13_3) = all_32_0 & count(all_13_7) = all_32_0 % 11.77/2.35 | | % 11.77/2.35 | | ALPHA: (32) implies: % 11.77/2.35 | | (33) count(all_13_7) = all_32_0 % 11.77/2.35 | | (34) count(all_13_3) = all_32_0 % 11.77/2.35 | | % 11.77/2.35 | | BETA: splitting (23) gives: % 11.77/2.35 | | % 11.77/2.35 | | Case 1: % 11.77/2.35 | | | % 11.77/2.35 | | | (35) in(5, all_13_7) % 11.77/2.35 | | | % 11.77/2.35 | | | GROUND_INST: instantiating (8) with 5, all_13_7, all_13_3, simplifying % 11.77/2.35 | | | with (12), (20), (35) gives: % 11.77/2.35 | | | (36) ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & count(all_13_3) = v0 % 11.77/2.35 | | | & count(all_13_7) = v1) % 11.77/2.35 | | | % 11.77/2.36 | | | REF_CLOSE: (2), (4), (6), (8), (9), (11), (12), (13), (14), (15), (16), % 11.77/2.36 | | | (18), (19), (20), (21), (22), (26), (35), (36) are inconsistent % 11.77/2.36 | | | by sub-proof #2. % 11.77/2.36 | | | % 11.77/2.36 | | Case 2: % 11.77/2.36 | | | % 11.77/2.36 | | | (37) ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & count(all_13_6) = v0 % 11.77/2.36 | | | & count(all_13_7) = v1) % 11.77/2.36 | | | % 11.77/2.36 | | | DELTA: instantiating (37) with fresh symbols all_38_0, all_38_1 gives: % 11.77/2.36 | | | (38) ~ (all_38_0 = all_38_1) & count(all_13_6) = all_38_1 & % 11.77/2.36 | | | count(all_13_7) = all_38_0 % 11.77/2.36 | | | % 11.77/2.36 | | | ALPHA: (38) implies: % 11.77/2.36 | | | (39) count(all_13_6) = all_38_1 % 11.77/2.36 | | | % 11.77/2.36 | | | BETA: splitting (24) gives: % 11.77/2.36 | | | % 11.77/2.36 | | | Case 1: % 11.77/2.36 | | | | % 11.77/2.36 | | | | (40) in(5, all_13_7) % 11.77/2.36 | | | | % 11.77/2.36 | | | | GROUND_INST: instantiating (8) with 5, all_13_7, all_13_3, simplifying % 11.77/2.36 | | | | with (12), (20), (40) gives: % 11.77/2.36 | | | | (41) ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & count(all_13_3) = % 11.77/2.36 | | | | v0 & count(all_13_7) = v1) % 11.77/2.36 | | | | % 11.77/2.36 | | | | REF_CLOSE: (2), (4), (6), (8), (9), (11), (12), (13), (14), (15), (16), % 11.77/2.36 | | | | (18), (19), (20), (21), (22), (26), (40), (41) are % 11.77/2.36 | | | | inconsistent by sub-proof #2. % 11.77/2.36 | | | | % 11.77/2.36 | | | Case 2: % 11.77/2.36 | | | | % 11.77/2.36 | | | | (42) ? [v0: int] : (count(all_13_6) = v0 & count(all_13_7) = % 11.77/2.36 | | | | $sum(v0, -1)) % 11.77/2.36 | | | | % 11.77/2.36 | | | | DELTA: instantiating (42) with fresh symbol all_44_0 gives: % 11.77/2.36 | | | | (43) count(all_13_6) = all_44_0 & count(all_13_7) = $sum(all_44_0, % 11.77/2.36 | | | | -1) % 11.77/2.36 | | | | % 11.77/2.36 | | | | ALPHA: (43) implies: % 11.77/2.36 | | | | (44) count(all_13_7) = $sum(all_44_0, -1) % 11.77/2.36 | | | | (45) count(all_13_6) = all_44_0 % 11.77/2.36 | | | | % 11.77/2.36 | | | | BETA: splitting (27) gives: % 11.77/2.36 | | | | % 11.77/2.36 | | | | Case 1: % 11.77/2.36 | | | | | % 11.77/2.36 | | | | | (46) in(5, all_13_7) % 11.77/2.36 | | | | | % 11.77/2.36 | | | | | GROUND_INST: instantiating (8) with 5, all_13_7, all_13_3, simplifying % 11.77/2.36 | | | | | with (12), (20), (46) gives: % 11.77/2.36 | | | | | (47) ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & count(all_13_3) % 11.77/2.36 | | | | | = v0 & count(all_13_7) = v1) % 11.77/2.36 | | | | | % 11.77/2.37 | | | | | REF_CLOSE: (2), (4), (6), (8), (9), (11), (12), (13), (14), (15), % 11.77/2.37 | | | | | (16), (18), (19), (20), (21), (22), (26), (46), (47) are % 11.77/2.37 | | | | | inconsistent by sub-proof #2. % 11.77/2.37 | | | | | % 11.77/2.37 | | | | Case 2: % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | (48) ? [v0: int] : ? [v1: int] : ( ~ ($difference(v1, v0) = 1) & % 11.77/2.37 | | | | | count(all_13_3) = v0 & count(all_13_7) = v1) % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | DELTA: instantiating (48) with fresh symbols all_50_0, all_50_1 gives: % 11.77/2.37 | | | | | (49) ~ ($difference(all_50_0, all_50_1) = 1) & count(all_13_3) = % 11.77/2.37 | | | | | all_50_1 & count(all_13_7) = all_50_0 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | ALPHA: (49) implies: % 11.77/2.37 | | | | | (50) count(all_13_7) = all_50_0 % 11.77/2.37 | | | | | (51) count(all_13_3) = all_50_1 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | GROUND_INST: instantiating (9) with $sum(all_44_0, -1), all_50_0, % 11.77/2.37 | | | | | all_13_7, simplifying with (44), (50) gives: % 11.77/2.37 | | | | | (52) $difference(all_50_0, all_44_0) = -1 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | GROUND_INST: instantiating (9) with all_32_0, all_50_0, all_13_7, % 11.77/2.37 | | | | | simplifying with (33), (50) gives: % 11.77/2.37 | | | | | (53) all_50_0 = all_32_0 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | GROUND_INST: instantiating (9) with all_13_5, all_38_1, all_13_6, % 11.77/2.37 | | | | | simplifying with (13), (39) gives: % 11.77/2.37 | | | | | (54) all_38_1 = all_13_5 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | GROUND_INST: instantiating (9) with all_38_1, all_44_0, all_13_6, % 11.77/2.37 | | | | | simplifying with (39), (45) gives: % 11.77/2.37 | | | | | (55) all_44_0 = all_38_1 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | GROUND_INST: instantiating (9) with all_13_2, all_50_1, all_13_3, % 11.77/2.37 | | | | | simplifying with (15), (51) gives: % 11.77/2.37 | | | | | (56) all_50_1 = all_13_2 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | GROUND_INST: instantiating (9) with all_32_0, all_50_1, all_13_3, % 11.77/2.37 | | | | | simplifying with (34), (51) gives: % 11.77/2.37 | | | | | (57) all_50_1 = all_32_0 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | COMBINE_EQS: (52), (53) imply: % 11.77/2.37 | | | | | (58) $difference(all_44_0, all_32_0) = 1 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | SIMP: (58) implies: % 11.77/2.37 | | | | | (59) $difference(all_44_0, all_32_0) = 1 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | COMBINE_EQS: (56), (57) imply: % 11.77/2.37 | | | | | (60) all_32_0 = all_13_2 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | SIMP: (60) implies: % 11.77/2.37 | | | | | (61) all_32_0 = all_13_2 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | COMBINE_EQS: (55), (59) imply: % 11.77/2.37 | | | | | (62) $difference(all_38_1, all_32_0) = 1 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | SIMP: (62) implies: % 11.77/2.37 | | | | | (63) $difference(all_38_1, all_32_0) = 1 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | COMBINE_EQS: (54), (63) imply: % 11.77/2.37 | | | | | (64) $difference(all_32_0, all_13_5) = -1 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | SIMP: (64) implies: % 11.77/2.37 | | | | | (65) $difference(all_32_0, all_13_5) = -1 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | COMBINE_EQS: (61), (65) imply: % 11.77/2.37 | | | | | (66) $difference(all_13_2, all_13_5) = -1 % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | REDUCE: (11), (66) imply: % 11.77/2.37 | | | | | (67) ~ ($difference(all_13_0, all_13_5) = -1) % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | REDUCE: (33), (65) imply: % 11.77/2.37 | | | | | (68) count(all_13_7) = $sum(all_13_5, -1) % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | BETA: splitting (26) gives: % 11.77/2.37 | | | | | % 11.77/2.37 | | | | | Case 1: % 11.77/2.37 | | | | | | % 11.77/2.37 | | | | | | (69) in(3, all_13_7) % 11.77/2.37 | | | | | | % 11.77/2.37 | | | | | | GROUND_INST: instantiating (6) with 3, all_13_7, all_13_1, % 11.77/2.37 | | | | | | simplifying with (12), (19), (69) gives: % 11.77/2.38 | | | | | | (70) ? [v0: int] : (count(all_13_1) = v0 & count(all_13_7) = % 11.77/2.38 | | | | | | $sum(v0, 1)) % 11.77/2.38 | | | | | | % 11.77/2.38 | | | | | | REF_CLOSE: (2), (4), (9), (12), (14), (17), (68), (69), (70) are % 11.77/2.38 | | | | | | inconsistent by sub-proof #1. % 11.77/2.38 | | | | | | % 11.77/2.38 | | | | | Case 2: % 11.77/2.38 | | | | | | % 11.77/2.38 | | | | | | (71) ? [v0: int] : (count(all_13_1) = v0 & count(all_13_7) = v0) % 11.77/2.38 | | | | | | % 11.77/2.38 | | | | | | DELTA: instantiating (71) with fresh symbol all_60_0 gives: % 11.77/2.38 | | | | | | (72) count(all_13_1) = all_60_0 & count(all_13_7) = all_60_0 % 11.77/2.38 | | | | | | % 11.77/2.38 | | | | | | ALPHA: (72) implies: % 11.77/2.38 | | | | | | (73) count(all_13_7) = all_60_0 % 11.77/2.38 | | | | | | (74) count(all_13_1) = all_60_0 % 11.77/2.38 | | | | | | % 11.77/2.38 | | | | | | BETA: splitting (25) gives: % 11.77/2.38 | | | | | | % 11.77/2.38 | | | | | | Case 1: % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | (75) in(3, all_13_7) % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | GROUND_INST: instantiating (6) with 3, all_13_7, all_13_1, % 11.77/2.38 | | | | | | | simplifying with (12), (19), (75) gives: % 11.77/2.38 | | | | | | | (76) ? [v0: int] : (count(all_13_1) = v0 & count(all_13_7) = % 11.77/2.38 | | | | | | | $sum(v0, 1)) % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | REF_CLOSE: (2), (4), (9), (12), (14), (17), (68), (75), (76) are % 11.77/2.38 | | | | | | | inconsistent by sub-proof #1. % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | Case 2: % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | (77) ? [v0: int] : ? [v1: int] : ( ~ ($difference(v1, v0) = % 11.77/2.38 | | | | | | | 1) & count(all_13_1) = v0 & count(all_13_7) = v1) % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | DELTA: instantiating (77) with fresh symbols all_66_0, all_66_1 % 11.77/2.38 | | | | | | | gives: % 11.77/2.38 | | | | | | | (78) ~ ($difference(all_66_0, all_66_1) = 1) & count(all_13_1) % 11.77/2.38 | | | | | | | = all_66_1 & count(all_13_7) = all_66_0 % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | ALPHA: (78) implies: % 11.77/2.38 | | | | | | | (79) count(all_13_7) = all_66_0 % 11.77/2.38 | | | | | | | (80) count(all_13_1) = all_66_1 % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | GROUND_INST: instantiating (9) with all_60_0, all_66_0, all_13_7, % 11.77/2.38 | | | | | | | simplifying with (73), (79) gives: % 11.77/2.38 | | | | | | | (81) all_66_0 = all_60_0 % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | GROUND_INST: instantiating (9) with $sum(all_13_5, -1), all_66_0, % 11.77/2.38 | | | | | | | all_13_7, simplifying with (68), (79) gives: % 11.77/2.38 | | | | | | | (82) $difference(all_66_0, all_13_5) = -1 % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | GROUND_INST: instantiating (9) with all_13_0, all_66_1, all_13_1, % 11.77/2.38 | | | | | | | simplifying with (16), (80) gives: % 11.77/2.38 | | | | | | | (83) all_66_1 = all_13_0 % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | GROUND_INST: instantiating (9) with all_60_0, all_66_1, all_13_1, % 11.77/2.38 | | | | | | | simplifying with (74), (80) gives: % 11.77/2.38 | | | | | | | (84) all_66_1 = all_60_0 % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | COMBINE_EQS: (81), (82) imply: % 11.77/2.38 | | | | | | | (85) $difference(all_60_0, all_13_5) = -1 % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | SIMP: (85) implies: % 11.77/2.38 | | | | | | | (86) $difference(all_60_0, all_13_5) = -1 % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | COMBINE_EQS: (83), (84) imply: % 11.77/2.38 | | | | | | | (87) all_60_0 = all_13_0 % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | COMBINE_EQS: (86), (87) imply: % 11.77/2.38 | | | | | | | (88) $difference(all_13_0, all_13_5) = -1 % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | REDUCE: (67), (88) imply: % 11.77/2.38 | | | | | | | (89) $false % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | | CLOSE: (89) is inconsistent. % 11.77/2.38 | | | | | | | % 11.77/2.38 | | | | | | End of split % 11.77/2.38 | | | | | | % 11.77/2.38 | | | | | End of split % 11.77/2.38 | | | | | % 11.77/2.38 | | | | End of split % 11.77/2.38 | | | | % 11.77/2.38 | | | End of split % 11.77/2.38 | | | % 11.77/2.38 | | End of split % 11.77/2.38 | | % 11.77/2.38 | End of split % 11.77/2.38 | % 11.77/2.38 End of proof % 11.77/2.38 % 11.77/2.38 Sub-proof #1 shows that the following formulas are inconsistent: % 11.77/2.38 ---------------------------------------------------------------- % 11.77/2.39 (1) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ (add(v0, % 11.77/2.39 v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: int] : % 11.77/2.39 (count(v2) = v3 & count(v1) = v3)) % 11.77/2.39 (2) count(all_13_7) = $sum(all_13_5, -1) % 11.77/2.39 (3) count(all_13_4) = all_13_5 % 11.77/2.39 (4) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ (add(v0, % 11.77/2.39 v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: int] : ? % 11.77/2.39 [v4: int] : ( ~ ($difference(v4, v3) = -1) & count(v2) = v3 & count(v1) % 11.77/2.39 = v4)) % 11.77/2.39 (5) add(3, all_13_7) = all_13_4 % 11.77/2.39 (6) collection(all_13_7) % 11.77/2.39 (7) in(3, all_13_7) % 11.77/2.39 (8) ! [v0: int] : ! [v1: int] : ! [v2: collection] : (v1 = v0 | ~ % 11.77/2.39 (count(v2) = v1) | ~ (count(v2) = v0)) % 11.77/2.39 (9) ? [v0: int] : (count(all_13_1) = v0 & count(all_13_7) = $sum(v0, 1)) % 11.77/2.39 % 11.77/2.39 Begin of proof % 11.77/2.39 | % 11.77/2.39 | GROUND_INST: instantiating (4) with 3, all_13_7, all_13_4, simplifying with % 11.77/2.39 | (5), (6), (7) gives: % 11.77/2.39 | (10) ? [v0: int] : ? [v1: int] : ( ~ ($difference(v1, v0) = -1) & % 11.77/2.39 | count(all_13_4) = v0 & count(all_13_7) = v1) % 11.77/2.39 | % 11.77/2.39 | GROUND_INST: instantiating (1) with 3, all_13_7, all_13_4, simplifying with % 11.77/2.39 | (5), (6), (7) gives: % 11.77/2.39 | (11) ? [v0: int] : (count(all_13_4) = v0 & count(all_13_7) = v0) % 11.77/2.39 | % 11.77/2.39 | DELTA: instantiating (9) with fresh symbol all_66_0 gives: % 11.77/2.39 | (12) count(all_13_1) = all_66_0 & count(all_13_7) = $sum(all_66_0, 1) % 11.77/2.39 | % 11.77/2.39 | ALPHA: (12) implies: % 11.77/2.39 | (13) count(all_13_7) = $sum(all_66_0, 1) % 11.77/2.39 | % 11.77/2.39 | DELTA: instantiating (11) with fresh symbol all_68_0 gives: % 11.77/2.39 | (14) count(all_13_4) = all_68_0 & count(all_13_7) = all_68_0 % 11.77/2.39 | % 11.77/2.39 | ALPHA: (14) implies: % 11.77/2.39 | (15) count(all_13_7) = all_68_0 % 11.77/2.39 | (16) count(all_13_4) = all_68_0 % 11.77/2.39 | % 11.77/2.39 | DELTA: instantiating (10) with fresh symbols all_70_0, all_70_1 gives: % 12.08/2.39 | (17) ~ ($difference(all_70_0, all_70_1) = -1) & count(all_13_4) = all_70_1 % 12.08/2.39 | & count(all_13_7) = all_70_0 % 12.08/2.39 | % 12.08/2.39 | ALPHA: (17) implies: % 12.08/2.39 | (18) count(all_13_7) = all_70_0 % 12.08/2.39 | (19) count(all_13_4) = all_70_1 % 12.08/2.39 | % 12.08/2.39 | GROUND_INST: instantiating (8) with $sum(all_66_0, 1), all_68_0, all_13_7, % 12.08/2.39 | simplifying with (13), (15) gives: % 12.08/2.39 | (20) $difference(all_68_0, all_66_0) = 1 % 12.08/2.39 | % 12.08/2.39 | GROUND_INST: instantiating (8) with $sum(all_13_5, -1), all_70_0, all_13_7, % 12.08/2.39 | simplifying with (2), (18) gives: % 12.08/2.39 | (21) $difference(all_70_0, all_13_5) = -1 % 12.08/2.39 | % 12.08/2.39 | GROUND_INST: instantiating (8) with all_68_0, all_70_0, all_13_7, simplifying % 12.08/2.39 | with (15), (18) gives: % 12.08/2.39 | (22) all_70_0 = all_68_0 % 12.08/2.39 | % 12.08/2.39 | GROUND_INST: instantiating (8) with all_13_5, all_70_1, all_13_4, simplifying % 12.08/2.39 | with (3), (19) gives: % 12.08/2.39 | (23) all_70_1 = all_13_5 % 12.08/2.39 | % 12.08/2.39 | GROUND_INST: instantiating (8) with all_68_0, all_70_1, all_13_4, simplifying % 12.08/2.39 | with (16), (19) gives: % 12.08/2.39 | (24) all_70_1 = all_68_0 % 12.08/2.39 | % 12.08/2.39 | COMBINE_EQS: (21), (22) imply: % 12.08/2.39 | (25) $difference(all_68_0, all_13_5) = -1 % 12.08/2.39 | % 12.08/2.39 | SIMP: (25) implies: % 12.08/2.40 | (26) $difference(all_68_0, all_13_5) = -1 % 12.08/2.40 | % 12.08/2.40 | COMBINE_EQS: (23), (24) imply: % 12.08/2.40 | (27) all_68_0 = all_13_5 % 12.08/2.40 | % 12.08/2.40 | SIMP: (27) implies: % 12.08/2.40 | (28) all_68_0 = all_13_5 % 12.08/2.40 | % 12.08/2.40 | COMBINE_EQS: (20), (28) imply: % 12.08/2.40 | (29) $difference(all_66_0, all_13_5) = -1 % 12.08/2.40 | % 12.08/2.40 | COMBINE_EQS: (20), (26) imply: % 12.08/2.40 | (30) $difference(all_66_0, all_13_5) = -2 % 12.08/2.40 | % 12.08/2.40 | COMBINE_EQS: (29), (30) imply: % 12.08/2.40 | (31) $false % 12.08/2.40 | % 12.08/2.40 | CLOSE: (31) is inconsistent. % 12.08/2.40 | % 12.08/2.40 End of proof % 12.08/2.40 % 12.08/2.40 Sub-proof #2 shows that the following formulas are inconsistent: % 12.08/2.40 ---------------------------------------------------------------- % 12.08/2.40 (1) remove(5, all_13_7) = all_13_3 % 12.08/2.40 (2) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ % 12.08/2.40 (remove(v0, v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: % 12.08/2.40 int] : ? [v4: int] : ( ~ (v4 = v3) & count(v2) = v3 & count(v1) = % 12.08/2.40 v4)) % 12.08/2.40 (3) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ (add(v0, % 12.08/2.40 v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: int] : % 12.08/2.40 (count(v2) = v3 & count(v1) = v3)) % 12.08/2.40 (4) in(5, all_13_7) % 12.08/2.40 (5) remove(3, all_13_7) = all_13_1 % 12.08/2.40 (6) in(3, all_13_7) | ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & % 12.08/2.40 count(all_13_4) = v0 & count(all_13_7) = v1) % 12.08/2.40 (7) add(5, all_13_7) = all_13_6 % 12.08/2.40 (8) count(all_13_4) = all_13_5 % 12.08/2.40 (9) in(3, all_13_7) | ? [v0: int] : (count(all_13_4) = v0 & count(all_13_7) % 12.08/2.40 = $sum(v0, -1)) % 12.08/2.40 (10) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ (add(v0, % 12.08/2.40 v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: int] : ? % 12.08/2.40 [v4: int] : ( ~ ($difference(v4, v3) = -1) & count(v2) = v3 & % 12.08/2.40 count(v1) = v4)) % 12.08/2.40 (11) in(3, all_13_7) | ? [v0: int] : (count(all_13_1) = v0 & count(all_13_7) % 12.08/2.40 = v0) % 12.08/2.40 (12) collection(all_13_7) % 12.08/2.40 (13) count(all_13_6) = all_13_5 % 12.08/2.40 (14) ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & count(all_13_3) = v0 & % 12.08/2.40 count(all_13_7) = v1) % 12.08/2.40 (15) ! [v0: int] : ! [v1: int] : ! [v2: collection] : (v1 = v0 | ~ % 12.08/2.40 (count(v2) = v1) | ~ (count(v2) = v0)) % 12.08/2.40 (16) ~ (all_13_0 = all_13_2) % 12.08/2.40 (17) count(all_13_3) = all_13_2 % 12.08/2.40 (18) count(all_13_1) = all_13_0 % 12.08/2.40 (19) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ % 12.08/2.40 (remove(v0, v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: % 12.08/2.40 int] : (count(v2) = v3 & count(v1) = $sum(v3, 1))) % 12.08/2.40 % 12.08/2.40 Begin of proof % 12.08/2.40 | % 12.08/2.40 | GROUND_INST: instantiating (19) with 5, all_13_7, all_13_3, simplifying with % 12.08/2.40 | (1), (4), (12) gives: % 12.08/2.41 | (20) ? [v0: int] : (count(all_13_3) = v0 & count(all_13_7) = $sum(v0, 1)) % 12.08/2.41 | % 12.08/2.41 | GROUND_INST: instantiating (10) with 5, all_13_7, all_13_6, simplifying with % 12.08/2.41 | (4), (7), (12) gives: % 12.08/2.41 | (21) ? [v0: int] : ? [v1: int] : ( ~ ($difference(v1, v0) = -1) & % 12.08/2.41 | count(all_13_6) = v0 & count(all_13_7) = v1) % 12.08/2.41 | % 12.08/2.41 | GROUND_INST: instantiating (3) with 5, all_13_7, all_13_6, simplifying with % 12.08/2.41 | (4), (7), (12) gives: % 12.08/2.41 | (22) ? [v0: int] : (count(all_13_6) = v0 & count(all_13_7) = v0) % 12.08/2.41 | % 12.08/2.41 | DELTA: instantiating (22) with fresh symbol all_38_0 gives: % 12.08/2.41 | (23) count(all_13_6) = all_38_0 & count(all_13_7) = all_38_0 % 12.08/2.41 | % 12.08/2.41 | ALPHA: (23) implies: % 12.08/2.41 | (24) count(all_13_7) = all_38_0 % 12.08/2.41 | (25) count(all_13_6) = all_38_0 % 12.08/2.41 | % 12.08/2.41 | DELTA: instantiating (20) with fresh symbol all_40_0 gives: % 12.08/2.41 | (26) count(all_13_3) = all_40_0 & count(all_13_7) = $sum(all_40_0, 1) % 12.08/2.41 | % 12.08/2.41 | ALPHA: (26) implies: % 12.08/2.41 | (27) count(all_13_7) = $sum(all_40_0, 1) % 12.08/2.41 | (28) count(all_13_3) = all_40_0 % 12.08/2.41 | % 12.08/2.41 | DELTA: instantiating (14) with fresh symbols all_42_0, all_42_1 gives: % 12.08/2.41 | (29) ~ (all_42_0 = all_42_1) & count(all_13_3) = all_42_1 & % 12.08/2.41 | count(all_13_7) = all_42_0 % 12.08/2.41 | % 12.08/2.41 | ALPHA: (29) implies: % 12.08/2.41 | (30) count(all_13_7) = all_42_0 % 12.08/2.41 | (31) count(all_13_3) = all_42_1 % 12.08/2.41 | % 12.08/2.41 | DELTA: instantiating (21) with fresh symbols all_44_0, all_44_1 gives: % 12.08/2.41 | (32) ~ ($difference(all_44_0, all_44_1) = -1) & count(all_13_6) = all_44_1 % 12.08/2.41 | & count(all_13_7) = all_44_0 % 12.08/2.41 | % 12.08/2.41 | ALPHA: (32) implies: % 12.08/2.41 | (33) count(all_13_7) = all_44_0 % 12.08/2.41 | (34) count(all_13_6) = all_44_1 % 12.08/2.41 | % 12.08/2.41 | GROUND_INST: instantiating (15) with $sum(all_40_0, 1), all_42_0, all_13_7, % 12.08/2.41 | simplifying with (27), (30) gives: % 12.08/2.41 | (35) $difference(all_42_0, all_40_0) = 1 % 12.08/2.41 | % 12.08/2.41 | GROUND_INST: instantiating (15) with all_42_0, all_44_0, all_13_7, simplifying % 12.08/2.41 | with (30), (33) gives: % 12.08/2.41 | (36) all_44_0 = all_42_0 % 12.08/2.41 | % 12.08/2.41 | GROUND_INST: instantiating (15) with all_38_0, all_44_0, all_13_7, simplifying % 12.08/2.41 | with (24), (33) gives: % 12.08/2.41 | (37) all_44_0 = all_38_0 % 12.08/2.41 | % 12.08/2.41 | GROUND_INST: instantiating (15) with all_13_5, all_44_1, all_13_6, simplifying % 12.08/2.41 | with (13), (34) gives: % 12.08/2.41 | (38) all_44_1 = all_13_5 % 12.08/2.41 | % 12.08/2.41 | GROUND_INST: instantiating (15) with all_38_0, all_44_1, all_13_6, simplifying % 12.08/2.41 | with (25), (34) gives: % 12.08/2.41 | (39) all_44_1 = all_38_0 % 12.08/2.41 | % 12.08/2.41 | GROUND_INST: instantiating (15) with all_13_2, all_42_1, all_13_3, simplifying % 12.08/2.41 | with (17), (31) gives: % 12.08/2.41 | (40) all_42_1 = all_13_2 % 12.08/2.41 | % 12.08/2.41 | GROUND_INST: instantiating (15) with all_40_0, all_42_1, all_13_3, simplifying % 12.08/2.41 | with (28), (31) gives: % 12.08/2.41 | (41) all_42_1 = all_40_0 % 12.08/2.41 | % 12.08/2.41 | COMBINE_EQS: (36), (37) imply: % 12.08/2.41 | (42) all_42_0 = all_38_0 % 12.08/2.41 | % 12.08/2.41 | SIMP: (42) implies: % 12.08/2.41 | (43) all_42_0 = all_38_0 % 12.08/2.41 | % 12.08/2.41 | COMBINE_EQS: (38), (39) imply: % 12.08/2.41 | (44) all_38_0 = all_13_5 % 12.08/2.41 | % 12.08/2.41 | SIMP: (44) implies: % 12.08/2.41 | (45) all_38_0 = all_13_5 % 12.08/2.41 | % 12.08/2.41 | COMBINE_EQS: (35), (43) imply: % 12.08/2.41 | (46) $difference(all_40_0, all_38_0) = -1 % 12.08/2.41 | % 12.08/2.41 | SIMP: (46) implies: % 12.08/2.41 | (47) $difference(all_40_0, all_38_0) = -1 % 12.08/2.41 | % 12.08/2.41 | COMBINE_EQS: (40), (41) imply: % 12.08/2.41 | (48) all_40_0 = all_13_2 % 12.08/2.41 | % 12.08/2.41 | SIMP: (48) implies: % 12.08/2.41 | (49) all_40_0 = all_13_2 % 12.08/2.41 | % 12.08/2.41 | COMBINE_EQS: (47), (49) imply: % 12.08/2.41 | (50) $difference(all_38_0, all_13_2) = 1 % 12.08/2.41 | % 12.08/2.41 | COMBINE_EQS: (45), (50) imply: % 12.08/2.41 | (51) $difference(all_13_2, all_13_5) = -1 % 12.08/2.41 | % 12.08/2.41 | SIMP: (51) implies: % 12.08/2.41 | (52) $difference(all_13_2, all_13_5) = -1 % 12.08/2.41 | % 12.08/2.41 | REDUCE: (16), (52) imply: % 12.08/2.41 | (53) ~ ($difference(all_13_0, all_13_5) = -1) % 12.08/2.41 | % 12.08/2.41 | REDUCE: (24), (45) imply: % 12.08/2.41 | (54) count(all_13_7) = all_13_5 % 12.08/2.41 | % 12.08/2.41 | BETA: splitting (9) gives: % 12.08/2.41 | % 12.08/2.41 | Case 1: % 12.08/2.41 | | % 12.08/2.41 | | (55) in(3, all_13_7) % 12.08/2.41 | | % 12.08/2.41 | | GROUND_INST: instantiating (2) with 3, all_13_7, all_13_1, simplifying with % 12.08/2.41 | | (5), (12), (55) gives: % 12.08/2.42 | | (56) ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & count(all_13_1) = v0 & % 12.08/2.42 | | count(all_13_7) = v1) % 12.08/2.42 | | % 12.08/2.42 | | REF_CLOSE: (5), (12), (15), (18), (19), (53), (54), (55), (56) are % 12.08/2.42 | | inconsistent by sub-proof #3. % 12.08/2.42 | | % 12.08/2.42 | Case 2: % 12.08/2.42 | | % 12.08/2.42 | | (57) ? [v0: int] : (count(all_13_4) = v0 & count(all_13_7) = $sum(v0, % 12.08/2.42 | | -1)) % 12.08/2.42 | | % 12.08/2.42 | | DELTA: instantiating (57) with fresh symbol all_54_0 gives: % 12.08/2.42 | | (58) count(all_13_4) = all_54_0 & count(all_13_7) = $sum(all_54_0, -1) % 12.08/2.42 | | % 12.08/2.42 | | ALPHA: (58) implies: % 12.08/2.42 | | (59) count(all_13_7) = $sum(all_54_0, -1) % 12.08/2.42 | | (60) count(all_13_4) = all_54_0 % 12.08/2.42 | | % 12.08/2.42 | | BETA: splitting (11) gives: % 12.08/2.42 | | % 12.08/2.42 | | Case 1: % 12.08/2.42 | | | % 12.08/2.42 | | | (61) in(3, all_13_7) % 12.08/2.42 | | | % 12.08/2.42 | | | GROUND_INST: instantiating (2) with 3, all_13_7, all_13_1, simplifying % 12.08/2.42 | | | with (5), (12), (61) gives: % 12.08/2.42 | | | (62) ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & count(all_13_1) = v0 % 12.08/2.42 | | | & count(all_13_7) = v1) % 12.08/2.42 | | | % 12.08/2.42 | | | REF_CLOSE: (5), (12), (15), (18), (19), (53), (54), (61), (62) are % 12.08/2.42 | | | inconsistent by sub-proof #3. % 12.08/2.42 | | | % 12.08/2.42 | | Case 2: % 12.08/2.42 | | | % 12.08/2.42 | | | (63) ? [v0: int] : (count(all_13_1) = v0 & count(all_13_7) = v0) % 12.08/2.42 | | | % 12.08/2.42 | | | DELTA: instantiating (63) with fresh symbol all_60_0 gives: % 12.08/2.42 | | | (64) count(all_13_1) = all_60_0 & count(all_13_7) = all_60_0 % 12.08/2.42 | | | % 12.08/2.42 | | | ALPHA: (64) implies: % 12.08/2.42 | | | (65) count(all_13_7) = all_60_0 % 12.08/2.42 | | | % 12.08/2.42 | | | BETA: splitting (6) gives: % 12.08/2.42 | | | % 12.08/2.42 | | | Case 1: % 12.08/2.42 | | | | % 12.08/2.42 | | | | (66) in(3, all_13_7) % 12.08/2.42 | | | | % 12.08/2.42 | | | | GROUND_INST: instantiating (2) with 3, all_13_7, all_13_1, simplifying % 12.08/2.42 | | | | with (5), (12), (66) gives: % 12.08/2.42 | | | | (67) ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & count(all_13_1) = % 12.08/2.42 | | | | v0 & count(all_13_7) = v1) % 12.08/2.42 | | | | % 12.08/2.42 | | | | REF_CLOSE: (5), (12), (15), (18), (19), (53), (54), (66), (67) are % 12.08/2.42 | | | | inconsistent by sub-proof #3. % 12.08/2.42 | | | | % 12.08/2.42 | | | Case 2: % 12.08/2.42 | | | | % 12.08/2.42 | | | | (68) ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & count(all_13_4) = % 12.08/2.42 | | | | v0 & count(all_13_7) = v1) % 12.08/2.42 | | | | % 12.08/2.42 | | | | DELTA: instantiating (68) with fresh symbols all_66_0, all_66_1 gives: % 12.08/2.42 | | | | (69) ~ (all_66_0 = all_66_1) & count(all_13_4) = all_66_1 & % 12.08/2.42 | | | | count(all_13_7) = all_66_0 % 12.08/2.42 | | | | % 12.08/2.42 | | | | ALPHA: (69) implies: % 12.08/2.42 | | | | (70) count(all_13_7) = all_66_0 % 12.08/2.42 | | | | (71) count(all_13_4) = all_66_1 % 12.08/2.42 | | | | % 12.08/2.42 | | | | GROUND_INST: instantiating (15) with all_60_0, all_66_0, all_13_7, % 12.08/2.42 | | | | simplifying with (65), (70) gives: % 12.08/2.42 | | | | (72) all_66_0 = all_60_0 % 12.08/2.42 | | | | % 12.08/2.42 | | | | GROUND_INST: instantiating (15) with $sum(all_54_0, -1), all_66_0, % 12.08/2.42 | | | | all_13_7, simplifying with (59), (70) gives: % 12.08/2.42 | | | | (73) $difference(all_66_0, all_54_0) = -1 % 12.08/2.42 | | | | % 12.08/2.42 | | | | GROUND_INST: instantiating (15) with all_13_5, all_66_0, all_13_7, % 12.08/2.42 | | | | simplifying with (54), (70) gives: % 12.08/2.42 | | | | (74) all_66_0 = all_13_5 % 12.08/2.42 | | | | % 12.08/2.42 | | | | GROUND_INST: instantiating (15) with all_13_5, all_66_1, all_13_4, % 12.08/2.42 | | | | simplifying with (8), (71) gives: % 12.08/2.42 | | | | (75) all_66_1 = all_13_5 % 12.08/2.42 | | | | % 12.08/2.42 | | | | GROUND_INST: instantiating (15) with all_54_0, all_66_1, all_13_4, % 12.08/2.42 | | | | simplifying with (60), (71) gives: % 12.08/2.42 | | | | (76) all_66_1 = all_54_0 % 12.08/2.42 | | | | % 12.08/2.42 | | | | COMBINE_EQS: (72), (73) imply: % 12.08/2.42 | | | | (77) $difference(all_60_0, all_54_0) = -1 % 12.08/2.42 | | | | % 12.08/2.42 | | | | COMBINE_EQS: (72), (74) imply: % 12.08/2.42 | | | | (78) all_60_0 = all_13_5 % 12.08/2.42 | | | | % 12.08/2.42 | | | | COMBINE_EQS: (75), (76) imply: % 12.08/2.42 | | | | (79) all_54_0 = all_13_5 % 12.08/2.42 | | | | % 12.08/2.42 | | | | SIMP: (79) implies: % 12.08/2.42 | | | | (80) all_54_0 = all_13_5 % 12.08/2.42 | | | | % 12.08/2.42 | | | | COMBINE_EQS: (77), (78) imply: % 12.08/2.42 | | | | (81) $difference(all_54_0, all_13_5) = 1 % 12.08/2.42 | | | | % 12.08/2.42 | | | | COMBINE_EQS: (80), (81) imply: % 12.08/2.42 | | | | (82) $false % 12.08/2.42 | | | | % 12.08/2.42 | | | | CLOSE: (82) is inconsistent. % 12.08/2.42 | | | | % 12.08/2.42 | | | End of split % 12.08/2.42 | | | % 12.08/2.42 | | End of split % 12.08/2.42 | | % 12.08/2.42 | End of split % 12.08/2.42 | % 12.08/2.42 End of proof % 12.08/2.42 % 12.08/2.42 Sub-proof #3 shows that the following formulas are inconsistent: % 12.08/2.42 ---------------------------------------------------------------- % 12.08/2.43 (1) remove(3, all_13_7) = all_13_1 % 12.08/2.43 (2) count(all_13_7) = all_13_5 % 12.08/2.43 (3) ~ ($difference(all_13_0, all_13_5) = -1) % 12.08/2.43 (4) collection(all_13_7) % 12.08/2.43 (5) in(3, all_13_7) % 12.08/2.43 (6) ! [v0: int] : ! [v1: int] : ! [v2: collection] : (v1 = v0 | ~ % 12.08/2.43 (count(v2) = v1) | ~ (count(v2) = v0)) % 12.08/2.43 (7) ? [v0: int] : ? [v1: int] : ( ~ (v1 = v0) & count(all_13_1) = v0 & % 12.08/2.43 count(all_13_7) = v1) % 12.08/2.43 (8) count(all_13_1) = all_13_0 % 12.08/2.43 (9) ! [v0: int] : ! [v1: collection] : ! [v2: collection] : ( ~ % 12.08/2.43 (remove(v0, v1) = v2) | ~ collection(v1) | ~ in(v0, v1) | ? [v3: % 12.08/2.43 int] : (count(v2) = v3 & count(v1) = $sum(v3, 1))) % 12.08/2.43 % 12.08/2.43 Begin of proof % 12.08/2.43 | % 12.08/2.43 | GROUND_INST: instantiating (9) with 3, all_13_7, all_13_1, simplifying with % 12.08/2.43 | (1), (4), (5) gives: % 12.08/2.43 | (10) ? [v0: int] : (count(all_13_1) = v0 & count(all_13_7) = $sum(v0, 1)) % 12.08/2.43 | % 12.08/2.43 | DELTA: instantiating (10) with fresh symbol all_60_0 gives: % 12.08/2.43 | (11) count(all_13_1) = all_60_0 & count(all_13_7) = $sum(all_60_0, 1) % 12.08/2.43 | % 12.08/2.43 | ALPHA: (11) implies: % 12.08/2.43 | (12) count(all_13_7) = $sum(all_60_0, 1) % 12.08/2.43 | (13) count(all_13_1) = all_60_0 % 12.08/2.43 | % 12.08/2.43 | DELTA: instantiating (7) with fresh symbols all_62_0, all_62_1 gives: % 12.08/2.43 | (14) ~ (all_62_0 = all_62_1) & count(all_13_1) = all_62_1 & % 12.08/2.43 | count(all_13_7) = all_62_0 % 12.08/2.43 | % 12.08/2.43 | ALPHA: (14) implies: % 12.08/2.43 | (15) count(all_13_7) = all_62_0 % 12.08/2.43 | (16) count(all_13_1) = all_62_1 % 12.08/2.43 | % 12.08/2.43 | GROUND_INST: instantiating (6) with all_13_5, all_62_0, all_13_7, simplifying % 12.08/2.43 | with (2), (15) gives: % 12.08/2.43 | (17) all_62_0 = all_13_5 % 12.08/2.43 | % 12.08/2.43 | GROUND_INST: instantiating (6) with $sum(all_60_0, 1), all_62_0, all_13_7, % 12.08/2.43 | simplifying with (12), (15) gives: % 12.08/2.43 | (18) $difference(all_62_0, all_60_0) = 1 % 12.08/2.43 | % 12.08/2.43 | GROUND_INST: instantiating (6) with all_13_0, all_62_1, all_13_1, simplifying % 12.08/2.43 | with (8), (16) gives: % 12.08/2.43 | (19) all_62_1 = all_13_0 % 12.08/2.43 | % 12.08/2.43 | GROUND_INST: instantiating (6) with all_60_0, all_62_1, all_13_1, simplifying % 12.08/2.43 | with (13), (16) gives: % 12.08/2.43 | (20) all_62_1 = all_60_0 % 12.08/2.43 | % 12.08/2.43 | COMBINE_EQS: (17), (18) imply: % 12.08/2.43 | (21) $difference(all_60_0, all_13_5) = -1 % 12.08/2.43 | % 12.08/2.43 | COMBINE_EQS: (19), (20) imply: % 12.08/2.43 | (22) all_60_0 = all_13_0 % 12.08/2.43 | % 12.08/2.43 | SIMP: (22) implies: % 12.08/2.43 | (23) all_60_0 = all_13_0 % 12.08/2.43 | % 12.08/2.43 | COMBINE_EQS: (21), (23) imply: % 12.08/2.43 | (24) $difference(all_13_0, all_13_5) = -1 % 12.08/2.43 | % 12.08/2.43 | REDUCE: (3), (24) imply: % 12.08/2.43 | (25) $false % 12.08/2.43 | % 12.08/2.43 | CLOSE: (25) is inconsistent. % 12.08/2.43 | % 12.08/2.43 End of proof % 12.08/2.43 % SZS output end Proof for theBenchmark % 12.08/2.43 % 12.08/2.43 1841ms %------------------------------------------------------------------------------