:: BINARITH  semantic presentation
Lemma1: 
for b1, b2 being  Nat holds  addnat  . b1,b2 = b1 + b2
 
by BINOP_2:def 23;
theorem Th1: :: BINARITH:1
canceled; 
theorem Th2: :: BINARITH:2
theorem Th3: :: BINARITH:3
theorem Th4: :: BINARITH:4
canceled; 
theorem Th5: :: BINARITH:5
:: deftheorem Def1   defines 'or' BINARITH:def 1 : 
:: deftheorem Def2   defines 'xor' BINARITH:def 2 : 
theorem Th6: :: BINARITH:6
canceled; 
theorem Th7: :: BINARITH:7
theorem Th8: :: BINARITH:8
canceled; 
theorem Th9: :: BINARITH:9
theorem Th10: :: BINARITH:10
theorem Th11: :: BINARITH:11
canceled; 
theorem Th12: :: BINARITH:12
theorem Th13: :: BINARITH:13
theorem Th14: :: BINARITH:14
theorem Th15: :: BINARITH:15
theorem Th16: :: BINARITH:16
theorem Th17: :: BINARITH:17
theorem Th18: :: BINARITH:18
theorem Th19: :: BINARITH:19
theorem Th20: :: BINARITH:20
theorem Th21: :: BINARITH:21
theorem Th22: :: BINARITH:22
theorem Th23: :: BINARITH:23
theorem Th24: :: BINARITH:24
theorem Th25: :: BINARITH:25
theorem Th26: :: BINARITH:26
theorem Th27: :: BINARITH:27
theorem Th28: :: BINARITH:28
canceled; 
theorem Th29: :: BINARITH:29
canceled; 
theorem Th30: :: BINARITH:30
canceled; 
theorem Th31: :: BINARITH:31
canceled; 
theorem Th32: :: BINARITH:32
canceled; 
theorem Th33: :: BINARITH:33
theorem Th34: :: BINARITH:34
theorem Th35: :: BINARITH:35
theorem Th36: :: BINARITH:36
theorem Th37: :: BINARITH:37
theorem Th38: :: BINARITH:38
:: deftheorem Def3   defines -' BINARITH:def 3 : 
for 
b1, 
b2 being 
natural  number  holds 
 ( ( 
b1 - b2 >= 0 implies 
b1 -' b2 = b1 - b2 ) & ( not 
b1 - b2 >= 0 implies 
b1 -' b2 = 0 ) );
theorem Th39: :: BINARITH:39
:: deftheorem Def4   defines 'not' BINARITH:def 4 : 
:: deftheorem Def5   defines carry BINARITH:def 5 : 
definition
let c1 be   
Nat;
let c2 be   
Tuple of 
c1,
BOOLEAN ;
func  Binary c2 ->   Tuple of 
a1,
NAT  means :
Def6: 
:: BINARITH:def 6
for 
b1 being  
Nat  st 
b1 in  Seg a1 holds 
a3 /. b1 =  IFEQ (a2 /. b1),
FALSE ,0,
(2 to_power (b1 -' 1));
existence 
ex b1 being  Tuple of c1,NAT  st 
for b2 being  Nat  st b2 in  Seg c1 holds 
b1 /. b2 =  IFEQ (c2 /. b2),FALSE ,0,(2 to_power (b2 -' 1))
 
uniqueness 
for b1, b2 being  Tuple of c1,NAT   st ( for b3 being  Nat  st b3 in  Seg c1 holds 
b1 /. b3 =  IFEQ (c2 /. b3),FALSE ,0,(2 to_power (b3 -' 1)) ) & ( for b3 being  Nat  st b3 in  Seg c1 holds 
b2 /. b3 =  IFEQ (c2 /. b3),FALSE ,0,(2 to_power (b3 -' 1)) ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def6   defines Binary BINARITH:def 6 : 
:: deftheorem Def7   defines Absval BINARITH:def 7 : 
definition
let c1 be  non 
empty Nat;
let c2, 
c3 be   
Tuple of 
c1,
BOOLEAN ;
func c2 + c3 ->   Tuple of 
a1,
BOOLEAN  means :
Def8: 
:: BINARITH:def 8
for 
b1 being  
Nat  st 
b1 in  Seg a1 holds 
a4 /. b1 = ((a2 /. b1) 'xor' (a3 /. b1)) 'xor' ((carry a2,a3) /. b1);
existence 
ex b1 being  Tuple of c1,BOOLEAN  st 
for b2 being  Nat  st b2 in  Seg c1 holds 
b1 /. b2 = ((c2 /. b2) 'xor' (c3 /. b2)) 'xor' ((carry c2,c3) /. b2)
 
uniqueness 
for b1, b2 being  Tuple of c1,BOOLEAN   st ( for b3 being  Nat  st b3 in  Seg c1 holds 
b1 /. b3 = ((c2 /. b3) 'xor' (c3 /. b3)) 'xor' ((carry c2,c3) /. b3) ) & ( for b3 being  Nat  st b3 in  Seg c1 holds 
b2 /. b3 = ((c2 /. b3) 'xor' (c3 /. b3)) 'xor' ((carry c2,c3) /. b3) ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def8   defines + BINARITH:def 8 : 
:: deftheorem Def9   defines add_ovfl BINARITH:def 9 : 
:: deftheorem Def10   defines are_summable BINARITH:def 10 : 
theorem Th40: :: BINARITH:40
theorem Th41: :: BINARITH:41
theorem Th42: :: BINARITH:42
theorem Th43: :: BINARITH:43
theorem Th44: :: BINARITH:44
theorem Th45: :: BINARITH:45
theorem Th46: :: BINARITH:46
theorem Th47: :: BINARITH:47
theorem Th48: :: BINARITH:48
theorem Th49: :: BINARITH:49
theorem Th50: :: BINARITH:50
theorem Th51: :: BINARITH:51
theorem Th52: :: BINARITH:52
theorem Th53: :: BINARITH:53