:: NAT_2 semantic presentation

scheme :: NAT_2:sch 1
s1{ F1() -> non empty set , F2() -> Element of F1(), F3() -> Nat, P1[ set , set , set ] } :
ex b1 being FinSequence of F1() st
( len b1 = F3() & ( b1 /. 1 = F2() or F3() = 0 ) & ( for b2 being Nat holds
( 1 <= b2 & b2 < F3() implies P1[b2,b1 /. b2,b1 /. (b2 + 1)] ) ) )
provided
E1: for b1 being Nat holds
( 1 <= b1 & b1 < F3() implies for b2 being Element of F1() holds
ex b3 being Element of F1() st P1[b1,b2,b3] )
proof end;

theorem Th1: :: NAT_2:1
canceled;

theorem Th2: :: NAT_2:2
for b1, b2 being real number holds
not ( b1 >= 0 & b2 > 0 & not b1 / ([\(b1 / b2)/] + 1) < b2 )
proof end;

theorem Th3: :: NAT_2:3
canceled;

theorem Th4: :: NAT_2:4
for b1 being natural number holds 0 div b1 = 0
proof end;

theorem Th5: :: NAT_2:5
for b1 being non empty Nat holds b1 div b1 = 1
proof end;

theorem Th6: :: NAT_2:6
for b1 being Nat holds b1 div 1 = b1
proof end;

theorem Th7: :: NAT_2:7
for b1, b2, b3, b4 being natural number holds
( b1 <= b2 & b3 <= b2 & b1 = (b2 -' b3) + b4 implies b3 = (b2 -' b1) + b4 )
proof end;

theorem Th8: :: NAT_2:8
for b1, b2 being natural number holds
( b1 in Seg b2 implies (b2 -' b1) + 1 in Seg b2 )
proof end;

theorem Th9: :: NAT_2:9
for b1, b2 being natural number holds
( b2 < b1 implies (b1 -' (b2 + 1)) + 1 = b1 -' b2 )
proof end;

theorem Th10: :: NAT_2:10
for b1, b2 being natural number holds
( b1 >= b2 implies b2 -' b1 = 0 )
proof end;

theorem Th11: :: NAT_2:11
for b1, b2 being non empty natural number holds
b1 -' b2 < b1
proof end;

theorem Th12: :: NAT_2:12
for b1, b2 being natural number holds
( b2 <= b1 implies 2 to_power b1 = (2 to_power b2) * (2 to_power (b1 -' b2)) )
proof end;

theorem Th13: :: NAT_2:13
for b1, b2 being Nat holds
( b2 <= b1 implies 2 to_power b2 divides 2 to_power b1 )
proof end;

theorem Th14: :: NAT_2:14
for b1, b2 being natural number holds
not ( b2 > 0 & b1 div b2 = 0 & not b1 < b2 )
proof end;

theorem Th15: :: NAT_2:15
for b1, b2 being natural number holds
( b1 > 0 & b1 <= b2 implies b2 div b1 >= 1 )
proof end;

theorem Th16: :: NAT_2:16
for b1, b2 being natural number holds
( b1 <> 0 implies (b2 + b1) div b1 = (b2 div b1) + 1 )
proof end;

theorem Th17: :: NAT_2:17
for b1, b2, b3 being natural number holds
( b1 divides b2 & 1 <= b2 & 1 <= b3 & b3 <= b1 implies (b2 -' b3) div b1 = (b2 div b1) - 1 )
proof end;

theorem Th18: :: NAT_2:18
for b1, b2 being Nat holds
( b2 <= b1 implies (2 to_power b1) div (2 to_power b2) = 2 to_power (b1 -' b2) )
proof end;

theorem Th19: :: NAT_2:19
for b1 being Nat holds
( b1 > 0 implies (2 to_power b1) mod 2 = 0 )
proof end;

theorem Th20: :: NAT_2:20
for b1 being Nat holds
( b1 > 0 implies ( b1 mod 2 = 0 iff (b1 -' 1) mod 2 = 1 ) )
proof end;

theorem Th21: :: NAT_2:21
for b1 being non empty natural number holds
not ( b1 <> 1 & not b1 > 1 )
proof end;

theorem Th22: :: NAT_2:22
for b1, b2 being natural number holds
( b1 <= b2 & b2 < b1 + b1 implies b2 div b1 = 1 )
proof end;

theorem Th23: :: NAT_2:23
for b1 being Nat holds
( b1 is even iff b1 mod 2 = 0 )
proof end;

theorem Th24: :: NAT_2:24
for b1 being Nat holds
( not b1 is even iff b1 mod 2 = 1 )
proof end;

theorem Th25: :: NAT_2:25
for b1, b2, b3 being Nat holds
( 1 <= b3 & b2 <= b1 & 2 * b3 divides b2 implies ( b1 div b3 is even iff (b1 -' b2) div b3 is even ) )
proof end;

theorem Th26: :: NAT_2:26
for b1, b2, b3 being Nat holds
( b1 <= b2 implies b1 div b3 <= b2 div b3 )
proof end;

theorem Th27: :: NAT_2:27
for b1, b2 being Nat holds
( b2 <= 2 * b1 implies (b2 + 1) div 2 <= b1 )
proof end;

theorem Th28: :: NAT_2:28
for b1 being even Nat holds b1 div 2 = (b1 + 1) div 2
proof end;

theorem Th29: :: NAT_2:29
for b1, b2, b3 being Nat holds (b1 div b2) div b3 = b1 div (b2 * b3)
proof end;

definition
let c1 be natural number ;
redefine attr a1 is trivial means :Def1: :: NAT_2:def 1
( a1 = 0 or a1 = 1 );
compatibility
( c1 is trivial iff ( c1 = 0 or c1 = 1 ) )
proof end;
end;

:: deftheorem Def1 defines trivial NAT_2:def 1 :
for b1 being natural number holds
( b1 is trivial iff ( b1 = 0 or b1 = 1 ) );

registration
cluster non trivial Element of K49();
existence
not for b1 being Nat holds b1 is trivial
proof end;
cluster natural non trivial set ;
existence
ex b1 being number st
( not b1 is trivial & b1 is natural )
proof end;
end;

theorem Th30: :: NAT_2:30
for b1 being natural number holds
( not b1 is trivial iff ( not b1 is empty & b1 <> 1 ) ) by Def1;

theorem Th31: :: NAT_2:31
for b1 being natural non trivial number holds b1 >= 2
proof end;

scheme :: NAT_2:sch 2
s2{ P1[ Nat] } :
for b1 being non trivial Nat holds P1[b1]
provided
E9: P1[2] and E10: for b1 being non trivial Nat holds
( P1[b1] implies P1[b1 + 1] )
proof end;