TSTP Solution File: CSR014+1 by Princess---230619
View Problem
- Process Solution
%------------------------------------------------------------------------------
% 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
%------------------------------------------------------------------------------