equal
deleted
inserted
replaced
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 |