Documentation

Projects.IO.Basic

@[simp]
instance VerifiedIO.ProgM.wf_pure {α : Type} {x : α} :
(pure x).WF
instance VerifiedIO.ProgM.wf_bind {α β : Type} {m : ProgM α} {f : αProgM β} [H₁ : m.WF] [H₂ : ∀ (x : α), (f x).WF] :
(m >>= f).WF
instance VerifiedIO.ProgM.wf_map {α β : Type} {m : ProgM α} {f : αβ} [H₁ : m.WF] :
(f <$> m).WF
@[simp]
theorem VerifiedIO.toProgM_toProg {m : ProgM Unit} (h : ∀ (bs : List Bit), ∃ (b : Bit), StateT.run m bs = Sum.inl b) :
@[simp]
theorem VerifiedIO.run_ioBit_cons {b b₁ : Bit} {bs : List Bit} :
StateT.run (ioBit b) (b₁ :: bs) = Sum.inr (b₁, bs)
@[simp]
@[simp]
theorem VerifiedIO.run_writeBit_cons {b b₁ : Bit} {bs : List Bit} :
StateT.run (writeBit b) (b₁ :: bs) = Sum.inr ((), bs)