Step-by-step derivation
S001 · implies
Before
source roles = [qf-str22-presentvalue-forward-backward-audit, presentvalue-forward-backward-audit]
After
derived = [[principal, rate, periods, future, recovered, roundtrip]]
Conditions: none
Follow THIS bank exact keys,domain/frame,operation and answer role.STR22/App20 tuples differ from legacy scalars;retain or omit/1 by the ORIGINAL contract,not a generic visual convention.
Step identifiers and dependencies
Rule: R58_EXACT_source_interface_and_answer_ROLE · Uses: G001
S002 · implies
Before
source roles = [Present value rate, [0, 20]]
After
derived = [0]
Conditions: none
Check BOTH raw pair components within1e6 and nonzero denominator BEFORE sign/gcd normalization.This STR22 profile must not be imposed on legacy SAFE/BigInt tasks.
Step identifiers and dependencies
Rule: STR22_input_RAW_pair1e6_before_sign_gcd_normalization · Uses: G001, S001
S003 · calculation
Before
Present value ORIGINAL positive accumulation factor := sum(1, 0)
After
Present value ORIGINAL positive accumulation factor = 1
Conditions: none
Substitute exact ORIGINAL operands.Additional teaching algebra does not inherit raw-input caps;only declared SOURCE rational operations apply their own profile.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S002
S004 · implies
Before
source roles = [Present value ORIGINAL positive accumulation factor, sum, [1, 0]]
After
derived = [[1], [1, 1], 1]
Conditions: none
SOURCE addition first uses denominator gcd,and multiplication cross-cancels.Check BOTH resulting raw components within1e6 BEFORE final reduction.Division qualifies the nonzero reciprocal.Do not substitute another bank profile or loosen a source hold.
Step identifiers and dependencies
Rule: STR22_SOURCE_gcd_crosscancel_THEN_raw1e6_BEFORE_final_reduction · Uses: G001, S003
S005 · implies
Before
source roles = [0, 1]
After
derived = [Yes]
Conditions: none
Use the SAME fixed per-period rate/period convention without cash flows,fees,taxes or rounding.Require1+rate>0;the rate may be negative.This is not a market forecast or investment advice.
Step identifiers and dependencies
Rule: Present_value_FIXED_model_same_rate_period_NOcashflows · Uses: G001, S004
S006 · implies
Before
source roles = [1, 1]
After
derived = [1, 1, 1, out*base^exp=factor^n]
Conditions: none
Initialize out=1,base=factor,exp=n with invariant out*base^exp=factor^n.At n=0 return the empty product1,but STILL qualify the original factor.
Step identifiers and dependencies
Rule: Present_value_BINARY_power_initial_emptyproduct_invariant · Uses: G001, S005
S007 · calculation
Before
Present value ORIGINAL binary odd multiply0 := mul(1, 1)
After
Present value ORIGINAL binary odd multiply0 = 1
Conditions: none
Substitute exact ORIGINAL operands.Additional teaching algebra does not inherit raw-input caps;only declared SOURCE rational operations apply their own profile.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S006
S008 · implies
Before
source roles = [Present value ORIGINAL binary odd multiply0, mul, [1, 1]]
After
derived = [[1, 1], [1, 1], 1]
Conditions: none
SOURCE addition first uses denominator gcd,and multiplication cross-cancels.Check BOTH resulting raw components within1e6 BEFORE final reduction.Division qualifies the nonzero reciprocal.Do not substitute another bank profile or loosen a source hold.
Step identifiers and dependencies
Rule: STR22_SOURCE_gcd_crosscancel_THEN_raw1e6_BEFORE_final_reduction · Uses: G001, S007
S009 · implies
Before
source roles = [1, 1, 0, [1, 1, 1]]
After
derived = [Yes, 1, 1, 0, Yes]
Conditions: none
Write old exp=2q+r.Multiply by base when r=1,and square the base ONLY if q>0.This preserves the SAME exact power without an unused final square that could cause a spurious source hold.Do not replace the SOURCE binary sequence with linear multiplication and shrink its domain.
Step identifiers and dependencies
Rule: Present_value_EACH_binary_exponent_step_no_unused_final_square · Uses: G001, S008
S010 · implies
Before
source roles = [Present value principal, [94, 2]]
After
derived = [47]
Conditions: none
Check BOTH raw pair components within1e6 and nonzero denominator BEFORE sign/gcd normalization.This STR22 profile must not be imposed on legacy SAFE/BigInt tasks.
Step identifiers and dependencies
Rule: STR22_input_RAW_pair1e6_before_sign_gcd_normalization · Uses: G001, S009
S011 · calculation
Before
Present value ORIGINAL compound principal := mul(47, 1)
After
Present value ORIGINAL compound principal = 47
Conditions: none
Substitute exact ORIGINAL operands.Additional teaching algebra does not inherit raw-input caps;only declared SOURCE rational operations apply their own profile.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S010
S012 · implies
Before
source roles = [Present value ORIGINAL compound principal, mul, [47, 1]]
After
derived = [[1, 1], [47, 1], 47]
Conditions: none
SOURCE addition first uses denominator gcd,and multiplication cross-cancels.Check BOTH resulting raw components within1e6 BEFORE final reduction.Division qualifies the nonzero reciprocal.Do not substitute another bank profile or loosen a source hold.
Step identifiers and dependencies
Rule: STR22_SOURCE_gcd_crosscancel_THEN_raw1e6_BEFORE_final_reduction · Uses: G001, S011
S013 · calculation
Before
Present value ORIGINAL discount SAME compounded amount := div(47, 1)
After
Present value ORIGINAL discount SAME compounded amount = 47
Conditions: none
Substitute exact ORIGINAL operands.Additional teaching algebra does not inherit raw-input caps;only declared SOURCE rational operations apply their own profile.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S012
S014 · implies
Before
source roles = [Present value ORIGINAL discount SAME compounded amount, div, [47, 1]]
After
derived = [[1, 1], [47, 1], 47]
Conditions: none
SOURCE addition first uses denominator gcd,and multiplication cross-cancels.Check BOTH resulting raw components within1e6 BEFORE final reduction.Division qualifies the nonzero reciprocal.Do not substitute another bank profile or loosen a source hold.
Step identifiers and dependencies
Rule: STR22_SOURCE_gcd_crosscancel_THEN_raw1e6_BEFORE_final_reduction · Uses: G001, S013
S015 · implies
Before
source roles = [47, 0, 1, 1]
After
derived = [47, 47, Yes]
Conditions: none
The SAME positive accumulation gives(principal*acc)/acc=principal.Retain both actual calculations,including n=0.This exact-model algebraic roundtrip makes no claim about realized future returns.
Step identifiers and dependencies
Rule: Present_value_roundtrip_cancel_SAME_positive_power · Uses: G001, S014