Step-by-step derivation
S001 · implies
Before
source roles = [qf-surjective-table-property, [A, B, operation, pairs]]
After
derived = [surjective, no-invented-domain]
Conditions: none
Keep EACH bank’s keys/operation/domain distinct:LDL/PULSE/function legacy table underscores,TREE full tree_* with its declared domain,and permissive BASE signed without invented op/domain.All arithmetic respects the binary-primitive contract.
Step identifiers and dependencies
Rule: R69_SOURCE_specific_keys_operation_domain_AND_binary_contract · Uses: G001
S002 · implies
Before
source roles = [function ORIGINAL A, 100, [-1, 0]]
After
derived = [[-1, 0]]
Conditions: none
Type EVERY RAW SAFE label,distinctness and THIS bank’s cardinality bound;empty is allowed.Sort ONLY the derived representation,not original JSON.Do not exchange TREE and LDL limits.
Step identifiers and dependencies
Rule: Finite_RAW_ALL_SAFE_distinct_labels_then_derived_sort · Uses: G001, S001
S003 · implies
Before
source roles = [function ORIGINAL B, 100, [-3, -2, -1]]
After
derived = [[-3, -2, -1]]
Conditions: none
Type EVERY RAW SAFE label,distinctness and THIS bank’s cardinality bound;empty is allowed.Sort ONLY the derived representation,not original JSON.Do not exchange TREE and LDL limits.
Step identifiers and dependencies
Rule: Finite_RAW_ALL_SAFE_distinct_labels_then_derived_sort · Uses: G001, S002
S004 · implies
Before
source roles = [function ORIGINAL table, 0, [-1, -1]]
After
derived = [[-1, -1]]
Conditions: none
BEFORE deduplication,type EACH RAW pair as EXACTLY TWO SAFE components.Identical rows may be representation duplicates,but no unvalidated cell may be silently discarded.
Step identifiers and dependencies
Rule: Pairs_EVERY_RAW_two_SAFE_cells_BEFORE_any_dedup · Uses: G001, S003
S005 · implies
Before
source roles = [function ORIGINAL table, 1, [0, -1]]
After
derived = [[0, -1]]
Conditions: none
BEFORE deduplication,type EACH RAW pair as EXACTLY TWO SAFE components.Identical rows may be representation duplicates,but no unvalidated cell may be silently discarded.
Step identifiers and dependencies
Rule: Pairs_EVERY_RAW_two_SAFE_cells_BEFORE_any_dedup · Uses: G001, S004
S006 · implies
Before
source roles = [[-1, 0], [-3, -2, -1], [[-1, -1], [0, -1]]]
After
derived = [Yes]
Conditions: none
FIRST qualify the WHOLE total function A→B:EXACTLY one output for EVERY A and all pairs in A×B.Identical repeated rows normalize in THIS legacy bank,unlike a different PULSE table rule.Qualify ORIGINAL B even for later codomain changes.
Step identifiers and dependencies
Rule: Function_WHOLE_qualified_total_AtoB_before_SURJECTIVE_claim · Uses: G001, S005
S007 · implies
Before
source roles = [ORIGINAL B, -1, -1, -3]
After
derived = [No]
Conditions: none
Compare EVERY permitted input’s output with THIS target.List EACH fiber completely;do not confuse target/input or infer surjectivity from cardinalities alone.
Step identifiers and dependencies
Rule: Surjective_EVERY_source_target_fiber_comparison · Uses: G001, S006
S008 · implies
Before
source roles = [ORIGINAL B, 0, -1, -3]
After
derived = [No]
Conditions: none
Compare EVERY permitted input’s output with THIS target.List EACH fiber completely;do not confuse target/input or infer surjectivity from cardinalities alone.
Step identifiers and dependencies
Rule: Surjective_EVERY_source_target_fiber_comparison · Uses: G001, S007
S009 · implies
Before
source roles = [ORIGINAL B, -1, -1, -2]
After
derived = [No]
Conditions: none
Compare EVERY permitted input’s output with THIS target.List EACH fiber completely;do not confuse target/input or infer surjectivity from cardinalities alone.
Step identifiers and dependencies
Rule: Surjective_EVERY_source_target_fiber_comparison · Uses: G001, S008
S010 · implies
Before
source roles = [ORIGINAL B, 0, -1, -2]
After
derived = [No]
Conditions: none
Compare EVERY permitted input’s output with THIS target.List EACH fiber completely;do not confuse target/input or infer surjectivity from cardinalities alone.
Step identifiers and dependencies
Rule: Surjective_EVERY_source_target_fiber_comparison · Uses: G001, S009
S011 · implies
Before
source roles = [ORIGINAL B, -1, -1, -1]
After
derived = [Yes]
Conditions: none
Compare EVERY permitted input’s output with THIS target.List EACH fiber completely;do not confuse target/input or infer surjectivity from cardinalities alone.
Step identifiers and dependencies
Rule: Surjective_EVERY_source_target_fiber_comparison · Uses: G001, S010
S012 · implies
Before
source roles = [ORIGINAL B, 0, -1, -1]
After
derived = [Yes]
Conditions: none
Compare EVERY permitted input’s output with THIS target.List EACH fiber completely;do not confuse target/input or infer surjectivity from cardinalities alone.
Step identifiers and dependencies
Rule: Surjective_EVERY_source_target_fiber_comparison · Uses: G001, S011
S013 · implies
Before
source roles = [[-1, 0], [-3, -2, -1], [[-3, []], [-2, []], [-1, [-1, 0]]]]
After
derived = [[-3, -2], No]
Conditions: none
Surjectivity requires a preimage for EVERY declared target;multiple preimages are allowed.For a QUALIFIED empty function,the empty-codomain condition is vacuous.The missing set is B(or B2)minus range,not a replacement of the ORIGINAL codomain.
Step identifiers and dependencies
Rule: Surjective_ALL_codomain_targets_covered_including_EMPTY_vacuity · Uses: G001, S012