Step-by-step derivation
S001 · implies
Before
source roles = [qf-simple-graph-handshaking, [E, V, operation]]
After
derived = [handshaking, 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 = [LDL graph vertices ORIGINAL, 100, [9, 10, 11, 12]]
After
derived = [[9, 10, 11, 12]]
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 = [LDL raw edges ORIGINAL, 0, [9, 10]]
After
derived = [[9, 10]]
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, S002
S004 · implies
Before
source roles = [LDL raw edges ORIGINAL, 1, [9, 11]]
After
derived = [[9, 11]]
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 = [LDL raw edges ORIGINAL, 2, [10, 11]]
After
derived = [[10, 11]]
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 = [[9, 10, 11, 12], [[9, 10], [9, 11], [10, 11]], No]
After
derived = [[[9, 10], [9, 11], [10, 11]], [[9, [10, 11]], [10, [9, 11]], [11, [9, 10]], [12, []]]]
Conditions: none
Type the WHOLE raw edge list,then normalize undirected endpoints/deduplicate;reversed duplicates are allowed.INPUT edges have no loops/outside endpoints,while isolated vertices stay in V.TREE raw E does NOT acquire LDL’s200-entry limit.
Step identifiers and dependencies
Rule: Graph_WHOLE_simple_undirected_edges_normalized_NO_loops_or_outside · Uses: G001, S005
S007 · implies
Before
source roles = [9, [10, 11]]
After
derived = [2]
Conditions: none
For EVERY V vertex,count distinct neighbors;isolated degree is0.Include vertices absent from the edge list.
Step identifiers and dependencies
Rule: Graph_DEGREE_EACH_vertex_including_isolated · Uses: G001, S006
S008 · implies
Before
source roles = [10, [9, 11]]
After
derived = [2]
Conditions: none
For EVERY V vertex,count distinct neighbors;isolated degree is0.Include vertices absent from the edge list.
Step identifiers and dependencies
Rule: Graph_DEGREE_EACH_vertex_including_isolated · Uses: G001, S007
S009 · implies
Before
source roles = [11, [9, 10]]
After
derived = [2]
Conditions: none
For EVERY V vertex,count distinct neighbors;isolated degree is0.Include vertices absent from the edge list.
Step identifiers and dependencies
Rule: Graph_DEGREE_EACH_vertex_including_isolated · Uses: G001, S008
S010 · implies
Before
source roles = [12, []]
After
derived = [0]
Conditions: none
For EVERY V vertex,count distinct neighbors;isolated degree is0.Include vertices absent from the edge list.
Step identifiers and dependencies
Rule: Graph_DEGREE_EACH_vertex_including_isolated · Uses: G001, S009
S011 · calculation
Before
Graph ORIGINAL all vertex degrees sum := sum(2, 2, 2, 0)
After
Graph ORIGINAL all vertex degrees sum = 6
Conditions: none
Use ORIGINAL operands exactly;mul/sub/div have EXPLICITLY TWO operands so the old binary primitive cannot ignore a third.Keep RAW SAFE bounds separate from unbounded derived BigInts;do not approximate to force answers.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S010
S012 · calculation
Before
Graph ORIGINAL two endpoints per normalized edge := mul(2, 3)
After
Graph ORIGINAL two endpoints per normalized edge = 6
Conditions: none
Use ORIGINAL operands exactly;mul/sub/div have EXPLICITLY TWO operands so the old binary primitive cannot ignore a third.Keep RAW SAFE bounds separate from unbounded derived BigInts;do not approximate to force answers.
Step identifiers and dependencies
Rule: exact_rational_arithmetic · Uses: G001, S011
S013 · implies
Before
source roles = [[9, 10, 11, 12], [[9, 10], [9, 11], [10, 11]], [2, 2, 2, 0]]
After
derived = [6, 6]
Conditions: none
Every undirected edge contributes TWO endpoint incidences,so the COMPLETE degree sum is2|E|.For the empty graph both sides are0.This is finite full recomputation/double counting,not a sketch inference.
Step identifiers and dependencies
Rule: Graph_HANDSHAKE_complete_incidence_double_count · Uses: G001, S012