Unix Filesystem and Graph Constraints

Unix Filesystem and Graph Constraints

Unix filesystem and graph constraints Nicolas Jeannerod Journ´eesPPS, October 12, 2017 Nicolas Jeannerod Journ´eesPPS October 12, 2017 1 / 21 The CoLiS project T1 P Paris Shell Script L Lille S Saclay Compiler P CoLiS Program S,P T3 T2 Deep Embedding Translator Symbolic Tree Tree Interpreter S,P Execution Constraints Transducers L,P Incremental Equivalence Simplification Test Nicolas Jeannerod Journ´eesPPS October 12, 2017 2 / 21 The CoLiS project T1 P Paris Shell Script L Lille S Saclay Compiler P CoLiS Program S,P T3 T2 Deep Embedding Translator Symbolic Tree Tree Interpreter S,P Execution Constraints Transducers L,P Incremental Equivalence Simplification Test Nicolas Jeannerod Journ´eesPPS October 12, 2017 2 / 21 Description of file systems Unix file system Table of Contents 1. Description of file systems Unix file system Static description Directory update 2. Tree constraints Definitions Basic constraints Existential and first order constraints Nicolas Jeannerod Journ´eesPPS October 12, 2017 3 / 21 Description of file systems Unix file system Unix file system / usr lib etc lib root libc.so libc.so.6 Basically a tree with labelled nodes and edges; There can be sharing at the leafs (hard link between files); There can be pointers to other parts of the tree (symbolic links) which may form cycles. Nicolas Jeannerod Journ´eesPPS October 12, 2017 4 / 21 Description of file systems Unix file system Unix file system / usr lib etc lib root libc.so libc.so.6 Basically a tree with labelled nodes and edges; There can be sharing at the leafs (hard link between files); There can be pointers to other parts of the tree (symbolic links) which may form cycles. Nicolas Jeannerod Journ´eesPPS October 12, 2017 4 / 21 Description of file systems Unix file system Unix file system / usr lib etc lib root libc.so libc.so.6 Basically a tree with labelled nodes and edges; There can be sharing at the leafs (hard link between files); There can be pointers to other parts of the tree (symbolic links) which may form cycles. Nicolas Jeannerod Journ´eesPPS October 12, 2017 4 / 21 Description of file systems Unix file system Unix file system / usr lib etc lib root libc.so libc.so.6 Basically a tree with labelled nodes and edges; There can be sharing at the leafs (hard link between files); There can be pointers to other parts of the tree (symbolic links) which may form cycles. Nicolas Jeannerod Journ´eesPPS October 12, 2017 4 / 21 Description of file systems Static description Table of Contents 1. Description of file systems Unix file system Static description Directory update 2. Tree constraints Definitions Basic constraints Existential and first order constraints Nicolas Jeannerod Journ´eesPPS October 12, 2017 5 / 21 Description of file systems Static description Static description / usr etc v w lib skel x u? ocaml r[usr]v ^ v[lib]x ^ x[ocaml] " r 9u; v; x; w: ^ r[etc]w ^ w[skel]u ^ u? Nicolas Jeannerod Journ´eesPPS October 12, 2017 6 / 21 Description of file systems Static description Static description / usr etc v w lib skel x u? ocaml r[usr]v ^ v[lib]x ^ x[ocaml] " r 9u; v; x; w: ^ r[etc]w ^ w[skel]u ^ u? Nicolas Jeannerod Journ´eesPPS October 12, 2017 6 / 21 Description of file systems Static description Static description r usr etc v w lib skel x u? ocaml r[usr]v ^ v[lib]x ^ x[ocaml] " r 9u; v; x; w: ^ r[etc]w ^ w[skel]u ^ u? Nicolas Jeannerod Journ´eesPPS October 12, 2017 6 / 21 Description of file systems Static description Static description r usr etc v w lib skel x u? ocaml r[usr]v ^ v[lib]x ^ x[ocaml] " r 9u; v; x; w: ^ r[etc]w ^ w[skel]u ^ u? Nicolas Jeannerod Journ´eesPPS October 12, 2017 6 / 21 Description of file systems Static description Static description r usr etc v w lib skel x u? ocaml r[usr]v ^ v[lib]x ^ x[ocaml] " r 9u; v; x; w: ^ r[etc]w ^ w[skel]u ^ u? Nicolas Jeannerod Journ´eesPPS October 12, 2017 6 / 21 Description of file systems Static description Static description r usr etc v w lib skel x u? ocaml r[usr]v ^ v[lib]x ^ x[ocaml] " r 9u; v; x; w: ^ r[etc]w ^ w[skel]u ^ u? Nicolas Jeannerod Journ´eesPPS October 12, 2017 6 / 21 Description of file systems Static description Static description r usr etc v w lib skel x u? ocaml r[usr]v ^ v[lib]x ^ x[ocaml] " r 9u; v; x; w: ^ r[etc]w ^ w[skel]u ^ u? Nicolas Jeannerod Journ´eesPPS October 12, 2017 6 / 21 Description of file systems Directory update Table of Contents 1. Description of file systems Unix file system Static description Directory update 2. Tree constraints Definitions Basic constraints Existential and first order constraints Nicolas Jeannerod Journ´eesPPS October 12, 2017 7 / 21 Description of file systems Directory update Directory update r r0 usr etc usr etc v w v0 w mkdir /usr/lib/ocaml lib lib x x0 ocaml ocaml 0 y ? We want something like: 0 0 0 0 0 0 0 r = r[usr ! v ] ^ v = v[lib ! x ] ^ x = x[ocaml ! y ] ^ y ? Nicolas Jeannerod Journ´eesPPS October 12, 2017 8 / 21 Description of file systems Directory update Directory update r r0 usr etc usr etc v w v0 w mkdir /usr/lib/ocaml lib lib x x0 ocaml ocaml 0 y ? We want something like: 0 0 0 0 0 0 0 r = r[usr ! v ] ^ v = v[lib ! x ] ^ x = x[ocaml ! y ] ^ y ? Nicolas Jeannerod Journ´eesPPS October 12, 2017 8 / 21 Description of file systems Directory update Directory update r r0 usr etc usr etc v w v0 w mkdir /usr/lib/ocaml lib lib x x0 ocaml ocaml 0 y ? We want something like: 0 0 0 0 0 0 0 r = r[usr ! v ] ^ v = v[lib ! x ] ^ x = x[ocaml ! y ] ^ y ? Nicolas Jeannerod Journ´eesPPS October 12, 2017 8 / 21 Description of file systems Directory update Directory update r r0 usr etc usr etc v w v0 w mkdir /usr/lib/ocaml lib lib x x0 ocaml ocaml 0 y ? We want something like: 0 0 0 0 0 0 0 r = r[usr ! v ] ^ v = v[lib ! x ] ^ x = x[ocaml ! y ] ^ y ? Nicolas Jeannerod Journ´eesPPS October 12, 2017 8 / 21 Description of file systems Directory update Er.. is that really what we want? Asymmetric: y = x[f ! v] Makes it hard to eliminate variables: y = x[f ! v] ^ z = x[g ! w] Contains in fact two pieces of information: \y and x are different in f, identical everywhere else": y ∼f x \y points to v through f": y[f]v Nicolas Jeannerod Journ´eesPPS October 12, 2017 9 / 21 Description of file systems Directory update Er.. is that really what we want? Asymmetric: y = x[f ! v] Makes it hard to eliminate variables: y = x[f ! v] ^ z = x[g ! w] Contains in fact two pieces of information: \y and x are different in f, identical everywhere else": y ∼f x \y points to v through f": y[f]v Nicolas Jeannerod Journ´eesPPS October 12, 2017 9 / 21 Description of file systems Directory update Er.. is that really what we want? Asymmetric: y = x[f ! v] Makes it hard to eliminate variables: y = x[f ! v] ^ z = x[g ! w] Contains in fact two pieces of information: \y and x are different in f, identical everywhere else": y ∼f x \y points to v through f": y[f]v Nicolas Jeannerod Journ´eesPPS October 12, 2017 9 / 21 Description of file systems Directory update Er.. is that really what we want? Asymmetric: y = x[f ! v] Makes it hard to eliminate variables: y = x[f ! v] ^ z = x[g ! w] Contains in fact two pieces of information: \y and x are different in f, identical everywhere else": y ∼f x \y points to v through f": y[f]v Nicolas Jeannerod Journ´eesPPS October 12, 2017 9 / 21 Description of file systems Directory update Er.. is that really what we want? Asymmetric: y = x[f ! v] Makes it hard to eliminate variables: y = x[f ! v] ^ z = x[g ! w] Contains in fact two pieces of information: \y and x are different in f, identical everywhere else": y ∼f x \y points to v through f": y[f]v Nicolas Jeannerod Journ´eesPPS October 12, 2017 9 / 21 Description of file systems Directory update Er.. is that really what we want? Asymmetric: y = x[f ! v] Makes it hard to eliminate variables: y = x[f ! v] ^ z = x[g ! w] Contains in fact two pieces of information: \y and x are different in f, identical everywhere else": y ∼f x \y points to v through f": y[f]v Nicolas Jeannerod Journ´eesPPS October 12, 2017 9 / 21 Description of file systems Directory update Er.. is that really what we want? Asymmetric: y = x[f ! v] Makes it hard to eliminate variables: y = x[f ! v] ^ z = x[g ! w] Contains in fact two pieces of information: \y and x are different in f, identical everywhere else": y ∼f x \y points to v through f": y[f]v Nicolas Jeannerod Journ´eesPPS October 12, 2017 9 / 21 Description of file systems Directory update Much better Allows to express the update: y = x[f ! v] := y ∼f x ^ y[f]v Symmetric: y ∼f x () x ∼f y Transitive: y ∼f x ^ z ∼f x =) y ∼f z Nicolas Jeannerod Journ´eesPPS October 12, 2017 10 / 21 Description of file systems Directory update Much better Allows to express the update: y = x[f ! v] := y ∼f x ^ y[f]v Symmetric: y ∼f x () x ∼f y Transitive: y ∼f x ^ z ∼f x =) y ∼f z Nicolas Jeannerod Journ´eesPPS October 12, 2017 10 / 21 Description of file systems Directory update Much better Allows to express the update: y = x[f ! v] := y ∼f x ^ y[f]v Symmetric: y ∼f x () x ∼f y Transitive: y ∼f x ^ z ∼f x =) y ∼f z Nicolas Jeannerod Journ´eesPPS October 12, 2017 10 / 21 Tree constraints Definitions Table of Contents 1.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    64 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us