Mapping fusion and synchronized hyperedge replacement into logic programming
Download
1 / 47

Mapping Fusion and Synchronized Hyperedge Replacement into Logic Programming - PowerPoint PPT Presentation


  • 70 Views
  • Uploaded on

Dagstuhl Seminar #05081, 20-25 February 2005. Mapping Fusion and Synchronized Hyperedge Replacement into Logic Programming. Ivan Lanese Dipartimento di Informatica Università di Pisa. joint work with Ugo Montanari.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Mapping Fusion and Synchronized Hyperedge Replacement into Logic Programming' - etenia


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Mapping fusion and synchronized hyperedge replacement into logic programming

Dagstuhl Seminar #05081, 20-25 February 2005

Mapping Fusion and Synchronized Hyperedge Replacement into Logic Programming

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


Roadmap
Roadmap

  • Lot of background

    • Fusion Calculus

    • Synchronized Hyperedge Replacement

    • Logic programming

  • From Fusion Calculus to Hoare SHR

  • From Hoare SHR to logic programming

  • Conclusions


Motivations
Motivations

  • 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…


Roadmap1
Roadmap

  • Lot of background

    • Fusion Calculus

    • Synchronized Hyperedge Replacement

    • Logic programming

  • From Fusion Calculus to Hoare SHR

  • From Hoare SHR to logic programming

  • Conclusions


Fusion calculus
Fusion Calculus

  • Process calculus that is an evolution of -calculus

  • Simpler and more symmetric but also more expressive

  • Introduces fusions of names


Syntax for fusion calculus
Syntax for Fusion Calculus

  • Agents:

    S::=i i.Pi

    P::=0 | S | P1|P2 | (x)P | rec X. P | X

    Processes are agents up to a standard structural

    congruence



S ynchronized hyperedge replacement
Synchronized 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 constraintson nodes

    • Global constraint solving algorithm to find allowed transitions

    • Productions applied indipendently

    • Allows to define complex transformations


Hyperedge replacement systems
Hyperedge 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


Hyperedge replacement systems1

L

R

H

3

3

4

4

2

2

1

1

1

1

2

2

3

3

R’

L’

Hyperedge Replacement Systems

  • A production describes how the hyperedge L is transformed into the graph R

H

Many concurrent rewritings are allowed


Synchronizing productions
Synchronizing productions

  • Productions associate actions to nodes

  • A transition is allowed iff thesynchronization constraints imposed on actions are satisfied

  • Many synchronization models are possible (Hoare, Milner, ...)


An example hoare shr

a

a

a

a

B1

A1

3

3

B2

A2

An example: Hoare SHR

  • Hoare synchronization: all the edges must perform the same action

  • Milner synchronization:pairs of edges do complementary actions


Shr with mobility

  • Actions carry tuples of references to nodes (new or already existent)

  • References associated to synchronized actions are matched and corresponding nodes are merged

a<x>

a<x>

a<y>

B1

A1

a<y>

(x)

(y)

x=y

B2

A2

SHR with mobility


Logic programming
Logic programming

Very quickly…

  • Syntax

  • Semantics


Roadmap2
Roadmap

  • Lot of background

    • Fusion Calculus

    • Synchronized Hyperedge Replacement

    • Logic programming

  • From Fusion Calculus to Hoare SHR

  • From Hoare SHR to logic programming

  • Conclusions


From fusion to hshr
From 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


Translation by example
Translation by example

  • We take agents in standard form

    • restrictions with inside parallel composition of sequential agents

  • We transform it into a linear agent + substitution


Translation by example1
Translation 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

    • σ transformed into amoeboids

      • Each amoeboid connects a group of names merged by σ


Translation by example2

x1x2x3.R(x4,x5)

Translation 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


Dynamics
Dynamics

  • 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


A sample production

x2

x3

x1x2x3.R(x4,x5)

y2

R(x1,x2)

u2

u1

A sample production

x2

x3

y2

u2

u1

out2x2y2


What is an amoeboid

in x

out y

P

Q

y

x

What 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

=


Implementing amoeboids in hshr
Implementing 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)


Correspondence theorem
Correspondence 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


Translation by example3

x1x2x3.R(x4,x5)

Translation by example

x

Q(x1,x2,x3)

z

y

out x2 y2

x1x2x3.S(x4,x5)

u

in z2 w1

w


Translation by example4
Translation by example

x

Q(x1,x2,x3)

z

y

R(x1,x2)

S(x1,x2)

u

w


Summary fusion calculus vs hshr
Summary : Fusion Calculus vs HSHR

FusionHoare SHR

Closed process Graph

Sequential process Hyperedge

Name Amoeboid

Prefix Action

Prefix execution Production

Reduction Transition


Roadmap3
Roadmap

  • Lot of background

    • Fusion Calculus

    • Synchronized Hyperedge Replacement

    • Logic programming

  • From Fusion Calculus to Hoare SHR

  • From Hoare SHR to logic programming

  • Conclusions


From hoare shr to logic programming
From 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)


Synchronized logic programming
Synchronized 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


Synchronized clauses
Synchronized 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


Hshr vs logic programming
HSHR 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


Correspondence theorem1
Correspondence 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


An example simpler than fusion

y

y

C

C

x

z

C

x

An example (simpler than Fusion…)

C(x,y)←C(x,z),C(z,y)

r <w>

y

y

C(r(x,w),r(y,w))←S(y,w)

C

S

(w)

x

x

r <w>


Dynamics1

S

S

S

C

C

C

x

C

S

C

C

C

C

C

C

Dynamics


Dynamics2

S

S

S

C

C

C

x

C

S

C

C

C

C

C

C

Dynamics


Summary hshr vs slp
Summary : HSHR vs SLP

Hoare SHR SLP

Graph Goal

Hyperedge Atom

Node Variable

Parallel comp. AND comp.

Action Function sym.

Production Clause

Transition Big-step


Roadmap4
Roadmap

  • Lot of background

    • Fusion Calculus

    • Synchronized Hyperedge Replacement

    • Logic programming

  • From Fusion Calculus to Hoare SHR

  • From Hoare SHR to logic programming

  • Conclusions


Conclusions
Conclusions

  • 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


Future work
Future work

  • Analyzing different name-handling mechanisms

    • In π 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


End of talk
End of talk

Thanks

Questions?


A textual notation for graphs

w

z

A textual notation for graphs

Ring Example

x,y,w,z C(x,w) | C(w,y) | C (y,z) | C(z,x)


Transitions as judgements
Transitions as judgements

  • Transitions

 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


Transitions as judgements1

1

2

n

0 G0  1 G1  …  n Gn

Transitions as judgements

  • Productions

x1,…,xn L(x1,…,xn)  x1,…,xn , , IG

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


Textual representation for productions

e <>

y

y

C

C

x

z

e <>

C

x

Textual representation for productions

(x,ε,<>)(y,ε,<>)

x, y

C(x,y)

x, y, z

.C(x,z) | C(z,y)

r <w>

y

y

C

S

(w)

x

x

r <w>

,

(x,r,<w>)(y,r,<w>)

x, y

x, y

S(w,y)

C(x,y)



Structural congruence
Structural 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)(P|Q) if x not free in P

  • rec X.P=P[rec X.P/X]


ad