
theorem LMC31D:
  for k be Nat holds 2*k <= 2 to_power k
  proof
    defpred P[Nat] means 2*$1 <= 2 to_power $1;
    P1:P[0];
    P2: for n be Nat st P[n] holds P[n+1]
    proof
      let n be Nat;
      assume A1: P[n];
      per cases;
      suppose n=0;
        hence 2*(n+1) <= 2 to_power (n+1) by POWER:25;
      end;
      suppose n <> 0; then
        n-1 in NAT by INT_1:5,NAT_1:14;
        then reconsider m=n-1 as Nat;
        A3: 2 <= 2 to_power (m+1) by LMC31B;
        A2: 2 to_power (n+1) = 2 to_power n * 2 to_power 1 by POWER:27
        .= 2 to_power n * 2 by POWER:25
        .= 2 to_power n + 2 to_power n;
        2*n + 2 <= 2 to_power n + 2 to_power n by A3,XREAL_1:7,A1;
        hence 2*(n+1) <= 2 to_power (n+1) by A2;
      end;
    end;
    for n be Nat holds P[n] from NAT_1:sch 2(P1,P2);
    hence thesis;
  end;
