defpred S1[ non zero Nat] means for z being Tuple of $1, BOOLEAN
for d being Element of BOOLEAN holds Neg2 (Neg2 (z ^ <*d*>)) = z ^ <*d*>;
A1:
S1[1]
proof
let z be
Tuple of 1,
BOOLEAN ;
for d being Element of BOOLEAN holds Neg2 (Neg2 (z ^ <*d*>)) = z ^ <*d*>let d be
Element of
BOOLEAN ;
Neg2 (Neg2 (z ^ <*d*>)) = z ^ <*d*>
set NZD =
('not' d) 'xor' ('not' (z /. 1));
set DPI =
d '&' (z /. 1);
set NZ1 =
('not' z) /. 1;
set B1 =
(Bin1 1) /. 1;
A2:
1
in Seg 1
by FINSEQ_1:3;
A3:
(('not' d) 'xor' FALSE) 'xor' (add_ovfl (('not' z),(Bin1 1))) =
('not' d) 'xor' ((((('not' z) /. 1) '&' ((Bin1 1) /. 1)) 'or' ((('not' z) /. 1) '&' ((carry (('not' z),(Bin1 1))) /. 1))) 'or' (((Bin1 1) /. 1) '&' ((carry (('not' z),(Bin1 1))) /. 1)))
by BINARITH:def 6
.=
('not' d) 'xor' ((((('not' z) /. 1) '&' ((Bin1 1) /. 1)) 'or' ((('not' z) /. 1) '&' FALSE)) 'or' (((Bin1 1) /. 1) '&' ((carry (('not' z),(Bin1 1))) /. 1)))
by BINARITH:def 2
.=
('not' d) 'xor' ((((('not' z) /. 1) '&' ((Bin1 1) /. 1)) 'or' FALSE) 'or' (((Bin1 1) /. 1) '&' FALSE))
by BINARITH:def 2
.=
('not' d) 'xor' (TRUE '&' (('not' z) /. 1))
by A2, Th5
.=
('not' d) 'xor' ('not' (z /. 1))
by A2, BINARITH:def 1
;
A4:
(('not' (('not' d) 'xor' ('not' (z /. 1)))) 'xor' FALSE) 'xor' (add_ovfl (('not' (('not' z) + (Bin1 1))),(Bin1 1))) =
('not' (('not' d) 'xor' ('not' (z /. 1)))) 'xor' ((((('not' (('not' z) + (Bin1 1))) /. 1) '&' ((Bin1 1) /. 1)) 'or' ((('not' (('not' z) + (Bin1 1))) /. 1) '&' ((carry (('not' (('not' z) + (Bin1 1))),(Bin1 1))) /. 1))) 'or' (((Bin1 1) /. 1) '&' ((carry (('not' (('not' z) + (Bin1 1))),(Bin1 1))) /. 1)))
by BINARITH:def 6
.=
('not' (('not' d) 'xor' ('not' (z /. 1)))) 'xor' ((((('not' (('not' z) + (Bin1 1))) /. 1) '&' ((Bin1 1) /. 1)) 'or' ((('not' (('not' z) + (Bin1 1))) /. 1) '&' FALSE)) 'or' (((Bin1 1) /. 1) '&' ((carry (('not' (('not' z) + (Bin1 1))),(Bin1 1))) /. 1)))
by BINARITH:def 2
.=
('not' (('not' d) 'xor' ('not' (z /. 1)))) 'xor' ((((('not' (('not' z) + (Bin1 1))) /. 1) '&' ((Bin1 1) /. 1)) 'or' FALSE) 'or' (((Bin1 1) /. 1) '&' FALSE))
by BINARITH:def 2
.=
('not' (('not' d) 'xor' ('not' (z /. 1)))) 'xor' (TRUE '&' (('not' (('not' z) + (Bin1 1))) /. 1))
by A2, Th5
.=
('not' (('not' d) 'xor' ('not' (z /. 1)))) 'xor' ('not' ((('not' z) + (Bin1 1)) /. 1))
by A2, BINARITH:def 1
.=
('not' (('not' d) 'xor' ('not' (z /. 1)))) 'xor' ('not' (((('not' z) /. 1) 'xor' ((Bin1 1) /. 1)) 'xor' ((carry (('not' z),(Bin1 1))) /. 1)))
by A2, BINARITH:def 5
.=
('not' (('not' d) 'xor' ('not' (z /. 1)))) 'xor' ('not' (((('not' z) /. 1) 'xor' ((Bin1 1) /. 1)) 'xor' FALSE))
by BINARITH:def 2
.=
('not' (('not' d) 'xor' ('not' (z /. 1)))) 'xor' ('not' ((('not' z) /. 1) 'xor' TRUE))
by A2, Th5
.=
('not' (('not' d) 'xor' ('not' (z /. 1)))) 'xor' ('not' (z /. 1))
by A2, BINARITH:def 1
;
A5:
Neg2 (Neg2 (z ^ <*d*>)) =
('not' ((('not' z) ^ <*('not' d)*>) + (Bin1 (1 + 1)))) + (Bin1 (1 + 1))
by Th9
.=
('not' ((('not' z) ^ <*('not' d)*>) + ((Bin1 1) ^ <*FALSE*>))) + (Bin1 (1 + 1))
by Th7
.=
('not' ((('not' z) + (Bin1 1)) ^ <*((('not' d) 'xor' FALSE) 'xor' (add_ovfl (('not' z),(Bin1 1))))*>)) + (Bin1 (1 + 1))
by BINARITH:19
.=
(('not' (('not' z) + (Bin1 1))) ^ <*('not' (('not' d) 'xor' ('not' (z /. 1))))*>) + (Bin1 (1 + 1))
by A3, Th9
.=
(('not' (('not' z) + (Bin1 1))) ^ <*('not' (('not' d) 'xor' ('not' (z /. 1))))*>) + ((Bin1 1) ^ <*FALSE*>)
by Th7
.=
(('not' (('not' z) + (Bin1 1))) + (Bin1 1)) ^ <*(('not' (('not' d) 'xor' ('not' (z /. 1)))) 'xor' ('not' (z /. 1)))*>
by A4, BINARITH:19
;
then A6:
(Neg2 (Neg2 (z ^ <*d*>))) /. 1 =
(('not' (('not' z) + (Bin1 1))) + (Bin1 1)) /. 1
by A2, BINARITH:1
.=
((('not' (('not' z) + (Bin1 1))) /. 1) 'xor' ((Bin1 1) /. 1)) 'xor' ((carry (('not' (('not' z) + (Bin1 1))),(Bin1 1))) /. 1)
by A2, BINARITH:def 5
.=
((('not' (('not' z) + (Bin1 1))) /. 1) 'xor' ((Bin1 1) /. 1)) 'xor' FALSE
by BINARITH:def 2
.=
(('not' (('not' z) + (Bin1 1))) /. 1) 'xor' TRUE
by A2, Th5
.=
'not' ('not' ((('not' z) + (Bin1 1)) /. 1))
by A2, BINARITH:def 1
.=
((('not' z) /. 1) 'xor' ((Bin1 1) /. 1)) 'xor' ((carry (('not' z),(Bin1 1))) /. 1)
by A2, BINARITH:def 5
.=
((('not' z) /. 1) 'xor' ((Bin1 1) /. 1)) 'xor' FALSE
by BINARITH:def 2
.=
(('not' z) /. 1) 'xor' TRUE
by A2, Th5
.=
'not' ('not' (z /. 1))
by A2, BINARITH:def 1
.=
z /. 1
;
reconsider p =
d,
q =
z /. 1 as
boolean object ;
A7:
(Neg2 (Neg2 (z ^ <*d*>))) /. 2 =
((('not' d) 'or' ('not' ('not' (z /. 1)))) '&' (('not' ('not' d)) 'or' ('not' (z /. 1)))) 'xor' ('not' (z /. 1))
by A5, BINARITH:2
.=
(((('not' p) 'or' q) '&' p) 'or' ((('not' p) 'or' q) '&' ('not' q))) 'xor' ('not' (z /. 1))
by XBOOLEAN:8
.=
(((p '&' ('not' p)) 'or' (p '&' q)) 'or' (('not' q) '&' (('not' p) 'or' q))) 'xor' ('not' (z /. 1))
by XBOOLEAN:8
.=
(((d '&' ('not' d)) 'or' (d '&' (z /. 1))) 'or' ((('not' (z /. 1)) '&' ('not' d)) 'or' (('not' (z /. 1)) '&' (z /. 1)))) 'xor' ('not' (z /. 1))
by XBOOLEAN:8
.=
((FALSE 'or' (d '&' (z /. 1))) 'or' ((('not' (z /. 1)) '&' ('not' d)) 'or' (('not' (z /. 1)) '&' (z /. 1)))) 'xor' ('not' (z /. 1))
by XBOOLEAN:138
.=
((d '&' (z /. 1)) 'or' ((('not' (z /. 1)) '&' ('not' d)) 'or' FALSE)) 'xor' ('not' (z /. 1))
by XBOOLEAN:138
.=
((('not' d) 'or' ('not' (z /. 1))) '&' (('not' (z /. 1)) '&' ((z /. 1) 'or' d))) 'or' (((d '&' (z /. 1)) 'or' (('not' (z /. 1)) '&' ('not' d))) '&' ('not' ('not' (z /. 1))))
.=
((('not' d) 'or' ('not' (z /. 1))) '&' ((('not' (z /. 1)) '&' (z /. 1)) 'or' (('not' (z /. 1)) '&' d))) 'or' (((d '&' (z /. 1)) 'or' (('not' (z /. 1)) '&' ('not' d))) '&' ('not' ('not' (z /. 1))))
by XBOOLEAN:8
.=
((('not' d) 'or' ('not' (z /. 1))) '&' (FALSE 'or' (('not' (z /. 1)) '&' d))) 'or' (((d '&' (z /. 1)) 'or' (('not' (z /. 1)) '&' ('not' d))) '&' ('not' ('not' (z /. 1))))
by XBOOLEAN:138
.=
(((('not' (z /. 1)) '&' d) '&' ('not' d)) 'or' ((('not' (z /. 1)) '&' d) '&' ('not' (z /. 1)))) 'or' (((d '&' (z /. 1)) 'or' (('not' (z /. 1)) '&' ('not' d))) '&' ('not' ('not' (z /. 1))))
by XBOOLEAN:8
.=
((('not' (z /. 1)) '&' (d '&' ('not' d))) 'or' ((('not' (z /. 1)) '&' d) '&' ('not' (z /. 1)))) 'or' (((d '&' (z /. 1)) 'or' (('not' (z /. 1)) '&' ('not' d))) '&' ('not' ('not' (z /. 1))))
.=
((('not' (z /. 1)) '&' FALSE) 'or' ((('not' (z /. 1)) '&' d) '&' ('not' (z /. 1)))) 'or' (((d '&' (z /. 1)) 'or' (('not' (z /. 1)) '&' ('not' d))) '&' ('not' ('not' (z /. 1))))
by XBOOLEAN:138
.=
(d '&' (('not' (z /. 1)) '&' ('not' (z /. 1)))) 'or' (((d '&' (z /. 1)) 'or' (('not' (z /. 1)) '&' ('not' d))) '&' ('not' ('not' (z /. 1))))
.=
(d '&' ('not' (z /. 1))) 'or' (((z /. 1) '&' ((z /. 1) '&' d)) 'or' ((z /. 1) '&' (('not' (z /. 1)) '&' ('not' d))))
by XBOOLEAN:8
.=
(d '&' ('not' (z /. 1))) 'or' ((((z /. 1) '&' (z /. 1)) '&' d) 'or' ((z /. 1) '&' (('not' (z /. 1)) '&' ('not' d))))
.=
(d '&' ('not' (z /. 1))) 'or' (((z /. 1) '&' d) 'or' (((z /. 1) '&' ('not' (z /. 1))) '&' ('not' d)))
.=
(d '&' ('not' (z /. 1))) 'or' (((z /. 1) '&' d) 'or' (FALSE '&' ('not' d)))
by XBOOLEAN:138
.=
d '&' (('not' (z /. 1)) 'or' (z /. 1))
by XBOOLEAN:8
.=
TRUE '&' d
by XBOOLEAN:102
.=
d
;
consider k1,
k2 being
Element of
BOOLEAN such that A8:
Neg2 (Neg2 (z ^ <*d*>)) = <*k1,k2*>
by FINSEQ_2:100;
A9:
(
(Neg2 (Neg2 (z ^ <*d*>))) /. 1
= k1 &
(Neg2 (Neg2 (z ^ <*d*>))) /. 2
= k2 )
by A8, FINSEQ_4:17;
consider k being
Element of
BOOLEAN such that A10:
z = <*k*>
by FINSEQ_2:97;
Neg2 (Neg2 (z ^ <*d*>)) = <*k,d*>
by A6, A7, A8, A9, A10, FINSEQ_4:16;
hence
Neg2 (Neg2 (z ^ <*d*>)) = z ^ <*d*>
by A10, FINSEQ_1:def 9;
verum
end;
A11:
now for m being non zero Nat st S1[m] holds
S1[m + 1]let m be non
zero Nat;
( S1[m] implies S1[m + 1] )assume A12:
S1[
m]
;
S1[m + 1]now for z being Tuple of m + 1, BOOLEAN
for d being Element of BOOLEAN holds Neg2 (Neg2 (z ^ <*d*>)) = z ^ <*d*>let z be
Tuple of
m + 1,
BOOLEAN ;
for d being Element of BOOLEAN holds Neg2 (Neg2 (z ^ <*d*>)) = z ^ <*d*>let d be
Element of
BOOLEAN ;
Neg2 (Neg2 (z ^ <*d*>)) = z ^ <*d*>consider t being
Element of
m -tuples_on BOOLEAN,
k being
Element of
BOOLEAN such that A13:
z = t ^ <*k*>
by FINSEQ_2:117;
set A =
add_ovfl (
('not' t),
(Bin1 m));
set B =
add_ovfl (
('not' (Neg2 t)),
(Bin1 m));
Neg2 (Neg2 (t ^ <*k*>)) =
Neg2 ((Neg2 t) ^ <*(('not' k) 'xor' (add_ovfl (('not' t),(Bin1 m))))*>)
by Th14
.=
(Neg2 (Neg2 t)) ^ <*(('not' (('not' k) 'xor' (add_ovfl (('not' t),(Bin1 m))))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m))))*>
by Th14
;
then A14:
(Neg2 (Neg2 (t ^ <*k*>))) /. (m + 1) = ('not' (('not' k) 'xor' (add_ovfl (('not' t),(Bin1 m))))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m)))
by BINARITH:2;
A15:
(t ^ <*k*>) /. (m + 1) = k
by BINARITH:2;
reconsider p =
k,
q =
add_ovfl (
('not' t),
(Bin1 m)) as
boolean object ;
('not' (('not' k) 'xor' (add_ovfl (('not' t),(Bin1 m))))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m))) =
((p '&' (('not' p) 'or' ('not' q))) 'or' ((('not' p) 'or' ('not' q)) '&' q)) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m)))
by XBOOLEAN:8
.=
((k '&' ('not' (add_ovfl (('not' t),(Bin1 m))))) 'or' ((add_ovfl (('not' t),(Bin1 m))) '&' (('not' k) 'or' ('not' (add_ovfl (('not' t),(Bin1 m))))))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m)))
by XBOOLEAN:11
.=
((add_ovfl (('not' t),(Bin1 m))) 'xor' k) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m)))
by XBOOLEAN:11
.=
k 'xor' ((add_ovfl (('not' t),(Bin1 m))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m))))
by XBOOLEAN:73
;
then A16:
k 'xor' ((add_ovfl (('not' t),(Bin1 m))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m)))) = k 'xor' FALSE
by A12, A14, A15;
A17:
k 'xor' (k 'xor' ((add_ovfl (('not' t),(Bin1 m))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m))))) =
(k 'xor' k) 'xor' ((add_ovfl (('not' t),(Bin1 m))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m))))
by XBOOLEAN:73
.=
FALSE 'xor' ((add_ovfl (('not' t),(Bin1 m))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m))))
by XBOOLEAN:138
.=
(add_ovfl (('not' t),(Bin1 m))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m)))
;
A18:
k 'xor' (k 'xor' FALSE) = FALSE
by XBOOLEAN:138;
A19:
(add_ovfl (('not' t),(Bin1 m))) 'xor' ((add_ovfl (('not' t),(Bin1 m))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m)))) =
((add_ovfl (('not' t),(Bin1 m))) 'xor' (add_ovfl (('not' t),(Bin1 m)))) 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m)))
by XBOOLEAN:73
.=
FALSE 'xor' (add_ovfl (('not' (Neg2 t)),(Bin1 m)))
by XBOOLEAN:138
.=
add_ovfl (
('not' (Neg2 t)),
(Bin1 m))
;
A20:
m + 1
in Seg (m + 1)
by FINSEQ_1:3;
A21:
add_ovfl (
('not' z),
(Bin1 (m + 1))) =
add_ovfl (
(('not' t) ^ <*('not' k)*>),
(Bin1 (m + 1)))
by A13, Th9
.=
add_ovfl (
(('not' t) ^ <*('not' k)*>),
((Bin1 m) ^ <*FALSE*>))
by Th7
.=
((((('not' t) ^ <*('not' k)*>) /. (m + 1)) '&' (((Bin1 m) ^ <*FALSE*>) /. (m + 1))) 'or' (((('not' t) ^ <*('not' k)*>) /. (m + 1)) '&' ((carry ((('not' t) ^ <*('not' k)*>),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))) 'or' ((((Bin1 m) ^ <*FALSE*>) /. (m + 1)) '&' ((carry ((('not' t) ^ <*('not' k)*>),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))
by BINARITH:def 6
.=
((((('not' t) ^ <*('not' k)*>) /. (m + 1)) '&' FALSE) 'or' (((('not' t) ^ <*('not' k)*>) /. (m + 1)) '&' ((carry ((('not' t) ^ <*('not' k)*>),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))) 'or' ((((Bin1 m) ^ <*FALSE*>) /. (m + 1)) '&' ((carry ((('not' t) ^ <*('not' k)*>),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))
by BINARITH:2
.=
(FALSE 'or' (((('not' t) ^ <*('not' k)*>) /. (m + 1)) '&' ((carry ((('not' t) ^ <*('not' k)*>),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))) 'or' (FALSE '&' ((carry ((('not' t) ^ <*('not' k)*>),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))
by BINARITH:2
.=
('not' k) '&' ((carry ((('not' t) ^ <*('not' k)*>),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by BINARITH:2
.=
('not' k) '&' (add_ovfl (('not' t),(Bin1 m)))
by BINARITH:18
;
A22:
add_ovfl (
('not' (Neg2 z)),
(Bin1 (m + 1))) =
add_ovfl (
('not' (Neg2 z)),
((Bin1 m) ^ <*FALSE*>))
by Th7
.=
(((('not' (Neg2 z)) /. (m + 1)) '&' (((Bin1 m) ^ <*FALSE*>) /. (m + 1))) 'or' ((('not' (Neg2 z)) /. (m + 1)) '&' ((carry (('not' (Neg2 z)),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))) 'or' ((((Bin1 m) ^ <*FALSE*>) /. (m + 1)) '&' ((carry (('not' (Neg2 z)),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))
by BINARITH:def 6
.=
(((('not' (Neg2 z)) /. (m + 1)) '&' FALSE) 'or' ((('not' (Neg2 z)) /. (m + 1)) '&' ((carry (('not' (Neg2 z)),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))) 'or' ((((Bin1 m) ^ <*FALSE*>) /. (m + 1)) '&' ((carry (('not' (Neg2 z)),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))
by BINARITH:2
.=
(FALSE 'or' ((('not' (Neg2 z)) /. (m + 1)) '&' ((carry (('not' (Neg2 z)),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))) 'or' (FALSE '&' ((carry (('not' (Neg2 z)),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))
by BINARITH:2
.=
(('not' ((('not' t) ^ <*('not' k)*>) + (Bin1 (m + 1)))) /. (m + 1)) '&' ((carry (('not' (('not' (t ^ <*k*>)) + (Bin1 (m + 1)))),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by A13, Th9
.=
(('not' ((('not' t) ^ <*('not' k)*>) + (Bin1 (m + 1)))) /. (m + 1)) '&' ((carry (('not' ((('not' t) ^ <*('not' k)*>) + (Bin1 (m + 1)))),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by Th9
.=
(('not' ((('not' t) ^ <*('not' k)*>) + ((Bin1 m) ^ <*FALSE*>))) /. (m + 1)) '&' ((carry (('not' ((('not' t) ^ <*('not' k)*>) + (Bin1 (m + 1)))),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by Th7
.=
(('not' ((('not' t) ^ <*('not' k)*>) + ((Bin1 m) ^ <*FALSE*>))) /. (m + 1)) '&' ((carry (('not' ((('not' t) ^ <*('not' k)*>) + ((Bin1 m) ^ <*FALSE*>))),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by Th7
.=
('not' (((('not' t) ^ <*('not' k)*>) + ((Bin1 m) ^ <*FALSE*>)) /. (m + 1))) '&' ((carry (('not' ((('not' t) ^ <*('not' k)*>) + ((Bin1 m) ^ <*FALSE*>))),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by A20, BINARITH:def 1
.=
('not' ((((('not' t) ^ <*('not' k)*>) /. (m + 1)) 'xor' (((Bin1 m) ^ <*FALSE*>) /. (m + 1))) 'xor' ((carry ((('not' t) ^ <*('not' k)*>),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))) '&' ((carry (('not' ((('not' t) ^ <*('not' k)*>) + ((Bin1 m) ^ <*FALSE*>))),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by A20, BINARITH:def 5
.=
('not' ((('not' k) 'xor' (((Bin1 m) ^ <*FALSE*>) /. (m + 1))) 'xor' ((carry ((('not' t) ^ <*('not' k)*>),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))) '&' ((carry (('not' ((('not' t) ^ <*('not' k)*>) + ((Bin1 m) ^ <*FALSE*>))),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by BINARITH:2
.=
('not' ((('not' k) 'xor' FALSE) 'xor' ((carry ((('not' t) ^ <*('not' k)*>),((Bin1 m) ^ <*FALSE*>))) /. (m + 1)))) '&' ((carry (('not' ((('not' t) ^ <*('not' k)*>) + ((Bin1 m) ^ <*FALSE*>))),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by BINARITH:2
.=
('not' ((('not' k) 'xor' FALSE) 'xor' (add_ovfl (('not' t),(Bin1 m))))) '&' ((carry (('not' ((('not' t) ^ <*('not' k)*>) + ((Bin1 m) ^ <*FALSE*>))),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by BINARITH:18
.=
('not' (('not' k) 'xor' (add_ovfl (('not' t),(Bin1 m))))) '&' ((carry (('not' ((('not' t) + (Bin1 m)) ^ <*((('not' k) 'xor' FALSE) 'xor' (add_ovfl (('not' t),(Bin1 m))))*>)),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by BINARITH:19
.=
('not' (('not' k) 'xor' (add_ovfl (('not' t),(Bin1 m))))) '&' ((carry ((('not' (('not' t) + (Bin1 m))) ^ <*('not' ((('not' k) 'xor' FALSE) 'xor' (add_ovfl (('not' t),(Bin1 m)))))*>),((Bin1 m) ^ <*FALSE*>))) /. (m + 1))
by Th9
.=
((('not' k) 'or' ('not' (add_ovfl (('not' t),(Bin1 m))))) '&' (k 'or' ('not' ('not' (add_ovfl (('not' t),(Bin1 m))))))) '&' (add_ovfl (('not' t),(Bin1 m)))
by A16, A17, A18, A19, BINARITH:18
.=
(('not' k) 'or' ('not' (add_ovfl (('not' t),(Bin1 m))))) '&' ((add_ovfl (('not' t),(Bin1 m))) '&' (k 'or' (add_ovfl (('not' t),(Bin1 m)))))
.=
(add_ovfl (('not' t),(Bin1 m))) '&' (('not' (add_ovfl (('not' t),(Bin1 m)))) 'or' ('not' k))
by XBOOLEAN:6
.=
(add_ovfl (('not' t),(Bin1 m))) '&' ('not' k)
by XBOOLEAN:11
;
set C =
('not' k) '&' (add_ovfl (('not' t),(Bin1 m)));
reconsider p =
d,
q =
('not' k) '&' (add_ovfl (('not' t),(Bin1 m))) as
boolean object ;
A23:
('not' (('not' d) 'xor' (('not' k) '&' (add_ovfl (('not' t),(Bin1 m)))))) 'xor' (('not' k) '&' (add_ovfl (('not' t),(Bin1 m)))) =
((p '&' (('not' p) 'or' ('not' q))) 'or' ((('not' p) 'or' ('not' q)) '&' q)) 'xor' (('not' k) '&' (add_ovfl (('not' t),(Bin1 m))))
by XBOOLEAN:8
.=
((d '&' ('not' (('not' k) '&' (add_ovfl (('not' t),(Bin1 m)))))) 'or' ((('not' k) '&' (add_ovfl (('not' t),(Bin1 m)))) '&' (('not' d) 'or' ('not' (('not' k) '&' (add_ovfl (('not' t),(Bin1 m)))))))) 'xor' (('not' k) '&' (add_ovfl (('not' t),(Bin1 m))))
by XBOOLEAN:11
.=
((('not' k) '&' (add_ovfl (('not' t),(Bin1 m)))) 'xor' d) 'xor' (('not' k) '&' (add_ovfl (('not' t),(Bin1 m))))
by XBOOLEAN:11
.=
d 'xor' ((('not' k) '&' (add_ovfl (('not' t),(Bin1 m)))) 'xor' (('not' k) '&' (add_ovfl (('not' t),(Bin1 m)))))
by XBOOLEAN:73
.=
d 'xor' FALSE
by XBOOLEAN:138
.=
d
;
thus Neg2 (Neg2 (z ^ <*d*>)) =
Neg2 ((Neg2 z) ^ <*(('not' d) 'xor' (add_ovfl (('not' z),(Bin1 (m + 1)))))*>)
by Th14
.=
(Neg2 (Neg2 z)) ^ <*(('not' (('not' d) 'xor' (add_ovfl (('not' z),(Bin1 (m + 1)))))) 'xor' (add_ovfl (('not' (Neg2 z)),(Bin1 (m + 1)))))*>
by Th14
.=
z ^ <*d*>
by A12, A13, A21, A22, A23
;
verum end; hence
S1[
m + 1]
;
verum end;
thus
for m being non zero Nat holds S1[m]
from NAT_1:sch 10(A1, A11); verum