defpred S1[ object , object ] means for n being Nat st n = $1 holds
ex y being Element of the Sorts of A . ((the_arity_of o) /. n) st
( y = x . n & $2 = OSClass (R,y) );
set ar = the_arity_of o;
set da = dom (the_arity_of o);
A1:
for k being object st k in dom (the_arity_of o) holds
ex u being object st S1[k,u]
consider f being Function such that
A3:
( dom f = dom (the_arity_of o) & ( for x being object st x in dom (the_arity_of o) holds
S1[x,f . x] ) )
from CLASSES1:sch 1(A1);
A4:
dom ((OSClass R) * (the_arity_of o)) = dom (the_arity_of o)
by PARTFUN1:def 2;
for y being object st y in dom ((OSClass R) * (the_arity_of o)) holds
f . y in ((OSClass R) * (the_arity_of o)) . y
then reconsider f = f as Element of product ((OSClass R) * (the_arity_of o)) by A3, A4, CARD_3:9;
take
f
; for n being Nat st n in dom (the_arity_of o) holds
ex y being Element of the Sorts of A . ((the_arity_of o) /. n) st
( y = x . n & f . n = OSClass (R,y) )
let n be Nat; ( n in dom (the_arity_of o) implies ex y being Element of the Sorts of A . ((the_arity_of o) /. n) st
( y = x . n & f . n = OSClass (R,y) ) )
assume
n in dom (the_arity_of o)
; ex y being Element of the Sorts of A . ((the_arity_of o) /. n) st
( y = x . n & f . n = OSClass (R,y) )
hence
ex y being Element of the Sorts of A . ((the_arity_of o) /. n) st
( y = x . n & f . n = OSClass (R,y) )
by A3; verum