equal
deleted
inserted
replaced
334 of the file-system configuration. This is expressed as an inductive relation |
334 of the file-system configuration. This is expressed as an inductive relation |
335 (although there is no actual recursion involved here). |
335 (although there is no actual recursion involved here). |
336 \<close> |
336 \<close> |
337 |
337 |
338 inductive transition :: "file \<Rightarrow> operation \<Rightarrow> file \<Rightarrow> bool" |
338 inductive transition :: "file \<Rightarrow> operation \<Rightarrow> file \<Rightarrow> bool" |
339 ("_ \<midarrow>_\<rightarrow> _" [90, 1000, 90] 100) |
339 (\<open>_ \<midarrow>_\<rightarrow> _\<close> [90, 1000, 90] 100) |
340 where |
340 where |
341 read: |
341 read: |
342 "root \<midarrow>(Read uid text path)\<rightarrow> root" |
342 "root \<midarrow>(Read uid text path)\<rightarrow> root" |
343 if "access root path uid {Readable} = Some (Val (att, text))" |
343 if "access root path uid {Readable} = Some (Val (att, text))" |
344 | "write": |
344 | "write": |
473 modeled inductively as follows. In a sense, this relation describes the |
473 modeled inductively as follows. In a sense, this relation describes the |
474 cumulative effect of the sequence of system-calls issued by a number of |
474 cumulative effect of the sequence of system-calls issued by a number of |
475 running processes over a finite amount of time. |
475 running processes over a finite amount of time. |
476 \<close> |
476 \<close> |
477 |
477 |
478 inductive transitions :: "file \<Rightarrow> operation list \<Rightarrow> file \<Rightarrow> bool" ("_ \<Midarrow>_\<Rightarrow> _" [90, 1000, 90] 100) |
478 inductive transitions :: "file \<Rightarrow> operation list \<Rightarrow> file \<Rightarrow> bool" (\<open>_ \<Midarrow>_\<Rightarrow> _\<close> [90, 1000, 90] 100) |
479 where |
479 where |
480 nil: "root \<Midarrow>[]\<Rightarrow> root" |
480 nil: "root \<Midarrow>[]\<Rightarrow> root" |
481 | cons: "root \<Midarrow>(x # xs)\<Rightarrow> root''" if "root \<midarrow>x\<rightarrow> root'" and "root' \<Midarrow>xs\<Rightarrow> root''" |
481 | cons: "root \<Midarrow>(x # xs)\<Rightarrow> root''" if "root \<midarrow>x\<rightarrow> root'" and "root' \<Midarrow>xs\<Rightarrow> root''" |
482 |
482 |
483 text \<open> |
483 text \<open> |