TSTP Solution File: NUM863^1 by cocATP---0.2.0

View Problem - Process Solution

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

% Computer : n095.star.cs.uiowa.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2609 0 2.40GHz
% Memory   : 32218.625MB
% OS       : Linux 3.10.0-693.2.2.el7.x86_64
% CPULimit : 300s
% DateTime : Mon Jan  8 13:11:56 EST 2018

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

% Comments : 
%------------------------------------------------------------------------------
%----No solution output by system
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03  % Problem  : NUM863^1 : TPTP v7.0.0. Released v4.1.0.
% 0.00/0.04  % Command  : python CASC.py /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.03/0.23  % Computer : n095.star.cs.uiowa.edu
% 0.03/0.23  % Model    : x86_64 x86_64
% 0.03/0.23  % CPU      : Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
% 0.03/0.23  % Memory   : 32218.625MB
% 0.03/0.23  % OS       : Linux 3.10.0-693.2.2.el7.x86_64
% 0.03/0.23  % CPULimit : 300
% 0.03/0.23  % DateTime : Fri Jan  5 15:11:19 CST 2018
% 0.03/0.23  % CPUTime  : 
% 0.07/0.25  Python 2.7.13
% 0.08/0.52  Using paths ['/home/cristobal/cocATP/CASC/TPTP/', '/export/starexec/sandbox/benchmark/', '/export/starexec/sandbox/benchmark/']
% 0.08/0.52  Failed to open /home/cristobal/cocATP/CASC/TPTP/Axioms/SET008^0.ax, trying next directory
% 0.08/0.52  FOF formula (<kernel.Constant object at 0x2b1e001d2a70>, <kernel.DependentProduct object at 0x2b1e001d27a0>) of role type named in_decl
% 0.08/0.52  Using role type
% 0.08/0.52  Declaring in:(fofType->((fofType->Prop)->Prop))
% 0.08/0.52  FOF formula (((eq (fofType->((fofType->Prop)->Prop))) in) (fun (X:fofType) (M:(fofType->Prop))=> (M X))) of role definition named in
% 0.08/0.52  A new definition: (((eq (fofType->((fofType->Prop)->Prop))) in) (fun (X:fofType) (M:(fofType->Prop))=> (M X)))
% 0.08/0.52  Defined: in:=(fun (X:fofType) (M:(fofType->Prop))=> (M X))
% 0.08/0.52  FOF formula (<kernel.Constant object at 0x2b1e001d2a70>, <kernel.DependentProduct object at 0x2b1e001d2830>) of role type named is_a_decl
% 0.08/0.52  Using role type
% 0.08/0.52  Declaring is_a:(fofType->((fofType->Prop)->Prop))
% 0.08/0.52  FOF formula (((eq (fofType->((fofType->Prop)->Prop))) is_a) (fun (X:fofType) (M:(fofType->Prop))=> (M X))) of role definition named is_a
% 0.08/0.52  A new definition: (((eq (fofType->((fofType->Prop)->Prop))) is_a) (fun (X:fofType) (M:(fofType->Prop))=> (M X)))
% 0.08/0.52  Defined: is_a:=(fun (X:fofType) (M:(fofType->Prop))=> (M X))
% 0.08/0.52  FOF formula (<kernel.Constant object at 0x2b1e001d2830>, <kernel.DependentProduct object at 0x2b1e001d2248>) of role type named emptyset_decl
% 0.08/0.52  Using role type
% 0.08/0.52  Declaring emptyset:(fofType->Prop)
% 0.08/0.52  FOF formula (((eq (fofType->Prop)) emptyset) (fun (X:fofType)=> False)) of role definition named emptyset
% 0.08/0.52  A new definition: (((eq (fofType->Prop)) emptyset) (fun (X:fofType)=> False))
% 0.08/0.52  Defined: emptyset:=(fun (X:fofType)=> False)
% 0.08/0.52  FOF formula (<kernel.Constant object at 0x2b1e001d2248>, <kernel.DependentProduct object at 0x2b1e001d2098>) of role type named unord_pair_decl
% 0.08/0.52  Using role type
% 0.08/0.52  Declaring unord_pair:(fofType->(fofType->(fofType->Prop)))
% 0.08/0.52  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
% 0.08/0.52  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))))
% 0.08/0.52  Defined: unord_pair:=(fun (X:fofType) (Y:fofType) (U:fofType)=> ((or (((eq fofType) U) X)) (((eq fofType) U) Y)))
% 0.08/0.52  FOF formula (<kernel.Constant object at 0x2b1e001d2098>, <kernel.DependentProduct object at 0x2b1e001d2878>) of role type named singleton_decl
% 0.08/0.52  Using role type
% 0.08/0.52  Declaring singleton:(fofType->(fofType->Prop))
% 0.08/0.52  FOF formula (((eq (fofType->(fofType->Prop))) singleton) (fun (X:fofType) (U:fofType)=> (((eq fofType) U) X))) of role definition named singleton
% 0.08/0.52  A new definition: (((eq (fofType->(fofType->Prop))) singleton) (fun (X:fofType) (U:fofType)=> (((eq fofType) U) X)))
% 0.08/0.52  Defined: singleton:=(fun (X:fofType) (U:fofType)=> (((eq fofType) U) X))
% 0.08/0.52  FOF formula (<kernel.Constant object at 0x2b1e001d2878>, <kernel.DependentProduct object at 0x2b1e001d2290>) of role type named union_decl
% 0.08/0.52  Using role type
% 0.08/0.52  Declaring union:((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))
% 0.08/0.52  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
% 0.08/0.52  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))))
% 0.08/0.52  Defined: union:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((or (X U)) (Y U)))
% 0.08/0.52  FOF formula (<kernel.Constant object at 0x2b1e001a6e60>, <kernel.DependentProduct object at 0x2b1e001d2878>) of role type named excl_union_decl
% 0.08/0.52  Using role type
% 0.08/0.52  Declaring excl_union:((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))
% 0.08/0.52  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
% 0.08/0.52  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)))))
% 0.08/0.53  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))))
% 0.08/0.53  FOF formula (<kernel.Constant object at 0x2b1e001a6ab8>, <kernel.DependentProduct object at 0x2b1e001d20e0>) of role type named intersection_decl
% 0.08/0.53  Using role type
% 0.08/0.53  Declaring intersection:((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))
% 0.08/0.53  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
% 0.08/0.53  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))))
% 0.08/0.53  Defined: intersection:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((and (X U)) (Y U)))
% 0.08/0.53  FOF formula (<kernel.Constant object at 0x2b1e001d20e0>, <kernel.DependentProduct object at 0x2b1e001d2248>) of role type named setminus_decl
% 0.08/0.53  Using role type
% 0.08/0.53  Declaring setminus:((fofType->Prop)->((fofType->Prop)->(fofType->Prop)))
% 0.08/0.53  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
% 0.08/0.53  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))))
% 0.08/0.53  Defined: setminus:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop)) (U:fofType)=> ((and (X U)) ((Y U)->False)))
% 0.08/0.53  FOF formula (<kernel.Constant object at 0x2b1df7e1ba28>, <kernel.DependentProduct object at 0x2b1e001d28c0>) of role type named complement_decl
% 0.08/0.53  Using role type
% 0.08/0.53  Declaring complement:((fofType->Prop)->(fofType->Prop))
% 0.08/0.53  FOF formula (((eq ((fofType->Prop)->(fofType->Prop))) complement) (fun (X:(fofType->Prop)) (U:fofType)=> ((X U)->False))) of role definition named complement
% 0.08/0.53  A new definition: (((eq ((fofType->Prop)->(fofType->Prop))) complement) (fun (X:(fofType->Prop)) (U:fofType)=> ((X U)->False)))
% 0.08/0.53  Defined: complement:=(fun (X:(fofType->Prop)) (U:fofType)=> ((X U)->False))
% 0.08/0.53  FOF formula (<kernel.Constant object at 0x2b1e001d27e8>, <kernel.DependentProduct object at 0x2b1e001d2878>) of role type named disjoint_decl
% 0.08/0.53  Using role type
% 0.08/0.53  Declaring disjoint:((fofType->Prop)->((fofType->Prop)->Prop))
% 0.08/0.53  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
% 0.08/0.53  A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) disjoint) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (((eq (fofType->Prop)) ((intersection X) Y)) emptyset)))
% 0.08/0.53  Defined: disjoint:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (((eq (fofType->Prop)) ((intersection X) Y)) emptyset))
% 0.08/0.53  FOF formula (<kernel.Constant object at 0x2b1e001d2878>, <kernel.DependentProduct object at 0x2b1e001cc290>) of role type named subset_decl
% 0.08/0.53  Using role type
% 0.08/0.53  Declaring subset:((fofType->Prop)->((fofType->Prop)->Prop))
% 0.08/0.53  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
% 0.08/0.53  A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) subset) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (forall (U:fofType), ((X U)->(Y U)))))
% 0.08/0.53  Defined: subset:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (forall (U:fofType), ((X U)->(Y U))))
% 0.08/0.53  FOF formula (<kernel.Constant object at 0x2b1e001d28c0>, <kernel.DependentProduct object at 0x2b1e001cce18>) of role type named meets_decl
% 0.08/0.53  Using role type
% 0.08/0.53  Declaring meets:((fofType->Prop)->((fofType->Prop)->Prop))
% 0.08/0.53  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
% 0.36/0.54  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))))))
% 0.36/0.54  Defined: meets:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> ((ex fofType) (fun (U:fofType)=> ((and (X U)) (Y U)))))
% 0.36/0.54  FOF formula (<kernel.Constant object at 0x2b1e001d28c0>, <kernel.DependentProduct object at 0x2b1e001cc908>) of role type named misses_decl
% 0.36/0.54  Using role type
% 0.36/0.54  Declaring misses:((fofType->Prop)->((fofType->Prop)->Prop))
% 0.36/0.54  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
% 0.36/0.54  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)))
% 0.36/0.54  Defined: misses:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> (((ex fofType) (fun (U:fofType)=> ((and (X U)) (Y U))))->False))
% 0.36/0.54  FOF formula (<kernel.Constant object at 0x2b1dffb07488>, <kernel.DependentProduct object at 0x2b1dffb07050>) of role type named is_function_type
% 0.36/0.54  Using role type
% 0.36/0.54  Declaring is_function:((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))
% 0.36/0.54  FOF formula (((eq ((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))) is_function) (fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> (forall (E:fofType), ((X E)->(Y (F E)))))) of role definition named is_function
% 0.36/0.54  A new definition: (((eq ((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))) is_function) (fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> (forall (E:fofType), ((X E)->(Y (F E))))))
% 0.36/0.54  Defined: is_function:=(fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> (forall (E:fofType), ((X E)->(Y (F E)))))
% 0.36/0.54  FOF formula (<kernel.Constant object at 0x2b1dffb15ab8>, <kernel.DependentProduct object at 0x2b1dffb15ef0>) of role type named injection_type
% 0.36/0.54  Using role type
% 0.36/0.54  Declaring injection:((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))
% 0.36/0.54  FOF formula (((eq ((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))) injection) (fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> ((and (((is_function X) F) Y)) (forall (E1:fofType) (E2:fofType), (((and ((and (X E1)) (X E2))) (((eq fofType) (F E1)) (F E2)))->(((eq fofType) E1) E2)))))) of role definition named injection
% 0.36/0.54  A new definition: (((eq ((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))) injection) (fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> ((and (((is_function X) F) Y)) (forall (E1:fofType) (E2:fofType), (((and ((and (X E1)) (X E2))) (((eq fofType) (F E1)) (F E2)))->(((eq fofType) E1) E2))))))
% 0.36/0.54  Defined: injection:=(fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> ((and (((is_function X) F) Y)) (forall (E1:fofType) (E2:fofType), (((and ((and (X E1)) (X E2))) (((eq fofType) (F E1)) (F E2)))->(((eq fofType) E1) E2)))))
% 0.36/0.54  FOF formula (<kernel.Constant object at 0x2b1dffb15ef0>, <kernel.DependentProduct object at 0x2b1e001ceea8>) of role type named surjection_type
% 0.36/0.54  Using role type
% 0.36/0.54  Declaring surjection:((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))
% 0.36/0.54  FOF formula (((eq ((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))) surjection) (fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> ((and (((is_function X) F) Y)) (forall (E1:fofType), ((Y E1)->((ex fofType) (fun (E2:fofType)=> ((and (X E2)) (((eq fofType) (F E2)) E1))))))))) of role definition named surjection
% 0.36/0.54  A new definition: (((eq ((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))) surjection) (fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> ((and (((is_function X) F) Y)) (forall (E1:fofType), ((Y E1)->((ex fofType) (fun (E2:fofType)=> ((and (X E2)) (((eq fofType) (F E2)) E1)))))))))
% 0.36/0.54  Defined: surjection:=(fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> ((and (((is_function X) F) Y)) (forall (E1:fofType), ((Y E1)->((ex fofType) (fun (E2:fofType)=> ((and (X E2)) (((eq fofType) (F E2)) E1))))))))
% 0.37/0.56  FOF formula (<kernel.Constant object at 0x2b1dffb15ef0>, <kernel.DependentProduct object at 0x2b1e001cea28>) of role type named bijection_type
% 0.37/0.56  Using role type
% 0.37/0.56  Declaring bijection:((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))
% 0.37/0.56  FOF formula (((eq ((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))) bijection) (fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> ((and (((injection X) F) Y)) (((surjection X) F) Y)))) of role definition named bijection
% 0.37/0.56  A new definition: (((eq ((fofType->Prop)->((fofType->fofType)->((fofType->Prop)->Prop)))) bijection) (fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> ((and (((injection X) F) Y)) (((surjection X) F) Y))))
% 0.37/0.56  Defined: bijection:=(fun (X:(fofType->Prop)) (F:(fofType->fofType)) (Y:(fofType->Prop))=> ((and (((injection X) F) Y)) (((surjection X) F) Y)))
% 0.37/0.56  FOF formula (<kernel.Constant object at 0x2b1dffb15cf8>, <kernel.DependentProduct object at 0x2b1e001ceb48>) of role type named equinumerous_type
% 0.37/0.56  Using role type
% 0.37/0.56  Declaring equinumerous:((fofType->Prop)->((fofType->Prop)->Prop))
% 0.37/0.56  FOF formula (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) equinumerous) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> ((ex (fofType->fofType)) (fun (F:(fofType->fofType))=> (((bijection X) F) Y))))) of role definition named equinumerous
% 0.37/0.56  A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) equinumerous) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> ((ex (fofType->fofType)) (fun (F:(fofType->fofType))=> (((bijection X) F) Y)))))
% 0.37/0.56  Defined: equinumerous:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> ((ex (fofType->fofType)) (fun (F:(fofType->fofType))=> (((bijection X) F) Y))))
% 0.37/0.56  FOF formula (<kernel.Constant object at 0x2b1dffaafa70>, <kernel.DependentProduct object at 0x2b1e001cef80>) of role type named embedding_type
% 0.37/0.56  Using role type
% 0.37/0.56  Declaring embedding:((fofType->Prop)->((fofType->Prop)->Prop))
% 0.37/0.56  FOF formula (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) embedding) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> ((ex (fofType->fofType)) (fun (F:(fofType->fofType))=> (((injection X) F) Y))))) of role definition named embedding
% 0.37/0.56  A new definition: (((eq ((fofType->Prop)->((fofType->Prop)->Prop))) embedding) (fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> ((ex (fofType->fofType)) (fun (F:(fofType->fofType))=> (((injection X) F) Y)))))
% 0.37/0.56  Defined: embedding:=(fun (X:(fofType->Prop)) (Y:(fofType->Prop))=> ((ex (fofType->fofType)) (fun (F:(fofType->fofType))=> (((injection X) F) Y))))
% 0.37/0.56  FOF formula (forall (A:(fofType->Prop)) (Ap:(fofType->Prop)) (B:(fofType->Prop)) (Bp:(fofType->Prop)), (((and ((and ((equinumerous A) Ap)) ((equinumerous B) Bp))) (((eq (fofType->Prop)) ((intersection Ap) Bp)) emptyset))->((embedding ((union A) B)) ((union Ap) Bp)))) of role conjecture named prove
% 0.37/0.56  Conjecture to prove = (forall (A:(fofType->Prop)) (Ap:(fofType->Prop)) (B:(fofType->Prop)) (Bp:(fofType->Prop)), (((and ((and ((equinumerous A) Ap)) ((equinumerous B) Bp))) (((eq (fofType->Prop)) ((intersection Ap) Bp)) emptyset))->((embedding ((union A) B)) ((union Ap) Bp)))):Prop
% 0.37/0.56  Parameter fofType_DUMMY:fofType.
% 0.37/0.56  We need to prove ['(forall (A:(fofType->Prop)) (Ap:(fofType->Prop)) (B:(fofType->Prop)) (Bp:(fofType->Prop)), (((and ((and ((equinumerous A) Ap)) ((equinumerous B) Bp))) (((eq (fofType->Prop)) ((intersection Ap) Bp)) emptyset))->((embedding ((union A) B)) ((union Ap) Bp))))']
% 0.37/0.56  Parameter fofType:Type.
% 0.37/0.56  Definition in:=(fun (X:fofType) (M:(fofType->Prop))=> (M X)):(fofType->((fofType->Prop)->Prop)).
% 0.37/0.56  Definition is_a:=(fun (X:fofType) (M:(fofType->Prop))=> (M X)):(fofType->((fofType->Prop)->Prop)).
% 0.37/0.56  Definition emptyset:=(fun (X:fofType)=> False):(fofType->Prop).
% 0.37/0.56  Definition unord_pair:=(fun (X:fofType) (Y:fofType) (U:fofType)=> ((or (((eq fofType) U) X)) (((eq fofType) U) Y))):(fofType->(fofType->(fofType->Prop))).
% 0.37/0.56  Definition singleton:=(fun (X:fofType) (U:fofType)=> (((eq fof
%------------------------------------------------------------------------------