reserve X for set;
reserve a,b,c,k,m,n for Nat;
reserve i,j for Integer;
reserve r,s for Real;
reserve p,p1,p2,p3 for Prime;

theorem Th6:
  m <= n implies m! divides n!
  proof
    defpred P[Nat] means m <= $1 implies m! divides $1!;
A1: P[0];
A2: P[k] implies P[k+1]
    proof
      assume
A3:   P[k];
      assume m <= k+1;
      then per cases by NAT_1:8;
      suppose
A4:     m <= k;
A5:     (k+1)! = k!*(k+1) by NEWTON:15;
        1 divides k+1 by INT_2:12;
        then m!*1 divides (k+1)! by A3,A4,A5,NAT_3:1;
        hence m! divides (k+1)!;
      end;
      suppose m = k+1;
        hence m! divides (k+1)!;
      end;
    end;
    P[k] from NAT_1:sch 2(A1,A2);
    hence thesis;
  end;
