(* Author: Johannes Hölzl <hoelzl@in.tum.de> *) section ‹Markov Decision Processes› theory Markov_Decision_Process imports Discrete_Time_Markov_Chain begin definition "some_elem s = (SOME x. x ∈ s)" lemma some_elem_ne: "s ≠ {} ⟹ some_elem s ∈ s" unfolding some_elem_def by (auto intro: someI) subsection ‹Configurations› text ‹ We want to construct a \emph{non-free} codatatype ‹'s cfg = Cfg (state: 's) (action: 's pmf) (cont: 's ⇒ 's cfg)›. with the restriction @{term "state (cont cfg s) = s"} › hide_const cont