SlideShare ist ein Scribd-Unternehmen logo
1 von 120
Downloaden Sie, um offline zu lesen
MapReduce for Parallel
Trace Validation of LTL Properties
Benjamin Barre, Mathieu Klein, Maxime Soucy-Boivin,
      Pierre-Antoine Ollivier and Sylvain Hallé



             Université du Québec à Chicoutimi
                         CANADA

                              Fonds de recherche
                              Nature et
                    NSERC     technologies
                    CRSNG
System
System
Instrumentation




                  System
Instrumentation




                  System
Instrumentation
                           Trace




                  System
Instrumentation
                           Trace




                              Events


                  System
Instrumentation
                           Trace




                              Events


                  System
Trace
                                       validation
Instrumentation
                           Trace




                              Events


                  System
or<T>
Iterat
hasNext
                or<T>
          Iterat



 next
A call to next must be preceded
  by a call to hasNext




hasNext
                                   or<T>
                             Iterat



 next
A




B
No CartCreate request can occur
before a LoginResponse message

                  A




          B
Login
Three successive login attempts
should trigger an alarm




                Login
Receive order
Ready?
Receive order
Ready?   Yes
Receive order
Ready?    Yes
Receive order                No    Ship



                File order
A received order must eventually
                be shipped




                          Ready?    Yes
Receive order                       No             Ship



                       File order
Let   A       be a set of event symbols.
A trace m is a mapping from ℕ to
the set of events :




ℕ         0        1       2       3       4   ...

A         a        a      b        c       b
X   next
               ¬
              ∧ →            G   globally
  A      +      ∧¬→      +   F   eventually
                             U   until
Ground       Boolean         Temporal
 terms     connectives       operators


      = Linear Temporal Logic
Let   Φ       be the set of all possible LTL formulas.

The function ℒ : Φ → 2ℕ labels each state with
a set of LTL formulas




ℕ         0        1       2       3       4     ...

A         a        a       b       c       b
Let     Φ              be the set of all possible LTL formulas.

The function ℒ : Φ → 2ℕ labels each state with
a set of LTL formulas


ℒ                   b)
                                                ∨c
                                                                   b)
         b




                           b




                                                        b
                 (a→                                            (a→




                                                      a∧c
                                             b
        a∧




                          a∧




                                                     b∨
             G                                              G




ℕ            0                 1    2       3           4               ...

A           a               a       b       c          b

      Example: ℒ(a∧b) = {0,1,4,...}
i ∈ ℒ(a)        ⇔ m(i) = a
i   ∈   ℒ(¬φ) ⇔      i ∉ ℒ(φ)
i   ∈   ℒ(φ∧ψ) ⇔     i ∈ ℒ(φ) and i ∈ ℒ(ψ)
i   ∈   ℒ(φ∨ψ) ⇔     i ∈ ℒ(φ) or i ∈ ℒ(ψ)
i   ∈   ℒ(X φ) ⇔     i+1 ∈ ℒ(φ)
i   ∈   ℒ(G φ) ⇔     j ∈ ℒ(φ) for all j ≥ i
i   ∈   ℒ(F φ) ⇔     j ∈ ℒ(φ) for some j ≥ i
i   ∈   ℒ(φ U ψ) ⇔   j ∈ ℒ(ψ) for some j ≥ i and
                       k ∈ ℒ(φ) for all j ≥ k ≥ i
Theorem
   i ∈ ℒ(φ) exactly when the trace
   m(i), m(i+1), ... satisfies φ

                              σ
     φ




                          ψ
         0    1      2        3      4   ...
Theorem
   i ∈ ℒ(φ) exactly when the trace
   m(i), m(i+1), ... satisfies φ

                                σ
     φ




                            ψ
         0    1        2        3    4   ...



             Therefore...
                  0 ∈ ℒ(φ) ⇔ m ⊧ φ
A call to next must be followed by a call
to hasNext


No CartCreate request can occur
before a LoginResponse message


A received order must eventually
be shipped


Three successive login attempts should
trigger an alarm
A call to next must be followed by a call
to hasNext
   G (next → X hasNext)
No CartCreate request can occur
before a LoginResponse message


A received order must eventually
be shipped


Three successive login attempts should
trigger an alarm
A call to next must be followed by a call
to hasNext
   G (next → X hasNext)
No CartCreate request can occur
before a LoginResponse message
   ¬ CartCreate U hasNext
A received order must eventually
be shipped


Three successive login attempts should
trigger an alarm
A call to next must be followed by a call
to hasNext
   G (next → X hasNext)
No CartCreate request can occur
before a LoginResponse message
   ¬ CartCreate U hasNext
A received order must eventually
be shipped
   G (receive → F ship)
Three successive login attempts should
trigger an alarm
A call to next must be followed by a call
to hasNext
   G (next → X hasNext)
No CartCreate request can occur
before a LoginResponse message
   ¬ CartCreate U hasNext
A received order must eventually
be shipped
   G (receive → F ship)
Three successive login attempts should
trigger an alarm
   G ¬(fail ∧ (X (fail ∧ X fail)))
Iterat
      or<T>
              Java MOP
�   The trace must
    be read linearly




                                2

                                       3

                                               4

                                                          5
                       1
                       �   The algorithm works on a
          x1               single process / core / site
10,000,000
 1,000,000
  100,000
   10,000
    1,000
      100
       10
        1

        1970 1980 1990   2000 2010
10,000,000                Transistors (x1000)
 1,000,000
  100,000
   10,000
    1,000
      100
       10
        1

        1970 1980 1990   2000 2010
10,000,000                Transistors (x1000)
 1,000,000
  100,000
   10,000                          CPU Speed
    1,000                          (MHz)
      100
       10
        1

        1970 1980 1990   2000 2010
PageRank
           f ∞
Value
Key




        a 1

{     Tuple (baaah)
Data source
Data source




II
Input reader
Data source




II             a 2      z 7   . . .


Input reader
. . .   a 2
         a 2
Mapper

. . .   a 2
         a 2            M
Mapper

. . .   a 2
         a 2            M   w 6
                             a 2
                                   . . .
Mapper

. . .   a 2
         a 2            M        w 6
                                  a 2
                                        . . .




                        a                  b
3
                                a2
                                3
                            3   g
                        b
a    3           a3 2a        e 38 a
        a3   b 9             bb
             a   3




                                           b
a

    a
e 38 a                     b
                               . . .




                           .   .   .
                                       b
                                           db
        Shuffling
                          aa

                                                 b
a                    ab
    a   a       2
        a
                                           b 9
            3
b   9   b
a          a
    2 2a   3   a
b   9   b
a          a
    2 2a   3   a

                   Rb

    Ra
       Reducer
b   9   b
a          a
    2 2a   3   a

                    Rb                 e 7     i 0




    Ra             z 8           x 2         . . .


       Reducer
a b a a b a
a b a a b a



a a




a b




b a
a b a a b a



a a   I


a b




b a
a b a a b a


             〈a,1〉
a a   I
             〈a,1〉



a b




b a
a b a a b a


             〈a,1〉
a a   I
             〈a,1〉


             〈a,1〉
a b   I
             〈b,1〉


             〈b,1〉
b a   I
             〈a,1〉
a b a a b a


             〈a,1〉
a a   I
             〈a,1〉


             〈a,1〉
a b   I
             〈b,1〉


             〈b,1〉
b a   I
             〈a,1〉
a b a a b a


             〈a,1〉
a a   I
             〈a,1〉


             〈a,1〉
a b   I
             〈b,1〉


             〈b,1〉
b a   I
             〈a,1〉
a b a a b a


             〈a,1〉
a a   I
             〈a,1〉      Ra
             〈a,1〉
a b   I
             〈b,1〉


             〈b,1〉
b a   I
             〈a,1〉
a b a a b a


             〈a,1〉
a a   I
             〈a,1〉      Ra   〈a,4〉


             〈a,1〉
a b   I
             〈b,1〉


             〈b,1〉
b a   I
             〈a,1〉
a b a a b a


             〈a,1〉
a a   I
             〈a,1〉      Ra   〈a,4〉


             〈a,1〉
a b   I
             〈b,1〉


             〈b,1〉      Rb   〈b,2〉

b a   I
             〈a,1〉
a b a a b a


             〈a,1〉
a a   I
             〈a,1〉      Ra   〈a,4〉


             〈a,1〉
a b   I
             〈b,1〉


             〈b,1〉      Rb   〈b,2〉

b a   I
             〈a,1〉
Superformula        Superformula



Formula   G                     ∧

     Subformula    Subformula       Subformula
4
                                 G
Height
         3                       →


         2                   ∧

                     3

         1       2
                                 ¬   F
             1
         0
         0               a       c   b
4
                                  G
Height
          3                       →


          2                   ∧

                      3

          1       2
                                  ¬   F
              1
          0
          0               a       c   b


¬c has height 1
G ((a ∧¬c) → F b) has height 4
i ∈ ℒ(a)        ⇔ m(i) = a
i   ∈   ℒ(¬φ) ⇔      i ∉ ℒ(φ)
i   ∈   ℒ(φ∧ψ) ⇔     i ∈ ℒ(φ) and i ∈ ℒ(ψ)
i   ∈   ℒ(φ∨ψ) ⇔     i ∈ ℒ(φ) or i ∈ ℒ(ψ)
i   ∈   ℒ(X φ) ⇔     i+1 ∈ ℒ(φ)
i   ∈   ℒ(G φ) ⇔     j ∈ ℒ(φ) for all j ≥ i
i   ∈   ℒ(F φ) ⇔     j ∈ ℒ(φ) for some j ≥ i
i   ∈   ℒ(φ U ψ) ⇔   j ∈ ℒ(ψ) for some j ≥ i and
                       k ∈ ℒ(φ) for all j ≥ k ≥ i
i ∈ ℒ(a)        ⇔ m(i) = a
         i   ∈   ℒ(¬φ) ⇔      i ∉ ℒ(φ)
         i   ∈   ℒ(φ∧ψ) ⇔     i ∈ ℒ(φ) and i ∈ ℒ(ψ)
         i   ∈   ℒ(φ∨ψ) ⇔     i ∈ ℒ(φ) or i ∈ ℒ(ψ)
         i   ∈   ℒ(X φ) ⇔     i+1 ∈ ℒ(φ)
         i   ∈   ℒ(G φ) ⇔     j ∈ ℒ(φ) for all j ≥ i
         i   ∈   ℒ(F φ) ⇔     j ∈ ℒ(φ) for some j ≥ i
         i   ∈   ℒ(φ U ψ) ⇔   j ∈ ℒ(ψ) for some j ≥ i and
                                k ∈ ℒ(φ) for all j ≥ k ≥ i


The labelling of a formula depends only
on labellings of formulas of strictly lower height
i ∈ ℒ(a)        ⇔ m(i) = a
         i   ∈   ℒ(¬φ) ⇔      i ∉ ℒ(φ)
         i   ∈   ℒ(φ∧ψ) ⇔     i ∈ ℒ(φ) and i ∈ ℒ(ψ)
         i   ∈   ℒ(φ∨ψ) ⇔     i ∈ ℒ(φ) or i ∈ ℒ(ψ)
         i   ∈   ℒ(X φ) ⇔     i+1 ∈ ℒ(φ)
         i   ∈   ℒ(G φ) ⇔     j ∈ ℒ(φ) for all j ≥ i
         i   ∈   ℒ(F φ) ⇔     j ∈ ℒ(φ) for some j ≥ i
         i   ∈   ℒ(φ U ψ) ⇔   j ∈ ℒ(ψ) for some j ≥ i and
                                k ∈ ℒ(φ) for all j ≥ k ≥ i


The labelling of a formula depends only
on labellings of formulas of strictly lower height
⇒ All labellings of formulas of same height are
  independent
i ∈ ℒ(a)        ⇔ m(i) = a
         i   ∈   ℒ(¬φ) ⇔      i ∉ ℒ(φ)
         i   ∈   ℒ(φ∧ψ) ⇔     i ∈ ℒ(φ) and i ∈ ℒ(ψ)
         i   ∈   ℒ(φ∨ψ) ⇔     i ∈ ℒ(φ) or i ∈ ℒ(ψ)
         i   ∈   ℒ(X φ) ⇔     i+1 ∈ ℒ(φ)
         i   ∈   ℒ(G φ) ⇔     j ∈ ℒ(φ) for all j ≥ i
         i   ∈   ℒ(F φ) ⇔     j ∈ ℒ(φ) for some j ≥ i
         i   ∈   ℒ(φ U ψ) ⇔   j ∈ ℒ(ψ) for some j ≥ i and
                                k ∈ ℒ(φ) for all j ≥ k ≥ i


The labelling of a formula depends only
on labellings of formulas of strictly lower height
⇒ All labellings of formulas of same height are
  independent
          ⇒ They can be computed in parallel
M
M
    Input: tuples 〈φ,(n,i)〉
M
    Input: tuples 〈φ,(n,i)〉
     “ n ∈ ℒ(φ), and the last cycle has evaluated
     labellings for formulas of height i ”
“Lift” ℒ(φ) to superformulas of φ
M
    Input: tuples 〈φ,(n,i)〉
     “ n ∈ ℒ(φ), and the last cycle has evaluated
     labellings for formulas of height i ”
Output: tuples 〈ψ,(φ,n,i)〉




     “Lift” ℒ(φ) to superformulas of φ
M
    Input: tuples 〈φ,(n,i)〉
     “ n ∈ ℒ(φ), and the last cycle has evaluated
     labellings for formulas of height i ”
Output: tuples 〈ψ,(φ,n,i)〉
     “ n ∈ ℒ(φ), the last cycle has evaluated
     labellings for formulas of height i, and
     φ is a subformula of ψ ”



     “Lift” ℒ(φ) to superformulas of φ
M
    Input: tuples 〈φ,(n,i)〉
     “ n ∈ ℒ(φ), and the last cycle has evaluated
     labellings for formulas of height i ”
Rψ
Input:
〈ψ,(φ,n,i)〉


              Rψ
Input:
〈ψ,(φ,n,i)〉


                               Rψ
“ n ∈ ℒ(φ), the last cycle
has evaluated labellings for
formulas of height i, and
φ is a subformula of ψ ”
Input:                   Compute ℒ(ψ)
〈ψ,(φ,n,i)〉


                               Rψ
“ n ∈ ℒ(φ), the last cycle
has evaluated labellings for
formulas of height i, and
φ is a subformula of ψ ”
Input:                   Compute ℒ(ψ)       Output:
〈ψ,(φ,n,i)〉                             〈ψ,(n,i+1)〉


                               Rψ
“ n ∈ ℒ(φ), the last cycle
has evaluated labellings for
formulas of height i, and
φ is a subformula of ψ ”
Input:                   Compute ℒ(ψ)              Output:
〈ψ,(φ,n,i)〉                                    〈ψ,(n,i+1)〉


                               Rψ
“ n ∈ ℒ(φ), the last cycle          “ n ∈ ℒ(ψ), and the last
has evaluated labellings for        cycle has evaluated
formulas of height i, and           labellings for formulas of
φ is a subformula of ψ ”            height i+1
I
Input: events (a,n)




      I
Input: events (a,n)




                   Output: tuples 〈ψ,(a,n,0)〉

      I                                                 . . .


             “ n ∈ ℒ(a), the last cycle has evaluated
             labellings for formulas of height 0, and
             a is a subformula of ψ ”
W
Input: 〈ψ,(n,i)〉

                   W
Output:

Input: 〈ψ,(n,i)〉       True if 〈ψ,(0,i)〉
                       is read
                   W   False otherwise
3
         . . .

                             R
                                 W
                     R




                                     2
                             R
                     R
                 R




                                     1
    I   . . .


                             R
I                        R
                 R
3
                       . . .

                                           R
                                               W
                                   R




                                                   2
                                           R
                                   R
                               R




                                                   1
            I         . . .


                                           R
        I                              R
                               R




InputReaders generate the first tuples from
the trace chunks
3
                      . . .

                                          R
                                              W
                                  R




                                                   2
                                          R
                                  R
                              R




                                                   1
            I        . . .


                                          R
        I                             R
                              R




The tuples are shuffled to reducers that compute the
labelling ℒ for formulas of height 1
3
                      . . .

                                          R
                                              W
                                  R




                                                    2
                                          R
                                  R
                              R




                                                    1
            I        . . .


                                          R
        I                             R
                              R




Mappers copy the labellings into tuples marked by
superformulas of height 2
3
                      . . .

                                          R
                                              W
                                  R




                                                      2
                                          R
                                  R
                              R




                                                      1
            I        . . .


                                          R
        I                             R
                              R




Each reducer computes the labelling of a formula of
height 2 from the labelling of its subformulas
3
                      . . .

                                          R
                                              W
                                  R




                                                    2
                                          R
                                  R
                              R




                                                    1
            I        . . .


                                          R
        I                             R
                              R




Mappers copy the labellings into tuples marked by
superformulas of height 3
3
                      . . .

                                          R
                                              W
                                  R




                                                      2
                                          R
                                  R
                              R




                                                      1
            I        . . .


                                          R
        I                             R
                              R




Each reducer computes the labelling of a formula of
height 3 from the labelling of its subformulas
3
                       . . .

                                           R
                                                W
                                   R




                                                      2
                                           R
                                   R
                               R




                                                      1
             I        . . .


                                           R
         I                             R
                               R




An output writer collects the resulting tuples, and
outputs “true” if it encounters a tuple for state 0
a a b c b a
              ? G (¬a → F b)
              ⊨
a a b c b a
                            ? G (¬a → F b)
                            ⊨



(a,0) (b,2)




(a,1) (c,3)




(a,5) (b,4)



                                              0
                                             HEIGHT
a a b c b a
                            ? G (¬a → F b)
                            ⊨



(a,0) (b,2)
                 I


(a,1) (c,3)
                 I


(a,5) (b,4)
                 I

                                              0
                                             HEIGHT
a a b c b a
                             ? G (¬a → F b)
                             ⊨


                        〈¬a,(a,0)〉
(a,0) (b,2)
                 I
                        〈F b,(b,2)〉



(a,1) (c,3)
                 I      〈¬a,(a,1)〉



                        〈F b,(b,4)〉
(a,5) (b,4)
                 I

                                               0
                                               1
                        〈¬a,(a,5)〉            HEIGHT
a a b c b a
                             ? G (¬a → F b)
                             ⊨


                        〈¬a,(a,0)〉
(a,0) (b,2)
                 I
                        〈F b,(b,2)〉    R
                                       ¬a



(a,1) (c,3)
                 I      〈¬a,(a,1)〉


                                        R
                        〈F b,(b,4)〉    Fb
(a,5) (b,4)
                 I

                                               0
                                               1
                        〈¬a,(a,5)〉            HEIGHT
a a b c b a
                             ? G (¬a → F b)
                             ⊨


                        〈¬a,(a,0)〉
                                              〈¬a,2〉
(a,0) (b,2)
                 I                            〈¬a,3〉
                        〈F b,(b,2)〉    R
                                       ¬a
                                              〈¬a,4〉

(a,1) (c,3)
                 I      〈¬a,(a,1)〉            〈F b,0〉
                                              〈F b,1〉
                                        R     〈F b,2〉
                        〈F b,(b,4)〉    Fb
                                              〈F b,3〉
(a,5) (b,4)
                 I

                                                 0
                                                 1
                        〈¬a,(a,5)〉              b,4〉
                                              〈FHEIGHT
a a b c b a
                        ? G (¬a → F b)
                        ⊨


〈¬a,2〉
〈¬a,3〉       M
〈¬a,4〉


〈F b,0〉
〈F b,1〉      M
〈F b,2〉


〈F b,3〉
〈F b,4〉      M
                                          2
                                         HEIGHT
a a b c b a
                         ? G (¬a → F b)
                         ⊨


〈¬a,2〉              〈¬a → F b,(¬a,2)〉
〈¬a,3〉       M      〈¬a → F b,(¬a,3)〉
〈¬a,4〉              〈¬a → F b,(¬a,4)〉


〈F b,0〉             〈¬a → F b,(F b,0)〉
〈F b,1〉             〈¬a → F b,(F b,1)〉
             M      〈¬a → F b,(F b,2)〉
〈F b,2〉

                    〈¬a → F b,(F b,3)〉
〈F b,3〉
〈F b,4〉      M      〈¬a → F b,(F b,4)〉

                                           2
                                          HEIGHT
a a b c b a
                         ? G (¬a → F b)
                         ⊨


〈¬a,2〉              〈¬a → F b,(¬a,2)〉
〈¬a,3〉       M      〈¬a → F b,(¬a,3)〉
〈¬a,4〉              〈¬a → F b,(¬a,4)〉


〈F b,0〉             〈¬a → F b,(F b,0)〉
〈F b,1〉             〈¬a → F b,(F b,1)〉     R
             M      〈¬a → F b,(F b,2)〉
                                          ¬a →
                                           Fb
〈F b,2〉

                    〈¬a → F b,(F b,3)〉
〈F b,3〉
〈F b,4〉      M      〈¬a → F b,(F b,4)〉

                                                  2
                                                 HEIGHT
a a b c b a
                         ? G (¬a → F b)
                         ⊨
                                         〈¬a →   F b,0〉
                                         〈¬a →   F b,1〉
                                         〈¬a →   F b,2〉
〈¬a,2〉              〈¬a → F b,(¬a,2)〉    〈¬a →   F b,3〉
〈¬a,3〉       M      〈¬a → F b,(¬a,3)〉    〈¬a →   F b,4〉
〈¬a,4〉              〈¬a → F b,(¬a,4)〉    〈¬a →   F b,5〉

〈F b,0〉             〈¬a → F b,(F b,0)〉
〈F b,1〉             〈¬a → F b,(F b,1)〉       R
             M      〈¬a → F b,(F b,2)〉
                                            ¬a →
                                             Fb
〈F b,2〉

                    〈¬a → F b,(F b,3)〉
〈F b,3〉
〈F b,4〉      M      〈¬a → F b,(F b,4)〉

                                                     2
                                                    HEIGHT
a a b c b a
                             ? G (¬a → F b)
                             ⊨



〈¬a → F b,0〉
〈¬a → F b,1〉      M


〈¬a → F b,2〉
〈¬a → F b,3〉      M


〈¬a → F b,4〉
〈¬a → F b,5〉      M
                                               3
                                              HEIGHT
a a b c b a
                               ? G (¬a → F b)
                               ⊨


                         〈G (¬a → F b),
〈¬a → F b,0〉              (¬a → F b,0)〉
〈¬a → F b,1〉      M      〈G (¬a → F b),
                          (¬a → F b,1)〉

                         〈G (¬a → F b),
〈¬a → F b,2〉              (¬a → F b,2)〉
〈¬a → F b,3〉      M      〈G (¬a → F b),
                          (¬a → F b,3)〉

                         〈G (¬a → F b),
〈¬a → F b,4〉              (¬a → F b,4)〉
〈¬a → F b,5〉      M      〈G (¬a → F b),

                                                 3
                                                HEIGHT
                          (¬a → F b,5)〉
a a b c b a
                               ? G (¬a → F b)
                               ⊨


                         〈G (¬a → F b),
〈¬a → F b,0〉              (¬a → F b,0)〉
〈¬a → F b,1〉      M      〈G (¬a → F b),
                          (¬a → F b,1)〉

                         〈G (¬a → F b),
〈¬a → F b,2〉              (¬a → F b,2)〉
                                                  R
〈¬a → F b,3〉      M      〈G (¬a → F b),         G (¬a
                                                → F b)
                          (¬a → F b,3)〉

                         〈G (¬a → F b),
〈¬a → F b,4〉              (¬a → F b,4)〉
〈¬a → F b,5〉      M      〈G (¬a → F b),

                                                          3
                                                         HEIGHT
                          (¬a → F b,5)〉
a a b c b a
                               ? G (¬a → F b)
                               ⊨

                                           〈G (¬a →      F b),0〉
                                           〈G (¬a →      F b),1〉
                         〈G (¬a → F b),    〈G (¬a →      F b),2〉
〈¬a → F b,0〉              (¬a → F b,0)〉    〈G (¬a →      F b),3〉
〈¬a → F b,1〉      M      〈G (¬a → F b),    〈G (¬a →      F b),4〉
                          (¬a → F b,1)〉    〈G (¬a →      F b),5〉


                         〈G (¬a → F b),
〈¬a → F b,2〉              (¬a → F b,2)〉
                                                  R
〈¬a → F b,3〉      M      〈G (¬a → F b),         G (¬a
                                                → F b)
                          (¬a → F b,3)〉

                         〈G (¬a → F b),
〈¬a → F b,4〉              (¬a → F b,4)〉
〈¬a → F b,5〉      M      〈G (¬a → F b),

                                                             3
                                                            HEIGHT
                          (¬a → F b,5)〉
a a b c b a
                     ? G (¬a → F b)
                     ⊨




〈G (¬a →   F b),0〉
〈G (¬a →   F b),1〉

                     W
〈G (¬a →   F b),2〉
〈G (¬a →   F b),3〉
〈G (¬a →   F b),4〉
〈G (¬a →   F b),5〉




                                       4
                                      HEIGHT
a a b c b a
                     ? G (¬a → F b)
                     ⊨




〈G (¬a →   F b),0〉
〈G (¬a →   F b),1〉

                     W
〈G (¬a →   F b),2〉
〈G (¬a →   F b),3〉             True
〈G (¬a →   F b),4〉
〈G (¬a →   F b),5〉




                                       4
                                      HEIGHT
The trace can be stored in
�   separate (and non-contiguous)
    chunks
                                               (a,0) (b,2)
                                        (a,1) (c,3)
                                                    (a,5) (b,4)




        M           R       Mappers and reducers of a
M
    M
            R
                R
                        �    given height can operate
                                            in parallel
Tests on 500 randomly-generated traces

        From 1 to 100,000 events

        Each event contains 10 parameters
        named p₀ to p₉ with 10 possible values
Validation of 4 LTL formulas:

    1   G p₀ ≠ 0

    2   G (p₀ = 0 → X p₁ = 0)

    3   ∀x ∈ [0,9] : G (p₀ = x → X p₁ = x)

    4   ∃m ∈ [0,9] : ∀x ∈ [0,9] :
           G (p m = x → X X p m ≠ x)
Property     1      2     3      4
         Tuples     55 k 120 k 600 k 5 M
    Time/event     19 μs 23 μs 75 μs 985 μs
Sequential ratio   100% 92% 92%       3%
  Inferred time    19 μs 21 μs 14 μs 30 μs
Questions?

             M

Weitere ähnliche Inhalte

Was ist angesagt?

Arithmetic by aniket bhute
Arithmetic by aniket bhuteArithmetic by aniket bhute
Arithmetic by aniket bhuteAniket Bhute
 
To designing counters using verilog code
To designing counters using verilog codeTo designing counters using verilog code
To designing counters using verilog codeBharti Airtel Ltd.
 
Lab 4 Three-Bit Binary Adder
Lab 4 Three-Bit Binary AdderLab 4 Three-Bit Binary Adder
Lab 4 Three-Bit Binary AdderKatrina Little
 
Quantifying Information Leaks via Model Counting Modulo Theories
Quantifying Information Leaks via Model Counting Modulo TheoriesQuantifying Information Leaks via Model Counting Modulo Theories
Quantifying Information Leaks via Model Counting Modulo TheoriesQuoc-Sang Phan
 
A blast from the past
A blast from the pastA blast from the past
A blast from the pastJerome Eteve
 
Assignment solution-week7
Assignment solution-week7Assignment solution-week7
Assignment solution-week7PUSHPALATHAV1
 
Hello, Type Systems! - Introduction to Featherweight Java
Hello, Type Systems! - Introduction to Featherweight JavaHello, Type Systems! - Introduction to Featherweight Java
Hello, Type Systems! - Introduction to Featherweight Javay_taka_23
 
Part II: 2-Dimensional Array file name: lab1part2.cpp (10 points) Write a C++...
Part II: 2-Dimensional Array file name: lab1part2.cpp (10 points) Write a C++...Part II: 2-Dimensional Array file name: lab1part2.cpp (10 points) Write a C++...
Part II: 2-Dimensional Array file name: lab1part2.cpp (10 points) Write a C++...hwbloom38
 
Verilog full adder in dataflow & gate level modelling style.
Verilog full adder in dataflow  & gate level modelling style.Verilog full adder in dataflow  & gate level modelling style.
Verilog full adder in dataflow & gate level modelling style.Omkar Rane
 
MATLAB CODE OF Shifting sequence
MATLAB  CODE  OF Shifting sequenceMATLAB  CODE  OF Shifting sequence
MATLAB CODE OF Shifting sequenceRakesh kumar jha
 
Lec12 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Ad...
Lec12 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Ad...Lec12 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Ad...
Lec12 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Ad...Hsien-Hsin Sean Lee, Ph.D.
 
Lab 9 D-Flip Flops: Shift Register and Sequence Counter
Lab 9 D-Flip Flops: Shift Register and Sequence CounterLab 9 D-Flip Flops: Shift Register and Sequence Counter
Lab 9 D-Flip Flops: Shift Register and Sequence CounterKatrina Little
 
matlab code of shifting and folding of two sequences
matlab code of shifting and folding of two sequencesmatlab code of shifting and folding of two sequences
matlab code of shifting and folding of two sequencesRakesh kumar jha
 

Was ist angesagt? (20)

Arithmetic by aniket bhute
Arithmetic by aniket bhuteArithmetic by aniket bhute
Arithmetic by aniket bhute
 
To designing counters using verilog code
To designing counters using verilog codeTo designing counters using verilog code
To designing counters using verilog code
 
Lab 4 Three-Bit Binary Adder
Lab 4 Three-Bit Binary AdderLab 4 Three-Bit Binary Adder
Lab 4 Three-Bit Binary Adder
 
Quantifying Information Leaks via Model Counting Modulo Theories
Quantifying Information Leaks via Model Counting Modulo TheoriesQuantifying Information Leaks via Model Counting Modulo Theories
Quantifying Information Leaks via Model Counting Modulo Theories
 
Technical questions
Technical questionsTechnical questions
Technical questions
 
Circular Queue
Circular QueueCircular Queue
Circular Queue
 
A blast from the past
A blast from the pastA blast from the past
A blast from the past
 
Loop Statements [5] M
Loop Statements [5] MLoop Statements [5] M
Loop Statements [5] M
 
Assignment solution-week7
Assignment solution-week7Assignment solution-week7
Assignment solution-week7
 
Hello, Type Systems! - Introduction to Featherweight Java
Hello, Type Systems! - Introduction to Featherweight JavaHello, Type Systems! - Introduction to Featherweight Java
Hello, Type Systems! - Introduction to Featherweight Java
 
week-11x
week-11xweek-11x
week-11x
 
Part II: 2-Dimensional Array file name: lab1part2.cpp (10 points) Write a C++...
Part II: 2-Dimensional Array file name: lab1part2.cpp (10 points) Write a C++...Part II: 2-Dimensional Array file name: lab1part2.cpp (10 points) Write a C++...
Part II: 2-Dimensional Array file name: lab1part2.cpp (10 points) Write a C++...
 
Lec10
Lec10Lec10
Lec10
 
Verilog full adder in dataflow & gate level modelling style.
Verilog full adder in dataflow  & gate level modelling style.Verilog full adder in dataflow  & gate level modelling style.
Verilog full adder in dataflow & gate level modelling style.
 
MATLAB CODE OF Shifting sequence
MATLAB  CODE  OF Shifting sequenceMATLAB  CODE  OF Shifting sequence
MATLAB CODE OF Shifting sequence
 
Lec12 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Ad...
Lec12 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Ad...Lec12 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Ad...
Lec12 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Ad...
 
week-18x
week-18xweek-18x
week-18x
 
C MCQ
C MCQC MCQ
C MCQ
 
Lab 9 D-Flip Flops: Shift Register and Sequence Counter
Lab 9 D-Flip Flops: Shift Register and Sequence CounterLab 9 D-Flip Flops: Shift Register and Sequence Counter
Lab 9 D-Flip Flops: Shift Register and Sequence Counter
 
matlab code of shifting and folding of two sequences
matlab code of shifting and folding of two sequencesmatlab code of shifting and folding of two sequences
matlab code of shifting and folding of two sequences
 

Andere mochten auch

Hadoop 2.0 Architecture | HDFS Federation | NameNode High Availability |
Hadoop 2.0 Architecture | HDFS Federation | NameNode High Availability | Hadoop 2.0 Architecture | HDFS Federation | NameNode High Availability |
Hadoop 2.0 Architecture | HDFS Federation | NameNode High Availability | Edureka!
 
Chasing Bugs with the BeepBeep Event Stream Processor
Chasing Bugs with the BeepBeep Event Stream ProcessorChasing Bugs with the BeepBeep Event Stream Processor
Chasing Bugs with the BeepBeep Event Stream ProcessorSylvain Hallé
 
Distributed Firewall Anomaly Detection Through LTL Model Checking
Distributed Firewall Anomaly Detection Through LTL Model CheckingDistributed Firewall Anomaly Detection Through LTL Model Checking
Distributed Firewall Anomaly Detection Through LTL Model CheckingSylvain Hallé
 
A Runtime Monitoring Framework for Event Streams with Non-Primitive Arguments
A Runtime Monitoring Framework for Event Streams with Non-Primitive ArgumentsA Runtime Monitoring Framework for Event Streams with Non-Primitive Arguments
A Runtime Monitoring Framework for Event Streams with Non-Primitive ArgumentsSylvain Hallé
 
Graph Methods for Generating Test Cases with Universal and Existential Constr...
Graph Methods for Generating Test Cases with Universal and Existential Constr...Graph Methods for Generating Test Cases with Universal and Existential Constr...
Graph Methods for Generating Test Cases with Universal and Existential Constr...Sylvain Hallé
 
Activity Recognition Through Complex Event Processing: First Findings
Activity Recognition Through Complex Event Processing: First Findings Activity Recognition Through Complex Event Processing: First Findings
Activity Recognition Through Complex Event Processing: First Findings Sylvain Hallé
 
Runtime monitoring de propriétés temporelles par (streaming) XML
Runtime monitoring de propriétés temporelles par (streaming) XMLRuntime monitoring de propriétés temporelles par (streaming) XML
Runtime monitoring de propriétés temporelles par (streaming) XMLSylvain Hallé
 
A Case for "Piggyback" Runtime Monitoring
A Case for "Piggyback" Runtime MonitoringA Case for "Piggyback" Runtime Monitoring
A Case for "Piggyback" Runtime MonitoringSylvain Hallé
 
Solving Equations on Words with Morphisms and Antimorphisms
Solving Equations on Words with Morphisms and AntimorphismsSolving Equations on Words with Morphisms and Antimorphisms
Solving Equations on Words with Morphisms and AntimorphismsSylvain Hallé
 
Decentralized Enforcement of Artifact Lifecycles
Decentralized Enforcement of Artifact LifecyclesDecentralized Enforcement of Artifact Lifecycles
Decentralized Enforcement of Artifact LifecyclesSylvain Hallé
 
BeepBeep 3: A declarative event stream query engine (EDOC 2015)
BeepBeep 3: A declarative event stream query engine (EDOC 2015)BeepBeep 3: A declarative event stream query engine (EDOC 2015)
BeepBeep 3: A declarative event stream query engine (EDOC 2015)Sylvain Hallé
 
Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"
Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"
Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"Sylvain Hallé
 
When RV Meets CEP (RV 2016 Tutorial)
When RV Meets CEP (RV 2016 Tutorial)When RV Meets CEP (RV 2016 Tutorial)
When RV Meets CEP (RV 2016 Tutorial)Sylvain Hallé
 
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)Sylvain Hallé
 
À la chasse aux bugs avec la Laboratoire d'informatique formelle
À la chasse aux bugs avec la Laboratoire d'informatique formelleÀ la chasse aux bugs avec la Laboratoire d'informatique formelle
À la chasse aux bugs avec la Laboratoire d'informatique formelleSylvain Hallé
 
Qui gardera les gardiens? (Présentation FUQAC 2012)
Qui gardera les gardiens? (Présentation FUQAC 2012)Qui gardera les gardiens? (Présentation FUQAC 2012)
Qui gardera les gardiens? (Présentation FUQAC 2012)Sylvain Hallé
 

Andere mochten auch (16)

Hadoop 2.0 Architecture | HDFS Federation | NameNode High Availability |
Hadoop 2.0 Architecture | HDFS Federation | NameNode High Availability | Hadoop 2.0 Architecture | HDFS Federation | NameNode High Availability |
Hadoop 2.0 Architecture | HDFS Federation | NameNode High Availability |
 
Chasing Bugs with the BeepBeep Event Stream Processor
Chasing Bugs with the BeepBeep Event Stream ProcessorChasing Bugs with the BeepBeep Event Stream Processor
Chasing Bugs with the BeepBeep Event Stream Processor
 
Distributed Firewall Anomaly Detection Through LTL Model Checking
Distributed Firewall Anomaly Detection Through LTL Model CheckingDistributed Firewall Anomaly Detection Through LTL Model Checking
Distributed Firewall Anomaly Detection Through LTL Model Checking
 
A Runtime Monitoring Framework for Event Streams with Non-Primitive Arguments
A Runtime Monitoring Framework for Event Streams with Non-Primitive ArgumentsA Runtime Monitoring Framework for Event Streams with Non-Primitive Arguments
A Runtime Monitoring Framework for Event Streams with Non-Primitive Arguments
 
Graph Methods for Generating Test Cases with Universal and Existential Constr...
Graph Methods for Generating Test Cases with Universal and Existential Constr...Graph Methods for Generating Test Cases with Universal and Existential Constr...
Graph Methods for Generating Test Cases with Universal and Existential Constr...
 
Activity Recognition Through Complex Event Processing: First Findings
Activity Recognition Through Complex Event Processing: First Findings Activity Recognition Through Complex Event Processing: First Findings
Activity Recognition Through Complex Event Processing: First Findings
 
Runtime monitoring de propriétés temporelles par (streaming) XML
Runtime monitoring de propriétés temporelles par (streaming) XMLRuntime monitoring de propriétés temporelles par (streaming) XML
Runtime monitoring de propriétés temporelles par (streaming) XML
 
A Case for "Piggyback" Runtime Monitoring
A Case for "Piggyback" Runtime MonitoringA Case for "Piggyback" Runtime Monitoring
A Case for "Piggyback" Runtime Monitoring
 
Solving Equations on Words with Morphisms and Antimorphisms
Solving Equations on Words with Morphisms and AntimorphismsSolving Equations on Words with Morphisms and Antimorphisms
Solving Equations on Words with Morphisms and Antimorphisms
 
Decentralized Enforcement of Artifact Lifecycles
Decentralized Enforcement of Artifact LifecyclesDecentralized Enforcement of Artifact Lifecycles
Decentralized Enforcement of Artifact Lifecycles
 
BeepBeep 3: A declarative event stream query engine (EDOC 2015)
BeepBeep 3: A declarative event stream query engine (EDOC 2015)BeepBeep 3: A declarative event stream query engine (EDOC 2015)
BeepBeep 3: A declarative event stream query engine (EDOC 2015)
 
Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"
Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"
Causality in Message-Based Interface Contracts: A Temporal Logic "Whodunit"
 
When RV Meets CEP (RV 2016 Tutorial)
When RV Meets CEP (RV 2016 Tutorial)When RV Meets CEP (RV 2016 Tutorial)
When RV Meets CEP (RV 2016 Tutorial)
 
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)
Testing Web Applications Through User Interface Constraints (CASCON 2015 Talk)
 
À la chasse aux bugs avec la Laboratoire d'informatique formelle
À la chasse aux bugs avec la Laboratoire d'informatique formelleÀ la chasse aux bugs avec la Laboratoire d'informatique formelle
À la chasse aux bugs avec la Laboratoire d'informatique formelle
 
Qui gardera les gardiens? (Présentation FUQAC 2012)
Qui gardera les gardiens? (Présentation FUQAC 2012)Qui gardera les gardiens? (Présentation FUQAC 2012)
Qui gardera les gardiens? (Présentation FUQAC 2012)
 

Ähnlich wie MapReduce for Parallel Trace Validation of LTL Properties

Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012Leonardo Borges
 
Basic Consensus Algorithms
Basic Consensus AlgorithmsBasic Consensus Algorithms
Basic Consensus Algorithms상문 오
 
Orchestrated Chaos: Applying Failure Testing Research at Scale.
Orchestrated Chaos: Applying Failure Testing Research at Scale.Orchestrated Chaos: Applying Failure Testing Research at Scale.
Orchestrated Chaos: Applying Failure Testing Research at Scale.Reactivesummit
 
Gremlin's Graph Traversal Machinery
Gremlin's Graph Traversal MachineryGremlin's Graph Traversal Machinery
Gremlin's Graph Traversal MachineryMarko Rodriguez
 
DataStax | Graph Computing with Apache TinkerPop (Marko Rodriguez) | Cassandr...
DataStax | Graph Computing with Apache TinkerPop (Marko Rodriguez) | Cassandr...DataStax | Graph Computing with Apache TinkerPop (Marko Rodriguez) | Cassandr...
DataStax | Graph Computing with Apache TinkerPop (Marko Rodriguez) | Cassandr...DataStax
 
Sample quizz test
Sample quizz testSample quizz test
Sample quizz testkasguest
 
FLATMAP ZAT SHIT : les monades expliquées aux geeks (Devoxx France 2013)
FLATMAP ZAT SHIT : les monades expliquées aux geeks (Devoxx France 2013)FLATMAP ZAT SHIT : les monades expliquées aux geeks (Devoxx France 2013)
FLATMAP ZAT SHIT : les monades expliquées aux geeks (Devoxx France 2013)François Sarradin
 
GeneIndex: an open source parallel program for enumerating and locating words...
GeneIndex: an open source parallel program for enumerating and locating words...GeneIndex: an open source parallel program for enumerating and locating words...
GeneIndex: an open source parallel program for enumerating and locating words...PTIHPA
 
The Exponential Time Hypothesis
The Exponential Time HypothesisThe Exponential Time Hypothesis
The Exponential Time HypothesisASPAK2014
 
Dsoop (co 221) 1
Dsoop (co 221) 1Dsoop (co 221) 1
Dsoop (co 221) 1Puja Koch
 
clegoues-pwlconf-sept16-asPDF.pdf
clegoues-pwlconf-sept16-asPDF.pdfclegoues-pwlconf-sept16-asPDF.pdf
clegoues-pwlconf-sept16-asPDF.pdfaoecmtin
 
Event Stream Processing with BeepBeep 3
Event Stream Processing with BeepBeep 3Event Stream Processing with BeepBeep 3
Event Stream Processing with BeepBeep 3Sylvain Hallé
 
Real World Haskell: Lecture 5
Real World Haskell: Lecture 5Real World Haskell: Lecture 5
Real World Haskell: Lecture 5Bryan O'Sullivan
 
Multi-Party Computation for the Masses
Multi-Party Computation for the MassesMulti-Party Computation for the Masses
Multi-Party Computation for the MassesDavid Evans
 
Graphing day 1 worked
Graphing day 1 workedGraphing day 1 worked
Graphing day 1 workedJonna Ramsey
 
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...Spark Summit
 

Ähnlich wie MapReduce for Parallel Trace Validation of LTL Properties (20)

Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012Continuation Passing Style and Macros in Clojure - Jan 2012
Continuation Passing Style and Macros in Clojure - Jan 2012
 
Basic Consensus Algorithms
Basic Consensus AlgorithmsBasic Consensus Algorithms
Basic Consensus Algorithms
 
Orchestrated Chaos: Applying Failure Testing Research at Scale.
Orchestrated Chaos: Applying Failure Testing Research at Scale.Orchestrated Chaos: Applying Failure Testing Research at Scale.
Orchestrated Chaos: Applying Failure Testing Research at Scale.
 
numdoc
numdocnumdoc
numdoc
 
Gremlin's Graph Traversal Machinery
Gremlin's Graph Traversal MachineryGremlin's Graph Traversal Machinery
Gremlin's Graph Traversal Machinery
 
DataStax | Graph Computing with Apache TinkerPop (Marko Rodriguez) | Cassandr...
DataStax | Graph Computing with Apache TinkerPop (Marko Rodriguez) | Cassandr...DataStax | Graph Computing with Apache TinkerPop (Marko Rodriguez) | Cassandr...
DataStax | Graph Computing with Apache TinkerPop (Marko Rodriguez) | Cassandr...
 
Sample quizz test
Sample quizz testSample quizz test
Sample quizz test
 
FLATMAP ZAT SHIT : les monades expliquées aux geeks (Devoxx France 2013)
FLATMAP ZAT SHIT : les monades expliquées aux geeks (Devoxx France 2013)FLATMAP ZAT SHIT : les monades expliquées aux geeks (Devoxx France 2013)
FLATMAP ZAT SHIT : les monades expliquées aux geeks (Devoxx France 2013)
 
GeneIndex: an open source parallel program for enumerating and locating words...
GeneIndex: an open source parallel program for enumerating and locating words...GeneIndex: an open source parallel program for enumerating and locating words...
GeneIndex: an open source parallel program for enumerating and locating words...
 
2. Vector Calculus.ppt
2. Vector Calculus.ppt2. Vector Calculus.ppt
2. Vector Calculus.ppt
 
Learning from 6,000 projects mining specifications in the large
Learning from 6,000 projects   mining specifications in the largeLearning from 6,000 projects   mining specifications in the large
Learning from 6,000 projects mining specifications in the large
 
The Exponential Time Hypothesis
The Exponential Time HypothesisThe Exponential Time Hypothesis
The Exponential Time Hypothesis
 
Lecture.1
Lecture.1Lecture.1
Lecture.1
 
Dsoop (co 221) 1
Dsoop (co 221) 1Dsoop (co 221) 1
Dsoop (co 221) 1
 
clegoues-pwlconf-sept16-asPDF.pdf
clegoues-pwlconf-sept16-asPDF.pdfclegoues-pwlconf-sept16-asPDF.pdf
clegoues-pwlconf-sept16-asPDF.pdf
 
Event Stream Processing with BeepBeep 3
Event Stream Processing with BeepBeep 3Event Stream Processing with BeepBeep 3
Event Stream Processing with BeepBeep 3
 
Real World Haskell: Lecture 5
Real World Haskell: Lecture 5Real World Haskell: Lecture 5
Real World Haskell: Lecture 5
 
Multi-Party Computation for the Masses
Multi-Party Computation for the MassesMulti-Party Computation for the Masses
Multi-Party Computation for the Masses
 
Graphing day 1 worked
Graphing day 1 workedGraphing day 1 worked
Graphing day 1 worked
 
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
Engineering Fast Indexes for Big-Data Applications: Spark Summit East talk by...
 

Mehr von Sylvain Hallé

Monitoring Business Process Compliance Across Multiple Executions with Stream...
Monitoring Business Process Compliance Across Multiple Executions with Stream...Monitoring Business Process Compliance Across Multiple Executions with Stream...
Monitoring Business Process Compliance Across Multiple Executions with Stream...Sylvain Hallé
 
A Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion DetectionA Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion DetectionSylvain Hallé
 
Smart Contracts-Enabled Simulation for Hyperconnected Logistics
Smart Contracts-Enabled Simulation for Hyperconnected LogisticsSmart Contracts-Enabled Simulation for Hyperconnected Logistics
Smart Contracts-Enabled Simulation for Hyperconnected LogisticsSylvain Hallé
 
Test Suite Generation for Boolean Conditions with Equivalence Class Partitioning
Test Suite Generation for Boolean Conditions with Equivalence Class PartitioningTest Suite Generation for Boolean Conditions with Equivalence Class Partitioning
Test Suite Generation for Boolean Conditions with Equivalence Class PartitioningSylvain Hallé
 
Synthia: a Generic and Flexible Data Structure Generator (Long Version)
Synthia: a Generic and Flexible Data Structure Generator (Long Version)Synthia: a Generic and Flexible Data Structure Generator (Long Version)
Synthia: a Generic and Flexible Data Structure Generator (Long Version)Sylvain Hallé
 
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)Sylvain Hallé
 
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)Sylvain Hallé
 
A Generic Explainability Framework for Function Circuits
A Generic Explainability Framework for Function CircuitsA Generic Explainability Framework for Function Circuits
A Generic Explainability Framework for Function CircuitsSylvain Hallé
 
Detecting Responsive Web Design Bugs with Declarative Specifications
Detecting Responsive Web Design Bugs with Declarative SpecificationsDetecting Responsive Web Design Bugs with Declarative Specifications
Detecting Responsive Web Design Bugs with Declarative SpecificationsSylvain Hallé
 
Streamlining the Inclusion of Computer Experiments in Research Papers
Streamlining the Inclusion of Computer Experiments in Research PapersStreamlining the Inclusion of Computer Experiments in Research Papers
Streamlining the Inclusion of Computer Experiments in Research PapersSylvain Hallé
 
Writing Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeepWriting Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeepSylvain Hallé
 
Real-Time Data Mining for Event Streams
Real-Time Data Mining for Event StreamsReal-Time Data Mining for Event Streams
Real-Time Data Mining for Event StreamsSylvain Hallé
 
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)Sylvain Hallé
 
Mining event streams with BeepBeep 3
Mining event streams with BeepBeep 3Mining event streams with BeepBeep 3
Mining event streams with BeepBeep 3Sylvain Hallé
 
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)Sylvain Hallé
 
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)Sylvain Hallé
 
Event Stream Processing with Multiple Threads
Event Stream Processing with Multiple ThreadsEvent Stream Processing with Multiple Threads
Event Stream Processing with Multiple ThreadsSylvain Hallé
 
A Few Things We Heard About RV Tools (Position Paper)
A Few Things We Heard About RV Tools (Position Paper)A Few Things We Heard About RV Tools (Position Paper)
A Few Things We Heard About RV Tools (Position Paper)Sylvain Hallé
 
La quantification du premier ordre en logique temporelle
La quantification du premier ordre en logique temporelleLa quantification du premier ordre en logique temporelle
La quantification du premier ordre en logique temporelleSylvain Hallé
 

Mehr von Sylvain Hallé (19)

Monitoring Business Process Compliance Across Multiple Executions with Stream...
Monitoring Business Process Compliance Across Multiple Executions with Stream...Monitoring Business Process Compliance Across Multiple Executions with Stream...
Monitoring Business Process Compliance Across Multiple Executions with Stream...
 
A Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion DetectionA Stream-Based Approach to Intrusion Detection
A Stream-Based Approach to Intrusion Detection
 
Smart Contracts-Enabled Simulation for Hyperconnected Logistics
Smart Contracts-Enabled Simulation for Hyperconnected LogisticsSmart Contracts-Enabled Simulation for Hyperconnected Logistics
Smart Contracts-Enabled Simulation for Hyperconnected Logistics
 
Test Suite Generation for Boolean Conditions with Equivalence Class Partitioning
Test Suite Generation for Boolean Conditions with Equivalence Class PartitioningTest Suite Generation for Boolean Conditions with Equivalence Class Partitioning
Test Suite Generation for Boolean Conditions with Equivalence Class Partitioning
 
Synthia: a Generic and Flexible Data Structure Generator (Long Version)
Synthia: a Generic and Flexible Data Structure Generator (Long Version)Synthia: a Generic and Flexible Data Structure Generator (Long Version)
Synthia: a Generic and Flexible Data Structure Generator (Long Version)
 
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
 
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)
Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)
 
A Generic Explainability Framework for Function Circuits
A Generic Explainability Framework for Function CircuitsA Generic Explainability Framework for Function Circuits
A Generic Explainability Framework for Function Circuits
 
Detecting Responsive Web Design Bugs with Declarative Specifications
Detecting Responsive Web Design Bugs with Declarative SpecificationsDetecting Responsive Web Design Bugs with Declarative Specifications
Detecting Responsive Web Design Bugs with Declarative Specifications
 
Streamlining the Inclusion of Computer Experiments in Research Papers
Streamlining the Inclusion of Computer Experiments in Research PapersStreamlining the Inclusion of Computer Experiments in Research Papers
Streamlining the Inclusion of Computer Experiments in Research Papers
 
Writing Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeepWriting Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeep
 
Real-Time Data Mining for Event Streams
Real-Time Data Mining for Event StreamsReal-Time Data Mining for Event Streams
Real-Time Data Mining for Event Streams
 
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
 
Mining event streams with BeepBeep 3
Mining event streams with BeepBeep 3Mining event streams with BeepBeep 3
Mining event streams with BeepBeep 3
 
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
 
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
 
Event Stream Processing with Multiple Threads
Event Stream Processing with Multiple ThreadsEvent Stream Processing with Multiple Threads
Event Stream Processing with Multiple Threads
 
A Few Things We Heard About RV Tools (Position Paper)
A Few Things We Heard About RV Tools (Position Paper)A Few Things We Heard About RV Tools (Position Paper)
A Few Things We Heard About RV Tools (Position Paper)
 
La quantification du premier ordre en logique temporelle
La quantification du premier ordre en logique temporelleLa quantification du premier ordre en logique temporelle
La quantification du premier ordre en logique temporelle
 

Kürzlich hochgeladen

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Kürzlich hochgeladen (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

MapReduce for Parallel Trace Validation of LTL Properties

  • 1. MapReduce for Parallel Trace Validation of LTL Properties Benjamin Barre, Mathieu Klein, Maxime Soucy-Boivin, Pierre-Antoine Ollivier and Sylvain Hallé Université du Québec à Chicoutimi CANADA Fonds de recherche Nature et NSERC technologies CRSNG
  • 2.
  • 7. Instrumentation Trace System
  • 8. Instrumentation Trace Events System
  • 9. Instrumentation Trace Events System
  • 10. Trace validation Instrumentation Trace Events System
  • 12. hasNext or<T> Iterat next
  • 13. A call to next must be preceded by a call to hasNext hasNext or<T> Iterat next
  • 14. A B
  • 15. No CartCreate request can occur before a LoginResponse message A B
  • 16. Login
  • 17. Three successive login attempts should trigger an alarm Login
  • 18.
  • 21. Ready? Yes Receive order
  • 22. Ready? Yes Receive order No Ship File order
  • 23. A received order must eventually be shipped Ready? Yes Receive order No Ship File order
  • 24. Let A be a set of event symbols. A trace m is a mapping from ℕ to the set of events : ℕ 0 1 2 3 4 ... A a a b c b
  • 25. X next ¬ ∧ → G globally A + ∧¬→ + F eventually U until Ground Boolean Temporal terms connectives operators = Linear Temporal Logic
  • 26. Let Φ be the set of all possible LTL formulas. The function ℒ : Φ → 2ℕ labels each state with a set of LTL formulas ℕ 0 1 2 3 4 ... A a a b c b
  • 27. Let Φ be the set of all possible LTL formulas. The function ℒ : Φ → 2ℕ labels each state with a set of LTL formulas ℒ b) ∨c b) b b b (a→ (a→ a∧c b a∧ a∧ b∨ G G ℕ 0 1 2 3 4 ... A a a b c b Example: ℒ(a∧b) = {0,1,4,...}
  • 28. i ∈ ℒ(a) ⇔ m(i) = a i ∈ ℒ(¬φ) ⇔ i ∉ ℒ(φ) i ∈ ℒ(φ∧ψ) ⇔ i ∈ ℒ(φ) and i ∈ ℒ(ψ) i ∈ ℒ(φ∨ψ) ⇔ i ∈ ℒ(φ) or i ∈ ℒ(ψ) i ∈ ℒ(X φ) ⇔ i+1 ∈ ℒ(φ) i ∈ ℒ(G φ) ⇔ j ∈ ℒ(φ) for all j ≥ i i ∈ ℒ(F φ) ⇔ j ∈ ℒ(φ) for some j ≥ i i ∈ ℒ(φ U ψ) ⇔ j ∈ ℒ(ψ) for some j ≥ i and k ∈ ℒ(φ) for all j ≥ k ≥ i
  • 29. Theorem i ∈ ℒ(φ) exactly when the trace m(i), m(i+1), ... satisfies φ σ φ ψ 0 1 2 3 4 ...
  • 30. Theorem i ∈ ℒ(φ) exactly when the trace m(i), m(i+1), ... satisfies φ σ φ ψ 0 1 2 3 4 ... Therefore... 0 ∈ ℒ(φ) ⇔ m ⊧ φ
  • 31. A call to next must be followed by a call to hasNext No CartCreate request can occur before a LoginResponse message A received order must eventually be shipped Three successive login attempts should trigger an alarm
  • 32. A call to next must be followed by a call to hasNext G (next → X hasNext) No CartCreate request can occur before a LoginResponse message A received order must eventually be shipped Three successive login attempts should trigger an alarm
  • 33. A call to next must be followed by a call to hasNext G (next → X hasNext) No CartCreate request can occur before a LoginResponse message ¬ CartCreate U hasNext A received order must eventually be shipped Three successive login attempts should trigger an alarm
  • 34. A call to next must be followed by a call to hasNext G (next → X hasNext) No CartCreate request can occur before a LoginResponse message ¬ CartCreate U hasNext A received order must eventually be shipped G (receive → F ship) Three successive login attempts should trigger an alarm
  • 35. A call to next must be followed by a call to hasNext G (next → X hasNext) No CartCreate request can occur before a LoginResponse message ¬ CartCreate U hasNext A received order must eventually be shipped G (receive → F ship) Three successive login attempts should trigger an alarm G ¬(fail ∧ (X (fail ∧ X fail)))
  • 36. Iterat or<T> Java MOP
  • 37. The trace must be read linearly 2 3 4 5 1 � The algorithm works on a x1 single process / core / site
  • 38. 10,000,000 1,000,000 100,000 10,000 1,000 100 10 1 1970 1980 1990 2000 2010
  • 39. 10,000,000 Transistors (x1000) 1,000,000 100,000 10,000 1,000 100 10 1 1970 1980 1990 2000 2010
  • 40. 10,000,000 Transistors (x1000) 1,000,000 100,000 10,000 CPU Speed 1,000 (MHz) 100 10 1 1970 1980 1990 2000 2010
  • 41. PageRank f ∞
  • 42. Value Key a 1 { Tuple (baaah)
  • 45. Data source II a 2 z 7 . . . Input reader
  • 46. . . . a 2 a 2
  • 47. Mapper . . . a 2 a 2 M
  • 48. Mapper . . . a 2 a 2 M w 6 a 2 . . .
  • 49. Mapper . . . a 2 a 2 M w 6 a 2 . . . a b 3 a2 3 3 g b
  • 50. a 3 a3 2a e 38 a a3 b 9 bb a 3 b a a
  • 51. e 38 a b . . . . . . b db Shuffling aa b a ab a a 2 a b 9 3
  • 52. b 9 b a a 2 2a 3 a
  • 53. b 9 b a a 2 2a 3 a Rb Ra Reducer
  • 54. b 9 b a a 2 2a 3 a Rb e 7 i 0 Ra z 8 x 2 . . . Reducer
  • 55. a b a a b a
  • 56. a b a a b a a a a b b a
  • 57. a b a a b a a a I a b b a
  • 58. a b a a b a 〈a,1〉 a a I 〈a,1〉 a b b a
  • 59. a b a a b a 〈a,1〉 a a I 〈a,1〉 〈a,1〉 a b I 〈b,1〉 〈b,1〉 b a I 〈a,1〉
  • 60. a b a a b a 〈a,1〉 a a I 〈a,1〉 〈a,1〉 a b I 〈b,1〉 〈b,1〉 b a I 〈a,1〉
  • 61. a b a a b a 〈a,1〉 a a I 〈a,1〉 〈a,1〉 a b I 〈b,1〉 〈b,1〉 b a I 〈a,1〉
  • 62. a b a a b a 〈a,1〉 a a I 〈a,1〉 Ra 〈a,1〉 a b I 〈b,1〉 〈b,1〉 b a I 〈a,1〉
  • 63. a b a a b a 〈a,1〉 a a I 〈a,1〉 Ra 〈a,4〉 〈a,1〉 a b I 〈b,1〉 〈b,1〉 b a I 〈a,1〉
  • 64. a b a a b a 〈a,1〉 a a I 〈a,1〉 Ra 〈a,4〉 〈a,1〉 a b I 〈b,1〉 〈b,1〉 Rb 〈b,2〉 b a I 〈a,1〉
  • 65. a b a a b a 〈a,1〉 a a I 〈a,1〉 Ra 〈a,4〉 〈a,1〉 a b I 〈b,1〉 〈b,1〉 Rb 〈b,2〉 b a I 〈a,1〉
  • 66. Superformula Superformula Formula G ∧ Subformula Subformula Subformula
  • 67. 4 G Height 3 → 2 ∧ 3 1 2 ¬ F 1 0 0 a c b
  • 68. 4 G Height 3 → 2 ∧ 3 1 2 ¬ F 1 0 0 a c b ¬c has height 1 G ((a ∧¬c) → F b) has height 4
  • 69. i ∈ ℒ(a) ⇔ m(i) = a i ∈ ℒ(¬φ) ⇔ i ∉ ℒ(φ) i ∈ ℒ(φ∧ψ) ⇔ i ∈ ℒ(φ) and i ∈ ℒ(ψ) i ∈ ℒ(φ∨ψ) ⇔ i ∈ ℒ(φ) or i ∈ ℒ(ψ) i ∈ ℒ(X φ) ⇔ i+1 ∈ ℒ(φ) i ∈ ℒ(G φ) ⇔ j ∈ ℒ(φ) for all j ≥ i i ∈ ℒ(F φ) ⇔ j ∈ ℒ(φ) for some j ≥ i i ∈ ℒ(φ U ψ) ⇔ j ∈ ℒ(ψ) for some j ≥ i and k ∈ ℒ(φ) for all j ≥ k ≥ i
  • 70. i ∈ ℒ(a) ⇔ m(i) = a i ∈ ℒ(¬φ) ⇔ i ∉ ℒ(φ) i ∈ ℒ(φ∧ψ) ⇔ i ∈ ℒ(φ) and i ∈ ℒ(ψ) i ∈ ℒ(φ∨ψ) ⇔ i ∈ ℒ(φ) or i ∈ ℒ(ψ) i ∈ ℒ(X φ) ⇔ i+1 ∈ ℒ(φ) i ∈ ℒ(G φ) ⇔ j ∈ ℒ(φ) for all j ≥ i i ∈ ℒ(F φ) ⇔ j ∈ ℒ(φ) for some j ≥ i i ∈ ℒ(φ U ψ) ⇔ j ∈ ℒ(ψ) for some j ≥ i and k ∈ ℒ(φ) for all j ≥ k ≥ i The labelling of a formula depends only on labellings of formulas of strictly lower height
  • 71. i ∈ ℒ(a) ⇔ m(i) = a i ∈ ℒ(¬φ) ⇔ i ∉ ℒ(φ) i ∈ ℒ(φ∧ψ) ⇔ i ∈ ℒ(φ) and i ∈ ℒ(ψ) i ∈ ℒ(φ∨ψ) ⇔ i ∈ ℒ(φ) or i ∈ ℒ(ψ) i ∈ ℒ(X φ) ⇔ i+1 ∈ ℒ(φ) i ∈ ℒ(G φ) ⇔ j ∈ ℒ(φ) for all j ≥ i i ∈ ℒ(F φ) ⇔ j ∈ ℒ(φ) for some j ≥ i i ∈ ℒ(φ U ψ) ⇔ j ∈ ℒ(ψ) for some j ≥ i and k ∈ ℒ(φ) for all j ≥ k ≥ i The labelling of a formula depends only on labellings of formulas of strictly lower height ⇒ All labellings of formulas of same height are independent
  • 72. i ∈ ℒ(a) ⇔ m(i) = a i ∈ ℒ(¬φ) ⇔ i ∉ ℒ(φ) i ∈ ℒ(φ∧ψ) ⇔ i ∈ ℒ(φ) and i ∈ ℒ(ψ) i ∈ ℒ(φ∨ψ) ⇔ i ∈ ℒ(φ) or i ∈ ℒ(ψ) i ∈ ℒ(X φ) ⇔ i+1 ∈ ℒ(φ) i ∈ ℒ(G φ) ⇔ j ∈ ℒ(φ) for all j ≥ i i ∈ ℒ(F φ) ⇔ j ∈ ℒ(φ) for some j ≥ i i ∈ ℒ(φ U ψ) ⇔ j ∈ ℒ(ψ) for some j ≥ i and k ∈ ℒ(φ) for all j ≥ k ≥ i The labelling of a formula depends only on labellings of formulas of strictly lower height ⇒ All labellings of formulas of same height are independent ⇒ They can be computed in parallel
  • 73. M
  • 74. M Input: tuples 〈φ,(n,i)〉
  • 75. M Input: tuples 〈φ,(n,i)〉 “ n ∈ ℒ(φ), and the last cycle has evaluated labellings for formulas of height i ”
  • 76. “Lift” ℒ(φ) to superformulas of φ M Input: tuples 〈φ,(n,i)〉 “ n ∈ ℒ(φ), and the last cycle has evaluated labellings for formulas of height i ”
  • 77. Output: tuples 〈ψ,(φ,n,i)〉 “Lift” ℒ(φ) to superformulas of φ M Input: tuples 〈φ,(n,i)〉 “ n ∈ ℒ(φ), and the last cycle has evaluated labellings for formulas of height i ”
  • 78. Output: tuples 〈ψ,(φ,n,i)〉 “ n ∈ ℒ(φ), the last cycle has evaluated labellings for formulas of height i, and φ is a subformula of ψ ” “Lift” ℒ(φ) to superformulas of φ M Input: tuples 〈φ,(n,i)〉 “ n ∈ ℒ(φ), and the last cycle has evaluated labellings for formulas of height i ”
  • 79.
  • 81. Input: 〈ψ,(φ,n,i)〉 Rψ “ n ∈ ℒ(φ), the last cycle has evaluated labellings for formulas of height i, and φ is a subformula of ψ ”
  • 82. Input: Compute ℒ(ψ) 〈ψ,(φ,n,i)〉 Rψ “ n ∈ ℒ(φ), the last cycle has evaluated labellings for formulas of height i, and φ is a subformula of ψ ”
  • 83. Input: Compute ℒ(ψ) Output: 〈ψ,(φ,n,i)〉 〈ψ,(n,i+1)〉 Rψ “ n ∈ ℒ(φ), the last cycle has evaluated labellings for formulas of height i, and φ is a subformula of ψ ”
  • 84. Input: Compute ℒ(ψ) Output: 〈ψ,(φ,n,i)〉 〈ψ,(n,i+1)〉 Rψ “ n ∈ ℒ(φ), the last cycle “ n ∈ ℒ(ψ), and the last has evaluated labellings for cycle has evaluated formulas of height i, and labellings for formulas of φ is a subformula of ψ ” height i+1
  • 85. I
  • 87. Input: events (a,n) Output: tuples 〈ψ,(a,n,0)〉 I . . . “ n ∈ ℒ(a), the last cycle has evaluated labellings for formulas of height 0, and a is a subformula of ψ ”
  • 88. W
  • 90. Output: Input: 〈ψ,(n,i)〉 True if 〈ψ,(0,i)〉 is read W False otherwise
  • 91. 3 . . . R W R 2 R R R 1 I . . . R I R R
  • 92. 3 . . . R W R 2 R R R 1 I . . . R I R R InputReaders generate the first tuples from the trace chunks
  • 93. 3 . . . R W R 2 R R R 1 I . . . R I R R The tuples are shuffled to reducers that compute the labelling ℒ for formulas of height 1
  • 94. 3 . . . R W R 2 R R R 1 I . . . R I R R Mappers copy the labellings into tuples marked by superformulas of height 2
  • 95. 3 . . . R W R 2 R R R 1 I . . . R I R R Each reducer computes the labelling of a formula of height 2 from the labelling of its subformulas
  • 96. 3 . . . R W R 2 R R R 1 I . . . R I R R Mappers copy the labellings into tuples marked by superformulas of height 3
  • 97. 3 . . . R W R 2 R R R 1 I . . . R I R R Each reducer computes the labelling of a formula of height 3 from the labelling of its subformulas
  • 98. 3 . . . R W R 2 R R R 1 I . . . R I R R An output writer collects the resulting tuples, and outputs “true” if it encounters a tuple for state 0
  • 99.
  • 100. a a b c b a ? G (¬a → F b) ⊨
  • 101. a a b c b a ? G (¬a → F b) ⊨ (a,0) (b,2) (a,1) (c,3) (a,5) (b,4) 0 HEIGHT
  • 102. a a b c b a ? G (¬a → F b) ⊨ (a,0) (b,2) I (a,1) (c,3) I (a,5) (b,4) I 0 HEIGHT
  • 103. a a b c b a ? G (¬a → F b) ⊨ 〈¬a,(a,0)〉 (a,0) (b,2) I 〈F b,(b,2)〉 (a,1) (c,3) I 〈¬a,(a,1)〉 〈F b,(b,4)〉 (a,5) (b,4) I 0 1 〈¬a,(a,5)〉 HEIGHT
  • 104. a a b c b a ? G (¬a → F b) ⊨ 〈¬a,(a,0)〉 (a,0) (b,2) I 〈F b,(b,2)〉 R ¬a (a,1) (c,3) I 〈¬a,(a,1)〉 R 〈F b,(b,4)〉 Fb (a,5) (b,4) I 0 1 〈¬a,(a,5)〉 HEIGHT
  • 105. a a b c b a ? G (¬a → F b) ⊨ 〈¬a,(a,0)〉 〈¬a,2〉 (a,0) (b,2) I 〈¬a,3〉 〈F b,(b,2)〉 R ¬a 〈¬a,4〉 (a,1) (c,3) I 〈¬a,(a,1)〉 〈F b,0〉 〈F b,1〉 R 〈F b,2〉 〈F b,(b,4)〉 Fb 〈F b,3〉 (a,5) (b,4) I 0 1 〈¬a,(a,5)〉 b,4〉 〈FHEIGHT
  • 106. a a b c b a ? G (¬a → F b) ⊨ 〈¬a,2〉 〈¬a,3〉 M 〈¬a,4〉 〈F b,0〉 〈F b,1〉 M 〈F b,2〉 〈F b,3〉 〈F b,4〉 M 2 HEIGHT
  • 107. a a b c b a ? G (¬a → F b) ⊨ 〈¬a,2〉 〈¬a → F b,(¬a,2)〉 〈¬a,3〉 M 〈¬a → F b,(¬a,3)〉 〈¬a,4〉 〈¬a → F b,(¬a,4)〉 〈F b,0〉 〈¬a → F b,(F b,0)〉 〈F b,1〉 〈¬a → F b,(F b,1)〉 M 〈¬a → F b,(F b,2)〉 〈F b,2〉 〈¬a → F b,(F b,3)〉 〈F b,3〉 〈F b,4〉 M 〈¬a → F b,(F b,4)〉 2 HEIGHT
  • 108. a a b c b a ? G (¬a → F b) ⊨ 〈¬a,2〉 〈¬a → F b,(¬a,2)〉 〈¬a,3〉 M 〈¬a → F b,(¬a,3)〉 〈¬a,4〉 〈¬a → F b,(¬a,4)〉 〈F b,0〉 〈¬a → F b,(F b,0)〉 〈F b,1〉 〈¬a → F b,(F b,1)〉 R M 〈¬a → F b,(F b,2)〉 ¬a → Fb 〈F b,2〉 〈¬a → F b,(F b,3)〉 〈F b,3〉 〈F b,4〉 M 〈¬a → F b,(F b,4)〉 2 HEIGHT
  • 109. a a b c b a ? G (¬a → F b) ⊨ 〈¬a → F b,0〉 〈¬a → F b,1〉 〈¬a → F b,2〉 〈¬a,2〉 〈¬a → F b,(¬a,2)〉 〈¬a → F b,3〉 〈¬a,3〉 M 〈¬a → F b,(¬a,3)〉 〈¬a → F b,4〉 〈¬a,4〉 〈¬a → F b,(¬a,4)〉 〈¬a → F b,5〉 〈F b,0〉 〈¬a → F b,(F b,0)〉 〈F b,1〉 〈¬a → F b,(F b,1)〉 R M 〈¬a → F b,(F b,2)〉 ¬a → Fb 〈F b,2〉 〈¬a → F b,(F b,3)〉 〈F b,3〉 〈F b,4〉 M 〈¬a → F b,(F b,4)〉 2 HEIGHT
  • 110. a a b c b a ? G (¬a → F b) ⊨ 〈¬a → F b,0〉 〈¬a → F b,1〉 M 〈¬a → F b,2〉 〈¬a → F b,3〉 M 〈¬a → F b,4〉 〈¬a → F b,5〉 M 3 HEIGHT
  • 111. a a b c b a ? G (¬a → F b) ⊨ 〈G (¬a → F b), 〈¬a → F b,0〉 (¬a → F b,0)〉 〈¬a → F b,1〉 M 〈G (¬a → F b), (¬a → F b,1)〉 〈G (¬a → F b), 〈¬a → F b,2〉 (¬a → F b,2)〉 〈¬a → F b,3〉 M 〈G (¬a → F b), (¬a → F b,3)〉 〈G (¬a → F b), 〈¬a → F b,4〉 (¬a → F b,4)〉 〈¬a → F b,5〉 M 〈G (¬a → F b), 3 HEIGHT (¬a → F b,5)〉
  • 112. a a b c b a ? G (¬a → F b) ⊨ 〈G (¬a → F b), 〈¬a → F b,0〉 (¬a → F b,0)〉 〈¬a → F b,1〉 M 〈G (¬a → F b), (¬a → F b,1)〉 〈G (¬a → F b), 〈¬a → F b,2〉 (¬a → F b,2)〉 R 〈¬a → F b,3〉 M 〈G (¬a → F b), G (¬a → F b) (¬a → F b,3)〉 〈G (¬a → F b), 〈¬a → F b,4〉 (¬a → F b,4)〉 〈¬a → F b,5〉 M 〈G (¬a → F b), 3 HEIGHT (¬a → F b,5)〉
  • 113. a a b c b a ? G (¬a → F b) ⊨ 〈G (¬a → F b),0〉 〈G (¬a → F b),1〉 〈G (¬a → F b), 〈G (¬a → F b),2〉 〈¬a → F b,0〉 (¬a → F b,0)〉 〈G (¬a → F b),3〉 〈¬a → F b,1〉 M 〈G (¬a → F b), 〈G (¬a → F b),4〉 (¬a → F b,1)〉 〈G (¬a → F b),5〉 〈G (¬a → F b), 〈¬a → F b,2〉 (¬a → F b,2)〉 R 〈¬a → F b,3〉 M 〈G (¬a → F b), G (¬a → F b) (¬a → F b,3)〉 〈G (¬a → F b), 〈¬a → F b,4〉 (¬a → F b,4)〉 〈¬a → F b,5〉 M 〈G (¬a → F b), 3 HEIGHT (¬a → F b,5)〉
  • 114. a a b c b a ? G (¬a → F b) ⊨ 〈G (¬a → F b),0〉 〈G (¬a → F b),1〉 W 〈G (¬a → F b),2〉 〈G (¬a → F b),3〉 〈G (¬a → F b),4〉 〈G (¬a → F b),5〉 4 HEIGHT
  • 115. a a b c b a ? G (¬a → F b) ⊨ 〈G (¬a → F b),0〉 〈G (¬a → F b),1〉 W 〈G (¬a → F b),2〉 〈G (¬a → F b),3〉 True 〈G (¬a → F b),4〉 〈G (¬a → F b),5〉 4 HEIGHT
  • 116. The trace can be stored in � separate (and non-contiguous) chunks (a,0) (b,2) (a,1) (c,3) (a,5) (b,4) M R Mappers and reducers of a M M R R � given height can operate in parallel
  • 117. Tests on 500 randomly-generated traces From 1 to 100,000 events Each event contains 10 parameters named p₀ to p₉ with 10 possible values
  • 118. Validation of 4 LTL formulas: 1 G p₀ ≠ 0 2 G (p₀ = 0 → X p₁ = 0) 3 ∀x ∈ [0,9] : G (p₀ = x → X p₁ = x) 4 ∃m ∈ [0,9] : ∀x ∈ [0,9] : G (p m = x → X X p m ≠ x)
  • 119. Property 1 2 3 4 Tuples 55 k 120 k 600 k 5 M Time/event 19 μs 23 μs 75 μs 985 μs Sequential ratio 100% 92% 92% 3% Inferred time 19 μs 21 μs 14 μs 30 μs