Fresh-Register Automata Fresh-Register Automata Nikos Tzevelekos - - PowerPoint PPT Presentation
Fresh-Register Automata Fresh-Register Automata Nikos Tzevelekos - - PowerPoint PPT Presentation
Fresh-Register Automata Fresh-Register Automata Nikos Tzevelekos Oxford University Computing Laboratory What this talk is about What is a basic automata-theoretic model of computation with names and fresh-name generation? Names in
SLIDE 1
SLIDE 2
What this talk is about
What is a basic automata-theoretic model
- f computation with names and
fresh-name generation?
SLIDE 3
Names in computation
int mainClass NameTest { public void main(String[] args){ Object A = new Object(); Object B = new Object(); System.out.println(A.equals(B)); }}
SLIDE 4
Names in computation
new x=3 in f(); assert(x==3)
SLIDE 5
Names in computation
new x1,x2,x3,x4,x5 in fn x => case x of x1 => x2 | x2 => x3 | x3 => x4 | x4 => x5 | _ => x1
SLIDE 6
Motivation and related work
- Programming languages
- Operational, denotational models of higher-order
computation with names
- Nominal game semantics
What is a basic automata-theoretic model of computation with names and fresh-name generation?
SLIDE 7
Names in computation (II) P(a) = vb . ab . P(b)
SLIDE 8
Names in computation (II) P(a) = vb . ab . P(b)
P(a)
SLIDE 9
Names in computation (II) P(a) = vb . ab . P(b)
P(a) P(b)
ab
SLIDE 10
Names in computation (II) P(a) = vb . ab . P(b)
P(a) P(b)
ab
P(c)
bc
SLIDE 11
Names in computation (II) P(a) = vb . ab . P(b)
P(a) P(b)
ab
P(c) P(d)
cd bc
SLIDE 12
Names in computation (II) P(a) = vb . ab . P(b)
P(a) P(b)
ab
P(c) P(d)
cd bc ab '
SLIDE 13
Names in computation (II) P(a) = vb . ab . P(b)
P(a) P(b)
ab
P(c) P(d)
cd bc ab '
'
cd ' bc
SLIDE 14
Motivation and related work
- Programming languages
- Operational, denotational models of higher-order
computation with names
- Nominal game semantics
- Process calculi
- Semantics of mobility
- History-Dependent automata
What is a basic automata-theoretic model of computation with names and fresh-name generation?
SLIDE 15
Specifications
What is a basic automata-theoretic model of computation with names and fresh-name generation?
- Simple machines of “first principles”
- Infinite alphabet
- Freshness recognition
SLIDE 16
An appealing paradigm
SLIDE 17
An appealing paradigm
- Regular languages over infinite
alphabets
- Closure properties
- Finite-state + finite memory
- Local reasoning
SLIDE 18
Fresh-Register Automata
- FMA's satisfy the specifications:
- Simple machines of “first principles”
- Infinite alphabet
- but not:
- Freshness recognition
- Extend FMA's with transitions for fresh names.
SLIDE 19
Do names with registers
- Let be an infinite set of names
- Let be a finite set of constants
- Consider finite-state automata over:
SLIDE 20
Do names with registers
- Let be an infinite set of names
- Let be a finite set of constants
- Consider finite-state automata over:
- but operate in reality over:
SLIDE 21
Definition
- Recall:
- Define register assignments of size n by:
SLIDE 22
Definition
SLIDE 23
Configurations
SLIDE 24
Configurations
- A configuration is a triple:
state register assignment history
SLIDE 25
Configurations
- A configuration is a triple:
state register assignment history
SLIDE 26
Configurations
- A configuration is a triple:
- Transitions between config's: the 'true' semantics
SLIDE 27
Demo: known transitions
i q q'
SLIDE 28
Demo: known transitions
1
i a
i n
... ...
q q'
SLIDE 29
Demo: known transitions
1
i a a
i n
... ...
1
a
i n
... ...
q q'
SLIDE 30
Demo: locally fresh transitions
i• q ' q
SLIDE 31
Demo: locally fresh transitions
1
i
i n
... ...
- ...
q ' q
SLIDE 32
Demo: locally fresh transitions
1
i
i n
... ...
- ...
q ' q
a fresh
SLIDE 33
Demo: locally fresh transitions
1
i a
i n
... ...
1
a
i n
... ...
- ...
q ' q
a fresh
SLIDE 34
Demo: globally fresh transitions
i q ' q
SLIDE 35
Demo: globally fresh transitions
1
i
i n
... ... ...
q ' q
SLIDE 36
Demo: globally fresh transitions
1
i
i n
... ... ...
q ' q
a fresh
SLIDE 37
Demo: globally fresh transitions
1
i a
i n
... ...
1
a
i n
... ... ...
q ' q
a fresh
SLIDE 38
Demo: globally fresh transitions
1
i a
i n
... ...
1
a
i n
... ... ...
q ' q
a fresh
An FMA is (equivalent to) an FRA without
SLIDE 39
Demo: constant transitions
C q q'
1 n
... ...
1 n
... ...
SLIDE 40
FRA's as language acceptors
SLIDE 41
A name generator
1 q0
SLIDE 42
A name generator
1 q0 q0
#
SLIDE 43
A name generator
1 q0 a q q
#
1
a 1
SLIDE 44
A name generator
1 q0 a q q
#
1
a 1 a q0
2
a 2
SLIDE 45
A name generator
1 q0 a q q
#
1
a 1 a q0
2
a 2 a q0
3
a3
SLIDE 46
A name generator
1 q0 a q q
#
1
a 1 a q0
2
a 2 a q0
3
a3
L1
SLIDE 47
Another example
q q
1
q2 q3
1
1
2 •
2•
2
# #
SLIDE 48
Properties
- Closure under union and intersection.
- Non-closure under concatenation and Kleene star.
E.g. * is not FRA-recognisable.
L1 L1
SLIDE 49
Properties
- Closure under union and intersection.
- Non-closure under concatenation and Kleene star.
E.g. * is not FRA-recognisable. Nominal versions of concatenation and Kleene star?
L1 L1
SLIDE 50
Properties
- Closure under union and intersection.
- Non-closure under concatenation and Kleene star.
E.g. * is not FRA-recognisable.
- Non-closure under complementation.
E.g. * is FRA-recognisable.
L1 L1 L1 L1
SLIDE 51
Bisimulations
- Recall:
- Let be FRA's. Consider relations
SLIDE 52
Bisimulations
- Recall:
- Let be FRA's. Consider relations
q1 q2
R ^ ^
SLIDE 53
Bisimulations
- Recall:
- Let be FRA's. Consider relations
` q q
1 1
' q2
R ^ ^ ^
SLIDE 54
Bisimulations
- Recall:
- Let be FRA's. Consider relations
` q q
1 1
' ` q q
2 2
'
R ^ ^ ^ ^
SLIDE 55
Bisimulations
- Recall:
- Let be FRA's. Consider relations
` q q
1 1
' ` q q
2 2
'
R ^ ^ ^ ^ R
SLIDE 56
Bisimulations
- Recall:
- Let be FRA's. Consider relations
q1 ` q q
2 2
'
R ^ ^ ^
' '
SLIDE 57
Bisimulations
- Recall:
- Let be FRA's. Consider relations
` q q
1 1
' ` q q
2 2
'
R ^ ^ ^ ^ R
' ' ' '
SLIDE 58
Bisimulations
- Recall:
- Let be FRA's. Consider relations
` q q
1 1
' ` q q
2 2
'
R ^ ^ ^ ^ R
' ' ' '
- Lemma. Bisimilarity implies language equivalence.
SLIDE 59
Bisimulations formally
SLIDE 60
Bisimulations formally
SLIDE 61
Example
1 q0 1 q1 q0 1
- ~
SLIDE 62
Example
1 q0 1 q1 q0 1
- ~
SLIDE 63
Another example
~
q0
1 2•
q1 q2 q3
2 • 2 1 2•
q1 q2 q3
2 • 2 1
q0
1 2•
q1 q2 q3
2 • 1 ' ' '
SLIDE 64
Closed FRA's
- is closed if it has no blocking transitions:
SLIDE 65
Closed FRA's
- is closed if it has no blocking transitions:
- Lemma. For any FRA we can effectively construct
a closed FRA . Corollary . FRA-emptiness is decidable.
SLIDE 66
Symbolic bisimulations
- Symbolic reasoning can be used for bisimulations
too:
- We can define a notion of symbolic bisimulation:
- capturing (actual) bisimilarity.
SLIDE 67
Symbolic bisimulations
- Symbolic reasoning can be used for bisimulations
too:
- We can define a notion of symbolic bisimulation:
- capturing (actual) bisimilarity.
Corollary . FRA-bisimilarity is decidable.
SLIDE 68
Results on FRA's
- As language acceptors:
- Closure under union and intersection.
- Non-closure under concatenation and Kleene star.
- Non-closure under complementation.
- Emptiness is decidable.
- Containment, universality are undecidable.
- Bisimilarity is decidable by symbolic means.
SLIDE 69
Application: the pi-calculus
SLIDE 70
Application: the pi-calculus
SLIDE 71
Application: the pi-calculus
SLIDE 72
Application: the pi-calculus
SLIDE 73
Application: the pi-calculus P(a) = vb . ab . P(b)
11
P(1)
SLIDE 74
Application: the pi-calculus
- Algorithmic description which is:
- name-free
- finitely-branching
- Bisimilarity can be captured symbolically
- In the finitary case: decide bisimilarity
SLIDE 75
Interesting directions
- Algorithmic game semantics
– e.g. (finitary) Reduced ML
- Connections to HD-automata
- Nominal notions of concatenation, Kleene closure
- Variations:
– Labels – Stores – Stack