%------------------------------------------------------------------------------ % File : Princess---230619 % Problem : CSR014+1 : TPTP v8.1.2. Bugfixed v3.1.0. % Transfm : none % Format : tptp % Command : princess -inputFormat=tptp +threads -portfolio=casc +printProof -timeoutSec=%d %s % Computer : n021.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 21:36:24 EDT 2023 % Result : Theorem 11.26s 2.26s % Output : Proof 13.96s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.00/0.12 % Problem : CSR014+1 : TPTP v8.1.2. Bugfixed v3.1.0. % 0.00/0.13 % Command : princess -inputFormat=tptp +threads -portfolio=casc +printProof -timeoutSec=%d %s % 0.13/0.34 % Computer : n021.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 : Mon Aug 28 08:06:13 EDT 2023 % 0.13/0.34 % CPUTime : % 0.20/0.60 ________ _____ % 0.20/0.60 ___ __ \_________(_)________________________________ % 0.20/0.60 __ /_/ /_ ___/_ /__ __ \ ___/ _ \_ ___/_ ___/ % 0.20/0.60 _ ____/_ / _ / _ / / / /__ / __/(__ )_(__ ) % 0.20/0.60 /_/ /_/ /_/ /_/ /_/\___/ \___//____/ /____/ % 0.20/0.60 % 0.20/0.60 A Theorem Prover for First-Order Logic modulo Linear Integer Arithmetic % 0.20/0.60 (2023-06-19) % 0.20/0.60 % 0.20/0.60 (c) Philipp Rümmer, 2009-2023 % 0.20/0.60 Contributors: Peter Backeman, Peter Baumgartner, Angelo Brillout, Zafer Esen, % 0.20/0.60 Amanda Stjerna. % 0.20/0.60 Free software under BSD-3-Clause. % 0.20/0.60 % 0.20/0.60 For more information, visit http://www.philipp.ruemmer.org/princess.shtml % 0.20/0.60 % 0.20/0.60 Loading /export/starexec/sandbox/benchmark/theBenchmark.p ... % 0.20/0.61 Running up to 7 provers in parallel. % 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 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 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 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 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 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 6: Options: -triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=none +reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximalOutermost -realRatSaturationRounds=0 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=-1399714365 % 3.15/1.14 Prover 1: Preprocessing ... % 3.15/1.15 Prover 4: Preprocessing ... % 3.71/1.19 Prover 3: Preprocessing ... % 3.71/1.19 Prover 0: Preprocessing ... % 3.71/1.19 Prover 6: Preprocessing ... % 3.71/1.19 Prover 5: Preprocessing ... % 3.71/1.19 Prover 2: Preprocessing ... % 7.05/1.75 Prover 5: Proving ... % 8.46/1.88 Prover 6: Proving ... % 8.99/1.92 Prover 2: Proving ... % 8.99/1.92 Prover 1: Constructing countermodel ... % 8.99/1.94 Prover 3: Constructing countermodel ... % 9.38/2.00 Prover 4: Constructing countermodel ... % 10.27/2.09 Prover 0: Proving ... % 11.26/2.26 Prover 3: proved (1645ms) % 11.26/2.26 % 11.26/2.26 % SZS status Theorem for /export/starexec/sandbox/benchmark/theBenchmark.p % 11.26/2.26 % 11.67/2.27 Prover 5: stopped % 11.67/2.28 Prover 6: stopped % 11.67/2.29 Prover 7: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-236303470 % 11.67/2.29 Prover 2: stopped % 11.67/2.31 Prover 8: Options: +triggersInConjecture +genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-200781089 % 11.67/2.31 Prover 0: stopped % 11.67/2.32 Prover 10: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=919308125 % 11.67/2.32 Prover 11: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-1509710984 % 11.67/2.32 Prover 7: Preprocessing ... % 11.67/2.32 Prover 13: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=complete -randomSeed=1138197443 % 11.67/2.32 Prover 8: Preprocessing ... % 11.67/2.37 Prover 10: Preprocessing ... % 11.67/2.39 Prover 11: Preprocessing ... % 11.67/2.42 Prover 1: Found proof (size 70) % 11.67/2.42 Prover 1: proved (1801ms) % 11.67/2.43 Prover 7: Warning: ignoring some quantifiers % 11.67/2.43 Prover 10: stopped % 11.67/2.43 Prover 4: stopped % 11.67/2.45 Prover 13: Preprocessing ... % 11.67/2.49 Prover 7: Constructing countermodel ... % 12.61/2.50 Prover 11: stopped % 13.33/2.53 Prover 13: stopped % 13.33/2.53 Prover 7: stopped % 13.33/2.54 Prover 8: Warning: ignoring some quantifiers % 13.33/2.54 Prover 8: Constructing countermodel ... % 13.33/2.56 Prover 8: stopped % 13.33/2.56 % 13.33/2.56 % SZS status Theorem for /export/starexec/sandbox/benchmark/theBenchmark.p % 13.33/2.56 % 13.33/2.57 % SZS output start Proof for theBenchmark % 13.58/2.57 Assumptions after simplification: % 13.58/2.57 --------------------------------- % 13.58/2.57 % 13.58/2.57 (filling_3_l1) % 13.58/2.59 releasedAt(filling, n3) = 0 & $i(n3) & $i(filling) % 13.58/2.59 % 13.58/2.59 (filling_not_waterLevel) % 13.58/2.59 $i(filling) & ! [v0: $i] : ( ~ (waterLevel(v0) = filling) | ~ $i(v0)) % 13.58/2.59 % 13.58/2.59 (happens_all_defn) % 13.58/2.60 $i(n3) & $i(overflow) & $i(filling) & $i(tapOn) & $i(n0) & ? [v0: $i] : % 13.58/2.60 (waterLevel(n3) = v0 & $i(v0) & ! [v1: $i] : ! [v2: $i] : ! [v3: int] : (v3 % 13.58/2.60 = 0 | ~ (happens(v1, v2) = v3) | ~ $i(v2) | ~ $i(v1) | (( ~ (v2 = n0) | % 13.58/2.60 ~ (v1 = tapOn)) & ( ~ (v1 = overflow) | ? [v4: any] : ? [v5: any] : % 13.58/2.60 (holdsAt(v0, v2) = v4 & holdsAt(filling, v2) = v5 & ( ~ (v5 = 0) | ~ % 13.58/2.60 (v4 = 0)))))) & ! [v1: $i] : ! [v2: $i] : ( ~ (happens(v1, v2) = % 13.58/2.60 0) | ~ $i(v2) | ~ $i(v1) | (v2 = n0 & v1 = tapOn) | (v1 = overflow & % 13.58/2.60 holdsAt(v0, v2) = 0 & holdsAt(filling, v2) = 0))) % 13.58/2.60 % 13.58/2.60 (keep_not_released) % 13.58/2.60 $i(n1) & ! [v0: $i] : ! [v1: $i] : ! [v2: $i] : ( ~ (releasedAt(v0, v2) = % 13.58/2.60 0) | ~ (plus(v1, n1) = v2) | ~ $i(v1) | ~ $i(v0) | releasedAt(v0, v1) = % 13.58/2.60 0 | ? [v3: $i] : (releases(v3, v0, v1) = 0 & happens(v3, v1) = 0 & $i(v3))) % 13.58/2.60 % 13.58/2.60 (less2) % 13.58/2.60 $i(n2) & $i(n1) & ! [v0: $i] : ! [v1: int] : (v1 = 0 | ~ (less_or_equal(v0, % 13.58/2.60 n1) = v1) | ~ $i(v0) | ? [v2: int] : ( ~ (v2 = 0) & less(v0, n2) = % 13.58/2.60 v2)) & ! [v0: $i] : ( ~ (less_or_equal(v0, n1) = 0) | ~ $i(v0) | % 13.58/2.60 less(v0, n2) = 0) % 13.58/2.60 % 13.58/2.60 (less3) % 13.58/2.60 $i(n2) & $i(n3) & ! [v0: $i] : ! [v1: int] : (v1 = 0 | ~ (less_or_equal(v0, % 13.58/2.60 n2) = v1) | ~ $i(v0) | ? [v2: int] : ( ~ (v2 = 0) & less(v0, n3) = % 13.58/2.60 v2)) & ! [v0: $i] : ( ~ (less_or_equal(v0, n2) = 0) | ~ $i(v0) | % 13.58/2.60 less(v0, n3) = 0) % 13.58/2.60 % 13.58/2.60 (not_released_filling_0) % 13.58/2.60 $i(filling) & $i(n0) & ? [v0: int] : ( ~ (v0 = 0) & releasedAt(filling, n0) = % 13.58/2.60 v0) % 13.58/2.60 % 13.58/2.60 (not_released_spilling_0) % 13.58/2.61 $i(spilling) & $i(n0) & ? [v0: int] : ( ~ (v0 = 0) & releasedAt(spilling, n0) % 13.58/2.61 = v0) % 13.58/2.61 % 13.58/2.61 (overflow_not_tapOn) % 13.58/2.61 ~ (overflow = tapOn) & $i(overflow) & $i(tapOn) % 13.58/2.61 % 13.58/2.61 (plus0_1) % 13.58/2.61 plus(n0, n1) = n1 & $i(n1) & $i(n0) % 13.58/2.61 % 13.58/2.61 (plus0_2) % 13.58/2.61 plus(n0, n2) = n2 & $i(n2) & $i(n0) % 13.58/2.61 % 13.58/2.61 (plus1_1) % 13.58/2.61 plus(n1, n1) = n2 & $i(n2) & $i(n1) % 13.58/2.61 % 13.58/2.61 (plus1_2) % 13.58/2.61 plus(n1, n2) = n3 & $i(n2) & $i(n3) & $i(n1) % 13.58/2.61 % 13.58/2.61 (releases_all_defn) % 13.58/2.61 $i(tapOn) & ! [v0: $i] : ! [v1: $i] : ! [v2: $i] : ! [v3: int] : (v3 = 0 | % 13.58/2.61 ~ (releases(v0, v1, v2) = v3) | ~ $i(v2) | ~ $i(v1) | ~ $i(v0) | ! [v4: % 13.58/2.61 $i] : ( ~ (v0 = tapOn) | ~ (waterLevel(v4) = v1) | ~ $i(v4))) & ! [v0: % 13.58/2.61 $i] : ! [v1: $i] : ! [v2: $i] : ( ~ (releases(v0, v1, v2) = 0) | ~ $i(v2) % 13.58/2.61 | ~ $i(v1) | ~ $i(v0) | ? [v3: $i] : (v0 = tapOn & waterLevel(v3) = v1 & % 13.58/2.61 $i(v3))) % 13.58/2.61 % 13.58/2.61 (symmetry_of_plus) % 13.58/2.61 ! [v0: $i] : ! [v1: $i] : ! [v2: $i] : ( ~ (plus(v0, v1) = v2) | ~ $i(v1) % 13.58/2.61 | ~ $i(v0) | (plus(v1, v0) = v2 & $i(v2))) % 13.58/2.61 % 13.58/2.61 (function-axioms) % 13.58/2.61 ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: $i] : ! % 13.58/2.61 [v3: $i] : ! [v4: $i] : ! [v5: $i] : (v1 = v0 | ~ (antitrajectory(v5, v4, % 13.58/2.61 v3, v2) = v1) | ~ (antitrajectory(v5, v4, v3, v2) = v0)) & ! [v0: % 13.58/2.61 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: $i] : ! [v3: $i] % 13.58/2.61 : ! [v4: $i] : ! [v5: $i] : (v1 = v0 | ~ (trajectory(v5, v4, v3, v2) = v1) % 13.58/2.61 | ~ (trajectory(v5, v4, v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! % 13.58/2.61 [v1: MultipleValueBool] : ! [v2: $i] : ! [v3: $i] : ! [v4: $i] : (v1 = v0 | % 13.58/2.61 ~ (releases(v4, v3, v2) = v1) | ~ (releases(v4, v3, v2) = v0)) & ! [v0: % 13.58/2.61 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: $i] : ! [v3: $i] % 13.58/2.61 : ! [v4: $i] : (v1 = v0 | ~ (startedIn(v4, v3, v2) = v1) | ~ (startedIn(v4, % 13.58/2.61 v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] % 13.58/2.61 : ! [v2: $i] : ! [v3: $i] : ! [v4: $i] : (v1 = v0 | ~ (initiates(v4, v3, % 13.58/2.61 v2) = v1) | ~ (initiates(v4, v3, v2) = v0)) & ! [v0: % 13.58/2.61 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: $i] : ! [v3: $i] % 13.58/2.61 : ! [v4: $i] : (v1 = v0 | ~ (stoppedIn(v4, v3, v2) = v1) | ~ (stoppedIn(v4, % 13.58/2.61 v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] % 13.58/2.61 : ! [v2: $i] : ! [v3: $i] : ! [v4: $i] : (v1 = v0 | ~ (terminates(v4, v3, % 13.58/2.61 v2) = v1) | ~ (terminates(v4, v3, v2) = v0)) & ! [v0: % 13.58/2.61 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: $i] : ! [v3: $i] % 13.58/2.61 : (v1 = v0 | ~ (less_or_equal(v3, v2) = v1) | ~ (less_or_equal(v3, v2) = % 13.58/2.61 v0)) & ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: % 13.58/2.61 $i] : ! [v3: $i] : (v1 = v0 | ~ (releasedAt(v3, v2) = v1) | ~ % 13.58/2.61 (releasedAt(v3, v2) = v0)) & ! [v0: $i] : ! [v1: $i] : ! [v2: $i] : ! % 13.58/2.61 [v3: $i] : (v1 = v0 | ~ (plus(v3, v2) = v1) | ~ (plus(v3, v2) = v0)) & ! % 13.58/2.61 [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: $i] : ! [v3: % 13.58/2.61 $i] : (v1 = v0 | ~ (holdsAt(v3, v2) = v1) | ~ (holdsAt(v3, v2) = v0)) & ! % 13.58/2.61 [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: $i] : ! [v3: % 13.58/2.61 $i] : (v1 = v0 | ~ (happens(v3, v2) = v1) | ~ (happens(v3, v2) = v0)) & ! % 13.58/2.61 [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: $i] : ! [v3: % 13.58/2.61 $i] : (v1 = v0 | ~ (less(v3, v2) = v1) | ~ (less(v3, v2) = v0)) & ! [v0: % 13.58/2.61 $i] : ! [v1: $i] : ! [v2: $i] : (v1 = v0 | ~ (waterLevel(v2) = v1) | ~ % 13.58/2.61 (waterLevel(v2) = v0)) % 13.58/2.61 % 13.58/2.62 Further assumptions not needed in the proof: % 13.58/2.62 -------------------------------------------- % 13.58/2.62 antitrajectory, change_holding, change_of_waterLevel, distinct_waterLevels, % 13.58/2.62 filling_not_spilling, happens_holds, happens_not_released, happens_releases, % 13.58/2.62 happens_terminates_not_holds, initiates_all_defn, keep_holding, % 13.58/2.62 keep_not_holding, keep_released, less0, less1, less4, less5, less6, less7, % 13.58/2.62 less8, less9, less_or_equal, less_property, not_filling_0, % 13.58/2.62 not_released_waterLevel_0, not_spilling_0, plus0_0, plus0_3, plus1_3, plus2_2, % 13.58/2.62 plus2_3, plus3_3, same_waterLevel, spilling_not_waterLevel, startedin_defn, % 13.58/2.62 stoppedin_defn, tapOff_not_overflow, tapOff_not_tapOn, terminates_all_defn, % 13.58/2.62 waterLevel_0 % 13.58/2.62 % 13.58/2.62 Those formulas are unsatisfiable: % 13.58/2.62 --------------------------------- % 13.58/2.62 % 13.58/2.62 Begin of proof % 13.58/2.62 | % 13.58/2.62 | ALPHA: (keep_not_released) implies: % 13.58/2.62 | (1) ! [v0: $i] : ! [v1: $i] : ! [v2: $i] : ( ~ (releasedAt(v0, v2) = 0) % 13.58/2.62 | | ~ (plus(v1, n1) = v2) | ~ $i(v1) | ~ $i(v0) | releasedAt(v0, v1) % 13.58/2.62 | = 0 | ? [v3: $i] : (releases(v3, v0, v1) = 0 & happens(v3, v1) = 0 & % 13.58/2.62 | $i(v3))) % 13.58/2.62 | % 13.58/2.62 | ALPHA: (releases_all_defn) implies: % 13.58/2.62 | (2) ! [v0: $i] : ! [v1: $i] : ! [v2: $i] : ( ~ (releases(v0, v1, v2) = % 13.58/2.62 | 0) | ~ $i(v2) | ~ $i(v1) | ~ $i(v0) | ? [v3: $i] : (v0 = tapOn % 13.58/2.62 | & waterLevel(v3) = v1 & $i(v3))) % 13.58/2.62 | % 13.58/2.62 | ALPHA: (happens_all_defn) implies: % 13.58/2.62 | (3) ? [v0: $i] : (waterLevel(n3) = v0 & $i(v0) & ! [v1: $i] : ! [v2: $i] % 13.58/2.62 | : ! [v3: int] : (v3 = 0 | ~ (happens(v1, v2) = v3) | ~ $i(v2) | ~ % 13.58/2.62 | $i(v1) | (( ~ (v2 = n0) | ~ (v1 = tapOn)) & ( ~ (v1 = overflow) | % 13.58/2.62 | ? [v4: any] : ? [v5: any] : (holdsAt(v0, v2) = v4 & % 13.58/2.62 | holdsAt(filling, v2) = v5 & ( ~ (v5 = 0) | ~ (v4 = 0)))))) & % 13.58/2.62 | ! [v1: $i] : ! [v2: $i] : ( ~ (happens(v1, v2) = 0) | ~ $i(v2) | % 13.58/2.62 | ~ $i(v1) | (v2 = n0 & v1 = tapOn) | (v1 = overflow & holdsAt(v0, % 13.58/2.62 | v2) = 0 & holdsAt(filling, v2) = 0))) % 13.58/2.62 | % 13.58/2.62 | ALPHA: (overflow_not_tapOn) implies: % 13.58/2.62 | (4) ~ (overflow = tapOn) % 13.58/2.62 | % 13.58/2.62 | ALPHA: (filling_not_waterLevel) implies: % 13.58/2.62 | (5) ! [v0: $i] : ( ~ (waterLevel(v0) = filling) | ~ $i(v0)) % 13.58/2.62 | % 13.58/2.62 | ALPHA: (plus0_1) implies: % 13.58/2.62 | (6) plus(n0, n1) = n1 % 13.58/2.62 | % 13.58/2.62 | ALPHA: (plus0_2) implies: % 13.58/2.62 | (7) plus(n0, n2) = n2 % 13.58/2.62 | % 13.58/2.62 | ALPHA: (plus1_1) implies: % 13.58/2.62 | (8) plus(n1, n1) = n2 % 13.58/2.62 | % 13.58/2.62 | ALPHA: (plus1_2) implies: % 13.58/2.62 | (9) plus(n1, n2) = n3 % 13.58/2.62 | % 13.58/2.62 | ALPHA: (less2) implies: % 13.58/2.62 | (10) $i(n1) % 13.58/2.62 | % 13.58/2.62 | ALPHA: (less3) implies: % 13.58/2.62 | (11) $i(n2) % 13.58/2.62 | % 13.58/2.62 | ALPHA: (not_released_filling_0) implies: % 13.58/2.62 | (12) ? [v0: int] : ( ~ (v0 = 0) & releasedAt(filling, n0) = v0) % 13.58/2.62 | % 13.58/2.62 | ALPHA: (not_released_spilling_0) implies: % 13.58/2.62 | (13) $i(n0) % 13.58/2.62 | % 13.58/2.62 | ALPHA: (filling_3_l1) implies: % 13.58/2.62 | (14) $i(filling) % 13.58/2.63 | (15) releasedAt(filling, n3) = 0 % 13.58/2.63 | % 13.58/2.63 | ALPHA: (function-axioms) implies: % 13.58/2.63 | (16) ! [v0: $i] : ! [v1: $i] : ! [v2: $i] : ! [v3: $i] : (v1 = v0 | ~ % 13.58/2.63 | (plus(v3, v2) = v1) | ~ (plus(v3, v2) = v0)) % 13.58/2.63 | (17) ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: $i] % 13.58/2.63 | : ! [v3: $i] : (v1 = v0 | ~ (releasedAt(v3, v2) = v1) | ~ % 13.58/2.63 | (releasedAt(v3, v2) = v0)) % 13.58/2.63 | % 13.58/2.63 | DELTA: instantiating (12) with fresh symbol all_44_0 gives: % 13.58/2.63 | (18) ~ (all_44_0 = 0) & releasedAt(filling, n0) = all_44_0 % 13.58/2.63 | % 13.58/2.63 | ALPHA: (18) implies: % 13.58/2.63 | (19) ~ (all_44_0 = 0) % 13.58/2.63 | (20) releasedAt(filling, n0) = all_44_0 % 13.58/2.63 | % 13.58/2.63 | DELTA: instantiating (3) with fresh symbol all_48_0 gives: % 13.58/2.63 | (21) waterLevel(n3) = all_48_0 & $i(all_48_0) & ! [v0: $i] : ! [v1: $i] : % 13.58/2.63 | ! [v2: int] : (v2 = 0 | ~ (happens(v0, v1) = v2) | ~ $i(v1) | ~ % 13.58/2.63 | $i(v0) | (( ~ (v1 = n0) | ~ (v0 = tapOn)) & ( ~ (v0 = overflow) | % 13.58/2.63 | ? [v3: any] : ? [v4: any] : (holdsAt(all_48_0, v1) = v3 & % 13.58/2.63 | holdsAt(filling, v1) = v4 & ( ~ (v4 = 0) | ~ (v3 = 0)))))) & % 13.58/2.63 | ! [v0: $i] : ! [v1: $i] : ( ~ (happens(v0, v1) = 0) | ~ $i(v1) | ~ % 13.58/2.63 | $i(v0) | (v1 = n0 & v0 = tapOn) | (v0 = overflow & holdsAt(all_48_0, % 13.58/2.63 | v1) = 0 & holdsAt(filling, v1) = 0)) % 13.58/2.63 | % 13.58/2.63 | ALPHA: (21) implies: % 13.58/2.63 | (22) ! [v0: $i] : ! [v1: $i] : ( ~ (happens(v0, v1) = 0) | ~ $i(v1) | ~ % 13.58/2.63 | $i(v0) | (v1 = n0 & v0 = tapOn) | (v0 = overflow & holdsAt(all_48_0, % 13.58/2.63 | v1) = 0 & holdsAt(filling, v1) = 0)) % 13.58/2.63 | % 13.58/2.63 | GROUND_INST: instantiating (symmetry_of_plus) with n0, n2, n2, simplifying % 13.58/2.63 | with (7), (11), (13) gives: % 13.58/2.63 | (23) plus(n2, n0) = n2 % 13.58/2.63 | % 13.58/2.63 | GROUND_INST: instantiating (symmetry_of_plus) with n1, n2, n3, simplifying % 13.58/2.63 | with (9), (10), (11) gives: % 13.58/2.63 | (24) plus(n2, n1) = n3 & $i(n3) % 13.58/2.63 | % 13.58/2.63 | ALPHA: (24) implies: % 13.58/2.63 | (25) plus(n2, n1) = n3 % 13.58/2.63 | % 13.58/2.63 | GROUND_INST: instantiating (1) with filling, n2, n3, simplifying with (11), % 13.58/2.63 | (14), (15), (25) gives: % 13.58/2.63 | (26) releasedAt(filling, n2) = 0 | ? [v0: $i] : (releases(v0, filling, n2) % 13.58/2.63 | = 0 & happens(v0, n2) = 0 & $i(v0)) % 13.58/2.63 | % 13.58/2.63 | BETA: splitting (26) gives: % 13.58/2.63 | % 13.58/2.63 | Case 1: % 13.58/2.63 | | % 13.58/2.63 | | (27) releasedAt(filling, n2) = 0 % 13.58/2.63 | | % 13.58/2.63 | | GROUND_INST: instantiating (1) with filling, n1, n2, simplifying with (8), % 13.58/2.63 | | (10), (14), (27) gives: % 13.58/2.64 | | (28) releasedAt(filling, n1) = 0 | ? [v0: $i] : (releases(v0, filling, % 13.58/2.64 | | n1) = 0 & happens(v0, n1) = 0 & $i(v0)) % 13.58/2.64 | | % 13.58/2.64 | | BETA: splitting (28) gives: % 13.58/2.64 | | % 13.58/2.64 | | Case 1: % 13.58/2.64 | | | % 13.58/2.64 | | | (29) releasedAt(filling, n1) = 0 % 13.58/2.64 | | | % 13.58/2.64 | | | GROUND_INST: instantiating (1) with filling, n0, n1, simplifying with (6), % 13.58/2.64 | | | (13), (14), (29) gives: % 13.58/2.64 | | | (30) releasedAt(filling, n0) = 0 | ? [v0: $i] : (releases(v0, filling, % 13.58/2.64 | | | n0) = 0 & happens(v0, n0) = 0 & $i(v0)) % 13.58/2.64 | | | % 13.58/2.64 | | | BETA: splitting (30) gives: % 13.58/2.64 | | | % 13.58/2.64 | | | Case 1: % 13.58/2.64 | | | | % 13.58/2.64 | | | | (31) releasedAt(filling, n0) = 0 % 13.58/2.64 | | | | % 13.58/2.64 | | | | GROUND_INST: instantiating (17) with all_44_0, 0, n0, filling, % 13.58/2.64 | | | | simplifying with (20), (31) gives: % 13.58/2.64 | | | | (32) all_44_0 = 0 % 13.58/2.64 | | | | % 13.58/2.64 | | | | REDUCE: (19), (32) imply: % 13.58/2.64 | | | | (33) $false % 13.58/2.64 | | | | % 13.58/2.64 | | | | CLOSE: (33) is inconsistent. % 13.58/2.64 | | | | % 13.58/2.64 | | | Case 2: % 13.58/2.64 | | | | % 13.58/2.64 | | | | (34) ? [v0: $i] : (releases(v0, filling, n0) = 0 & happens(v0, n0) = % 13.58/2.64 | | | | 0 & $i(v0)) % 13.58/2.64 | | | | % 13.58/2.64 | | | | DELTA: instantiating (34) with fresh symbol all_82_0 gives: % 13.58/2.64 | | | | (35) releases(all_82_0, filling, n0) = 0 & happens(all_82_0, n0) = 0 % 13.58/2.64 | | | | & $i(all_82_0) % 13.58/2.64 | | | | % 13.58/2.64 | | | | ALPHA: (35) implies: % 13.58/2.64 | | | | (36) $i(all_82_0) % 13.58/2.64 | | | | (37) releases(all_82_0, filling, n0) = 0 % 13.58/2.64 | | | | % 13.58/2.64 | | | | GROUND_INST: instantiating (2) with all_82_0, filling, n0, simplifying % 13.58/2.64 | | | | with (13), (14), (36), (37) gives: % 13.58/2.64 | | | | (38) ? [v0: $i] : (all_82_0 = tapOn & waterLevel(v0) = filling & % 13.58/2.64 | | | | $i(v0)) % 13.58/2.64 | | | | % 13.58/2.64 | | | | DELTA: instantiating (38) with fresh symbol all_89_0 gives: % 13.58/2.64 | | | | (39) all_82_0 = tapOn & waterLevel(all_89_0) = filling & $i(all_89_0) % 13.58/2.64 | | | | % 13.58/2.64 | | | | ALPHA: (39) implies: % 13.58/2.64 | | | | (40) $i(all_89_0) % 13.58/2.64 | | | | (41) waterLevel(all_89_0) = filling % 13.58/2.64 | | | | % 13.58/2.64 | | | | GROUND_INST: instantiating (5) with all_89_0, simplifying with (40), % 13.58/2.64 | | | | (41) gives: % 13.58/2.64 | | | | (42) $false % 13.58/2.64 | | | | % 13.58/2.64 | | | | CLOSE: (42) is inconsistent. % 13.58/2.64 | | | | % 13.58/2.64 | | | End of split % 13.58/2.64 | | | % 13.58/2.64 | | Case 2: % 13.58/2.64 | | | % 13.58/2.64 | | | (43) ~ (releasedAt(filling, n1) = 0) % 13.58/2.64 | | | (44) ? [v0: $i] : (releases(v0, filling, n1) = 0 & happens(v0, n1) = 0 % 13.58/2.64 | | | & $i(v0)) % 13.58/2.64 | | | % 13.58/2.64 | | | DELTA: instantiating (44) with fresh symbol all_75_0 gives: % 13.58/2.64 | | | (45) releases(all_75_0, filling, n1) = 0 & happens(all_75_0, n1) = 0 & % 13.58/2.64 | | | $i(all_75_0) % 13.58/2.64 | | | % 13.58/2.64 | | | ALPHA: (45) implies: % 13.58/2.64 | | | (46) $i(all_75_0) % 13.58/2.64 | | | (47) happens(all_75_0, n1) = 0 % 13.58/2.64 | | | (48) releases(all_75_0, filling, n1) = 0 % 13.58/2.64 | | | % 13.58/2.64 | | | GROUND_INST: instantiating (22) with all_75_0, n1, simplifying with (10), % 13.58/2.64 | | | (46), (47) gives: % 13.58/2.65 | | | (49) (all_75_0 = overflow & holdsAt(all_48_0, n1) = 0 & % 13.58/2.65 | | | holdsAt(filling, n1) = 0) | (all_75_0 = tapOn & n1 = n0) % 13.58/2.65 | | | % 13.96/2.65 | | | GROUND_INST: instantiating (2) with all_75_0, filling, n1, simplifying % 13.96/2.65 | | | with (10), (14), (46), (48) gives: % 13.96/2.65 | | | (50) ? [v0: $i] : (all_75_0 = tapOn & waterLevel(v0) = filling & % 13.96/2.65 | | | $i(v0)) % 13.96/2.65 | | | % 13.96/2.65 | | | DELTA: instantiating (50) with fresh symbol all_82_0 gives: % 13.96/2.65 | | | (51) all_75_0 = tapOn & waterLevel(all_82_0) = filling & $i(all_82_0) % 13.96/2.65 | | | % 13.96/2.65 | | | ALPHA: (51) implies: % 13.96/2.65 | | | (52) all_75_0 = tapOn % 13.96/2.65 | | | % 13.96/2.65 | | | BETA: splitting (49) gives: % 13.96/2.65 | | | % 13.96/2.65 | | | Case 1: % 13.96/2.65 | | | | % 13.96/2.65 | | | | (53) all_75_0 = overflow & holdsAt(all_48_0, n1) = 0 & % 13.96/2.65 | | | | holdsAt(filling, n1) = 0 % 13.96/2.65 | | | | % 13.96/2.65 | | | | ALPHA: (53) implies: % 13.96/2.65 | | | | (54) all_75_0 = overflow % 13.96/2.65 | | | | % 13.96/2.65 | | | | COMBINE_EQS: (52), (54) imply: % 13.96/2.65 | | | | (55) overflow = tapOn % 13.96/2.65 | | | | % 13.96/2.65 | | | | SIMP: (55) implies: % 13.96/2.65 | | | | (56) overflow = tapOn % 13.96/2.65 | | | | % 13.96/2.65 | | | | REDUCE: (4), (56) imply: % 13.96/2.65 | | | | (57) $false % 13.96/2.65 | | | | % 13.96/2.65 | | | | CLOSE: (57) is inconsistent. % 13.96/2.65 | | | | % 13.96/2.65 | | | Case 2: % 13.96/2.65 | | | | % 13.96/2.65 | | | | (58) all_75_0 = tapOn & n1 = n0 % 13.96/2.65 | | | | % 13.96/2.65 | | | | ALPHA: (58) implies: % 13.96/2.65 | | | | (59) n1 = n0 % 13.96/2.65 | | | | % 13.96/2.65 | | | | REDUCE: (25), (59) imply: % 13.96/2.65 | | | | (60) plus(n2, n0) = n3 % 13.96/2.65 | | | | % 13.96/2.65 | | | | REDUCE: (8), (59) imply: % 13.96/2.65 | | | | (61) plus(n0, n0) = n2 % 13.96/2.65 | | | | % 13.96/2.65 | | | | REDUCE: (6), (59) imply: % 13.96/2.65 | | | | (62) plus(n0, n0) = n0 % 13.96/2.65 | | | | % 13.96/2.65 | | | | REDUCE: (43), (59) imply: % 13.96/2.65 | | | | (63) ~ (releasedAt(filling, n0) = 0) % 13.96/2.65 | | | | % 13.96/2.65 | | | | GROUND_INST: instantiating (16) with n0, n2, n0, n0, simplifying with % 13.96/2.65 | | | | (61), (62) gives: % 13.96/2.65 | | | | (64) n2 = n0 % 13.96/2.65 | | | | % 13.96/2.65 | | | | GROUND_INST: instantiating (16) with n2, n3, n0, n2, simplifying with % 13.96/2.65 | | | | (23), (60) gives: % 13.96/2.65 | | | | (65) n2 = n3 % 13.96/2.65 | | | | % 13.96/2.65 | | | | COMBINE_EQS: (64), (65) imply: % 13.96/2.65 | | | | (66) n3 = n0 % 13.96/2.65 | | | | % 13.96/2.65 | | | | SIMP: (66) implies: % 13.96/2.65 | | | | (67) n3 = n0 % 13.96/2.65 | | | | % 13.96/2.65 | | | | REDUCE: (15), (67) imply: % 13.96/2.65 | | | | (68) releasedAt(filling, n0) = 0 % 13.96/2.65 | | | | % 13.96/2.65 | | | | PRED_UNIFY: (63), (68) imply: % 13.96/2.65 | | | | (69) $false % 13.96/2.65 | | | | % 13.96/2.65 | | | | CLOSE: (69) is inconsistent. % 13.96/2.65 | | | | % 13.96/2.65 | | | End of split % 13.96/2.65 | | | % 13.96/2.65 | | End of split % 13.96/2.65 | | % 13.96/2.65 | Case 2: % 13.96/2.65 | | % 13.96/2.65 | | (70) ? [v0: $i] : (releases(v0, filling, n2) = 0 & happens(v0, n2) = 0 & % 13.96/2.65 | | $i(v0)) % 13.96/2.65 | | % 13.96/2.65 | | DELTA: instantiating (70) with fresh symbol all_68_0 gives: % 13.96/2.65 | | (71) releases(all_68_0, filling, n2) = 0 & happens(all_68_0, n2) = 0 & % 13.96/2.65 | | $i(all_68_0) % 13.96/2.65 | | % 13.96/2.65 | | ALPHA: (71) implies: % 13.96/2.65 | | (72) $i(all_68_0) % 13.96/2.65 | | (73) releases(all_68_0, filling, n2) = 0 % 13.96/2.65 | | % 13.96/2.65 | | GROUND_INST: instantiating (2) with all_68_0, filling, n2, simplifying with % 13.96/2.65 | | (11), (14), (72), (73) gives: % 13.96/2.66 | | (74) ? [v0: $i] : (all_68_0 = tapOn & waterLevel(v0) = filling & $i(v0)) % 13.96/2.66 | | % 13.96/2.66 | | DELTA: instantiating (74) with fresh symbol all_75_0 gives: % 13.96/2.66 | | (75) all_68_0 = tapOn & waterLevel(all_75_0) = filling & $i(all_75_0) % 13.96/2.66 | | % 13.96/2.66 | | ALPHA: (75) implies: % 13.96/2.66 | | (76) $i(all_75_0) % 13.96/2.66 | | (77) waterLevel(all_75_0) = filling % 13.96/2.66 | | % 13.96/2.66 | | GROUND_INST: instantiating (5) with all_75_0, simplifying with (76), (77) % 13.96/2.66 | | gives: % 13.96/2.66 | | (78) $false % 13.96/2.66 | | % 13.96/2.66 | | CLOSE: (78) is inconsistent. % 13.96/2.66 | | % 13.96/2.66 | End of split % 13.96/2.66 | % 13.96/2.66 End of proof % 13.96/2.66 % SZS output end Proof for theBenchmark % 13.96/2.66 % 13.96/2.66 2060ms %------------------------------------------------------------------------------