TSTP Solution File: SEU655^2 by cocATP---0.2.0

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : cocATP---0.2.0
% Problem  : SEU655^2 : TPTP v6.1.0. Released v3.7.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : python CASC.py /export/starexec/sandbox/benchmark/theBenchmark.p

% Computer : n090.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:32:43 EDT 2014

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

% Comments : 
%------------------------------------------------------------------------------
%----NO SOLUTION OUTPUT BY SYSTEM
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% % Problem  : SEU655^2 : TPTP v6.1.0. Released v3.7.0.
% % Command  : python CASC.py /export/starexec/sandbox/benchmark/theBenchmark.p
% % Computer : n090.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:03:36 CDT 2014
% % CPUTime  : 300.04 
% 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 0xe03ef0>, <kernel.DependentProduct object at 0xe037e8>) of role type named in_type
% Using role type
% Declaring in:(fofType->(fofType->Prop))
% FOF formula (<kernel.Constant object at 0xe03f38>, <kernel.Single object at 0xe03488>) of role type named emptyset_type
% Using role type
% Declaring emptyset:fofType
% FOF formula (<kernel.Constant object at 0xe037e8>, <kernel.DependentProduct object at 0xe03ab8>) of role type named setadjoin_type
% Using role type
% Declaring setadjoin:(fofType->(fofType->fofType))
% FOF formula (<kernel.Constant object at 0xe03dd0>, <kernel.DependentProduct object at 0xe03d40>) of role type named setunion_type
% Using role type
% Declaring setunion:(fofType->fofType)
% FOF formula (<kernel.Constant object at 0xe03638>, <kernel.DependentProduct object at 0xe03758>) of role type named dsetconstr_type
% Using role type
% Declaring dsetconstr:(fofType->((fofType->Prop)->fofType))
% FOF formula (<kernel.Constant object at 0xe03710>, <kernel.DependentProduct object at 0xe037a0>) of role type named iskpair_type
% Using role type
% Declaring iskpair:(fofType->Prop)
% FOF formula (((eq (fofType->Prop)) iskpair) (fun (A:fofType)=> ((ex fofType) (fun (Xx:fofType)=> ((and ((in Xx) (setunion A))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion A))) (((eq fofType) A) ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset))))))))))) of role definition named iskpair
% A new definition: (((eq (fofType->Prop)) iskpair) (fun (A:fofType)=> ((ex fofType) (fun (Xx:fofType)=> ((and ((in Xx) (setunion A))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion A))) (((eq fofType) A) ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset)))))))))))
% Defined: iskpair:=(fun (A:fofType)=> ((ex fofType) (fun (Xx:fofType)=> ((and ((in Xx) (setunion A))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion A))) (((eq fofType) A) ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset))))))))))
% FOF formula (<kernel.Constant object at 0xe037a0>, <kernel.DependentProduct object at 0xe03758>) of role type named kpair_type
% Using role type
% Declaring kpair:(fofType->(fofType->fofType))
% FOF formula (((eq (fofType->(fofType->fofType))) kpair) (fun (Xx:fofType) (Xy:fofType)=> ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset)))) of role definition named kpair
% A new definition: (((eq (fofType->(fofType->fofType))) kpair) (fun (Xx:fofType) (Xy:fofType)=> ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset))))
% Defined: kpair:=(fun (Xx:fofType) (Xy:fofType)=> ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset)))
% FOF formula (<kernel.Constant object at 0xe03b90>, <kernel.DependentProduct object at 0xe03680>) of role type named singleton_type
% Using role type
% Declaring singleton:(fofType->Prop)
% FOF formula (((eq (fofType->Prop)) singleton) (fun (A:fofType)=> ((ex fofType) (fun (Xx:fofType)=> ((and ((in Xx) A)) (((eq fofType) A) ((setadjoin Xx) emptyset))))))) of role definition named singleton
% A new definition: (((eq (fofType->Prop)) singleton) (fun (A:fofType)=> ((ex fofType) (fun (Xx:fofType)=> ((and ((in Xx) A)) (((eq fofType) A) ((setadjoin Xx) emptyset)))))))
% Defined: singleton:=(fun (A:fofType)=> ((ex fofType) (fun (Xx:fofType)=> ((and ((in Xx) A)) (((eq fofType) A) ((setadjoin Xx) emptyset))))))
% FOF formula (<kernel.Constant object at 0xe037a0>, <kernel.DependentProduct object at 0x1011b00>) of role type named ex1_type
% Using role type
% Declaring ex1:(fofType->((fofType->Prop)->Prop))
% FOF formula (((eq (fofType->((fofType->Prop)->Prop))) ex1) (fun (A:fofType) (Xphi:(fofType->Prop))=> (singleton ((dsetconstr A) (fun (Xx:fofType)=> (Xphi Xx)))))) of role definition named ex1
% A new definition: (((eq (fofType->((fofType->Prop)->Prop))) ex1) (fun (A:fofType) (Xphi:(fofType->Prop))=> (singleton ((dsetconstr A) (fun (Xx:fofType)=> (Xphi Xx))))))
% Defined: ex1:=(fun (A:fofType) (Xphi:(fofType->Prop))=> (singleton ((dsetconstr A) (fun (Xx:fofType)=> (Xphi Xx)))))
% FOF formula (<kernel.Constant object at 0xe03b90>, <kernel.Sort object at 0xce6dd0>) of role type named ex1I_type
% Using role type
% Declaring ex1I:Prop
% FOF formula (((eq Prop) ex1I) (forall (A:fofType) (Xphi:(fofType->Prop)) (Xx:fofType), (((in Xx) A)->((Xphi Xx)->((forall (Xy:fofType), (((in Xy) A)->((Xphi Xy)->(((eq fofType) Xy) Xx))))->((ex1 A) (fun (Xy:fofType)=> (Xphi Xy)))))))) of role definition named ex1I
% A new definition: (((eq Prop) ex1I) (forall (A:fofType) (Xphi:(fofType->Prop)) (Xx:fofType), (((in Xx) A)->((Xphi Xx)->((forall (Xy:fofType), (((in Xy) A)->((Xphi Xy)->(((eq fofType) Xy) Xx))))->((ex1 A) (fun (Xy:fofType)=> (Xphi Xy))))))))
% Defined: ex1I:=(forall (A:fofType) (Xphi:(fofType->Prop)) (Xx:fofType), (((in Xx) A)->((Xphi Xx)->((forall (Xy:fofType), (((in Xy) A)->((Xphi Xy)->(((eq fofType) Xy) Xx))))->((ex1 A) (fun (Xy:fofType)=> (Xphi Xy)))))))
% FOF formula (<kernel.Constant object at 0xe03758>, <kernel.DependentProduct object at 0x1011ab8>) of role type named kfst_type
% Using role type
% Declaring kfst:(fofType->fofType)
% FOF formula (<kernel.Constant object at 0xe03b90>, <kernel.Sort object at 0xce6dd0>) of role type named kfstpairEq_type
% Using role type
% Declaring kfstpairEq:Prop
% FOF formula (((eq Prop) kfstpairEq) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (kfst ((kpair Xx) Xy))) Xx))) of role definition named kfstpairEq
% A new definition: (((eq Prop) kfstpairEq) (forall (Xx:fofType) (Xy:fofType), (((eq fofType) (kfst ((kpair Xx) Xy))) Xx)))
% Defined: kfstpairEq:=(forall (Xx:fofType) (Xy:fofType), (((eq fofType) (kfst ((kpair Xx) Xy))) Xx))
% FOF formula (<kernel.Constant object at 0xe03b90>, <kernel.Sort object at 0xce6dd0>) of role type named setukpairinjR_type
% Using role type
% Declaring setukpairinjR:Prop
% FOF formula (((eq Prop) setukpairinjR) (forall (Xx:fofType) (Xy:fofType) (Xz:fofType) (Xu:fofType), ((((eq fofType) ((kpair Xx) Xy)) ((kpair Xz) Xu))->(((eq fofType) Xy) Xu)))) of role definition named setukpairinjR
% A new definition: (((eq Prop) setukpairinjR) (forall (Xx:fofType) (Xy:fofType) (Xz:fofType) (Xu:fofType), ((((eq fofType) ((kpair Xx) Xy)) ((kpair Xz) Xu))->(((eq fofType) Xy) Xu))))
% Defined: setukpairinjR:=(forall (Xx:fofType) (Xy:fofType) (Xz:fofType) (Xu:fofType), ((((eq fofType) ((kpair Xx) Xy)) ((kpair Xz) Xu))->(((eq fofType) Xy) Xu)))
% FOF formula (ex1I->(kfstpairEq->(setukpairinjR->(forall (Xu:fofType), ((iskpair Xu)->(singleton ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))))))) of role conjecture named ksndsingleton
% Conjecture to prove = (ex1I->(kfstpairEq->(setukpairinjR->(forall (Xu:fofType), ((iskpair Xu)->(singleton ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))))))):Prop
% We need to prove ['(ex1I->(kfstpairEq->(setukpairinjR->(forall (Xu:fofType), ((iskpair Xu)->(singleton ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))))))))']
% Parameter fofType:Type.
% Parameter in:(fofType->(fofType->Prop)).
% Parameter emptyset:fofType.
% Parameter setadjoin:(fofType->(fofType->fofType)).
% Parameter setunion:(fofType->fofType).
% Parameter dsetconstr:(fofType->((fofType->Prop)->fofType)).
% Definition iskpair:=(fun (A:fofType)=> ((ex fofType) (fun (Xx:fofType)=> ((and ((in Xx) (setunion A))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion A))) (((eq fofType) A) ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset)))))))))):(fofType->Prop).
% Definition kpair:=(fun (Xx:fofType) (Xy:fofType)=> ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset))):(fofType->(fofType->fofType)).
% Definition singleton:=(fun (A:fofType)=> ((ex fofType) (fun (Xx:fofType)=> ((and ((in Xx) A)) (((eq fofType) A) ((setadjoin Xx) emptyset)))))):(fofType->Prop).
% Definition ex1:=(fun (A:fofType) (Xphi:(fofType->Prop))=> (singleton ((dsetconstr A) (fun (Xx:fofType)=> (Xphi Xx))))):(fofType->((fofType->Prop)->Prop)).
% Definition ex1I:=(forall (A:fofType) (Xphi:(fofType->Prop)) (Xx:fofType), (((in Xx) A)->((Xphi Xx)->((forall (Xy:fofType), (((in Xy) A)->((Xphi Xy)->(((eq fofType) Xy) Xx))))->((ex1 A) (fun (Xy:fofType)=> (Xphi Xy))))))):Prop.
% Parameter kfst:(fofType->fofType).
% Definition kfstpairEq:=(forall (Xx:fofType) (Xy:fofType), (((eq fofType) (kfst ((kpair Xx) Xy))) Xx)):Prop.
% Definition setukpairinjR:=(forall (Xx:fofType) (Xy:fofType) (Xz:fofType) (Xu:fofType), ((((eq fofType) ((kpair Xx) Xy)) ((kpair Xz) Xu))->(((eq fofType) Xy) Xu))):Prop.
% Trying to prove (ex1I->(kfstpairEq->(setukpairinjR->(forall (Xu:fofType), ((iskpair Xu)->(singleton ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))))))))
% Found eq_substitution00000:=(eq_substitution0000 (fun (x7:fofType)=> Xy)):((((eq fofType) Xu) ((kpair (kfst Xu)) Xy))->(((eq fofType) Xy) Xy))
% Found (eq_substitution0000 (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((eq_substitution000 ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((eq_substitution00 Xu) ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((((eq_substitution0 fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (fun (x4:((in Xy) (setunion Xu)))=> (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_substitution00000:=(eq_substitution0000 (fun (x8:fofType)=> Xx)):((((eq fofType) Xu) ((kpair (kfst Xu)) Xy))->(((eq fofType) Xx) Xx))
% Found (eq_substitution0000 (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((eq_substitution000 ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((eq_substitution00 Xu) ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((((eq_substitution0 fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (fun (x4:((in Xy) (setunion Xu)))=> (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_substitution00000:=(eq_substitution0000 (fun (x7:fofType)=> Xy)):((((eq fofType) Xu) ((kpair (kfst Xu)) Xy))->(((eq fofType) Xy) Xy))
% Found (eq_substitution0000 (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((eq_substitution000 ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((eq_substitution00 Xu) ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((((eq_substitution0 fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (fun (x4:((in Xy) (setunion Xu)))=> (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x7:fofType)=> Xy))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_substitution00000:=(eq_substitution0000 (fun (x8:fofType)=> Xx)):((((eq fofType) Xu) ((kpair (kfst Xu)) Xy))->(((eq fofType) Xx) Xx))
% Found (eq_substitution0000 (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((eq_substitution000 ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((eq_substitution00 Xu) ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((((eq_substitution0 fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (fun (x4:((in Xy) (setunion Xu)))=> (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x8:fofType)=> Xx))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_substitution00000:=(eq_substitution0000 (fun (x9:fofType)=> Xy)):((((eq fofType) Xu) ((kpair (kfst Xu)) Xy))->(((eq fofType) Xy) Xy))
% Found (eq_substitution0000 (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((eq_substitution000 ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((eq_substitution00 Xu) ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((((eq_substitution0 fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (fun (x6:((in Xy) (setunion Xu)))=> (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref000:=(eq_ref00 P):((P Xy)->(P Xy))
% Found (eq_ref00 P) as proof of ((P Xy)->(P Xx))
% Found ((eq_ref0 Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x6:(P Xy)
% Instantiate: Xx:=Xy:fofType
% Found (fun (x6:(P Xy))=> x6) as proof of (P Xx)
% Found (fun (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of ((P Xy)->(P Xx))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x50:=(x5 (fun (x6:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x5 (fun (x6:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (x5 (fun (x6:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_substitution00000:=(eq_substitution0000 (fun (x10:fofType)=> Xx)):((((eq fofType) Xu) ((kpair (kfst Xu)) Xy))->(((eq fofType) Xx) Xx))
% Found (eq_substitution0000 (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((eq_substitution000 ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((eq_substitution00 Xu) ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((((eq_substitution0 fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (fun (x6:((in Xy) (setunion Xu)))=> (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_substitution00000:=(eq_substitution0000 (fun (x9:fofType)=> Xy)):((((eq fofType) Xu) ((kpair (kfst Xu)) Xy))->(((eq fofType) Xy) Xy))
% Found (eq_substitution0000 (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((eq_substitution000 ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((eq_substitution00 Xu) ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((((eq_substitution0 fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (fun (x6:((in Xy) (setunion Xu)))=> (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x9:fofType)=> Xy))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref000:=(eq_ref00 P):((P Xy)->(P Xy))
% Found (eq_ref00 P) as proof of ((P Xy)->(P Xx))
% Found ((eq_ref0 Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x50:=(x5 (fun (x6:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x5 (fun (x6:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (x5 (fun (x6:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x6:(P Xy)
% Instantiate: Xx:=Xy:fofType
% Found (fun (x6:(P Xy))=> x6) as proof of (P Xx)
% Found (fun (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of ((P Xy)->(P Xx))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_substitution00000:=(eq_substitution0000 (fun (x10:fofType)=> Xx)):((((eq fofType) Xu) ((kpair (kfst Xu)) Xy))->(((eq fofType) Xx) Xx))
% Found (eq_substitution0000 (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((eq_substitution000 ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((eq_substitution00 Xu) ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found ((((eq_substitution0 fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found (fun (x6:((in Xy) (setunion Xu)))=> (((((eq_substitution fofType) fofType) Xu) ((kpair (kfst Xu)) Xy)) (fun (x10:fofType)=> Xx))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x8:(P Xy)
% Instantiate: Xx:=Xy:fofType
% Found (fun (x8:(P Xy))=> x8) as proof of (P Xx)
% Found (fun (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of ((P Xy)->(P Xx))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref000:=(eq_ref00 P):((P Xy)->(P Xy))
% Found (eq_ref00 P) as proof of ((P Xy)->(P Xx))
% Found ((eq_ref0 Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x70:=(x7 (fun (x8:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x5:((in x3) (setunion Xu))
% Found x5 as proof of ((in x3) (setunion Xu))
% Found x8:(P Xy)
% Instantiate: Xx:=Xy:fofType
% Found (fun (x8:(P Xy))=> x8) as proof of (P Xx)
% Found (fun (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of ((P Xy)->(P Xx))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x70:=(x7 (fun (x8:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref000:=(eq_ref00 P):((P Xy)->(P Xy))
% Found (eq_ref00 P) as proof of ((P Xy)->(P Xx))
% Found ((eq_ref0 Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x5:((in x3) (setunion Xu))
% Found x5 as proof of ((in x3) (setunion Xu))
% Found x6:((in x3) (setunion Xu))
% Instantiate: Xx:=x3:fofType
% Found (fun (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of ((in Xx) (setunion Xu))
% Found (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of (((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->((in Xx) (setunion Xu)))
% Found (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of (((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->((in Xx) (setunion Xu))))
% Found (and_rect00 (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found ((and_rect0 ((in Xx) (setunion Xu))) (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found (((fun (P:Type) (x6:(((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x3) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))) P) x6) x4)) ((in Xx) (setunion Xu))) (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found (((fun (P:Type) (x6:(((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x3) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))) P) x6) x4)) ((in Xx) (setunion Xu))) (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found (eq_sym000 ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_sym00 Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found (((eq_sym0 Xx) Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy)) as proof of (((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset))))))->(((eq fofType) Xy) Xx))
% Found (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy)) as proof of (((in x3) (setunion Xu))->(((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset))))))->(((eq fofType) Xy) Xx)))
% Found (and_rect00 (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found ((and_rect0 (((eq fofType) Xy) Xx)) (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found (((fun (P:Type) (x8:(((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x3) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))) P) x8) x4)) (((eq fofType) Xy) Xx)) (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> (((fun (P:Type) (x8:(((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x3) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))) P) x8) x4)) (((eq fofType) Xy) Xx)) (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> (((fun (P:Type) (x8:(((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x3) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))) P) x8) x4)) (((eq fofType) Xy) Xx)) (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x6:((in x3) (setunion Xu))
% Instantiate: Xx:=x3:fofType
% Found (fun (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of ((in Xx) (setunion Xu))
% Found (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of (((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->((in Xx) (setunion Xu)))
% Found (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of (((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->((in Xx) (setunion Xu))))
% Found (and_rect00 (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found ((and_rect0 ((in Xx) (setunion Xu))) (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found (((fun (P:Type) (x6:(((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x3) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))) P) x6) x4)) ((in Xx) (setunion Xu))) (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found (((fun (P:Type) (x6:(((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x3) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))) P) x6) x4)) ((in Xx) (setunion Xu))) (fun (x6:((in x3) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found (eq_sym000 ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_sym00 Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found (((eq_sym0 Xx) Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x5:((in x3) (setunion Xu))
% Found x5 as proof of ((in x3) (setunion Xu))
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy)) as proof of (((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset))))))->(((eq fofType) Xy) Xx))
% Found (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy)) as proof of (((in x3) (setunion Xu))->(((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset))))))->(((eq fofType) Xy) Xx)))
% Found (and_rect00 (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found ((and_rect0 (((eq fofType) Xy) Xx)) (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found (((fun (P:Type) (x8:(((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x3) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))) P) x8) x4)) (((eq fofType) Xy) Xx)) (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> (((fun (P:Type) (x8:(((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x3) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))) P) x8) x4)) (((eq fofType) Xy) Xx)) (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> (((fun (P:Type) (x8:(((in x3) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x3) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))) P) x8) x4)) (((eq fofType) Xy) Xx)) (fun (x8:((in x3) (setunion Xu))) (x9:((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy0) emptyset))) emptyset)))))))=> ((eq_ref fofType) Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found (eq_sym000 ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_sym00 Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found (((eq_sym0 Xx) Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x5:((in x3) (setunion Xu))
% Found x5 as proof of ((in x3) (setunion Xu))
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found (eq_sym000 ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_sym00 Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found (((eq_sym0 Xx) Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((((eq_sym fofType) Xx) Xy) ((eq_ref fofType) Xx))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy)) as proof of (((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset)))))))->(((eq fofType) Xy) Xx))
% Found (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy)) as proof of (forall (x:fofType), (((and ((in x) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x) emptyset)) ((setadjoin ((setadjoin x) ((setadjoin Xy0) emptyset))) emptyset)))))))->(((eq fofType) Xy) Xx)))
% Found (ex_ind00 (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found ((ex_ind0 (((eq fofType) Xy) Xx)) (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found (((fun (P:Prop) (x6:(forall (x:fofType), (((and ((in x) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x) emptyset)) ((setadjoin ((setadjoin x) ((setadjoin Xy) emptyset))) emptyset)))))))->P)))=> (((((ex_ind fofType) (fun (Xx:fofType)=> ((and ((in Xx) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset))))))))) P) x6) x2)) (((eq fofType) Xy) Xx)) (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> (((fun (P:Prop) (x6:(forall (x:fofType), (((and ((in x) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x) emptyset)) ((setadjoin ((setadjoin x) ((setadjoin Xy) emptyset))) emptyset)))))))->P)))=> (((((ex_ind fofType) (fun (Xx:fofType)=> ((and ((in Xx) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset))))))))) P) x6) x2)) (((eq fofType) Xy) Xx)) (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> (((fun (P:Prop) (x6:(forall (x:fofType), (((and ((in x) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x) emptyset)) ((setadjoin ((setadjoin x) ((setadjoin Xy) emptyset))) emptyset)))))))->P)))=> (((((ex_ind fofType) (fun (Xx:fofType)=> ((and ((in Xx) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset))))))))) P) x6) x2)) (((eq fofType) Xy) Xx)) (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found ((eq_ref fofType) Xy) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy)) as proof of (((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset)))))))->(((eq fofType) Xy) Xx))
% Found (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy)) as proof of (forall (x:fofType), (((and ((in x) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x) emptyset)) ((setadjoin ((setadjoin x) ((setadjoin Xy0) emptyset))) emptyset)))))))->(((eq fofType) Xy) Xx)))
% Found (ex_ind00 (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found ((ex_ind0 (((eq fofType) Xy) Xx)) (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found (((fun (P:Prop) (x6:(forall (x:fofType), (((and ((in x) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x) emptyset)) ((setadjoin ((setadjoin x) ((setadjoin Xy) emptyset))) emptyset)))))))->P)))=> (((((ex_ind fofType) (fun (Xx:fofType)=> ((and ((in Xx) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset))))))))) P) x6) x2)) (((eq fofType) Xy) Xx)) (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> (((fun (P:Prop) (x6:(forall (x:fofType), (((and ((in x) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x) emptyset)) ((setadjoin ((setadjoin x) ((setadjoin Xy) emptyset))) emptyset)))))))->P)))=> (((((ex_ind fofType) (fun (Xx:fofType)=> ((and ((in Xx) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset))))))))) P) x6) x2)) (((eq fofType) Xy) Xx)) (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> (((fun (P:Prop) (x6:(forall (x:fofType), (((and ((in x) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x) emptyset)) ((setadjoin ((setadjoin x) ((setadjoin Xy) emptyset))) emptyset)))))))->P)))=> (((((ex_ind fofType) (fun (Xx:fofType)=> ((and ((in Xx) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin Xx) emptyset)) ((setadjoin ((setadjoin Xx) ((setadjoin Xy) emptyset))) emptyset))))))))) P) x6) x2)) (((eq fofType) Xy) Xx)) (fun (x6:fofType) (x7:((and ((in x6) (setunion Xu))) ((ex fofType) (fun (Xy0:fofType)=> ((and ((in Xy0) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x6) emptyset)) ((setadjoin ((setadjoin x6) ((setadjoin Xy0) emptyset))) emptyset))))))))=> ((eq_ref fofType) Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x5:((in x3) (setunion Xu))
% Found x5 as proof of ((in x3) (setunion Xu))
% Found x9:((in x7) (setunion Xu))
% Found x9 as proof of ((in x7) (setunion Xu))
% Found eta_expansion000:=(eta_expansion00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))):(((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) (fun (x:fofType)=> ((and ((in x) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x) emptyset))) emptyset))))))
% Found (eta_expansion00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found ((eta_expansion0 Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion fofType) Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion fofType) Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion fofType) Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->Prop)) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found x6:((in x4) (setunion Xu))
% Instantiate: Xx:=x4:fofType
% Found (fun (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of ((in Xx) (setunion Xu))
% Found (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of (((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))->((in Xx) (setunion Xu)))
% Found (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of (((in x4) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))->((in Xx) (setunion Xu))))
% Found (and_rect00 (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found ((and_rect0 ((in Xx) (setunion Xu))) (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found (((fun (P:Type) (x6:(((in x4) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x4) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))) P) x6) x5)) ((in Xx) (setunion Xu))) (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found (fun (x5:((and ((in x4) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))))=> (((fun (P:Type) (x6:(((in x4) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x4) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))) P) x6) x5)) ((in Xx) (setunion Xu))) (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6))) as proof of ((in Xx) (setunion Xu))
% Found eta_expansion_dep000:=(eta_expansion_dep00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))):(((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) (fun (x:fofType)=> ((and ((in x) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x) emptyset))) emptyset))))))
% Found (eta_expansion_dep00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found ((eta_expansion_dep0 (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found eta_expansion000:=(eta_expansion00 b):(((eq (fofType->Prop)) b) (fun (x:fofType)=> (b x)))
% Found (eta_expansion00 b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eta_expansion0 Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found x9:((in x7) (setunion Xu))
% Found x9 as proof of ((in x7) (setunion Xu))
% Found x5:((in x3) (setunion Xu))
% Found x5 as proof of ((in x3) (setunion Xu))
% Found x6:((in x4) (setunion Xu))
% Instantiate: Xx:=x4:fofType
% Found (fun (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of ((in Xx) (setunion Xu))
% Found (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of (((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))->((in Xx) (setunion Xu)))
% Found (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6) as proof of (((in x4) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))->((in Xx) (setunion Xu))))
% Found (and_rect00 (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found ((and_rect0 ((in Xx) (setunion Xu))) (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found (((fun (P:Type) (x6:(((in x4) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x4) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))) P) x6) x5)) ((in Xx) (setunion Xu))) (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6)) as proof of ((in Xx) (setunion Xu))
% Found (fun (x5:((and ((in x4) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))))=> (((fun (P:Type) (x6:(((in x4) (setunion Xu))->(((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))->P)))=> (((((and_rect ((in x4) (setunion Xu))) ((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset))))))) P) x6) x5)) ((in Xx) (setunion Xu))) (fun (x6:((in x4) (setunion Xu))) (x7:((ex fofType) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x4) emptyset)) ((setadjoin ((setadjoin x4) ((setadjoin Xy) emptyset))) emptyset)))))))=> x6))) as proof of ((in Xx) (setunion Xu))
% Found eq_ref000:=(eq_ref00 P0):((P0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset)))))->(P0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))))
% Found (eq_ref00 P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eq_ref0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eq_ref (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eq_ref (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found eq_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found eq_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found eta_expansion_dep000:=(eta_expansion_dep00 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))):(((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) (fun (x:fofType)=> ((and ((in x) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x) emptyset)))))
% Found (eta_expansion_dep00 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) as proof of (((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) b)
% Found ((eta_expansion_dep0 (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) as proof of (((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) b)
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) as proof of (((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) b)
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) as proof of (((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) b)
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) as proof of (((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) b)
% Found eta_expansion_dep000:=(eta_expansion_dep00 b):(((eq (fofType->Prop)) b) (fun (x:fofType)=> (b x)))
% Found (eta_expansion_dep00 b) as proof of (((eq (fofType->Prop)) b) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((eta_expansion_dep0 (fun (x7:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found eq_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found eq_ref000:=(eq_ref00 P0):((P0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset)))))->(P0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))))
% Found (eq_ref00 P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eq_ref0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eq_ref (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eq_ref (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found eq_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found eq_ref000:=(eq_ref00 P0):((P0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset)))))->(P0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))))
% Found (eq_ref00 P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eq_ref0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eq_ref (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eq_ref (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found eta_expansion_dep0000:=(eta_expansion_dep000 P0):((P0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset)))))->(P0 (fun (x:fofType)=> ((and ((in x) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin x) emptyset))))))
% Found (eta_expansion_dep000 P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eta_expansion_dep00 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eta_expansion_dep0 (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found eq_ref00:=(eq_ref0 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found eq_ref00:=(eq_ref0 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found eq_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found eq_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found eq_ref000:=(eq_ref00 P0):((P0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))->(P0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))))
% Found (eq_ref00 P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found eq_ref00:=(eq_ref0 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found eq_ref000:=(eq_ref00 P0):((P0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))->(P0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))))
% Found (eq_ref00 P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found eq_ref00:=(eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))):(((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found eq_ref00:=(eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))):(((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eta_expansion000:=(eta_expansion00 b):(((eq (fofType->Prop)) b) (fun (x:fofType)=> (b x)))
% Found (eta_expansion00 b) as proof of (((eq (fofType->Prop)) b) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((eta_expansion0 Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found eta_expansion_dep000:=(eta_expansion_dep00 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))):(((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) (fun (x:fofType)=> ((and ((in x) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x) emptyset)))))
% Found (eta_expansion_dep00 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) as proof of (((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) b)
% Found ((eta_expansion_dep0 (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) as proof of (((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) b)
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) as proof of (((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) b)
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) as proof of (((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) b)
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) as proof of (((eq (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset))))) b)
% Found eq_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found eq_ref00:=(eq_ref0 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found eq_ref00:=(eq_ref0 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found eta_expansion_dep0000:=(eta_expansion_dep000 P0):((P0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset)))))->(P0 (fun (x:fofType)=> ((and ((in x) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin x) emptyset))))))
% Found (eta_expansion_dep000 P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eta_expansion_dep00 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eta_expansion_dep0 (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found eq_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found eq_ref000:=(eq_ref00 P0):((P0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset)))))->(P0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))))
% Found (eq_ref00 P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eq_ref0 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eq_ref (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eq_ref (fofType->Prop)) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx0:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx0))))) ((setadjoin Xx) emptyset))))) P0) as proof of (P1 (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found eq_ref00:=(eq_ref0 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))
% Instantiate: Xx:=((kpair (kfst Xu)) Xy):fofType;b:=Xu:fofType
% Found x7 as proof of (((eq fofType) b) Xx)
% 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 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) Xx))
% Found eq_ref000:=(eq_ref00 P):((P Xy)->(P Xy))
% Found (eq_ref00 P) as proof of ((P Xy)->(P Xx))
% Found ((eq_ref0 Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x70:=(x7 (fun (x8:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x8:(P Xy)
% Instantiate: Xx:=Xy:fofType
% Found (fun (x8:(P Xy))=> x8) as proof of (P Xx)
% Found (fun (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref000:=(eq_ref00 P0):((P0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))->(P0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))))
% Found (eq_ref00 P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found eq_ref000:=(eq_ref00 P0):((P0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))->(P0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))))
% Found (eq_ref00 P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) P0) as proof of (P1 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found eq_ref00:=(eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))):(((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found eq_ref00:=(eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))):(((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found (eq_ref0 ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found ((eq_ref Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) as proof of (((eq Prop) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset))))) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found eq_ref00:=(eq_ref0 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found x70:=(x7 (fun (x8:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found (eq_sym0000 ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found (eq_sym0000 ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x8:(((eq fofType) Xx) Xy))=> ((eq_sym000 x8) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x8:(((eq fofType) Xx) Xy))=> (((eq_sym00 Xy) x8) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x8:(((eq fofType) Xx) Xy))=> ((((eq_sym0 Xx) Xy) x8) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> ((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) P)) ((eq_ref fofType) Xx))) as proof of ((P Xy)->(P Xx))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> ((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) P)) ((eq_ref fofType) Xx))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> ((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) P)) ((eq_ref fofType) Xx))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_sym0000 ((eq_ref fofType) Xx)) (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found ((eq_sym0000 ((eq_ref fofType) Xx)) (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (((fun (x8:(((eq fofType) Xx) Xy))=> ((eq_sym000 x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (((fun (x8:(((eq fofType) Xx) Xy))=> (((eq_sym00 Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (((fun (x8:(((eq fofType) Xx) Xy))=> ((((eq_sym0 Xx) Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (x7 (fun (x8:fofType)=> (P Xy))))) as proof of ((P Xy)->(P Xx))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (x7 (fun (x8:fofType)=> (P Xy))))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (x7 (fun (x8:fofType)=> (P Xy))))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x70:=(x7 (fun (x8:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))
% Instantiate: Xx:=((kpair (kfst Xu)) Xy):fofType;b:=Xu:fofType
% Found x7 as proof of (((eq fofType) b) Xx)
% Found x90:=(x9 (fun (x10:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x9 (fun (x10:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found (x9 (fun (x10:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found eq_ref00:=(eq_ref0 Xy):(((eq fofType) Xy) Xy)
% Found (eq_ref0 Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found ((eq_ref fofType) Xy) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy)))))=> ((eq_ref fofType) Xy)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref000:=(eq_ref00 P):((P Xy)->(P Xy))
% Found (eq_ref00 P) as proof of ((P Xy)->(P Xx))
% Found ((eq_ref0 Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x70:=(x7 (fun (x8:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x7 (fun (x8:fofType)=> (P Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x8:(P Xy)
% Instantiate: Xx:=Xy:fofType
% Found (fun (x8:(P Xy))=> x8) as proof of (P Xx)
% Found (fun (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x8:(P Xy))=> x8) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% 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_ref000:=(eq_ref00 P):((P Xy)->(P Xy))
% Found (eq_ref00 P) as proof of ((P Xy)->(P Xx))
% Found ((eq_ref0 Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x6:(P Xy)
% Instantiate: Xx:=Xy:fofType
% Found (fun (x6:(P Xy))=> x6) as proof of (P Xx)
% Found (fun (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x50:=(x5 (fun (x6:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x5 (fun (x6:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (x5 (fun (x6:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eta_expansion_dep000:=(eta_expansion_dep00 b):(((eq (fofType->Prop)) b) (fun (x:fofType)=> (b x)))
% Found (eta_expansion_dep00 b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eta_expansion_dep0 (fun (x7:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found eta_expansion000:=(eta_expansion00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))):(((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) (fun (x:fofType)=> ((and ((in x) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x) emptyset))) emptyset))))))
% Found (eta_expansion00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found ((eta_expansion0 Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion fofType) Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion fofType) Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion fofType) Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found eq_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% 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) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% Found x90:=(x9 (fun (x10:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x9 (fun (x10:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found (x9 (fun (x10:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found eq_ref000:=(eq_ref00 P):((P Xy)->(P Xy))
% Found (eq_ref00 P) as proof of (P0 Xy)
% Found ((eq_ref0 Xy) P) as proof of (P0 Xy)
% Found (((eq_ref fofType) Xy) P) as proof of (P0 Xy)
% Found (((eq_ref fofType) Xy) P) as proof of (P0 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 eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found (eq_sym0000 ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found (eq_sym0000 ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x8:(((eq fofType) Xx) Xy))=> ((eq_sym000 x8) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x8:(((eq fofType) Xx) Xy))=> (((eq_sym00 Xy) x8) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x8:(((eq fofType) Xx) Xy))=> ((((eq_sym0 Xx) Xy) x8) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> ((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) P)) ((eq_ref fofType) Xx))) as proof of ((P Xy)->(P Xx))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> ((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) P)) ((eq_ref fofType) Xx))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> ((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) P)) ((eq_ref fofType) Xx))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_sym0000 ((eq_ref fofType) Xx)) (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found ((eq_sym0000 ((eq_ref fofType) Xx)) (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (((fun (x8:(((eq fofType) Xx) Xy))=> ((eq_sym000 x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (((fun (x8:(((eq fofType) Xx) Xy))=> (((eq_sym00 Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (((fun (x8:(((eq fofType) Xx) Xy))=> ((((eq_sym0 Xx) Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (((eq_ref fofType) Xy) P))) as proof of ((P Xy)->(P Xx))
% Found (fun (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (((eq_ref fofType) Xy) P))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x6:((in Xy) (setunion Xu))) (x7:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((fun (x8:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x8) (fun (x10:fofType)=> ((P Xy)->(P x10))))) ((eq_ref fofType) Xx)) (((eq_ref fofType) Xy) P))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref000:=(eq_ref00 P):((P ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))->(P ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))))
% Found (eq_ref00 P) as proof of (P0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))
% Found ((eq_ref0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) P) as proof of (P0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))
% Found (((eq_ref fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) P) as proof of (P0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))
% Found (((eq_ref fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) P) as proof of (P0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))
% Found x70:=(x7 (fun (x8:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found (x7 (fun (x8:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found x90:=(x9 (fun (x10:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x9 (fun (x10:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found (x9 (fun (x10:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found eta_expansion_dep0000:=(eta_expansion_dep000 P0):((P0 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->(P0 (fun (x:fofType)=> ((and ((in x) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x) emptyset))) emptyset)))))))
% Found (eta_expansion_dep000 P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((eta_expansion_dep00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found (((eta_expansion_dep0 (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found eta_expansion_dep0000:=(eta_expansion_dep000 P0):((P0 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->(P0 (fun (x:fofType)=> ((and ((in x) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x) emptyset))) emptyset)))))))
% Found (eta_expansion_dep000 P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((eta_expansion_dep00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found (((eta_expansion_dep0 (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found eq_ref00:=(eq_ref0 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found eq_ref000:=(eq_ref00 P):((P Xy)->(P Xy))
% Found (eq_ref00 P) as proof of ((P Xy)->(P Xx))
% Found ((eq_ref0 Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (((eq_ref fofType) Xy) P) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (((eq_ref fofType) Xy) P)) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x6:(P Xy)
% Instantiate: Xx:=Xy:fofType
% Found (fun (x6:(P Xy))=> x6) as proof of (P Xx)
% Found (fun (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop)) (x6:(P Xy))=> x6) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found x50:=(x5 (fun (x6:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x5 (fun (x6:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (x5 (fun (x6:fofType)=> (P Xy))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of (forall (P:(fofType->Prop)), ((P Xy)->(P Xx)))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> (x5 (fun (x6:fofType)=> (P Xy)))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% 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) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% Found x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))
% Instantiate: Xx:=((kpair (kfst Xu)) Xy):fofType;b:=Xu:fofType
% Found x5 as proof of (((eq fofType) b) Xx)
% Found eq_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found eq_ref00:=(eq_ref0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))):(((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))
% Found (eq_ref0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) as proof of (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) b)
% Found ((eq_ref fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) as proof of (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) b)
% Found ((eq_ref fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) as proof of (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) b)
% Found ((eq_ref fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) as proof of (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((setadjoin x5) emptyset))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((setadjoin x5) emptyset))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((setadjoin x5) emptyset))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((setadjoin x5) emptyset))
% Found eta_expansion000:=(eta_expansion00 b):(((eq (fofType->Prop)) b) (fun (x:fofType)=> (b x)))
% Found (eta_expansion00 b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found ((eta_expansion0 Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (fun (Xx:fofType)=> ((and ((in Xx) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin Xx) emptyset)))))
% Found eta_expansion000:=(eta_expansion00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))):(((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) (fun (x:fofType)=> ((and ((in x) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x) emptyset))) emptyset))))))
% Found (eta_expansion00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found ((eta_expansion0 Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion fofType) Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion fofType) Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% Found (((eta_expansion fofType) Prop) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) as proof of (((eq (fofType->Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) b)
% 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 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) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% 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_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found x90:=(x9 (fun (x10:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x9 (fun (x10:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found (x9 (fun (x10:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found eq_ref000:=(eq_ref00 P):((P ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))->(P ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))))
% Found (eq_ref00 P) as proof of (P0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))
% Found ((eq_ref0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) P) as proof of (P0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))
% Found (((eq_ref fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) P) as proof of (P0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))
% Found (((eq_ref fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) P) as proof of (P0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))
% Found eq_ref00:=(eq_ref0 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))
% Instantiate: Xx:=((kpair (kfst Xu)) Xy):fofType;b:=Xu:fofType
% Found x5 as proof of (((eq fofType) b) Xx)
% Found eq_ref00:=(eq_ref0 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found eta_expansion_dep0000:=(eta_expansion_dep000 P0):((P0 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->(P0 (fun (x:fofType)=> ((and ((in x) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x) emptyset))) emptyset)))))))
% Found (eta_expansion_dep000 P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((eta_expansion_dep00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found (((eta_expansion_dep0 (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found eta_expansion_dep0000:=(eta_expansion_dep000 P0):((P0 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))->(P0 (fun (x:fofType)=> ((and ((in x) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x) emptyset))) emptyset)))))))
% Found (eta_expansion_dep000 P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((eta_expansion_dep00 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found (((eta_expansion_dep0 (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found ((((eta_expansion_dep fofType) (fun (x7:fofType)=> Prop)) (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset)))))) P0) as proof of (P1 (fun (Xy:fofType)=> ((and ((in Xy) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin Xy) emptyset))) emptyset))))))
% Found eq_ref00:=(eq_ref0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))):(((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found (eq_ref0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found eq_ref00:=(eq_ref0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))):(((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found (eq_ref0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% 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) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) x3)
% Found eq_ref00:=(eq_ref0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))):(((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found (eq_ref0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found eq_ref00:=(eq_ref0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))):(((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found (eq_ref0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found ((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) as proof of (((eq Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((and ((in x6) (setunion Xu))) (((eq fofType) Xu) ((setadjoin ((setadjoin x3) emptyset)) ((setadjoin ((setadjoin x3) ((setadjoin x6) emptyset))) emptyset)))))
% Found eq_ref000:=(eq_ref00 P0):((P0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))->(P0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))))
% Found (eq_ref00 P0) as proof of (P1 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) P0) as proof of (P1 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found (((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) P0) as proof of (P1 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found (((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) P0) as proof of (P1 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found eq_ref000:=(eq_ref00 P0):((P0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))->(P0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))))
% Found (eq_ref00 P0) as proof of (P1 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found ((eq_ref0 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) P0) as proof of (P1 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found (((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) P0) as proof of (P1 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found (((eq_ref Prop) ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset)))) P0) as proof of (P1 ((and ((in x6) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))) (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((setadjoin x6) emptyset))))
% Found eq_ref000:=(eq_ref00 P):((P Xu)->(P Xu))
% Found (eq_ref00 P) as proof of (P0 Xu)
% Found ((eq_ref0 Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found (((eq_ref fofType) Xu) P) as proof of (P0 Xu)
% Found eq_ref00:=(eq_ref0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))):(((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx)))))
% Found (eq_ref0 ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) as proof of (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) b)
% Found ((eq_ref fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) as proof of (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) b)
% Found ((eq_ref fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) as proof of (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) b)
% Found ((eq_ref fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) as proof of (((eq fofType) ((dsetconstr (setunion Xu)) (fun (Xx:fofType)=> (((eq fofType) Xu) ((kpair (kfst Xu)) Xx))))) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((setadjoin x5) emptyset))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((setadjoin x5) emptyset))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((setadjoin x5) emptyset))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((setadjoin x5) emptyset))
% 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 x50:=(x5 (fun (x6:fofType)=> (P Xy))):((P Xy)->(P Xy))
% Found (x5 (fun (x6:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found (x5 (fun (x6:fofType)=> (P Xy))) as proof of (P0 Xy)
% Found eq_ref00:=(eq_ref0 Xu):(((eq fofType) Xu) Xu)
% Found (eq_ref0 Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found ((eq_ref fofType) Xu) as proof of (((eq fofType) Xu) b)
% Found eq_ref00:=(eq_ref0 b):(((eq fofType) b) b)
% Found (eq_ref0 b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found ((eq_ref fofType) b) as proof of (((eq fofType) b) ((kpair (kfst Xu)) x3))
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found (eq_sym0000 ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found (eq_sym0000 ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x6:(((eq fofType) Xx) Xy))=> ((eq_sym000 x6) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x6:(((eq fofType) Xx) Xy))=> (((eq_sym00 Xy) x6) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x6:(((eq fofType) Xx) Xy))=> ((((eq_sym0 Xx) Xy) x6) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found ((fun (x6:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x6) P)) ((eq_ref fofType) Xx)) as proof of ((P Xy)->(P Xx))
% Found (fun (P:(fofType->Prop))=> ((fun (x6:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x6) P)) ((eq_ref fofType) Xx))) as proof of ((P Xy)->(P Xx))
% Found (fun (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> ((fun (x6:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x6) P)) ((eq_ref fofType) Xx))) as proof of (((eq fofType) Xy) Xx)
% Found (fun (x4:((in Xy) (setunion Xu))) (x5:(forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))) (P:(fofType->Prop))=> ((fun (x6:(((eq fofType) Xx) Xy))=> (((((eq_sym fofType) Xx) Xy) x6) P)) ((eq_ref fofType) Xx))) as proof of ((forall (P:(fofType->Prop)), ((P Xu)->(P ((kpair (kfst Xu)) Xy))))->(((eq fofType) Xy) Xx))
% Found eq_ref00:=(eq_ref0 Xx):(((eq fofType) Xx) Xx)
% Found (eq_ref0 Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref fofType) Xx) as proof of (((eq fofType) Xx) Xy)
% Found ((eq_ref 
% EOF
%------------------------------------------------------------------------------