:: BINARI_3 semantic presentation
theorem E1: :: BINARI_3:1
theorem E2: :: BINARI_3:2
proof
defpred S
1[ non
empty Nat] means for b
1, b
2 being
Tuple of a
1,
BOOLEAN holds
(
Absval b
1 = Absval b
2 implies b
1 = b
2 );
E3:
S
1[1]
E4:
for b
1 being non
empty Nat holds
( S
1[b
1] implies S
1[b
1 + 1] )
proof
let c
1 be non
empty Nat;
assume E5:
for b
1, b
2 being
Tuple of c
1,
BOOLEAN holds
(
Absval b
1 = Absval b
2 implies b
1 = b
2 )
;
let c
2, c
3 be
Tuple of
(c1 + 1),
BOOLEAN ;
consider c
4 being
Tuple of c
1,
BOOLEAN , c
5 being
Element of
BOOLEAN such that
E6:
c
2 = c
4 ^ <*c5*>
by FINSEQ_2:137;
consider c
6 being
Tuple of c
1,
BOOLEAN , c
7 being
Element of
BOOLEAN such that
E7:
c
3 = c
6 ^ <*c7*>
by FINSEQ_2:137;
assume E8:
Absval c
2 = Absval c
3
;
E9:
(Absval c4) + (IFEQ c5,FALSE ,0,(2 to_power c1)) =
Absval c
2
by E6, BINARITH:46
.=
(Absval c6) + (IFEQ c7,FALSE ,0,(2 to_power c1))
by E7, E8, BINARITH:46
;
E10:
c
5 = c
7
proof
assume E11:
c
5 <> c
7
;
per cases
( c
5 = FALSE or c
5 = TRUE )
by MARGREL1:39;
suppose E12:
c
5 = FALSE
;
then E13:
IFEQ c
7,
FALSE ,0,
(2 to_power c1) = 2
to_power c
1
by E11, CQC_LANG:def 1;
IFEQ c
5,
FALSE ,0,
(2 to_power c1) = 0
by E12, CQC_LANG:def 1;
then
Absval c
4 >= 2
to_power c
1
by E9, E13, NAT_1:29;
hence
not verum
by E1;
end;
suppose E12:
c
5 = TRUE
;
then
c
7 = FALSE
by E11, MARGREL1:39;
then E13:
IFEQ c
7,
FALSE ,0,
(2 to_power c1) = 0
by CQC_LANG:def 1;
IFEQ c
5,
FALSE ,0,
(2 to_power c1) = 2
to_power c
1
by E12, CQC_LANG:def 1, MARGREL1:38;
then
Absval c
6 >= 2
to_power c
1
by E9, E13, NAT_1:29;
hence
not verum
by E1;
end;
end;
end;
then
Absval c
4 = Absval c
6
by E9;
hence
c
2 = c
3
by E5, E6, E7, E10;
end;
thus
for b
1 being non
empty Nat holds
S
1[b
1]
from BINARITH:sch 1(E3, E4);
end;
theorem :: BINARI_3:3
theorem E3: :: BINARI_3:4
theorem E4: :: BINARI_3:5
theorem E5: :: BINARI_3:6
proof
let c
1 be
Nat;
let c
2 be
Tuple of c
1,
BOOLEAN ;
assume E6:
c
2 = 0* c
1
;
E7:
len ('not' c2) =
c
1
by FINSEQ_2:109
.=
len (c1 |-> 1)
by FINSEQ_2:69
;
now
let c
3 be
Nat;
assume that
E8:
1
<= c
3
and
E9:
c
3 <= len ('not' c2)
;
E10:
(
len ('not' c2) = c
1 &
len c
2 = c
1 )
by FINSEQ_2:109;
then E11:
c
3 in Seg c
1
by E8, E9, FINSEQ_1:3;
E12: c
2 . c
3 =
(c1 |-> 0) . c
3
by E6, EUCLID:def 4
.=
FALSE
by E11, FINSEQ_2:70, MARGREL1:36
;
thus ('not' c2) . c
3 =
('not' c2) /. c
3
by E8, E9, FINSEQ_4:24
.=
'not' (c2 /. c3)
by E11, BINARITH:def 4
.=
'not' FALSE
by E8, E9, E10, E12, FINSEQ_4:24
.=
1
by MARGREL1:36, MARGREL1:41
.=
(c1 |-> 1) . c
3
by E11, FINSEQ_2:70
;
end;
hence
'not' c
2 = c
1 |-> 1
by E7, FINSEQ_1:18;
end;
theorem E6: :: BINARI_3:7
proof
defpred S
1[
Nat] means for b
1 being
Tuple of a
1,
BOOLEAN holds
( b
1 = 0* a
1 implies
Absval b
1 = 0 );
E7:
S
1[1]
E8:
for b
1 being non
empty Nat holds
( S
1[b
1] implies S
1[b
1 + 1] )
proof
let c
1 be non
empty Nat;
assume E9:
for b
1 being
Tuple of c
1,
BOOLEAN holds
( b
1 = 0* c
1 implies
Absval b
1 = 0 )
;
let c
2 be
Tuple of
(c1 + 1),
BOOLEAN ;
0* c
1 in BOOLEAN *
by E4;
then E10:
0* c
1 is
FinSequence of
BOOLEAN
by FINSEQ_1:def 11;
len (0* c1) = c
1
by JORDAN2B:8;
then reconsider c
3 =
0* c
1 as
Tuple of c
1,
BOOLEAN by E10, FINSEQ_2:110;
assume
c
2 = 0* (c1 + 1)
;
hence Absval c
2 =
Absval (c3 ^ <*FALSE *>)
by E3, MARGREL1:36
.=
(Absval c3) + (IFEQ FALSE ,FALSE ,0,(2 to_power c1))
by BINARITH:46
.=
0
+ (IFEQ FALSE ,FALSE ,0,(2 to_power c1))
by E9
.=
0
by CQC_LANG:def 1
;
end;
thus
for b
1 being non
empty Nat holds
S
1[b
1]
from BINARITH:sch 1(E7, E8);
end;
theorem :: BINARI_3:8
theorem :: BINARI_3:9
theorem :: BINARI_3:10
theorem E7: :: BINARI_3:11
theorem E8: :: BINARI_3:12
theorem E9: :: BINARI_3:13
theorem E10: :: BINARI_3:14
theorem E11: :: BINARI_3:15
theorem :: BINARI_3:16
theorem :: BINARI_3:17
theorem E12: :: BINARI_3:18
theorem :: BINARI_3:19
theorem E13: :: BINARI_3:20
proof
let c
1 be non
empty Nat;
let c
2, c
3 be
Tuple of c
1,
BOOLEAN ;
assume that
E14:
c
2 /. c
1 = TRUE
and
E15:
(carry c2,(Bin1 c1)) /. c
1 = TRUE
;
let c
4 be non
empty Nat;
E16:
1
<= c
1
by NAT_1:39;
assume that
E17:
c
4 <> 1
and
E18:
c
4 <= c
1
;
defpred S
1[
Nat] means ( a
1 in Seg (c1 -' 1) implies ( c
2 /. ((c1 -' a1) + 1) = TRUE &
(carry c2,(Bin1 c1)) /. ((c1 -' a1) + 1) = TRUE ) );
E19:
S
1[1]
by E14, E15, E16, AMI_5:4;
E20:
for b
1 being non
empty Nat holds
( S
1[b
1] implies S
1[b
1 + 1] )
proof
let c
5 be non
empty Nat;
assume that
E21:
S
1[c
5]
and
E22:
c
5 + 1
in Seg (c1 -' 1)
;
E23:
( 1
<= c
5 + 1 & c
5 + 1
<= c
1 -' 1 )
by E22, FINSEQ_1:3;
E24:
1
<= c
5
by NAT_1:39;
E25:
c
5 < c
1 -' 1
by E23, NAT_1:38;
then
c
5 < c
1 - 1
by E16, BINARITH:50;
then
c
5 + 1
< c
1
by XREAL_1:22;
then E26:
c
5 < c
1
by NAT_1:38;
E27:
c
1 -' c
5 < c
1
by NAT_2:11;
c
5 + 1
<= c
1 - 1
by E16, E23, BINARITH:50;
then
1
<= (c1 - 1) - c
5
by XREAL_1:21;
then
1
<= (c1 - c5) - 1
;
then
1
+ 1
<= c
1 - c
5
by XREAL_1:21;
then
1
+ 1
<= c
1 -' c
5
by E26, BINARITH:50;
then E28:
c
1 -' c
5 > 1
by NAT_1:38;
then
c
1 -' c
5 in Seg c
1
by E27, FINSEQ_1:3;
then
(Bin1 c1) /. (c1 -' c5) = FALSE
by E28, BINARI_2:8;
then E29:
(
(c2 /. (c1 -' c5)) '&' ((Bin1 c1) /. (c1 -' c5)) = FALSE &
((Bin1 c1) /. (c1 -' c5)) '&' ((carry c2,(Bin1 c1)) /. (c1 -' c5)) = FALSE )
by MARGREL1:45;
TRUE =
(((c2 /. (c1 -' c5)) '&' ((Bin1 c1) /. (c1 -' c5))) 'or' ((c2 /. (c1 -' c5)) '&' ((carry c2,(Bin1 c1)) /. (c1 -' c5)))) 'or' (((Bin1 c1) /. (c1 -' c5)) '&' ((carry c2,(Bin1 c1)) /. (c1 -' c5)))
by E21, E24, E25, E27, E28, BINARITH:def 5, FINSEQ_1:3
.=
((c2 /. (c1 -' c5)) '&' ((Bin1 c1) /. (c1 -' c5))) 'or' ((c2 /. (c1 -' c5)) '&' ((carry c2,(Bin1 c1)) /. (c1 -' c5)))
by E29, BINARITH:7
.=
(c2 /. (c1 -' c5)) '&' ((carry c2,(Bin1 c1)) /. (c1 -' c5))
by E29, BINARITH:7
;
then E30:
( c
2 /. (c1 -' c5) = TRUE &
(carry c2,(Bin1 c1)) /. (c1 -' c5) = TRUE )
by MARGREL1:45;
hence
c
2 /. ((c1 -' (c5 + 1)) + 1)