Step-by-step derivation
S001 · implies
Before
source roles = [qf-tree-added-edge-cycle, [E, V, domain, operation, u, v]]
After
derived = [tree_added_edge_cycle, 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, 4]]
After
derived = [[0, 1, 2, 3, 4]]
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, [3, 2]]
After
derived = [[3, 2]]
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, 1]]
After
derived = [[2, 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 = [TREE raw edges ORIGINAL, 2, [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, S004
S006 · implies
Before
source roles = [TREE raw edges ORIGINAL, 3, [0, 4]]
After
derived = [[0, 4]]
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, S005
S007 · implies
Before
source roles = [[0, 1, 2, 3, 4], [[0, 4], [1, 0], [2, 1], [3, 2]], Yes]
After
derived = [[[0, 1], [0, 4], [1, 2], [2, 3]], [[0, [1, 4]], [1, [0, 2]], [2, [1, 3]], [3, [2]], [4, [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, S006
S008 · 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, S007
S009 · implies
Before
source roles = [0, 4, 1, 4]
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 = [1, 2, 4, 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, S009
S011 · implies
Before
source roles = [2, 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, S010
S012 · implies
Before
source roles = [0, [1, 4]]
After
derived = [[0, 1, 4], [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, S011
S013 · implies
Before
source roles = [1, [0, 2]]
After
derived = [[0, 1, 4, 2], [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, S012
S014 · implies
Before
source roles = [4, [0]]
After
derived = [[0, 1, 4, 2], [0, 1, 4]]
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, S013
S015 · implies
Before
source roles = [2, [1, 3]]
After
derived = [[0, 1, 4, 2, 3], [0, 1, 2, 4]]
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, S014
S016 · implies
Before
source roles = [3, [2]]
After
derived = [[0, 1, 4, 2, 3], [0, 1, 2, 3, 4]]
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, S015
S017 · implies
Before
source roles = [[0, 1, 2, 3, 4], [[0, 1], [0, 4], [1, 2], [2, 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, S016
S018 · 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, S017
S019 · implies
Before
source roles = [0, 4]
After
derived = [[0, 1, 4]]
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, S018
S020 · implies
Before
source roles = [1, 2]
After
derived = [[0, 1, 4, 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, S019
S021 · implies
Before
source roles = [2, 3]
After
derived = [[0, 1, 4, 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, S020
S022 · implies
Before
source roles = [0, 3]
After
derived = [[0, 1, 2, 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, S021
S023 · implies
Before
source roles = [3, 0, [0, 1, 2, 3]]
After
derived = [[0, 1, 2, 3, 0]]
Conditions: none
Require DISTINCT endpoints in V and a GENUINELY absent original edge.Start at the SMALLER endpoint,follow the UNIQUE original tree path to the larger,THEN close by the new edge and repeat the start.Do not sort cycle vertices or accept a reversed existing edge.
Step identifiers and dependencies
Rule: Tree_GENUINELY_NEW_edge_closes_UNIQUE_old_path_MIN_to_MAX · Uses: G001, S022