Unix filesystem and graph constraints Nicolas Jeannerod Journ ees - - PowerPoint PPT Presentation

unix filesystem and graph constraints
SMART_READER_LITE
LIVE PREVIEW

Unix filesystem and graph constraints Nicolas Jeannerod Journ ees - - PowerPoint PPT Presentation

Unix filesystem and graph constraints Nicolas Jeannerod Journ ees PPS, October 12, 2017 Nicolas Jeannerod Journ ees PPS October 12, 2017 1 / 21 The CoLiS project T1 Shell Script P Paris L Lille S Saclay P Compiler S,P CoLiS


slide-1
SLIDE 1

Unix filesystem and graph constraints

Nicolas Jeannerod Journ´ ees PPS, October 12, 2017

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 1 / 21

slide-2
SLIDE 2

The CoLiS project

T1

Shell Script Compiler P CoLiS Program S,P

T3

Interpreter Deep Embedding S,P Symbolic Execution

T2

Translator Tree Transducers L,P Equivalence Test Tree Constraints Incremental Simplification P Paris L Lille S Saclay

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 2 / 21

slide-3
SLIDE 3

The CoLiS project

T1

Shell Script Compiler P CoLiS Program S,P

T3

Interpreter Deep Embedding S,P Symbolic Execution

T2

Translator Tree Transducers L,P Equivalence Test Tree Constraints Incremental Simplification P Paris L Lille S Saclay

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 2 / 21

slide-4
SLIDE 4

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´ ees PPS October 12, 2017 3 / 21

slide-5
SLIDE 5

Description of file systems Unix file system

Unix file system

/ usr etc lib libc.so libc.so.6 lib root 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´ ees PPS October 12, 2017 4 / 21

slide-6
SLIDE 6

Description of file systems Unix file system

Unix file system

/ usr etc lib libc.so libc.so.6 lib root 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´ ees PPS October 12, 2017 4 / 21

slide-7
SLIDE 7

Description of file systems Unix file system

Unix file system

/ usr etc lib libc.so libc.so.6 lib root 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´ ees PPS October 12, 2017 4 / 21

slide-8
SLIDE 8

Description of file systems Unix file system

Unix file system

/ usr etc lib libc.so libc.so.6 lib root 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´ ees PPS October 12, 2017 4 / 21

slide-9
SLIDE 9

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´ ees PPS October 12, 2017 5 / 21

slide-10
SLIDE 10

Description of file systems Static description

Static description

/ v w x u∅ usr etc lib skel

  • caml

r

  • ∃u, v, x, w. r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑

∧ r[etc]w ∧ w[skel]u ∧ u∅

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 6 / 21

slide-11
SLIDE 11

Description of file systems Static description

Static description

/ v w x u∅ usr etc lib skel

  • caml

r

  • ∃u, v, x, w. r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑

∧ r[etc]w ∧ w[skel]u ∧ u∅

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 6 / 21

slide-12
SLIDE 12

Description of file systems Static description

Static description

r v w x u∅ usr etc lib skel

  • caml

r

  • ∃u, v, x, w. r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑

∧ r[etc]w ∧ w[skel]u ∧ u∅

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 6 / 21

slide-13
SLIDE 13

Description of file systems Static description

Static description

r v w x u∅ usr etc lib skel

  • caml

r

  • ∃u, v, x, w. r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑

∧ r[etc]w ∧ w[skel]u ∧ u∅

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 6 / 21

slide-14
SLIDE 14

Description of file systems Static description

Static description

r v w x u∅ usr etc lib skel

  • caml

r

  • ∃u, v, x, w. r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑

∧ r[etc]w ∧ w[skel]u ∧ u∅

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 6 / 21

slide-15
SLIDE 15

Description of file systems Static description

Static description

r v w x u∅ usr etc lib skel

  • caml

r

  • ∃u, v, x, w. r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑

∧ r[etc]w ∧ w[skel]u ∧ u∅

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 6 / 21

slide-16
SLIDE 16

Description of file systems Static description

Static description

r v w x u∅ usr etc lib skel

  • caml

r

  • ∃u, v, x, w. r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑

∧ r[etc]w ∧ w[skel]u ∧ u∅

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 6 / 21

slide-17
SLIDE 17

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´ ees PPS October 12, 2017 7 / 21

slide-18
SLIDE 18

Description of file systems Directory update

Directory update

r v w x usr etc lib

  • caml

mkdir /usr/lib/ocaml

r′ v′ w x′ y′∅ usr etc lib

  • caml

We want something like: r′ = r[usr → v′] ∧ v′ = v[lib → x′] ∧ x′ = x[ocaml → y′] ∧ y′∅

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 8 / 21

slide-19
SLIDE 19

Description of file systems Directory update

Directory update

r v w x usr etc lib

  • caml

mkdir /usr/lib/ocaml

r′ v′ w x′ y′∅ usr etc lib

  • caml

We want something like: r′ = r[usr → v′] ∧ v′ = v[lib → x′] ∧ x′ = x[ocaml → y′] ∧ y′∅

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 8 / 21

slide-20
SLIDE 20

Description of file systems Directory update

Directory update

r v w x usr etc lib

  • caml

mkdir /usr/lib/ocaml

r′ v′ w x′ y′∅ usr etc lib

  • caml

We want something like: r′ = r[usr → v′] ∧ v′ = v[lib → x′] ∧ x′ = x[ocaml → y′] ∧ y′∅

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 8 / 21

slide-21
SLIDE 21

Description of file systems Directory update

Directory update

r v w x usr etc lib

  • caml

mkdir /usr/lib/ocaml

r′ v′ w x′ y′∅ usr etc lib

  • caml

We want something like: r′ = r[usr → v′] ∧ v′ = v[lib → x′] ∧ x′ = x[ocaml → y′] ∧ y′∅

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 8 / 21

slide-22
SLIDE 22

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´ ees PPS October 12, 2017 9 / 21

slide-23
SLIDE 23

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´ ees PPS October 12, 2017 9 / 21

slide-24
SLIDE 24

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´ ees PPS October 12, 2017 9 / 21

slide-25
SLIDE 25

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´ ees PPS October 12, 2017 9 / 21

slide-26
SLIDE 26

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´ ees PPS October 12, 2017 9 / 21

slide-27
SLIDE 27

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´ ees PPS October 12, 2017 9 / 21

slide-28
SLIDE 28

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´ ees PPS October 12, 2017 9 / 21

slide-29
SLIDE 29

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´ ees PPS October 12, 2017 10 / 21

slide-30
SLIDE 30

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´ ees PPS October 12, 2017 10 / 21

slide-31
SLIDE 31

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´ ees PPS October 12, 2017 10 / 21

slide-32
SLIDE 32

Tree constraints Definitions

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´ ees PPS October 12, 2017 11 / 21

slide-33
SLIDE 33

Tree constraints Definitions

Constraints

K finite set; Dir ∈ K; F infinite set Finite trees labelled with K on nodes and F on edges x, y variables; K ∈ K, f ∈ F, F ⊆ F Equality x . = y K(x) Kind Feature xfy xf ↑ Absence Fence xF x ∼F y Similarity Composed with ¬, ∧, ∨, ∃x, ∀x No quantification on kinds and features Wanted: (un)satisfiability of these constraints Bonus point for incremental procedures

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 12 / 21

slide-34
SLIDE 34

Tree constraints Definitions

Constraints

K finite set; Dir ∈ K; F infinite set Finite trees labelled with K on nodes and F on edges x, y variables; K ∈ K, f ∈ F, F ⊆ F Equality x . = y K(x) Kind Feature xfy xf ↑ Absence Fence xF x ∼F y Similarity Composed with ¬, ∧, ∨, ∃x, ∀x No quantification on kinds and features Wanted: (un)satisfiability of these constraints Bonus point for incremental procedures

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 12 / 21

slide-35
SLIDE 35

Tree constraints Definitions

Constraints

K finite set; Dir ∈ K; F infinite set Finite trees labelled with K on nodes and F on edges x, y variables; K ∈ K, f ∈ F, F ⊆ F Equality x . = y K(x) Kind Feature xfy xf ↑ Absence Fence xF x ∼F y Similarity Composed with ¬, ∧, ∨, ∃x, ∀x No quantification on kinds and features Wanted: (un)satisfiability of these constraints Bonus point for incremental procedures

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 12 / 21

slide-36
SLIDE 36

Tree constraints Definitions

Constraints

K finite set; Dir ∈ K; F infinite set Finite trees labelled with K on nodes and F on edges x, y variables; K ∈ K, f ∈ F, F ⊆ F Equality x . = y K(x) Kind Feature xfy xf ↑ Absence Fence xF x ∼F y Similarity Composed with ¬, ∧, ∨, ∃x, ∀x No quantification on kinds and features Wanted: (un)satisfiability of these constraints Bonus point for incremental procedures

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 12 / 21

slide-37
SLIDE 37

Tree constraints Definitions

Constraints

K finite set; Dir ∈ K; F infinite set Finite trees labelled with K on nodes and F on edges x, y variables; K ∈ K, f ∈ F, F ⊆ F Equality x . = y K(x) Kind Feature xfy xf ↑ Absence Fence xF x ∼F y Similarity Composed with ¬, ∧, ∨, ∃x, ∀x No quantification on kinds and features Wanted: (un)satisfiability of these constraints Bonus point for incremental procedures

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 12 / 21

slide-38
SLIDE 38

Tree constraints Definitions

Game plan

  • 1. Write a system of rewriting rules;
  • 2. Prove that the system terminates (help it if needed);
  • 3. Prove that the rules respect equivalences:

Lemma If φ reduces to ψ, then | = φ ↔ ψ.

  • 4. Prove nice properties on the normal forms:

Lemma If φ is in normal form, then it is either satisfiable or ⊥.

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 13 / 21

slide-39
SLIDE 39

Tree constraints Definitions

Game plan

  • 1. Write a system of rewriting rules;
  • 2. Prove that the system terminates (help it if needed);
  • 3. Prove that the rules respect equivalences:

Lemma If φ reduces to ψ, then | = φ ↔ ψ.

  • 4. Prove nice properties on the normal forms:

Lemma If φ is in normal form, then it is either satisfiable or ⊥.

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 13 / 21

slide-40
SLIDE 40

Tree constraints Definitions

Game plan

  • 1. Write a system of rewriting rules;
  • 2. Prove that the system terminates (help it if needed);
  • 3. Prove that the rules respect equivalences:

Lemma If φ reduces to ψ, then | = φ ↔ ψ.

  • 4. Prove nice properties on the normal forms:

Lemma If φ is in normal form, then it is either satisfiable or ⊥.

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 13 / 21

slide-41
SLIDE 41

Tree constraints Definitions

Game plan

  • 1. Write a system of rewriting rules;
  • 2. Prove that the system terminates (help it if needed);
  • 3. Prove that the rules respect equivalences:

Lemma If φ reduces to ψ, then | = φ ↔ ψ.

  • 4. Prove nice properties on the normal forms:

Lemma If φ is in normal form, then it is either satisfiable or ⊥.

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 13 / 21

slide-42
SLIDE 42

Tree constraints Basic constraints

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´ ees PPS October 12, 2017 14 / 21

slide-43
SLIDE 43

Tree constraints Basic constraints

Basic rules

Basic constraints: conjunction of positive atoms.

Simpl-Feats

xfy ∧ xfz xfy ∧ y . = z

C-Feat-Abs

xfy ∧ xf ↑ ⊥

Intro-Feat-Sim

x ∼F y ∧ xfz x ∼F y ∧ xfz ∧ yfz

f / ∈ F

Intro-Sim-Sims

x ∼F y ∧ y ∼G z x ∼F y ∧ y ∼G z ∧ x ∼(F∪G) z

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 15 / 21

slide-44
SLIDE 44

Tree constraints Basic constraints

Basic rules

Basic constraints: conjunction of positive atoms.

Simpl-Feats

xfy ∧ xfz xfy ∧ y . = z

C-Feat-Abs

xfy ∧ xf ↑ ⊥

Intro-Feat-Sim

x ∼F y ∧ xfz x ∼F y ∧ xfz ∧ yfz

f / ∈ F

Intro-Sim-Sims

x ∼F y ∧ y ∼G z x ∼F y ∧ y ∼G z ∧ x ∼(F∪G) z

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 15 / 21

slide-45
SLIDE 45

Tree constraints Basic constraints

Basic rules

Basic constraints: conjunction of positive atoms.

Simpl-Feats

xfy ∧ xfz xfy ∧ y . = z

C-Feat-Abs

xfy ∧ xf ↑ ⊥

Intro-Feat-Sim

x ∼F y ∧ xfz x ∼F y ∧ xfz ∧ yfz

f / ∈ F

Intro-Sim-Sims

x ∼F y ∧ y ∼G z x ∼F y ∧ y ∼G z ∧ x ∼(F∪G) z

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 15 / 21

slide-46
SLIDE 46

Tree constraints Basic constraints

Basic rules

Basic constraints: conjunction of positive atoms.

Simpl-Feats

xfy ∧ xfz xfy ∧ y . = z

C-Feat-Abs

xfy ∧ xf ↑ ⊥

Intro-Feat-Sim

x ∼F y ∧ xfz x ∼F y ∧ xfz ∧ yfz

f / ∈ F

Intro-Sim-Sims

x ∼F y ∧ y ∼G z x ∼F y ∧ y ∼G z ∧ x ∼(F∪G) z

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 15 / 21

slide-47
SLIDE 47

Tree constraints Basic constraints

Basic constraints

Basic constraints: conjunction of positive atoms Equality: rewritten Kind: Static “positive” information Feature: Static “positive” information Absence: Static “negative” information Fence: Static “negative” information Similarity: Dynamic information r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ ∧r[etc]w ∧ w[skel]u ∧ u∅ ∧ . . . r v w x u usr etc lib skel

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 16 / 21

slide-48
SLIDE 48

Tree constraints Basic constraints

Basic constraints

Basic constraints: conjunction of positive atoms Equality: rewritten Kind: Static “positive” information Feature: Static “positive” information Absence: Static “negative” information Fence: Static “negative” information Similarity: Dynamic information r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ ∧r[etc]w ∧ w[skel]u ∧ u∅ ∧ . . . r v w x u usr etc lib skel

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 16 / 21

slide-49
SLIDE 49

Tree constraints Basic constraints

Basic constraints

Basic constraints: conjunction of positive atoms Equality: rewritten Kind: Static “positive” information Feature: Static “positive” information Absence: Static “negative” information Fence: Static “negative” information Similarity: Dynamic information r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ ∧r[etc]w ∧ w[skel]u ∧ u∅ ∧ . . . r v w x u usr etc lib skel

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 16 / 21

slide-50
SLIDE 50

Tree constraints Basic constraints

Basic constraints

Basic constraints: conjunction of positive atoms Equality: rewritten Kind: Static “positive” information Feature: Static “positive” information Absence: Static “negative” information Fence: Static “negative” information Similarity: Dynamic information r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ ∧r[etc]w ∧ w[skel]u ∧ u∅ ∧ . . . r v w x u usr etc lib skel

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 16 / 21

slide-51
SLIDE 51

Tree constraints Basic constraints

Basic constraints

Basic constraints: conjunction of positive atoms Equality: rewritten Kind: Static “positive” information Feature: Static “positive” information Absence: Static “negative” information Fence: Static “negative” information Similarity: Dynamic information r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ ∧r[etc]w ∧ w[skel]u ∧ u∅ ∧ . . . r v w x u usr etc lib skel

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 16 / 21

slide-52
SLIDE 52

Tree constraints Basic constraints

Basic constraints

Basic constraints: conjunction of positive atoms Equality: rewritten Kind: Static “positive” information Feature: Static “positive” information Absence: Static “negative” information Fence: Static “negative” information Similarity: Dynamic information r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ ∧r[etc]w ∧ w[skel]u ∧ u∅ ∧ . . . r v w x u usr etc lib skel

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 16 / 21

slide-53
SLIDE 53

Tree constraints Basic constraints

Basic constraints

Basic constraints: conjunction of positive atoms Equality: rewritten Kind: Static “positive” information Feature: Static “positive” information Absence: Static “negative” information Fence: Static “negative” information Similarity: Dynamic information r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ ∧r[etc]w ∧ w[skel]u ∧ u∅ ∧ . . . r v w x u usr etc lib skel

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 16 / 21

slide-54
SLIDE 54

Tree constraints Basic constraints

Basic constraints

Basic constraints: conjunction of positive atoms Equality: rewritten Kind: Static “positive” information Feature: Static “positive” information Absence: Static “negative” information Fence: Static “negative” information Similarity: Dynamic information r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ ∧r[etc]w ∧ w[skel]u ∧ u∅ ∧ . . . r v w x u usr etc lib skel

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 16 / 21

slide-55
SLIDE 55

Tree constraints Existential and first order constraints

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´ ees PPS October 12, 2017 17 / 21

slide-56
SLIDE 56

Tree constraints Existential and first order constraints

Negation: new players, new rules

¬xF: there exist a g / ∈ F such that xg↓; x ∼F y: there exist a g / ∈ F such that x . =g y;

Repl-NKind

¬K(x)

  • L∈K

L(x)

Repl-NAbs

¬xf ↑ ∃z.xfz

Repl-NSim-NFence

xF ∧ x ∼G y xF ∧ ¬xG

F ⊆ G

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 18 / 21

slide-57
SLIDE 57

Tree constraints Existential and first order constraints

Negation: new players, new rules

¬xF: there exist a g / ∈ F such that xg↓; x ∼F y: there exist a g / ∈ F such that x . =g y;

Repl-NKind

¬K(x)

  • L∈K

L(x)

Repl-NAbs

¬xf ↑ ∃z.xfz

Repl-NSim-NFence

xF ∧ x ∼G y xF ∧ ¬xG

F ⊆ G

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 18 / 21

slide-58
SLIDE 58

Tree constraints Existential and first order constraints

Negation: new players, new rules

¬xF: there exist a g / ∈ F such that xg↓; x ∼F y: there exist a g / ∈ F such that x . =g y;

Repl-NKind

¬K(x)

  • L∈K

L(x)

Repl-NAbs

¬xf ↑ ∃z.xfz

Repl-NSim-NFence

xF ∧ x ∼G y xF ∧ ¬xG

F ⊆ G

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 18 / 21

slide-59
SLIDE 59

Tree constraints Existential and first order constraints

Negation: new players, new rules

¬xF: there exist a g / ∈ F such that xg↓; x ∼F y: there exist a g / ∈ F such that x . =g y;

Repl-NKind

¬K(x)

  • L∈K

L(x)

Repl-NAbs

¬xf ↑ ∃z.xfz

Repl-NSim-NFence

xF ∧ x ∼G y xF ∧ ¬xG

F ⊆ G

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 18 / 21

slide-60
SLIDE 60

Tree constraints Existential and first order constraints

Quantifier elimination

Goal: be able to change an existentially quantified block into a universally quantified one.

X.

  • . . .

Y . . . .

  • Special rules:

Enlarg-Feat-Local

∃x.∃ X.(yfx ∧ φ(x, X)) yf ↓ ∧∀x.∃ X.(yfx → φ(x, X))

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 19 / 21

slide-61
SLIDE 61

Tree constraints Existential and first order constraints

Quantifier elimination

Goal: be able to change an existentially quantified block into a universally quantified one.

X.

  • . . .

Y . . . .

  • Special rules:

Enlarg-Feat-Local

∃x.∃ X.(yfx ∧ φ(x, X)) yf ↓ ∧∀x.∃ X.(yfx → φ(x, X))

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 19 / 21

slide-62
SLIDE 62

Tree constraints Existential and first order constraints

Lemma of 31 August

Lemma (31 August) Let φ be a conjunction of the form: φ( X, Y ) =

  • stuff about

X

  • ∧ ψ(

Y ) in normal form for our system. Then we have: | = ∀ Y .

  • X. φ(

X, Y )

  • ↔ ψ(

Y ) The system propagates all the useful information We can just remove what we don’t need!

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 20 / 21

slide-63
SLIDE 63

Tree constraints Existential and first order constraints

Lemma of 31 August

Lemma (31 August) Let φ be a conjunction of the form: φ( X, Y ) =

  • stuff about

X

  • ∧ ψ(

Y ) in normal form for our system. Then we have: | = ∀ Y .

  • X. φ(

X, Y )

  • ↔ ψ(

Y ) The system propagates all the useful information We can just remove what we don’t need!

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 20 / 21

slide-64
SLIDE 64

Thank you for your attention!

Recap’: Need constraints on graphs to represent relations on file systems; Extend “feature trees” with x ∼F y (“x and y are the same, except maybe for the features in F”); Use a system of rewrite rules whose normal forms have nice properties. Future work: Cleanup, formalise in a technical report; Add inodes, permissions, timestamps, etc. Implement an efficient version for the existential subset.

Nicolas Jeannerod Journ´ ees PPS October 12, 2017 21 / 21