fact: Definition trans' : state' * Vector.t (option Σ) n -> state' * Vector.t (option Σ * move) n := fun '(p, bs) => match sval (Fin.to_nat p) with | 0 => (p, TM_facts.nop_action) | S m' => match nth_error M m' with | None => (p, TM_facts.nop_action) | Some (mm_inc i) => let b := if (vec_pos bs i) is Some true then true else false in (toState (S (S m')), vec_change TM_facts.nop_action i (Some b, Rmove)) | Some (mm_dec i q) => match vec_pos bs i with | Some true => (toState (S (S m')), TM_facts.nop_action) | _ => (toState q, vec_change TM_facts.nop_action i (None, Lmove)) end end end.
imports: Undecidability.MinskyMachines(MM MMA.mma_defs) Undecidability.Shared.Libs.DLW(Vec.pos Vec.vec Code.sss Code.subcode) Undecidability.Shared.Libs.PSL.FiniteTypes.FinTypesDef Undecidability.Shared.Libs.PSL.EqDec List Vector Lia PeanoNat Compare_dec ssreflect ssrbool ssrfun