Title: Mapping Fusion and Synchronized Hyperedge Replacement into Logic Programming
1Mapping Fusion and Synchronized Hyperedge
Replacement into Logic Programming
Dagstuhl Seminar 05081, 20-25 February 2005
Ivan Lanese Dipartimento di Informatica
Università di Pisa
joint work with Ugo Montanari
To be published on a special issue of Theory and
Practice of Logic Programming
2Roadmap
- Lot of background
- Fusion Calculus
- Synchronized Hyperedge Replacement
- Logic programming
- From Fusion Calculus to Hoare SHR
- From Hoare SHR to logic programming
- Conclusions
3Motivations
- Many models proposed for global computing systems
- Each model has its strengths and its weaknesses
- Comparing different models
- To understand the relationships among them
- To devise new (hybrid) models
- Cannot analyze all the models, naturally
4Roadmap
- Lot of background
- Fusion Calculus
- Synchronized Hyperedge Replacement
- Logic programming
- From Fusion Calculus to Hoare SHR
- From Hoare SHR to logic programming
- Conclusions
5Fusion Calculus
- Process calculus that is an evolution of
?-calculus - Simpler and more symmetric but also more
expressive - Introduces fusions of names
6Syntax for Fusion Calculus
- Agents
- S?i ?i.Pi
- P0 S P1P2 (x)P rec X. P X
- Processes are agents up to a standard structural
- congruence
7Reduction semantics
8Synchronized Hyperedge Replacement
- Follows the approach of graph transformation
- (Hyper)edges are systems connected through common
nodes - Productions describe the evolution of single
edges - Local effect, easy to implement
- Productions are synchronized via constraints on
nodes - Global constraint solving algorithm to find
allowed transitions - Productions applied indipendently
- Allows to define complex transformations
9Hyperedge Replacement Systems
- A production describes how the hyperedge L is
transformed into the graph R
L
R
H
H
3
3
4
4
2
2
1
1
10Hyperedge Replacement Systems
- A production describes how the hyperedge L is
transformed into the graph R
H
Many concurrent rewritings are allowed
11Synchronizing productions
- Productions associate actions to nodes
- A transition is allowed iff the synchronization
constraints imposed on actions are satisfied - Many synchronization models are possible (Hoare,
Milner, ...)
12An example Hoare SHR
- Hoare synchronization all the edges must
perform the same action
- Milner synchronization pairs of edges do
complementary actions
13SHR with mobility
14Logic programming
- Very quickly
- Syntax
- Semantics
15Roadmap
- Lot of background
- Fusion Calculus
- Synchronized Hyperedge Replacement
- Logic programming
- From Fusion Calculus to Hoare SHR
- From Hoare SHR to logic programming
- Conclusions
16From Fusion to HSHR
- We separate the topological structure (graph)
from the behaviour (productions) - We give a visual representation to processes
- Processes translated into graphs
- Sequential processes become hyperedges
- Names become structures called amoeboids
- Our approach deals only with closed processes
17Translation by example
- We take agents in standard form
- restrictions with inside parallel composition of
sequential agents - We transform it into a linear agent substitution
18Translation by example
- We translate the process into a graph
- Each linear agent becomes an edge labelled with a
copy of the agent with standard names - Q(x1,y1,z1) becomes an edge labelled by
Q(x1,x2,x3) attached to x1,y1,z1 - s transformed into amoeboids
- Each amoeboid connects a group of names merged by
s
19Translation by example
x
x1
z1
Q(x1,x2,x3)
y1
z
x2
x3
y
y2
z2
z3
u2
u1
w1
u3
x1x2x3.S(x4,x5)
u
w2
w
20Dynamics
- We have actions for input and output prefixes
- Productions for process edges
- Correspond to executions of prefixes of
normalized linear agents - Prefixes modeled by corresponding SHR actions
- RHS contains the translation of the resulting
sequential process - Fusions implemented by connecting nodes via
amoeboids
21A sample production
x2
x3
?
y2
u2
u1
out2x2y2
22What is an amoeboid?
- Amoeboids must allow two complementary actions on
the interface and create new amoeboids connecting
corresponding names - Connected amoeboids are merged
P
Q
23Implementing amoeboids in HSHR
- Amoeboids implemented as networks of edges with a
particular structure - composed essentially by edges that act as routers
- each internal node is shared by two edges
- some technical conditions
- Satisfy the desired properties but
- interleaving must be imposed from the outside
- produce some garbage (disconnected from the
system)
24Correspondence theorem
- Reductions of fusion processes correspond to
(interleaving) HSHR transitions - up to garbage
- up to equivalence of amoeboids that does not
change the behaviour - The correspondence can be extended to
computations
25Translation by example
x
Q(x1,x2,x3)
z
y
out x2 y2
x1x2x3.S(x4,x5)
u
in z2 w1
w
26Translation by example
x
Q(x1,x2,x3)
z
y
R(x1,x2)
S(x1,x2)
u
w
27Summary Fusion Calculus vs HSHR
- Fusion Hoare SHR
- Closed process Graph
- Sequential process Hyperedge
- Name Amoeboid
- Prefix Action
- Prefix execution Production
- Reduction Transition
28Roadmap
- Lot of background
- Fusion Calculus
- Synchronized Hyperedge Replacement
- Logic programming
- From Fusion Calculus to Hoare SHR
- From Hoare SHR to logic programming
- Conclusions
29From Hoare SHR to logic programming
- Useful for implementation purposes
- Logic programming as goal rewriting engine
- Very similar syntax (with the textual
representation for HSHR) - Logic programming allows for many execution
strategies and data structures ? we need some
restrictions - limited function nesting
- synchronized execution
- We define Synchronized Logic Programming (SLP)
30Synchronized Logic Programming
- A transactional version of logic programming (in
the zero-safe nets style) - Safe states are goals without function symbols
(goal-graphs) - Transactions are sequences of SLD steps
- During a transaction each atom can be rewritten
at most once - Transactions begin and end in safe states
- Transactions are called big-steps
- A computation is a sequence of big-steps
31Synchronized clauses
- Clauses with syntactic restrictions
- bodies are goal-graphs
- heads are A(t1,,tn) where ti is either a
variable or a single function symbol applied to
variables
32HSHR vs logic programming
- Graphs translated to goal-graphs
- edges modeled by predicates applied to the
attachment nodes - Productions are synchronized clauses
- Transitions are matched by big-steps
- Actions are implemented by function symbols
- the constraint that all function symbols have to
be removed corresponds to the condition for Hoare
synchronization - names are the arguments of the function symbol
- we choose the first one to represent the new name
for the node where the interaction is performed
(needed since substitutions are idempotent) - fusions performed by unification
33Correspondence theorem
- Correspondence between HSHR transitions and
big-steps - An injective (at each step) substitution keeps
track of the correspondence between HSHR nodes
and logic programming variables
34An example (simpler than Fusion)
C(x,y)?C(x,z),C(z,y)
r ltwgt
y
y
C(r(x,w),r(y,w))?S(y,w)
C
S
(w)
x
x
r ltwgt
35Dynamics
36Dynamics
37Summary HSHR vs SLP
- Hoare SHR SLP
- Graph Goal
- Hyperedge Atom
- Node Variable
- Parallel comp. AND comp.
- Action Function sym.
- Production Clause
- Transition Big-step
38Roadmap
- Lot of background
- Fusion Calculus
- Synchronized Hyperedge Replacement
- Logic programming
- From Fusion Calculus to Hoare SHR
- From Hoare SHR to logic programming
- Conclusions
39Conclusions
- Many relations among the three models
- similar underlying structure (e.g. parallel
composition) - name generations ability
- fusions
- Distinctive features
- Fusion same structure for system and elementary
actions, interleaving semantics, Milner
synchronization, restriction - HSHR distributed parallel computations, Hoare
synchronization, synchronous execution - SLP Hoare synchronization, asynchronous
execution engine
40Future work
- Analyzing different name-handling mechanisms
- In p calculus bound names are guarenteed distinct
- Useful for analyzing protocols (nonces, key
generation) - Hybrid models
- Different synchronizations for Fusion or logic
programming - Process calculi with unification (of terms)
- Logic programming with restriction
- Logic programming for implementation purposes
- For HSHR systems
- For Fusion Calculus
41End of talk
Thanks
Questions?
42A textual notation for graphs
x,y,w,z C(x,w) C(w,y) C (y,z) C(z,x)
?
43Transitions as judgements
?
?
? G1 ?? ?,??,?I G2
?
? ? ? (A x N ) (x, a , y) ? ? if ? (x)
(a , y)
?? is the set of new names that are used in
synchronization ?? z ? x. ?(x) (a , y), z
? ?, z ?set(y) ?I contains new internal names
44Transitions as judgements
?
x1,,xn L(x1,,xn) ?? x1,,xn , ??, ?I G
?
?
Names can be merged (and new names can be
added) Identity productions are always available
- Transitions
- are generated from the productions by applying
the transition rules - for the chosen synchronization model
45Textual representation for productions
(x,e,ltgt)(y,e,ltgt)
?
x, y
?
C(x,y)
x, y, z
.C(x,z) C(z,y)
r ltwgt
y
y
C
S
(w)
x
x
r ltwgt
,
(x,r,ltwgt)(y,r,ltwgt)
?
?
x, y
x, y
S(w,y)
C(x,y)
46From SHR to SLP
47Structural congruence
- Process agent up to the following laws
- and are associative, commutative and with 0
as unit - ?-conversion
- (x)0 0, (x)(y)P(y)(x) P
- P(x)Q(x)(PQ) if x not free in P
- rec X.PPrec X.P/X