%------------------------------------------------------------------------------ % File : Princess---230619 % Problem : COM281_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 : n012.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 33.85s 5.23s % Output : Proof 45.97s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.00/0.07 % Problem : COM281_1 : TPTP v9.3.0. Released v9.3.0. % 0.00/0.07 % Command : princess -inputFormat=tptp +threads -portfolio=casc +printProof -timeoutSec=%d %s % 0.08/0.25 % Computer : n012.cluster.edu % 0.08/0.25 % Model : x86_64 x86_64 % 0.08/0.25 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz % 0.08/0.25 % Memory : 8042.1875MB % 0.08/0.25 % OS : Linux 3.10.0-693.el7.x86_64 % 0.08/0.25 % CPULimit : 300 % 0.08/0.25 % WCLimit : 300 % 0.08/0.25 % DateTime : Mon May 4 20:14:45 EDT 2026 % 0.08/0.26 % CPUTime : % 0.38/0.46 ________ _____ % 0.38/0.46 ___ __ \_________(_)________________________________ % 0.38/0.46 __ /_/ /_ ___/_ /__ __ \ ___/ _ \_ ___/_ ___/ % 0.38/0.46 _ ____/_ / _ / _ / / / /__ / __/(__ )_(__ ) % 0.38/0.46 /_/ /_/ /_/ /_/ /_/\___/ \___//____/ /____/ % 0.38/0.46 % 0.38/0.46 A Theorem Prover for First-Order Logic modulo Linear Integer Arithmetic % 0.38/0.46 (2023-06-19) % 0.38/0.46 % 0.38/0.46 (c) Philipp Rümmer, 2009-2023 % 0.38/0.46 Contributors: Peter Backeman, Peter Baumgartner, Angelo Brillout, Zafer Esen, % 0.38/0.46 Amanda Stjerna. % 0.38/0.46 Free software under BSD-3-Clause. % 0.38/0.46 % 0.38/0.46 For more information, visit http://www.philipp.ruemmer.org/princess.shtml % 0.38/0.46 % 0.38/0.46 Loading /export/starexec/sandbox/benchmark/theBenchmark.p ... % 0.38/0.47 Running up to 7 provers in parallel. % 0.38/0.49 Prover 0: Options: +triggersInConjecture +genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=0 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=1042961893 % 0.38/0.49 Prover 1: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-1571432423 % 0.38/0.49 Prover 3: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=1922548996 % 0.38/0.49 Prover 2: Options: +triggersInConjecture +genTotalityAxioms -tightFunctionScopes -clausifier=simple +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMinimalAndEmpty -realRatSaturationRounds=1 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=-1065072994 % 0.38/0.49 Prover 4: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=1868514696 % 0.38/0.49 Prover 6: Options: -triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=none +reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximalOutermost -realRatSaturationRounds=0 -ignoreQuantifiers -constructProofs=never -generateTriggers=all -randomSeed=-1399714365 % 0.38/0.49 Prover 5: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=none +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allMaximal -realRatSaturationRounds=1 -ignoreQuantifiers -constructProofs=never -generateTriggers=complete -randomSeed=1259561288 % 11.39/2.21 Prover 2: Preprocessing ... % 11.39/2.21 Prover 3: Preprocessing ... % 11.39/2.21 Prover 6: Preprocessing ... % 11.39/2.23 Prover 4: Preprocessing ... % 11.39/2.24 Prover 0: Preprocessing ... % 11.39/2.24 Prover 5: Preprocessing ... % 11.39/2.25 Prover 1: Preprocessing ... % 27.89/4.43 Prover 1: Warning: ignoring some quantifiers % 28.68/4.56 Prover 4: Warning: ignoring some quantifiers % 29.43/4.60 Prover 1: Constructing countermodel ... % 29.43/4.62 Prover 3: Warning: ignoring some quantifiers % 30.19/4.71 Prover 3: Constructing countermodel ... % 30.19/4.73 Prover 6: Proving ... % 30.19/4.73 Prover 4: Constructing countermodel ... % 30.19/4.74 Prover 0: Proving ... % 30.92/4.84 Prover 5: Proving ... % 33.85/5.21 Prover 3: proved (4732ms) % 33.85/5.22 % 33.85/5.23 % SZS status Theorem for /export/starexec/sandbox/benchmark/theBenchmark.p % 33.85/5.23 % 33.85/5.23 Prover 5: stopped % 33.85/5.24 Prover 6: stopped % 33.85/5.24 Prover 7: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple +reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-236303470 % 33.85/5.24 Prover 0: stopped % 33.85/5.24 Prover 10: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=919308125 % 33.85/5.25 Prover 11: Options: +triggersInConjecture -genTotalityAxioms +tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=allUni -realRatSaturationRounds=1 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-1509710984 % 33.85/5.25 Prover 8: Options: +triggersInConjecture +genTotalityAxioms -tightFunctionScopes -clausifier=none -reverseFunctionalityPropagation -boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=all -randomSeed=-200781089 % 33.85/5.26 Prover 2: Proving ... % 33.85/5.26 Prover 2: stopped % 33.85/5.27 Prover 13: Options: +triggersInConjecture -genTotalityAxioms -tightFunctionScopes -clausifier=simple -reverseFunctionalityPropagation +boolFunsAsPreds -triggerStrategy=maximal -realRatSaturationRounds=0 +ignoreQuantifiers -constructProofs=always -generateTriggers=complete -randomSeed=1138197443 % 38.40/5.84 Prover 1: Found proof (size 50) % 38.40/5.84 Prover 1: proved (5363ms) % 38.40/5.84 Prover 4: stopped % 39.96/6.08 Prover 7: Preprocessing ... % 40.81/6.17 Prover 11: Preprocessing ... % 40.81/6.18 Prover 13: Preprocessing ... % 40.81/6.19 Prover 10: Preprocessing ... % 41.38/6.20 Prover 8: Preprocessing ... % 42.06/6.38 Prover 7: stopped % 42.06/6.39 Prover 11: stopped % 42.76/6.40 Prover 10: stopped % 43.37/6.55 Prover 13: stopped % 44.63/6.86 Prover 8: Warning: ignoring some quantifiers % 45.03/6.91 Prover 8: Constructing countermodel ... % 45.03/6.95 Prover 8: stopped % 45.03/6.95 % 45.03/6.95 % SZS status Theorem for /export/starexec/sandbox/benchmark/theBenchmark.p % 45.03/6.95 % 45.03/6.96 % SZS output start Proof for theBenchmark % 45.03/6.98 Assumptions after simplification: % 45.03/6.98 --------------------------------- % 45.03/6.98 % 45.03/6.98 (EQ-table) % 45.50/7.02 ! [v0: vAttrL] : ! [v1: vRawTable] : ! [v2: vAttrL] : ! [v3: vRawTable] : % 45.50/7.02 ! [v4: vTable] : ( ~ (vtable(v2, v3) = v4) | ~ (vtable(v0, v1) = v4) | ~ % 45.50/7.02 vRawTable(v3) | ~ vRawTable(v1) | ~ vAttrL(v2) | ~ vAttrL(v0) | (v3 = v1 % 45.50/7.02 & v2 = v0)) % 45.50/7.02 % 45.50/7.02 (filterPreservesType) % 45.50/7.02 ? [v0: vTType] : ? [v1: vTable] : ? [v2: vPred] : ? [v3: vTable] : ? [v4: % 45.50/7.02 int] : ( ~ (v4 = 0) & vfilterTable(v1, v2) = v3 & vwelltypedtable(v0, v3) = % 45.50/7.02 v4 & vwelltypedtable(v0, v1) = 0 & vTType(v0) & vTable(v3) & vTable(v1) & % 45.50/7.02 vPred(v2)) % 45.50/7.02 % 45.50/7.02 (filterRowsPreservesTable) % 45.50/7.02 ! [v0: vTType] : ! [v1: vRawTable] : ! [v2: vAttrL] : ! [v3: vPred] : ! % 45.50/7.02 [v4: vRawTable] : ! [v5: int] : (v5 = 0 | ~ (vfilterRows(v1, v2, v3) = v4) | % 45.50/7.02 ~ (vwelltypedRawtable(v0, v4) = v5) | ~ vTType(v0) | ~ vRawTable(v1) | ~ % 45.50/7.02 vAttrL(v2) | ~ vPred(v3) | ? [v6: int] : ( ~ (v6 = 0) & % 45.50/7.02 vwelltypedRawtable(v0, v1) = v6)) % 45.50/7.02 % 45.50/7.03 (filterTable-0) % 45.50/7.03 ! [v0: vAttrL] : ! [v1: vRawTable] : ! [v2: vPred] : ! [v3: vTable] : ! % 45.50/7.03 [v4: vTable] : ( ~ (vfilterTable(v3, v2) = v4) | ~ (vtable(v0, v1) = v3) | ~ % 45.50/7.03 vRawTable(v1) | ~ vAttrL(v0) | ~ vPred(v2) | ? [v5: vRawTable] : % 45.50/7.03 (vfilterRows(v1, v0, v2) = v5 & vtable(v0, v5) = v4 & vTable(v4) & % 45.50/7.03 vRawTable(v5))) % 45.50/7.03 % 45.50/7.03 (filterTable-INV) % 45.50/7.03 ! [v0: vTable] : ! [v1: vPred] : ! [v2: vTable] : ( ~ (vfilterTable(v0, v1) % 45.50/7.03 = v2) | ~ vTable(v0) | ~ vPred(v1) | ? [v3: vAttrL] : ? [v4: % 45.50/7.03 vRawTable] : ? [v5: vRawTable] : (vfilterRows(v4, v3, v1) = v5 & % 45.50/7.03 vtable(v3, v5) = v2 & vtable(v3, v4) = v0 & vTable(v2) & vRawTable(v5) & % 45.50/7.03 vRawTable(v4) & vAttrL(v3))) % 45.50/7.03 % 45.50/7.03 (welltypedtable-0) % 45.50/7.04 ! [v0: vTType] : ! [v1: vAttrL] : ! [v2: vRawTable] : ! [v3: vTable] : ! % 45.50/7.04 [v4: int] : (v4 = 0 | ~ (vwelltypedtable(v0, v3) = v4) | ~ (vtable(v1, v2) = % 45.50/7.04 v3) | ~ vTType(v0) | ~ vRawTable(v2) | ~ vAttrL(v1) | ? [v5: any] : ? % 45.50/7.04 [v6: any] : (vwelltypedRawtable(v0, v2) = v6 & vmatchingAttrL(v0, v1) = v5 & % 45.50/7.04 ( ~ (v6 = 0) | ~ (v5 = 0)))) & ! [v0: vTType] : ! [v1: vAttrL] : ! % 45.50/7.04 [v2: vRawTable] : ! [v3: vTable] : ( ~ (vwelltypedtable(v0, v3) = 0) | ~ % 45.50/7.04 (vtable(v1, v2) = v3) | ~ vTType(v0) | ~ vRawTable(v2) | ~ vAttrL(v1) | % 45.50/7.04 (vwelltypedRawtable(v0, v2) = 0 & vmatchingAttrL(v0, v1) = 0)) % 45.50/7.04 % 45.50/7.04 (welltypedtable-false-INV) % 45.50/7.04 ! [v0: vTType] : ! [v1: vTable] : ! [v2: int] : (v2 = 0 | ~ % 45.50/7.04 (vwelltypedtable(v0, v1) = v2) | ~ vTType(v0) | ~ vTable(v1) | ? [v3: % 45.50/7.04 vAttrL] : ? [v4: vRawTable] : ? [v5: any] : ? [v6: any] : % 45.50/7.04 (vwelltypedRawtable(v0, v4) = v6 & vmatchingAttrL(v0, v3) = v5 & vtable(v3, % 45.50/7.04 v4) = v1 & vRawTable(v4) & vAttrL(v3) & ( ~ (v6 = 0) | ~ (v5 = 0)))) % 45.50/7.04 % 45.50/7.04 (welltypedtable-true-INV) % 45.50/7.04 ! [v0: vTType] : ! [v1: vTable] : ( ~ (vwelltypedtable(v0, v1) = 0) | ~ % 45.50/7.04 vTType(v0) | ~ vTable(v1) | ? [v2: vAttrL] : ? [v3: vRawTable] : % 45.50/7.04 (vwelltypedRawtable(v0, v3) = 0 & vmatchingAttrL(v0, v2) = 0 & vtable(v2, % 45.50/7.04 v3) = v1 & vRawTable(v3) & vAttrL(v2))) % 45.50/7.04 % 45.50/7.04 (function-axioms) % 45.50/7.08 ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vTType] : ! % 45.50/7.08 [v3: vQuery] : ! [v4: vTTContext] : (v1 = v0 | ~ (vptcheck(v4, v3, v2) = v1) % 45.50/7.08 | ~ (vptcheck(v4, v3, v2) = v0)) & ! [v0: vRawTable] : ! [v1: vRawTable] % 45.50/7.08 : ! [v2: vPred] : ! [v3: vAttrL] : ! [v4: vRawTable] : (v1 = v0 | ~ % 45.50/7.08 (vfilterRows(v4, v3, v2) = v1) | ~ (vfilterRows(v4, v3, v2) = v0)) & ! % 45.50/7.08 [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vRow] : ! [v3: % 45.50/7.08 vAttrL] : ! [v4: vPred] : (v1 = v0 | ~ (vfilterSingleRow(v4, v3, v2) = v1) % 45.50/7.08 | ~ (vfilterSingleRow(v4, v3, v2) = v0)) & ! [v0: vOptVal] : ! [v1: % 45.50/7.08 vOptVal] : ! [v2: vRow] : ! [v3: vAttrL] : ! [v4: vExp] : (v1 = v0 | ~ % 45.50/7.08 (vevalExpRow(v4, v3, v2) = v1) | ~ (vevalExpRow(v4, v3, v2) = v0)) & ! % 45.50/7.08 [v0: vOptRawTable] : ! [v1: vOptRawTable] : ! [v2: vRawTable] : ! [v3: % 45.50/7.08 vAttrL] : ! [v4: vAttrL] : (v1 = v0 | ~ (vprojectCols(v4, v3, v2) = v1) | % 45.50/7.08 ~ (vprojectCols(v4, v3, v2) = v0)) & ! [v0: vOptRawTable] : ! [v1: % 45.50/7.08 vOptRawTable] : ! [v2: vRawTable] : ! [v3: vAttrL] : ! [v4: vName] : (v1 % 45.50/7.08 = v0 | ~ (vfindCol(v4, v3, v2) = v1) | ~ (vfindCol(v4, v3, v2) = v0)) & ! % 45.50/7.08 [v0: vTStore] : ! [v1: vTStore] : ! [v2: vTStore] : ! [v3: vTable] : ! % 45.50/7.08 [v4: vName] : (v1 = v0 | ~ (vbindStore(v4, v3, v2) = v1) | ~ (vbindStore(v4, % 45.50/7.08 v3, v2) = v0)) & ! [v0: vTTContext] : ! [v1: vTTContext] : ! [v2: % 45.50/7.08 vTTContext] : ! [v3: vTType] : ! [v4: vName] : (v1 = v0 | ~ % 45.50/7.08 (vbindContext(v4, v3, v2) = v1) | ~ (vbindContext(v4, v3, v2) = v0)) & ! % 45.50/7.08 [v0: vTType] : ! [v1: vTType] : ! [v2: vTType] : ! [v3: vFType] : ! [v4: % 45.50/7.08 vName] : (v1 = v0 | ~ (vttcons(v4, v3, v2) = v1) | ~ (vttcons(v4, v3, v2) % 45.50/7.08 = v0)) & ! [v0: vQuery] : ! [v1: vQuery] : ! [v2: vPred] : ! [v3: % 45.50/7.08 vName] : ! [v4: vSelect] : (v1 = v0 | ~ (vselectFromWhere(v4, v3, v2) = % 45.50/7.08 v1) | ~ (vselectFromWhere(v4, v3, v2) = v0)) & ! [v0: MultipleValueBool] % 45.50/7.08 : ! [v1: MultipleValueBool] : ! [v2: vTTContext] : ! [v3: vTStore] : (v1 = % 45.50/7.08 v0 | ~ (vstoreContextConsistent(v3, v2) = v1) | ~ % 45.50/7.08 (vstoreContextConsistent(v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! % 45.50/7.08 [v1: MultipleValueBool] : ! [v2: vTType] : ! [v3: vPred] : (v1 = v0 | ~ % 45.50/7.08 (vtcheckPred(v3, v2) = v1) | ~ (vtcheckPred(v3, v2) = v0)) & ! [v0: % 45.50/7.08 vOptFType] : ! [v1: vOptFType] : ! [v2: vTType] : ! [v3: vExp] : (v1 = v0 % 45.50/7.08 | ~ (vtypeOfExp(v3, v2) = v1) | ~ (vtypeOfExp(v3, v2) = v0)) & ! [v0: % 45.50/7.08 vOptTType] : ! [v1: vOptTType] : ! [v2: vTType] : ! [v3: vSelect] : (v1 = % 45.50/7.08 v0 | ~ (vprojectType(v3, v2) = v1) | ~ (vprojectType(v3, v2) = v0)) & ! % 45.50/7.08 [v0: vOptTType] : ! [v1: vOptTType] : ! [v2: vTType] : ! [v3: vAttrL] : (v1 % 45.50/7.08 = v0 | ~ (vprojectTypeAttrL(v3, v2) = v1) | ~ (vprojectTypeAttrL(v3, v2) = % 45.50/7.08 v0)) & ! [v0: vOptFType] : ! [v1: vOptFType] : ! [v2: vTType] : ! [v3: % 45.50/7.08 vName] : (v1 = v0 | ~ (vfindColType(v3, v2) = v1) | ~ (vfindColType(v3, % 45.50/7.08 v2) = v0)) & ! [v0: vOptQuery] : ! [v1: vOptQuery] : ! [v2: vTStore] % 45.50/7.08 : ! [v3: vQuery] : (v1 = v0 | ~ (vreduce(v3, v2) = v1) | ~ (vreduce(v3, v2) % 45.50/7.08 = v0)) & ! [v0: vTable] : ! [v1: vTable] : ! [v2: vPred] : ! [v3: % 45.50/7.08 vTable] : (v1 = v0 | ~ (vfilterTable(v3, v2) = v1) | ~ (vfilterTable(v3, % 45.50/7.08 v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : % 45.50/7.08 ! [v2: vVal] : ! [v3: vVal] : (v1 = v0 | ~ (vlessThan(v3, v2) = v1) | ~ % 45.50/7.08 (vlessThan(v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: % 45.50/7.08 MultipleValueBool] : ! [v2: vVal] : ! [v3: vVal] : (v1 = v0 | ~ % 45.50/7.08 (vgreaterThan(v3, v2) = v1) | ~ (vgreaterThan(v3, v2) = v0)) & ! [v0: % 45.50/7.08 vOptTable] : ! [v1: vOptTable] : ! [v2: vTable] : ! [v3: vSelect] : (v1 = % 45.50/7.08 v0 | ~ (vprojectTable(v3, v2) = v1) | ~ (vprojectTable(v3, v2) = v0)) & ! % 45.50/7.08 [v0: vOptTType] : ! [v1: vOptTType] : ! [v2: vTTContext] : ! [v3: vName] : % 45.50/7.08 (v1 = v0 | ~ (vlookupContext(v3, v2) = v1) | ~ (vlookupContext(v3, v2) = % 45.50/7.08 v0)) & ! [v0: vOptTable] : ! [v1: vOptTable] : ! [v2: vTStore] : ! % 45.50/7.08 [v3: vName] : (v1 = v0 | ~ (vlookupStore(v3, v2) = v1) | ~ (vlookupStore(v3, % 45.50/7.08 v2) = v0)) & ! [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: % 45.50/7.08 vRawTable] : ! [v3: vRawTable] : (v1 = v0 | ~ (vrawDifference(v3, v2) = % 45.50/7.08 v1) | ~ (vrawDifference(v3, v2) = v0)) & ! [v0: vRawTable] : ! [v1: % 45.50/7.08 vRawTable] : ! [v2: vRawTable] : ! [v3: vRawTable] : (v1 = v0 | ~ % 45.50/7.08 (vrawIntersection(v3, v2) = v1) | ~ (vrawIntersection(v3, v2) = v0)) & ! % 45.50/7.08 [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: vRawTable] : ! [v3: vRawTable] % 45.50/7.08 : (v1 = v0 | ~ (vrawUnion(v3, v2) = v1) | ~ (vrawUnion(v3, v2) = v0)) & ! % 45.50/7.08 [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: vRawTable] : ! [v3: vRawTable] % 45.50/7.08 : (v1 = v0 | ~ (vattachColToFrontRaw(v3, v2) = v1) | ~ % 45.50/7.08 (vattachColToFrontRaw(v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: % 45.50/7.08 MultipleValueBool] : ! [v2: vRawTable] : ! [v3: vRawTable] : (v1 = v0 | ~ % 45.50/7.08 (vsameLength(v3, v2) = v1) | ~ (vsameLength(v3, v2) = v0)) & ! [v0: % 45.50/7.08 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vRawTable] : ! % 45.50/7.08 [v3: vRow] : (v1 = v0 | ~ (vrowIn(v3, v2) = v1) | ~ (vrowIn(v3, v2) = v0)) & % 45.50/7.08 ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vTable] : ! % 45.50/7.08 [v3: vTType] : (v1 = v0 | ~ (vwelltypedtable(v3, v2) = v1) | ~ % 45.50/7.08 (vwelltypedtable(v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: % 45.50/7.08 MultipleValueBool] : ! [v2: vRawTable] : ! [v3: vTType] : (v1 = v0 | ~ % 45.50/7.08 (vwelltypedRawtable(v3, v2) = v1) | ~ (vwelltypedRawtable(v3, v2) = v0)) & % 45.50/7.08 ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vRow] : ! % 45.50/7.08 [v3: vTType] : (v1 = v0 | ~ (vwelltypedRow(v3, v2) = v1) | ~ % 45.50/7.08 (vwelltypedRow(v3, v2) = v0)) & ! [v0: MultipleValueBool] : ! [v1: % 45.50/7.08 MultipleValueBool] : ! [v2: vAttrL] : ! [v3: vTType] : (v1 = v0 | ~ % 45.50/7.08 (vmatchingAttrL(v3, v2) = v1) | ~ (vmatchingAttrL(v3, v2) = v0)) & ! [v0: % 45.50/7.08 vAttrL] : ! [v1: vAttrL] : ! [v2: vAttrL] : ! [v3: vAttrL] : (v1 = v0 | % 45.50/7.08 ~ (vappend(v3, v2) = v1) | ~ (vappend(v3, v2) = v0)) & ! [v0: vAttrL] : ! % 45.50/7.08 [v1: vAttrL] : ! [v2: vAttrL] : ! [v3: vName] : (v1 = v0 | ~ (vacons(v3, % 45.50/7.08 v2) = v1) | ~ (vacons(v3, v2) = v0)) & ! [v0: vPred] : ! [v1: vPred] % 45.50/7.08 : ! [v2: vExp] : ! [v3: vExp] : (v1 = v0 | ~ (vlt(v3, v2) = v1) | ~ % 45.50/7.08 (vlt(v3, v2) = v0)) & ! [v0: vPred] : ! [v1: vPred] : ! [v2: vExp] : ! % 45.50/7.08 [v3: vExp] : (v1 = v0 | ~ (vgt(v3, v2) = v1) | ~ (vgt(v3, v2) = v0)) & ! % 45.50/7.08 [v0: vPred] : ! [v1: vPred] : ! [v2: vExp] : ! [v3: vExp] : (v1 = v0 | ~ % 45.50/7.08 (veq(v3, v2) = v1) | ~ (veq(v3, v2) = v0)) & ! [v0: vPred] : ! [v1: % 45.50/7.08 vPred] : ! [v2: vPred] : ! [v3: vPred] : (v1 = v0 | ~ (vand(v3, v2) = v1) % 45.50/7.08 | ~ (vand(v3, v2) = v0)) & ! [v0: vTable] : ! [v1: vTable] : ! [v2: % 45.50/7.08 vRawTable] : ! [v3: vAttrL] : (v1 = v0 | ~ (vtable(v3, v2) = v1) | ~ % 45.50/7.08 (vtable(v3, v2) = v0)) & ! [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: % 45.50/7.08 vRawTable] : ! [v3: vRow] : (v1 = v0 | ~ (vtcons(v3, v2) = v1) | ~ % 45.50/7.08 (vtcons(v3, v2) = v0)) & ! [v0: vRow] : ! [v1: vRow] : ! [v2: vRow] : ! % 45.50/7.08 [v3: vVal] : (v1 = v0 | ~ (vrcons(v3, v2) = v1) | ~ (vrcons(v3, v2) = v0)) & % 45.50/7.08 ! [v0: vQuery] : ! [v1: vQuery] : ! [v2: vQuery] : ! [v3: vQuery] : (v1 = % 45.50/7.08 v0 | ~ (vDifference(v3, v2) = v1) | ~ (vDifference(v3, v2) = v0)) & ! % 45.50/7.08 [v0: vQuery] : ! [v1: vQuery] : ! [v2: vQuery] : ! [v3: vQuery] : (v1 = v0 % 45.50/7.08 | ~ (vIntersection(v3, v2) = v1) | ~ (vIntersection(v3, v2) = v0)) & ! % 45.50/7.08 [v0: vQuery] : ! [v1: vQuery] : ! [v2: vQuery] : ! [v3: vQuery] : (v1 = v0 % 45.50/7.08 | ~ (vUnion(v3, v2) = v1) | ~ (vUnion(v3, v2) = v0)) & ! [v0: % 45.50/7.08 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptFType] : (v1 = % 45.50/7.08 v0 | ~ (visSomeFType(v2) = v1) | ~ (visSomeFType(v2) = v0)) & ! [v0: % 45.50/7.08 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptVal] : (v1 = % 45.50/7.08 v0 | ~ (visSomeVal(v2) = v1) | ~ (visSomeVal(v2) = v0)) & ! [v0: % 45.50/7.08 vRawTable] : ! [v1: vRawTable] : ! [v2: vRawTable] : (v1 = v0 | ~ % 45.50/7.08 (vprojectEmptyCol(v2) = v1) | ~ (vprojectEmptyCol(v2) = v0)) & ! [v0: % 45.50/7.08 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptQuery] : (v1 = % 45.50/7.08 v0 | ~ (visSomeQuery(v2) = v1) | ~ (visSomeQuery(v2) = v0)) & ! [v0: % 45.50/7.08 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vQuery] : (v1 = v0 % 45.50/7.08 | ~ (visValue(v2) = v1) | ~ (visValue(v2) = v0)) & ! [v0: % 45.50/7.08 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptTType] : (v1 = % 45.50/7.08 v0 | ~ (visSomeTType(v2) = v1) | ~ (visSomeTType(v2) = v0)) & ! [v0: % 45.50/7.08 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptTable] : (v1 = % 45.50/7.08 v0 | ~ (visSomeTable(v2) = v1) | ~ (visSomeTable(v2) = v0)) & ! [v0: % 45.50/7.08 MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: vOptRawTable] : % 45.50/7.08 (v1 = v0 | ~ (visSomeRawTable(v2) = v1) | ~ (visSomeRawTable(v2) = v0)) & ! % 45.50/7.08 [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: vRawTable] : (v1 = v0 | ~ % 45.50/7.08 (vdropFirstColRaw(v2) = v1) | ~ (vdropFirstColRaw(v2) = v0)) & ! [v0: % 45.50/7.08 vRawTable] : ! [v1: vRawTable] : ! [v2: vRawTable] : (v1 = v0 | ~ % 45.50/7.08 (vprojectFirstRaw(v2) = v1) | ~ (vprojectFirstRaw(v2) = v0)) & ! [v0: % 45.50/7.08 vFType] : ! [v1: vFType] : ! [v2: vVal] : (v1 = v0 | ~ (vfieldType(v2) = % 45.50/7.08 v1) | ~ (vfieldType(v2) = v0)) & ! [v0: vAttrL] : ! [v1: vAttrL] : ! % 45.50/7.08 [v2: vTable] : (v1 = v0 | ~ (vgetAttrL(v2) = v1) | ~ (vgetAttrL(v2) = v0)) & % 45.50/7.08 ! [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: vTable] : (v1 = v0 | ~ % 45.50/7.08 (vgetRaw(v2) = v1) | ~ (vgetRaw(v2) = v0)) & ! [v0: vFType] : ! [v1: % 45.50/7.08 vFType] : ! [v2: vOptFType] : (v1 = v0 | ~ (vgetFType(v2) = v1) | ~ % 45.50/7.08 (vgetFType(v2) = v0)) & ! [v0: vVal] : ! [v1: vVal] : ! [v2: vOptVal] : % 45.50/7.08 (v1 = v0 | ~ (vgetVal(v2) = v1) | ~ (vgetVal(v2) = v0)) & ! [v0: vQuery] : % 45.50/7.08 ! [v1: vQuery] : ! [v2: vOptQuery] : (v1 = v0 | ~ (vgetQuery(v2) = v1) | ~ % 45.50/7.08 (vgetQuery(v2) = v0)) & ! [v0: vTType] : ! [v1: vTType] : ! [v2: % 45.50/7.08 vOptTType] : (v1 = v0 | ~ (vgetTType(v2) = v1) | ~ (vgetTType(v2) = v0)) & % 45.50/7.08 ! [v0: vTable] : ! [v1: vTable] : ! [v2: vOptTable] : (v1 = v0 | ~ % 45.50/7.08 (vgetTable(v2) = v1) | ~ (vgetTable(v2) = v0)) & ! [v0: vRawTable] : ! % 45.50/7.08 [v1: vRawTable] : ! [v2: vOptRawTable] : (v1 = v0 | ~ (vgetRawTable(v2) = % 45.50/7.08 v1) | ~ (vgetRawTable(v2) = v0)) & ! [v0: vOptFType] : ! [v1: % 45.50/7.08 vOptFType] : ! [v2: vFType] : (v1 = v0 | ~ (vsomeFType(v2) = v1) | ~ % 45.50/7.08 (vsomeFType(v2) = v0)) & ! [v0: vVal] : ! [v1: vVal] : ! [v2: vVal] : (v1 % 45.50/7.08 = v0 | ~ (venumVal(v2) = v1) | ~ (venumVal(v2) = v0)) & ! [v0: vPred] : % 45.50/7.08 ! [v1: vPred] : ! [v2: vPred] : (v1 = v0 | ~ (vnot(v2) = v1) | ~ (vnot(v2) % 45.50/7.08 = v0)) & ! [v0: vOptVal] : ! [v1: vOptVal] : ! [v2: vVal] : (v1 = v0 | % 45.50/7.08 ~ (vsomeVal(v2) = v1) | ~ (vsomeVal(v2) = v0)) & ! [v0: vExp] : ! [v1: % 45.50/7.08 vExp] : ! [v2: vName] : (v1 = v0 | ~ (vlookup(v2) = v1) | ~ (vlookup(v2) % 45.50/7.08 = v0)) & ! [v0: vExp] : ! [v1: vExp] : ! [v2: vVal] : (v1 = v0 | ~ % 45.50/7.08 (vconstant(v2) = v1) | ~ (vconstant(v2) = v0)) & ! [v0: vName] : ! [v1: % 45.50/7.08 vName] : ! [v2: vName] : (v1 = v0 | ~ (venumName(v2) = v1) | ~ % 45.50/7.08 (venumName(v2) = v0)) & ! [v0: vOptQuery] : ! [v1: vOptQuery] : ! [v2: % 45.50/7.08 vQuery] : (v1 = v0 | ~ (vsomeQuery(v2) = v1) | ~ (vsomeQuery(v2) = v0)) & % 45.50/7.08 ! [v0: vFType] : ! [v1: vFType] : ! [v2: vFType] : (v1 = v0 | ~ % 45.50/7.08 (venumFType(v2) = v1) | ~ (venumFType(v2) = v0)) & ! [v0: vOptTType] : ! % 45.50/7.08 [v1: vOptTType] : ! [v2: vTType] : (v1 = v0 | ~ (vsomeTType(v2) = v1) | ~ % 45.50/7.08 (vsomeTType(v2) = v0)) & ! [v0: vOptRawTable] : ! [v1: vOptRawTable] : ! % 45.50/7.08 [v2: vRawTable] : (v1 = v0 | ~ (vsomeRawTable(v2) = v1) | ~ % 45.50/7.08 (vsomeRawTable(v2) = v0)) & ! [v0: vOptTable] : ! [v1: vOptTable] : ! % 45.50/7.08 [v2: vTable] : (v1 = v0 | ~ (vsomeTable(v2) = v1) | ~ (vsomeTable(v2) = v0)) % 45.50/7.08 & ! [v0: vQuery] : ! [v1: vQuery] : ! [v2: vTable] : (v1 = v0 | ~ % 45.50/7.08 (vtvalue(v2) = v1) | ~ (vtvalue(v2) = v0)) & ! [v0: vSelect] : ! [v1: % 45.50/7.08 vSelect] : ! [v2: vAttrL] : (v1 = v0 | ~ (vlist(v2) = v1) | ~ (vlist(v2) % 45.50/7.08 = v0)) % 45.50/7.08 % 45.50/7.08 Further assumptions not needed in the proof: % 45.50/7.08 -------------------------------------------- % 45.50/7.08 DIFF-Intersection-Difference, DIFF-Union-Difference, DIFF-Union-Intersection, % 45.50/7.08 DIFF-aempty-acons, DIFF-all-list, DIFF-and-eq, DIFF-and-gt, DIFF-and-lt, % 45.50/7.08 DIFF-and-not, DIFF-constant-lookup, DIFF-emptyContext-bindContext, % 45.50/7.08 DIFF-emptyStore-bindStore, DIFF-eq-gt, DIFF-eq-lt, DIFF-gt-lt, % 45.50/7.08 DIFF-initFType-enumFType, DIFF-initName-enumName, DIFF-initVal-enumVal, % 45.50/7.08 DIFF-noFType-someFType, DIFF-noQuery-someQuery, DIFF-noRawTable-someRawTable, % 45.50/7.08 DIFF-noTType-someTType, DIFF-noTable-someTable, DIFF-noVal-someVal, DIFF-not-eq, % 45.50/7.08 DIFF-not-gt, DIFF-not-lt, DIFF-ptrue-and, DIFF-ptrue-eq, DIFF-ptrue-gt, % 45.50/7.08 DIFF-ptrue-lt, DIFF-ptrue-not, DIFF-rempty-rcons, % 45.50/7.08 DIFF-selectFromWhere-Difference, DIFF-selectFromWhere-Intersection, % 45.50/7.08 DIFF-selectFromWhere-Union, DIFF-tempty-tcons, DIFF-ttempty-ttcons, % 45.50/7.08 DIFF-tvalue-Difference, DIFF-tvalue-Intersection, DIFF-tvalue-Union, % 45.50/7.08 DIFF-tvalue-selectFromWhere, EQ-Difference, EQ-Intersection, EQ-Union, EQ-acons, % 45.50/7.08 EQ-and, EQ-bindContext, EQ-bindStore, EQ-constant, EQ-enumFType, EQ-enumName, % 45.50/7.08 EQ-enumVal, EQ-eq, EQ-gt, EQ-list, EQ-lookup, EQ-lt, EQ-not, EQ-rcons, % 45.50/7.08 EQ-selectFromWhere, EQ-someFType, EQ-someQuery, EQ-someRawTable, EQ-someTType, % 45.50/7.08 EQ-someTable, EQ-someVal, EQ-tcons, EQ-ttcons, EQ-tvalue, TDifference, % 45.50/7.08 TDifference_inv1, TDifference_inv2, TIntersection, TIntersection_inv1, % 45.50/7.08 TIntersection_inv2, TSelectFromWhere, TSelectFromWhere_inv, TTTContextDuplicate, % 45.50/7.08 TTTContextSwap, TUnion, TUnion_inv1, TUnion_inv2, Ttvalue, Ttvalue_inv, % 45.50/7.08 append-0, append-1, append-INV, attachColToFrontRaw-0, attachColToFrontRaw-1, % 45.50/7.08 attachColToFrontRaw-2, attachColToFrontRaw-INV, dom-AttrL, dom-Exp, % 45.50/7.08 dom-OptFType, dom-OptQuery, dom-OptRawTable, dom-OptTType, dom-OptTable, % 45.50/7.08 dom-OptVal, dom-Pred, dom-Query, dom-RawTable, dom-Row, dom-Select, dom-TStore, % 45.50/7.08 dom-TTContext, dom-TType, dom-Table, dropFirstColRaw-0, dropFirstColRaw-1, % 45.50/7.09 dropFirstColRaw-2, dropFirstColRaw-INV, evalExpRow-0, evalExpRow-1, % 45.50/7.09 evalExpRow-2, evalExpRow-3, evalExpRow-INV, filterRows-0, filterRows-1, % 45.50/7.09 filterRows-2, filterRows-INV, filterSingleRow-0, filterSingleRow-1, % 45.50/7.09 filterSingleRow-2, filterSingleRow-3, filterSingleRow-4, filterSingleRow-5, % 45.50/7.09 filterSingleRow-false-INV, filterSingleRow-true-INV, findCol-0, findCol-1, % 45.50/7.09 findCol-2, findCol-INV, findColType-0, findColType-1, findColType-2, % 45.50/7.09 findColType-INV, getAttrL-0, getAttrL-INV, getFType-0, getQuery-0, getRaw-0, % 45.50/7.09 getRaw-INV, getRawTable-0, getTType-0, getTable-0, getVal-0, isSomeFType-0, % 45.50/7.09 isSomeFType-1, isSomeFType-false-INV, isSomeFType-true-INV, isSomeQuery-0, % 45.50/7.09 isSomeQuery-1, isSomeQuery-false-INV, isSomeQuery-true-INV, isSomeRawTable-0, % 45.50/7.09 isSomeRawTable-1, isSomeRawTable-false-INV, isSomeRawTable-true-INV, % 45.50/7.09 isSomeTType-0, isSomeTType-1, isSomeTType-false-INV, isSomeTType-true-INV, % 45.50/7.09 isSomeTable-0, isSomeTable-1, isSomeTable-false-INV, isSomeTable-true-INV, % 45.50/7.09 isSomeVal-0, isSomeVal-1, isSomeVal-false-INV, isSomeVal-true-INV, isValue-0, % 45.50/7.09 isValue-1, isValue-2, isValue-3, isValue-4, isValue-false-INV, isValue-true-INV, % 45.50/7.09 lookupContext-0, lookupContext-1, lookupContext-2, lookupContext-INV, % 45.50/7.09 lookupStore-0, lookupStore-1, lookupStore-2, lookupStore-INV, matchingAttrL-0, % 45.50/7.09 matchingAttrL-1, matchingAttrL-2, matchingAttrL-false-INV, % 45.50/7.09 matchingAttrL-true-INV, projectCols-0, projectCols-1, projectCols-2, % 45.50/7.09 projectCols-INV, projectEmptyCol-0, projectEmptyCol-1, projectEmptyCol-INV, % 45.50/7.09 projectFirstRaw-0, projectFirstRaw-1, projectFirstRaw-2, projectFirstRaw-INV, % 45.50/7.09 projectTable-0, projectTable-1, projectTable-2, projectTable-INV, projectType-0, % 45.50/7.09 projectType-1, projectType-INV, projectTypeAttrL-0, projectTypeAttrL-1, % 45.50/7.09 projectTypeAttrL-2, projectTypeAttrL-INV, rawDifference-0, rawDifference-1, % 45.50/7.09 rawDifference-2, rawDifference-3, rawDifference-4, rawDifference-INV, % 45.50/7.09 rawIntersection-0, rawIntersection-1, rawIntersection-2, rawIntersection-3, % 45.50/7.09 rawIntersection-4, rawIntersection-INV, rawUnion-0, rawUnion-1, rawUnion-2, % 45.50/7.09 rawUnion-INV, reduce-0, reduce-1, reduce-10, reduce-11, reduce-12, reduce-13, % 45.50/7.09 reduce-14, reduce-15, reduce-16, reduce-17, reduce-18, reduce-2, reduce-3, % 45.50/7.09 reduce-4, reduce-5, reduce-6, reduce-7, reduce-8, reduce-9, reduce-INV, rowIn-0, % 45.50/7.09 rowIn-1, rowIn-false-INV, rowIn-true-INV, sameLength-0, sameLength-1, % 45.50/7.09 sameLength-2, sameLength-false-INV, sameLength-true-INV, % 45.50/7.09 storeContextConsistent-0, storeContextConsistent-1, storeContextConsistent-2, % 45.50/7.09 storeContextConsistent-false-INV, storeContextConsistent-true-INV, tcheckPred-0, % 45.50/7.09 tcheckPred-1, tcheckPred-2, tcheckPred-3, tcheckPred-4, tcheckPred-5, % 45.50/7.09 tcheckPred-false-INV, tcheckPred-true-INV, typeOfExp-0, typeOfExp-1, % 45.50/7.09 typeOfExp-2, typeOfExp-3, typeOfExp-INV, welltypedRawtable-0, % 45.50/7.09 welltypedRawtable-1, welltypedRawtable-false-INV, welltypedRawtable-true-INV, % 45.50/7.09 welltypedRow-0, welltypedRow-1, welltypedRow-2, welltypedRow-false-INV, % 45.50/7.09 welltypedRow-true-INV % 45.50/7.09 % 45.50/7.09 Those formulas are unsatisfiable: % 45.50/7.09 --------------------------------- % 45.50/7.09 % 45.50/7.09 Begin of proof % 45.50/7.09 | % 45.50/7.09 | ALPHA: (welltypedtable-0) implies: % 45.50/7.09 | (1) ! [v0: vTType] : ! [v1: vAttrL] : ! [v2: vRawTable] : ! [v3: % 45.50/7.09 | vTable] : ( ~ (vwelltypedtable(v0, v3) = 0) | ~ (vtable(v1, v2) = % 45.50/7.09 | v3) | ~ vTType(v0) | ~ vRawTable(v2) | ~ vAttrL(v1) | % 45.50/7.09 | (vwelltypedRawtable(v0, v2) = 0 & vmatchingAttrL(v0, v1) = 0)) % 45.50/7.09 | % 45.50/7.09 | ALPHA: (function-axioms) implies: % 45.50/7.09 | (2) ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: % 45.50/7.09 | vAttrL] : ! [v3: vTType] : (v1 = v0 | ~ (vmatchingAttrL(v3, v2) = % 45.50/7.09 | v1) | ~ (vmatchingAttrL(v3, v2) = v0)) % 45.50/7.09 | (3) ! [v0: MultipleValueBool] : ! [v1: MultipleValueBool] : ! [v2: % 45.50/7.09 | vRawTable] : ! [v3: vTType] : (v1 = v0 | ~ (vwelltypedRawtable(v3, % 45.50/7.09 | v2) = v1) | ~ (vwelltypedRawtable(v3, v2) = v0)) % 45.50/7.09 | (4) ! [v0: vRawTable] : ! [v1: vRawTable] : ! [v2: vPred] : ! [v3: % 45.50/7.09 | vAttrL] : ! [v4: vRawTable] : (v1 = v0 | ~ (vfilterRows(v4, v3, v2) % 45.50/7.09 | = v1) | ~ (vfilterRows(v4, v3, v2) = v0)) % 45.50/7.09 | % 45.50/7.09 | DELTA: instantiating (filterPreservesType) with fresh symbols all_332_0, % 45.50/7.09 | all_332_1, all_332_2, all_332_3, all_332_4 gives: % 45.50/7.09 | (5) ~ (all_332_0 = 0) & vfilterTable(all_332_3, all_332_2) = all_332_1 & % 45.50/7.09 | vwelltypedtable(all_332_4, all_332_1) = all_332_0 & % 45.50/7.09 | vwelltypedtable(all_332_4, all_332_3) = 0 & vTType(all_332_4) & % 45.50/7.09 | vTable(all_332_1) & vTable(all_332_3) & vPred(all_332_2) % 45.50/7.09 | % 45.50/7.09 | ALPHA: (5) implies: % 45.50/7.09 | (6) ~ (all_332_0 = 0) % 45.50/7.09 | (7) vPred(all_332_2) % 45.50/7.09 | (8) vTable(all_332_3) % 45.50/7.09 | (9) vTable(all_332_1) % 45.50/7.10 | (10) vTType(all_332_4) % 45.50/7.10 | (11) vwelltypedtable(all_332_4, all_332_3) = 0 % 45.50/7.10 | (12) vwelltypedtable(all_332_4, all_332_1) = all_332_0 % 45.50/7.10 | (13) vfilterTable(all_332_3, all_332_2) = all_332_1 % 45.50/7.10 | % 45.50/7.10 | GROUND_INST: instantiating (welltypedtable-true-INV) with all_332_4, % 45.50/7.10 | all_332_3, simplifying with (8), (10), (11) gives: % 45.50/7.10 | (14) ? [v0: vAttrL] : ? [v1: vRawTable] : (vwelltypedRawtable(all_332_4, % 45.50/7.10 | v1) = 0 & vmatchingAttrL(all_332_4, v0) = 0 & vtable(v0, v1) = % 45.50/7.10 | all_332_3 & vRawTable(v1) & vAttrL(v0)) % 45.50/7.10 | % 45.50/7.10 | GROUND_INST: instantiating (welltypedtable-false-INV) with all_332_4, % 45.50/7.10 | all_332_1, all_332_0, simplifying with (9), (10), (12) gives: % 45.50/7.10 | (15) all_332_0 = 0 | ? [v0: vAttrL] : ? [v1: vRawTable] : ? [v2: any] : % 45.50/7.10 | ? [v3: any] : (vwelltypedRawtable(all_332_4, v1) = v3 & % 45.50/7.10 | vmatchingAttrL(all_332_4, v0) = v2 & vtable(v0, v1) = all_332_1 & % 45.50/7.10 | vRawTable(v1) & vAttrL(v0) & ( ~ (v3 = 0) | ~ (v2 = 0))) % 45.50/7.10 | % 45.50/7.10 | GROUND_INST: instantiating (filterTable-INV) with all_332_3, all_332_2, % 45.50/7.10 | all_332_1, simplifying with (7), (8), (13) gives: % 45.50/7.10 | (16) ? [v0: vAttrL] : ? [v1: vRawTable] : ? [v2: vRawTable] : % 45.50/7.10 | (vfilterRows(v1, v0, all_332_2) = v2 & vtable(v0, v2) = all_332_1 & % 45.50/7.10 | vtable(v0, v1) = all_332_3 & vTable(all_332_1) & vRawTable(v2) & % 45.50/7.10 | vRawTable(v1) & vAttrL(v0)) % 45.50/7.10 | % 45.50/7.10 | DELTA: instantiating (14) with fresh symbols all_359_0, all_359_1 gives: % 45.50/7.10 | (17) vwelltypedRawtable(all_332_4, all_359_0) = 0 & % 45.50/7.10 | vmatchingAttrL(all_332_4, all_359_1) = 0 & vtable(all_359_1, % 45.50/7.10 | all_359_0) = all_332_3 & vRawTable(all_359_0) & vAttrL(all_359_1) % 45.50/7.10 | % 45.50/7.10 | ALPHA: (17) implies: % 45.50/7.10 | (18) vAttrL(all_359_1) % 45.50/7.10 | (19) vRawTable(all_359_0) % 45.50/7.10 | (20) vtable(all_359_1, all_359_0) = all_332_3 % 45.50/7.10 | % 45.50/7.10 | DELTA: instantiating (16) with fresh symbols all_363_0, all_363_1, all_363_2 % 45.50/7.10 | gives: % 45.50/7.10 | (21) vfilterRows(all_363_1, all_363_2, all_332_2) = all_363_0 & % 45.50/7.10 | vtable(all_363_2, all_363_0) = all_332_1 & vtable(all_363_2, % 45.50/7.10 | all_363_1) = all_332_3 & vTable(all_332_1) & vRawTable(all_363_0) & % 45.50/7.10 | vRawTable(all_363_1) & vAttrL(all_363_2) % 45.50/7.10 | % 45.50/7.10 | ALPHA: (21) implies: % 45.50/7.10 | (22) vAttrL(all_363_2) % 45.50/7.10 | (23) vRawTable(all_363_1) % 45.50/7.10 | (24) vRawTable(all_363_0) % 45.50/7.10 | (25) vtable(all_363_2, all_363_1) = all_332_3 % 45.50/7.10 | (26) vtable(all_363_2, all_363_0) = all_332_1 % 45.50/7.10 | (27) vfilterRows(all_363_1, all_363_2, all_332_2) = all_363_0 % 45.50/7.10 | % 45.50/7.10 | BETA: splitting (15) gives: % 45.50/7.10 | % 45.50/7.10 | Case 1: % 45.50/7.10 | | % 45.50/7.10 | | (28) all_332_0 = 0 % 45.50/7.10 | | % 45.50/7.10 | | REDUCE: (6), (28) imply: % 45.50/7.10 | | (29) $false % 45.50/7.10 | | % 45.50/7.10 | | CLOSE: (29) is inconsistent. % 45.50/7.10 | | % 45.50/7.10 | Case 2: % 45.50/7.10 | | % 45.50/7.11 | | (30) ? [v0: vAttrL] : ? [v1: vRawTable] : ? [v2: any] : ? [v3: any] : % 45.50/7.11 | | (vwelltypedRawtable(all_332_4, v1) = v3 & vmatchingAttrL(all_332_4, % 45.50/7.11 | | v0) = v2 & vtable(v0, v1) = all_332_1 & vRawTable(v1) & % 45.50/7.11 | | vAttrL(v0) & ( ~ (v3 = 0) | ~ (v2 = 0))) % 45.50/7.11 | | % 45.50/7.11 | | DELTA: instantiating (30) with fresh symbols all_369_0, all_369_1, % 45.50/7.11 | | all_369_2, all_369_3 gives: % 45.50/7.11 | | (31) vwelltypedRawtable(all_332_4, all_369_2) = all_369_0 & % 45.50/7.11 | | vmatchingAttrL(all_332_4, all_369_3) = all_369_1 & vtable(all_369_3, % 45.50/7.11 | | all_369_2) = all_332_1 & vRawTable(all_369_2) & vAttrL(all_369_3) % 45.50/7.11 | | & ( ~ (all_369_0 = 0) | ~ (all_369_1 = 0)) % 45.50/7.11 | | % 45.50/7.11 | | ALPHA: (31) implies: % 45.50/7.11 | | (32) vAttrL(all_369_3) % 45.50/7.11 | | (33) vRawTable(all_369_2) % 45.50/7.11 | | (34) vtable(all_369_3, all_369_2) = all_332_1 % 45.50/7.11 | | (35) vmatchingAttrL(all_332_4, all_369_3) = all_369_1 % 45.50/7.11 | | (36) vwelltypedRawtable(all_332_4, all_369_2) = all_369_0 % 45.50/7.11 | | (37) ~ (all_369_0 = 0) | ~ (all_369_1 = 0) % 45.50/7.11 | | % 45.50/7.11 | | GROUND_INST: instantiating (filterTable-0) with all_359_1, all_359_0, % 45.50/7.11 | | all_332_2, all_332_3, all_332_1, simplifying with (7), (13), % 45.50/7.11 | | (18), (19), (20) gives: % 45.50/7.11 | | (38) ? [v0: vRawTable] : (vfilterRows(all_359_0, all_359_1, all_332_2) = % 45.50/7.11 | | v0 & vtable(all_359_1, v0) = all_332_1 & vTable(all_332_1) & % 45.50/7.11 | | vRawTable(v0)) % 45.50/7.11 | | % 45.50/7.11 | | GROUND_INST: instantiating (1) with all_332_4, all_363_2, all_363_1, % 45.50/7.11 | | all_332_3, simplifying with (10), (11), (22), (23), (25) gives: % 45.50/7.11 | | (39) vwelltypedRawtable(all_332_4, all_363_1) = 0 & % 45.50/7.11 | | vmatchingAttrL(all_332_4, all_363_2) = 0 % 45.50/7.11 | | % 45.50/7.11 | | ALPHA: (39) implies: % 45.50/7.11 | | (40) vmatchingAttrL(all_332_4, all_363_2) = 0 % 45.50/7.11 | | (41) vwelltypedRawtable(all_332_4, all_363_1) = 0 % 45.50/7.11 | | % 45.50/7.11 | | GROUND_INST: instantiating (EQ-table) with all_359_1, all_359_0, all_363_2, % 45.50/7.11 | | all_363_1, all_332_3, simplifying with (18), (19), (20), (22), % 45.50/7.11 | | (23), (25) gives: % 45.50/7.11 | | (42) all_363_1 = all_359_0 & all_363_2 = all_359_1 % 45.50/7.11 | | % 45.50/7.11 | | ALPHA: (42) implies: % 45.50/7.11 | | (43) all_363_2 = all_359_1 % 45.50/7.11 | | (44) all_363_1 = all_359_0 % 45.50/7.11 | | % 45.50/7.11 | | GROUND_INST: instantiating (EQ-table) with all_363_2, all_363_0, all_369_3, % 45.50/7.11 | | all_369_2, all_332_1, simplifying with (22), (24), (26), (32), % 45.50/7.11 | | (33), (34) gives: % 45.50/7.11 | | (45) all_369_2 = all_363_0 & all_369_3 = all_363_2 % 45.50/7.11 | | % 45.50/7.11 | | ALPHA: (45) implies: % 45.50/7.11 | | (46) all_369_3 = all_363_2 % 45.50/7.11 | | (47) all_369_2 = all_363_0 % 45.50/7.11 | | % 45.50/7.11 | | COMBINE_EQS: (43), (46) imply: % 45.50/7.11 | | (48) all_369_3 = all_359_1 % 45.50/7.11 | | % 45.50/7.11 | | DELTA: instantiating (38) with fresh symbol all_387_0 gives: % 45.97/7.11 | | (49) vfilterRows(all_359_0, all_359_1, all_332_2) = all_387_0 & % 45.97/7.11 | | vtable(all_359_1, all_387_0) = all_332_1 & vTable(all_332_1) & % 45.97/7.11 | | vRawTable(all_387_0) % 45.97/7.11 | | % 45.97/7.11 | | ALPHA: (49) implies: % 45.97/7.11 | | (50) vfilterRows(all_359_0, all_359_1, all_332_2) = all_387_0 % 45.97/7.11 | | % 45.97/7.11 | | REDUCE: (27), (43), (44) imply: % 45.97/7.11 | | (51) vfilterRows(all_359_0, all_359_1, all_332_2) = all_363_0 % 45.97/7.11 | | % 45.97/7.11 | | REDUCE: (36), (47) imply: % 45.97/7.11 | | (52) vwelltypedRawtable(all_332_4, all_363_0) = all_369_0 % 45.97/7.11 | | % 45.97/7.11 | | REDUCE: (41), (44) imply: % 45.97/7.11 | | (53) vwelltypedRawtable(all_332_4, all_359_0) = 0 % 45.97/7.11 | | % 45.97/7.11 | | REDUCE: (35), (48) imply: % 45.97/7.12 | | (54) vmatchingAttrL(all_332_4, all_359_1) = all_369_1 % 45.97/7.12 | | % 45.97/7.12 | | REDUCE: (40), (43) imply: % 45.97/7.12 | | (55) vmatchingAttrL(all_332_4, all_359_1) = 0 % 45.97/7.12 | | % 45.97/7.12 | | GROUND_INST: instantiating (2) with 0, all_369_1, all_359_1, all_332_4, % 45.97/7.12 | | simplifying with (54), (55) gives: % 45.97/7.12 | | (56) all_369_1 = 0 % 45.97/7.12 | | % 45.97/7.12 | | GROUND_INST: instantiating (4) with all_363_0, all_387_0, all_332_2, % 45.97/7.12 | | all_359_1, all_359_0, simplifying with (50), (51) gives: % 45.97/7.12 | | (57) all_387_0 = all_363_0 % 45.97/7.12 | | % 45.97/7.12 | | BETA: splitting (37) gives: % 45.97/7.12 | | % 45.97/7.12 | | Case 1: % 45.97/7.12 | | | % 45.97/7.12 | | | (58) ~ (all_369_0 = 0) % 45.97/7.12 | | | % 45.97/7.12 | | | GROUND_INST: instantiating (filterRowsPreservesTable) with all_332_4, % 45.97/7.12 | | | all_359_0, all_359_1, all_332_2, all_363_0, all_369_0, % 45.97/7.12 | | | simplifying with (7), (10), (18), (19), (51), (52) gives: % 45.97/7.12 | | | (59) all_369_0 = 0 | ? [v0: int] : ( ~ (v0 = 0) & % 45.97/7.12 | | | vwelltypedRawtable(all_332_4, all_359_0) = v0) % 45.97/7.12 | | | % 45.97/7.12 | | | BETA: splitting (59) gives: % 45.97/7.12 | | | % 45.97/7.12 | | | Case 1: % 45.97/7.12 | | | | % 45.97/7.12 | | | | (60) all_369_0 = 0 % 45.97/7.12 | | | | % 45.97/7.12 | | | | REDUCE: (58), (60) imply: % 45.97/7.12 | | | | (61) $false % 45.97/7.12 | | | | % 45.97/7.12 | | | | CLOSE: (61) is inconsistent. % 45.97/7.12 | | | | % 45.97/7.12 | | | Case 2: % 45.97/7.12 | | | | % 45.97/7.12 | | | | (62) ? [v0: int] : ( ~ (v0 = 0) & vwelltypedRawtable(all_332_4, % 45.97/7.12 | | | | all_359_0) = v0) % 45.97/7.12 | | | | % 45.97/7.12 | | | | DELTA: instantiating (62) with fresh symbol all_423_0 gives: % 45.97/7.12 | | | | (63) ~ (all_423_0 = 0) & vwelltypedRawtable(all_332_4, all_359_0) = % 45.97/7.12 | | | | all_423_0 % 45.97/7.12 | | | | % 45.97/7.12 | | | | ALPHA: (63) implies: % 45.97/7.12 | | | | (64) ~ (all_423_0 = 0) % 45.97/7.12 | | | | (65) vwelltypedRawtable(all_332_4, all_359_0) = all_423_0 % 45.97/7.12 | | | | % 45.97/7.12 | | | | GROUND_INST: instantiating (3) with 0, all_423_0, all_359_0, all_332_4, % 45.97/7.12 | | | | simplifying with (53), (65) gives: % 45.97/7.12 | | | | (66) all_423_0 = 0 % 45.97/7.12 | | | | % 45.97/7.12 | | | | REDUCE: (64), (66) imply: % 45.97/7.12 | | | | (67) $false % 45.97/7.12 | | | | % 45.97/7.12 | | | | CLOSE: (67) is inconsistent. % 45.97/7.12 | | | | % 45.97/7.12 | | | End of split % 45.97/7.12 | | | % 45.97/7.12 | | Case 2: % 45.97/7.12 | | | % 45.97/7.12 | | | (68) ~ (all_369_1 = 0) % 45.97/7.12 | | | % 45.97/7.12 | | | REDUCE: (56), (68) imply: % 45.97/7.12 | | | (69) $false % 45.97/7.12 | | | % 45.97/7.12 | | | CLOSE: (69) is inconsistent. % 45.97/7.12 | | | % 45.97/7.12 | | End of split % 45.97/7.12 | | % 45.97/7.12 | End of split % 45.97/7.12 | % 45.97/7.12 End of proof % 45.97/7.12 % SZS output end Proof for theBenchmark % 45.97/7.12 % 45.97/7.12 6664ms %------------------------------------------------------------------------------