src/HOL/Probability/Independent_Family.thy
changeset 57512 cc97b347b301
parent 57447 87429bdecad5
child 58876 1888e3cb8048
equal deleted inserted replaced
57511:de51a86fc903 57512:cc97b347b301
  1299   shows indep_var_lebesgue_integral: "(\<integral>\<omega>. X1 \<omega> * X2 \<omega> \<partial>M) = (\<integral>\<omega>. X1 \<omega> \<partial>M) * (\<integral>\<omega>. X2 \<omega> \<partial>M)" (is ?eq)
  1299   shows indep_var_lebesgue_integral: "(\<integral>\<omega>. X1 \<omega> * X2 \<omega> \<partial>M) = (\<integral>\<omega>. X1 \<omega> \<partial>M) * (\<integral>\<omega>. X2 \<omega> \<partial>M)" (is ?eq)
  1300     and indep_var_integrable: "integrable M (\<lambda>\<omega>. X1 \<omega> * X2 \<omega>)" (is ?int)
  1300     and indep_var_integrable: "integrable M (\<lambda>\<omega>. X1 \<omega> * X2 \<omega>)" (is ?int)
  1301 unfolding indep_var_def
  1301 unfolding indep_var_def
  1302 proof -
  1302 proof -
  1303   have *: "(\<lambda>\<omega>. X1 \<omega> * X2 \<omega>) = (\<lambda>\<omega>. \<Prod>i\<in>UNIV. (case_bool X1 X2 i \<omega>))"
  1303   have *: "(\<lambda>\<omega>. X1 \<omega> * X2 \<omega>) = (\<lambda>\<omega>. \<Prod>i\<in>UNIV. (case_bool X1 X2 i \<omega>))"
  1304     by (simp add: UNIV_bool mult_commute)
  1304     by (simp add: UNIV_bool mult.commute)
  1305   have **: "(\<lambda> _. borel) = case_bool borel borel"
  1305   have **: "(\<lambda> _. borel) = case_bool borel borel"
  1306     by (rule ext, metis (full_types) bool.simps(3) bool.simps(4))
  1306     by (rule ext, metis (full_types) bool.simps(3) bool.simps(4))
  1307   show ?eq
  1307   show ?eq
  1308     apply (subst *)
  1308     apply (subst *)
  1309     apply (subst indep_vars_lebesgue_integral)
  1309     apply (subst indep_vars_lebesgue_integral)
  1310     apply (auto)
  1310     apply (auto)
  1311     apply (subst **, subst indep_var_def [symmetric], rule assms)
  1311     apply (subst **, subst indep_var_def [symmetric], rule assms)
  1312     apply (simp split: bool.split add: assms)
  1312     apply (simp split: bool.split add: assms)
  1313     by (simp add: UNIV_bool mult_commute)
  1313     by (simp add: UNIV_bool mult.commute)
  1314   show ?int
  1314   show ?int
  1315     apply (subst *)
  1315     apply (subst *)
  1316     apply (rule indep_vars_integrable)
  1316     apply (rule indep_vars_integrable)
  1317     apply auto
  1317     apply auto
  1318     apply (subst **, subst indep_var_def [symmetric], rule assms)
  1318     apply (subst **, subst indep_var_def [symmetric], rule assms)