Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Symbolic Model for Timed Concurrent Constraint Programming

A Symbolic Model for Timed Concurrent Constraint Programming

Jaime Arias Almeida

September 08, 2014
Tweet

More Decks by Jaime Arias Almeida

Other Decks in Research

Transcript

  1. A symbolic model for timed concurrent constraint
    programming
    LSFA’14
    Jaime Arias, Michell Guzm´
    an and Carlos Olarte
    Universidade Federal do Rio Grande do Norte. Brasil.
    September 8, 2014
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 1 / 30

    View full-size slide

  2. Motivation
    Concurrent Systems are everywhere:
    Engineering: Security protocols, service oriented computing, mobile
    computing, synchronous systems.
    Science: Biological and chemical systems.
    Arts: Multimedia Interaction.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 2 / 30

    View full-size slide

  3. Motivation
    Concurrent Systems are everywhere:
    Engineering: Security protocols, service oriented computing, mobile
    computing, synchronous systems.
    Science: Biological and chemical systems.
    Arts: Multimedia Interaction.
    Models of Concurrency
    Formal Models to describe and analyze concurrent systems. They must be:
    Simple.
    Expressive.
    Formal.
    Provide reasoning techniques.
    Some Examples: CCS [Mil89], the π-calculus [MPW92], CSP [Hoa85],
    CCP [Sar93].
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 2 / 30

    View full-size slide

  4. Motivation
    Concurrent Constraint Programming (CCP)
    A simple and powerful model of concurrency tied to logic with very
    interesting extensions:
    tcc, tccp,ntcc: Reactive and timed systems
    [SJG94, dBGM00, NPV02].
    lccp: Linearity and resources [FRS01].
    soft-ccp : Soft constraints and preferences [BMR06].
    cc-pi, utcc: Mobility [BM07, OV08].
    eccp and sccp: Epistemic and Spatial reasoning [KPPV12].
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 3 / 30

    View full-size slide

  5. Motivation
    Concurrent Constraint Programming (CCP)
    A simple and powerful model of concurrency tied to logic with very
    interesting extensions:
    tcc, tccp,ntcc: Reactive and timed systems
    [SJG94, dBGM00, NPV02].
    lccp: Linearity and resources [FRS01].
    soft-ccp : Soft constraints and preferences [BMR06].
    cc-pi, utcc: Mobility [BM07, OV08].
    eccp and sccp: Epistemic and Spatial reasoning [KPPV12].
    Our goal
    Verifying properties of systems specified in CCP calculi.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 3 / 30

    View full-size slide

  6. Motivation
    So far we have many works on verification:
    Semantics: Simple (and beautiful!) closure operator semantics.
    Connection to Logic: e.g., relating CCP steps and Intuitionistic Linear
    Logic derivations.
    Frameworks: Calculus for proving correctness.
    Static Analysis: Abstract interpretation frameworks.
    Nevertheless... the automatic verification of CCP programs has received
    little attention so far.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 4 / 30

    View full-size slide

  7. This talk is about
    1 Providing the theoretical and practical tools to carry out the
    verification of ntcc systems [NPV02].
    A symbolic model for ntcc processes.
    2 Showing a nice characterization of the temporal operators of the
    calculus.
    (Least and greatest) fixpoint characterization
    3 Proving that the symbolic characterization is sound wrt the
    operational semantics.
    4 Some technicalities on how to adapt our framework to use symbolic
    model checkers.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 5 / 30

    View full-size slide

  8. Outline
    1 CCP calculi
    2 Symbolic Model
    3 Verification of Properties
    4 Some Examples
    5 Concluding Remarks
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 6 / 30

    View full-size slide

  9. Outline
    1 CCP calculi
    2 Symbolic Model
    3 Verification of Properties
    4 Some Examples
    5 Concluding Remarks
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 7 / 30

    View full-size slide

  10. Concurrent Constraint Programming (CCP)
    CCP [Sar93] is a Model of concurrency that combines the operational
    view of processes and a declarative one based upon logic.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 8 / 30

    View full-size slide

  11. Concurrent Constraint Programming (CCP)
    CCP [Sar93] is a Model of concurrency that combines the operational
    view of processes and a declarative one based upon logic.
    Agents in CCP interact with each other by telling and asking
    constraints to a global store of partial information.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 8 / 30

    View full-size slide

  12. Concurrent Constraint Programming (CCP)
    CCP [Sar93] is a Model of concurrency that combines the operational
    view of processes and a declarative one based upon logic.
    Agents in CCP interact with each other by telling and asking
    constraints to a global store of partial information.
    The type of constraints and the entailment relation is given by a
    Constraint System (e.g. x > 42 |=∆ x > 0).
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 8 / 30

    View full-size slide

  13. Concurrent Constraint Programming (CCP)
    CCP [Sar93] is a Model of concurrency that combines the operational
    view of processes and a declarative one based upon logic.
    Agents in CCP interact with each other by telling and asking
    constraints to a global store of partial information.
    The type of constraints and the entailment relation is given by a
    Constraint System (e.g. x > 42 |=∆ x > 0).
    tell temperature > 42 ask temperature = 50 then P
    ask 0temperature=?
    tell temperature < 70
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 8 / 30

    View full-size slide

  14. Concurrent Constraint Programming (CCP)
    CCP [Sar93] is a Model of concurrency that combines the operational
    view of processes and a declarative one based upon logic.
    Agents in CCP interact with each other by telling and asking
    constraints to a global store of partial information.
    The type of constraints and the entailment relation is given by a
    Constraint System (e.g. x > 42 |=∆ x > 0).
    ask temperature = 50 then P
    ask 042 Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 8 / 30

    View full-size slide

  15. Concurrent Constraint Programming (CCP)
    CCP [Sar93] is a Model of concurrency that combines the operational
    view of processes and a declarative one based upon logic.
    Agents in CCP interact with each other by telling and asking
    constraints to a global store of partial information.
    The type of constraints and the entailment relation is given by a
    Constraint System (e.g. x > 42 |=∆ x > 0).
    ask temperature = 50 then P
    Q
    42 Remains Blocked
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 8 / 30

    View full-size slide

  16. The tcc Model [SJG94]
    1 Receives a stimulus (i.e a constraint) from the environment.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 9 / 30

    View full-size slide

  17. The tcc Model [SJG94]
    1 Receives a stimulus (i.e a constraint) from the environment.
    2 Computes a CCP process in the current time-unit and wait for
    stability.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 9 / 30

    View full-size slide

  18. The tcc Model [SJG94]
    1 Receives a stimulus (i.e a constraint) from the environment.
    2 Computes a CCP process in the current time-unit and wait for
    stability.
    3 Responds with the resulting store.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 9 / 30

    View full-size slide

  19. The tcc Model [SJG94]
    1 Receives a stimulus (i.e a constraint) from the environment.
    2 Computes a CCP process in the current time-unit and wait for
    stability.
    3 Responds with the resulting store.
    4 Executes the Residual process in the next time-unit.
    * Note: Stores are not automatically transferred from a time unit to
    the next one.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 9 / 30

    View full-size slide

  20. Timed Concurrent Constraint Programming
    ntcc Syntax
    P, Q ::= skip | tell(c) |
    j∈J
    ask cj then Pj
    | P Q |
    (local x) P | next P | unless c (next P) | P | !P
    j∈J
    ask cj then Pj chooses non-deterministically a Pj s.t. cj can be
    entailed from the store
    next P executes process P in the next time unit (unit-delay)
    unless c (next P) executes P in the next time unit if c cannot be
    deduced (preemption).
    P arbitrary long but finite delay for the activation of P (nextnP)
    !P executes a copy of P in each time-unit (replication)
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 10 / 30

    View full-size slide

  21. Operational Semantics
    Internal Transitions
    (X; tell(c), Γ; d) −→ (X; Γ; c ∧ d)
    RT
    d |= ci
    , i ∈ J
    (X; j∈J
    ask cj then Pj
    , Γ; d) −→ (X; Pi
    , Γ; d)
    RA
    (X; !P; Γ; d) −→ (X; P, next !P; Γ; d)
    R2
    n ≥ 0
    (X; P, Γ; d) −→ (X; next nP, Γ; d)
    R
    What we observe during the time-unit
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 11 / 30

    View full-size slide

  22. Operational Semantics
    Observable Transition
    (∅; Γ; c) −→∗ (X; Γ ; d) −→
    Γ (c,∃X.d)
    =
    =
    =
    =⇒ (local X) F(Γ )
    RObs
    where (Future Function):
    F( j∈J
    ask cj then Pj ) = ∅
    F(next Q) = F(unless c (next Q)) = Q.
    What we observe
    P ≡ P1
    (c1,c1
    )
    =
    =
    =
    =⇒ P2
    (c2,c2
    )
    =
    =
    =
    =⇒ P3
    (c3,c3
    )
    =
    =
    =
    =⇒ · · · and we write P (s,s )
    =
    =
    =
    =⇒.
    io(P) = {(s, s ) | P (s,s )
    =
    =
    =
    =⇒}
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 12 / 30

    View full-size slide

  23. The ntcc calculus
    The Timed Coffee Machine
    M = ! ask coin then next tell(coffee)
    M1
    (coin,coin)
    =
    =
    =
    =⇒ M2
    (c,c coffee)
    =
    =
    =
    =⇒
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 13 / 30

    View full-size slide

  24. Outline
    1 CCP calculi
    2 Symbolic Model
    3 Verification of Properties
    4 Some Examples
    5 Concluding Remarks
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 14 / 30

    View full-size slide

  25. Symbolic Model
    Steps
    1 Step 1: Give a logical interpretation of processes.
    The interesting cases are those for the timed modalities ! and .
    2 Step 2: Perform a fixpoint computation.
    3 Step 3: Deal with dead-ends.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 15 / 30

    View full-size slide

  26. Logical Interpretation of Processes
    ◦0(c0) ∧ ◦1(c1) ∧ · · · ◦n (cn)
    “c0 is valid in the current state and, after i observable transitions, ci holds.
    S(tell(c)) = c
    S( i∈I
    ask ci then Pi ) =
    i∈I
    (¬ci ) ∨
    i∈I
    (ci
    ∧ S(Pi ))
    S(P Q) = S(P) ∧ S(Q)
    S(next P) = ◦(S(P))
    S( P) = µY .(S(P) ∨ ◦(Y ))
    S(!P) = νY .(S(P) ∧ ◦(Y ))
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 16 / 30

    View full-size slide

  27. Results
    Theorem (Termination)
    Let P be a process and S(P) = F(X1
    , ..., Xn) be a formula where the
    variables X1
    , .., Xn occur in F preceded by either µ or ν. The fixpoint of F
    can be reached in a finite number of steps.
    Theorem (Correctness)
    Let P be a process, F a solution for the equation S(P) and L be the LTS
    L(F). Consider an infinite sequence of constraints π. Then, π is a path in
    L iff P (π,π)
    =
    =
    =
    =⇒.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 17 / 30

    View full-size slide

  28. Outline
    1 CCP calculi
    2 Symbolic Model
    3 Verification of Properties
    4 Some Examples
    5 Concluding Remarks
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 18 / 30

    View full-size slide

  29. The Language of Properties CLTL [NPV02]
    F ::=
    ·
    true |
    ·
    false | c | F
    ·
    ∧ F | F
    ·
    ∨ F | ·
    ¬F | ◦ F | 3F | 2F
    Liveness: 3c: the system eventually outputs the constraint c.
    Safety: 2c: c holds in all execution.
    Nice things
    1 F is LTL satisfiable iff F is CLTL satisfiable [Val05].
    2 Model checking for LTL can be reduced to the symbolic MC of
    Computation Tree Logic (CTL) [CGH97].
    3 CLTL formulas can be efficiently represented as Difference Decision
    Diagrams (DDD).
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 19 / 30

    View full-size slide

  30. The Algorithm
    Given a process P and a CLTL property φ:
    1. Obtain the model M of the process P.
    2. Compute the tableau for the (negated) formula ψ = ¬(φ ∧ 2 ·
    ¬false).
    3. Build the set F with all the fairness constraints, i.e., all the
    subformulas in ψ containing the U operator.
    4. Obtain the product P between M and T .
    5. Apply the CTL symbolic model checking algorithm with fairness
    constraints F over the symbolic product P and the property Etrue.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 20 / 30

    View full-size slide

  31. Outline
    1 CCP calculi
    2 Symbolic Model
    3 Verification of Properties
    4 Some Examples
    5 Concluding Remarks
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 21 / 30

    View full-size slide

  32. Some Examples
    Tool1 implemented in Ocaml
    Input : File with a ntcc process.
    Output :
    PDF file with the generated Labelled Transition System.
    L
    A
    TEX file with the formula of the symbolic model.
    Model for NuSMV2 symbolic model checker.
    symbolicMC-NTCC file.ntcc
    1http://www.labri.fr/perso/jarias/symbolicMC
    2http://nusmv.fbk.eu
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 22 / 30

    View full-size slide

  33. Some Examples (! tell(c))
    Figure : Input file with the ntcc process
    {(c1) ∧ ◦1(c1)} ∨ {(c1) ∧ ◦1(true) ∧ ◦2(c1)} ∨ {(c1) ∧ ◦1(true) ∧ ◦2(true) ∧
    ◦3(c1)} ∨ {(true) ∧ ◦1(c1)} ∨ {(true) ∧ ◦1(c1) ∧ ◦2(c1)} ∨ {(true) ∧ ◦1(c1) ∧
    ◦2(true) ∧ ◦3(c1)} ∨ {(true) ∧ ◦1(c1) ∧ ◦2(c1)} ∨ {(true) ∧ ◦1(true) ∧ ◦2(c1)} ∨
    {(true) ∧ ◦1(true) ∧ ◦2(c1) ∧ ◦3(c1)}
    Figure : Symbolic model
    c1
    true
    Figure : LTS
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 23 / 30

    View full-size slide

  34. Some Examples (! tell(c))
    MODULE main
    VAR
    c : boolean;
    FAIRNESS
    c = TRUE
    ASSIGN
    init(c) := {TRUE , FALSE };
    next(c) :=
    case
    c = FALSE : {TRUE , FALSE };
    c = TRUE : {TRUE , FALSE };
    esac;
    Figure : NuSMV file
    >> NuSMV -int example.smv
    NuSMV > go
    NuSMV > check_ltlspec -p "G (c)"
    -- specification G c is false
    -- as demonstrated by the following execution
    sequence
    Trace Description : LTL Counterexample
    Trace Type: Counterexample
    -> State: 1.1 <-
    c = FALSE
    -- Loop starts here
    -> State: 1.2 <-
    c = TRUE
    -> State: 1.3 <-
    c = TRUE
    Figure : Proving LTL Properties
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 24 / 30

    View full-size slide

  35. Some Examples
    Control System
    Input : ! (When signal : Next (Tell (on)) || Unless signal : Next Tell
    (off))
    Output :
    on2
    signal1
    ^ off2
    signal1
    ¬signal1
    signal1
    ^ on2
    ¬signal1
    ^ off2
    NuSMV > check_ltlspec -p
    "G (signal = TRUE -> X on = TRUE )"
    -- specification G (signal = TRUE
    -> X on = TRUE) is true
    NuSMV > check_ltlspec -p
    "G (signal = TRUE -> G on = TRUE )"
    -- specification G (signal = TRUE
    -> G on = TRUE) is false
    -- as demonstrated by the ...
    -> State: 1.1 <-
    signal = TRUE
    off = FALSE
    on = FALSE
    -> State: 1.2 <-
    signal = FALSE
    on = TRUE
    -- Loop starts here
    -> State: 1.3 <-
    off = TRUE
    on = FALSE
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 25 / 30

    View full-size slide

  36. Some Examples
    Asynchronous Behavior
    Input : *(Tell (error)) || !(When error : !(Tell (stop)))
    Output :
    ¬error1
    error1
    ^ stop1 ¬error1
    ^ stop1
    NuSMV > check_ltlspec -p "G (error = TRUE -> G (stop
    = TRUE))"
    -- specification G (error = TRUE -> G stop = TRUE)
    is true
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 26 / 30

    View full-size slide

  37. Some Examples (Rhythm Patterns)
    Rhythm Patterns
    Symbolic Model:
    {(beat1) ∧ (start1) ∧ ◦3(beat4) ∧ ◦5(beat6) ∧ ◦7(beat8) ∧ ◦9(beat10) ∧
    ◦11(beat12) ∧ ◦14(beat15) ∧ ◦16(beat17) ∧ ◦18(beat19) ∧ ◦20(beat21) ∧
    ◦22(beat23) ∧ ◦12(stop13) ∧ ◦23(true) ∧ ◦24(true)}
    Verification of some properties:
    NuSMV > check_ltlspec -p "G !( beat = TRUE & stop = TRUE)"
    -- specification G !( beat = TRUE & stop = TRUE) is true
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 27 / 30

    View full-size slide

  38. Outline
    1 CCP calculi
    2 Symbolic Model
    3 Verification of Properties
    4 Some Examples
    5 Concluding Remarks
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 28 / 30

    View full-size slide

  39. Concluding Remarks
    We propose a symbolic model for ntcc processes.
    Such symbolic model can be used as input to a symbolic model
    checking algorithm.
    Hence we can automatically verify properties of ntcc systems.
    We plan to...
    Abstract the constraint system (symbolic-Abstract MC).
    Implement “hacks” to improve the performance of our tool.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 29 / 30

    View full-size slide

  40. Thank you!
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 30 / 30

    View full-size slide

  41. J.A. Bergstra and J.W. Klop.
    Algebra of communicating processes with abstraction.
    Theoretical Computer Science, 37(1):77–121, 1985.
    Maria Grazia Buscemi and Ugo Montanari.
    Cc-pi: A constraint-based language for specifying service level
    agreements.
    In Rocco De Nicola, editor, ESOP, volume 4421 of Lecture Notes in
    Computer Science, pages 18–32. Springer, 2007.
    Stefano Bistarelli, Ugo Montanari, and Francesca Rossi.
    Soft concurrent constraint programming.
    ACM Trans. Comput. Log., 7(3):563–589, 2006.
    Edmund M Clarke, Orna Grumberg, and Kiyoharu Hamaguchi.
    Another look at ltl model checking.
    Formal Methods in System Design, 10(1):47–71, 1997.
    Frank S. de Boer, Maurizio Gabbrielli, and Maria Chiara Meo.
    A timed concurrent constraint language.
    Inf. Comput., 161(1), 2000.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 30 / 30

    View full-size slide

  42. Francois Fages, Paul Ruet, and Sylvain Soliman.
    Linear concurrent constraint programming: Operational and phase
    semantics.
    Information and Computation, 165, 2001.
    C. A. R. Hoare.
    Communications Sequential Processes.
    Prentice-Hall, Englewood Cliffs (NJ), USA, 1985.
    Sophia Knight, Catuscia Palamidessi, Prakash Panangaden, and
    Frank D. Valencia.
    Spatial and epistemic modalities in constraint-based process calculi.
    In Maciej Koutny and Irek Ulidowski, editors, CONCUR, volume 7454
    of Lecture Notes in Computer Science, pages 317–332. Springer, 2012.
    R. Milner.
    Communication and Concurrency.
    International Series in Computer Science. Prentice Hall, 1989.
    SU Fisher Research 511/24.
    R. Milner, J. Parrow, and D. Walker.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 30 / 30

    View full-size slide

  43. A calculus of mobile processes, Parts I and II.
    Journal of Information and Computation, 100, September 1992.
    M. Nielsen, C. Palamidessi, and F.D. Valencia.
    Temporal concurrent constraint programming: Denotation, logic and
    applications.
    Nordic Journal of Computing, 9(1), 2002.
    Carlos Olarte and Frank D. Valencia.
    Universal concurrent constraint programing: Symbolic semantics and
    applications to security.
    In Proc. of SAC 2008. ACM, 2008.
    Vijay A. Saraswat.
    Concurrent Constraint Programming.
    MIT Press, 1993.
    Vijay Saraswat, Radha Jagadeesan, and Vineet Gupta.
    Foundations of timed concurrent constraint programming.
    In Proc. of LICS’94. IEEE CS, 1994.
    Frank D. Valencia.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 30 / 30

    View full-size slide

  44. Decidability of infinite-state timed ccp processes and first-order ltl.
    Theor. Comput. Sci., 330(3):577–607, 2005.
    Carlos Olarte (UFRN) Model Checking for CCP September 8, 2014 30 / 30

    View full-size slide