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]]. 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. Proposed invariant=[0, 1, 2, 3, 4, 5]. Give (invariant, contains Init?, every Step edge from an invariant nonhalt to outside the invariant, step-preserved?, inductive?, covers all reachable states?). Inspect all invariant states for preservation, including unreachable ones.
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]]. 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. Proposed invariant=[0, 1, 2, 3, 4, 5]. Give (invariant, contains Init?, every Step edge from an invariant nonhalt to outside the invariant, step-preserved?, inductive?, covers all reachable states?). Inspect all invariant states for preservation, including unreachable ones.
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]]
After
Init=[0];Halt=[5];canonical raw Step=[[0, 1], [0, 3], [1, 2], [2, 5], [3, 4]]
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=[]
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, 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
candidate invariant=[0, 1, 2, 3, 4, 5];Init=[0]
After
contains every initial state=Yes
Conditions: none
An inductive invariant must first contain every initial state,not just one selected initial point.
Step identifiers and dependencies
Rule: invariant_initial_obligation · Uses: G001, S012
S014 · implies
Before
raw edge=[0, 1];source in invariant=Yes;source halt=No
After
preservation obligation active=Yes;violates invariant=No
Conditions: none
Check every raw edge from an invariant nonhalt,including unreachable sources.Covering the actual reachable states is a different,weaker observation.
Step identifiers and dependencies
Rule: invariant_all_states_not_only_reachable · Uses: G001, S013
S015 · implies
Before
raw edge=[0, 3];source in invariant=Yes;source halt=No
After
preservation obligation active=Yes;violates invariant=No
Conditions: none
Check every raw edge from an invariant nonhalt,including unreachable sources.Covering the actual reachable states is a different,weaker observation.
Step identifiers and dependencies
Rule: invariant_all_states_not_only_reachable · Uses: G001, S014
S016 · implies
Before
raw edge=[1, 2];source in invariant=Yes;source halt=No
After
preservation obligation active=Yes;violates invariant=No
Conditions: none
Check every raw edge from an invariant nonhalt,including unreachable sources.Covering the actual reachable states is a different,weaker observation.
Step identifiers and dependencies
Rule: invariant_all_states_not_only_reachable · Uses: G001, S015
S017 · implies
Before
raw edge=[2, 5];source in invariant=Yes;source halt=No
After
preservation obligation active=Yes;violates invariant=No
Conditions: none
Check every raw edge from an invariant nonhalt,including unreachable sources.Covering the actual reachable states is a different,weaker observation.
Step identifiers and dependencies
Rule: invariant_all_states_not_only_reachable · Uses: G001, S016
S018 · implies
Before
raw edge=[3, 4];source in invariant=Yes;source halt=No
After
preservation obligation active=Yes;violates invariant=No
Conditions: none
Check every raw edge from an invariant nonhalt,including unreachable sources.Covering the actual reachable states is a different,weaker observation.
Step identifiers and dependencies
Rule: invariant_all_states_not_only_reachable · Uses: G001, S017
S019 · implies
Before
bad preservation edges=[];initial obligation=Yes;reachable=[0, 1, 2, 3, 4, 5]
After
step preserved=Yes;inductive=Yes;covers reachable=Yes
Conditions: none
Initial validity plus one-step preservation gives inductiveness.Compute reachable-state coverage separately;true coverage does not replace preservation.
Step identifiers and dependencies
Rule: inductiveness_and_reachable_coverage_separate · Uses: G001, S018