defpred S1[ object ] means $1 = 1;
deffunc H1( object ) -> Element of NAT = 0 ;
deffunc H2( object ) -> Element of NAT = 1;
A1:
for x being object st x in [.0,1.] holds
( ( S1[x] implies H1(x) in [.0,1.] ) & ( not S1[x] implies H2(x) in [.0,1.] ) )
by XXREAL_1:1;
ex f being Function of [.0,1.],[.0,1.] st
for x being object st x in [.0,1.] holds
( ( S1[x] implies f . x = H1(x) ) & ( not S1[x] implies f . x = H2(x) ) )
from FUNCT_2:sch 5(A1);
then consider f being Function of [.0,1.],[.0,1.] such that
B1:
for x being object st x in [.0,1.] holds
( ( S1[x] implies f . x = H1(x) ) & ( not S1[x] implies f . x = H2(x) ) )
;
take
f
; for x being Element of [.0,1.] holds
( ( x = 1 implies f . x = 0 ) & ( x <> 1 implies f . x = 1 ) )
let x be Element of [.0,1.]; ( ( x = 1 implies f . x = 0 ) & ( x <> 1 implies f . x = 1 ) )
thus
( x = 1 implies f . x = 0 )
by B1; ( x <> 1 implies f . x = 1 )
assume
x <> 1
; f . x = 1
hence
f . x = 1
by B1; verum