%------------------------------------------------------------------------------
% File : Z3---4.15.1
% Problem : COM271_1 : TPTP v9.3.0. Released v9.3.0.
% Transfm : none
% Format : tptp
% Command : run_E %s %d THM
% Computer : n001.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:23:05 PM UTC 2026
% Result : Theorem 0.30s 0.50s
% Output : Proof 0.30s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12 % Problem : COM271_1 : TPTP v9.3.0. Released v9.3.0.
% 0.00/0.12 % Command : run_E %s %d THM
% 0.16/0.33 % Computer : n001.cluster.edu
% 0.16/0.33 % Model : x86_64 x86_64
% 0.16/0.33 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.16/0.33 % Memory : 8042.1875MB
% 0.16/0.33 % OS : Linux 3.10.0-693.el7.x86_64
% 0.16/0.33 % CPULimit : 300
% 0.16/0.33 % WCLimit : 300
% 0.16/0.33 % DateTime : Mon May 4 20:05:05 EDT 2026
% 0.16/0.33 % CPUTime :
% 0.30/0.50 % SZS status Theorem
% 0.30/0.50 % SZS output start Proof
% 0.30/0.50 tff(visSomeExp_type, type, (
% 0.30/0.50 visSomeExp: vOptExp > $o)).
% 0.30/0.50 tff(vreduceExp_type, type, (
% 0.30/0.50 vreduceExp: ( vExp * vAnsMap ) > vOptExp)).
% 0.30/0.50 tff(tptp_fun_Vam_230_type, type, (
% 0.30/0.50 tptp_fun_Vam_230: vAnsMap)).
% 0.30/0.50 tff(ve2_type, type, (
% 0.30/0.50 ve2: vExp)).
% 0.30/0.50 tff(vsomeAType_type, type, (
% 0.30/0.50 vsomeAType: vAType > vOptAType)).
% 0.30/0.50 tff(tptp_fun_Vat_228_type, type, (
% 0.30/0.50 tptp_fun_Vat_228: vAType)).
% 0.30/0.50 tff(vecheck_type, type, (
% 0.30/0.50 vecheck: ( vATMap * vExp ) > vOptAType)).
% 0.30/0.50 tff(tptp_fun_Ver_227_type, type, (
% 0.30/0.50 tptp_fun_Ver_227: vExp)).
% 0.30/0.50 tff(vtypeAM_type, type, (
% 0.30/0.50 vtypeAM: vAnsMap > vATMap)).
% 0.30/0.50 tff(vsomeExp_type, type, (
% 0.30/0.50 vsomeExp: vExp > vOptExp)).
% 0.30/0.50 tff(vbinop_type, type, (
% 0.30/0.50 vbinop: ( vExp * vBinOpT * vExp ) > vExp)).
% 0.30/0.50 tff(tptp_fun_Vbot_229_type, type, (
% 0.30/0.50 tptp_fun_Vbot_229: vBinOpT)).
% 0.30/0.50 tff(ve1_type, type, (
% 0.30/0.50 ve1: vExp)).
% 0.30/0.50 tff(vexpIsValue_type, type, (
% 0.30/0.50 vexpIsValue: vExp > $o)).
% 0.30/0.50 tff(1,plain,
% 0.30/0.50 ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))) <=> (~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))))),
% 0.30/0.50 inference(rewrite,[status(thm)],[])).
% 0.30/0.50 tff(2,plain,
% 0.30/0.50 ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (((((~vexpIsValue(ve2)) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))) <=> (~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))))),
% 0.30/0.50 inference(rewrite,[status(thm)],[])).
% 0.30/0.50 tff(3,axiom,(~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (((((~vexpIsValue(ve2)) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))), file('/export/starexec/sandbox/benchmark/theBenchmark.p',''reduceExpPreservation-binop-expIsValue-True-expIsValue-False'')).
% 0.30/0.50 tff(4,plain,
% 0.30/0.50 (~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.50 inference(modus_ponens,[status(thm)],[3, 2])).
% 0.30/0.50 tff(5,plain,
% 0.30/0.50 (~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.50 inference(modus_ponens,[status(thm)],[4, 1])).
% 0.30/0.50 tff(6,plain,
% 0.30/0.50 (~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.50 inference(modus_ponens,[status(thm)],[5, 1])).
% 0.30/0.50 tff(7,plain,
% 0.30/0.50 (~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.50 inference(modus_ponens,[status(thm)],[6, 1])).
% 0.30/0.50 tff(8,plain,(
% 0.30/0.50 ~((~((~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228)) & (vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227)))) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)))),
% 0.30/0.50 inference(skolemize,[status(sab)],[7])).
% 0.30/0.50 tff(9,plain,
% 0.30/0.50 (~(vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228))),
% 0.30/0.50 inference(or_elim,[status(thm)],[8])).
% 0.30/0.50 tff(10,plain,
% 0.30/0.50 ((~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228)) & (vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))),
% 0.30/0.50 inference(or_elim,[status(thm)],[8])).
% 0.30/0.50 tff(11,plain,
% 0.30/0.50 (vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227)),
% 0.30/0.50 inference(and_elim,[status(thm)],[10])).
% 0.30/0.50 tff(12,plain,
% 0.30/0.50 (vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228)),
% 0.30/0.50 inference(and_elim,[status(thm)],[10])).
% 0.30/0.50 tff(13,plain,
% 0.30/0.50 (vexpIsValue(ve1)),
% 0.30/0.50 inference(and_elim,[status(thm)],[10])).
% 0.30/0.50 tff(14,plain,
% 0.30/0.50 (~vexpIsValue(ve2)),
% 0.30/0.50 inference(and_elim,[status(thm)],[10])).
% 0.30/0.50 tff(15,plain,
% 0.30/0.50 (^[Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : refl((vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) <=> (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))))),
% 0.30/0.50 inference(bind,[status(th)],[])).
% 0.30/0.50 tff(16,plain,
% 0.30/0.50 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) <=> ![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))),
% 0.30/0.50 inference(quant_intro,[status(thm)],[15])).
% 0.30/0.50 tff(17,plain,
% 0.30/0.50 (^[Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : trans(monotonicity(trans(monotonicity(rewrite(((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) <=> (~(vexpIsValue(ve2) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))))), ((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) <=> (~(~(vexpIsValue(ve2) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))))))), rewrite((~(~(vexpIsValue(ve2) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))))) <=> (vexpIsValue(ve2) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))), ((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) <=> (vexpIsValue(ve2) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))))), (((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ((vexpIsValue(ve2) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))))), rewrite(((vexpIsValue(ve2) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))), (((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))))),
% 0.30/0.51 inference(bind,[status(th)],[])).
% 0.30/0.51 tff(18,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))),
% 0.30/0.51 inference(quant_intro,[status(thm)],[17])).
% 0.30/0.51 tff(19,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.51 inference(rewrite,[status(thm)],[])).
% 0.30/0.51 tff(20,plain,
% 0.30/0.51 (^[Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : trans(monotonicity(trans(monotonicity(trans(monotonicity(rewrite((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) <=> ((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1))), (((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) <=> (((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))))), rewrite((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) <=> ((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)))), (((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) <=> ((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))))), ((((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) <=> (((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))), rewrite((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) <=> ((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))), ((((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) <=> ((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))), (((((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> (((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))))), rewrite((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))), (((((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))))),
% 0.30/0.51 inference(bind,[status(th)],[])).
% 0.30/0.51 tff(21,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.51 inference(quant_intro,[status(thm)],[20])).
% 0.30/0.51 tff(22,axiom,(![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((((((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))), file('/export/starexec/sandbox/benchmark/theBenchmark.p',''reduceExpPreservation-binop-expIsValue-True-expIsValue-False-isSomeExp-False'')).
% 0.30/0.51 tff(23,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.51 inference(modus_ponens,[status(thm)],[22, 21])).
% 0.30/0.51 tff(24,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.51 inference(modus_ponens,[status(thm)],[23, 19])).
% 0.30/0.51 tff(25,plain,(
% 0.30/0.51 ![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~((~visSomeExp(vreduceExp(ve2, Vam))) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.51 inference(skolemize,[status(sab)],[24])).
% 0.30/0.51 tff(26,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))),
% 0.30/0.51 inference(modus_ponens,[status(thm)],[25, 18])).
% 0.30/0.51 tff(27,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))),
% 0.30/0.51 inference(modus_ponens,[status(thm)],[26, 16])).
% 0.30/0.51 tff(28,plain,
% 0.30/0.51 (((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | visSomeExp(vreduceExp(ve2, Vam!230)) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))))) <=> ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | visSomeExp(vreduceExp(ve2, Vam!230)) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))))),
% 0.30/0.51 inference(rewrite,[status(thm)],[])).
% 0.30/0.51 tff(29,plain,
% 0.30/0.51 ((vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | visSomeExp(vreduceExp(ve2, Vam!230)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227)))) <=> (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | visSomeExp(vreduceExp(ve2, Vam!230)) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))))),
% 0.30/0.51 inference(rewrite,[status(thm)],[])).
% 0.30/0.51 tff(30,plain,
% 0.30/0.51 (((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | visSomeExp(vreduceExp(ve2, Vam!230)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))))) <=> ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | visSomeExp(vreduceExp(ve2, Vam!230)) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228)))))),
% 0.30/0.51 inference(monotonicity,[status(thm)],[29])).
% 0.30/0.51 tff(31,plain,
% 0.30/0.51 (((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | visSomeExp(vreduceExp(ve2, Vam!230)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))))) <=> ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | visSomeExp(vreduceExp(ve2, Vam!230)) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))))),
% 0.30/0.51 inference(transitivity,[status(thm)],[30, 28])).
% 0.30/0.51 tff(32,plain,
% 0.30/0.51 ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | visSomeExp(vreduceExp(ve2, Vam!230)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))))),
% 0.30/0.51 inference(quant_inst,[status(thm)],[])).
% 0.30/0.51 tff(33,plain,
% 0.30/0.51 ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | visSomeExp(vreduceExp(ve2, Vam)) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | visSomeExp(vreduceExp(ve2, Vam!230)) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228)))),
% 0.30/0.51 inference(modus_ponens,[status(thm)],[32, 31])).
% 0.30/0.51 tff(34,plain,
% 0.30/0.51 (visSomeExp(vreduceExp(ve2, Vam!230))),
% 0.30/0.51 inference(unit_resolution,[status(thm)],[33, 27, 14, 13, 12, 11, 9])).
% 0.30/0.51 tff(35,plain,
% 0.30/0.51 (^[Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : refl((vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) <=> (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))))),
% 0.30/0.51 inference(bind,[status(th)],[])).
% 0.30/0.51 tff(36,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) <=> ![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))),
% 0.30/0.51 inference(quant_intro,[status(thm)],[35])).
% 0.30/0.51 tff(37,plain,
% 0.30/0.51 (^[Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : trans(monotonicity(trans(monotonicity(rewrite((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) <=> (~(vexpIsValue(ve2) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))))), ((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) <=> (~(~(vexpIsValue(ve2) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))))))), rewrite((~(~(vexpIsValue(ve2) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))))) <=> (vexpIsValue(ve2) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))), ((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) <=> (vexpIsValue(ve2) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))))), (((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ((vexpIsValue(ve2) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))))), rewrite(((vexpIsValue(ve2) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))), (((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))))),
% 0.30/0.51 inference(bind,[status(th)],[])).
% 0.30/0.51 tff(38,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))),
% 0.30/0.51 inference(quant_intro,[status(thm)],[37])).
% 0.30/0.51 tff(39,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.51 inference(rewrite,[status(thm)],[])).
% 0.30/0.51 tff(40,plain,
% 0.30/0.51 (^[Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : trans(monotonicity(trans(monotonicity(trans(monotonicity(rewrite(((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) <=> (visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1))), ((((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) <=> ((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))))), rewrite(((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) <=> (visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)))), ((((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) <=> (visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))))), (((((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) <=> ((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))), rewrite(((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) <=> (visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))), (((((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) <=> (visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))), ((((((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))))), rewrite(((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))), ((((((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))))),
% 0.30/0.51 inference(bind,[status(th)],[])).
% 0.30/0.51 tff(41,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (((((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat))) <=> ![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.51 inference(quant_intro,[status(thm)],[40])).
% 0.30/0.51 tff(42,axiom,(![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (((((visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2))) & vexpIsValue(ve1)) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))) => (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))), file('/export/starexec/sandbox/benchmark/theBenchmark.p',''reduceExpPreservation-binop-expIsValue-True-expIsValue-False-isSomeExp-True'')).
% 0.30/0.51 tff(43,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.51 inference(modus_ponens,[status(thm)],[42, 41])).
% 0.30/0.51 tff(44,plain,
% 0.30/0.51 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.52 inference(modus_ponens,[status(thm)],[43, 39])).
% 0.30/0.52 tff(45,plain,(
% 0.30/0.52 ![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : ((~(visSomeExp(vreduceExp(ve2, Vam)) & (~vexpIsValue(ve2)) & vexpIsValue(ve1) & (vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat)) & (vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver)))) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)))),
% 0.30/0.52 inference(skolemize,[status(sab)],[44])).
% 0.30/0.52 tff(46,plain,
% 0.30/0.52 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))),
% 0.30/0.52 inference(modus_ponens,[status(thm)],[45, 38])).
% 0.30/0.52 tff(47,plain,
% 0.30/0.52 (![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))),
% 0.30/0.52 inference(modus_ponens,[status(thm)],[46, 36])).
% 0.30/0.52 tff(48,plain,
% 0.30/0.52 (((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | (~visSomeExp(vreduceExp(ve2, Vam!230))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))))) <=> ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | (~visSomeExp(vreduceExp(ve2, Vam!230))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))))),
% 0.30/0.52 inference(rewrite,[status(thm)],[])).
% 0.30/0.52 tff(49,plain,
% 0.30/0.52 ((vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~visSomeExp(vreduceExp(ve2, Vam!230))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227)))) <=> (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | (~visSomeExp(vreduceExp(ve2, Vam!230))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))))),
% 0.30/0.52 inference(rewrite,[status(thm)],[])).
% 0.30/0.52 tff(50,plain,
% 0.30/0.52 (((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~visSomeExp(vreduceExp(ve2, Vam!230))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))))) <=> ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | (~visSomeExp(vreduceExp(ve2, Vam!230))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228)))))),
% 0.30/0.54 inference(monotonicity,[status(thm)],[49])).
% 0.30/0.54 tff(51,plain,
% 0.30/0.54 (((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~visSomeExp(vreduceExp(ve2, Vam!230))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))))) <=> ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | (~visSomeExp(vreduceExp(ve2, Vam!230))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))))),
% 0.30/0.54 inference(transitivity,[status(thm)],[50, 48])).
% 0.30/0.54 tff(52,plain,
% 0.30/0.54 ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~visSomeExp(vreduceExp(ve2, Vam!230))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))))),
% 0.30/0.54 inference(quant_inst,[status(thm)],[])).
% 0.30/0.54 tff(53,plain,
% 0.30/0.54 ((~![Vam: vAnsMap, Vbot: vBinOpT, Vat: vAType, Ver: vExp] : (vexpIsValue(ve2) | (vecheck(vtypeAM(Vam), Ver) = vsomeAType(Vat)) | (~visSomeExp(vreduceExp(ve2, Vam))) | (~vexpIsValue(ve1)) | (~(vecheck(vtypeAM(Vam), vbinop(ve1, Vbot, ve2)) = vsomeAType(Vat))) | (~(vreduceExp(vbinop(ve1, Vbot, ve2), Vam) = vsomeExp(Ver))))) | vexpIsValue(ve2) | (vecheck(vtypeAM(Vam!230), Ver!227) = vsomeAType(Vat!228)) | (~vexpIsValue(ve1)) | (~visSomeExp(vreduceExp(ve2, Vam!230))) | (~(vreduceExp(vbinop(ve1, Vbot!229, ve2), Vam!230) = vsomeExp(Ver!227))) | (~(vecheck(vtypeAM(Vam!230), vbinop(ve1, Vbot!229, ve2)) = vsomeAType(Vat!228)))),
% 0.30/0.54 inference(modus_ponens,[status(thm)],[52, 51])).
% 0.30/0.54 tff(54,plain,
% 0.30/0.54 ($false),
% 0.30/0.54 inference(unit_resolution,[status(thm)],[53, 47, 14, 13, 12, 11, 9, 34])).
% 0.30/0.54 % SZS output end Proof
% 0.30/0.54 % E exiting
%------------------------------------------------------------------------------