equal
deleted
inserted
replaced
462 next |
462 next |
463 case rmdir |
463 case rmdir |
464 with root show ?thesis by cases auto |
464 with root show ?thesis by cases auto |
465 next |
465 next |
466 case readdir |
466 case readdir |
467 with root show ?thesis by cases auto |
467 with root show ?thesis by cases (simp (asm_lr))+ |
468 qed |
468 qed |
469 qed |
469 qed |
470 |
470 |
471 text {* |
471 text {* |
472 \medskip Apparently, file-system transitions are \emph{type-safe} in |
472 \medskip Apparently, file-system transitions are \emph{type-safe} in |
1080 also from lookup have "\<dots> = lookup root (path @ [y])" |
1080 also from lookup have "\<dots> = lookup root (path @ [y])" |
1081 by (simp only: lookup_append_some) |
1081 by (simp only: lookup_append_some) |
1082 also have "\<dots> \<noteq> None" |
1082 also have "\<dots> \<noteq> None" |
1083 proof - |
1083 proof - |
1084 from ys obtain us u where rev_ys: "ys = us @ [u]" |
1084 from ys obtain us u where rev_ys: "ys = us @ [u]" |
1085 by (cases ys rule: rev_cases) auto |
1085 by (cases ys rule: rev_cases) fastsimp+ |
1086 with tr path |
1086 with tr path |
1087 have "lookup root ((path @ [y]) @ (us @ [u])) \<noteq> None \<or> |
1087 have "lookup root ((path @ [y]) @ (us @ [u])) \<noteq> None \<or> |
1088 lookup root ((path @ [y]) @ us) \<noteq> None" |
1088 lookup root ((path @ [y]) @ us) \<noteq> None" |
1089 by cases (auto dest: access_some_lookup) |
1089 by cases (auto dest: access_some_lookup) |
1090 thus ?thesis by (blast dest!: lookup_some_append) |
1090 thus ?thesis by (blast dest!: lookup_some_append) |