Step-by-step derivation
S001 · implies
Before
source roles = [qf-inverse-function-candidate, inverse_candidate, no-required-domain, []]
After
derived = [[BOTH_restorations_YesNo_STRING]]
Conditions: none
Legacy banks enforce their exact source keys/operation/domain.BASE integers retain metadata without treating it as an oracle.Distinguish NUMBER,string,fraction pair and vector equality formats;retain original bilingual data/AST/status.
Step identifiers and dependencies
Rule: R64_SOURCE_exact_legacy_interface_BASE_metadata_AND_output_roles · Uses: G001
S002 · implies
Before
source roles = [ORIGINAL f domain, [-5, -4, -3, -2, -1]]
After
derived = [[-5, -4, -3, -2, -1]]
Conditions: none
RAW sets are distinct,SAFE and≤100.Sort only a derived work table,retaining original lists/hashes.
Step identifiers and dependencies
Rule: FiniteMap_RAW_distinct_SAFE_set_bound100 · Uses: G001, S001
S003 · implies
Before
source roles = [ORIGINAL f codomain, [1, 3, 5, 7, 9]]
After
derived = [[1, 3, 5, 7, 9]]
Conditions: none
RAW sets are distinct,SAFE and≤100.Sort only a derived work table,retaining original lists/hashes.
Step identifiers and dependencies
Rule: FiniteMap_RAW_distinct_SAFE_set_bound100 · Uses: G001, S002
S004 · implies
Before
source roles = [ORIGINAL f, [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [[[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
Conditions: none
FIRST type EVERY raw pair and enforce raw length≤200,THEN normalize identical rows as one ordered pair.Do not merge different outputs of one input.Empty domains do not waive RAW checks.
Step identifiers and dependencies
Rule: FiniteMap_RAW200_bound_BEFORE_identical_row_ASSET_normalization · Uses: G001, S003
S005 · implies
Before
source roles = [ORIGINAL f, 0, -5, 9, [-5, -4, -3, -2, -1], [1, 3, 5, 7, 9]]
After
derived = [Yes, Yes, Yes]
Conditions: none
EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows.
Step identifiers and dependencies
Rule: FiniteMap_EACH_normalized_row_declared_domain_codomain_types · Uses: G001, S004
S006 · implies
Before
source roles = [ORIGINAL f, 1, -4, 1, [-5, -4, -3, -2, -1], [1, 3, 5, 7, 9]]
After
derived = [Yes, Yes, Yes]
Conditions: none
EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows.
Step identifiers and dependencies
Rule: FiniteMap_EACH_normalized_row_declared_domain_codomain_types · Uses: G001, S005
S007 · implies
Before
source roles = [ORIGINAL f, 2, -3, 3, [-5, -4, -3, -2, -1], [1, 3, 5, 7, 9]]
After
derived = [Yes, Yes, Yes]
Conditions: none
EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows.
Step identifiers and dependencies
Rule: FiniteMap_EACH_normalized_row_declared_domain_codomain_types · Uses: G001, S006
S008 · implies
Before
source roles = [ORIGINAL f, 3, -2, 5, [-5, -4, -3, -2, -1], [1, 3, 5, 7, 9]]
After
derived = [Yes, Yes, Yes]
Conditions: none
EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows.
Step identifiers and dependencies
Rule: FiniteMap_EACH_normalized_row_declared_domain_codomain_types · Uses: G001, S007
S009 · implies
Before
source roles = [ORIGINAL f, 4, -1, 7, [-5, -4, -3, -2, -1], [1, 3, 5, 7, 9]]
After
derived = [Yes, Yes, Yes]
Conditions: none
EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows.
Step identifiers and dependencies
Rule: FiniteMap_EACH_normalized_row_declared_domain_codomain_types · Uses: G001, S008
S010 · implies
Before
source roles = [ORIGINAL f, -5, [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [1, Yes]
Conditions: none
EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs.
Step identifiers and dependencies
Rule: FiniteMap_EACH_declared_input_exactly_one_output_row · Uses: G001, S009
S011 · implies
Before
source roles = [ORIGINAL f, -4, [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [1, Yes]
Conditions: none
EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs.
Step identifiers and dependencies
Rule: FiniteMap_EACH_declared_input_exactly_one_output_row · Uses: G001, S010
S012 · implies
Before
source roles = [ORIGINAL f, -3, [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [1, Yes]
Conditions: none
EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs.
Step identifiers and dependencies
Rule: FiniteMap_EACH_declared_input_exactly_one_output_row · Uses: G001, S011
S013 · implies
Before
source roles = [ORIGINAL f, -2, [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [1, Yes]
Conditions: none
EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs.
Step identifiers and dependencies
Rule: FiniteMap_EACH_declared_input_exactly_one_output_row · Uses: G001, S012
S014 · implies
Before
source roles = [ORIGINAL f, -1, [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [1, Yes]
Conditions: none
EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs.
Step identifiers and dependencies
Rule: FiniteMap_EACH_declared_input_exactly_one_output_row · Uses: G001, S013
S015 · implies
Before
source roles = [ORIGINAL f, [-5, -4, -3, -2, -1], [1, 3, 5, 7, 9], [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [[Yes, Yes, Yes, Yes, Yes], [1, 1, 1, 1, 1], Yes]
Conditions: none
Permit lookups ONLY after BOTH all-row typing and all-input totality.Empty-set vacuity cannot conceal an invalid row.
Step identifiers and dependencies
Rule: FiniteMap_TOTAL_qualification_BEFORE_lookups_even_empty_domain · Uses: G001, S014
S016 · implies
Before
source roles = [ORIGINAL f, 1, [-5, -4, -3, -2, -1], [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [[-4], 1]
Conditions: none
List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels.
Step identifiers and dependencies
Rule: FiniteMap_EVERY_codomain_fiber_including_unattained · Uses: G001, S015
S017 · implies
Before
source roles = [ORIGINAL f, 3, [-5, -4, -3, -2, -1], [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [[-3], 1]
Conditions: none
List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels.
Step identifiers and dependencies
Rule: FiniteMap_EVERY_codomain_fiber_including_unattained · Uses: G001, S016
S018 · implies
Before
source roles = [ORIGINAL f, 5, [-5, -4, -3, -2, -1], [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [[-2], 1]
Conditions: none
List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels.
Step identifiers and dependencies
Rule: FiniteMap_EVERY_codomain_fiber_including_unattained · Uses: G001, S017
S019 · implies
Before
source roles = [ORIGINAL f, 7, [-5, -4, -3, -2, -1], [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [[-1], 1]
Conditions: none
List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels.
Step identifiers and dependencies
Rule: FiniteMap_EVERY_codomain_fiber_including_unattained · Uses: G001, S018
S020 · implies
Before
source roles = [ORIGINAL f, 9, [-5, -4, -3, -2, -1], [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [[-5], 1]
Conditions: none
List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels.
Step identifiers and dependencies
Rule: FiniteMap_EVERY_codomain_fiber_including_unattained · Uses: G001, S019
S021 · implies
Before
source roles = [ORIGINAL f, [-5, -4, -3, -2, -1], [1, 3, 5, 7, 9], [[-4], [-3], [-2], [-1], [-5]]]
After
derived = [Yes, Yes, Yes]
Conditions: none
Injective means every fiber≤1,surjective every fiber≥1,and BOTH mean bijective.Unattained B does not defeat injectivity.Empty→empty is bijective;empty→nonempty is only injective.
Step identifiers and dependencies
Rule: FiniteMap_injective_surjective_BOTH_needed_for_inverse · Uses: G001, S020
S022 · implies
Before
source roles = [CANDIDATE g domain, [1, 3, 5, 7, 9]]
After
derived = [[1, 3, 5, 7, 9]]
Conditions: none
RAW sets are distinct,SAFE and≤100.Sort only a derived work table,retaining original lists/hashes.
Step identifiers and dependencies
Rule: FiniteMap_RAW_distinct_SAFE_set_bound100 · Uses: G001, S021
S023 · implies
Before
source roles = [CANDIDATE g codomain, [-5, -4, -3, -2, -1]]
After
derived = [[-5, -4, -3, -2, -1]]
Conditions: none
RAW sets are distinct,SAFE and≤100.Sort only a derived work table,retaining original lists/hashes.
Step identifiers and dependencies
Rule: FiniteMap_RAW_distinct_SAFE_set_bound100 · Uses: G001, S022
S024 · implies
Before
source roles = [CANDIDATE g, [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [[[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
Conditions: none
FIRST type EVERY raw pair and enforce raw length≤200,THEN normalize identical rows as one ordered pair.Do not merge different outputs of one input.Empty domains do not waive RAW checks.
Step identifiers and dependencies
Rule: FiniteMap_RAW200_bound_BEFORE_identical_row_ASSET_normalization · Uses: G001, S023
S025 · implies
Before
source roles = [CANDIDATE g, 0, 1, -3, [1, 3, 5, 7, 9], [-5, -4, -3, -2, -1]]
After
derived = [Yes, Yes, Yes]
Conditions: none
EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows.
Step identifiers and dependencies
Rule: FiniteMap_EACH_normalized_row_declared_domain_codomain_types · Uses: G001, S024
S026 · implies
Before
source roles = [CANDIDATE g, 1, 3, -2, [1, 3, 5, 7, 9], [-5, -4, -3, -2, -1]]
After
derived = [Yes, Yes, Yes]
Conditions: none
EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows.
Step identifiers and dependencies
Rule: FiniteMap_EACH_normalized_row_declared_domain_codomain_types · Uses: G001, S025
S027 · implies
Before
source roles = [CANDIDATE g, 2, 5, -1, [1, 3, 5, 7, 9], [-5, -4, -3, -2, -1]]
After
derived = [Yes, Yes, Yes]
Conditions: none
EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows.
Step identifiers and dependencies
Rule: FiniteMap_EACH_normalized_row_declared_domain_codomain_types · Uses: G001, S026
S028 · implies
Before
source roles = [CANDIDATE g, 3, 7, -5, [1, 3, 5, 7, 9], [-5, -4, -3, -2, -1]]
After
derived = [Yes, Yes, Yes]
Conditions: none
EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows.
Step identifiers and dependencies
Rule: FiniteMap_EACH_normalized_row_declared_domain_codomain_types · Uses: G001, S027
S029 · implies
Before
source roles = [CANDIDATE g, 4, 9, -4, [1, 3, 5, 7, 9], [-5, -4, -3, -2, -1]]
After
derived = [Yes, Yes, Yes]
Conditions: none
EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows.
Step identifiers and dependencies
Rule: FiniteMap_EACH_normalized_row_declared_domain_codomain_types · Uses: G001, S028
S030 · implies
Before
source roles = [CANDIDATE g, 1, [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [1, Yes]
Conditions: none
EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs.
Step identifiers and dependencies
Rule: FiniteMap_EACH_declared_input_exactly_one_output_row · Uses: G001, S029
S031 · implies
Before
source roles = [CANDIDATE g, 3, [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [1, Yes]
Conditions: none
EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs.
Step identifiers and dependencies
Rule: FiniteMap_EACH_declared_input_exactly_one_output_row · Uses: G001, S030
S032 · implies
Before
source roles = [CANDIDATE g, 5, [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [1, Yes]
Conditions: none
EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs.
Step identifiers and dependencies
Rule: FiniteMap_EACH_declared_input_exactly_one_output_row · Uses: G001, S031
S033 · implies
Before
source roles = [CANDIDATE g, 7, [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [1, Yes]
Conditions: none
EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs.
Step identifiers and dependencies
Rule: FiniteMap_EACH_declared_input_exactly_one_output_row · Uses: G001, S032
S034 · implies
Before
source roles = [CANDIDATE g, 9, [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [1, Yes]
Conditions: none
EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs.
Step identifiers and dependencies
Rule: FiniteMap_EACH_declared_input_exactly_one_output_row · Uses: G001, S033
S035 · implies
Before
source roles = [CANDIDATE g, [1, 3, 5, 7, 9], [-5, -4, -3, -2, -1], [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [[Yes, Yes, Yes, Yes, Yes], [1, 1, 1, 1, 1], Yes]
Conditions: none
Permit lookups ONLY after BOTH all-row typing and all-input totality.Empty-set vacuity cannot conceal an invalid row.
Step identifiers and dependencies
Rule: FiniteMap_TOTAL_qualification_BEFORE_lookups_even_empty_domain · Uses: G001, S034
S036 · implies
Before
source roles = [CANDIDATE g, -5, [1, 3, 5, 7, 9], [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [[7], 1]
Conditions: none
List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels.
Step identifiers and dependencies
Rule: FiniteMap_EVERY_codomain_fiber_including_unattained · Uses: G001, S035
S037 · implies
Before
source roles = [CANDIDATE g, -4, [1, 3, 5, 7, 9], [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [[9], 1]
Conditions: none
List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels.
Step identifiers and dependencies
Rule: FiniteMap_EVERY_codomain_fiber_including_unattained · Uses: G001, S036
S038 · implies
Before
source roles = [CANDIDATE g, -3, [1, 3, 5, 7, 9], [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [[1], 1]
Conditions: none
List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels.
Step identifiers and dependencies
Rule: FiniteMap_EVERY_codomain_fiber_including_unattained · Uses: G001, S037
S039 · implies
Before
source roles = [CANDIDATE g, -2, [1, 3, 5, 7, 9], [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [[3], 1]
Conditions: none
List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels.
Step identifiers and dependencies
Rule: FiniteMap_EVERY_codomain_fiber_including_unattained · Uses: G001, S038
S040 · implies
Before
source roles = [CANDIDATE g, -1, [1, 3, 5, 7, 9], [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [[5], 1]
Conditions: none
List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels.
Step identifiers and dependencies
Rule: FiniteMap_EVERY_codomain_fiber_including_unattained · Uses: G001, S039
S041 · implies
Before
source roles = [CANDIDATE g, [1, 3, 5, 7, 9], [-5, -4, -3, -2, -1], [[7], [9], [1], [3], [5]]]
After
derived = [Yes, Yes, Yes]
Conditions: none
Injective means every fiber≤1,surjective every fiber≥1,and BOTH mean bijective.Unattained B does not defeat injectivity.Empty→empty is bijective;empty→nonempty is only injective.
Step identifiers and dependencies
Rule: FiniteMap_injective_surjective_BOTH_needed_for_inverse · Uses: G001, S040
S042 · implies
Before
source roles = [-5, 9, [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [-4, No]
Conditions: none
Apply f into B,THEN the typed total g back into A.Check restoration for EVERY original input without omitting failures.
Step identifiers and dependencies
Rule: Inverse_CANDIDATE_EACH_g_after_f_restores_ORIGINAL_A · Uses: G001, S041
S043 · implies
Before
source roles = [-4, 1, [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [-3, No]
Conditions: none
Apply f into B,THEN the typed total g back into A.Check restoration for EVERY original input without omitting failures.
Step identifiers and dependencies
Rule: Inverse_CANDIDATE_EACH_g_after_f_restores_ORIGINAL_A · Uses: G001, S042
S044 · implies
Before
source roles = [-3, 3, [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [-2, No]
Conditions: none
Apply f into B,THEN the typed total g back into A.Check restoration for EVERY original input without omitting failures.
Step identifiers and dependencies
Rule: Inverse_CANDIDATE_EACH_g_after_f_restores_ORIGINAL_A · Uses: G001, S043
S045 · implies
Before
source roles = [-2, 5, [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [-1, No]
Conditions: none
Apply f into B,THEN the typed total g back into A.Check restoration for EVERY original input without omitting failures.
Step identifiers and dependencies
Rule: Inverse_CANDIDATE_EACH_g_after_f_restores_ORIGINAL_A · Uses: G001, S044
S046 · implies
Before
source roles = [-1, 7, [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [-5, No]
Conditions: none
Apply f into B,THEN the typed total g back into A.Check restoration for EVERY original input without omitting failures.
Step identifiers and dependencies
Rule: Inverse_CANDIDATE_EACH_g_after_f_restores_ORIGINAL_A · Uses: G001, S045
S047 · implies
Before
source roles = [1, -3, [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [3, No]
Conditions: none
In the OTHER direction,start at EVERY original B label,apply g then f,and restore itself.Retain this check separately.
Step identifiers and dependencies
Rule: Inverse_CANDIDATE_EACH_f_after_g_restores_ORIGINAL_B · Uses: G001, S046
S048 · implies
Before
source roles = [3, -2, [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [5, No]
Conditions: none
In the OTHER direction,start at EVERY original B label,apply g then f,and restore itself.Retain this check separately.
Step identifiers and dependencies
Rule: Inverse_CANDIDATE_EACH_f_after_g_restores_ORIGINAL_B · Uses: G001, S047
S049 · implies
Before
source roles = [5, -1, [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [7, No]
Conditions: none
In the OTHER direction,start at EVERY original B label,apply g then f,and restore itself.Retain this check separately.
Step identifiers and dependencies
Rule: Inverse_CANDIDATE_EACH_f_after_g_restores_ORIGINAL_B · Uses: G001, S048
S050 · implies
Before
source roles = [7, -5, [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [9, No]
Conditions: none
In the OTHER direction,start at EVERY original B label,apply g then f,and restore itself.Retain this check separately.
Step identifiers and dependencies
Rule: Inverse_CANDIDATE_EACH_f_after_g_restores_ORIGINAL_B · Uses: G001, S049
S051 · implies
Before
source roles = [9, -4, [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]]]
After
derived = [1, No]
Conditions: none
In the OTHER direction,start at EVERY original B label,apply g then f,and restore itself.Retain this check separately.
Step identifiers and dependencies
Rule: Inverse_CANDIDATE_EACH_f_after_g_restores_ORIGINAL_B · Uses: G001, S050
S052 · implies
Before
source roles = [[-5, -4, -3, -2, -1], [1, 3, 5, 7, 9], [[-5, 9], [-4, 1], [-3, 3], [-2, 5], [-1, 7]], [[1, -3], [3, -2], [5, -1], [7, -5], [9, -4]]]
After
derived = [[No, No, No, No, No], [No, No, No, No, No], No]
Conditions: none
AFTER f is bijective and g is fully typed/total,BOTH complete restoration inventories must pass.A qualified wrong inverse is a legal No;missing/outside rows fail qualification instead.
Step identifiers and dependencies
Rule: Inverse_CANDIDATE_BOTH_typed_total_restoration_inventories · Uses: G001, S051