TSTP Solution File: SET673^3 by cocATP---0.2.0

View Problem - Process Solution

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

% Computer : n089.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:30:58 EDT 2014

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

% Comments : 
%------------------------------------------------------------------------------
%----NO SOLUTION OUTPUT BY SYSTEM
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% % Problem  : SET673^3 : TPTP v6.1.0. Released v3.6.0.
% % Command  : python CASC.py /export/starexec/sandbox/benchmark/theBenchmark.p
% % Computer : n089.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 10:35:56 CDT 2014
% % CPUTime  : 300.02 
% Python 2.7.5
% Using paths ['/home/cristobal/cocATP/CASC/TPTP/', '/export/starexec/sandbox/benchmark/', '/export/starexec/sandbox/benchmark/']
% Failed to open /home/cristobal/cocATP/CASC/TPTP/Axioms/SET008^0.ax, trying next directory
% FOF formula (<kernel.Constant object at 0x150fe18>, <kernel.DependentProduct object at 0x150fb48>) of role type named in_decl
% Using role type
% Declaring in:(fofType->((fofType->Prop)->Prop))
% FOF formula (((eq (fofType->((fofType->Prop)->Prop))) in) (fun (X:fofType) (M:(fofType->Prop))=> (M X))) of role definition named in
% A new definition: (((eq (fofType->((fofType->Prop)->Prop))) in) (fun (X:fofType) (M:(fofType->Prop))=> (M X)))
% Defined: in:=(fun (X:fofType) (M:(fofType->Prop))=> (M X))
% FOF formula (<kernel.Constant object at 0x150fe18>, <kernel.DependentProduct object at 0x150f3f8>) of role type named is_a_decl
% Using role type
% Declaring is_a:(fofType->((fofType->Prop)->Prop))
% FOF formula (((eq (fofType->((fofType->Prop)->Prop))) is_a) (fun (X:fofType) (M:(fofType->Prop))=> (M X))) of role definition named is_a
% A new definition: (((eq (fofType->((fofType->Prop)->Prop))) is_a) (fun (X:fofType) (M:(fofType->Prop))=> (M X)))
% Defined: is_a:=(fun (X:fofType) (M:(fofType->Prop))=> (M X))
% FOF formula (<kernel.Constant object at 0x150f3f8>, <kernel.DependentProduct object at 0x150f098>) of role type named emptyset_decl
% Using role type
% Declaring emptyset:(fofType->Prop)
% FOF formula (((eq (fofType->Prop)) emptyset) (fun (X:fofType)=> False)) of role definition named emptyset
% A new definition: (((eq (fofType->Prop)) emptyset) (fun (X:fofType)=> False))
% Defined: emptyset:=(fun (X:fofType)=> False)
% FOF formula (<kernel.Constant object at 0x150f098>, <kernel.DependentProduct object at 0x150fe60>) of role type named unord_pair_decl
% Using role type
% Declaring unord_pair:(fofType->(fofType->(fofType->Prop)))
% FOF formula (((eq (fofType->(fofType->(fofType->Prop)))) unord_pair) (fun (X:fofType) (Y:fofType) (U:fofType)=> ((or (((eq fofType) U) X)) (((eq fofType) U) Y)))) of role definition named unord_pair
% A new definition: (((eq (fofType->(fofType->(fofType->Prop)))) unord_pair) (fun (X:fofType) (Y:fofType) (U:fofType)=> ((or (((eq fofType) U) X)) (((eq fofType) U) Y))))
% Defined: unord_pair:=(fun (X:fofType) (Y:fofType) (U:fofType)=> ((or (((eq fofType) U) X)) (((eq fofType) U) Y)))
% FOF formula (<kernel.Constant object at 0x156c4d0>, <kernel.DependentProduct object at 0x150f710>) of role type named singleton_decl
% Using role type
% Declaring singleton:(fofType->(fofType->Prop))
% FOF formula (((eq (fofType->(fofType->Prop))) singleton) (fun (X:fofType) (U:fofType)=> (((eq fofType) U) X))) of role definition named singleton
% A new definition: (((eq (fofType->(fofType->Prop))) singleton) (fun (X:fofType) (U:fofType)=> (((eq fofType) U) X)))
% Defined: singleton:=(fun (X:fofType) (U:fofType)=> (((eq fofType) U) X))
% FOF formula (<kernel.Constant object at 0x150f710>, <kernel.DependentProduct object at 0x150f830>) of role type named union_decl
% Using role type
% Declaring union:((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))
% FOF formula (((eq ((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))) union) (fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((or (X U)) (Y U)))) of role definition named union
% A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))) union) (fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((or (X U)) (Y U))))
% Defined: union:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((or (X U)) (Y U)))
% FOF formula (<kernel.Constant object at 0x150f830>, <kernel.DependentProduct object at 0x150f200>) of role type named excl_union_decl
% Using role type
% Declaring excl_union:((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))
% FOF formula (((eq ((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))) excl_union) (fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((or ((and (X U)) ((Y U)->False))) ((and ((X U)->False)) (Y U))))) of role definition named excl_union
% A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))) excl_union) (fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((or ((and (X U)) ((Y U)->False))) ((and ((X U)->False)) (Y U)))))
% Defined: excl_union:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((or ((and (X U)) ((Y U)->False))) ((and ((X U)->False)) (Y U))))
% FOF formula (<kernel.Constant object at 0x12af1b8>, <kernel.DependentProduct object at 0x150fc68>) of role type named intersection_decl
% Using role type
% Declaring intersection:((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))
% FOF formula (((eq ((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))) intersection) (fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((and (X U)) (Y U)))) of role definition named intersection
% A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))) intersection) (fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((and (X U)) (Y U))))
% Defined: intersection:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((and (X U)) (Y U)))
% FOF formula (<kernel.Constant object at 0x12af1b8>, <kernel.DependentProduct object at 0x150f638>) of role type named setminus_decl
% Using role type
% Declaring setminus:((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))
% FOF formula (((eq ((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))) setminus) (fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((and (X U)) ((Y U)->False)))) of role definition named setminus
% A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))) setminus) (fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((and (X U)) ((Y U)->False))))
% Defined: setminus:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((and (X U)) ((Y U)->False)))
% FOF formula (<kernel.Constant object at 0x12af1b8>, <kernel.DependentProduct object at 0x150fe60>) of role type named complement_decl
% Using role type
% Declaring complement:((fofType->Prop)->(fofType->Prop))
% FOF formula (((eq ((fofType->Prop)->(fofType->Prop))) complement) (fun (X:(fofType->Prop)) (U:fofType)=> ((X U)->False))) of role definition named complement
% A new definition: (((eq ((fofType->Prop)->(fofType->Prop))) complement) (fun (X:(fofType->Prop)) (U:fofType)=> ((X U)->False)))
% Defined: complement:=(fun (X:(fofType->Prop)) (U:fofType)=> ((X U)->False))
% FOF formula (<kernel.Constant object at 0x150fe60>, <kernel.DependentProduct object at 0x150fc68>) of role type named disjoint_decl
% Using role type
% Declaring disjoint:((fofType->Prop)->((fofType->Prop)->Prop))
% FOF formula (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) disjoint) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (((eq (fofType->Prop)) ((intersection X) Y)) emptyset))) of role definition named disjoint
% A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) disjoint) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (((eq (fofType->Prop)) ((intersection X) Y)) emptyset)))
% Defined: disjoint:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (((eq (fofType->Prop)) ((intersection X) Y)) emptyset))
% FOF formula (<kernel.Constant object at 0x150fc68>, <kernel.DependentProduct object at 0x150f098>) of role type named subset_decl
% Using role type
% Declaring subset:((fofType->Prop)->((fofType->Prop)->Prop))
% FOF formula (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) subset) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (forall (U:fofType), ((X U)->(Y U))))) of role definition named subset
% A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) subset) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (forall (U:fofType), ((X U)->(Y U)))))
% Defined: subset:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (forall (U:fofType), ((X U)->(Y U))))
% FOF formula (<kernel.Constant object at 0x150f098>, <kernel.DependentProduct object at 0x150fea8>) of role type named meets_decl
% Using role type
% Declaring meets:((fofType->Prop)->((fofType->Prop)->Prop))
% FOF formula (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) meets) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> ((ex fofType) (fun (U:fofType)=> ((and (X U)) (Y U)))))) of role definition named meets
% A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) meets) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> ((ex fofType) (fun (U:fofType)=> ((and (X U)) (Y U))))))
% Defined: meets:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> ((ex fofType) (fun (U:fofType)=> ((and (X U)) (Y U)))))
% FOF formula (<kernel.Constant object at 0x14f1488>, <kernel.DependentProduct object at 0x14f11b8>) of role type named misses_decl
% Using role type
% Declaring misses:((fofType->Prop)->((fofType->Prop)->Prop))
% FOF formula (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) misses) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (((ex fofType) (fun (U:fofType)=> ((and (X U)) (Y U))))->False))) of role definition named misses
% A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) misses) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (((ex fofType) (fun (U:fofType)=> ((and (X U)) (Y U))))->False)))
% Defined: misses:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (((ex fofType) (fun (U:fofType)=> ((and (X U)) (Y U))))->False))
% Failed to open /home/cristobal/cocATP/CASC/TPTP/Axioms/SET008^2.ax, trying next directory
% FOF formula (<kernel.Constant object at 0x12af560>, <kernel.DependentProduct object at 0x14f1248>) of role type named cartesian_product_decl
% Using role type
% Declaring cartesian_product:((fofType->Prop)->((fofType->Prop)->(fofType->(fofType->Prop))))
% FOF formula (((eq ((fofType->Prop)->((fofType->Prop)->(fofType->(fofType->Prop))))) cartesian_product) (fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType) (V:fofType)=> ((and (X U)) (Y V)))) of role definition named cartesian_product
% A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->(fofType->(fofType->Prop))))) cartesian_product) (fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType) (V:fofType)=> ((and (X U)) (Y V))))
% Defined: cartesian_product:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType) (V:fofType)=> ((and (X U)) (Y V)))
% FOF formula (<kernel.Constant object at 0x12af1b8>, <kernel.DependentProduct object at 0x11347e8>) of role type named pair_rel_decl
% Using role type
% Declaring pair_rel:(fofType->(fofType->(fofType->(fofType->Prop))))
% FOF formula (((eq (fofType->(fofType->(fofType->(fofType->Prop))))) pair_rel) (fun (X:fofType) (Y:fofType) (U:fofType) (V:fofType)=> ((or (((eq fofType) U) X)) (((eq fofType) V) Y)))) of role definition named pair_rel
% A new definition: (((eq (fofType->(fofType->(fofType->(fofType->Prop))))) pair_rel) (fun (X:fofType) (Y:fofType) (U:fofType) (V:fofType)=> ((or (((eq fofType) U) X)) (((eq fofType) V) Y))))
% Defined: pair_rel:=(fun (X:fofType) (Y:fofType) (U:fofType) (V:fofType)=> ((or (((eq fofType) U) X)) (((eq fofType) V) Y)))
% FOF formula (<kernel.Constant object at 0x11345a8>, <kernel.DependentProduct object at 0x11347e8>) of role type named id_rel_decl
% Using role type
% Declaring id_rel:((fofType->Prop)->(fofType->(fofType->Prop)))
% FOF formula (((eq ((fofType->Prop)->(fofType->(fofType->Prop)))) id_rel) (fun (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S X)) (((eq fofType) X) Y)))) of role definition named id_rel
% A new definition: (((eq ((fofType->Prop)->(fofType->(fofType->Prop)))) id_rel) (fun (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S X)) (((eq fofType) X) Y))))
% Defined: id_rel:=(fun (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S X)) (((eq fofType) X) Y)))
% FOF formula (<kernel.Constant object at 0x1134c20>, <kernel.DependentProduct object at 0x14f1050>) of role type named sub_rel_decl
% Using role type
% Declaring sub_rel:((fofType->(fofType->Prop))->((fofType->(fofType->Prop))->Prop))
% FOF formula (((eq ((fofType->(fofType->Prop))->((fofType->(fofType->Prop))->Prop))) sub_rel) (fun (R1:(fofType->(fofType->Prop))) (R2:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType), (((R1 X) Y)->((R2 X) Y))))) of role definition named sub_rel
% A new definition: (((eq ((fofType->(fofType->Prop))->((fofType->(fofType->Prop))->Prop))) sub_rel) (fun (R1:(fofType->(fofType->Prop))) (R2:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType), (((R1 X) Y)->((R2 X) Y)))))
% Defined: sub_rel:=(fun (R1:(fofType->(fofType->Prop))) (R2:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType), (((R1 X) Y)->((R2 X) Y))))
% FOF formula (<kernel.Constant object at 0x1134c20>, <kernel.DependentProduct object at 0x14f1050>) of role type named is_rel_on_decl
% Using role type
% Declaring is_rel_on:((fofType->(fofType->Prop))->((fofType->Prop)->((fofType->Prop)->Prop)))
% FOF formula (((eq ((fofType->(fofType->Prop))->((fofType->Prop)->((fofType->Prop)->Prop)))) is_rel_on) (fun (R:(fofType->(fofType->Prop))) (A:(fofType->Prop)) (B:(fofType->Prop))=> (forall (X:fofType) (Y:fofType), (((R X) Y)->((and (A X)) (B Y)))))) of role definition named is_rel_on
% A new definition: (((eq ((fofType->(fofType->Prop))->((fofType->Prop)->((fofType->Prop)->Prop)))) is_rel_on) (fun (R:(fofType->(fofType->Prop))) (A:(fofType->Prop)) (B:(fofType->Prop))=> (forall (X:fofType) (Y:fofType), (((R X) Y)->((and (A X)) (B Y))))))
% Defined: is_rel_on:=(fun (R:(fofType->(fofType->Prop))) (A:(fofType->Prop)) (B:(fofType->Prop))=> (forall (X:fofType) (Y:fofType), (((R X) Y)->((and (A X)) (B Y)))))
% FOF formula (<kernel.Constant object at 0x1134c20>, <kernel.DependentProduct object at 0x14f1290>) of role type named restrict_rel_domain_decl
% Using role type
% Declaring restrict_rel_domain:((fofType->(fofType->Prop))->((fofType->Prop)->(fofType->(fofType->Prop))))
% FOF formula (((eq ((fofType->(fofType->Prop))->((fofType->Prop)->(fofType->(fofType->Prop))))) restrict_rel_domain) (fun (R:(fofType->(fofType->Prop))) (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S X)) ((R X) Y)))) of role definition named restrict_rel_domain
% A new definition: (((eq ((fofType->(fofType->Prop))->((fofType->Prop)->(fofType->(fofType->Prop))))) restrict_rel_domain) (fun (R:(fofType->(fofType->Prop))) (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S X)) ((R X) Y))))
% Defined: restrict_rel_domain:=(fun (R:(fofType->(fofType->Prop))) (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S X)) ((R X) Y)))
% FOF formula (<kernel.Constant object at 0x14f1290>, <kernel.DependentProduct object at 0x14f11b8>) of role type named rel_diagonal_decl
% Using role type
% Declaring rel_diagonal:(fofType->(fofType->Prop))
% FOF formula (((eq (fofType->(fofType->Prop))) rel_diagonal) (fun (X:fofType) (Y:fofType)=> (((eq fofType) X) Y))) of role definition named rel_diagonal
% A new definition: (((eq (fofType->(fofType->Prop))) rel_diagonal) (fun (X:fofType) (Y:fofType)=> (((eq fofType) X) Y)))
% Defined: rel_diagonal:=(fun (X:fofType) (Y:fofType)=> (((eq fofType) X) Y))
% FOF formula (<kernel.Constant object at 0x14f1908>, <kernel.DependentProduct object at 0x150fef0>) of role type named rel_composition_decl
% Using role type
% Declaring rel_composition:((fofType->(fofType->Prop))->((fofType->(fofType->Prop))->(fofType->(fofType->Prop))))
% FOF formula (((eq ((fofType->(fofType->Prop))->((fofType->(fofType->Prop))->(fofType->(fofType->Prop))))) rel_composition) (fun (R1:(fofType->(fofType->Prop))) (R2:(fofType->(fofType->Prop))) (X:fofType) (Z:fofType)=> ((ex fofType) (fun (Y:fofType)=> ((and ((R1 X) Y)) ((R2 Y) Z)))))) of role definition named rel_composition
% A new definition: (((eq ((fofType->(fofType->Prop))->((fofType->(fofType->Prop))->(fofType->(fofType->Prop))))) rel_composition) (fun (R1:(fofType->(fofType->Prop))) (R2:(fofType->(fofType->Prop))) (X:fofType) (Z:fofType)=> ((ex fofType) (fun (Y:fofType)=> ((and ((R1 X) Y)) ((R2 Y) Z))))))
% Defined: rel_composition:=(fun (R1:(fofType->(fofType->Prop))) (R2:(fofType->(fofType->Prop))) (X:fofType) (Z:fofType)=> ((ex fofType) (fun (Y:fofType)=> ((and ((R1 X) Y)) ((R2 Y) Z)))))
% FOF formula (<kernel.Constant object at 0x14f1290>, <kernel.DependentProduct object at 0x150f5a8>) of role type named reflexive_decl
% Using role type
% Declaring reflexive:((fofType->(fofType->Prop))->Prop)
% FOF formula (((eq ((fofType->(fofType->Prop))->Prop)) reflexive) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType), ((R X) X)))) of role definition named reflexive
% A new definition: (((eq ((fofType->(fofType->Prop))->Prop)) reflexive) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType), ((R X) X))))
% Defined: reflexive:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType), ((R X) X)))
% FOF formula (<kernel.Constant object at 0x14f1290>, <kernel.DependentProduct object at 0x150f878>) of role type named irreflexive_decl
% Using role type
% Declaring irreflexive:((fofType->(fofType->Prop))->Prop)
% FOF formula (((eq ((fofType->(fofType->Prop))->Prop)) irreflexive) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType), (((R X) X)->False)))) of role definition named irreflexive
% A new definition: (((eq ((fofType->(fofType->Prop))->Prop)) irreflexive) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType), (((R X) X)->False))))
% Defined: irreflexive:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType), (((R X) X)->False)))
% FOF formula (<kernel.Constant object at 0x14f1290>, <kernel.DependentProduct object at 0x150f5a8>) of role type named symmetric_decl
% Using role type
% Declaring symmetric:((fofType->(fofType->Prop))->Prop)
% FOF formula (((eq ((fofType->(fofType->Prop))->Prop)) symmetric) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType), (((R X) Y)->((R Y) X))))) of role definition named symmetric
% A new definition: (((eq ((fofType->(fofType->Prop))->Prop)) symmetric) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType), (((R X) Y)->((R Y) X)))))
% Defined: symmetric:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType), (((R X) Y)->((R Y) X))))
% FOF formula (<kernel.Constant object at 0x150f5a8>, <kernel.DependentProduct object at 0x150f200>) of role type named transitive_decl
% Using role type
% Declaring transitive:((fofType->(fofType->Prop))->Prop)
% FOF formula (((eq ((fofType->(fofType->Prop))->Prop)) transitive) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType) (Z:fofType), (((and ((R X) Y)) ((R Y) Z))->((R X) Z))))) of role definition named transitive
% A new definition: (((eq ((fofType->(fofType->Prop))->Prop)) transitive) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType) (Z:fofType), (((and ((R X) Y)) ((R Y) Z))->((R X) Z)))))
% Defined: transitive:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType) (Z:fofType), (((and ((R X) Y)) ((R Y) Z))->((R X) Z))))
% FOF formula (<kernel.Constant object at 0x150f200>, <kernel.DependentProduct object at 0x150fd88>) of role type named equiv_rel__decl
% Using role type
% Declaring equiv_rel:((fofType->(fofType->Prop))->Prop)
% FOF formula (((eq ((fofType->(fofType->Prop))->Prop)) equiv_rel) (fun (R:(fofType->(fofType->Prop)))=> ((and ((and (reflexive R)) (symmetric R))) (transitive R)))) of role definition named equiv_rel
% A new definition: (((eq ((fofType->(fofType->Prop))->Prop)) equiv_rel) (fun (R:(fofType->(fofType->Prop)))=> ((and ((and (reflexive R)) (symmetric R))) (transitive R))))
% Defined: equiv_rel:=(fun (R:(fofType->(fofType->Prop)))=> ((and ((and (reflexive R)) (symmetric R))) (transitive R)))
% FOF formula (<kernel.Constant object at 0x150fd88>, <kernel.DependentProduct object at 0x150f710>) of role type named rel_codomain_decl
% Using role type
% Declaring rel_codomain:((fofType->(fofType->Prop))->(fofType->Prop))
% FOF formula (((eq ((fofType->(fofType->Prop))->(fofType->Prop))) rel_codomain) (fun (R:(fofType->(fofType->Prop))) (Y:fofType)=> ((ex fofType) (fun (X:fofType)=> ((R X) Y))))) of role definition named rel_codomain
% A new definition: (((eq ((fofType->(fofType->Prop))->(fofType->Prop))) rel_codomain) (fun (R:(fofType->(fofType->Prop))) (Y:fofType)=> ((ex fofType) (fun (X:fofType)=> ((R X) Y)))))
% Defined: rel_codomain:=(fun (R:(fofType->(fofType->Prop))) (Y:fofType)=> ((ex fofType) (fun (X:fofType)=> ((R X) Y))))
% FOF formula (<kernel.Constant object at 0x150f710>, <kernel.DependentProduct object at 0x150f518>) of role type named rel_domain_decl
% Using role type
% Declaring rel_domain:((fofType->(fofType->Prop))->(fofType->Prop))
% FOF formula (((eq ((fofType->(fofType->Prop))->(fofType->Prop))) rel_domain) (fun (R:(fofType->(fofType->Prop))) (X:fofType)=> ((ex fofType) (fun (Y:fofType)=> ((R X) Y))))) of role definition named rel_domain
% A new definition: (((eq ((fofType->(fofType->Prop))->(fofType->Prop))) rel_domain) (fun (R:(fofType->(fofType->Prop))) (X:fofType)=> ((ex fofType) (fun (Y:fofType)=> ((R X) Y)))))
% Defined: rel_domain:=(fun (R:(fofType->(fofType->Prop))) (X:fofType)=> ((ex fofType) (fun (Y:fofType)=> ((R X) Y))))
% FOF formula (<kernel.Constant object at 0x150f518>, <kernel.DependentProduct object at 0x150fab8>) of role type named rel_inverse_decl
% Using role type
% Declaring rel_inverse:((fofType->(fofType->Prop))->(fofType->(fofType->Prop)))
% FOF formula (((eq ((fofType->(fofType->Prop))->(fofType->(fofType->Prop)))) rel_inverse) (fun (R:(fofType->(fofType->Prop))) (X:fofType) (Y:fofType)=> ((R Y) X))) of role definition named rel_inverse
% A new definition: (((eq ((fofType->(fofType->Prop))->(fofType->(fofType->Prop)))) rel_inverse) (fun (R:(fofType->(fofType->Prop))) (X:fofType) (Y:fofType)=> ((R Y) X)))
% Defined: rel_inverse:=(fun (R:(fofType->(fofType->Prop))) (X:fofType) (Y:fofType)=> ((R Y) X))
% FOF formula (<kernel.Constant object at 0x150fab8>, <kernel.DependentProduct object at 0x150f3f8>) of role type named equiv_classes_decl
% Using role type
% Declaring equiv_classes:((fofType->(fofType->Prop))->((fofType->Prop)->Prop))
% FOF formula (((eq ((fofType->(fofType->Prop))->((fofType->Prop)->Prop))) equiv_classes) (fun (R:(fofType->(fofType->Prop))) (S1:(fofType->Prop))=> ((ex fofType) (fun (X:fofType)=> ((and (S1 X)) (forall (Y:fofType), ((iff (S1 Y)) ((R X) Y)))))))) of role definition named equiv_classes
% A new definition: (((eq ((fofType->(fofType->Prop))->((fofType->Prop)->Prop))) equiv_classes) (fun (R:(fofType->(fofType->Prop))) (S1:(fofType->Prop))=> ((ex fofType) (fun (X:fofType)=> ((and (S1 X)) (forall (Y:fofType), ((iff (S1 Y)) ((R X) Y))))))))
% Defined: equiv_classes:=(fun (R:(fofType->(fofType->Prop))) (S1:(fofType->Prop))=> ((ex fofType) (fun (X:fofType)=> ((and (S1 X)) (forall (Y:fofType), ((iff (S1 Y)) ((R X) Y)))))))
% FOF formula (<kernel.Constant object at 0x150f3f8>, <kernel.DependentProduct object at 0x150f098>) of role type named restrict_rel_codomain_decl
% Using role type
% Declaring restrict_rel_codomain:((fofType->(fofType->Prop))->((fofType->Prop)->(fofType->(fofType->Prop))))
% FOF formula (((eq ((fofType->(fofType->Prop))->((fofType->Prop)->(fofType->(fofType->Prop))))) restrict_rel_codomain) (fun (R:(fofType->(fofType->Prop))) (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S Y)) ((R X) Y)))) of role definition named restrict_rel_codomain
% A new definition: (((eq ((fofType->(fofType->Prop))->((fofType->Prop)->(fofType->(fofType->Prop))))) restrict_rel_codomain) (fun (R:(fofType->(fofType->Prop))) (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S Y)) ((R X) Y))))
% Defined: restrict_rel_codomain:=(fun (R:(fofType->(fofType->Prop))) (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S Y)) ((R X) Y)))
% FOF formula (<kernel.Constant object at 0x150f098>, <kernel.DependentProduct object at 0x150fe18>) of role type named rel_field_decl
% Using role type
% Declaring rel_field:((fofType->(fofType->Prop))->(fofType->Prop))
% FOF formula (((eq ((fofType->(fofType->Prop))->(fofType->Prop))) rel_field) (fun (R:(fofType->(fofType->Prop))) (X:fofType)=> ((or ((rel_domain R) X)) ((rel_codomain R) X)))) of role definition named rel_field
% A new definition: (((eq ((fofType->(fofType->Prop))->(fofType->Prop))) rel_field) (fun (R:(fofType->(fofType->Prop))) (X:fofType)=> ((or ((rel_domain R) X)) ((rel_codomain R) X))))
% Defined: rel_field:=(fun (R:(fofType->(fofType->Prop))) (X:fofType)=> ((or ((rel_domain R) X)) ((rel_codomain R) X)))
% FOF formula (<kernel.Constant object at 0x150fe18>, <kernel.DependentProduct object at 0x150fab8>) of role type named well_founded_decl
% Using role type
% Declaring well_founded:((fofType->(fofType->Prop))->Prop)
% FOF formula (((eq ((fofType->(fofType->Prop))->Prop)) well_founded) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:(fofType->Prop)) (Z:fofType), ((X Z)->((ex fofType) (fun (Y:fofType)=> ((and (X Y)) (forall (W:fofType), (((R Y) W)->((X W)->False)))))))))) of role definition named well_founded
% A new definition: (((eq ((fofType->(fofType->Prop))->Prop)) well_founded) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:(fofType->Prop)) (Z:fofType), ((X Z)->((ex fofType) (fun (Y:fofType)=> ((and (X Y)) (forall (W:fofType), (((R Y) W)->((X W)->False))))))))))
% Defined: well_founded:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:(fofType->Prop)) (Z:fofType), ((X Z)->((ex fofType) (fun (Y:fofType)=> ((and (X Y)) (forall (W:fofType), (((R Y) W)->((X W)->False)))))))))
% FOF formula (<kernel.Constant object at 0x150fab8>, <kernel.DependentProduct object at 0x150f098>) of role type named upwards_well_founded_decl
% Using role type
% Declaring upwards_well_founded:((fofType->(fofType->Prop))->Prop)
% FOF formula (((eq ((fofType->(fofType->Prop))->Prop)) upwards_well_founded) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:(fofType->Prop)) (Z:fofType), ((X Z)->((ex fofType) (fun (Y:fofType)=> ((and (X Y)) (forall (W:fofType), (((R Y) Y)->((X W)->False)))))))))) of role definition named upwards_well_founded
% A new definition: (((eq ((fofType->(fofType->Prop))->Prop)) upwards_well_founded) (fun (R:(fofType->(fofType->Prop)))=> (forall (X:(fofType->Prop)) (Z:fofType), ((X Z)->((ex fofType) (fun (Y:fofType)=> ((and (X Y)) (forall (W:fofType), (((R Y) Y)->((X W)->False))))))))))
% Defined: upwards_well_founded:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:(fofType->Prop)) (Z:fofType), ((X Z)->((ex fofType) (fun (Y:fofType)=> ((and (X Y)) (forall (W:fofType), (((R Y) Y)->((X W)->False)))))))))
% FOF formula (forall (Z:(fofType->Prop)) (R:(fofType->(fofType->Prop))) (X:(fofType->Prop)) (Y:(fofType->Prop)), (((and (((is_rel_on R) X) Y)) ((subset Y) Z))->(((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) R))) of role conjecture named thm
% Conjecture to prove = (forall (Z:(fofType->Prop)) (R:(fofType->(fofType->Prop))) (X:(fofType->Prop)) (Y:(fofType->Prop)), (((and (((is_rel_on R) X) Y)) ((subset Y) Z))->(((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) R))):Prop
% Parameter fofType_DUMMY:fofType.
% We need to prove ['(forall (Z:(fofType->Prop)) (R:(fofType->(fofType->Prop))) (X:(fofType->Prop)) (Y:(fofType->Prop)), (((and (((is_rel_on R) X) Y)) ((subset Y) Z))->(((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) R)))']
% Parameter fofType:Type.
% Definition in:=(fun (X:fofType) (M:(fofType->Prop))=> (M X)):(fofType->((fofType->Prop)->Prop)).
% Definition is_a:=(fun (X:fofType) (M:(fofType->Prop))=> (M X)):(fofType->((fofType->Prop)->Prop)).
% Definition emptyset:=(fun (X:fofType)=> False):(fofType->Prop).
% Definition unord_pair:=(fun (X:fofType) (Y:fofType) (U:fofType)=> ((or (((eq fofType) U) X)) (((eq fofType) U) Y))):(fofType->(fofType->(fofType->Prop))).
% Definition singleton:=(fun (X:fofType) (U:fofType)=> (((eq fofType) U) X)):(fofType->(fofType->Prop)).
% Definition union:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((or (X U)) (Y U))):((fofType->Prop)->((fofType->Prop)->(fofType->Prop))).
% Definition excl_union:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((or ((and (X U)) ((Y U)->False))) ((and ((X U)->False)) (Y U)))):((fofType->Prop)->((fofType->Prop)->(fofType->Prop))).
% Definition intersection:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((and (X U)) (Y U))):((fofType->Prop)->((fofType->Prop)->(fofType->Prop))).
% Definition setminus:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((and (X U)) ((Y U)->False))):((fofType->Prop)->((fofType->Prop)->(fofType->Prop))).
% Definition complement:=(fun (X:(fofType->Prop)) (U:fofType)=> ((X U)->False)):((fofType->Prop)->(fofType->Prop)).
% Definition disjoint:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (((eq (fofType->Prop)) ((intersection X) Y)) emptyset)):((fofType->Prop)->((fofType->Prop)->Prop)).
% Definition subset:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (forall (U:fofType), ((X U)->(Y U)))):((fofType->Prop)->((fofType->Prop)->Prop)).
% Definition meets:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> ((ex fofType) (fun (U:fofType)=> ((and (X U)) (Y U))))):((fofType->Prop)->((fofType->Prop)->Prop)).
% Definition misses:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (((ex fofType) (fun (U:fofType)=> ((and (X U)) (Y U))))->False)):((fofType->Prop)->((fofType->Prop)->Prop)).
% Definition cartesian_product:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType) (V:fofType)=> ((and (X U)) (Y V))):((fofType->Prop)->((fofType->Prop)->(fofType->(fofType->Prop)))).
% Definition pair_rel:=(fun (X:fofType) (Y:fofType) (U:fofType) (V:fofType)=> ((or (((eq fofType) U) X)) (((eq fofType) V) Y))):(fofType->(fofType->(fofType->(fofType->Prop)))).
% Definition id_rel:=(fun (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S X)) (((eq fofType) X) Y))):((fofType->Prop)->(fofType->(fofType->Prop))).
% Definition sub_rel:=(fun (R1:(fofType->(fofType->Prop))) (R2:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType), (((R1 X) Y)->((R2 X) Y)))):((fofType->(fofType->Prop))->((fofType->(fofType->Prop))->Prop)).
% Definition is_rel_on:=(fun (R:(fofType->(fofType->Prop))) (A:(fofType->Prop)) (B:(fofType->Prop))=> (forall (X:fofType) (Y:fofType), (((R X) Y)->((and (A X)) (B Y))))):((fofType->(fofType->Prop))->((fofType->Prop)->((fofType->Prop)->Prop))).
% Definition restrict_rel_domain:=(fun (R:(fofType->(fofType->Prop))) (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S X)) ((R X) Y))):((fofType->(fofType->Prop))->((fofType->Prop)->(fofType->(fofType->Prop)))).
% Definition rel_diagonal:=(fun (X:fofType) (Y:fofType)=> (((eq fofType) X) Y)):(fofType->(fofType->Prop)).
% Definition rel_composition:=(fun (R1:(fofType->(fofType->Prop))) (R2:(fofType->(fofType->Prop))) (X:fofType) (Z:fofType)=> ((ex fofType) (fun (Y:fofType)=> ((and ((R1 X) Y)) ((R2 Y) Z))))):((fofType->(fofType->Prop))->((fofType->(fofType->Prop))->(fofType->(fofType->Prop)))).
% Definition reflexive:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType), ((R X) X))):((fofType->(fofType->Prop))->Prop).
% Definition irreflexive:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType), (((R X) X)->False))):((fofType->(fofType->Prop))->Prop).
% Definition symmetric:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType), (((R X) Y)->((R Y) X)))):((fofType->(fofType->Prop))->Prop).
% Definition transitive:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:fofType) (Y:fofType) (Z:fofType), (((and ((R X) Y)) ((R Y) Z))->((R X) Z)))):((fofType->(fofType->Prop))->Prop).
% Definition equiv_rel:=(fun (R:(fofType->(fofType->Prop)))=> ((and ((and (reflexive R)) (symmetric R))) (transitive R))):((fofType->(fofType->Prop))->Prop).
% Definition rel_codomain:=(fun (R:(fofType->(fofType->Prop))) (Y:fofType)=> ((ex fofType) (fun (X:fofType)=> ((R X) Y)))):((fofType->(fofType->Prop))->(fofType->Prop)).
% Definition rel_domain:=(fun (R:(fofType->(fofType->Prop))) (X:fofType)=> ((ex fofType) (fun (Y:fofType)=> ((R X) Y)))):((fofType->(fofType->Prop))->(fofType->Prop)).
% Definition rel_inverse:=(fun (R:(fofType->(fofType->Prop))) (X:fofType) (Y:fofType)=> ((R Y) X)):((fofType->(fofType->Prop))->(fofType->(fofType->Prop))).
% Definition equiv_classes:=(fun (R:(fofType->(fofType->Prop))) (S1:(fofType->Prop))=> ((ex fofType) (fun (X:fofType)=> ((and (S1 X)) (forall (Y:fofType), ((iff (S1 Y)) ((R X) Y))))))):((fofType->(fofType->Prop))->((fofType->Prop)->Prop)).
% Definition restrict_rel_codomain:=(fun (R:(fofType->(fofType->Prop))) (S:(fofType->Prop)) (X:fofType) (Y:fofType)=> ((and (S Y)) ((R X) Y))):((fofType->(fofType->Prop))->((fofType->Prop)->(fofType->(fofType->Prop)))).
% Definition rel_field:=(fun (R:(fofType->(fofType->Prop))) (X:fofType)=> ((or ((rel_domain R) X)) ((rel_codomain R) X))):((fofType->(fofType->Prop))->(fofType->Prop)).
% Definition well_founded:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:(fofType->Prop)) (Z:fofType), ((X Z)->((ex fofType) (fun (Y:fofType)=> ((and (X Y)) (forall (W:fofType), (((R Y) W)->((X W)->False))))))))):((fofType->(fofType->Prop))->Prop).
% Definition upwards_well_founded:=(fun (R:(fofType->(fofType->Prop)))=> (forall (X:(fofType->Prop)) (Z:fofType), ((X Z)->((ex fofType) (fun (Y:fofType)=> ((and (X Y)) (forall (W:fofType), (((R Y) Y)->((X W)->False))))))))):((fofType->(fofType->Prop))->Prop).
% Trying to prove (forall (Z:(fofType->Prop)) (R:(fofType->(fofType->Prop))) (X:(fofType->Prop)) (Y:(fofType->Prop)), (((and (((is_rel_on R) X) Y)) ((subset Y) Z))->(((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) R)))
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->(fofType->Prop))) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found eta_expansion000:=(eta_expansion00 ((restrict_rel_codomain R) Z)):(((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) (fun (x:fofType)=> (((restrict_rel_codomain R) Z) x)))
% Found (eta_expansion00 ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found ((eta_expansion0 (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found (((eta_expansion fofType) (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found (((eta_expansion fofType) (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found (((eta_expansion fofType) (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->(fofType->Prop))) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found eta_expansion000:=(eta_expansion00 ((restrict_rel_codomain R) Z)):(((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) (fun (x:fofType)=> (((restrict_rel_codomain R) Z) x)))
% Found (eta_expansion00 ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found ((eta_expansion0 (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found (((eta_expansion fofType) (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found (((eta_expansion fofType) (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found (((eta_expansion fofType) (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->(fofType->Prop))) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found eta_expansion000:=(eta_expansion00 R):(((eq (fofType->(fofType->Prop))) R) (fun (x:fofType)=> (R x)))
% Found (eta_expansion00 R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found ((eta_expansion0 (fofType->Prop)) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found (((eta_expansion fofType) (fofType->Prop)) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found (((eta_expansion fofType) (fofType->Prop)) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found (((eta_expansion fofType) (fofType->Prop)) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->Prop)) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found eta_expansion_dep000:=(eta_expansion_dep00 (((restrict_rel_codomain R) Z) x0)):(((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) (fun (x:fofType)=> ((((restrict_rel_codomain R) Z) x0) x)))
% Found (eta_expansion_dep00 (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found ((eta_expansion_dep0 (fun (x2:fofType)=> Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found (((eta_expansion_dep fofType) (fun (x2:fofType)=> Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found (((eta_expansion_dep fofType) (fun (x2:fofType)=> Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found (((eta_expansion_dep fofType) (fun (x2:fofType)=> Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->Prop)) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found eq_ref00:=(eq_ref0 (((restrict_rel_codomain R) Z) x0)):(((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) (((restrict_rel_codomain R) Z) x0))
% Found (eq_ref0 (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found x00:(P R)
% Found (fun (x00:(P R))=> x00) as proof of (P R)
% Found (fun (x00:(P R))=> x00) as proof of (P0 R)
% Found x00:(P R)
% Found (fun (x00:(P R))=> x00) as proof of (P R)
% Found (fun (x00:(P R))=> x00) as proof of (P0 R)
% Found x10:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found x10:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found x10:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found x10:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found eq_ref00:=(eq_ref0 ((((restrict_rel_codomain R) Z) x0) y)):(((eq Prop) ((((restrict_rel_codomain R) Z) x0) y)) ((((restrict_rel_codomain R) Z) x0) y))
% Found (eq_ref0 ((((restrict_rel_codomain R) Z) x0) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) y)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) y)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) y)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) y)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((R x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) y))
% Found x00:(P R)
% Found (fun (x00:(P R))=> x00) as proof of (P R)
% Found (fun (x00:(P R))=> x00) as proof of (P0 R)
% Found x10:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found x10:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x10:(P (((restrict_rel_codomain R) Z) x0)))=> x10) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found x10:(P ((((restrict_rel_codomain R) Z) x0) y))
% Found (fun (x10:(P ((((restrict_rel_codomain R) Z) x0) y)))=> x10) as proof of (P ((((restrict_rel_codomain R) Z) x0) y))
% Found (fun (x10:(P ((((restrict_rel_codomain R) Z) x0) y)))=> x10) as proof of (P0 ((((restrict_rel_codomain R) Z) x0) y))
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->(fofType->Prop))) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found eta_expansion_dep000:=(eta_expansion_dep00 R):(((eq (fofType->(fofType->Prop))) R) (fun (x:fofType)=> (R x)))
% Found (eta_expansion_dep00 R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found ((eta_expansion_dep0 (fun (x3:fofType)=> (fofType->Prop))) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found (((eta_expansion_dep fofType) (fun (x3:fofType)=> (fofType->Prop))) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found (((eta_expansion_dep fofType) (fun (x3:fofType)=> (fofType->Prop))) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found (((eta_expansion_dep fofType) (fun (x3:fofType)=> (fofType->Prop))) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->(fofType->Prop))) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) ((restrict_rel_codomain R) Z))
% Found eta_expansion_dep000:=(eta_expansion_dep00 R):(((eq (fofType->(fofType->Prop))) R) (fun (x:fofType)=> (R x)))
% Found (eta_expansion_dep00 R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found ((eta_expansion_dep0 (fun (x3:fofType)=> (fofType->Prop))) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found (((eta_expansion_dep fofType) (fun (x3:fofType)=> (fofType->Prop))) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found (((eta_expansion_dep fofType) (fun (x3:fofType)=> (fofType->Prop))) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found (((eta_expansion_dep fofType) (fun (x3:fofType)=> (fofType->Prop))) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->Prop)) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->Prop)) b) (R x2))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x2))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x2))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x2))
% Found eq_ref00:=(eq_ref0 (((restrict_rel_codomain R) Z) x2)):(((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) (((restrict_rel_codomain R) Z) x2))
% Found (eq_ref0 (((restrict_rel_codomain R) Z) x2)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->Prop)) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->Prop)) b) (R x2))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x2))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x2))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x2))
% Found eq_ref00:=(eq_ref0 (((restrict_rel_codomain R) Z) x2)):(((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) (((restrict_rel_codomain R) Z) x2))
% Found (eq_ref0 (((restrict_rel_codomain R) Z) x2)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x2)) b)
% Found x20:(P R)
% Found (fun (x20:(P R))=> x20) as proof of (P R)
% Found (fun (x20:(P R))=> x20) as proof of (P0 R)
% Found x20:(P R)
% Found (fun (x20:(P R))=> x20) as proof of (P R)
% Found (fun (x20:(P R))=> x20) as proof of (P0 R)
% Found eq_ref00:=(eq_ref0 (R x0)):(((eq (fofType->Prop)) (R x0)) (R x0))
% Found (eq_ref0 (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found ((eq_ref (fofType->Prop)) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found ((eq_ref (fofType->Prop)) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found ((eq_ref (fofType->Prop)) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) 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) (((restrict_rel_codomain R) Z) x0))
% Found ((eta_expansion_dep0 (fun (x2:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found (((eta_expansion_dep fofType) (fun (x2:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found (((eta_expansion_dep fofType) (fun (x2:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found (((eta_expansion_dep fofType) (fun (x2:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found eta_expansion000:=(eta_expansion00 (R x0)):(((eq (fofType->Prop)) (R x0)) (fun (x:fofType)=> ((R x0) x)))
% Found (eta_expansion00 (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found ((eta_expansion0 Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found (((eta_expansion fofType) Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found (((eta_expansion fofType) Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found (((eta_expansion fofType) Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->Prop)) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found x30:(P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x2))
% Found eta_expansion000:=(eta_expansion00 (R x0)):(((eq (fofType->Prop)) (R x0)) (fun (x:fofType)=> ((R x0) x)))
% Found (eta_expansion00 (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found ((eta_expansion0 Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found (((eta_expansion fofType) Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found (((eta_expansion fofType) Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found (((eta_expansion fofType) Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->Prop)) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found x30:(P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x2))
% Found eta_expansion000:=(eta_expansion00 (R x0)):(((eq (fofType->Prop)) (R x0)) (fun (x:fofType)=> ((R x0) x)))
% Found (eta_expansion00 (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found ((eta_expansion0 Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found (((eta_expansion fofType) Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found (((eta_expansion fofType) Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) b)
% Found (((eta_expansion fofType) Prop) (R x0)) as proof of (((eq (fofType->Prop)) (R x0)) 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) (((restrict_rel_codomain R) Z) x0))
% Found ((eta_expansion_dep0 (fun (x2:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found (((eta_expansion_dep fofType) (fun (x2:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found (((eta_expansion_dep fofType) (fun (x2:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found (((eta_expansion_dep fofType) (fun (x2:fofType)=> Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x0))
% Found x30:(P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x2))
% Found x30:(P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x2))
% Found eq_ref00:=(eq_ref0 ((((restrict_rel_codomain R) Z) x2) y)):(((eq Prop) ((((restrict_rel_codomain R) Z) x2) y)) ((((restrict_rel_codomain R) Z) x2) y))
% Found (eq_ref0 ((((restrict_rel_codomain R) Z) x2) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x2) y)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x2) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x2) y)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x2) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x2) y)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x2) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x2) y)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((R x2) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x2) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x2) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x2) y))
% Found x20:(P R)
% Found (fun (x20:(P R))=> x20) as proof of (P R)
% Found (fun (x20:(P R))=> x20) as proof of (P0 R)
% Found eq_ref00:=(eq_ref0 ((((restrict_rel_codomain R) Z) x0) x1)):(((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) ((((restrict_rel_codomain R) Z) x0) x1))
% Found (eq_ref0 ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found eq_ref00:=(eq_ref0 ((((restrict_rel_codomain R) Z) x0) x1)):(((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) ((((restrict_rel_codomain R) Z) x0) x1))
% Found (eq_ref0 ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->Prop)) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found eq_ref00:=(eq_ref0 (((restrict_rel_codomain R) Z) x0)):(((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) (((restrict_rel_codomain R) Z) x0))
% Found (eq_ref0 (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->Prop)) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (R x0))
% Found eq_ref00:=(eq_ref0 (((restrict_rel_codomain R) Z) x0)):(((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) (((restrict_rel_codomain R) Z) x0))
% Found (eq_ref0 (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found ((eq_ref (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) as proof of (((eq (fofType->Prop)) (((restrict_rel_codomain R) Z) x0)) b)
% Found x20:(P R)
% Found (fun (x20:(P R))=> x20) as proof of (P R)
% Found (fun (x20:(P R))=> x20) as proof of (P0 R)
% Found x20:(P R)
% Found (fun (x20:(P R))=> x20) as proof of (P R)
% Found (fun (x20:(P R))=> x20) as proof of (P0 R)
% Found x30:(P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x2))
% Found x30:(P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x2))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x2)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x2))
% Found x10:(P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P0 (R x0))
% Found x10:(P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P0 (R x0))
% Found x10:(P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P0 (R x0))
% Found x10:(P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P0 (R x0))
% Found x10:(P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P0 (R x0))
% Found x10:(P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P0 (R x0))
% Found eq_ref00:=(eq_ref0 ((((restrict_rel_codomain R) Z) x0) x1)):(((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) ((((restrict_rel_codomain R) Z) x0) x1))
% Found (eq_ref0 ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found eq_ref00:=(eq_ref0 ((((restrict_rel_codomain R) Z) x0) x1)):(((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) ((((restrict_rel_codomain R) Z) x0) x1))
% Found (eq_ref0 ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) x1)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) x1)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) x1))
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((((restrict_rel_codomain R) Z) x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((((restrict_rel_codomain R) Z) x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((((restrict_rel_codomain R) Z) x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((((restrict_rel_codomain R) Z) x0) y))
% Found eq_ref00:=(eq_ref0 ((R x0) y)):(((eq Prop) ((R x0) y)) ((R x0) y))
% Found (eq_ref0 ((R x0) y)) as proof of (((eq Prop) ((R x0) y)) b)
% Found ((eq_ref Prop) ((R x0) y)) as proof of (((eq Prop) ((R x0) y)) b)
% Found ((eq_ref Prop) ((R x0) y)) as proof of (((eq Prop) ((R x0) y)) b)
% Found ((eq_ref Prop) ((R x0) y)) as proof of (((eq Prop) ((R x0) y)) b)
% Found eq_ref00:=(eq_ref0 ((R x0) y)):(((eq Prop) ((R x0) y)) ((R x0) y))
% Found (eq_ref0 ((R x0) y)) as proof of (((eq Prop) ((R x0) y)) b)
% Found ((eq_ref Prop) ((R x0) y)) as proof of (((eq Prop) ((R x0) y)) b)
% Found ((eq_ref Prop) ((R x0) y)) as proof of (((eq Prop) ((R x0) y)) b)
% Found ((eq_ref Prop) ((R x0) y)) as proof of (((eq Prop) ((R x0) y)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((((restrict_rel_codomain R) Z) x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((((restrict_rel_codomain R) Z) x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((((restrict_rel_codomain R) Z) x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((((restrict_rel_codomain R) Z) x0) y))
% Found x20:(P R)
% Found (fun (x20:(P R))=> x20) as proof of (P R)
% Found (fun (x20:(P R))=> x20) as proof of (P0 R)
% Found x30:(P ((((restrict_rel_codomain R) Z) x2) y))
% Found (fun (x30:(P ((((restrict_rel_codomain R) Z) x2) y)))=> x30) as proof of (P ((((restrict_rel_codomain R) Z) x2) y))
% Found (fun (x30:(P ((((restrict_rel_codomain R) Z) x2) y)))=> x30) as proof of (P0 ((((restrict_rel_codomain R) Z) x2) y))
% Found x30:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found x30:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found x30:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found x30:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found x20:(P ((((restrict_rel_codomain R) Z) x0) x1))
% Found (fun (x20:(P ((((restrict_rel_codomain R) Z) x0) x1)))=> x20) as proof of (P ((((restrict_rel_codomain R) Z) x0) x1))
% Found (fun (x20:(P ((((restrict_rel_codomain R) Z) x0) x1)))=> x20) as proof of (P0 ((((restrict_rel_codomain R) Z) x0) x1))
% Found x20:(P ((((restrict_rel_codomain R) Z) x0) x1))
% Found (fun (x20:(P ((((restrict_rel_codomain R) Z) x0) x1)))=> x20) as proof of (P ((((restrict_rel_codomain R) Z) x0) x1))
% Found (fun (x20:(P ((((restrict_rel_codomain R) Z) x0) x1)))=> x20) as proof of (P0 ((((restrict_rel_codomain R) Z) x0) x1))
% Found x10:(P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P0 (R x0))
% Found x10:(P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P0 (R x0))
% Found x10:(P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P0 (R x0))
% Found x10:(P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P (R x0))
% Found (fun (x10:(P (R x0)))=> x10) as proof of (P0 (R x0))
% Found eq_ref00:=(eq_ref0 ((((restrict_rel_codomain R) Z) x0) y)):(((eq Prop) ((((restrict_rel_codomain R) Z) x0) y)) ((((restrict_rel_codomain R) Z) x0) y))
% Found (eq_ref0 ((((restrict_rel_codomain R) Z) x0) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) y)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) y)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) y)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x0) y)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x0) y)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((R x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) y))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x0) y))
% Found x30:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found x30:(P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P (((restrict_rel_codomain R) Z) x0))
% Found (fun (x30:(P (((restrict_rel_codomain R) Z) x0)))=> x30) as proof of (P0 (((restrict_rel_codomain R) Z) x0))
% Found x20:(P ((((restrict_rel_codomain R) Z) x0) x1))
% Found (fun (x20:(P ((((restrict_rel_codomain R) Z) x0) x1)))=> x20) as proof of (P ((((restrict_rel_codomain R) Z) x0) x1))
% Found (fun (x20:(P ((((restrict_rel_codomain R) Z) x0) x1)))=> x20) as proof of (P0 ((((restrict_rel_codomain R) Z) x0) x1))
% Found x20:(P ((((restrict_rel_codomain R) Z) x0) x1))
% Found (fun (x20:(P ((((restrict_rel_codomain R) Z) x0) x1)))=> x20) as proof of (P ((((restrict_rel_codomain R) Z) x0) x1))
% Found (fun (x20:(P ((((restrict_rel_codomain R) Z) x0) x1)))=> x20) as proof of (P0 ((((restrict_rel_codomain R) Z) x0) x1))
% Found x10:(P ((R x0) y))
% Found (fun (x10:(P ((R x0) y)))=> x10) as proof of (P ((R x0) y))
% Found (fun (x10:(P ((R x0) y)))=> x10) as proof of (P0 ((R x0) y))
% Found x0:(P ((restrict_rel_codomain R) Z))
% Instantiate: b:=((restrict_rel_codomain R) Z):(fofType->(fofType->Prop))
% Found x0 as proof of (P0 b)
% Found eq_ref00:=(eq_ref0 R):(((eq (fofType->(fofType->Prop))) R) R)
% Found (eq_ref0 R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found ((eq_ref (fofType->(fofType->Prop))) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found ((eq_ref (fofType->(fofType->Prop))) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found ((eq_ref (fofType->(fofType->Prop))) R) as proof of (((eq (fofType->(fofType->Prop))) R) b)
% Found x0:(P ((restrict_rel_codomain R) Z))
% Instantiate: f:=((restrict_rel_codomain R) Z):(fofType->(fofType->Prop))
% Found x0 as proof of (P0 f)
% Found eq_ref00:=(eq_ref0 (f x1)):(((eq (fofType->Prop)) (f x1)) (f x1))
% Found (eq_ref0 (f x1)) as proof of (((eq (fofType->Prop)) (f x1)) (R x1))
% Found ((eq_ref (fofType->Prop)) (f x1)) as proof of (((eq (fofType->Prop)) (f x1)) (R x1))
% Found ((eq_ref (fofType->Prop)) (f x1)) as proof of (((eq (fofType->Prop)) (f x1)) (R x1))
% Found (fun (x1:fofType)=> ((eq_ref (fofType->Prop)) (f x1))) as proof of (((eq (fofType->Prop)) (f x1)) (R x1))
% Found (fun (x1:fofType)=> ((eq_ref (fofType->Prop)) (f x1))) as proof of (forall (x:fofType), (((eq (fofType->Prop)) (f x)) (R x)))
% Found x0:(P ((restrict_rel_codomain R) Z))
% Instantiate: f:=((restrict_rel_codomain R) Z):(fofType->(fofType->Prop))
% Found x0 as proof of (P0 f)
% Found eq_ref00:=(eq_ref0 (f x1)):(((eq (fofType->Prop)) (f x1)) (f x1))
% Found (eq_ref0 (f x1)) as proof of (((eq (fofType->Prop)) (f x1)) (R x1))
% Found ((eq_ref (fofType->Prop)) (f x1)) as proof of (((eq (fofType->Prop)) (f x1)) (R x1))
% Found ((eq_ref (fofType->Prop)) (f x1)) as proof of (((eq (fofType->Prop)) (f x1)) (R x1))
% Found (fun (x1:fofType)=> ((eq_ref (fofType->Prop)) (f x1))) as proof of (((eq (fofType->Prop)) (f x1)) (R x1))
% Found (fun (x1:fofType)=> ((eq_ref (fofType->Prop)) (f x1))) as proof of (forall (x:fofType), (((eq (fofType->Prop)) (f x)) (R x)))
% Found x30:(P ((((restrict_rel_codomain R) Z) x0) y))
% Found (fun (x30:(P ((((restrict_rel_codomain R) Z) x0) y)))=> x30) as proof of (P ((((restrict_rel_codomain R) Z) x0) y))
% Found (fun (x30:(P ((((restrict_rel_codomain R) Z) x0) y)))=> x30) as proof of (P0 ((((restrict_rel_codomain R) Z) x0) y))
% Found x0:(P ((restrict_rel_codomain R) Z))
% Instantiate: f:=((restrict_rel_codomain R) Z):(fofType->(fofType->Prop))
% Found x0 as proof of (P0 f)
% Found eq_ref00:=(eq_ref0 ((f x1) y)):(((eq Prop) ((f x1) y)) ((f x1) y))
% Found (eq_ref0 ((f x1) y)) as proof of (((eq Prop) ((f x1) y)) ((R x1) y))
% Found ((eq_ref Prop) ((f x1) y)) as proof of (((eq Prop) ((f x1) y)) ((R x1) y))
% Found ((eq_ref Prop) ((f x1) y)) as proof of (((eq Prop) ((f x1) y)) ((R x1) y))
% Found (fun (y:fofType)=> ((eq_ref Prop) ((f x1) y))) as proof of (((eq Prop) ((f x1) y)) ((R x1) y))
% Found (fun (x1:fofType) (y:fofType)=> ((eq_ref Prop) ((f x1) y))) as proof of (forall (y:fofType), (((eq Prop) ((f x1) y)) ((R x1) y)))
% Found (fun (x1:fofType) (y:fofType)=> ((eq_ref Prop) ((f x1) y))) as proof of (forall (x:fofType) (y:fofType), (((eq Prop) ((f x) y)) ((R x) y)))
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->(fofType->Prop))) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found ((eq_ref (fofType->(fofType->Prop))) b) as proof of (((eq (fofType->(fofType->Prop))) b) R)
% Found eta_expansion000:=(eta_expansion00 ((restrict_rel_codomain R) Z)):(((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) (fun (x:fofType)=> (((restrict_rel_codomain R) Z) x)))
% Found (eta_expansion00 ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found ((eta_expansion0 (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found (((eta_expansion fofType) (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found (((eta_expansion fofType) (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) b)
% Found (((eta_expansion fofType) (fofType->Prop)) ((restrict_rel_codomain R) Z)) as proof of (((eq (fofType->(fofType->Prop))) ((restrict_rel_codomain R) Z)) 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) (((restrict_rel_codomain R) Z) x2))
% Found ((eta_expansion0 Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found eq_ref00:=(eq_ref0 (R x2)):(((eq (fofType->Prop)) (R x2)) (R x2))
% Found (eq_ref0 (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found ((eq_ref (fofType->Prop)) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found ((eq_ref (fofType->Prop)) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found ((eq_ref (fofType->Prop)) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found eq_ref00:=(eq_ref0 (R x2)):(((eq (fofType->Prop)) (R x2)) (R x2))
% Found (eq_ref0 (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found ((eq_ref (fofType->Prop)) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found ((eq_ref (fofType->Prop)) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found ((eq_ref (fofType->Prop)) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) 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) (((restrict_rel_codomain R) Z) x2))
% Found ((eta_expansion0 Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found eta_expansion000:=(eta_expansion00 (R x2)):(((eq (fofType->Prop)) (R x2)) (fun (x:fofType)=> ((R x2) x)))
% Found (eta_expansion00 (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found ((eta_expansion0 Prop) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found (((eta_expansion fofType) Prop) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found (((eta_expansion fofType) Prop) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found (((eta_expansion fofType) Prop) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) 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) (((restrict_rel_codomain R) Z) x2))
% Found ((eta_expansion0 Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found (((eta_expansion fofType) Prop) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found eq_ref00:=(eq_ref0 (R x2)):(((eq (fofType->Prop)) (R x2)) (R x2))
% Found (eq_ref0 (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found ((eq_ref (fofType->Prop)) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found ((eq_ref (fofType->Prop)) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found ((eq_ref (fofType->Prop)) (R x2)) as proof of (((eq (fofType->Prop)) (R x2)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq (fofType->Prop)) b) b)
% Found (eq_ref0 b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found ((eq_ref (fofType->Prop)) b) as proof of (((eq (fofType->Prop)) b) (((restrict_rel_codomain R) Z) x2))
% Found eq_ref00:=(eq_ref0 ((((restrict_rel_codomain R) Z) x2) x3)):(((eq Prop) ((((restrict_rel_codomain R) Z) x2) x3)) ((((restrict_rel_codomain R) Z) x2) x3))
% Found (eq_ref0 ((((restrict_rel_codomain R) Z) x2) x3)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x2) x3)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x2) x3)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x2) x3)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x2) x3)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x2) x3)) b)
% Found ((eq_ref Prop) ((((restrict_rel_codomain R) Z) x2) x3)) as proof of (((eq Prop) ((((restrict_rel_codomain R) Z) x2) x3)) b)
% Found eq_ref00:=(eq_ref0 b):(((eq Prop) b) b)
% Found (eq_ref0 b) as proof of (((eq Prop) b) ((R x2) x3))
% Found ((eq_ref Prop) b) as proof of (((eq Prop) b) ((R x2) x3))
% Found ((eq_ref Prop) 
% EOF
%------------------------------------------------------------------------------