- B. Steffen
Summer School CPS 2014 1
Bernhard Steffen, Falk Howar, Malte Isberner TU Dortmund /CMU
Active Automata Learning:
From DFA to Interface Programs and Beyond
- r
From Languages to Program Executions
- r (more technically)
Active Automata Learning: From DFA to Interface Programs and Beyond - - PowerPoint PPT Presentation
Active Automata Learning: From DFA to Interface Programs and Beyond or From Languages to Program Executions or (more technically) The Power of Counterexample Analysis Bernhard Steffen, Falk Howar, Malte Isberner TU Dortmund /CMU B. Steffen
Summer School CPS 2014 1
Summer School CPS 2014 2
learner connector try to use
inform about new service and device interrogate interrogate learn look for known models some service CONNECT environment
Summer School CPS 2014 3
Summer School CPS 2014 4
Summer School CPS 2014 5
5
Summer School CPS 2014 6
ISDN Network Switch Model-Generator Application-PCs Application- Server
LAN
Summer School CPS 2014 7
Rational Robot
Hipermon Hipermon Hipermon Hipermon
CSTA II/III HTTP HTTP Test Coordinator
PCM Application Server PCM Application PCs
Summer School CPS 2014 8
Rational Robot
Hipermon
Hipermon Hipermon Hipermon
CSTA II/III
HTTP HTTP
Test Coordinator
PCM Application Server PCM Application PCs
^ ^ ^
(small) learned models imposed
Summer School CPS 2014 9
l Extrapolation
l Regular
Extrapolation-Universe: Extended Finite Automata
l Moderated
The Extrapolation Process requires targeted interaction
Summer School CPS 2014 10
replace ” symbolic names
{ invokeID = 58391,
{eventSpecificInfo. ... .hookswitch {deviceId.dialingNumber = “500” hookswitchOnHook= TRUE, ... timestamp = “20001010095551” } }}}
{obsEvent deviceId = A1 switchOnHook,
... }}
Summer School CPS 2014 11
Sys_Info Sys_Info
upnOffHook
{
{deviceId = A1 hookswitchOnHook, ... }}
device A1 display(line 1, ...) LEDs: (1,on) (2,off) ... ...
Summer School CPS 2014 12
Distinguishing Futures
Summer School CPS 2014 13
1
b a 1 Not closed!
Summer School CPS 2014 14
1
b a 1 ba bb a,b b a Closed & Consistent
Summer School CPS 2014 15
1
b a 1 ba bb a,b b a
a 1 ab 1
Summer School CPS 2014 16
1
b ba bb a,b b a
a 1 ab 1 aa aba abb 1
Summer School CPS 2014 17
1
b ba bb a 1 ab 1 aa aba abb 1
Not consistent: row () = row (a), but row (a) row (aa) New Column: a
Summer School CPS 2014 18
a 1 1
b ba bb a 1 aa ab 1 aba abb 1 Closed & Consistent
Summer School CPS 2014 19
a 1 1
b ba bb a 1 aa ab 1 a a a,b b b aba abb 1
Finished!
Summer School CPS 2014 20
MQ-Oracle EQ-Oracle Σ={a,b} aba L? no ? no, bb L!
a a a a b b b b a a,b b
Summer School CPS 2014 21
L* infers Finite State Machine from queries:
Summer School CPS 2014 22
L* infers Finite State Machine from queries:
Summer School CPS 2014 23
All prefixes of counterexample …
Summer School CPS 2014 24
All prefixes of counterexample …
Essential suffix
Summer School CPS 2014 25
Rivest and Shapire: Analyze counterexample separately (not in the table) Only add one ‚essential‘ suffix (i.e., witness), as column label to the table Consequence:
BUT: Hypothesis Automata are no longer guaranteed to be minimal! (cf. Pnueli / Mahler‘s criticism)
Summer School CPS 2014 26
26
Summer School CPS 2014 27
finite capacity
Summer School CPS 2014 28
Summer School CPS 2014 29
push, pop stack.push(1) stack.pop() true, false, null, 1
L, L
Summer School CPS 2014 30
push, pop stack.push(1) stack.pop() true, false, null, 1 OK, NOK , null, 1
Summer School CPS 2014 31
push1, push2, pop stack.push(1) Stack.push(2) stack.pop() OK, NOK , null, 1, 2 true, false, null, 1, 2
Summer School CPS 2014 32
32
Summer School CPS 2014 33
LearnLib
Test-driver
<presence type=… /> <iq type= “result“ /> Available OK
Static alphabet abstraction
Summer School CPS 2014 34
LearnLib
Test-driver
<presence type=… /> <iq type= “result“ /> Available OK
Static alphabet abstraction
LearnLib
Test-driver
CEGAR teacher
<presence type=… /> <iq type= “result“ /> Available(type=avail…) OK Available Available(type=avail…)
Non-det. during EQ Test
Available‘ Available(type=unavail…)
Summer School CPS 2014 35
finite set of outputs, e.g.: odd / even
push, push’, pop stack.push(51); stack.push(2012); stack.pop() true, false, null, 51, 2012 OK, NOK , null, odd, even
Summer School CPS 2014 36
finite set of outputs, e.g.: odd / even
push, push’, pop stack.push(51); stack.push(2012); stack.pop() true, false, null, 51, 2012
OK, NOK , null, odd, even
Summer School CPS 2014 37
Bern hard Steff
c1 c2 c3 c4 c5 c6
γ(α(c1)) γ(α(c2)) γ(α(c3)) γ(α(c4)) γ(α(c5)) γ(α(c6))
Summer School CPS 2014 38
Bern hard Steff
c5 c6 c4
γ(α(c1)) γ(α(c2)) γ(α(c3)) γ(α(c4))
c5 c6
γ(α(c1)) γ(α(c2)) γ(α(c3)) γ(α(c4)) γ(α(c5)) γ(α(c6))
c1 c2 c3 c4 c5 c6
Summer School CPS 2014 39
c5 c6 c4
γ(α(c1)) γ(α(c2)) γ(α(c3)) γ(α(c4))
c5 c6
p d
state representation future
Summer School CPS 2014 40
γold(αold(c)) c γ(α(p)) x d = γ(α(p)) c d αold(c)
push‘ push
Summer School CPS 2014 41
Bernhard Steffen | VMCAI 2011 @ Austin, Texas
262 Concrete symbols, 256 x readFile(i).
‘read file(i)‘ aggregated according to the required authentication
to split readFile
Summer School CPS 2014 42
42
Summer School CPS 2014 43
43
Summer School CPS 2014 44
Summer School CPS 2014 45
Summer School CPS 2014 46
stack.push(51); stack.push(2012); stack.pop() true, false, null, 51, 2012 push(p)/OK, pop()/o(p), …
L, L
Query: push(p1)/OK push(p2)/OK pop()/p2
Summer School CPS 2014 47
Summer School CPS 2014 48
Summer School CPS 2014 50
50
Summer School CPS 2014 51
Summer School CPS 2014 52
Summer School CPS 2014 53
Summer School CPS 2014 54
Summer School CPS 2014 55
Summer School CPS 2014 56
Summer School CPS 2014 57
Summer School CPS 2014 58
Summer School CPS 2014 59
Summer School CPS 2014 60
Summer School CPS 2014 61
Summer School CPS 2014 62
Summer School CPS 2014 63
Summer School CPS 2014 64
Summer School CPS 2014 65
Summer School CPS 2014 66
“… is in language” “… leads to output …”
Summer School CPS 2014 67
Summer School CPS 2014 68
push(p), pop() stack.push(51) stack.push(2012) stack.pop() OK, NOK , null, p
Query: push(p1)push(p2)pop() / p2
true, false, null, 51, 2012
Summer School CPS 2014 69
Summer School CPS 2014 70
70
Summer School CPS 2014 71
Main Practical Challenges are
Question: How much can counter examples tell about a system? We have seen scenarios for (beside the classical locations),
We have seen how to get From DFA to Interface Programs or From Languages to Program Executions
71
Summer School CPS 2014 72
Hybrid Approaches and Case Studies Experimental Evaluation and Performance Analysis
72