Theory Stochastic_Processes
section "Stochastic processes"
theory Stochastic_Processes
imports Kolmogorov_Chentsov_Extras Dyadic_Interval
begin
text ‹ A stochastic process is an indexed collection of random variables. For compatibility with
\texttt{product\_prob\_space} we don't enforce conditions on the index set $I$ in the assumptions. ›
locale stochastic_process = prob_space +
fixes M' :: "'b measure"
and I :: "'t set"
and X :: "'t ⇒ 'a ⇒ 'b"
assumes random_process[measurable]: "⋀i. random_variable M' (X i)"
sublocale stochastic_process ⊆ product: product_prob_space "(λt. distr M M' (X t))"
using prob_space_distr random_process by (blast intro: product_prob_spaceI)
lemma (in prob_space) stochastic_processI:
assumes "⋀i. random_variable M' (X i)"
shows "stochastic_process M M' X"
by (simp add: assms prob_space_axioms stochastic_process_axioms.intro stochastic_process_def)
typedef ('t, 'a, 'b) stochastic_process =
"{(M :: 'a measure, M' :: 'b measure, I :: 't set, X :: 't ⇒ 'a ⇒ 'b).
stochastic_process M M' X}"
proof
show "(return (sigma UNIV {{}, UNIV}) x, sigma UNIV UNIV, UNIV, λ_ _. c) ∈
{(M, M', I, X). stochastic_process M M' X}" for x :: 'a and c :: 'b
by (simp add: prob_space_return prob_space.stochastic_processI)
qed
setup_lifting type_definition_stochastic_process
lift_definition proc_source :: "('t,'a,'b) stochastic_process ⇒ 'a measure"
is "fst" .