Original question and givens
Use the complete finite, possibly nondeterministic transition model S=Fin(6)={0,…,5}, Init=[0], Halt=[5], Step=[[0, 1], [1, 2], [2, 5], [0, 3], [3, 4], [4, 5]]. Normalize sets and ordered transition pairs. Execution stops at a declared Halt state, ignoring all of its outgoing edges. A stuck nonhalting state is not a successful halt; finite prefixes prove no general termination. Give (reachable states, reachable stuck states, reachable nonhalting cycle?, all paths reach Halt?, classification). A reachable cycle takes classification precedence over a stuck state, but retain both diagnostics.
G001 — Use the complete finite, possibly nondeterministic transition model S=Fin(6)={0,…,5}, Init=[0], Halt=[5], Step=[[0, 1], [1, 2], [2, 5], [0, 3], [3, 4], [4, 5]]. Normalize sets and ordered transition pairs. Execution stops at a declared Halt state, ignoring all of its outgoing edges. A stuck nonhalting state is not a successful halt; finite prefixes prove no general termination. Give (reachable states, reachable stuck states, reachable nonhalting cycle?, all paths reach Halt?, classification). A reachable cycle takes classification precedence over a stuck state, but retain both diagnostics.
Step-by-step derivation
S001 · implies
Before
n=6;raw Init=[0];raw Halt=[5];raw Step=[[0, 1], [1, 2], [2, 5], [0, 3], [3, 4], [4, 5]]
After
Init=[0];Halt=[5];canonical raw Step=[[0, 1], [0, 3], [1, 2], [2, 5], [3, 4], [4, 5]]
Conditions: none
Type the complete finite data and deduplicate directed edges.Retain raw outgoing halt edges as data,but execution stops at halt.Stuck is not successful halt,and one prefix proves no general program termination.
Step identifiers and dependencies
Rule: finite_transition_normalization · Uses: G001
S002 · implies
Before
Init=[0]
After
zero-step reachable=[0]
Conditions: none
Every initial state is reachable in zero steps,including an initial halt.An empty Init has no reachable states.
Step identifiers and dependencies
Rule: zero_step_reachability · Uses: G001, S001
S003 · implies
Before
depth=0;state=0;halt=No;raw successors=[1, 3]
After
expanded successors=[1, 3];newly reached=[1, 3]
Conditions: none
Expand every successor of a nonhalt state,not just one chosen path.Add unseen states only.A halt is not expanded even when raw outgoing edges exist.
Step identifiers and dependencies
Rule: reachability_halt_truncates_expansion · Uses: G001, S002
S004 · implies
Before
completed frontier=[0];depth=0
After
next frontier=[1, 3];all reached=[0, 1, 3]
Conditions: none
The closure is complete only when the frontier empties.Finitely many states and adding only unseen states ensure enumeration terminates,without sampling a path-length cutoff.
Step identifiers and dependencies
Rule: complete_finite_reachability_layer · Uses: G001, S003
S005 · implies
Before
depth=1;state=1;halt=No;raw successors=[2]
After
expanded successors=[2];newly reached=[2]
Conditions: none
Expand every successor of a nonhalt state,not just one chosen path.Add unseen states only.A halt is not expanded even when raw outgoing edges exist.
Step identifiers and dependencies
Rule: reachability_halt_truncates_expansion · Uses: G001, S004
S006 · implies
Before
depth=1;state=3;halt=No;raw successors=[4]
After
expanded successors=[4];newly reached=[4]
Conditions: none
Expand every successor of a nonhalt state,not just one chosen path.Add unseen states only.A halt is not expanded even when raw outgoing edges exist.
Step identifiers and dependencies
Rule: reachability_halt_truncates_expansion · Uses: G001, S005
S007 · implies
Before
completed frontier=[1, 3];depth=1
After
next frontier=[2, 4];all reached=[0, 1, 2, 3, 4]
Conditions: none
The closure is complete only when the frontier empties.Finitely many states and adding only unseen states ensure enumeration terminates,without sampling a path-length cutoff.
Step identifiers and dependencies
Rule: complete_finite_reachability_layer · Uses: G001, S006
S008 · implies
Before
depth=2;state=2;halt=No;raw successors=[5]
After
expanded successors=[5];newly reached=[5]
Conditions: none
Expand every successor of a nonhalt state,not just one chosen path.Add unseen states only.A halt is not expanded even when raw outgoing edges exist.
Step identifiers and dependencies
Rule: reachability_halt_truncates_expansion · Uses: G001, S007
S009 · implies
Before
depth=2;state=4;halt=No;raw successors=[5]
After
expanded successors=[5];newly reached=[]
Conditions: none
Expand every successor of a nonhalt state,not just one chosen path.Add unseen states only.A halt is not expanded even when raw outgoing edges exist.
Step identifiers and dependencies
Rule: reachability_halt_truncates_expansion · Uses: G001, S008
S010 · implies
Before
completed frontier=[2, 4];depth=2
After
next frontier=[5];all reached=[0, 1, 2, 3, 4, 5]
Conditions: none
The closure is complete only when the frontier empties.Finitely many states and adding only unseen states ensure enumeration terminates,without sampling a path-length cutoff.
Step identifiers and dependencies
Rule: complete_finite_reachability_layer · Uses: G001, S009
S011 · implies
Before
depth=3;state=5;halt=Yes;raw successors=[]
After
expanded successors=[];newly reached=[]
Conditions: none
Expand every successor of a nonhalt state,not just one chosen path.Add unseen states only.A halt is not expanded even when raw outgoing edges exist.
Step identifiers and dependencies
Rule: reachability_halt_truncates_expansion · Uses: G001, S010
S012 · implies
Before
completed frontier=[5];depth=3
After
next frontier=[];all reached=[0, 1, 2, 3, 4, 5]
Conditions: none
The closure is complete only when the frontier empties.Finitely many states and adding only unseen states ensure enumeration terminates,without sampling a path-length cutoff.
Step identifiers and dependencies
Rule: complete_finite_reachability_layer · Uses: G001, S011
S013 · implies
Before
reached state=0;declared halt=No;raw successors=[1, 3]
After
status=active-nonhalt
Conditions: none
The halt designation takes precedence.Only a nonhalt with no successor is stuck;one with successors is active.No outgoing edge does not automatically mean successful termination.
Step identifiers and dependencies
Rule: halt_stuck_active_are_distinct · Uses: G001, S012
S014 · implies
Before
reached state=1;declared halt=No;raw successors=[2]
After
status=active-nonhalt
Conditions: none
The halt designation takes precedence.Only a nonhalt with no successor is stuck;one with successors is active.No outgoing edge does not automatically mean successful termination.
Step identifiers and dependencies
Rule: halt_stuck_active_are_distinct · Uses: G001, S013
S015 · implies
Before
reached state=2;declared halt=No;raw successors=[5]
After
status=active-nonhalt
Conditions: none
The halt designation takes precedence.Only a nonhalt with no successor is stuck;one with successors is active.No outgoing edge does not automatically mean successful termination.
Step identifiers and dependencies
Rule: halt_stuck_active_are_distinct · Uses: G001, S014
S016 · implies
Before
reached state=3;declared halt=No;raw successors=[4]
After
status=active-nonhalt
Conditions: none
The halt designation takes precedence.Only a nonhalt with no successor is stuck;one with successors is active.No outgoing edge does not automatically mean successful termination.
Step identifiers and dependencies
Rule: halt_stuck_active_are_distinct · Uses: G001, S015
S017 · implies
Before
reached state=4;declared halt=No;raw successors=[5]
After
status=active-nonhalt
Conditions: none
The halt designation takes precedence.Only a nonhalt with no successor is stuck;one with successors is active.No outgoing edge does not automatically mean successful termination.
Step identifiers and dependencies
Rule: halt_stuck_active_are_distinct · Uses: G001, S016
S018 · implies
Before
reached state=5;declared halt=Yes;raw successors=[]
After
status=halt
Conditions: none
The halt designation takes precedence.Only a nonhalt with no successor is stuck;one with successors is active.No outgoing edge does not automatically mean successful termination.
Step identifiers and dependencies
Rule: halt_stuck_active_are_distinct · Uses: G001, S017
S019 · implies
Before
reachable=[0, 1, 2, 3, 4, 5];Halt=[5]
After
reachable nonhalt graph vertices=[0, 1, 2, 3, 4]
Conditions: none
Inspect cycles only in the reachable nonhalt subgraph.Unreachable cycles and outgoing halt edges do not affect this execution question.
Step identifiers and dependencies
Rule: reachable_nonhalt_cycle_scope · Uses: G001, S018
S020 · implies
Before
peeling layer=0;remaining=[0, 1, 2, 3, 4]
After
vertices with no remaining nonhalt successor=[2, 4]
Conditions: none
Repeatedly remove vertices with no remaining nonhalt successor.A directed cycle cannot be removed this way.Stuck vertices may be removed too,so keep the separate stuck check.
Step identifiers and dependencies
Rule: finite_cycle_sink_peeling · Uses: G001, S019
S021 · implies
Before
peeling layer=1;remaining=[0, 1, 3]
After
vertices with no remaining nonhalt successor=[1, 3]
Conditions: none
Repeatedly remove vertices with no remaining nonhalt successor.A directed cycle cannot be removed this way.Stuck vertices may be removed too,so keep the separate stuck check.
Step identifiers and dependencies
Rule: finite_cycle_sink_peeling · Uses: G001, S020
S022 · implies
Before
peeling layer=2;remaining=[0]
After
vertices with no remaining nonhalt successor=[0]
Conditions: none
Repeatedly remove vertices with no remaining nonhalt successor.A directed cycle cannot be removed this way.Stuck vertices may be removed too,so keep the separate stuck check.
Step identifiers and dependencies
Rule: finite_cycle_sink_peeling · Uses: G001, S021
S023 · implies
Before
all reachable nonhalt vertices peeled
After
reachable nonhalt graph is acyclic
Conditions: none
Removing all vertices certifies absence of a directed cycle,not merely failure to encounter one on a single run.
Step identifiers and dependencies
Rule: complete_acyclic_nonhalt_certificate · Uses: G001, S022
S024 · implies
Before
reachable stuck=[];reachable nonhalt cycle=No
After
all paths reach Halt=Yes
Conditions: none
In a finite model an infinite nonhalt path repeats a state and forms a cycle;a finite maximal nonhalting path ends stuck.Exclude both to ensure every path reaches Halt.Empty Init is vacuous;this does not establish termination of arbitrary infinite-state programs.
Step identifiers and dependencies
Rule: finite_all_paths_termination_joint_gate · Uses: G001, S023
S025 · implies
Before
cycle=No;stuck=[]
After
classification=all paths reach the target in the finite model halt
Conditions: none
When cycle and stuck coexist,the label prioritizes the cycle while the earlier field retains all stuck states.Priority does not erase the other diagnostic.
Step identifiers and dependencies
Rule: cycle_classification_precedence_without_erasing_stuck · Uses: G001, S024