TSTP Solution File: SEU980^6 by cocATP---0.2.0

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : cocATP---0.2.0
% Problem  : SEU980^6 : TPTP v6.1.0. Released v4.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : python CASC.py /export/starexec/sandbox/benchmark/theBenchmark.p

% Computer : n188.star.cs.uiowa.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2609 0 2.40GHz
% Memory   : 32286.75MB
% OS       : Linux 2.6.32-431.20.3.el6.x86_64
% CPULimit : 300s
% DateTime : Thu Jul 17 13:33:28 EDT 2014

% Result   : Timeout 300.02s
% Output   : None 
% Verified : 
% SZS Type : None (Parsing solution fails)
% Syntax   : Number of formulae    : 0

% Comments : 
%------------------------------------------------------------------------------
%----NO SOLUTION OUTPUT BY SYSTEM
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% % Problem  : SEU980^6 : TPTP v6.1.0. Released v4.0.0.
% % Command  : python CASC.py /export/starexec/sandbox/benchmark/theBenchmark.p
% % Computer : n188.star.cs.uiowa.edu
% % Model    : x86_64 x86_64
% % CPU      : Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
% % Memory   : 32286.75MB
% % OS       : Linux 2.6.32-431.20.3.el6.x86_64
% % CPULimit : 300
% % DateTime : Thu Jul 17 11:47:36 CDT 2014
% % CPUTime  : 300.02 
% Python 2.7.5
% Using paths ['/home/cristobal/cocATP/CASC/TPTP/', '/export/starexec/sandbox/benchmark/', '/export/starexec/sandbox/benchmark/']
% FOF formula (<kernel.Constant object at 0x1e32b00>, <kernel.DependentProduct object at 0x1e329e0>) of role type named cR
% Using role type
% Declaring cR:(fofType->fofType)
% FOF formula (<kernel.Constant object at 0x18cfe60>, <kernel.DependentProduct object at 0x1e32878>) of role type named cP
% Using role type
% Declaring cP:(fofType->(fofType->fofType))
% FOF formula (<kernel.Constant object at 0x1e32518>, <kernel.DependentProduct object at 0x1e32a70>) of role type named cL
% Using role type
% Declaring cL:(fofType->fofType)
% FOF formula (<kernel.Constant object at 0x1e32560>, <kernel.Single object at 0x1e32878>) of role type named cZ
% Using role type
% Declaring cZ:fofType
% FOF formula (((and ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cL ((cP Xx) Xy))) Xx)))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cR ((cP Xx) Xy))) Xy)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))) (forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->(((eq fofType) Xt) Xu))))))->((and ((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy))))) of role conjecture named cPU_LEM2_pme
% Conjecture to prove = (((and ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cL ((cP Xx) Xy))) Xx)))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cR ((cP Xx) Xy))) Xy)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))) (forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->(((eq fofType) Xt) Xu))))))->((and ((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy))))):Prop
% We need to prove ['(((and ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cL ((cP Xx) Xy))) Xx)))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cR ((cP Xx) Xy))) Xy)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))) (forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->(((eq fofType) Xt) Xu))))))->((and ((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))))']
% Parameter fofType:Type.
% Parameter cR:(fofType->fofType).
% Parameter cP:(fofType->(fofType->fofType)).
% Parameter cL:(fofType->fofType).
% Parameter cZ:fofType.
% Trying to prove (((and ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cL ((cP Xx) Xy))) Xx)))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cR ((cP Xx) Xy))) Xy)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))) (forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->(((eq fofType) Xt) Xu))))))->((and ((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))))
% Found eq_ref000:=(eq_ref00 P):((P Xx)->(P Xx))
% Found (eq_ref00 P) as proof of (P0 Xx)
% Found ((eq_ref0 Xx) P) as proof of (P0 Xx)
% Found (((eq_ref fofType) Xx) P) as proof of (P0 Xx)
% Found (((eq_ref fofType) Xx) P) as proof of (P0 Xx)
% Found eq_ref00:=(eq_ref0 (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))):(((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy))))
% Found (eq_ref0 (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found conj:(forall (A:Prop) (B:Prop), (A->(B->((and A) B))))
% Instantiate: b:=(forall (A:Prop) (B:Prop), (A->(B->((and A) B)))):Prop
% Found conj as proof of b
% Found eq_ref00:=(eq_ref0 (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))):(((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy))))
% Found (eq_ref0 (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found eq_ref000:=(eq_ref00 P):((P Xx)->(P Xx))
% Found (eq_ref00 P) as proof of (P0 Xx)
% Found ((eq_ref0 Xx) P) as proof of (P0 Xx)
% Found (((eq_ref fofType) Xx) P) as proof of (P0 Xx)
% Found (((eq_ref fofType) Xx) P) as proof of (P0 Xx)
% Found proj1:(forall (A:Prop) (B:Prop), (((and A) B)->A))
% Found proj1 as proof of (forall (A:Prop) (B:Prop), (((and A) B)->A))
% Found conj:(forall (A:Prop) (B:Prop), (A->(B->((and A) B))))
% Found conj as proof of (forall (A:Prop) (B:Prop), (A->(B->((and A) B))))
% Found eq_substitution:=(fun (T:Type) (U:Type) (a:T) (b:T) (f:(T->U)) (H:(((eq T) a) b))=> ((H (fun (x:T)=> (((eq U) (f a)) (f x)))) ((eq_ref U) (f a)))):(forall (T:Type) (U:Type) (a:T) (b:T) (f:(T->U)), ((((eq T) a) b)->(((eq U) (f a)) (f b))))
% Found eq_substitution as proof of (forall (T:Type) (U:Type) (a:T) (b:T) (f:(T->U)), ((((eq T) a) b)->(((eq U) (f a)) (f b))))
% Found eq_trans:=(fun (T:Type) (a:T) (b:T) (c:T) (X:(((eq T) a) b)) (Y:(((eq T) b) c))=> ((Y (fun (t:T)=> (((eq T) a) t))) X)):(forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) b) c)->(((eq T) a) c))))
% Found eq_trans as proof of (forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) b) c)->(((eq T) a) c))))
% Found iff_trans:=(fun (A:Prop) (B:Prop) (C:Prop) (AB:((iff A) B)) (BC:((iff B) C))=> ((((conj (A->C)) (C->A)) (fun (x:A)=> ((((proj1 (B->C)) (C->B)) BC) ((((proj1 (A->B)) (B->A)) AB) x)))) (fun (x:C)=> ((((proj2 (A->B)) (B->A)) AB) ((((proj2 (B->C)) (C->B)) BC) x))))):(forall (A:Prop) (B:Prop) (C:Prop), (((iff A) B)->(((iff B) C)->((iff A) C))))
% Found iff_trans as proof of (forall (A:Prop) (B:Prop) (C:Prop), (((iff A) B)->(((iff B) C)->((iff A) C))))
% Found functional_extensionality_dep:(forall (A:Type) (B:(A->Type)) (f:(forall (x:A), (B x))) (g:(forall (x:A), (B x))), ((forall (x:A), (((eq (B x)) (f x)) (g x)))->(((eq (forall (x:A), (B x))) f) g)))
% Found functional_extensionality_dep as proof of (forall (A:Type) (B:(A->Type)) (f:(forall (x5:A), (B x5))) (g:(forall (x5:A), (B x5))), ((forall (x5:A), (((eq (B x5)) (f x5)) (g x5)))->(((eq (forall (x5:A), (B x5))) f) g)))
% Found functional_extensionality_double:=(fun (A:Type) (B:Type) (C:Type) (f:(A->(B->C))) (g:(A->(B->C))) (x:(forall (x:A) (y:B), (((eq C) ((f x) y)) ((g x) y))))=> (((((functional_extensionality_dep A) (fun (x2:A)=> (B->C))) f) g) (fun (x0:A)=> (((((functional_extensionality_dep B) (fun (x3:B)=> C)) (f x0)) (g x0)) (x x0))))):(forall (A:Type) (B:Type) (C:Type) (f:(A->(B->C))) (g:(A->(B->C))), ((forall (x:A) (y:B), (((eq C) ((f x) y)) ((g x) y)))->(((eq (A->(B->C))) f) g)))
% Found functional_extensionality_double as proof of (forall (A:Type) (B:Type) (C:Type) (f:(A->(B->C))) (g:(A->(B->C))), ((forall (x5:A) (y:B), (((eq C) ((f x5) y)) ((g x5) y)))->(((eq (A->(B->C))) f) g)))
% Found eq_sym:=(fun (T:Type) (a:T) (b:T) (H:(((eq T) a) b))=> ((H (fun (x:T)=> (((eq T) x) a))) ((eq_ref T) a))):(forall (T:Type) (a:T) (b:T), ((((eq T) a) b)->(((eq T) b) a)))
% Found eq_sym as proof of (forall (T:Type) (a:T) (b:T), ((((eq T) a) b)->(((eq T) b) a)))
% Found x0:((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cL ((cP Xx) Xy))) Xx)))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cR ((cP Xx) Xy))) Xy)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))
% Found x0 as proof of ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cL ((cP Xx0) Xy0))) Xx0)))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cR ((cP Xx0) Xy0))) Xy0)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))
% Found choice_operator:=(fun (A:Type) (a:A)=> ((((classical_choice (A->Prop)) A) (fun (x3:(A->Prop))=> x3)) a)):(forall (A:Type), (A->((ex ((A->Prop)->A)) (fun (co:((A->Prop)->A))=> (forall (P:(A->Prop)), (((ex A) (fun (x:A)=> (P x)))->(P (co P))))))))
% Found choice_operator as proof of (forall (A:Type), (A->((ex ((A->Prop)->A)) (fun (co:((A->Prop)->A))=> (forall (P:(A->Prop)), (((ex A) (fun (x5:A)=> (P x5)))->(P (co P))))))))
% Found iff_sym:=(fun (A:Prop) (B:Prop) (H:((iff A) B))=> ((((conj (B->A)) (A->B)) (((proj2 (A->B)) (B->A)) H)) (((proj1 (A->B)) (B->A)) H))):(forall (A:Prop) (B:Prop), (((iff A) B)->((iff B) A)))
% Found iff_sym as proof of (forall (A:Prop) (B:Prop), (((iff A) B)->((iff B) A)))
% Found classical_choice:=(fun (A:Type) (B:Type) (R:(A->(B->Prop))) (b:B)=> ((fun (C:((forall (x:A), ((ex B) (fun (y:B)=> (((fun (x0:A) (y0:B)=> (((ex B) (fun (z:B)=> ((R x0) z)))->((R x0) y0))) x) y))))->((ex (A->B)) (fun (f:(A->B))=> (forall (x:A), (((fun (x0:A) (y:B)=> (((ex B) (fun (z:B)=> ((R x0) z)))->((R x0) y))) x) (f x)))))))=> (C (fun (x:A)=> ((fun (C0:((or ((ex B) (fun (z:B)=> ((R x) z)))) (not ((ex B) (fun (z:B)=> ((R x) z))))))=> ((((((or_ind ((ex B) (fun (z:B)=> ((R x) z)))) (not ((ex B) (fun (z:B)=> ((R x) z))))) ((ex B) (fun (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y))))) ((((ex_ind B) (fun (z:B)=> ((R x) z))) ((ex B) (fun (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y))))) (fun (y:B) (H:((R x) y))=> ((((ex_intro B) (fun (y0:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y0)))) y) (fun (_:((ex B) (fun (z:B)=> ((R x) z))))=> H))))) (fun (N:(not ((ex B) (fun (z:B)=> ((R x) z)))))=> ((((ex_intro B) (fun (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y)))) b) (fun (H:((ex B) (fun (z:B)=> ((R x) z))))=> ((False_rect ((R x) b)) (N H)))))) C0)) (classic ((ex B) (fun (z:B)=> ((R x) z)))))))) (((choice A) B) (fun (x:A) (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y)))))):(forall (A:Type) (B:Type) (R:(A->(B->Prop))), (B->((ex (A->B)) (fun (f:(A->B))=> (forall (x:A), (((ex B) (fun (y:B)=> ((R x) y)))->((R x) (f x))))))))
% Found classical_choice as proof of (forall (A:Type) (B:Type) (R:(A->(B->Prop))), (B->((ex (A->B)) (fun (f:(A->B))=> (forall (x5:A), (((ex B) (fun (y:B)=> ((R x5) y)))->((R x5) (f x5))))))))
% Found eq_stepl:=(fun (T:Type) (a:T) (b:T) (c:T) (X:(((eq T) a) b)) (Y:(((eq T) a) c))=> ((((((eq_trans T) c) a) b) ((((eq_sym T) a) c) Y)) X)):(forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) a) c)->(((eq T) c) b))))
% Found eq_stepl as proof of (forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) a) c)->(((eq T) c) b))))
% Found choice:=(fun (A:Type) (B:Type) (R:(A->(B->Prop))) (x:(forall (x:A), ((ex B) (fun (y:B)=> ((R x) y)))))=> (((fun (P:Prop) (x0:(forall (x0:(A->(B->Prop))), (((and ((((subrelation A) B) x0) R)) (forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y))))))->P)))=> (((((ex_ind (A->(B->Prop))) (fun (R':(A->(B->Prop)))=> ((and ((((subrelation A) B) R') R)) (forall (x0:A), ((ex B) ((unique B) (fun (y:B)=> ((R' x0) y)))))))) P) x0) ((((relational_choice A) B) R) x))) ((ex (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0)))))) (fun (x0:(A->(B->Prop))) (x1:((and ((((subrelation A) B) x0) R)) (forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y)))))))=> (((fun (P:Type) (x2:(((((subrelation A) B) x0) R)->((forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y)))))->P)))=> (((((and_rect ((((subrelation A) B) x0) R)) (forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y)))))) P) x2) x1)) ((ex (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0)))))) (fun (x2:((((subrelation A) B) x0) R)) (x3:(forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y))))))=> (((fun (P:Prop) (x4:(forall (x1:(A->B)), ((forall (x10:A), ((x0 x10) (x1 x10)))->P)))=> (((((ex_ind (A->B)) (fun (f:(A->B))=> (forall (x1:A), ((x0 x1) (f x1))))) P) x4) ((((unique_choice A) B) x0) x3))) ((ex (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0)))))) (fun (x4:(A->B)) (x5:(forall (x10:A), ((x0 x10) (x4 x10))))=> ((((ex_intro (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0))))) x4) (fun (x00:A)=> (((x2 x00) (x4 x00)) (x5 x00))))))))))):(forall (A:Type) (B:Type) (R:(A->(B->Prop))), ((forall (x:A), ((ex B) (fun (y:B)=> ((R x) y))))->((ex (A->B)) (fun (f:(A->B))=> (forall (x:A), ((R x) (f x)))))))
% Found choice as proof of (forall (A:Type) (B:Type) (R:(A->(B->Prop))), ((forall (x5:A), ((ex B) (fun (y:B)=> ((R x5) y))))->((ex (A->B)) (fun (f:(A->B))=> (forall (x5:A), ((R x5) (f x5)))))))
% Found and_comm_i:=(fun (A:Prop) (B:Prop) (H:((and A) B))=> ((((conj B) A) (((proj2 A) B) H)) (((proj1 A) B) H))):(forall (A:Prop) (B:Prop), (((and A) B)->((and B) A)))
% Found and_comm_i as proof of (forall (A:Prop) (B:Prop), (((and A) B)->((and B) A)))
% Found ex_intro:(forall (A:Type) (P:(A->Prop)) (x:A), ((P x)->((ex A) P)))
% Found ex_intro as proof of (forall (A:Type) (P:(A->Prop)) (x20:A), ((P x20)->((ex A) P)))
% Found conj0:=(conj ((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))):(forall (B:Prop), (((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))->(B->((and ((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) B))))
% Found conj0 as proof of (forall (B:Prop), (((and (forall (Xx0:fofType) (Xy0:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx0:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))->(B->((and ((and (forall (Xx0:fofType) (Xy0:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx0:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) B))))
% Found functional_extensionality:=(fun (A:Type) (B:Type)=> ((functional_extensionality_dep A) (fun (x1:A)=> B))):(forall (A:Type) (B:Type) (f:(A->B)) (g:(A->B)), ((forall (x:A), (((eq B) (f x)) (g x)))->(((eq (A->B)) f) g)))
% Found functional_extensionality as proof of (forall (A:Type) (B:Type) (f:(A->B)) (g:(A->B)), ((forall (x5:A), (((eq B) (f x5)) (g x5)))->(((eq (A->B)) f) g)))
% Found x2:((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))
% Found x2 as proof of ((and ((ex (fofType->Prop)) (fun (X0:(fofType->Prop))=> ((and (X0 ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X0:(fofType->Prop))=> ((and (X0 ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))))))
% Found conj00:=(conj0 (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))):(((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))->((forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))->((and ((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy))))))
% Found conj00 as proof of (((and (forall (Xx0:fofType) (Xy0:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx0:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))->((forall (Xx0:fofType) (Xy0:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx0) Xy0)))->((and ((and (forall (Xx0:fofType) (Xy0:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx0:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx0:fofType) (Xy0:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx0) Xy0))))))
% Found NNPP:=(fun (P:Prop) (H:(not (not P)))=> ((fun (C:((or P) (not P)))=> ((((((or_ind P) (not P)) P) (fun (H0:P)=> H0)) (fun (N:(not P))=> ((False_rect P) (H N)))) C)) (classic P))):(forall (P:Prop), ((not (not P))->P))
% Found NNPP as proof of (forall (P:Prop), ((not (not P))->P))
% Found x:((and ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cL ((cP Xx) Xy))) Xx)))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cR ((cP Xx) Xy))) Xy)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))) (forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->(((eq fofType) Xt) Xu))))))
% Found x as proof of ((and ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cL ((cP Xx0) Xy0))) Xx0)))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cR ((cP Xx0) Xy0))) Xy0)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))) (forall (X0:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->(((eq fofType) Xt) Xu))))))
% Found eq_ref:=(fun (T:Type) (a:T) (P:(T->Prop)) (x:(P a))=> x):(forall (T:Type) (a:T), (((eq T) a) a))
% Found eq_ref as proof of (forall (T:Type) (a:T), (((eq T) a) a))
% Found x10:=(fun (X:(fofType->Prop)) (x3:(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))=> (((x1 X) x3) Xx)):(forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xu:fofType), ((X ((cP Xx) Xu))->(((eq fofType) Xx) Xu)))))
% Found x10 as proof of (forall (X0:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))->(forall (Xu:fofType), ((X0 ((cP Xx) Xu))->(((eq fofType) Xx) Xu)))))
% Found iff_refl:=(fun (A:Prop)=> ((((conj (A->A)) (A->A)) (fun (H:A)=> H)) (fun (H:A)=> H))):(forall (P:Prop), ((iff P) P))
% Found iff_refl as proof of (forall (P:Prop), ((iff P) P))
% Found ex_ind:(forall (A:Type) (F:(A->Prop)) (P:Prop), ((forall (x:A), ((F x)->P))->(((ex A) F)->P)))
% Found ex_ind as proof of (forall (A:Type) (F:(A->Prop)) (P:Prop), ((forall (x5:A), ((F x5)->P))->(((ex A) F)->P)))
% Found proj2:(forall (A:Prop) (B:Prop), (((and A) B)->B))
% Found proj2 as proof of (forall (A:Prop) (B:Prop), (((and A) B)->B))
% Found eta_expansion:=(fun (A:Type) (B:Type)=> ((eta_expansion_dep A) (fun (x1:A)=> B))):(forall (A:Type) (B:Type) (f:(A->B)), (((eq (A->B)) f) (fun (x:A)=> (f x))))
% Found eta_expansion as proof of (forall (A:Type) (B:Type) (f:(A->B)), (((eq (A->B)) f) (fun (x5:A)=> (f x5))))
% Found x1:(forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->(((eq fofType) Xt) Xu)))))
% Found x1 as proof of (forall (X0:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->(((eq fofType) Xt) Xu)))))
% Found eta_expansion_dep:=(fun (A:Type) (B:(A->Type)) (f:(forall (x:A), (B x)))=> (((((functional_extensionality_dep A) (fun (x1:A)=> (B x1))) f) (fun (x:A)=> (f x))) (fun (x:A) (P:((B x)->Prop)) (x0:(P (f x)))=> x0))):(forall (A:Type) (B:(A->Type)) (f:(forall (x:A), (B x))), (((eq (forall (x:A), (B x))) f) (fun (x:A)=> (f x))))
% Found eta_expansion_dep as proof of (forall (A:Type) (B:(A->Type)) (f:(forall (x5:A), (B x5))), (((eq (forall (x5:A), (B x5))) f) (fun (x5:A)=> (f x5))))
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found iff_refl:=(fun (A:Prop)=> ((((conj (A->A)) (A->A)) (fun (H:A)=> H)) (fun (H:A)=> H))):(forall (P:Prop), ((iff P) P))
% Instantiate: b:=(forall (P:Prop), ((iff P) P)):Prop
% Found iff_refl as proof of b
% Found eq_ref00:=(eq_ref0 (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))):(((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy))))
% Found (eq_ref0 (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found iff_refl:=(fun (A:Prop)=> ((((conj (A->A)) (A->A)) (fun (H:A)=> H)) (fun (H:A)=> H))):(forall (P:Prop), ((iff P) P))
% Instantiate: b:=(forall (P:Prop), ((iff P) P)):Prop
% Found iff_refl as proof of b
% Found eq_ref000:=(eq_ref00 P):((P Xx)->(P Xx))
% Found (eq_ref00 P) as proof of (P0 Xx)
% Found ((eq_ref0 Xx) P) as proof of (P0 Xx)
% Found (((eq_ref fofType) Xx) P) as proof of (P0 Xx)
% Found (((eq_ref fofType) Xx) P) as proof of (P0 Xx)
% Found eq_ref000:=(eq_ref00 P):((P Xx)->(P Xx))
% Found (eq_ref00 P) as proof of (P0 Xx)
% Found ((eq_ref0 Xx) P) as proof of (P0 Xx)
% Found (((eq_ref fofType) Xx) P) as proof of (P0 Xx)
% Found (((eq_ref fofType) Xx) P) as proof of (P0 Xx)
% Found iff_sym:=(fun (A:Prop) (B:Prop) (H:((iff A) B))=> ((((conj (B->A)) (A->B)) (((proj2 (A->B)) (B->A)) H)) (((proj1 (A->B)) (B->A)) H))):(forall (A:Prop) (B:Prop), (((iff A) B)->((iff B) A)))
% Found iff_sym as proof of (forall (A:Prop) (B:Prop), (((iff A) B)->((iff B) A)))
% Found iff_refl:=(fun (A:Prop)=> ((((conj (A->A)) (A->A)) (fun (H:A)=> H)) (fun (H:A)=> H))):(forall (P:Prop), ((iff P) P))
% Found iff_refl as proof of (forall (P:Prop), ((iff P) P))
% Found NNPP:=(fun (P:Prop) (H:(not (not P)))=> ((fun (C:((or P) (not P)))=> ((((((or_ind P) (not P)) P) (fun (H0:P)=> H0)) (fun (N:(not P))=> ((False_rect P) (H N)))) C)) (classic P))):(forall (P:Prop), ((not (not P))->P))
% Found NNPP as proof of (forall (P:Prop), ((not (not P))->P))
% Found conj:(forall (A:Prop) (B:Prop), (A->(B->((and A) B))))
% Found conj as proof of (forall (A:Prop) (B:Prop), (A->(B->((and A) B))))
% Found x2:((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cL ((cP Xx) Xy))) Xx)))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cR ((cP Xx) Xy))) Xy)))
% Found x2 as proof of ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cL ((cP Xx0) Xy0))) Xx0)))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cR ((cP Xx0) Xy0))) Xy0)))
% Found x3:(forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt)))))
% Found x3 as proof of (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt)))))
% Found classical_choice:=(fun (A:Type) (B:Type) (R:(A->(B->Prop))) (b:B)=> ((fun (C:((forall (x:A), ((ex B) (fun (y:B)=> (((fun (x0:A) (y0:B)=> (((ex B) (fun (z:B)=> ((R x0) z)))->((R x0) y0))) x) y))))->((ex (A->B)) (fun (f:(A->B))=> (forall (x:A), (((fun (x0:A) (y:B)=> (((ex B) (fun (z:B)=> ((R x0) z)))->((R x0) y))) x) (f x)))))))=> (C (fun (x:A)=> ((fun (C0:((or ((ex B) (fun (z:B)=> ((R x) z)))) (not ((ex B) (fun (z:B)=> ((R x) z))))))=> ((((((or_ind ((ex B) (fun (z:B)=> ((R x) z)))) (not ((ex B) (fun (z:B)=> ((R x) z))))) ((ex B) (fun (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y))))) ((((ex_ind B) (fun (z:B)=> ((R x) z))) ((ex B) (fun (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y))))) (fun (y:B) (H:((R x) y))=> ((((ex_intro B) (fun (y0:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y0)))) y) (fun (_:((ex B) (fun (z:B)=> ((R x) z))))=> H))))) (fun (N:(not ((ex B) (fun (z:B)=> ((R x) z)))))=> ((((ex_intro B) (fun (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y)))) b) (fun (H:((ex B) (fun (z:B)=> ((R x) z))))=> ((False_rect ((R x) b)) (N H)))))) C0)) (classic ((ex B) (fun (z:B)=> ((R x) z)))))))) (((choice A) B) (fun (x:A) (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y)))))):(forall (A:Type) (B:Type) (R:(A->(B->Prop))), (B->((ex (A->B)) (fun (f:(A->B))=> (forall (x:A), (((ex B) (fun (y:B)=> ((R x) y)))->((R x) (f x))))))))
% Found classical_choice as proof of (forall (A:Type) (B:Type) (R:(A->(B->Prop))), (B->((ex (A->B)) (fun (f:(A->B))=> (forall (x7:A), (((ex B) (fun (y:B)=> ((R x7) y)))->((R x7) (f x7))))))))
% Found proj2:(forall (A:Prop) (B:Prop), (((and A) B)->B))
% Found proj2 as proof of (forall (A:Prop) (B:Prop), (((and A) B)->B))
% Found choice:=(fun (A:Type) (B:Type) (R:(A->(B->Prop))) (x:(forall (x:A), ((ex B) (fun (y:B)=> ((R x) y)))))=> (((fun (P:Prop) (x0:(forall (x0:(A->(B->Prop))), (((and ((((subrelation A) B) x0) R)) (forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y))))))->P)))=> (((((ex_ind (A->(B->Prop))) (fun (R':(A->(B->Prop)))=> ((and ((((subrelation A) B) R') R)) (forall (x0:A), ((ex B) ((unique B) (fun (y:B)=> ((R' x0) y)))))))) P) x0) ((((relational_choice A) B) R) x))) ((ex (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0)))))) (fun (x0:(A->(B->Prop))) (x1:((and ((((subrelation A) B) x0) R)) (forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y)))))))=> (((fun (P:Type) (x2:(((((subrelation A) B) x0) R)->((forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y)))))->P)))=> (((((and_rect ((((subrelation A) B) x0) R)) (forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y)))))) P) x2) x1)) ((ex (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0)))))) (fun (x2:((((subrelation A) B) x0) R)) (x3:(forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y))))))=> (((fun (P:Prop) (x4:(forall (x1:(A->B)), ((forall (x10:A), ((x0 x10) (x1 x10)))->P)))=> (((((ex_ind (A->B)) (fun (f:(A->B))=> (forall (x1:A), ((x0 x1) (f x1))))) P) x4) ((((unique_choice A) B) x0) x3))) ((ex (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0)))))) (fun (x4:(A->B)) (x5:(forall (x10:A), ((x0 x10) (x4 x10))))=> ((((ex_intro (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0))))) x4) (fun (x00:A)=> (((x2 x00) (x4 x00)) (x5 x00))))))))))):(forall (A:Type) (B:Type) (R:(A->(B->Prop))), ((forall (x:A), ((ex B) (fun (y:B)=> ((R x) y))))->((ex (A->B)) (fun (f:(A->B))=> (forall (x:A), ((R x) (f x)))))))
% Found choice as proof of (forall (A:Type) (B:Type) (R:(A->(B->Prop))), ((forall (x7:A), ((ex B) (fun (y:B)=> ((R x7) y))))->((ex (A->B)) (fun (f:(A->B))=> (forall (x7:A), ((R x7) (f x7)))))))
% Found eta_expansion_dep:=(fun (A:Type) (B:(A->Type)) (f:(forall (x:A), (B x)))=> (((((functional_extensionality_dep A) (fun (x1:A)=> (B x1))) f) (fun (x:A)=> (f x))) (fun (x:A) (P:((B x)->Prop)) (x0:(P (f x)))=> x0))):(forall (A:Type) (B:(A->Type)) (f:(forall (x:A), (B x))), (((eq (forall (x:A), (B x))) f) (fun (x:A)=> (f x))))
% Found eta_expansion_dep as proof of (forall (A:Type) (B:(A->Type)) (f:(forall (x7:A), (B x7))), (((eq (forall (x7:A), (B x7))) f) (fun (x7:A)=> (f x7))))
% Found iff_trans:=(fun (A:Prop) (B:Prop) (C:Prop) (AB:((iff A) B)) (BC:((iff B) C))=> ((((conj (A->C)) (C->A)) (fun (x:A)=> ((((proj1 (B->C)) (C->B)) BC) ((((proj1 (A->B)) (B->A)) AB) x)))) (fun (x:C)=> ((((proj2 (A->B)) (B->A)) AB) ((((proj2 (B->C)) (C->B)) BC) x))))):(forall (A:Prop) (B:Prop) (C:Prop), (((iff A) B)->(((iff B) C)->((iff A) C))))
% Found iff_trans as proof of (forall (A:Prop) (B:Prop) (C:Prop), (((iff A) B)->(((iff B) C)->((iff A) C))))
% Found conj00:=(conj0 (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))):(((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))->((forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))->((and ((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy))))))
% Found conj00 as proof of (((and (forall (Xx0:fofType) (Xy0:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx0:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))->((forall (Xx0:fofType) (Xy0:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx0) Xy0)))->((and ((and (forall (Xx0:fofType) (Xy0:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx0:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx0:fofType) (Xy0:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx0) Xy0))))))
% Found x4:((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))
% Found x4 as proof of ((and ((ex (fofType->Prop)) (fun (X0:(fofType->Prop))=> ((and (X0 ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X0:(fofType->Prop))=> ((and (X0 ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))))))
% Found ex_intro:(forall (A:Type) (P:(A->Prop)) (x:A), ((P x)->((ex A) P)))
% Found ex_intro as proof of (forall (A:Type) (P:(A->Prop)) (x40:A), ((P x40)->((ex A) P)))
% Found ex_ind:(forall (A:Type) (F:(A->Prop)) (P:Prop), ((forall (x:A), ((F x)->P))->(((ex A) F)->P)))
% Found ex_ind as proof of (forall (A:Type) (F:(A->Prop)) (P:Prop), ((forall (x7:A), ((F x7)->P))->(((ex A) F)->P)))
% Found eq_trans:=(fun (T:Type) (a:T) (b:T) (c:T) (X:(((eq T) a) b)) (Y:(((eq T) b) c))=> ((Y (fun (t:T)=> (((eq T) a) t))) X)):(forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) b) c)->(((eq T) a) c))))
% Found eq_trans as proof of (forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) b) c)->(((eq T) a) c))))
% Found functional_extensionality_dep:(forall (A:Type) (B:(A->Type)) (f:(forall (x:A), (B x))) (g:(forall (x:A), (B x))), ((forall (x:A), (((eq (B x)) (f x)) (g x)))->(((eq (forall (x:A), (B x))) f) g)))
% Found functional_extensionality_dep as proof of (forall (A:Type) (B:(A->Type)) (f:(forall (x7:A), (B x7))) (g:(forall (x7:A), (B x7))), ((forall (x7:A), (((eq (B x7)) (f x7)) (g x7)))->(((eq (forall (x7:A), (B x7))) f) g)))
% Found eq_ref:=(fun (T:Type) (a:T) (P:(T->Prop)) (x:(P a))=> x):(forall (T:Type) (a:T), (((eq T) a) a))
% Found eq_ref as proof of (forall (T:Type) (a:T), (((eq T) a) a))
% Found and_comm_i:=(fun (A:Prop) (B:Prop) (H:((and A) B))=> ((((conj B) A) (((proj2 A) B) H)) (((proj1 A) B) H))):(forall (A:Prop) (B:Prop), (((and A) B)->((and B) A)))
% Found and_comm_i as proof of (forall (A:Prop) (B:Prop), (((and A) B)->((and B) A)))
% Found x10:=(fun (X:(fofType->Prop)) (x5:(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))=> (((x1 X) x5) Xx)):(forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xu:fofType), ((X ((cP Xx) Xu))->(((eq fofType) Xx) Xu)))))
% Found x10 as proof of (forall (X0:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))->(forall (Xu:fofType), ((X0 ((cP Xx) Xu))->(((eq fofType) Xx) Xu)))))
% Found choice_operator:=(fun (A:Type) (a:A)=> ((((classical_choice (A->Prop)) A) (fun (x3:(A->Prop))=> x3)) a)):(forall (A:Type), (A->((ex ((A->Prop)->A)) (fun (co:((A->Prop)->A))=> (forall (P:(A->Prop)), (((ex A) (fun (x:A)=> (P x)))->(P (co P))))))))
% Found choice_operator as proof of (forall (A:Type), (A->((ex ((A->Prop)->A)) (fun (co:((A->Prop)->A))=> (forall (P:(A->Prop)), (((ex A) (fun (x7:A)=> (P x7)))->(P (co P))))))))
% Found x0:((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cL ((cP Xx) Xy))) Xx)))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cR ((cP Xx) Xy))) Xy)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))
% Found x0 as proof of ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cL ((cP Xx0) Xy0))) Xx0)))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cR ((cP Xx0) Xy0))) Xy0)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))
% Found eq_sym:=(fun (T:Type) (a:T) (b:T) (H:(((eq T) a) b))=> ((H (fun (x:T)=> (((eq T) x) a))) ((eq_ref T) a))):(forall (T:Type) (a:T) (b:T), ((((eq T) a) b)->(((eq T) b) a)))
% Found eq_sym as proof of (forall (T:Type) (a:T) (b:T), ((((eq T) a) b)->(((eq T) b) a)))
% Found conj0:=(conj ((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))):(forall (B:Prop), (((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))->(B->((and ((and (forall (Xx:fofType) (Xy:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) B))))
% Found conj0 as proof of (forall (B:Prop), (((and (forall (Xx0:fofType) (Xy0:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx0:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))->(B->((and ((and (forall (Xx0:fofType) (Xy0:fofType) (Xz:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xy0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xz))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) (forall (Xx0:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx0) Xx0))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))) B))))
% Found x1:(forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->(((eq fofType) Xt) Xu)))))
% Found x1 as proof of (forall (X0:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->(((eq fofType) Xt) Xu)))))
% Found functional_extensionality:=(fun (A:Type) (B:Type)=> ((functional_extensionality_dep A) (fun (x1:A)=> B))):(forall (A:Type) (B:Type) (f:(A->B)) (g:(A->B)), ((forall (x:A), (((eq B) (f x)) (g x)))->(((eq (A->B)) f) g)))
% Found functional_extensionality as proof of (forall (A:Type) (B:Type) (f:(A->B)) (g:(A->B)), ((forall (x7:A), (((eq B) (f x7)) (g x7)))->(((eq (A->B)) f) g)))
% Found eq_substitution:=(fun (T:Type) (U:Type) (a:T) (b:T) (f:(T->U)) (H:(((eq T) a) b))=> ((H (fun (x:T)=> (((eq U) (f a)) (f x)))) ((eq_ref U) (f a)))):(forall (T:Type) (U:Type) (a:T) (b:T) (f:(T->U)), ((((eq T) a) b)->(((eq U) (f a)) (f b))))
% Found eq_substitution as proof of (forall (T:Type) (U:Type) (a:T) (b:T) (f:(T->U)), ((((eq T) a) b)->(((eq U) (f a)) (f b))))
% Found eq_stepl:=(fun (T:Type) (a:T) (b:T) (c:T) (X:(((eq T) a) b)) (Y:(((eq T) a) c))=> ((((((eq_trans T) c) a) b) ((((eq_sym T) a) c) Y)) X)):(forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) a) c)->(((eq T) c) b))))
% Found eq_stepl as proof of (forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) a) c)->(((eq T) c) b))))
% Found eta_expansion:=(fun (A:Type) (B:Type)=> ((eta_expansion_dep A) (fun (x1:A)=> B))):(forall (A:Type) (B:Type) (f:(A->B)), (((eq (A->B)) f) (fun (x:A)=> (f x))))
% Found eta_expansion as proof of (forall (A:Type) (B:Type) (f:(A->B)), (((eq (A->B)) f) (fun (x7:A)=> (f x7))))
% Found functional_extensionality_double:=(fun (A:Type) (B:Type) (C:Type) (f:(A->(B->C))) (g:(A->(B->C))) (x:(forall (x:A) (y:B), (((eq C) ((f x) y)) ((g x) y))))=> (((((functional_extensionality_dep A) (fun (x2:A)=> (B->C))) f) g) (fun (x0:A)=> (((((functional_extensionality_dep B) (fun (x3:B)=> C)) (f x0)) (g x0)) (x x0))))):(forall (A:Type) (B:Type) (C:Type) (f:(A->(B->C))) (g:(A->(B->C))), ((forall (x:A) (y:B), (((eq C) ((f x) y)) ((g x) y)))->(((eq (A->(B->C))) f) g)))
% Found functional_extensionality_double as proof of (forall (A:Type) (B:Type) (C:Type) (f:(A->(B->C))) (g:(A->(B->C))), ((forall (x7:A) (y:B), (((eq C) ((f x7) y)) ((g x7) y)))->(((eq (A->(B->C))) f) g)))
% Found proj1:(forall (A:Prop) (B:Prop), (((and A) B)->A))
% Found proj1 as proof of (forall (A:Prop) (B:Prop), (((and A) B)->A))
% Found x:((and ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cL ((cP Xx) Xy))) Xx)))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cR ((cP Xx) Xy))) Xy)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))) (forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->(((eq fofType) Xt) Xu))))))
% Found x as proof of ((and ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cL ((cP Xx0) Xy0))) Xx0)))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cR ((cP Xx0) Xy0))) Xy0)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))) (forall (X0:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->(((eq fofType) Xt) Xu))))))
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found x2:((and ((ex (fofType->Prop)) (fun (X0:(fofType->Prop))=> ((and (X0 ((cP Xx) Xy))) (forall (Xt0:fofType) (Xu0:fofType), ((X0 ((cP Xt0) Xu0))->((and ((and ((((eq fofType) Xu0) cZ)->(((eq fofType) Xt0) cZ))) (X0 ((cP (cL Xt0)) (cL Xu0))))) (X0 ((cP (cR Xt0)) (cR Xu0)))))))))) ((ex (fofType->Prop)) (fun (X0:(fofType->Prop))=> ((and (X0 ((cP Xy) Xx))) (forall (Xt0:fofType) (Xu0:fofType), ((X0 ((cP Xt0) Xu0))->((and ((and ((((eq fofType) Xu0) cZ)->(((eq fofType) Xt0) cZ))) (X0 ((cP (cL Xt0)) (cL Xu0))))) (X0 ((cP (cR Xt0)) (cR Xu0))))))))))
% Found x2 as proof of ((and ((ex (fofType->Prop)) (fun (X0:(fofType->Prop))=> ((and (X0 ((cP Xx) Xy))) (forall (Xt0:fofType) (Xu0:fofType), ((X0 ((cP Xt0) Xu0))->((and ((and ((((eq fofType) Xu0) cZ)->(((eq fofType) Xt0) cZ))) (X0 ((cP (cL Xt0)) (cL Xu0))))) (X0 ((cP (cR Xt0)) (cR Xu0)))))))))) ((ex (fofType->Prop)) (fun (X0:(fofType->Prop))=> ((and (X0 ((cP Xy) Xx))) (forall (Xt0:fofType) (Xu0:fofType), ((X0 ((cP Xt0) Xu0))->((and ((and ((((eq fofType) Xu0) cZ)->(((eq fofType) Xt0) cZ))) (X0 ((cP (cL Xt0)) (cL Xu0))))) (X0 ((cP (cR Xt0)) (cR Xu0))))))))))
% Found eq_ref000:=(eq_ref00 P):((P Xx)->(P Xx))
% Found (eq_ref00 P) as proof of (P0 Xx)
% Found ((eq_ref0 Xx) P) as proof of (P0 Xx)
% Found (((eq_ref fofType) Xx) P) as proof of (P0 Xx)
% Found (((eq_ref fofType) Xx) P) as proof of (P0 Xx)
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (((eq fofType) Xy) b)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) b)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) b)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) Xx)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xx)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xx)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xx)
% Found or_ind:(forall (A:Prop) (B:Prop) (P:Prop), ((A->P)->((B->P)->(((or A) B)->P))))
% Instantiate: b:=(forall (A:Prop) (B:Prop) (P:Prop), ((A->P)->((B->P)->(((or A) B)->P)))):Prop
% Found or_ind as proof of b
% Found x6:(((eq fofType) Xt) cZ)
% Found x6 as proof of (((eq fofType) Xt) cZ)
% Found x:((and ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cL ((cP Xx) Xy))) Xx)))) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (cR ((cP Xx) Xy))) Xy)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))) (forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->(((eq fofType) Xt) Xu))))))
% Found x as proof of ((and ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cL ((cP Xx0) Xy0))) Xx0)))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cR ((cP Xx0) Xy0))) Xy0)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))) (forall (X0:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->(((eq fofType) Xt) Xu))))))
% Found functional_extensionality_double:=(fun (A:Type) (B:Type) (C:Type) (f:(A->(B->C))) (g:(A->(B->C))) (x:(forall (x:A) (y:B), (((eq C) ((f x) y)) ((g x) y))))=> (((((functional_extensionality_dep A) (fun (x2:A)=> (B->C))) f) g) (fun (x0:A)=> (((((functional_extensionality_dep B) (fun (x3:B)=> C)) (f x0)) (g x0)) (x x0))))):(forall (A:Type) (B:Type) (C:Type) (f:(A->(B->C))) (g:(A->(B->C))), ((forall (x:A) (y:B), (((eq C) ((f x) y)) ((g x) y)))->(((eq (A->(B->C))) f) g)))
% Found functional_extensionality_double as proof of (forall (A:Type) (B:Type) (C:Type) (f:(A->(B->C))) (g:(A->(B->C))), ((forall (x5:A) (y:B), (((eq C) ((f x5) y)) ((g x5) y)))->(((eq (A->(B->C))) f) g)))
% Found eq_trans:=(fun (T:Type) (a:T) (b:T) (c:T) (X:(((eq T) a) b)) (Y:(((eq T) b) c))=> ((Y (fun (t:T)=> (((eq T) a) t))) X)):(forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) b) c)->(((eq T) a) c))))
% Found eq_trans as proof of (forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) b) c)->(((eq T) a) c))))
% Found eq_ref:=(fun (T:Type) (a:T) (P:(T->Prop)) (x:(P a))=> x):(forall (T:Type) (a:T), (((eq T) a) a))
% Found eq_ref as proof of (forall (T:Type) (a:T), (((eq T) a) a))
% Found iff_sym:=(fun (A:Prop) (B:Prop) (H:((iff A) B))=> ((((conj (B->A)) (A->B)) (((proj2 (A->B)) (B->A)) H)) (((proj1 (A->B)) (B->A)) H))):(forall (A:Prop) (B:Prop), (((iff A) B)->((iff B) A)))
% Found iff_sym as proof of (forall (A:Prop) (B:Prop), (((iff A) B)->((iff B) A)))
% Found and_rect00:=(and_rect0 (((eq fofType) Xx) Xy)):((((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cL ((cP Xx0) Xy0))) Xx0)))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cR ((cP Xx0) Xy0))) Xy0)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))->((forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->(((eq fofType) Xt) Xu)))))->(((eq fofType) Xx) Xy)))->(((eq fofType) Xx) Xy))
% Found and_rect00 as proof of ((((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cL ((cP Xx0) Xy0))) Xx0)))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cR ((cP Xx0) Xy0))) Xy0)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))->((forall (X0:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->(((eq fofType) Xt) Xu)))))->(((eq fofType) Xx) Xy)))->(((eq fofType) Xx) Xy))
% Found choice_operator:=(fun (A:Type) (a:A)=> ((((classical_choice (A->Prop)) A) (fun (x3:(A->Prop))=> x3)) a)):(forall (A:Type), (A->((ex ((A->Prop)->A)) (fun (co:((A->Prop)->A))=> (forall (P:(A->Prop)), (((ex A) (fun (x:A)=> (P x)))->(P (co P))))))))
% Found choice_operator as proof of (forall (A:Type), (A->((ex ((A->Prop)->A)) (fun (co:((A->Prop)->A))=> (forall (P:(A->Prop)), (((ex A) (fun (x5:A)=> (P x5)))->(P (co P))))))))
% Found conj:(forall (A:Prop) (B:Prop), (A->(B->((and A) B))))
% Found conj as proof of (forall (A:Prop) (B:Prop), (A->(B->((and A) B))))
% Found proj2:(forall (A:Prop) (B:Prop), (((and A) B)->B))
% Found proj2 as proof of (forall (A:Prop) (B:Prop), (((and A) B)->B))
% Found eq_sym:=(fun (T:Type) (a:T) (b:T) (H:(((eq T) a) b))=> ((H (fun (x:T)=> (((eq T) x) a))) ((eq_ref T) a))):(forall (T:Type) (a:T) (b:T), ((((eq T) a) b)->(((eq T) b) a)))
% Found eq_sym as proof of (forall (T:Type) (a:T) (b:T), ((((eq T) a) b)->(((eq T) b) a)))
% Found iff_refl:=(fun (A:Prop)=> ((((conj (A->A)) (A->A)) (fun (H:A)=> H)) (fun (H:A)=> H))):(forall (P:Prop), ((iff P) P))
% Found iff_refl as proof of (forall (P:Prop), ((iff P) P))
% Found x20:=(fun (X:(fofType->Prop)) (x3:(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))=> (((x2 X) x3) Xx)):(forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xu:fofType), ((X ((cP Xx) Xu))->(((eq fofType) Xx) Xu)))))
% Found x20 as proof of (forall (X0:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))->(forall (Xu:fofType), ((X0 ((cP Xx) Xu))->(((eq fofType) Xx) Xu)))))
% Found ex_intro:(forall (A:Type) (P:(A->Prop)) (x:A), ((P x)->((ex A) P)))
% Found ex_intro as proof of (forall (A:Type) (P:(A->Prop)) (x10:A), ((P x10)->((ex A) P)))
% Found x1:((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cL ((cP Xx0) Xy0))) Xx0)))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cR ((cP Xx0) Xy0))) Xy0)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))
% Found x1 as proof of ((and ((and ((and ((and (((eq fofType) (cL cZ)) cZ)) (((eq fofType) (cR cZ)) cZ))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cL ((cP Xx0) Xy0))) Xx0)))) (forall (Xx0:fofType) (Xy0:fofType), (((eq fofType) (cR ((cP Xx0) Xy0))) Xy0)))) (forall (Xt:fofType), ((iff (not (((eq fofType) Xt) cZ))) (((eq fofType) Xt) ((cP (cL Xt)) (cR Xt))))))
% Found classical_choice:=(fun (A:Type) (B:Type) (R:(A->(B->Prop))) (b:B)=> ((fun (C:((forall (x:A), ((ex B) (fun (y:B)=> (((fun (x0:A) (y0:B)=> (((ex B) (fun (z:B)=> ((R x0) z)))->((R x0) y0))) x) y))))->((ex (A->B)) (fun (f:(A->B))=> (forall (x:A), (((fun (x0:A) (y:B)=> (((ex B) (fun (z:B)=> ((R x0) z)))->((R x0) y))) x) (f x)))))))=> (C (fun (x:A)=> ((fun (C0:((or ((ex B) (fun (z:B)=> ((R x) z)))) (not ((ex B) (fun (z:B)=> ((R x) z))))))=> ((((((or_ind ((ex B) (fun (z:B)=> ((R x) z)))) (not ((ex B) (fun (z:B)=> ((R x) z))))) ((ex B) (fun (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y))))) ((((ex_ind B) (fun (z:B)=> ((R x) z))) ((ex B) (fun (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y))))) (fun (y:B) (H:((R x) y))=> ((((ex_intro B) (fun (y0:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y0)))) y) (fun (_:((ex B) (fun (z:B)=> ((R x) z))))=> H))))) (fun (N:(not ((ex B) (fun (z:B)=> ((R x) z)))))=> ((((ex_intro B) (fun (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y)))) b) (fun (H:((ex B) (fun (z:B)=> ((R x) z))))=> ((False_rect ((R x) b)) (N H)))))) C0)) (classic ((ex B) (fun (z:B)=> ((R x) z)))))))) (((choice A) B) (fun (x:A) (y:B)=> (((ex B) (fun (z:B)=> ((R x) z)))->((R x) y)))))):(forall (A:Type) (B:Type) (R:(A->(B->Prop))), (B->((ex (A->B)) (fun (f:(A->B))=> (forall (x:A), (((ex B) (fun (y:B)=> ((R x) y)))->((R x) (f x))))))))
% Found classical_choice as proof of (forall (A:Type) (B:Type) (R:(A->(B->Prop))), (B->((ex (A->B)) (fun (f:(A->B))=> (forall (x5:A), (((ex B) (fun (y:B)=> ((R x5) y)))->((R x5) (f x5))))))))
% Found NNPP:=(fun (P:Prop) (H:(not (not P)))=> ((fun (C:((or P) (not P)))=> ((((((or_ind P) (not P)) P) (fun (H0:P)=> H0)) (fun (N:(not P))=> ((False_rect P) (H N)))) C)) (classic P))):(forall (P:Prop), ((not (not P))->P))
% Found NNPP as proof of (forall (P:Prop), ((not (not P))->P))
% Found proj1:(forall (A:Prop) (B:Prop), (((and A) B)->A))
% Found proj1 as proof of (forall (A:Prop) (B:Prop), (((and A) B)->A))
% Found iff_trans:=(fun (A:Prop) (B:Prop) (C:Prop) (AB:((iff A) B)) (BC:((iff B) C))=> ((((conj (A->C)) (C->A)) (fun (x:A)=> ((((proj1 (B->C)) (C->B)) BC) ((((proj1 (A->B)) (B->A)) AB) x)))) (fun (x:C)=> ((((proj2 (A->B)) (B->A)) AB) ((((proj2 (B->C)) (C->B)) BC) x))))):(forall (A:Prop) (B:Prop) (C:Prop), (((iff A) B)->(((iff B) C)->((iff A) C))))
% Found iff_trans as proof of (forall (A:Prop) (B:Prop) (C:Prop), (((iff A) B)->(((iff B) C)->((iff A) C))))
% Found functional_extensionality:=(fun (A:Type) (B:Type)=> ((functional_extensionality_dep A) (fun (x1:A)=> B))):(forall (A:Type) (B:Type) (f:(A->B)) (g:(A->B)), ((forall (x:A), (((eq B) (f x)) (g x)))->(((eq (A->B)) f) g)))
% Found functional_extensionality as proof of (forall (A:Type) (B:Type) (f:(A->B)) (g:(A->B)), ((forall (x5:A), (((eq B) (f x5)) (g x5)))->(((eq (A->B)) f) g)))
% Found functional_extensionality_dep:(forall (A:Type) (B:(A->Type)) (f:(forall (x:A), (B x))) (g:(forall (x:A), (B x))), ((forall (x:A), (((eq (B x)) (f x)) (g x)))->(((eq (forall (x:A), (B x))) f) g)))
% Found functional_extensionality_dep as proof of (forall (A:Type) (B:(A->Type)) (f:(forall (x5:A), (B x5))) (g:(forall (x5:A), (B x5))), ((forall (x5:A), (((eq (B x5)) (f x5)) (g x5)))->(((eq (forall (x5:A), (B x5))) f) g)))
% Found eq_substitution:=(fun (T:Type) (U:Type) (a:T) (b:T) (f:(T->U)) (H:(((eq T) a) b))=> ((H (fun (x:T)=> (((eq U) (f a)) (f x)))) ((eq_ref U) (f a)))):(forall (T:Type) (U:Type) (a:T) (b:T) (f:(T->U)), ((((eq T) a) b)->(((eq U) (f a)) (f b))))
% Found eq_substitution as proof of (forall (T:Type) (U:Type) (a:T) (b:T) (f:(T->U)), ((((eq T) a) b)->(((eq U) (f a)) (f b))))
% Found eta_expansion_dep:=(fun (A:Type) (B:(A->Type)) (f:(forall (x:A), (B x)))=> (((((functional_extensionality_dep A) (fun (x1:A)=> (B x1))) f) (fun (x:A)=> (f x))) (fun (x:A) (P:((B x)->Prop)) (x0:(P (f x)))=> x0))):(forall (A:Type) (B:(A->Type)) (f:(forall (x:A), (B x))), (((eq (forall (x:A), (B x))) f) (fun (x:A)=> (f x))))
% Found eta_expansion_dep as proof of (forall (A:Type) (B:(A->Type)) (f:(forall (x5:A), (B x5))), (((eq (forall (x5:A), (B x5))) f) (fun (x5:A)=> (f x5))))
% Found and_comm_i:=(fun (A:Prop) (B:Prop) (H:((and A) B))=> ((((conj B) A) (((proj2 A) B) H)) (((proj1 A) B) H))):(forall (A:Prop) (B:Prop), (((and A) B)->((and B) A)))
% Found and_comm_i as proof of (forall (A:Prop) (B:Prop), (((and A) B)->((and B) A)))
% Found eta_expansion:=(fun (A:Type) (B:Type)=> ((eta_expansion_dep A) (fun (x1:A)=> B))):(forall (A:Type) (B:Type) (f:(A->B)), (((eq (A->B)) f) (fun (x:A)=> (f x))))
% Found eta_expansion as proof of (forall (A:Type) (B:Type) (f:(A->B)), (((eq (A->B)) f) (fun (x5:A)=> (f x5))))
% Found x2:(forall (X:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->(((eq fofType) Xt) Xu)))))
% Found x2 as proof of (forall (X0:(fofType->Prop)), ((forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((iff (((eq fofType) Xt) cZ)) (((eq fofType) Xu) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))->(forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->(((eq fofType) Xt) Xu)))))
% Found choice:=(fun (A:Type) (B:Type) (R:(A->(B->Prop))) (x:(forall (x:A), ((ex B) (fun (y:B)=> ((R x) y)))))=> (((fun (P:Prop) (x0:(forall (x0:(A->(B->Prop))), (((and ((((subrelation A) B) x0) R)) (forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y))))))->P)))=> (((((ex_ind (A->(B->Prop))) (fun (R':(A->(B->Prop)))=> ((and ((((subrelation A) B) R') R)) (forall (x0:A), ((ex B) ((unique B) (fun (y:B)=> ((R' x0) y)))))))) P) x0) ((((relational_choice A) B) R) x))) ((ex (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0)))))) (fun (x0:(A->(B->Prop))) (x1:((and ((((subrelation A) B) x0) R)) (forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y)))))))=> (((fun (P:Type) (x2:(((((subrelation A) B) x0) R)->((forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y)))))->P)))=> (((((and_rect ((((subrelation A) B) x0) R)) (forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y)))))) P) x2) x1)) ((ex (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0)))))) (fun (x2:((((subrelation A) B) x0) R)) (x3:(forall (x00:A), ((ex B) ((unique B) (fun (y:B)=> ((x0 x00) y))))))=> (((fun (P:Prop) (x4:(forall (x1:(A->B)), ((forall (x10:A), ((x0 x10) (x1 x10)))->P)))=> (((((ex_ind (A->B)) (fun (f:(A->B))=> (forall (x1:A), ((x0 x1) (f x1))))) P) x4) ((((unique_choice A) B) x0) x3))) ((ex (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0)))))) (fun (x4:(A->B)) (x5:(forall (x10:A), ((x0 x10) (x4 x10))))=> ((((ex_intro (A->B)) (fun (f:(A->B))=> (forall (x0:A), ((R x0) (f x0))))) x4) (fun (x00:A)=> (((x2 x00) (x4 x00)) (x5 x00))))))))))):(forall (A:Type) (B:Type) (R:(A->(B->Prop))), ((forall (x:A), ((ex B) (fun (y:B)=> ((R x) y))))->((ex (A->B)) (fun (f:(A->B))=> (forall (x:A), ((R x) (f x)))))))
% Found choice as proof of (forall (A:Type) (B:Type) (R:(A->(B->Prop))), ((forall (x5:A), ((ex B) (fun (y:B)=> ((R x5) y))))->((ex (A->B)) (fun (f:(A->B))=> (forall (x5:A), ((R x5) (f x5)))))))
% Found x0:((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))
% Found x0 as proof of ((and ((ex (fofType->Prop)) (fun (X0:(fofType->Prop))=> ((and (X0 ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X0:(fofType->Prop))=> ((and (X0 ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X0 ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X0 ((cP (cL Xt)) (cL Xu))))) (X0 ((cP (cR Xt)) (cR Xu))))))))))
% Found eq_stepl:=(fun (T:Type) (a:T) (b:T) (c:T) (X:(((eq T) a) b)) (Y:(((eq T) a) c))=> ((((((eq_trans T) c) a) b) ((((eq_sym T) a) c) Y)) X)):(forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) a) c)->(((eq T) c) b))))
% Found eq_stepl as proof of (forall (T:Type) (a:T) (b:T) (c:T), ((((eq T) a) b)->((((eq T) a) c)->(((eq T) c) b))))
% Found ex_ind:(forall (A:Type) (F:(A->Prop)) (P:Prop), ((forall (x:A), ((F x)->P))->(((ex A) F)->P)))
% Found ex_ind as proof of (forall (A:Type) (F:(A->Prop)) (P:Prop), ((forall (x5:A), ((F x5)->P))->(((ex A) F)->P)))
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) Xy)
% Found eq_ref00:=(eq_ref0 (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))):(((eq Prop) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))))
% Found (eq_ref0 (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))) as proof of (((eq Prop) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))) as proof of (((eq Prop) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))) as proof of (((eq Prop) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))) as proof of (((eq Prop) (forall (Xx:fofType), ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))) b)
% Found eq_ref00:=(eq_ref0 (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))):(((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy))))
% Found (eq_ref0 (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) b)
% Found ((eq_ref Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xx) Xy))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu)))))))))) ((ex (fofType->Prop)) (fun (X:(fofType->Prop))=> ((and (X ((cP Xy) Xx))) (forall (Xt:fofType) (Xu:fofType), ((X ((cP Xt) Xu))->((and ((and ((((eq fofType) Xu) cZ)->(((eq fofType) Xt) cZ))) (X ((cP (cL Xt)) (cL Xu))))) (X ((cP (cR Xt)) (cR Xu))))))))))->(((eq fofType) Xx) Xy)))) as proof of (((eq Prop) (forall (Xx:fofType) (Xy:fofType), (((and ((ex (fof
% EOF
%------------------------------------------------------------------------------