↑ Up

Z3---4.15.1.THM-Prf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% 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
%------------------------------------------------------------------------------