Step-by-step derivation
S001 · implies
Before
source operation=upf-uniqueness-audit;original snapshot and mathematics retained
After
explicit ordered source output fields=[left_valid, right_valid, sorted_left, sorted_right, divisibility_rows, uniqueness_certificate, certificate]
Conditions: none
Retain the historical interface marker while listing ordered output fields without JavaScript.Fields and tags are not extra mathematical evidence;fixed No markers retain their claim scope.
Step identifiers and dependencies
Rule: source_ordered_interface_explicit_without_javascript · Uses: G001
S002 · implies
Before
upf LEFT factor index0:ORIGINAL candidate factor=2;ALL possible trial divisors2..floor(sqrt(v))=[]
After
ALL [divisor,remainder] rows=[];prime=Yes
Conditions: none
A composite integer greater than1 has a divisor at most its square root.Complete nondivisibility over that interval certifies primality,including the empty interval for2.Matching a product cannot replace this obligation.
Step identifiers and dependencies
Rule: upf_every_trial_divisor_primality_not_product_only · Uses: G001, S001
S003 · calculation
Before
upf LEFT complete product at original factor0 := mul(1, 2)
After
upf LEFT complete product at original factor0 = 2
Conditions: none
Substitute the original roles and established intermediates exactly,retaining order,signs and quantified conditions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S002
S004 · implies
Before
upf LEFT factor index1:ORIGINAL candidate factor=3;ALL possible trial divisors2..floor(sqrt(v))=[]
After
ALL [divisor,remainder] rows=[];prime=Yes
Conditions: none
A composite integer greater than1 has a divisor at most its square root.Complete nondivisibility over that interval certifies primality,including the empty interval for2.Matching a product cannot replace this obligation.
Step identifiers and dependencies
Rule: upf_every_trial_divisor_primality_not_product_only · Uses: G001, S003
S005 · calculation
Before
upf LEFT complete product at original factor1 := mul(2, 3)
After
upf LEFT complete product at original factor1 = 6
Conditions: none
Substitute the original roles and established intermediates exactly,retaining order,signs and quantified conditions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S004
S006 · implies
Before
upf LEFT factor index2:ORIGINAL candidate factor=23;ALL possible trial divisors2..floor(sqrt(v))=[2, 3, 4]
After
ALL [divisor,remainder] rows=[[2, 1], [3, 2], [4, 3]];prime=Yes
Conditions: none
A composite integer greater than1 has a divisor at most its square root.Complete nondivisibility over that interval certifies primality,including the empty interval for2.Matching a product cannot replace this obligation.
Step identifiers and dependencies
Rule: upf_every_trial_divisor_primality_not_product_only · Uses: G001, S005
S007 · calculation
Before
upf LEFT complete product at original factor2 := mul(6, 23)
After
upf LEFT complete product at original factor2 = 138
Conditions: none
Substitute the original roles and established intermediates exactly,retaining order,signs and quantified conditions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S006
S008 · implies
Before
upf LEFT:ORIGINAL factors=[2, 3, 23];ALL primality flags=[Yes, Yes, Yes];original n=138
After
empty product convention1;actual complete product=138;all_prime=Yes;valid_prime_product=Yes
Conditions: none
Keep original factor order.An empty list vacuously has all-prime entries,but its product1 differs from n>1.A matching composite product is not a prime factorization.The SAFE guard concerns source projection,not theorem truth.
Step identifiers and dependencies
Rule: upf_candidate_prime_and_complete_product_separate · Uses: G001, S007
S009 · implies
Before
upf RIGHT factor index0:ORIGINAL candidate factor=23;ALL possible trial divisors2..floor(sqrt(v))=[2, 3, 4]
After
ALL [divisor,remainder] rows=[[2, 1], [3, 2], [4, 3]];prime=Yes
Conditions: none
A composite integer greater than1 has a divisor at most its square root.Complete nondivisibility over that interval certifies primality,including the empty interval for2.Matching a product cannot replace this obligation.
Step identifiers and dependencies
Rule: upf_every_trial_divisor_primality_not_product_only · Uses: G001, S008
S010 · calculation
Before
upf RIGHT complete product at original factor0 := mul(1, 23)
After
upf RIGHT complete product at original factor0 = 23
Conditions: none
Substitute the original roles and established intermediates exactly,retaining order,signs and quantified conditions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S009
S011 · implies
Before
upf RIGHT factor index1:ORIGINAL candidate factor=2;ALL possible trial divisors2..floor(sqrt(v))=[]
After
ALL [divisor,remainder] rows=[];prime=Yes
Conditions: none
A composite integer greater than1 has a divisor at most its square root.Complete nondivisibility over that interval certifies primality,including the empty interval for2.Matching a product cannot replace this obligation.
Step identifiers and dependencies
Rule: upf_every_trial_divisor_primality_not_product_only · Uses: G001, S010
S012 · calculation
Before
upf RIGHT complete product at original factor1 := mul(23, 2)
After
upf RIGHT complete product at original factor1 = 46
Conditions: none
Substitute the original roles and established intermediates exactly,retaining order,signs and quantified conditions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S011
S013 · implies
Before
upf RIGHT factor index2:ORIGINAL candidate factor=3;ALL possible trial divisors2..floor(sqrt(v))=[]
After
ALL [divisor,remainder] rows=[];prime=Yes
Conditions: none
A composite integer greater than1 has a divisor at most its square root.Complete nondivisibility over that interval certifies primality,including the empty interval for2.Matching a product cannot replace this obligation.
Step identifiers and dependencies
Rule: upf_every_trial_divisor_primality_not_product_only · Uses: G001, S012
S014 · calculation
Before
upf RIGHT complete product at original factor2 := mul(46, 3)
After
upf RIGHT complete product at original factor2 = 138
Conditions: none
Substitute the original roles and established intermediates exactly,retaining order,signs and quantified conditions.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S013
S015 · implies
Before
upf RIGHT:ORIGINAL factors=[23, 2, 3];ALL primality flags=[Yes, Yes, Yes];original n=138
After
empty product convention1;actual complete product=138;all_prime=Yes;valid_prime_product=Yes
Conditions: none
Keep original factor order.An empty list vacuously has all-prime entries,but its product1 differs from n>1.A matching composite product is not a prime factorization.The SAFE guard concerns source projection,not theorem truth.
Step identifiers and dependencies
Rule: upf_candidate_prime_and_complete_product_separate · Uses: G001, S014
S016 · implies
Before
SORTED left occurrence index=0,factor=2;ORIGINAL right factors=[23, 2, 3];full right product=138
After
[p,p_divides_product,FIRST original right index,right factor,right factor equals p]=[2, Yes, 1, 2, Yes];same right index MAY be reused
Conditions: none
Choose the first divisible factor in original right order without consuming an occurrence.Invalid composite candidates give diagnostic rows,not Euclid-lemma claims for composite p.Joint validity still needs two valid prime products and all multiplicities equal.
Step identifiers and dependencies
Rule: upf_local_first_right_witness_not_occurrence_matching · Uses: G001, S015
S017 · implies
Before
SORTED left occurrence index=1,factor=3;ORIGINAL right factors=[23, 2, 3];full right product=138
After
[p,p_divides_product,FIRST original right index,right factor,right factor equals p]=[3, Yes, 2, 3, Yes];same right index MAY be reused
Conditions: none
Choose the first divisible factor in original right order without consuming an occurrence.Invalid composite candidates give diagnostic rows,not Euclid-lemma claims for composite p.Joint validity still needs two valid prime products and all multiplicities equal.
Step identifiers and dependencies
Rule: upf_local_first_right_witness_not_occurrence_matching · Uses: G001, S016
S018 · implies
Before
SORTED left occurrence index=2,factor=23;ORIGINAL right factors=[23, 2, 3];full right product=138
After
[p,p_divides_product,FIRST original right index,right factor,right factor equals p]=[23, Yes, 0, 23, Yes];same right index MAY be reused
Conditions: none
Choose the first divisible factor in original right order without consuming an occurrence.Invalid composite candidates give diagnostic rows,not Euclid-lemma claims for composite p.Joint validity still needs two valid prime products and all multiplicities equal.
Step identifiers and dependencies
Rule: upf_local_first_right_witness_not_occurrence_matching · Uses: G001, S017
S019 · implies
Before
ORIGINAL n=138;left valid=Yes,right valid=Yes;sorted multisets=[[2, 3, 23], [2, 3, 23]];local witness rows=[[2, Yes, 1, 2, Yes], [3, Yes, 2, 3, Yes], [23, Yes, 0, 23, Yes]]
After
joint uniqueness certificate=Yes;general proof:prime p divides other product;Euclid lemma gives equal prime factor;match ONE occurrence,cancel nonzero p,then induct on remaining factor count
Conditions: none
Euclid's lemma follows from multiplying a Bezout identity when gcd(p,a)=1:if p divides ab,it divides b.Iterate over the finite product,match one equal prime,cancel that nonzero factor,and induct to the empty product1;remaining primes≥2 cannot multiply to1.Reused local indices alone do not prove global multiplicity matching.
Step identifiers and dependencies
Rule: upf_general_uniqueness_Euclid_nonzero_cancel_induction · Uses: G001, S018
Result
(Yes, Yes, [2, 3, 23], [2, 3, 23], [[2, Yes, 1, 2, Yes], [3, Yes, 2, 3, Yes], [23, Yes, 0, 23, Yes]], Yes, Euclid_lemma_witness_p_divides_product_implies_p_divides_a_prime_factor)
The full substitutions and premise checks give the original answer; source identity,format and status are unchanged.