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 ∃u, 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 ∃u, 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 ∃u, 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 ∃u, 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 ∃u, 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 ∃u, 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 ∃u, 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. 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 11 / 21 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´eesPPS October 12, 2017 12 / 21 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´eesPPS October 12, 2017 12 / 21 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´eesPPS October 12, 2017 12 / 21 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´eesPPS October 12, 2017 12 / 21 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´eesPPS October 12, 2017 12 / 21 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´eesPPS October 12, 2017 13 / 21 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´eesPPS October 12, 2017 13 / 21 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´eesPPS October 12, 2017 13 / 21 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´eesPPS October 12, 2017 13 / 21 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´eesPPS October 12, 2017 14 / 21 Tree constraints Basic constraints Basic rules
Basic constraints: conjunction of positive atoms.
Simpl-Feats C-Feat-Abs xfy ∧ xfz xfy ∧ xf ↑ . xfy ∧ y = z ⊥
Intro-Feat-Sim Intro-Sim-Sims x ∼F y ∧ xfz x ∼F y ∧ y ∼G z f∈ / F x ∼F y ∧ xfz ∧ yfz x ∼F y ∧ y ∼G z ∧ x ∼(F ∪G) z
Nicolas Jeannerod Journ´eesPPS October 12, 2017 15 / 21 Tree constraints Basic constraints Basic rules
Basic constraints: conjunction of positive atoms.
Simpl-Feats C-Feat-Abs xfy ∧ xfz xfy ∧ xf ↑ . xfy ∧ y = z ⊥
Intro-Feat-Sim Intro-Sim-Sims x ∼F y ∧ xfz x ∼F y ∧ y ∼G z f∈ / F x ∼F y ∧ xfz ∧ yfz x ∼F y ∧ y ∼G z ∧ x ∼(F ∪G) z
Nicolas Jeannerod Journ´eesPPS October 12, 2017 15 / 21 Tree constraints Basic constraints Basic rules
Basic constraints: conjunction of positive atoms.
Simpl-Feats C-Feat-Abs xfy ∧ xfz xfy ∧ xf ↑ . xfy ∧ y = z ⊥
Intro-Feat-Sim Intro-Sim-Sims x ∼F y ∧ xfz x ∼F y ∧ y ∼G z f∈ / F x ∼F y ∧ xfz ∧ yfz x ∼F y ∧ y ∼G z ∧ x ∼(F ∪G) z
Nicolas Jeannerod Journ´eesPPS October 12, 2017 15 / 21 Tree constraints Basic constraints Basic rules
Basic constraints: conjunction of positive atoms.
Simpl-Feats C-Feat-Abs xfy ∧ xfz xfy ∧ xf ↑ . xfy ∧ y = z ⊥
Intro-Feat-Sim Intro-Sim-Sims x ∼F y ∧ xfz x ∼F y ∧ y ∼G z f∈ / F x ∼F y ∧ xfz ∧ yfz x ∼F y ∧ y ∼G z ∧ x ∼(F ∪G) z
Nicolas Jeannerod Journ´eesPPS October 12, 2017 15 / 21 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 r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ usr etc ∧r[etc]w ∧ w[skel]u ∧ u∅ v w ∧ ... lib skel x u
Nicolas Jeannerod Journ´eesPPS October 12, 2017 16 / 21 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 r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ usr etc ∧r[etc]w ∧ w[skel]u ∧ u∅ v w ∧ ... lib skel x u
Nicolas Jeannerod Journ´eesPPS October 12, 2017 16 / 21 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 r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ usr etc ∧r[etc]w ∧ w[skel]u ∧ u∅ v w ∧ ... lib skel x u
Nicolas Jeannerod Journ´eesPPS October 12, 2017 16 / 21 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 r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ usr etc ∧r[etc]w ∧ w[skel]u ∧ u∅ v w ∧ ... lib skel x u
Nicolas Jeannerod Journ´eesPPS October 12, 2017 16 / 21 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 r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ usr etc ∧r[etc]w ∧ w[skel]u ∧ u∅ v w ∧ ... lib skel x u
Nicolas Jeannerod Journ´eesPPS October 12, 2017 16 / 21 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 r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ usr etc ∧r[etc]w ∧ w[skel]u ∧ u∅ v w ∧ ... lib skel x u
Nicolas Jeannerod Journ´eesPPS October 12, 2017 16 / 21 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 r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ usr etc ∧r[etc]w ∧ w[skel]u ∧ u∅ v w ∧ ... lib skel x u
Nicolas Jeannerod Journ´eesPPS October 12, 2017 16 / 21 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 r[usr]v ∧ v[lib]x ∧ x[ocaml] ↑ usr etc ∧r[etc]w ∧ w[skel]u ∧ u∅ v w ∧ ... lib skel x u
Nicolas Jeannerod Journ´eesPPS October 12, 2017 16 / 21 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´eesPPS October 12, 2017 17 / 21 Tree constraints Existential and first order constraints Negation: new players, new rules
¬xF : there exist a g∈ / F such that xg ↓; . x 6∼F y: there exist a g∈ / F such that x 6=g y;
Repl-NKind ¬K(x) _ L(x) L∈K
Repl-NAbs Repl-NSim-NFence ¬xf ↑ xF ∧ x 6∼G y F ⊆ G ∃z.xfz xF ∧ ¬xG
Nicolas Jeannerod Journ´eesPPS October 12, 2017 18 / 21 Tree constraints Existential and first order constraints Negation: new players, new rules
¬xF : there exist a g∈ / F such that xg ↓; . x 6∼F y: there exist a g∈ / F such that x 6=g y;
Repl-NKind ¬K(x) _ L(x) L∈K
Repl-NAbs Repl-NSim-NFence ¬xf ↑ xF ∧ x 6∼G y F ⊆ G ∃z.xfz xF ∧ ¬xG
Nicolas Jeannerod Journ´eesPPS October 12, 2017 18 / 21 Tree constraints Existential and first order constraints Negation: new players, new rules
¬xF : there exist a g∈ / F such that xg ↓; . x 6∼F y: there exist a g∈ / F such that x 6=g y;
Repl-NKind ¬K(x) _ L(x) L∈K
Repl-NAbs Repl-NSim-NFence ¬xf ↑ xF ∧ x 6∼G y F ⊆ G ∃z.xfz xF ∧ ¬xG
Nicolas Jeannerod Journ´eesPPS October 12, 2017 18 / 21 Tree constraints Existential and first order constraints Negation: new players, new rules
¬xF : there exist a g∈ / F such that xg ↓; . x 6∼F y: there exist a g∈ / F such that x 6=g y;
Repl-NKind ¬K(x) _ L(x) L∈K
Repl-NAbs Repl-NSim-NFence ¬xf ↑ xF ∧ x 6∼G y F ⊆ G ∃z.xfz xF ∧ ¬xG
Nicolas Jeannerod Journ´eesPPS October 12, 2017 18 / 21 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´eesPPS October 12, 2017 19 / 21 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´eesPPS October 12, 2017 19 / 21 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´eesPPS October 12, 2017 20 / 21 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´eesPPS October 12, 2017 20 / 21 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´eesPPS October 12, 2017 21 / 21