Step-by-step derivation
S001 · implies
Before
N includes0;F(0)=1;F(j)=j·F(j−1)
After
exact integer products,not floating values or a permutation proof
Conditions: none
Use empty product1 and integer factor multiplication,retaining large values exactly.This finite recurrence audit is not a general proof of permutation counting.
Step identifiers and dependencies
Rule: exact_factorial_protocol · Uses: G001
S002 · implies
Before
actual factorial:start at F(0)
After
F(0)=1
Conditions: none
The product of zero factors is1,not0;this is the successor recurrence's base.
Step identifiers and dependencies
Rule: factorial_empty_product_base · Uses: G001, S001
S003 · calculation
Before
actual factorial through factor1 := mul(1, 1)
After
actual factorial through factor1 = 1
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S002
S004 · calculation
Before
actual factorial through factor2 := mul(1, 2)
After
actual factorial through factor2 = 2
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S003
S005 · calculation
Before
actual factorial through factor3 := mul(2, 3)
After
actual factorial through factor3 = 6
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S004
S006 · calculation
Before
actual factorial through factor4 := mul(6, 4)
After
actual factorial through factor4 = 24
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S005
S007 · calculation
Before
actual factorial through factor5 := mul(24, 5)
After
actual factorial through factor5 = 120
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S006
S008 · calculation
Before
actual factorial through factor6 := mul(120, 6)
After
actual factorial through factor6 = 720
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S007
S009 · calculation
Before
actual factorial through factor7 := mul(720, 7)
After
actual factorial through factor7 = 5040
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S008
S010 · calculation
Before
actual factorial through factor8 := mul(5040, 8)
After
actual factorial through factor8 = 40320
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S009
S011 · calculation
Before
actual factorial through factor9 := mul(40320, 9)
After
actual factorial through factor9 = 362880
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S010
S012 · calculation
Before
actual factorial through factor10 := mul(362880, 10)
After
actual factorial through factor10 = 3628800
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S011
S013 · calculation
Before
actual factorial through factor11 := mul(3628800, 11)
After
actual factorial through factor11 = 39916800
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S012
S014 · calculation
Before
actual factorial through factor12 := mul(39916800, 12)
After
actual factorial through factor12 = 479001600
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S013
S015 · calculation
Before
actual factorial through factor13 := mul(479001600, 13)
After
actual factorial through factor13 = 6227020800
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S014
S016 · calculation
Before
actual factorial through factor14 := mul(6227020800, 14)
After
actual factorial through factor14 = 87178291200
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S015
S017 · calculation
Before
actual factorial through factor15 := mul(87178291200, 15)
After
actual factorial through factor15 = 1307674368000
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S016
S018 · calculation
Before
actual factorial through factor16 := mul(1307674368000, 16)
After
actual factorial through factor16 = 20922789888000
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S017
S019 · calculation
Before
actual factorial through factor17 := mul(20922789888000, 17)
After
actual factorial through factor17 = 355687428096000
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S018
S020 · calculation
Before
actual factorial through factor18 := mul(355687428096000, 18)
After
actual factorial through factor18 = 6402373705728000
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S019
S021 · calculation
Before
actual factorial through factor19 := mul(6402373705728000, 19)
After
actual factorial through factor19 = 121645100408832000
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S020
S022 · calculation
Before
actual factorial through factor20 := mul(121645100408832000, 20)
After
actual factorial through factor20 = 2432902008176640000
Conditions: none
Multiply the preceding factorial by the new positive integer factor,retaining every exact intermediate.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S021
S023 · calculation
Before
true successor factorial := mul(21, 2432902008176640000)
After
true successor factorial = 51090942171709440000
Conditions: none
Compute F(n+1)=(n+1)F(n).
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S022
S024 · calculation
Before
successor factorial ratio := div(51090942171709440000, 2432902008176640000)
After
successor factorial ratio = 21
Conditions: none
Since F(n)>0,division is legal and the exact ratio is n+1.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S023
S025 · implies
Before
F(20)=2432902008176640000>0;F(21)=51090942171709440000
After
ratio=21
Conditions: none
This includes n=0 with F(0)=F(1)=1,without0!=0 or floating approximations.
Step identifiers and dependencies
Rule: positive_factorial_adjacent_ratio · Uses: G001, S024