Myhill_2.thy
changeset 385 e5e32faa2446
parent 372 2c56b20032a7
equal deleted inserted replaced
384:60bcf13adb77 385:e5e32faa2446
   205 
   205 
   206 
   206 
   207 subsection {* Case for @{text "Times"} *}
   207 subsection {* Case for @{text "Times"} *}
   208 
   208 
   209 definition
   209 definition
   210   "Partitions x \<equiv> {(x\<^isub>p, x\<^isub>s). x\<^isub>p @ x\<^isub>s = x}"
   210   "Partitions x \<equiv> {(x\<^sub>p, x\<^sub>s). x\<^sub>p @ x\<^sub>s = x}"
   211 
   211 
   212 lemma conc_partitions_elim:
   212 lemma conc_partitions_elim:
   213   assumes "x \<in> A \<cdot> B"
   213   assumes "x \<in> A \<cdot> B"
   214   shows "\<exists>(u, v) \<in> Partitions x. u \<in> A \<and> v \<in> B"
   214   shows "\<exists>(u, v) \<in> Partitions x. u \<in> A \<and> v \<in> B"
   215 using assms unfolding conc_def Partitions_def
   215 using assms unfolding conc_def Partitions_def
   232 done
   232 done
   233 
   233 
   234 definition 
   234 definition 
   235   tag_Times :: "'a lang \<Rightarrow> 'a lang \<Rightarrow> 'a list \<Rightarrow> 'a lang \<times> 'a lang set"
   235   tag_Times :: "'a lang \<Rightarrow> 'a lang \<Rightarrow> 'a list \<Rightarrow> 'a lang \<times> 'a lang set"
   236 where
   236 where
   237   "tag_Times A B \<equiv> \<lambda>x. (\<approx>A `` {x}, {(\<approx>B `` {x\<^isub>s}) | x\<^isub>p x\<^isub>s. x\<^isub>p \<in> A \<and> (x\<^isub>p, x\<^isub>s) \<in> Partitions x})"
   237   "tag_Times A B \<equiv> \<lambda>x. (\<approx>A `` {x}, {(\<approx>B `` {x\<^sub>s}) | x\<^sub>p x\<^sub>s. x\<^sub>p \<in> A \<and> (x\<^sub>p, x\<^sub>s) \<in> Partitions x})"
   238 
   238 
   239 lemma tag_Times_injI:
   239 lemma tag_Times_injI:
   240   assumes a: "tag_Times A B x = tag_Times A B y"
   240   assumes a: "tag_Times A B x = tag_Times A B y"
   241   and     c: "x @ z \<in> A \<cdot> B"
   241   and     c: "x @ z \<in> A \<cdot> B"
   242   shows "y @ z \<in> A \<cdot> B"
   242   shows "y @ z \<in> A \<cdot> B"