fact: Definition ReadCurrentSymbols_Loop_Rel (st : Vector.t (option sig) n * Fin.t n) : pRel sigSim (Vector.t (option sig) n) 1 := fun tin '(yout, tout) => (forall tps1 tp tps2, (length tps1 =? fin_to_nat (snd st)) = true -> (length tps1 + (1 + length tps2) =? n) = true -> atCons tin[@Fin0] tps1 tps2 tp -> knowsFirstSymbols (fst st) tps1 -> atNil tout[@Fin0] (tps1 ++ tp :: tps2) /\ yout = insertKnownSymbols (fst st) (snd st) (current tp :: map (@current _) tps2)) /\ (forall tps, (length tps =? n) = true -> atNil tin[@Fin0] tps -> knowsFirstSymbols (fst st) tps -> atNil tout[@Fin0] tps /\ yout = (fst st)).
imports: Undecidability.TM.Basic.Mono Undecidability.TM.Combinators.Combinators Undecidability.TM.Code.Code Undecidability.TM.Single.EncodeTapes Undecidability.TM.Compound(TMTac MoveToSymbol Multi Shift)