defpred S1[ non empty Nat] means for k being Nat st k + 1 < 2 to_power $1 holds
$1 -BinarySequence (k + 1) = ($1 -BinarySequence k) + (Bin1 $1);
A1:
for n being non empty Nat st S1[n] holds
S1[n + 1]
proof
let n be non
empty Nat;
( S1[n] implies S1[n + 1] )
assume A2:
S1[
n]
;
S1[n + 1]
let k be
Nat;
( k + 1 < 2 to_power (n + 1) implies (n + 1) -BinarySequence (k + 1) = ((n + 1) -BinarySequence k) + (Bin1 (n + 1)) )
assume A3:
k + 1
< 2
to_power (n + 1)
;
(n + 1) -BinarySequence (k + 1) = ((n + 1) -BinarySequence k) + (Bin1 (n + 1))
then A4:
k < 2
to_power (n + 1)
by NAT_1:13;
now per cases
( k + 1 < 2 to_power n or k + 1 > 2 to_power n or k + 1 = 2 to_power n )
by XXREAL_0:1;
suppose A8:
k + 1
> 2
to_power n
;
(n + 1) -BinarySequence (k + 1) = ((n + 1) -BinarySequence k) + (Bin1 (n + 1))then A9:
k >= 2
to_power n
by NAT_1:13;
k + 1
< (2 to_power n) * (2 to_power 1)
by A3, POWER:32;
then
k + 1
< (2 to_power n) * 2
by POWER:30;
then
k + 1
< (2 to_power n) + (2 to_power n)
;
then
(k + 1) - (2 to_power n) < 2
to_power n
by XREAL_1:21;
then
(k - (2 to_power n)) + 1
< 2
to_power n
;
then A10:
(k -' (2 to_power n)) + 1
< 2
to_power n
by A9, XREAL_1:235;
then A11:
add_ovfl (n -BinarySequence (k -' (2 to_power n))),
(Bin1 n) = FALSE
by Th33;
thus (n + 1) -BinarySequence (k + 1) =
(n -BinarySequence ((k + 1) -' (2 to_power n))) ^ <*TRUE *>
by A3, A8, Lm3
.=
(n -BinarySequence ((k -' (2 to_power n)) + 1)) ^ <*TRUE *>
by A9, NAT_D:38
.=
((n -BinarySequence (k -' (2 to_power n))) + (Bin1 n)) ^ <*((TRUE 'xor' FALSE ) 'xor' (add_ovfl (n -BinarySequence (k -' (2 to_power n))),(Bin1 n)))*>
by A2, A10, A11
.=
((n -BinarySequence (k -' (2 to_power n))) ^ <*TRUE *>) + ((Bin1 n) ^ <*FALSE *>)
by BINARITH:45
.=
((n -BinarySequence (k -' (2 to_power n))) ^ <*TRUE *>) + (Bin1 (n + 1))
by BINARI_2:9
.=
((n + 1) -BinarySequence k) + (Bin1 (n + 1))
by A4, A9, Lm3
;
verum end; end; end;
hence
(n + 1) -BinarySequence (k + 1) = ((n + 1) -BinarySequence k) + (Bin1 (n + 1))
;
verum
end;
A16:
S1[1]
thus
for n being non empty Nat holds S1[n]
from NAT_1:sch 10(A16, A1); verum