deffunc H1( object ) -> Element of omega = 0 ;
deffunc H2( object ) -> set = r |^ (In ($1,NAT));
defpred S1[ object ] means $1 in X;
A1: for a being object st a in NAT holds
( ( S1[a] implies H2(a) in REAL ) & ( not S1[a] implies H1(a) in REAL ) ) by XREAL_0:def 1;
consider f being sequence of REAL such that
A2: for a being object st a in NAT holds
( ( S1[a] implies f . a = H2(a) ) & ( not S1[a] implies f . a = H1(a) ) ) from FUNCT_2:sch 5(A1);
take f ; :: thesis: for i being Nat holds
( ( i in X & f . i = r |^ i ) or ( not i in X & f . i = 0 ) )

let i be Nat; :: thesis: ( ( i in X & f . i = r |^ i ) or ( not i in X & f . i = 0 ) )
In (i,NAT) = i ;
hence ( ( i in X & f . i = r |^ i ) or ( not i in X & f . i = 0 ) ) by A2; :: thesis: verum