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

let i be natural number ; :: thesis: ( ( i in X & f . i = r |^ i ) or ( not i in X & f . i = 0 ) )
i in NAT by ORDINAL1:def 13;
then In i,NAT = i by FUNCT_7:def 1;
hence ( ( i in X & f . i = r |^ i ) or ( not i in X & f . i = 0 ) ) by A2; :: thesis: verum