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 Th47:
  for n being non zero Nat holds Euler n divides n!
  proof
    let n be non zero Nat;
    set F0 = Euler_factorization n;
    set F1 = Euler_factorization_1 n;
    set F2 = Euler_factorization_2 n;
    set b0 = B+*F0;
    set b1 = B+*F1;
    set b2 = B+*F2;
A1: Euler n = Product(b0) by Th26;
A2: Product(b1) divides n by Th33;
A3: Product(b2) divides (n-1)! by Th45,Th44;
A4: support b1 = support F1 by Th12;
A5: support F1 = dom F1 by Th28;
A6: support b2 = support F2 by Th12;
A7: support F2 = dom F2 by Th30;
A8: dom F1 = support ppf n by Def2;
A9: dom F2 = support ppf n by Def3;
    b0 = b1(#)b2 by Th31;
    then
A10: Product(b0) = Product(b1) * Product(b2) by A4,A5,A6,A7,A8,A9,Th16;
    (n-1+1)! = (n-1)! * (n-1+1) by NEWTON:15;
    hence thesis by A1,A2,A3,A10,NEWTON02:2;
  end;
