fact: Definition StateWhile_trans : StateWhile_states * Vector.t (option sig) n -> StateWhile_states * Vector.t (option sig * move) n := fun '(q, s) => if halt (projT2 q) then match projT2 (pM (projT1 q)) (projT2 q) with | inl l1 => (liftState (start (projT1 (pM l1))), nop_action) | inr _ => (q, nop_action) end else let (q', a) := trans (projT2 q, s) in (liftState q', a).
imports: Undecidability.Shared.Libs.PSL.FiniteTypes.DepPairs EqdepFacts