0.00/0.09 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.00/0.10 % Command : do_cvc5 %s %d 0.09/0.30 % Computer : n010.cluster.edu 0.09/0.30 % Model : x86_64 x86_64 0.09/0.30 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.09/0.30 % Memory : 8042.1875MB 0.09/0.30 % OS : Linux 3.10.0-693.el7.x86_64 0.09/0.30 % CPULimit : 960 0.09/0.30 % WCLimit : 120 0.09/0.30 % DateTime : Tue Aug 9 04:48:50 EDT 2022 0.09/0.30 % CPUTime : 0.14/0.40 %----Proving TF0_NAR, FOF, or CNF 0.14/0.50 ------- cvc5-fof casc J11 : /export/starexec/sandbox2/benchmark/theBenchmark.p at /export/starexec/sandbox2/benchmark/theBenchmark.p... 0.14/0.50 --- Run --decision=internal --simplification=none --no-inst-no-entail --no-cbqi --full-saturate-quant at 10... 0.14/0.50 % SZS status Theorem for theBenchmark 0.14/0.50 % SZS output start Proof for theBenchmark 0.14/0.50 (let ((_let_1 (not (forall ((Vx $$unsorted) (VS $$unsorted) (VC $$unsorted) (Vy $$unsorted) (VT $$unsorted)) (let ((_let_1 (vvar Vy))) (=> (and (vtcheck VC _let_1 VT) (= (vlookup Vx VC) vnoType)) (vtcheck (vbind Vx VS VC) _let_1 VT))))))) (let ((_let_2 (forall ((VTyp0 $$unsorted)) (not (= vnoType (vsomeType VTyp0)))))) (let ((_let_3 (= vnoExp vnoExp))) (let ((_let_4 (forall ((Ve $$unsorted) (VT $$unsorted) (VC $$unsorted)) (=> (vtcheck VC Ve VT) (or (exists ((Vx $$unsorted)) (and (= (vsomeType VT) (vlookup Vx VC)) (= (vvar Vx) Ve))) (exists ((Ve1 $$unsorted) (Ve2 $$unsorted) (VS $$unsorted)) (and (vtcheck VC Ve1 (varrow VS VT)) (vtcheck VC Ve2 VS) (= (vapp Ve1 Ve2) Ve))) (exists ((Vx $$unsorted) (Ve2 $$unsorted) (VT1 $$unsorted) (VT2 $$unsorted)) (and (= Ve (vabs Vx VT1 Ve2)) (vtcheck (vbind Vx VT1 VC) Ve2 VT2) (= (varrow VT1 VT2) VT)))))))) (let ((_let_5 (forall ((VVar0 $$unsorted) (VExp0 $$unsorted) (VExp1 $$unsorted)) (not (= (vvar VVar0) (vapp VExp0 VExp1)))))) (let ((_let_6 (forall ((VVar0 $$unsorted) (VVar1 $$unsorted)) (let ((_let_1 (= VVar1 VVar0))) (let ((_let_2 (= (vvar VVar0) (vvar VVar1)))) (and (=> _let_1 _let_2) (=> _let_2 _let_1))))))) (let ((_let_7 (forall ((VTy $$unsorted) (Vy $$unsorted) (VVar0 $$unsorted) (VCtx0 $$unsorted) (RESULT $$unsorted) (Vx $$unsorted) (VC $$unsorted)) (=> (and (= (vbind Vy VTy VC) VCtx0) (= Vx VVar0)) (=> (not (= Vx Vy)) (=> (= RESULT (vlookup VVar0 VCtx0)) (= RESULT (vlookup Vx VC)))))))) (let ((_let_8 (forall ((VC $$unsorted) (Vx $$unsorted) (VT $$unsorted)) (=> (= (vsomeType VT) (vlookup Vx VC)) (vtcheck VC (vvar Vx) VT))))) (let ((_let_9 (forall ((VVar0 $$unsorted) (VVar1 $$unsorted) (VTyp0 $$unsorted) (VExp0 $$unsorted)) (not (= (vvar VVar0) (vabs VVar1 VTyp0 VExp0)))))) (let ((_let_10 (= vempty vempty))) (let ((_let_11 (= vnoType vnoType))) (let ((_let_12 (= vnoType (vlookup skv_2 skv_4)))) (let ((_let_13 (= skv_5 skv_19))) (let ((_let_14 (vlookup skv_19 skv_4))) (let ((_let_15 (= vnoType _let_14))) (let ((_let_16 (= skv_2 skv_5))) (let ((_let_17 (vvar skv_5))) (let ((_let_18 (vbind skv_2 skv_3 skv_4))) (let ((_let_19 (vtcheck _let_18 _let_17 skv_6))) (let ((_let_20 (not _let_12))) (let ((_let_21 (vtcheck skv_4 _let_17 skv_6))) (let ((_let_22 (not _let_21))) (let ((_let_23 (or _let_22 _let_20 _let_19))) (let ((_let_24 (forall ((Vx $$unsorted) (VS $$unsorted) (VC $$unsorted) (Vy $$unsorted) (VT $$unsorted)) (let ((_let_1 (vvar Vy))) (or (not (vtcheck VC _let_1 VT)) (not (= vnoType (vlookup Vx VC))) (vtcheck (vbind Vx VS VC) _let_1 VT)))))) (let ((_let_25 (not _let_23))) (let ((_let_26 (EQ_RESOLVE (ASSUME :args (_let_1)) (MACRO_SR_EQ_INTRO :args (_let_1 SB_DEFAULT SBA_FIXPOINT))))) (let ((_let_27 (OR))) (let ((_let_28 (not _let_24))) (let ((_let_29 (MACRO_RESOLUTION_TRUST (EQ_RESOLVE (IMPLIES_ELIM (SCOPE (SKOLEMIZE _let_26) :args (_let_28))) (CONG (MACRO_SR_PRED_INTRO :args ((= (not _let_28) _let_24))) (REFL :args (_let_25)) :args _let_27)) _let_26 :args (_let_25 true _let_24)))) (let ((_let_30 (REFL :args (_let_23)))) (let ((_let_31 (vvar skv_19))) (let ((_let_32 (= _let_17 _let_31))) (let ((_let_33 (not _let_32))) (let ((_let_34 (or _let_33 _let_13))) (let ((_let_35 (forall ((BOUND_VARIABLE_2952 $$unsorted) (BOUND_VARIABLE_2954 $$unsorted)) (or (not (= (vvar BOUND_VARIABLE_2954) (vvar BOUND_VARIABLE_2952))) (= BOUND_VARIABLE_2952 BOUND_VARIABLE_2954))))) (let ((_let_36 (EQ_RESOLVE (ASSUME :args (_let_6)) (MACRO_SR_EQ_INTRO :args (_let_6 SB_DEFAULT SBA_FIXPOINT))))) (let ((_let_37 (vsomeType skv_6))) (let ((_let_38 (= _let_37 _let_14))) (let ((_let_39 (not _let_38))) (let ((_let_40 (or _let_39 _let_33))) (let ((_let_41 (forall ((Vx $$unsorted)) (or (not (= (vsomeType skv_6) (vlookup Vx skv_4))) (not (= (vvar Vx) (vvar skv_5))))))) (let ((_let_42 (not _let_40))) (let ((_let_43 (forall ((Vx $$unsorted) (Ve2 $$unsorted) (VT1 $$unsorted) (VT2 $$unsorted)) (or (not (= (vabs Vx VT1 Ve2) (vvar skv_5))) (not (vtcheck (vbind Vx VT1 skv_4) Ve2 VT2)) (not (= (varrow VT1 VT2) skv_6)))))) (let ((_let_44 (not _let_43))) (let ((_let_45 (forall ((Ve1 $$unsorted) (Ve2 $$unsorted) (VS $$unsorted)) (or (not (vtcheck skv_4 Ve1 (varrow VS skv_6))) (not (vtcheck skv_4 Ve2 VS)) (not (= (vapp Ve1 Ve2) (vvar skv_5))))))) (let ((_let_46 (not _let_45))) (let ((_let_47 (not _let_41))) (let ((_let_48 (or _let_22 _let_47 _let_46 _let_44))) (let ((_let_49 (forall ((Ve $$unsorted) (VT $$unsorted) (VC $$unsorted)) (or (not (vtcheck VC Ve VT)) (not (forall ((Vx $$unsorted)) (or (not (= (vlookup Vx VC) (vsomeType VT))) (not (= Ve (vvar Vx)))))) (not (forall ((Ve1 $$unsorted) (Ve2 $$unsorted) (VS $$unsorted)) (or (not (vtcheck VC Ve1 (varrow VS VT))) (not (vtcheck VC Ve2 VS)) (not (= Ve (vapp Ve1 Ve2)))))) (not (forall ((Vx $$unsorted) (Ve2 $$unsorted) (VT1 $$unsorted) (VT2 $$unsorted)) (or (not (= Ve (vabs Vx VT1 Ve2))) (not (vtcheck (vbind Vx VT1 VC) Ve2 VT2)) (not (= VT (varrow VT1 VT2)))))))))) (let ((_let_50 (EQ_RESOLVE (ASSUME :args (_let_4)) (MACRO_SR_EQ_INTRO :args (_let_4 SB_DEFAULT SBA_FIXPOINT))))) (let ((_let_51 (varrow skv_14 skv_15))) (let ((_let_52 (not (vtcheck (vbind skv_12 skv_14 skv_4) skv_13 skv_15)))) (let ((_let_53 (vabs skv_12 skv_14 skv_13))) (let ((_let_54 (= _let_17 _let_53))) (let ((_let_55 (not _let_54))) (let ((_let_56 (or _let_55 _let_52 (not (= skv_6 _let_51))))) (let ((_let_57 (forall ((VVar0 $$unsorted) (VVar1 $$unsorted) (VTyp0 $$unsorted) (VExp0 $$unsorted)) (not (= (vabs VVar1 VTyp0 VExp0) (vvar VVar0)))))) (let ((_let_58 (EQ_RESOLVE (ASSUME :args (_let_9)) (MACRO_SR_EQ_INTRO :args (_let_9 SB_DEFAULT SBA_FIXPOINT))))) (let ((_let_59 (_let_44))) (let ((_let_60 (vapp skv_16 skv_17))) (let ((_let_61 (= _let_17 _let_60))) (let ((_let_62 (not _let_61))) (let ((_let_63 (not (vtcheck skv_4 skv_17 skv_18)))) (let ((_let_64 (not (vtcheck skv_4 skv_16 (varrow skv_18 skv_6))))) (let ((_let_65 (or _let_64 _let_63 _let_62))) (let ((_let_66 (forall ((VVar0 $$unsorted) (VExp0 $$unsorted) (VExp1 $$unsorted)) (not (= (vapp VExp0 VExp1) (vvar VVar0)))))) (let ((_let_67 (EQ_RESOLVE (ASSUME :args (_let_5)) (MACRO_SR_EQ_INTRO :args (_let_5 SB_DEFAULT SBA_FIXPOINT))))) (let ((_let_68 (_let_46))) (let ((_let_69 (_let_47))) (let ((_let_70 (MACRO_RESOLUTION_TRUST (EQ_RESOLVE (IMPLIES_ELIM (EQ_RESOLVE (SCOPE (SKOLEMIZE (ASSUME :args _let_69)) :args _let_69) (REWRITE :args ((=> _let_47 (not (or _let_39 (not (= _let_31 _let_17))))))))) (CONG (MACRO_SR_PRED_INTRO :args ((= (not _let_47) _let_41))) (REFL :args (_let_42)) :args _let_27)) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_OR_POS :args (_let_48)) :args ((or _let_22 _let_47 _let_46 _let_44 (not _let_48)))) (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (CNF_OR_NEG :args (_let_23 0)) (CONG _let_30 (MACRO_SR_PRED_INTRO :args ((= (not _let_22) _let_21))) :args _let_27)) :args ((or _let_21 _let_23))) _let_29 :args (_let_21 true _let_23)) (MACRO_RESOLUTION_TRUST (EQ_RESOLVE (IMPLIES_ELIM (EQ_RESOLVE (SCOPE (SKOLEMIZE (ASSUME :args _let_68)) :args _let_68) (REWRITE :args ((=> _let_46 (not (or _let_64 _let_63 (not (= _let_60 _let_17))))))))) (CONG (MACRO_SR_PRED_INTRO :args ((= (not _let_46) _let_45))) (REFL :args ((not _let_65))) :args _let_27)) (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (CNF_OR_NEG :args (_let_65 2)) (CONG (REFL :args (_let_65)) (MACRO_SR_PRED_INTRO :args ((= (not _let_62) _let_61))) :args _let_27)) :args ((or _let_61 _let_65))) (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (MACRO_SR_PRED_ELIM (SCOPE (INSTANTIATE _let_67 :args (skv_5 skv_16 skv_17 QUANTIFIERS_INST_E_MATCHING ((vapp VExp0 VExp1) (vvar VVar0)))) :args (_let_66)))) _let_67 :args (_let_62 false _let_66)) :args (_let_65 true _let_61)) :args (_let_45 false _let_65)) (MACRO_RESOLUTION_TRUST (EQ_RESOLVE (IMPLIES_ELIM (EQ_RESOLVE (SCOPE (SKOLEMIZE (ASSUME :args _let_59)) :args _let_59) (REWRITE :args ((=> _let_44 (not (or (not (= _let_53 _let_17)) _let_52 (not (= _let_51 skv_6))))))))) (CONG (MACRO_SR_PRED_INTRO :args ((= (not _let_44) _let_43))) (REFL :args ((not _let_56))) :args _let_27)) (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (CNF_OR_NEG :args (_let_56 0)) (CONG (REFL :args (_let_56)) (MACRO_SR_PRED_INTRO :args ((= (not _let_55) _let_54))) :args _let_27)) :args ((or _let_54 _let_56))) (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (MACRO_SR_PRED_ELIM (SCOPE (INSTANTIATE _let_58 :args (skv_5 skv_12 skv_14 skv_13 QUANTIFIERS_INST_E_MATCHING ((vabs VVar1 VTyp0 VExp0) (vvar VVar0)))) :args (_let_57)))) _let_58 :args (_let_55 false _let_57)) :args (_let_56 true _let_54)) :args (_let_43 false _let_56)) (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (MACRO_SR_PRED_ELIM (SCOPE (INSTANTIATE _let_50 :args (_let_17 skv_6 skv_4 QUANTIFIERS_INST_E_MATCHING_SIMPLE ((not (= (vtcheck VC Ve VT) false))))) :args (_let_49)))) _let_50 :args (_let_48 false _let_49)) :args (_let_47 false _let_21 false _let_45 false _let_43 false _let_48)) :args (_let_42 true _let_41)))) (let ((_let_71 (REFL :args (_let_40)))) (let ((_let_72 (MACRO_RESOLUTION_TRUST (REORDERING (CNF_OR_POS :args (_let_34)) :args ((or _let_33 _let_13 (not _let_34)))) (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (CNF_OR_NEG :args (_let_40 1)) (CONG _let_71 (MACRO_SR_PRED_INTRO :args ((= (not _let_33) _let_32))) :args _let_27)) :args ((or _let_32 _let_40))) _let_70 :args (_let_32 true _let_40)) (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (MACRO_SR_PRED_ELIM (SCOPE (INSTANTIATE _let_36 :args (skv_19 skv_5 QUANTIFIERS_INST_E_MATCHING ((vvar BOUND_VARIABLE_2954) (vvar BOUND_VARIABLE_2952)))) :args (_let_35)))) _let_36 :args (_let_34 false _let_35)) :args (_let_13 false _let_32 false _let_34)))) (let ((_let_73 (= vnoType _let_37))) (let ((_let_74 (not _let_15))) (let ((_let_75 (not _let_73))) (let ((_let_76 (_let_2))) (let ((_let_77 (ASSUME :args _let_76))) (let ((_let_78 (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (CNF_OR_NEG :args (_let_40 0)) (CONG _let_71 (MACRO_SR_PRED_INTRO :args ((= (not _let_39) _let_38))) :args _let_27)) :args ((or _let_38 _let_40))) _let_70 :args (_let_38 true _let_40)))) (let ((_let_79 (REFL :args (_let_39)))) (let ((_let_80 (and _let_38 _let_75))) (let ((_let_81 (ASSUME :args (_let_75)))) (let ((_let_82 (EQUAL))) (let ((_let_83 (ASSUME :args (_let_38)))) (let ((_let_84 (SYMM _let_83))) (let ((_let_85 (vlookup skv_5 _let_18))) (let ((_let_86 (= _let_85 (vlookup skv_5 skv_4)))) (let ((_let_87 (or _let_16 _let_86))) (let ((_let_88 (forall ((VTy $$unsorted) (Vy $$unsorted) (Vx $$unsorted) (VC $$unsorted)) (or (= Vy Vx) (= (vlookup Vx VC) (vlookup Vx (vbind Vy VTy VC))))))) (let ((_let_89 (EQ_RESOLVE (ASSUME :args (_let_7)) (MACRO_SR_EQ_INTRO :args (_let_7 SB_DEFAULT SBA_FIXPOINT))))) (let ((_let_90 (= _let_85 _let_37))) (let ((_let_91 (not _let_86))) (let ((_let_92 (not _let_90))) (let ((_let_93 (or _let_92 _let_19))) (let ((_let_94 (forall ((VC $$unsorted) (Vx $$unsorted) (VT $$unsorted)) (or (not (= (vlookup Vx VC) (vsomeType VT))) (vtcheck VC (vvar Vx) VT))))) (let ((_let_95 (EQ_RESOLVE (ASSUME :args (_let_8)) (MACRO_SR_EQ_INTRO :args (_let_8 SB_DEFAULT SBA_FIXPOINT))))) (let ((_let_96 (not _let_13))) (let ((_let_97 (and _let_92 _let_38 _let_13))) (let ((_let_98 (_let_92 _let_38 _let_13))) (let ((_let_99 (ASSUME :args (_let_92)))) (let ((_let_100 (APPLY_UF vlookup))) (let ((_let_101 (REFL :args (skv_4)))) (let ((_let_102 (ASSUME :args (_let_13)))) (let ((_let_103 (SYMM (SYMM _let_102)))) (let ((_let_104 (and _let_12 _let_16 _let_13))) (let ((_let_105 (ASSUME :args (_let_16)))) (let ((_let_106 (ASSUME :args (_let_12)))) (SCOPE (MACRO_RESOLUTION_TRUST (REORDERING (RESOLUTION (CNF_AND_NEG :args (_let_104)) (IMPLIES_ELIM (SCOPE (MODUS_PONENS (AND_INTRO _let_102 _let_105 _let_106) (SCOPE (TRANS (SYMM (SYMM _let_106)) (CONG (TRANS (SYMM (SYMM _let_105)) _let_103) _let_101 :args _let_100)) :args (_let_13 _let_16 _let_12))) :args (_let_12 _let_16 _let_13))) :args (true _let_104)) :args ((or _let_20 _let_15 (not _let_16) _let_96))) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_OR_POS :args (_let_87)) :args ((or _let_16 _let_86 (not _let_87)))) (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (RESOLUTION (CNF_AND_NEG :args (_let_97)) (IMPLIES_ELIM (SCOPE (MODUS_PONENS (AND_INTRO _let_99 _let_83 _let_102) (SCOPE (FALSE_ELIM (TRANS (CONG (REFL :args (_let_85)) (TRANS (CONG _let_103 _let_101 :args _let_100) _let_84) :args _let_82) (FALSE_INTRO _let_99))) :args _let_98)) :args _let_98)) :args (true _let_97)) (CONG (MACRO_SR_PRED_INTRO :args ((= (not _let_92) _let_90))) _let_79 (REFL :args (_let_96)) (REFL :args (_let_91)) :args _let_27)) :args ((or _let_90 _let_39 _let_91 _let_96))) (MACRO_RESOLUTION_TRUST (REORDERING (CNF_OR_POS :args (_let_93)) :args ((or _let_19 _let_92 (not _let_93)))) (MACRO_RESOLUTION_TRUST (CNF_OR_NEG :args (_let_23 2)) _let_29 :args ((not _let_19) true _let_23)) (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (SCOPE (INSTANTIATE _let_95 :args (_let_18 skv_5 skv_6 QUANTIFIERS_INST_E_MATCHING ((not (= (vtcheck VC (vvar Vx) VT) true))))) :args (_let_94))) _let_95 :args (_let_93 false _let_94)) :args (_let_92 true _let_19 false _let_93)) _let_78 _let_72 :args (_let_91 true _let_90 false _let_38 false _let_13)) (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (MACRO_SR_PRED_ELIM (SCOPE (INSTANTIATE _let_89 :args (skv_3 skv_2 skv_5 skv_4 QUANTIFIERS_INST_E_MATCHING ((vlookup Vx (vbind Vy VTy VC))))) :args (_let_88)))) _let_89 :args (_let_87 false _let_88)) :args (_let_16 true _let_86 false _let_87)) (MACRO_RESOLUTION_TRUST (EQ_RESOLVE (RESOLUTION (CNF_AND_NEG :args (_let_80)) (IMPLIES_ELIM (SCOPE (MODUS_PONENS (AND_INTRO _let_81 _let_83) (SCOPE (FALSE_ELIM (TRANS (CONG (REFL :args (vnoType)) _let_84 :args _let_82) (FALSE_INTRO _let_81))) :args (_let_75 _let_38))) :args (_let_38 _let_75))) :args (true _let_80)) (CONG _let_79 (MACRO_SR_PRED_INTRO :args ((= (not _let_75) _let_73))) (REFL :args (_let_74)) :args _let_27)) _let_78 (MACRO_RESOLUTION_TRUST (IMPLIES_ELIM (SCOPE (INSTANTIATE _let_77 :args (skv_6 QUANTIFIERS_INST_E_MATCHING_SIMPLE ((vsomeType VTyp0)))) :args _let_76)) _let_77 :args (_let_75 false _let_2)) :args (_let_74 false _let_38 true _let_73)) _let_72 (MACRO_RESOLUTION_TRUST (REORDERING (EQ_RESOLVE (CNF_OR_NEG :args (_let_23 1)) (CONG _let_30 (MACRO_SR_PRED_INTRO :args ((= (not _let_20) _let_12))) :args _let_27)) :args ((or _let_12 _let_23))) _let_29 :args (_let_12 true _let_23)) :args (false false _let_16 true _let_15 false _let_13 false _let_12)) :args ((forall ((Vx $$unsorted) (VS $$unsorted) (Ve $$unsorted) (VExp0 $$unsorted)) (=> (= VExp0 (vabs Vx VS Ve)) (visValue VExp0))) (forall ((Vx $$unsorted) (VVar0 $$unsorted) (VCtx0 $$unsorted) (RESULT $$unsorted)) (=> (and (= vempty VCtx0) (= Vx VVar0)) (=> (= (vlookup VVar0 VCtx0) RESULT) (= RESULT vnoType)))) (forall ((VVar0 $$unsorted) (VExp0 $$unsorted) (VExp1 $$unsorted) (RESULT $$unsorted)) (=> (= (vsubst VVar0 VExp0 VExp1) RESULT) (or (exists ((Vx $$unsorted) (Vy $$unsorted) (Ve $$unsorted)) (and (= VVar0 Vx) (= (vvar Vy) VExp1) (= RESULT Ve) (= Vy Vx) (= VExp0 Ve))) (exists ((Ve $$unsorted) (Vx $$unsorted) (Vy $$unsorted)) (let ((_let_1 (vvar Vy))) (and (= VExp1 _let_1) (not (= Vx Vy)) (= RESULT _let_1) (= VExp0 Ve) (= Vx VVar0)))) (exists ((Ve1 $$unsorted) (Vx $$unsorted) (Ve $$unsorted) (Ve2 $$unsorted)) (and (= RESULT (vapp (vsubst Vx Ve Ve1) (vsubst Vx Ve Ve2))) (= VExp1 (vapp Ve1 Ve2)) (= Ve VExp0) (= VVar0 Vx))) (exists ((Vx $$unsorted) (Ve $$unsorted) (VT $$unsorted) (Vy $$unsorted) (Vfresh $$unsorted) (Ve1 $$unsorted)) (and (= VExp1 (vabs Vy VT Ve1)) (= (vgensym (vapp (vapp Ve Ve1) (vvar Vx))) Vfresh) (= RESULT (vsubst Vx Ve (vabs Vfresh VT (vsubst Vy (vvar Vfresh) Ve1)))) (visFreeVar Vy Ve) (not (= Vy Vx)) (= VExp0 Ve) (= Vx VVar0))) (exists ((Vy $$unsorted) (VT $$unsorted) (Vx $$unsorted) (Ve $$unsorted) (Ve1 $$unsorted)) (and (not (visFreeVar Vy Ve)) (= RESULT (vabs Vy VT (vsubst Vx Ve Ve1))) (not (= Vy Vx)) (= VExp1 (vabs Vy VT Ve1)) (= Ve VExp0) (= Vx VVar0))) (exists ((Ve $$unsorted) (Vx $$unsorted) (Vy $$unsorted) (VT $$unsorted) (Ve1 $$unsorted)) (let ((_let_1 (vabs Vy VT Ve1))) (and (= _let_1 VExp1) (= _let_1 RESULT) (= Vx Vy) (= VExp0 Ve) (= Vx VVar0))))))) (and (=> true _let_11) (=> _let_11 true)) (and (=> true _let_10) (=> _let_10 true)) (forall ((VOptTyp0 $$unsorted)) (=> (= VOptTyp0 vnoType) (not (visSomeType VOptTyp0)))) (forall ((VOptExp0 $$unsorted) (RESULT $$unsorted) (Ve $$unsorted)) (=> (= VOptExp0 (vsomeExp Ve)) (=> (= RESULT (vgetSomeExp VOptExp0)) (= RESULT Ve)))) _let_9 (forall ((Vx $$unsorted) (VExp0 $$unsorted)) (=> (= VExp0 (vvar Vx)) (not (visValue VExp0)))) (forall ((Ve1 $$unsorted) (VExp0 $$unsorted) (RESULT $$unsorted) (Ve1red $$unsorted) (Ve2 $$unsorted)) (=> (and (= VExp0 (vapp Ve1 Ve2)) (forall ((VVx0 $$unsorted) (VVS0 $$unsorted) (VVe10 $$unsorted)) (not (= (vabs VVx0 VVS0 VVe10) Ve1)))) (=> (and (= (vreduce Ve1) Ve1red) (visSomeExp Ve1red)) (=> (= (vreduce VExp0) RESULT) (= RESULT (vsomeExp (vapp (vgetSomeExp Ve1red) Ve2))))))) (forall ((VS $$unsorted) (VC $$unsorted) (Ve1 $$unsorted) (Ve2 $$unsorted) (VT $$unsorted)) (=> (and (vtcheck VC Ve2 VS) (vtcheck VC Ve1 (varrow VS VT))) (vtcheck VC (vapp Ve1 Ve2) VT))) (forall ((Vv $$unsorted) (Ve $$unsorted)) (=> (= Vv (vgensym Ve)) (not (visFreeVar Vv Ve)))) _let_8 (forall ((Ve $$unsorted) (Vx $$unsorted) (VVar0 $$unsorted) (VExp0 $$unsorted) (VExp1 $$unsorted) (RESULT $$unsorted) (Vy $$unsorted) (VT $$unsorted) (Ve1 $$unsorted)) (let ((_let_1 (vabs Vy VT Ve1))) (=> (and (= Vx VVar0) (= VExp1 _let_1) (= VExp0 Ve)) (=> (= Vx Vy) (=> (= RESULT (vsubst VVar0 VExp0 VExp1)) (= RESULT _let_1)))))) (forall ((VC $$unsorted) (Vx $$unsorted) (Ve $$unsorted) (VS $$unsorted) (VT $$unsorted)) (=> (vtcheck (vbind Vx VS VC) Ve VT) (vtcheck VC (vabs Vx VS Ve) (varrow VS VT)))) (forall ((Vx $$unsorted) (VS $$unsorted) (Ve1 $$unsorted) (Ve2red $$unsorted) (Ve2 $$unsorted) (VExp0 $$unsorted) (RESULT $$unsorted)) (=> (= VExp0 (vapp (vabs Vx VS Ve1) Ve2)) (=> (and (= (vreduce Ve2) Ve2red) (not (visSomeExp Ve2red)) (not (visValue Ve2))) (=> (= RESULT (vreduce VExp0)) (= vnoExp RESULT))))) (forall ((Ve1 $$unsorted) (Ve2 $$unsorted) (VExp0 $$unsorted)) (=> (= (vapp Ve1 Ve2) VExp0) (not (visValue VExp0)))) (forall ((VTyp0 $$unsorted) (VTyp1 $$unsorted)) (let ((_let_1 (= VTyp1 VTyp0))) (let ((_let_2 (= (vsomeType VTyp1) (vsomeType VTyp0)))) (and (=> _let_1 _let_2) (=> _let_2 _let_1))))) (forall ((VVar0 $$unsorted) (VTyp0 $$unsorted) (VCtx0 $$unsorted) (VVar1 $$unsorted) (VTyp1 $$unsorted) (VCtx1 $$unsorted)) (let ((_let_1 (= VVar0 VVar1))) (let ((_let_2 (= VTyp1 VTyp0))) (let ((_let_3 (= (vbind VVar0 VTyp0 VCtx0) (vbind VVar1 VTyp1 VCtx1)))) (and (=> (and _let_1 (= VCtx1 VCtx0) _let_2) _let_3) (=> _let_3 (and _let_2 (= VCtx0 VCtx1) _let_1))))))) (forall ((Vx $$unsorted) (VS $$unsorted) (Ve $$unsorted) (VExp0 $$unsorted) (RESULT $$unsorted)) (=> (= (vabs Vx VS Ve) VExp0) (=> (= RESULT (vreduce VExp0)) (= RESULT vnoExp)))) (forall ((Ve $$unsorted) (VOptTyp0 $$unsorted)) (=> (= (vsomeType Ve) VOptTyp0) (visSomeType VOptTyp0))) (forall ((VTyp0 $$unsorted) (VTyp1 $$unsorted) (VTyp2 $$unsorted) (VTyp3 $$unsorted)) (let ((_let_1 (= VTyp3 VTyp1))) (let ((_let_2 (= VTyp2 VTyp0))) (let ((_let_3 (varrow VTyp0 VTyp1))) (let ((_let_4 (varrow VTyp2 VTyp3))) (and (=> (and _let_1 _let_2) (= _let_3 _let_4)) (=> (= _let_4 _let_3) (and _let_2 _let_1)))))))) (forall ((VOptTyp0 $$unsorted) (RESULT $$unsorted) (Ve $$unsorted)) (=> (= (vsomeType Ve) VOptTyp0) (=> (= (vgetSomeType VOptTyp0) RESULT) (= Ve RESULT)))) (forall ((Vy $$unsorted) (VTy $$unsorted) (Vx $$unsorted) (VTx $$unsorted) (VC $$unsorted) (Ve $$unsorted) (VT $$unsorted)) (=> (and (not (= Vx Vy)) (vtcheck (vbind Vx VTx (vbind Vy VTy VC)) Ve VT)) (vtcheck (vbind Vy VTy (vbind Vx VTx VC)) Ve VT))) _let_7 (forall ((VVar0 $$unsorted) (VExp0 $$unsorted) (Ve1 $$unsorted) (Vv $$unsorted) (Ve2 $$unsorted)) (let ((_let_1 (visFreeVar Vv Ve2))) (let ((_let_2 (visFreeVar Vv Ve1))) (let ((_let_3 (visFreeVar VVar0 VExp0))) (=> (and (= VVar0 Vv) (= (vapp Ve1 Ve2) VExp0)) (and (=> (or _let_1 _let_2) _let_3) (=> _let_3 (or _let_2 _let_1)))))))) (forall ((VVar0 $$unsorted) (VTyp0 $$unsorted) (VExp0 $$unsorted) (VVar1 $$unsorted) (VTyp1 $$unsorted) (VExp1 $$unsorted)) (let ((_let_1 (= VTyp1 VTyp0))) (let ((_let_2 (= VExp0 VExp1))) (let ((_let_3 (= (vabs VVar1 VTyp1 VExp1) (vabs VVar0 VTyp0 VExp0)))) (and (=> (and (= VVar0 VVar1) _let_1 _let_2) _let_3) (=> _let_3 (and (= VVar1 VVar0) _let_2 _let_1))))))) (forall ((VExp0 $$unsorted) (VExp1 $$unsorted)) (let ((_let_1 (= (vsomeExp VExp0) (vsomeExp VExp1)))) (and (=> (= VExp1 VExp0) _let_1) (=> _let_1 (= VExp0 VExp1))))) (forall ((Vx $$unsorted) (Vy $$unsorted) (VVar0 $$unsorted) (VExp0 $$unsorted) (VExp1 $$unsorted) (RESULT $$unsorted) (Ve $$unsorted)) (=> (and (= VVar0 Vx) (= VExp1 (vvar Vy)) (= Ve VExp0)) (=> (= Vx Vy) (=> (= (vsubst VVar0 VExp0 VExp1) RESULT) (= RESULT Ve))))) (forall ((VExp0 $$unsorted) (RESULT $$unsorted)) (=> (= (vreduce VExp0) RESULT) (or (exists ((Vx $$unsorted)) (and (= VExp0 (vvar Vx)) (= vnoExp RESULT))) (exists ((VS $$unsorted) (Ve2red $$unsorted) (Vx $$unsorted) (Ve2 $$unsorted) (Ve1 $$unsorted)) (and (= VExp0 (vapp (vabs Vx VS Ve1) Ve2)) (= (vreduce Ve2) Ve2red) (not (visSomeExp Ve2red)) (= RESULT (vsomeExp (vsubst Vx Ve2 Ve1))) (visValue Ve2))) (exists ((Vx $$unsorted) (VS $$unsorted) (Ve1 $$unsorted) (Ve2red $$unsorted) (Ve2 $$unsorted)) (and (= Ve2red (vreduce Ve2)) (not (visSomeExp Ve2red)) (not (visValue Ve2)) (= RESULT vnoExp) (= VExp0 (vapp (vabs Vx VS Ve1) Ve2)))) (exists ((Ve2 $$unsorted) (Ve1 $$unsorted) (Ve1red $$unsorted)) (and (= VExp0 (vapp Ve1 Ve2)) (forall ((VVx0 $$unsorted) (VVS0 $$unsorted) (VVe10 $$unsorted)) (not (= (vabs VVx0 VVS0 VVe10) Ve1))) (= Ve1red (vreduce Ve1)) (= RESULT vnoExp) (not (visSomeExp Ve1red)))) (exists ((Ve1 $$unsorted) (Ve1red $$unsorted) (Ve2 $$unsorted)) (and (= VExp0 (vapp Ve1 Ve2)) (= RESULT (vsomeExp (vapp (vgetSomeExp Ve1red) Ve2))) (visSomeExp Ve1red) (= (vreduce Ve1) Ve1red) (forall ((VVx0 $$unsorted) (VVS0 $$unsorted) (VVe10 $$unsorted)) (not (= (vabs VVx0 VVS0 VVe10) Ve1))))) (exists ((Ve2 $$unsorted) (Vx $$unsorted) (VS $$unsorted) (Ve1 $$unsorted) (Ve2red $$unsorted)) (let ((_let_1 (vabs Vx VS Ve1))) (and (= RESULT (vsomeExp (vapp _let_1 (vgetSomeExp Ve2red)))) (visSomeExp Ve2red) (= Ve2red (vreduce Ve2)) (= VExp0 (vapp _let_1 Ve2))))) (exists ((Vx $$unsorted) (VS $$unsorted) (Ve $$unsorted)) (and (= VExp0 (vabs Vx VS Ve)) (= vnoExp RESULT)))))) (forall ((Ve2 $$unsorted) (VExp0 $$unsorted) (RESULT $$unsorted) (Vx $$unsorted) (VS $$unsorted) (Ve1 $$unsorted) (Ve2red $$unsorted)) (let ((_let_1 (vabs Vx VS Ve1))) (=> (= (vapp _let_1 Ve2) VExp0) (=> (and (= Ve2red (vreduce Ve2)) (visSomeExp Ve2red)) (=> (= RESULT (vreduce VExp0)) (= RESULT (vsomeExp (vapp _let_1 (vgetSomeExp Ve2red))))))))) (forall ((VT $$unsorted) (VVar0 $$unsorted) (VExp0 $$unsorted) (Vx $$unsorted) (Vv $$unsorted) (Ve $$unsorted)) (let ((_let_1 (visFreeVar VVar0 VExp0))) (let ((_let_2 (visFreeVar Vv Ve))) (=> (and (= VVar0 Vv) (= VExp0 (vabs Vx VT Ve))) (and (=> _let_1 (and _let_2 (not (= Vx Vv)))) (=> (and _let_2 (not (= Vv Vx))) _let_1)))))) (forall ((VVar0 $$unsorted) (VTyp0 $$unsorted) (VExp0 $$unsorted) (VExp1 $$unsorted) (VExp2 $$unsorted)) (not (= (vabs VVar0 VTyp0 VExp0) (vapp VExp1 VExp2)))) _let_6 (forall ((Ve $$unsorted) (Vx $$unsorted) (VVar0 $$unsorted) (VExp0 $$unsorted) (VExp1 $$unsorted) (RESULT $$unsorted) (Vy $$unsorted)) (let ((_let_1 (vvar Vy))) (=> (and (= Ve VExp0) (= _let_1 VExp1) (= VVar0 Vx)) (=> (not (= Vy Vx)) (=> (= RESULT (vsubst VVar0 VExp0 VExp1)) (= _let_1 RESULT)))))) (forall ((VOptExp0 $$unsorted)) (=> (= vnoExp VOptExp0) (not (visSomeExp VOptExp0)))) (forall ((Vy $$unsorted) (VTy $$unsorted) (Vx $$unsorted) (VTx $$unsorted) (VC $$unsorted) (Ve $$unsorted) (VT $$unsorted)) (=> (and (= Vy Vx) (vtcheck (vbind Vx VTx (vbind Vy VTy VC)) Ve VT)) (vtcheck (vbind Vx VTx VC) Ve VT))) (forall ((VVar0 $$unsorted) (VExp0 $$unsorted) (Vx $$unsorted) (Vv $$unsorted)) (let ((_let_1 (visFreeVar VVar0 VExp0))) (=> (and (= Vv VVar0) (= VExp0 (vvar Vx))) (and (=> (= Vx Vv) _let_1) (=> _let_1 (= Vv Vx)))))) (forall ((Vx $$unsorted) (VExp0 $$unsorted) (RESULT $$unsorted)) (=> (= (vvar Vx) VExp0) (=> (= (vreduce VExp0) RESULT) (= vnoExp RESULT)))) (forall ((VC $$unsorted) (Vx $$unsorted) (Vy $$unsorted) (VVar0 $$unsorted) (VCtx0 $$unsorted) (RESULT $$unsorted) (VTy $$unsorted)) (=> (and (= VCtx0 (vbind Vy VTy VC)) (= VVar0 Vx)) (=> (= Vy Vx) (=> (= RESULT (vlookup VVar0 VCtx0)) (= RESULT (vsomeType VTy)))))) _let_5 (forall ((VExp0 $$unsorted)) (not (= vnoExp (vsomeExp VExp0)))) (forall ((VVar0 $$unsorted) (VExp0 $$unsorted) (VExp1 $$unsorted) (RESULT $$unsorted) (Vx $$unsorted) (Ve $$unsorted) (VT $$unsorted) (Vy $$unsorted) (Vfresh $$unsorted) (Ve1 $$unsorted)) (=> (and (= VVar0 Vx) (= VExp0 Ve) (= VExp1 (vabs Vy VT Ve1))) (=> (and (not (= Vx Vy)) (visFreeVar Vy Ve) (= (vgensym (vapp (vapp Ve Ve1) (vvar Vx))) Vfresh)) (=> (= (vsubst VVar0 VExp0 VExp1) RESULT) (= RESULT (vsubst Vx Ve (vabs Vfresh VT (vsubst Vy (vvar Vfresh) Ve1)))))))) _let_4 (and (=> true _let_3) (=> _let_3 true)) (forall ((Ve $$unsorted) (VOptExp0 $$unsorted)) (=> (= VOptExp0 (vsomeExp Ve)) (visSomeExp VOptExp0))) (forall ((VVar0 $$unsorted) (VExp0 $$unsorted) (VExp1 $$unsorted) (RESULT $$unsorted) (Ve1 $$unsorted) (Vx $$unsorted) (Ve $$unsorted) (Ve2 $$unsorted)) (=> (and (= Vx VVar0) (= VExp0 Ve) (= (vapp Ve1 Ve2) VExp1)) (=> (= (vsubst VVar0 VExp0 VExp1) RESULT) (= RESULT (vapp (vsubst Vx Ve Ve1) (vsubst Vx Ve Ve2)))))) (forall ((Ve2 $$unsorted) (Ve1 $$unsorted) (Ve1red $$unsorted) (VExp0 $$unsorted) (RESULT $$unsorted)) (=> (and (= (vapp Ve1 Ve2) VExp0) (forall ((VVx0 $$unsorted) (VVS0 $$unsorted) (VVe10 $$unsorted)) (not (= (vabs VVx0 VVS0 VVe10) Ve1)))) (=> (and (= Ve1red (vreduce Ve1)) (not (visSomeExp Ve1red))) (=> (= (vreduce VExp0) RESULT) (= vnoExp RESULT))))) (forall ((VExp0 $$unsorted) (VExp1 $$unsorted) (VExp2 $$unsorted) (VExp3 $$unsorted)) (let ((_let_1 (= (vapp VExp2 VExp3) (vapp VExp0 VExp1)))) (and (=> _let_1 (and (= VExp3 VExp1) (= VExp2 VExp0))) (=> (and (= VExp1 VExp3) (= VExp0 VExp2)) _let_1)))) (forall ((VVar0 $$unsorted) (VCtx0 $$unsorted) (RESULT $$unsorted)) (=> (= RESULT (vlookup VVar0 VCtx0)) (or (exists ((VC $$unsorted) (Vx $$unsorted) (Vy $$unsorted) (VTy $$unsorted)) (and (= VCtx0 (vbind Vy VTy VC)) (= (vsomeType VTy) RESULT) (= Vy Vx) (= VVar0 Vx))) (exists ((VTy $$unsorted) (Vy $$unsorted) (Vx $$unsorted) (VC $$unsorted)) (and (= VVar0 Vx) (= (vbind Vy VTy VC) VCtx0) (not (= Vx Vy)) (= (vlookup Vx VC) RESULT))) (exists ((Vx $$unsorted)) (and (= VCtx0 vempty) (= RESULT vnoType) (= Vx VVar0)))))) (forall ((VVar0 $$unsorted) (VTyp0 $$unsorted) (VCtx0 $$unsorted)) (not (= (vbind VVar0 VTyp0 VCtx0) vempty))) (forall ((VVar0 $$unsorted) (VExp0 $$unsorted) (VExp1 $$unsorted) (RESULT $$unsorted) (Vy $$unsorted) (VT $$unsorted) (Vx $$unsorted) (Ve $$unsorted) (Ve1 $$unsorted)) (=> (and (= VExp1 (vabs Vy VT Ve1)) (= VExp0 Ve) (= VVar0 Vx)) (=> (and (not (visFreeVar Vy Ve)) (not (= Vx Vy))) (=> (= RESULT (vsubst VVar0 VExp0 VExp1)) (= (vabs Vy VT (vsubst Vx Ve Ve1)) RESULT))))) (forall ((VS $$unsorted) (Ve2red $$unsorted) (VExp0 $$unsorted) (RESULT $$unsorted) (Vx $$unsorted) (Ve2 $$unsorted) (Ve1 $$unsorted)) (=> (= (vapp (vabs Vx VS Ve1) Ve2) VExp0) (=> (and (= (vreduce Ve2) Ve2red) (visValue Ve2) (not (visSomeExp Ve2red))) (=> (= RESULT (vreduce VExp0)) (= (vsomeExp (vsubst Vx Ve2 Ve1)) RESULT))))) _let_2 _let_1 true)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 0.14/0.50 % SZS output end Proof for theBenchmark 0.14/0.50 EOF