deffunc H1(   set ,   Element of [:NAT,NAT:]) ->    Element of [:NAT,NAT:] =  In ([($2 `2),(($2 `1) + ($2 `2))],[:NAT,NAT:]);
defpred S1[  Nat,   FinSequence of  NAT ,   set ] means ( (  for k being   Nat  st $1 + 2 = 2 * k holds 
$3 = $2 ^ <*($2 /. k)*> ) & (  for k being   Nat  st $1 + 2 = (2 * k) + 1 holds 
$3 = $2 ^ <*(($2 /. k) + ($2 /. (k + 1)))*> ) );
Lm1: 
 for n being   Nat
  for x being    Element of NAT *   ex y being    Element of NAT *  st S1[n,x,y]
 
defpred S2[  Nat,   FinSequence of  NAT ,   set ] means ( (  for k being    Element of  NAT   st $1 + 2 = 2 * k holds 
$3 = $2 ^ <*($2 /. k)*> ) & (  for k being    Element of  NAT   st $1 + 2 = (2 * k) + 1 holds 
$3 = $2 ^ <*(($2 /. k) + ($2 /. (k + 1)))*> ) );
Lm2: 
 for n being   Nat
  for x, y1, y2 being    Element of NAT *   st S2[n,x,y1] & S2[n,x,y2] holds 
y1 = y2
 
theorem 
 for 
n being   
Nat  st 
n <>  0  holds 
n < 2 
* n
 
theorem 
 for 
n being   
Nat  holds 
n < (2 * n) + 1