src/HOL/Unix/Unix.thy
changeset 80914 d97fdabd9e2b
parent 76987 4c275405faae
child 81142 6ad2c917dd2e
equal deleted inserted replaced
80913:46f59511b7bb 80914:d97fdabd9e2b
   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>