%------------------------------------------------------------------------------ % File : Princess---230619 % Problem : COM284_1 : TPTP v9.3.0. Released v9.3.0. % Transfm : none % Format : tptp % Command : princess -inputFormat=tptp +threads -portfolio=casc +printProof -timeoutSec=%d %s % Computer : n011.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 : Tue May 5 06:21:41 PM UTC 2026 % Result : Theorem 35.02s 5.21s % Output : Proof 35.48s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.00/0.12 % Problem : COM284_1 : TPTP v9.3.0. Released v9.3.0. % 0.12/0.13 % Command : princess -inputFormat=tptp +threads -portfolio=casc +printProof -timeoutSec=%d %s % 0.17/0.34 % Computer : n011.cluster.edu % 0.17/0.34 % Model : x86_64 x86_64 % 0.17/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz % 0.17/0.34 % Memory : 8042.1875MB % 0.17/0.34 % OS : Linux 3.10.0-693.el7.x86_64 % 0.17/0.34 % CPULimit : 300 % 0.17/0.34 % WCLimit : 300 % 0.17/0.34 % DateTime : Mon May 4 20:17:02 EDT 2026 % 0.17/0.34 % CPUTime : % 0.49/0.62 ________ _____ % 0.49/0.62 ___ __ \_________(_)________________________________ % 0.49/0.62 __ /_/ /_ ___/_ /__ __ \ ___/ _ \_ ___/_ ___/ % 0.49/0.62 _ ____/_ / _ / _ / / / /__ / __/(__ )_(__ ) % 0.49/0.62 /_/ /_/ /_/ /_/ /_/\___/ \___//____/ /____/ % 0.49/0.62 % 0.49/0.62 A Theorem Prover for First-Order Logic modulo Linear Integer Arithmetic % 0.49/0.62 (2023-06-19) % 0.49/0.62 % 0.49/0.62 (c) Philipp Rümmer, 2009-2023 % 0.49/0.62 Contributors: Peter Backeman, Peter Baumgartner, Angelo Brillout, Zafer Esen, % 0.49/0.62 Amanda Stjerna. % 0.49/0.62 Free software under BSD-3-Clause. % 0.49/0.62 % 0.49/0.62 For more information, visit http://www.philipp.ruemmer.org/princess.shtml % 0.49/0.62 % 0.49/0.62 Loading /export/starexec/sandbox/benchmark/theBenchmark.p ... % 0.67/0.63 Running up to 7 provers in parallel. % 0.67/0.65 Prover 0: Options: +triggersInConjecture +genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=0 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=1042961893 % 0.67/0.65 Prover 2: Options: +triggersInConjecture +genTotalityAxioms -tightFunctionScopes -clausifier=simple +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMinimalAndEmpty -realRatSaturationRounds=1 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=-1065072994 % 0.67/0.65 Prover 1: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-1571432423 % 0.67/0.65 Prover 3: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=1922548996 % 0.67/0.65 Prover 4: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=1868514696 % 0.67/0.65 Prover 5: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=none +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMaximal -realRatSaturationRounds=1 -ignoreQuantifiers -constructProofs=never -generateTriggers=complete -randomSeed=1259561288 % 0.67/0.65 Prover 6: Options: -triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=none +reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximalOutermost -realRatSaturationRounds=0 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=-1399714365 % 9.29/1.93 Prover 4: Preprocessing ... % 9.29/1.95 Prover 1: Preprocessing ... % 9.29/1.97 Prover 6: Preprocessing ... % 9.29/1.97 Prover 2: Preprocessing ... % 9.29/1.97 Prover 0: Preprocessing ... % 9.29/1.97 Prover 5: Preprocessing ... % 9.29/1.97 Prover 3: Preprocessing ... % 23.27/3.71 Prover 1: Warning: ignoring some quantifiers % 23.27/3.72 Prover 4: Warning: ignoring some quantifiers % 24.13/3.83 Prover 4: Constructing countermodel ... % 24.13/3.84 Prover 1: Constructing countermodel ... % 24.13/3.84 Prover 3: Warning: ignoring some quantifiers % 24.13/3.85 Prover 6: Proving ... % 24.13/3.86 Prover 3: Constructing countermodel ... % 24.13/3.87 Prover 0: Proving ... % 25.71/4.04 Prover 5: Proving ... % 27.95/4.31 Prover 2: Proving ... % 34.40/5.18 Prover 1: Found proof (size 40) % 34.40/5.18 Prover 1: proved (4538ms) % 34.40/5.18 Prover 4: stopped % 34.40/5.18 Prover 5: stopped % 34.40/5.18 Prover 0: stopped % 34.40/5.18 Prover 6: stopped % 34.40/5.18 Prover 3: stopped % 35.02/5.21 Prover 2: stopped % 35.02/5.21 % 35.02/5.21 % SZS status Theorem for /export/starexec/sandbox/benchmark/theBenchmark.p % 35.02/5.21 % 35.02/5.21 % SZS output start Proof for theBenchmark % 35.02/5.22 Assumptions after simplification: % 35.02/5.22 --------------------------------- % 35.02/5.22 % 35.02/5.22 (DIFF-aempty-acons) % 35.02/5.25 vAttrL(vaempty) & ! [v0: vName] : ! [v1: vAttrL] : ( ~ (vacons(v0, v1) = % 35.02/5.25 vaempty) | ~ vAttrL(v1) | ~ vName(v0)) % 35.02/5.25 % 35.02/5.25 (DIFF-ttempty-ttcons) % 35.02/5.25 vTType(vttempty) & ! [v0: vName] : ! [v1: vFType] : ! [v2: vTType] : ( ~ % 35.02/5.25 (vttcons(v0, v1, v2) = vttempty) | ~ vTType(v2) | ~ vFType(v1) | ~ % 35.02/5.25 vName(v0)) % 35.02/5.25 % 35.02/5.25 (findColType-INV) % 35.02/5.25 vOptFType(vnoFType) & vTType(vttempty) & ! [v0: vName] : ! [v1: vTType] : ! % 35.02/5.25 [v2: vOptFType] : ( ~ (vfindColType(v0, v1) = v2) | ~ vTType(v1) | ~ % 35.02/5.25 vName(v0) | ? [v3: vName] : ? [v4: vFType] : ? [v5: vTType] : ( ~ (v3 = % 35.02/5.25 v0) & vfindColType(v0, v5) = v2 & vttcons(v3, v4, v5) = v1 & % 35.02/5.25 vOptFType(v2) & vTType(v5) & vFType(v4) & vName(v3)) | ? [v3: vFType] : % 35.02/5.25 ? [v4: vTType] : (vsomeFType(v3) = v2 & vttcons(v0, v3, v4) = v1 & % 35.02/5.25 vOptFType(v2) & vTType(v4) & vFType(v3)) | (v2 = vnoFType & v1 = % 35.02/5.25 vttempty)) % 35.02/5.25 % 35.02/5.25 (findColTypeImpliesfindCol-aempty) % 35.02/5.25 vAttrL(vaempty) & ? [v0: vTType] : ? [v1: vRawTable] : ? [v2: vName] : ? % 35.02/5.25 [v3: vFType] : ? [v4: vOptFType] : ? [v5: vOptRawTable] : (vfindColType(v2, % 35.02/5.25 v0) = v4 & vfindCol(v2, vaempty, v1) = v5 & vwelltypedRawtable(v0, v1) = 0 % 35.02/5.25 & vmatchingAttrL(v0, vaempty) = 0 & vsomeFType(v3) = v4 & vOptFType(v4) & % 35.02/5.25 vTType(v0) & vFType(v3) & vOptRawTable(v5) & vRawTable(v1) & vName(v2) & ! % 35.02/5.25 [v6: vRawTable] : ( ~ (vsomeRawTable(v6) = v5) | ~ vRawTable(v6))) % 35.02/5.25 % 35.02/5.25 (isSomeFType-0) % 35.02/5.25 vOptFType(vnoFType) & ? [v0: int] : ( ~ (v0 = 0) & visSomeFType(vnoFType) = % 35.02/5.25 v0) % 35.02/5.25 % 35.02/5.25 (isSomeFType-1) % 35.02/5.25 ! [v0: vFType] : ! [v1: vOptFType] : ( ~ (vsomeFType(v0) = v1) | ~ % 35.02/5.25 vFType(v0) | visSomeFType(v1) = 0) % 35.02/5.25 % 35.02/5.25 (matchingAttrL-2) % 35.02/5.26 vTType(vttempty) & vAttrL(vaempty) & ! [v0: vTType] : ! [v1: vAttrL] : ( ~ % 35.02/5.26 (vmatchingAttrL(v0, v1) = 0) | ~ vTType(v0) | ~ vAttrL(v1) | (v1 = vaempty % 35.02/5.26 & v0 = vttempty) | ( ? [v2: vName] : ? [v3: vFType] : ? [v4: vTType] : % 35.02/5.26 (vttcons(v2, v3, v4) = v0 & vTType(v4) & vFType(v3) & vName(v2)) & ? [v2: % 35.02/5.26 vName] : ? [v3: vAttrL] : (vacons(v2, v3) = v1 & vAttrL(v3) & % 35.02/5.26 vName(v2)))) % 35.02/5.26 % 35.02/5.26 (function-axioms) % 35.02/5.28 ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vTType] : ! % 35.02/5.28 [v3: vQuery] : ! [v4: vTTContext] : (v1 = v0 | ~ (vptcheck(v4, v3, v2) = v1) % 35.02/5.28 | ~ (vptcheck(v4, v3, v2) = v0)) & ! [v0: vRawTable] : ! [v1: vRawTable] % 35.02/5.28 : ! [v2: vPred] : ! [v3: vAttrL] : ! [v4: vRawTable] : (v1 = v0 | ~ % 35.02/5.28 (vfilterRows(v4, v3, v2) = v1) | ~ (vfilterRows(v4, v3, v2) = v0)) & ! % 35.02/5.28 [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vRow] : ! [v3: % 35.02/5.28 vAttrL] : ! [v4: vPred] : (v1 = v0 | ~ (vfilterSingleRow(v4, v3, v2) = v1) % 35.02/5.28 | ~ (vfilterSingleRow(v4, v3, v2) = v0)) & ! [v0: vOptVal] : ! [v1: % 35.02/5.28 vOptVal] : ! [v2: vRow] : ! [v3: vAttrL] : ! [v4: vExp] : (v1 = v0 | ~ % 35.02/5.28 (vevalExpRow(v4, v3, v2) = v1) | ~ (vevalExpRow(v4, v3, v2) = v0)) & ! % 35.02/5.28 [v0: vOptRawTable] : ! [v1: vOptRawTable] : ! [v2: vRawTable] : ! [v3: % 35.02/5.28 vAttrL] : ! [v4: vAttrL] : (v1 = v0 | ~ (vprojectCols(v4, v3, v2) = v1) | % 35.02/5.28 ~ (vprojectCols(v4, v3, v2) = v0)) & ! [v0: vOptRawTable] : ! [v1: % 35.02/5.28 vOptRawTable] : ! [v2: vRawTable] : ! [v3: vAttrL] : ! [v4: vName] : (v1 % 35.02/5.28 = v0 | ~ (vfindCol(v4, v3, v2) = v1) | ~ (vfindCol(v4, v3, v2) = v0)) & ! % 35.02/5.28 [v0: vTStore] : ! [v1: vTStore] : ! [v2: vTStore] : ! [v3: vTable] : ! % 35.02/5.28 [v4: vName] : (v1 = v0 | ~ (vbindStore(v4, v3, v2) = v1) | ~ (vbindStore(v4, % 35.02/5.28 v3, v2) = v0)) & ! [v0: vTTContext] : ! [v1: vTTContext] : ! [v2: % 35.02/5.28 vTTContext] : ! [v3: vTType] : ! [v4: vName] : (v1 = v0 | ~ % 35.02/5.28 (vbindContext(v4, v3, v2) = v1) | ~ (vbindContext(v4, v3, v2) = v0)) & ! % 35.02/5.28 [v0: vTType] : ! [v1: vTType] : ! [v2: vTType] : ! [v3: vFType] : ! [v4: % 35.02/5.28 vName] : (v1 = v0 | ~ (vttcons(v4, v3, v2) = v1) | ~ (vttcons(v4, v3, v2) % 35.02/5.28 = v0)) & ! [v0: vQuery] : ! [v1: vQuery] : ! [v2: vPred] : ! [v3: % 35.02/5.28 vName] : ! [v4: vSelect] : (v1 = v0 | ~ (vselectFromWhere(v4, v3, v2) = % 35.02/5.28 v1) | ~ (vselectFromWhere(v4, v3, v2) = v0)) & ! [v0: MultipleValueBool] % 35.02/5.28 : ! [v1: MultipleValueBool] : ! [v2: vTTContext] : ! [v3: vTStore] : (v1 = % 35.02/5.28 v0 | ~ (vstoreContextConsistent(v3, v2) = v1) | ~ % 35.02/5.28 (vstoreContextConsistent(v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! % 35.02/5.28 [v1: MultipleValueBool] : ! [v2: vTType] : ! [v3: vPred] : (v1 = v0 | ~ % 35.02/5.28 (vtcheckPred(v3, v2) = v1) | ~ (vtcheckPred(v3, v2) = v0)) & ! [v0: % 35.02/5.28 vOptFType] : ! [v1: vOptFType] : ! [v2: vTType] : ! [v3: vExp] : (v1 = v0 % 35.02/5.28 | ~ (vtypeOfExp(v3, v2) = v1) | ~ (vtypeOfExp(v3, v2) = v0)) & ! [v0: % 35.02/5.28 vOptTType] : ! [v1: vOptTType] : ! [v2: vTType] : ! [v3: vSelect] : (v1 = % 35.02/5.28 v0 | ~ (vprojectType(v3, v2) = v1) | ~ (vprojectType(v3, v2) = v0)) & ! % 35.02/5.28 [v0: vOptTType] : ! [v1: vOptTType] : ! [v2: vTType] : ! [v3: vAttrL] : (v1 % 35.02/5.28 = v0 | ~ (vprojectTypeAttrL(v3, v2) = v1) | ~ (vprojectTypeAttrL(v3, v2) = % 35.02/5.28 v0)) & ! [v0: vOptFType] : ! [v1: vOptFType] : ! [v2: vTType] : ! [v3: % 35.02/5.28 vName] : (v1 = v0 | ~ (vfindColType(v3, v2) = v1) | ~ (vfindColType(v3, % 35.02/5.28 v2) = v0)) & ! [v0: vOptQuery] : ! [v1: vOptQuery] : ! [v2: vTStore] % 35.02/5.28 : ! [v3: vQuery] : (v1 = v0 | ~ (vreduce(v3, v2) = v1) | ~ (vreduce(v3, v2) % 35.02/5.28 = v0)) & ! [v0: vTable] : ! [v1: vTable] : ! [v2: vPred] : ! [v3: % 35.02/5.28 vTable] : (v1 = v0 | ~ (vfilterTable(v3, v2) = v1) | ~ (vfilterTable(v3, % 35.02/5.28 v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : % 35.02/5.28 ! [v2: vVal] : ! [v3: vVal] : (v1 = v0 | ~ (vlessThan(v3, v2) = v1) | ~ % 35.02/5.28 (vlessThan(v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: % 35.02/5.28 MultipleValueBool] : ! [v2: vVal] : ! [v3: vVal] : (v1 = v0 | ~ % 35.02/5.28 (vgreaterThan(v3, v2) = v1) | ~ (vgreaterThan(v3, v2) = v0)) & ! [v0: % 35.02/5.28 vOptTable] : ! [v1: vOptTable] : ! [v2: vTable] : ! [v3: vSelect] : (v1 = % 35.02/5.28 v0 | ~ (vprojectTable(v3, v2) = v1) | ~ (vprojectTable(v3, v2) = v0)) & ! % 35.02/5.28 [v0: vOptTType] : ! [v1: vOptTType] : ! [v2: vTTContext] : ! [v3: vName] : % 35.02/5.28 (v1 = v0 | ~ (vlookupContext(v3, v2) = v1) | ~ (vlookupContext(v3, v2) = % 35.02/5.28 v0)) & ! [v0: vOptTable] : ! [v1: vOptTable] : ! [v2: vTStore] : ! % 35.02/5.28 [v3: vName] : (v1 = v0 | ~ (vlookupStore(v3, v2) = v1) | ~ (vlookupStore(v3, % 35.02/5.28 v2) = v0)) & ! [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: % 35.02/5.28 vRawTable] : ! [v3: vRawTable] : (v1 = v0 | ~ (vrawDifference(v3, v2) = % 35.02/5.28 v1) | ~ (vrawDifference(v3, v2) = v0)) & ! [v0: vRawTable] : ! [v1: % 35.02/5.28 vRawTable] : ! [v2: vRawTable] : ! [v3: vRawTable] : (v1 = v0 | ~ % 35.02/5.28 (vrawIntersection(v3, v2) = v1) | ~ (vrawIntersection(v3, v2) = v0)) & ! % 35.02/5.28 [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: vRawTable] : ! [v3: vRawTable] % 35.02/5.28 : (v1 = v0 | ~ (vrawUnion(v3, v2) = v1) | ~ (vrawUnion(v3, v2) = v0)) & ! % 35.02/5.28 [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: vRawTable] : ! [v3: vRawTable] % 35.02/5.28 : (v1 = v0 | ~ (vattachColToFrontRaw(v3, v2) = v1) | ~ % 35.02/5.28 (vattachColToFrontRaw(v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: % 35.02/5.28 MultipleValueBool] : ! [v2: vRawTable] : ! [v3: vRawTable] : (v1 = v0 | ~ % 35.02/5.28 (vsameLength(v3, v2) = v1) | ~ (vsameLength(v3, v2) = v0)) & ! [v0: % 35.02/5.28 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vRawTable] : ! % 35.02/5.28 [v3: vRow] : (v1 = v0 | ~ (vrowIn(v3, v2) = v1) | ~ (vrowIn(v3, v2) = v0)) & % 35.02/5.28 ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vTable] : ! % 35.02/5.28 [v3: vTType] : (v1 = v0 | ~ (vwelltypedtable(v3, v2) = v1) | ~ % 35.02/5.28 (vwelltypedtable(v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: % 35.02/5.28 MultipleValueBool] : ! [v2: vRawTable] : ! [v3: vTType] : (v1 = v0 | ~ % 35.02/5.28 (vwelltypedRawtable(v3, v2) = v1) | ~ (vwelltypedRawtable(v3, v2) = v0)) & % 35.02/5.28 ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vRow] : ! % 35.02/5.28 [v3: vTType] : (v1 = v0 | ~ (vwelltypedRow(v3, v2) = v1) | ~ % 35.02/5.28 (vwelltypedRow(v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: % 35.02/5.28 MultipleValueBool] : ! [v2: vAttrL] : ! [v3: vTType] : (v1 = v0 | ~ % 35.02/5.28 (vmatchingAttrL(v3, v2) = v1) | ~ (vmatchingAttrL(v3, v2) = v0)) & ! [v0: % 35.02/5.28 vAttrL] : ! [v1: vAttrL] : ! [v2: vAttrL] : ! [v3: vAttrL] : (v1 = v0 | % 35.02/5.28 ~ (vappend(v3, v2) = v1) | ~ (vappend(v3, v2) = v0)) & ! [v0: vAttrL] : ! % 35.02/5.28 [v1: vAttrL] : ! [v2: vAttrL] : ! [v3: vName] : (v1 = v0 | ~ (vacons(v3, % 35.02/5.28 v2) = v1) | ~ (vacons(v3, v2) = v0)) & ! [v0: vPred] : ! [v1: vPred] % 35.02/5.28 : ! [v2: vExp] : ! [v3: vExp] : (v1 = v0 | ~ (vlt(v3, v2) = v1) | ~ % 35.02/5.28 (vlt(v3, v2) = v0)) & ! [v0: vPred] : ! [v1: vPred] : ! [v2: vExp] : ! % 35.02/5.28 [v3: vExp] : (v1 = v0 | ~ (vgt(v3, v2) = v1) | ~ (vgt(v3, v2) = v0)) & ! % 35.02/5.28 [v0: vPred] : ! [v1: vPred] : ! [v2: vExp] : ! [v3: vExp] : (v1 = v0 | ~ % 35.02/5.28 (veq(v3, v2) = v1) | ~ (veq(v3, v2) = v0)) & ! [v0: vPred] : ! [v1: % 35.02/5.28 vPred] : ! [v2: vPred] : ! [v3: vPred] : (v1 = v0 | ~ (vand(v3, v2) = v1) % 35.02/5.28 | ~ (vand(v3, v2) = v0)) & ! [v0: vTable] : ! [v1: vTable] : ! [v2: % 35.02/5.28 vRawTable] : ! [v3: vAttrL] : (v1 = v0 | ~ (vtable(v3, v2) = v1) | ~ % 35.02/5.28 (vtable(v3, v2) = v0)) & ! [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: % 35.02/5.28 vRawTable] : ! [v3: vRow] : (v1 = v0 | ~ (vtcons(v3, v2) = v1) | ~ % 35.02/5.28 (vtcons(v3, v2) = v0)) & ! [v0: vRow] : ! [v1: vRow] : ! [v2: vRow] : ! % 35.02/5.28 [v3: vVal] : (v1 = v0 | ~ (vrcons(v3, v2) = v1) | ~ (vrcons(v3, v2) = v0)) & % 35.02/5.28 ! [v0: vQuery] : ! [v1: vQuery] : ! [v2: vQuery] : ! [v3: vQuery] : (v1 = % 35.02/5.28 v0 | ~ (vDifference(v3, v2) = v1) | ~ (vDifference(v3, v2) = v0)) & ! % 35.02/5.28 [v0: vQuery] : ! [v1: vQuery] : ! [v2: vQuery] : ! [v3: vQuery] : (v1 = v0 % 35.02/5.28 | ~ (vIntersection(v3, v2) = v1) | ~ (vIntersection(v3, v2) = v0)) & ! % 35.02/5.28 [v0: vQuery] : ! [v1: vQuery] : ! [v2: vQuery] : ! [v3: vQuery] : (v1 = v0 % 35.02/5.28 | ~ (vUnion(v3, v2) = v1) | ~ (vUnion(v3, v2) = v0)) & ! [v0: % 35.02/5.28 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptFType] : (v1 = % 35.02/5.28 v0 | ~ (visSomeFType(v2) = v1) | ~ (visSomeFType(v2) = v0)) & ! [v0: % 35.02/5.28 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptVal] : (v1 = % 35.02/5.28 v0 | ~ (visSomeVal(v2) = v1) | ~ (visSomeVal(v2) = v0)) & ! [v0: % 35.02/5.28 vRawTable] : ! [v1: vRawTable] : ! [v2: vRawTable] : (v1 = v0 | ~ % 35.02/5.28 (vprojectEmptyCol(v2) = v1) | ~ (vprojectEmptyCol(v2) = v0)) & ! [v0: % 35.02/5.28 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptQuery] : (v1 = % 35.02/5.28 v0 | ~ (visSomeQuery(v2) = v1) | ~ (visSomeQuery(v2) = v0)) & ! [v0: % 35.02/5.28 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vQuery] : (v1 = v0 % 35.02/5.28 | ~ (visValue(v2) = v1) | ~ (visValue(v2) = v0)) & ! [v0: % 35.02/5.28 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptTType] : (v1 = % 35.02/5.28 v0 | ~ (visSomeTType(v2) = v1) | ~ (visSomeTType(v2) = v0)) & ! [v0: % 35.02/5.28 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptTable] : (v1 = % 35.02/5.28 v0 | ~ (visSomeTable(v2) = v1) | ~ (visSomeTable(v2) = v0)) & ! [v0: % 35.02/5.28 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptRawTable] : % 35.02/5.28 (v1 = v0 | ~ (visSomeRawTable(v2) = v1) | ~ (visSomeRawTable(v2) = v0)) & ! % 35.02/5.28 [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: vRawTable] : (v1 = v0 | ~ % 35.02/5.28 (vdropFirstColRaw(v2) = v1) | ~ (vdropFirstColRaw(v2) = v0)) & ! [v0: % 35.02/5.28 vRawTable] : ! [v1: vRawTable] : ! [v2: vRawTable] : (v1 = v0 | ~ % 35.02/5.28 (vprojectFirstRaw(v2) = v1) | ~ (vprojectFirstRaw(v2) = v0)) & ! [v0: % 35.02/5.28 vFType] : ! [v1: vFType] : ! [v2: vVal] : (v1 = v0 | ~ (vfieldType(v2) = % 35.02/5.28 v1) | ~ (vfieldType(v2) = v0)) & ! [v0: vAttrL] : ! [v1: vAttrL] : ! % 35.02/5.28 [v2: vTable] : (v1 = v0 | ~ (vgetAttrL(v2) = v1) | ~ (vgetAttrL(v2) = v0)) & % 35.02/5.28 ! [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: vTable] : (v1 = v0 | ~ % 35.02/5.28 (vgetRaw(v2) = v1) | ~ (vgetRaw(v2) = v0)) & ! [v0: vFType] : ! [v1: % 35.02/5.28 vFType] : ! [v2: vOptFType] : (v1 = v0 | ~ (vgetFType(v2) = v1) | ~ % 35.02/5.28 (vgetFType(v2) = v0)) & ! [v0: vVal] : ! [v1: vVal] : ! [v2: vOptVal] : % 35.02/5.28 (v1 = v0 | ~ (vgetVal(v2) = v1) | ~ (vgetVal(v2) = v0)) & ! [v0: vQuery] : % 35.02/5.28 ! [v1: vQuery] : ! [v2: vOptQuery] : (v1 = v0 | ~ (vgetQuery(v2) = v1) | ~ % 35.02/5.28 (vgetQuery(v2) = v0)) & ! [v0: vTType] : ! [v1: vTType] : ! [v2: % 35.02/5.28 vOptTType] : (v1 = v0 | ~ (vgetTType(v2) = v1) | ~ (vgetTType(v2) = v0)) & % 35.02/5.28 ! [v0: vTable] : ! [v1: vTable] : ! [v2: vOptTable] : (v1 = v0 | ~ % 35.02/5.28 (vgetTable(v2) = v1) | ~ (vgetTable(v2) = v0)) & ! [v0: vRawTable] : ! % 35.02/5.28 [v1: vRawTable] : ! [v2: vOptRawTable] : (v1 = v0 | ~ (vgetRawTable(v2) = % 35.02/5.28 v1) | ~ (vgetRawTable(v2) = v0)) & ! [v0: vOptFType] : ! [v1: % 35.02/5.28 vOptFType] : ! [v2: vFType] : (v1 = v0 | ~ (vsomeFType(v2) = v1) | ~ % 35.02/5.28 (vsomeFType(v2) = v0)) & ! [v0: vVal] : ! [v1: vVal] : ! [v2: vVal] : (v1 % 35.02/5.28 = v0 | ~ (venumVal(v2) = v1) | ~ (venumVal(v2) = v0)) & ! [v0: vPred] : % 35.02/5.28 ! [v1: vPred] : ! [v2: vPred] : (v1 = v0 | ~ (vnot(v2) = v1) | ~ (vnot(v2) % 35.02/5.28 = v0)) & ! [v0: vOptVal] : ! [v1: vOptVal] : ! [v2: vVal] : (v1 = v0 | % 35.02/5.28 ~ (vsomeVal(v2) = v1) | ~ (vsomeVal(v2) = v0)) & ! [v0: vExp] : ! [v1: % 35.02/5.28 vExp] : ! [v2: vName] : (v1 = v0 | ~ (vlookup(v2) = v1) | ~ (vlookup(v2) % 35.02/5.28 = v0)) & ! [v0: vExp] : ! [v1: vExp] : ! [v2: vVal] : (v1 = v0 | ~ % 35.02/5.28 (vconstant(v2) = v1) | ~ (vconstant(v2) = v0)) & ! [v0: vName] : ! [v1: % 35.02/5.28 vName] : ! [v2: vName] : (v1 = v0 | ~ (venumName(v2) = v1) | ~ % 35.02/5.28 (venumName(v2) = v0)) & ! [v0: vOptQuery] : ! [v1: vOptQuery] : ! [v2: % 35.02/5.28 vQuery] : (v1 = v0 | ~ (vsomeQuery(v2) = v1) | ~ (vsomeQuery(v2) = v0)) & % 35.02/5.28 ! [v0: vFType] : ! [v1: vFType] : ! [v2: vFType] : (v1 = v0 | ~ % 35.02/5.28 (venumFType(v2) = v1) | ~ (venumFType(v2) = v0)) & ! [v0: vOptTType] : ! % 35.02/5.28 [v1: vOptTType] : ! [v2: vTType] : (v1 = v0 | ~ (vsomeTType(v2) = v1) | ~ % 35.02/5.28 (vsomeTType(v2) = v0)) & ! [v0: vOptRawTable] : ! [v1: vOptRawTable] : ! % 35.02/5.28 [v2: vRawTable] : (v1 = v0 | ~ (vsomeRawTable(v2) = v1) | ~ % 35.02/5.28 (vsomeRawTable(v2) = v0)) & ! [v0: vOptTable] : ! [v1: vOptTable] : ! % 35.02/5.28 [v2: vTable] : (v1 = v0 | ~ (vsomeTable(v2) = v1) | ~ (vsomeTable(v2) = v0)) % 35.02/5.28 & ! [v0: vQuery] : ! [v1: vQuery] : ! [v2: vTable] : (v1 = v0 | ~ % 35.02/5.28 (vtvalue(v2) = v1) | ~ (vtvalue(v2) = v0)) & ! [v0: vSelect] : ! [v1: % 35.02/5.28 vSelect] : ! [v2: vAttrL] : (v1 = v0 | ~ (vlist(v2) = v1) | ~ (vlist(v2) % 35.02/5.28 = v0)) % 35.02/5.28 % 35.02/5.28 Further assumptions not needed in the proof: % 35.02/5.28 -------------------------------------------- % 35.02/5.29 DIFF-Intersection-Difference, DIFF-Union-Difference, DIFF-Union-Intersection, % 35.02/5.29 DIFF-all-list, DIFF-and-eq, DIFF-and-gt, DIFF-and-lt, DIFF-and-not, % 35.02/5.29 DIFF-constant-lookup, DIFF-emptyContext-bindContext, DIFF-emptyStore-bindStore, % 35.02/5.29 DIFF-eq-gt, DIFF-eq-lt, DIFF-gt-lt, DIFF-initFType-enumFType, % 35.02/5.29 DIFF-initName-enumName, DIFF-initVal-enumVal, DIFF-noFType-someFType, % 35.02/5.29 DIFF-noQuery-someQuery, DIFF-noRawTable-someRawTable, DIFF-noTType-someTType, % 35.02/5.29 DIFF-noTable-someTable, DIFF-noVal-someVal, DIFF-not-eq, DIFF-not-gt, % 35.02/5.29 DIFF-not-lt, DIFF-ptrue-and, DIFF-ptrue-eq, DIFF-ptrue-gt, DIFF-ptrue-lt, % 35.02/5.29 DIFF-ptrue-not, DIFF-rempty-rcons, DIFF-selectFromWhere-Difference, % 35.02/5.29 DIFF-selectFromWhere-Intersection, DIFF-selectFromWhere-Union, % 35.02/5.29 DIFF-tempty-tcons, DIFF-tvalue-Difference, DIFF-tvalue-Intersection, % 35.02/5.29 DIFF-tvalue-Union, DIFF-tvalue-selectFromWhere, EQ-Difference, EQ-Intersection, % 35.02/5.29 EQ-Union, EQ-acons, EQ-and, EQ-bindContext, EQ-bindStore, EQ-constant, % 35.02/5.29 EQ-enumFType, EQ-enumName, EQ-enumVal, EQ-eq, EQ-gt, EQ-list, EQ-lookup, EQ-lt, % 35.02/5.29 EQ-not, EQ-rcons, EQ-selectFromWhere, EQ-someFType, EQ-someQuery, % 35.02/5.29 EQ-someRawTable, EQ-someTType, EQ-someTable, EQ-someVal, EQ-table, EQ-tcons, % 35.02/5.29 EQ-ttcons, EQ-tvalue, TDifference, TDifference_inv1, TDifference_inv2, % 35.02/5.29 TIntersection, TIntersection_inv1, TIntersection_inv2, TSelectFromWhere, % 35.02/5.29 TSelectFromWhere_inv, TTTContextDuplicate, TTTContextSwap, TUnion, TUnion_inv1, % 35.02/5.29 TUnion_inv2, Ttvalue, Ttvalue_inv, append-0, append-1, append-INV, % 35.02/5.29 attachColToFrontRaw-0, attachColToFrontRaw-1, attachColToFrontRaw-2, % 35.02/5.29 attachColToFrontRaw-INV, dom-AttrL, dom-Exp, dom-OptFType, dom-OptQuery, % 35.02/5.29 dom-OptRawTable, dom-OptTType, dom-OptTable, dom-OptVal, dom-Pred, dom-Query, % 35.02/5.29 dom-RawTable, dom-Row, dom-Select, dom-TStore, dom-TTContext, dom-TType, % 35.02/5.29 dom-Table, dropFirstColRaw-0, dropFirstColRaw-1, dropFirstColRaw-2, % 35.02/5.29 dropFirstColRaw-INV, evalExpRow-0, evalExpRow-1, evalExpRow-2, evalExpRow-3, % 35.02/5.29 evalExpRow-INV, filterRows-0, filterRows-1, filterRows-2, filterRows-INV, % 35.02/5.29 filterSingleRow-0, filterSingleRow-1, filterSingleRow-2, filterSingleRow-3, % 35.02/5.29 filterSingleRow-4, filterSingleRow-5, filterSingleRow-false-INV, % 35.02/5.29 filterSingleRow-true-INV, filterTable-0, filterTable-INV, findCol-0, findCol-1, % 35.02/5.29 findCol-2, findCol-INV, findColType-0, findColType-1, findColType-2, getAttrL-0, % 35.02/5.29 getAttrL-INV, getFType-0, getQuery-0, getRaw-0, getRaw-INV, getRawTable-0, % 35.02/5.29 getTType-0, getTable-0, getVal-0, isSomeFType-false-INV, isSomeFType-true-INV, % 35.02/5.29 isSomeQuery-0, isSomeQuery-1, isSomeQuery-false-INV, isSomeQuery-true-INV, % 35.02/5.29 isSomeRawTable-0, isSomeRawTable-1, isSomeRawTable-false-INV, % 35.02/5.29 isSomeRawTable-true-INV, isSomeTType-0, isSomeTType-1, isSomeTType-false-INV, % 35.02/5.29 isSomeTType-true-INV, isSomeTable-0, isSomeTable-1, isSomeTable-false-INV, % 35.02/5.29 isSomeTable-true-INV, isSomeVal-0, isSomeVal-1, isSomeVal-false-INV, % 35.02/5.29 isSomeVal-true-INV, isValue-0, isValue-1, isValue-2, isValue-3, isValue-4, % 35.02/5.29 isValue-false-INV, isValue-true-INV, lookupContext-0, lookupContext-1, % 35.02/5.29 lookupContext-2, lookupContext-INV, lookupStore-0, lookupStore-1, lookupStore-2, % 35.02/5.29 lookupStore-INV, matchingAttrL-0, matchingAttrL-1, matchingAttrL-false-INV, % 35.02/5.29 matchingAttrL-true-INV, projectCols-0, projectCols-1, projectCols-2, % 35.02/5.29 projectCols-INV, projectEmptyCol-0, projectEmptyCol-1, projectEmptyCol-INV, % 35.02/5.29 projectFirstRaw-0, projectFirstRaw-1, projectFirstRaw-2, projectFirstRaw-INV, % 35.02/5.29 projectTable-0, projectTable-1, projectTable-2, projectTable-INV, projectType-0, % 35.02/5.29 projectType-1, projectType-INV, projectTypeAttrL-0, projectTypeAttrL-1, % 35.02/5.29 projectTypeAttrL-2, projectTypeAttrL-INV, rawDifference-0, rawDifference-1, % 35.02/5.29 rawDifference-2, rawDifference-3, rawDifference-4, rawDifference-INV, % 35.02/5.29 rawIntersection-0, rawIntersection-1, rawIntersection-2, rawIntersection-3, % 35.02/5.29 rawIntersection-4, rawIntersection-INV, rawUnion-0, rawUnion-1, rawUnion-2, % 35.02/5.29 rawUnion-INV, reduce-0, reduce-1, reduce-10, reduce-11, reduce-12, reduce-13, % 35.02/5.29 reduce-14, reduce-15, reduce-16, reduce-17, reduce-18, reduce-2, reduce-3, % 35.02/5.29 reduce-4, reduce-5, reduce-6, reduce-7, reduce-8, reduce-9, reduce-INV, rowIn-0, % 35.02/5.29 rowIn-1, rowIn-false-INV, rowIn-true-INV, sameLength-0, sameLength-1, % 35.02/5.29 sameLength-2, sameLength-false-INV, sameLength-true-INV, % 35.02/5.29 storeContextConsistent-0, storeContextConsistent-1, storeContextConsistent-2, % 35.02/5.29 storeContextConsistent-false-INV, storeContextConsistent-true-INV, tcheckPred-0, % 35.02/5.29 tcheckPred-1, tcheckPred-2, tcheckPred-3, tcheckPred-4, tcheckPred-5, % 35.02/5.29 tcheckPred-false-INV, tcheckPred-true-INV, typeOfExp-0, typeOfExp-1, % 35.02/5.29 typeOfExp-2, typeOfExp-3, typeOfExp-INV, welltypedRawtable-0, % 35.02/5.29 welltypedRawtable-1, welltypedRawtable-false-INV, welltypedRawtable-true-INV, % 35.02/5.29 welltypedRow-0, welltypedRow-1, welltypedRow-2, welltypedRow-false-INV, % 35.02/5.29 welltypedRow-true-INV, welltypedtable-0, welltypedtable-false-INV, % 35.02/5.29 welltypedtable-true-INV % 35.02/5.29 % 35.02/5.29 Those formulas are unsatisfiable: % 35.02/5.29 --------------------------------- % 35.02/5.29 % 35.02/5.29 Begin of proof % 35.02/5.29 | % 35.02/5.29 | ALPHA: (DIFF-ttempty-ttcons) implies: % 35.02/5.29 | (1) ! [v0: vName] : ! [v1: vFType] : ! [v2: vTType] : ( ~ (vttcons(v0, % 35.02/5.29 | v1, v2) = vttempty) | ~ vTType(v2) | ~ vFType(v1) | ~ % 35.02/5.29 | vName(v0)) % 35.02/5.29 | % 35.02/5.29 | ALPHA: (DIFF-aempty-acons) implies: % 35.02/5.29 | (2) ! [v0: vName] : ! [v1: vAttrL] : ( ~ (vacons(v0, v1) = vaempty) | ~ % 35.02/5.29 | vAttrL(v1) | ~ vName(v0)) % 35.02/5.29 | % 35.02/5.29 | ALPHA: (matchingAttrL-2) implies: % 35.02/5.29 | (3) ! [v0: vTType] : ! [v1: vAttrL] : ( ~ (vmatchingAttrL(v0, v1) = 0) | % 35.02/5.29 | ~ vTType(v0) | ~ vAttrL(v1) | (v1 = vaempty & v0 = vttempty) | ( ? % 35.02/5.29 | [v2: vName] : ? [v3: vFType] : ? [v4: vTType] : (vttcons(v2, v3, % 35.02/5.29 | v4) = v0 & vTType(v4) & vFType(v3) & vName(v2)) & ? [v2: % 35.02/5.29 | vName] : ? [v3: vAttrL] : (vacons(v2, v3) = v1 & vAttrL(v3) & % 35.02/5.29 | vName(v2)))) % 35.02/5.29 | % 35.02/5.29 | ALPHA: (isSomeFType-0) implies: % 35.02/5.29 | (4) ? [v0: int] : ( ~ (v0 = 0) & visSomeFType(vnoFType) = v0) % 35.02/5.29 | % 35.02/5.29 | ALPHA: (findColType-INV) implies: % 35.02/5.29 | (5) ! [v0: vName] : ! [v1: vTType] : ! [v2: vOptFType] : ( ~ % 35.02/5.29 | (vfindColType(v0, v1) = v2) | ~ vTType(v1) | ~ vName(v0) | ? [v3: % 35.02/5.29 | vName] : ? [v4: vFType] : ? [v5: vTType] : ( ~ (v3 = v0) & % 35.02/5.29 | vfindColType(v0, v5) = v2 & vttcons(v3, v4, v5) = v1 & % 35.02/5.29 | vOptFType(v2) & vTType(v5) & vFType(v4) & vName(v3)) | ? [v3: % 35.02/5.29 | vFType] : ? [v4: vTType] : (vsomeFType(v3) = v2 & vttcons(v0, v3, % 35.02/5.29 | v4) = v1 & vOptFType(v2) & vTType(v4) & vFType(v3)) | (v2 = % 35.02/5.29 | vnoFType & v1 = vttempty)) % 35.02/5.29 | % 35.02/5.29 | ALPHA: (findColTypeImpliesfindCol-aempty) implies: % 35.02/5.29 | (6) vAttrL(vaempty) % 35.02/5.30 | (7) ? [v0: vTType] : ? [v1: vRawTable] : ? [v2: vName] : ? [v3: vFType] % 35.02/5.30 | : ? [v4: vOptFType] : ? [v5: vOptRawTable] : (vfindColType(v2, v0) = % 35.02/5.30 | v4 & vfindCol(v2, vaempty, v1) = v5 & vwelltypedRawtable(v0, v1) = 0 % 35.02/5.30 | & vmatchingAttrL(v0, vaempty) = 0 & vsomeFType(v3) = v4 & % 35.02/5.30 | vOptFType(v4) & vTType(v0) & vFType(v3) & vOptRawTable(v5) & % 35.02/5.30 | vRawTable(v1) & vName(v2) & ! [v6: vRawTable] : ( ~ % 35.02/5.30 | (vsomeRawTable(v6) = v5) | ~ vRawTable(v6))) % 35.02/5.30 | % 35.02/5.30 | ALPHA: (function-axioms) implies: % 35.02/5.30 | (8) ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: % 35.02/5.30 | vOptFType] : (v1 = v0 | ~ (visSomeFType(v2) = v1) | ~ % 35.02/5.30 | (visSomeFType(v2) = v0)) % 35.02/5.30 | % 35.48/5.30 | DELTA: instantiating (4) with fresh symbol all_309_0 gives: % 35.48/5.30 | (9) ~ (all_309_0 = 0) & visSomeFType(vnoFType) = all_309_0 % 35.48/5.30 | % 35.48/5.30 | ALPHA: (9) implies: % 35.48/5.30 | (10) ~ (all_309_0 = 0) % 35.48/5.30 | (11) visSomeFType(vnoFType) = all_309_0 % 35.48/5.30 | % 35.48/5.30 | DELTA: instantiating (7) with fresh symbols all_331_0, all_331_1, all_331_2, % 35.48/5.30 | all_331_3, all_331_4, all_331_5 gives: % 35.48/5.30 | (12) vfindColType(all_331_3, all_331_5) = all_331_1 & vfindCol(all_331_3, % 35.48/5.30 | vaempty, all_331_4) = all_331_0 & vwelltypedRawtable(all_331_5, % 35.48/5.30 | all_331_4) = 0 & vmatchingAttrL(all_331_5, vaempty) = 0 & % 35.48/5.30 | vsomeFType(all_331_2) = all_331_1 & vOptFType(all_331_1) & % 35.48/5.30 | vTType(all_331_5) & vFType(all_331_2) & vOptRawTable(all_331_0) & % 35.48/5.30 | vRawTable(all_331_4) & vName(all_331_3) & ! [v0: vRawTable] : ( ~ % 35.48/5.30 | (vsomeRawTable(v0) = all_331_0) | ~ vRawTable(v0)) % 35.48/5.30 | % 35.48/5.30 | ALPHA: (12) implies: % 35.48/5.30 | (13) vName(all_331_3) % 35.48/5.30 | (14) vFType(all_331_2) % 35.48/5.30 | (15) vTType(all_331_5) % 35.48/5.30 | (16) vsomeFType(all_331_2) = all_331_1 % 35.48/5.30 | (17) vmatchingAttrL(all_331_5, vaempty) = 0 % 35.48/5.30 | (18) vfindColType(all_331_3, all_331_5) = all_331_1 % 35.48/5.30 | % 35.48/5.30 | GROUND_INST: instantiating (isSomeFType-1) with all_331_2, all_331_1, % 35.48/5.30 | simplifying with (14), (16) gives: % 35.48/5.30 | (19) visSomeFType(all_331_1) = 0 % 35.48/5.30 | % 35.48/5.30 | GROUND_INST: instantiating (3) with all_331_5, vaempty, simplifying with (6), % 35.48/5.30 | (15), (17) gives: % 35.48/5.30 | (20) all_331_5 = vttempty | ( ? [v0: vName] : ? [v1: vFType] : ? [v2: % 35.48/5.30 | vTType] : (vttcons(v0, v1, v2) = all_331_5 & vTType(v2) & % 35.48/5.30 | vFType(v1) & vName(v0)) & ? [v0: vName] : ? [v1: vAttrL] : % 35.48/5.30 | (vacons(v0, v1) = vaempty & vAttrL(v1) & vName(v0))) % 35.48/5.30 | % 35.48/5.30 | GROUND_INST: instantiating (5) with all_331_3, all_331_5, all_331_1, % 35.48/5.30 | simplifying with (13), (15), (18) gives: % 35.48/5.30 | (21) ? [v0: any] : ? [v1: vFType] : ? [v2: vTType] : ( ~ (v0 = % 35.48/5.30 | all_331_3) & vfindColType(all_331_3, v2) = all_331_1 & vttcons(v0, % 35.48/5.30 | v1, v2) = all_331_5 & vOptFType(all_331_1) & vTType(v2) & % 35.48/5.30 | vFType(v1) & vName(v0)) | ? [v0: vFType] : ? [v1: vTType] : % 35.48/5.30 | (vsomeFType(v0) = all_331_1 & vttcons(all_331_3, v0, v1) = all_331_5 & % 35.48/5.30 | vOptFType(all_331_1) & vTType(v1) & vFType(v0)) | (all_331_1 = % 35.48/5.30 | vnoFType & all_331_5 = vttempty) % 35.48/5.30 | % 35.48/5.30 | BETA: splitting (20) gives: % 35.48/5.30 | % 35.48/5.30 | Case 1: % 35.48/5.30 | | % 35.48/5.30 | | (22) all_331_5 = vttempty % 35.48/5.30 | | % 35.48/5.30 | | BETA: splitting (21) gives: % 35.48/5.30 | | % 35.48/5.30 | | Case 1: % 35.48/5.30 | | | % 35.48/5.31 | | | (23) ? [v0: any] : ? [v1: vFType] : ? [v2: vTType] : ( ~ (v0 = % 35.48/5.31 | | | all_331_3) & vfindColType(all_331_3, v2) = all_331_1 & % 35.48/5.31 | | | vttcons(v0, v1, v2) = all_331_5 & vOptFType(all_331_1) & % 35.48/5.31 | | | vTType(v2) & vFType(v1) & vName(v0)) % 35.48/5.31 | | | % 35.48/5.31 | | | DELTA: instantiating (23) with fresh symbols all_532_0, all_532_1, % 35.48/5.31 | | | all_532_2 gives: % 35.48/5.31 | | | (24) ~ (all_532_2 = all_331_3) & vfindColType(all_331_3, all_532_0) = % 35.48/5.31 | | | all_331_1 & vttcons(all_532_2, all_532_1, all_532_0) = all_331_5 & % 35.48/5.31 | | | vOptFType(all_331_1) & vTType(all_532_0) & vFType(all_532_1) & % 35.48/5.31 | | | vName(all_532_2) % 35.48/5.31 | | | % 35.48/5.31 | | | ALPHA: (24) implies: % 35.48/5.31 | | | (25) vName(all_532_2) % 35.48/5.31 | | | (26) vFType(all_532_1) % 35.48/5.31 | | | (27) vTType(all_532_0) % 35.48/5.31 | | | (28) vttcons(all_532_2, all_532_1, all_532_0) = all_331_5 % 35.48/5.31 | | | % 35.48/5.31 | | | REDUCE: (22), (28) imply: % 35.48/5.31 | | | (29) vttcons(all_532_2, all_532_1, all_532_0) = vttempty % 35.48/5.31 | | | % 35.48/5.31 | | | GROUND_INST: instantiating (1) with all_532_2, all_532_1, all_532_0, % 35.48/5.31 | | | simplifying with (25), (26), (27), (29) gives: % 35.48/5.31 | | | (30) $false % 35.48/5.31 | | | % 35.48/5.31 | | | CLOSE: (30) is inconsistent. % 35.48/5.31 | | | % 35.48/5.31 | | Case 2: % 35.48/5.31 | | | % 35.48/5.31 | | | (31) ? [v0: vFType] : ? [v1: vTType] : (vsomeFType(v0) = all_331_1 & % 35.48/5.31 | | | vttcons(all_331_3, v0, v1) = all_331_5 & vOptFType(all_331_1) & % 35.48/5.31 | | | vTType(v1) & vFType(v0)) | (all_331_1 = vnoFType & all_331_5 = % 35.48/5.31 | | | vttempty) % 35.48/5.31 | | | % 35.48/5.31 | | | BETA: splitting (31) gives: % 35.48/5.31 | | | % 35.48/5.31 | | | Case 1: % 35.48/5.31 | | | | % 35.48/5.31 | | | | (32) ? [v0: vFType] : ? [v1: vTType] : (vsomeFType(v0) = all_331_1 % 35.48/5.31 | | | | & vttcons(all_331_3, v0, v1) = all_331_5 & % 35.48/5.31 | | | | vOptFType(all_331_1) & vTType(v1) & vFType(v0)) % 35.48/5.31 | | | | % 35.48/5.31 | | | | DELTA: instantiating (32) with fresh symbols all_532_0, all_532_1 gives: % 35.48/5.31 | | | | (33) vsomeFType(all_532_1) = all_331_1 & vttcons(all_331_3, % 35.48/5.31 | | | | all_532_1, all_532_0) = all_331_5 & vOptFType(all_331_1) & % 35.48/5.31 | | | | vTType(all_532_0) & vFType(all_532_1) % 35.48/5.31 | | | | % 35.48/5.31 | | | | ALPHA: (33) implies: % 35.48/5.31 | | | | (34) vFType(all_532_1) % 35.48/5.31 | | | | (35) vTType(all_532_0) % 35.48/5.31 | | | | (36) vttcons(all_331_3, all_532_1, all_532_0) = all_331_5 % 35.48/5.31 | | | | % 35.48/5.31 | | | | REDUCE: (22), (36) imply: % 35.48/5.31 | | | | (37) vttcons(all_331_3, all_532_1, all_532_0) = vttempty % 35.48/5.31 | | | | % 35.48/5.31 | | | | GROUND_INST: instantiating (1) with all_331_3, all_532_1, all_532_0, % 35.48/5.31 | | | | simplifying with (13), (34), (35), (37) gives: % 35.48/5.31 | | | | (38) $false % 35.48/5.31 | | | | % 35.48/5.31 | | | | CLOSE: (38) is inconsistent. % 35.48/5.31 | | | | % 35.48/5.31 | | | Case 2: % 35.48/5.31 | | | | % 35.48/5.31 | | | | (39) all_331_1 = vnoFType & all_331_5 = vttempty % 35.48/5.31 | | | | % 35.48/5.31 | | | | ALPHA: (39) implies: % 35.48/5.31 | | | | (40) all_331_1 = vnoFType % 35.48/5.31 | | | | % 35.48/5.31 | | | | REDUCE: (19), (40) imply: % 35.48/5.31 | | | | (41) visSomeFType(vnoFType) = 0 % 35.48/5.31 | | | | % 35.48/5.31 | | | | GROUND_INST: instantiating (8) with all_309_0, 0, vnoFType, simplifying % 35.48/5.31 | | | | with (11), (41) gives: % 35.48/5.31 | | | | (42) all_309_0 = 0 % 35.48/5.31 | | | | % 35.48/5.31 | | | | REDUCE: (10), (42) imply: % 35.48/5.31 | | | | (43) $false % 35.48/5.31 | | | | % 35.48/5.31 | | | | CLOSE: (43) is inconsistent. % 35.48/5.31 | | | | % 35.48/5.31 | | | End of split % 35.48/5.31 | | | % 35.48/5.31 | | End of split % 35.48/5.31 | | % 35.48/5.31 | Case 2: % 35.48/5.31 | | % 35.48/5.31 | | (44) ? [v0: vName] : ? [v1: vFType] : ? [v2: vTType] : (vttcons(v0, % 35.48/5.31 | | v1, v2) = all_331_5 & vTType(v2) & vFType(v1) & vName(v0)) & ? % 35.48/5.31 | | [v0: vName] : ? [v1: vAttrL] : (vacons(v0, v1) = vaempty & % 35.48/5.31 | | vAttrL(v1) & vName(v0)) % 35.48/5.31 | | % 35.48/5.31 | | ALPHA: (44) implies: % 35.48/5.31 | | (45) ? [v0: vName] : ? [v1: vAttrL] : (vacons(v0, v1) = vaempty & % 35.48/5.31 | | vAttrL(v1) & vName(v0)) % 35.48/5.31 | | % 35.48/5.31 | | DELTA: instantiating (45) with fresh symbols all_521_0, all_521_1 gives: % 35.48/5.31 | | (46) vacons(all_521_1, all_521_0) = vaempty & vAttrL(all_521_0) & % 35.48/5.31 | | vName(all_521_1) % 35.48/5.31 | | % 35.48/5.31 | | ALPHA: (46) implies: % 35.48/5.31 | | (47) vName(all_521_1) % 35.48/5.31 | | (48) vAttrL(all_521_0) % 35.48/5.32 | | (49) vacons(all_521_1, all_521_0) = vaempty % 35.48/5.32 | | % 35.48/5.32 | | GROUND_INST: instantiating (2) with all_521_1, all_521_0, simplifying with % 35.48/5.32 | | (47), (48), (49) gives: % 35.48/5.32 | | (50) $false % 35.48/5.32 | | % 35.48/5.32 | | CLOSE: (50) is inconsistent. % 35.48/5.32 | | % 35.48/5.32 | End of split % 35.48/5.32 | % 35.48/5.32 End of proof % 35.48/5.32 % SZS output end Proof for theBenchmark % 35.48/5.32 % 35.48/5.32 4693ms %------------------------------------------------------------------------------