defpred S1[ Nat, Element of 28 -tuples_on BOOLEAN, Element of 28 -tuples_on BOOLEAN, Element of 28 -tuples_on BOOLEAN, Element of 28 -tuples_on BOOLEAN] means ( $4 = Op-Shift ($2,(bitshift_DES . $1)) & $5 = Op-Shift ($3,(bitshift_DES . $1)) );
A1:
for i being Nat
for z, w being Element of 28 -tuples_on BOOLEAN ex z1, w1 being Element of 28 -tuples_on BOOLEAN st S1[i,z,w,z1,w1]
proof
let i be
Nat;
for z, w being Element of 28 -tuples_on BOOLEAN ex z1, w1 being Element of 28 -tuples_on BOOLEAN st S1[i,z,w,z1,w1]let z,
w be
Element of 28
-tuples_on BOOLEAN;
ex z1, w1 being Element of 28 -tuples_on BOOLEAN st S1[i,z,w,z1,w1]
reconsider z1 =
Op-Shift (
z,
(bitshift_DES . i)) as
Element of 28
-tuples_on BOOLEAN by Th14;
reconsider w1 =
Op-Shift (
w,
(bitshift_DES . i)) as
Element of 28
-tuples_on BOOLEAN by Th14;
take
z1
;
ex w1 being Element of 28 -tuples_on BOOLEAN st S1[i,z,w,z1,w1]
take
w1
;
S1[i,z,w,z1,w1]
thus
S1[
i,
z,
w,
z1,
w1]
;
verum
end;
reconsider C0 = Op-Left ((DES-PC1 Key),28) as Element of 28 -tuples_on BOOLEAN by Th1;
( DES-PC1 Key is Element of 56 -tuples_on BOOLEAN & 28 <= 56 & 28 = 56 - 28 )
;
then reconsider D0 = Op-Right ((DES-PC1 Key),28) as Element of 28 -tuples_on BOOLEAN by Th2;
consider C, D being sequence of (28 -tuples_on BOOLEAN) such that
A2:
( C . 0 = C0 & D . 0 = D0 & ( for n being Nat holds S1[n,C . n,D . n,C . (n + 1),D . (n + 1)] ) )
from RECDEF_2:sch 3(A1);
defpred S2[ Nat, set ] means $2 = DES-PC2 ((C . $1) ^ (D . $1));
A3:
for k being Nat st k in Seg 16 holds
ex x being Element of 48 -tuples_on BOOLEAN st S2[k,x]
;
consider OUT being FinSequence of 48 -tuples_on BOOLEAN such that
A4:
( dom OUT = Seg 16 & ( for j being Nat st j in Seg 16 holds
S2[j,OUT . j] ) )
from FINSEQ_1:sch 5(A3);
len OUT = 16
by A4, FINSEQ_1:def 3;
then reconsider OUT = OUT as Element of 16 -tuples_on (48 -tuples_on BOOLEAN) by FINSEQ_2:92;
thus
ex b1 being Element of 16 -tuples_on (48 -tuples_on BOOLEAN) ex C, D being sequence of (28 -tuples_on BOOLEAN) st
( C . 0 = Op-Left ((DES-PC1 Key),28) & D . 0 = Op-Right ((DES-PC1 Key),28) & ( for i being Element of NAT st 0 <= i & i <= 15 holds
( b1 . (i + 1) = DES-PC2 ((C . (i + 1)) ^ (D . (i + 1))) & C . (i + 1) = Op-Shift ((C . i),(bitshift_DES . i)) & D . (i + 1) = Op-Shift ((D . i),(bitshift_DES . i)) ) ) )
by A5, A2; verum