src/HOLCF/IOA/meta_theory/Sequence.thy
changeset 35781 b7738ab762b1
parent 35642 f478d5a9d238
child 35907 ea0bf2a01eb0
equal deleted inserted replaced
35780:98fd7910f70a 35781:b7738ab762b1
   256 apply (simp add: Consq_def)
   256 apply (simp add: Consq_def)
   257 done
   257 done
   258 
   258 
   259 lemma Seq_exhaust: "x = UU | x = nil | (? a s. x = a >> s)"
   259 lemma Seq_exhaust: "x = UU | x = nil | (? a s. x = a >> s)"
   260 apply (simp add: Consq_def2)
   260 apply (simp add: Consq_def2)
   261 apply (cut_tac seq.exhaust)
   261 apply (cut_tac seq.nchotomy)
   262 apply (fast dest: not_Undef_is_Def [THEN iffD1])
   262 apply (fast dest: not_Undef_is_Def [THEN iffD1])
   263 done
   263 done
   264 
   264 
   265 
   265 
   266 lemma Seq_cases:
   266 lemma Seq_cases:
   330 
   330 
   331 subsection "induction"
   331 subsection "induction"
   332 
   332 
   333 lemma Seq_induct:
   333 lemma Seq_induct:
   334 "!! P. [| adm P; P UU; P nil; !! a s. P s ==> P (a>>s)|] ==> P x"
   334 "!! P. [| adm P; P UU; P nil; !! a s. P s ==> P (a>>s)|] ==> P x"
   335 apply (erule (2) seq.ind)
   335 apply (erule (2) seq.induct)
   336 apply defined
   336 apply defined
   337 apply (simp add: Consq_def)
   337 apply (simp add: Consq_def)
   338 done
   338 done
   339 
   339 
   340 lemma Seq_FinitePartial_ind:
   340 lemma Seq_FinitePartial_ind:
   457 lemma Conc_assoc: "(x @@ y) @@ z = (x::'a Seq) @@ y @@ z"
   457 lemma Conc_assoc: "(x @@ y) @@ z = (x::'a Seq) @@ y @@ z"
   458 apply (rule_tac x="x" in Seq_induct, simp_all)
   458 apply (rule_tac x="x" in Seq_induct, simp_all)
   459 done
   459 done
   460 
   460 
   461 lemma nilConc [simp]: "s@@ nil = s"
   461 lemma nilConc [simp]: "s@@ nil = s"
   462 apply (rule_tac x="s" in seq.ind)
   462 apply (induct s)
   463 apply simp
   463 apply simp
   464 apply simp
   464 apply simp
   465 apply simp
   465 apply simp
   466 apply simp
   466 apply simp
   467 done
   467 done