Step-by-step derivation
S001 · implies
Before
source roles = [qf-tree-unique-path, [E, V, domain, operation, s, t]]
After
derived = [tree_unique_path, finite_simple_undirected]
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 = [TREE vertices ORIGINAL, 10, [0, 1, 2, 3]]
After
derived = [[0, 1, 2, 3]]
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 = [TREE raw edges ORIGINAL, 0, [1, 0]]
After
derived = [[1, 0]]
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 = [TREE raw edges ORIGINAL, 1, [2, 0]]
After
derived = [[2, 0]]
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 = [TREE raw edges ORIGINAL, 2, [0, 3]]
After
derived = [[0, 3]]
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 = [[0, 1, 2, 3], [[0, 3], [1, 0], [2, 0]], Yes]
After
derived = [[[0, 1], [0, 2], [0, 3]], [[0, [1, 2, 3]], [1, [0]], [2, [0]], [3, [0]]]]
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 = [0, 1, 0, 1]
After
derived = [Yes]
Conditions: none
Merge endpoint components ONLY when different.If already in the same component,this edge closes a cycle.Check EVERY edge across ALL components,not only one reached block.
Step identifiers and dependencies
Rule: Tree_EACH_edge_union_components_cycle_audit · Uses: G001, S006
S008 · implies
Before
source roles = [0, 2, 1, 2]
After
derived = [Yes]
Conditions: none
Merge endpoint components ONLY when different.If already in the same component,this edge closes a cycle.Check EVERY edge across ALL components,not only one reached block.
Step identifiers and dependencies
Rule: Tree_EACH_edge_union_components_cycle_audit · Uses: G001, S007
S009 · implies
Before
source roles = [0, 3, 2, 3]
After
derived = [Yes]
Conditions: none
Merge endpoint components ONLY when different.If already in the same component,this edge closes a cycle.Check EVERY edge across ALL components,not only one reached block.
Step identifiers and dependencies
Rule: Tree_EACH_edge_union_components_cycle_audit · Uses: G001, S008
S010 · implies
Before
source roles = [0, [1, 2, 3]]
After
derived = [[0, 1, 2, 3], [0]]
Conditions: none
Expand actual neighbors from the least label and retain reached vertices.Edge count|V|−1 ALONE does not replace connectivity.
Step identifiers and dependencies
Rule: Tree_CONNECTIVITY_actual_reachability_from_min_label · Uses: G001, S009
S011 · implies
Before
source roles = [1, [0]]
After
derived = [[0, 1, 2, 3], [0, 1]]
Conditions: none
Expand actual neighbors from the least label and retain reached vertices.Edge count|V|−1 ALONE does not replace connectivity.
Step identifiers and dependencies
Rule: Tree_CONNECTIVITY_actual_reachability_from_min_label · Uses: G001, S010
S012 · implies
Before
source roles = [2, [0]]
After
derived = [[0, 1, 2, 3], [0, 1, 2]]
Conditions: none
Expand actual neighbors from the least label and retain reached vertices.Edge count|V|−1 ALONE does not replace connectivity.
Step identifiers and dependencies
Rule: Tree_CONNECTIVITY_actual_reachability_from_min_label · Uses: G001, S011
S013 · implies
Before
source roles = [3, [0]]
After
derived = [[0, 1, 2, 3], [0, 1, 2, 3]]
Conditions: none
Expand actual neighbors from the least label and retain reached vertices.Edge count|V|−1 ALONE does not replace connectivity.
Step identifiers and dependencies
Rule: Tree_CONNECTIVITY_actual_reachability_from_min_label · Uses: G001, S012
S014 · implies
Before
source roles = [[0, 1, 2, 3], [[0, 1], [0, 2], [0, 3]]]
After
derived = [Yes, Yes, Yes, Yes]
Conditions: none
THIS entry defines a tree as NONEMPTY,connected and acyclic.Empty graph is No;an edgeless singleton is Yes.A triangle plus an isolated vertex is No EVEN when|E|=|V|−1.
Step identifiers and dependencies
Rule: Tree_NONEMPTY_connected_acyclic_ALL_three · Uses: G001, S013
S015 · implies
Before
source roles = [0, 1]
After
derived = [[0, 1]]
Conditions: none
Retain the parent on FIRST discovery.Label0 is a VALID vertex,not an end sentinel.
Step identifiers and dependencies
Rule: Tree_PATH_EACH_parent_discovery_keep_label0 · Uses: G001, S014
S016 · implies
Before
source roles = [0, 2]
After
derived = [[0, 1, 2]]
Conditions: none
Retain the parent on FIRST discovery.Label0 is a VALID vertex,not an end sentinel.
Step identifiers and dependencies
Rule: Tree_PATH_EACH_parent_discovery_keep_label0 · Uses: G001, S015
S017 · implies
Before
source roles = [0, 3]
After
derived = [[0, 1, 2, 3]]
Conditions: none
Retain the parent on FIRST discovery.Label0 is a VALID vertex,not an end sentinel.
Step identifiers and dependencies
Rule: Tree_PATH_EACH_parent_discovery_keep_label0 · Uses: G001, S016
S018 · implies
Before
source roles = [0, 3]
After
derived = [[0, 3]]
Conditions: none
Backtrack parents and reverse to retain s→t ORDER.Verify EVERY adjacent edge and distinct vertices.TWO different simple paths would form a cycle,contradicting acyclicity.The zero-edge path for s=t is[s].
Step identifiers and dependencies
Rule: Tree_PATH_ORDERED_edges_verified_unique_by_acyclicity · Uses: G001, S017