defpred S1[ Element of NAT ] means verum; set S = { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() & S1[i] ) } ;
F1() inNATbyORDINAL1:def 13; then A2:
F4(F1()) in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() & S1[i] ) } byA1; set S1 = { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() ) } ;
let x be set ; :: thesis: ( ( x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() & S1[i] ) } implies x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() ) } ) & ( x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() ) } implies x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() & S1[i] ) } ) )
hereby :: thesis: ( x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() ) } implies x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() & S1[i] ) } )
assume
x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() & S1[i] ) }
; :: thesis: x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() ) } then
ex i being Element of NAT st ( x = F4(i) & F1() <= i & i <= F2() & S1[i] )
; hence
x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() ) }
; :: thesis: verum
end;
assume
x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() ) }
; :: thesis: x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() & S1[i] ) } then
ex i being Element of NAT st ( x = F4(i) & F1() <= i & i <= F2() )
; hence
x in { F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() & S1[i] ) }
; :: thesis: verum
end;
A4:
{ F4(i) where i is Element of NAT : ( F1() <= i & i <= F2() & S1[i] ) } c= F3()