equal
deleted
inserted
replaced
20 This is useful e.\,g.\ when \<open>f\<close> is injective, i.\,e.\ it is some kind of ``tagging'' function. |
20 This is useful e.\,g.\ when \<open>f\<close> is injective, i.\,e.\ it is some kind of ``tagging'' function. |
21 For instance, suppose we have some algebraaic datatype of values with various constructors, |
21 For instance, suppose we have some algebraaic datatype of values with various constructors, |
22 including a constructor \<open>RealVal\<close> for real numbers. Then \<open>embed_measure\<close> allows us to lift a |
22 including a constructor \<open>RealVal\<close> for real numbers. Then \<open>embed_measure\<close> allows us to lift a |
23 measure on real numbers to the appropriate subset of that algebraic datatype. |
23 measure on real numbers to the appropriate subset of that algebraic datatype. |
24 \<close> |
24 \<close> |
25 definition%important embed_measure :: "'a measure \<Rightarrow> ('a \<Rightarrow> 'b) \<Rightarrow> 'b measure" where |
25 definition\<^marker>\<open>tag important\<close> embed_measure :: "'a measure \<Rightarrow> ('a \<Rightarrow> 'b) \<Rightarrow> 'b measure" where |
26 "embed_measure M f = measure_of (f ` space M) {f ` A |A. A \<in> sets M} |
26 "embed_measure M f = measure_of (f ` space M) {f ` A |A. A \<in> sets M} |
27 (\<lambda>A. emeasure M (f -` A \<inter> space M))" |
27 (\<lambda>A. emeasure M (f -` A \<inter> space M))" |
28 |
28 |
29 lemma space_embed_measure: "space (embed_measure M f) = f ` space M" |
29 lemma space_embed_measure: "space (embed_measure M f) = f ` space M" |
30 unfolding embed_measure_def |
30 unfolding embed_measure_def |