Family-based model checking with a feature µ-calculus. Maurice ter Beek, Erik de Vink, and Tim Willemse

Size: px
Start display at page:

Download "Family-based model checking with a feature µ-calculus. Maurice ter Beek, Erik de Vink, and Tim Willemse"

Transcription

1 Family-based model checking with a feature µ-calculus quancol.... Maurice ter Beek, Erik de Vink, and Tim Willemse ISTI-CNR, Pisa, Italy & TU/e, Eindhoven, The Netherlands VARIETE Closing Workshop ITU, Copenhagen March 28th, / 25

2 Outline 1 Context: verification of behavioural SPL models SPL: software product lines Family-based modelling and analysis FTS: featured transition systems 2 Towards family-based model checking with mcrl2 mcrl2: language and toolset The µ-calculus µl over LTSs A feature µ-calculus µl f over FTSs 3 Main results of FMSPLE 16 From µl f to µl 4 Main results of FASE 17 A µ-calculus with data µl FO over parametrised LTSs From µl f to µl FO (and back to µl) Family-based partitioning algorithm for µl f Case study: minepump SPL benchmark 5 Conclusions and future work The quest for an efficient partitioning strategy quancol / 25

3 Family-based modelling and analysis quancol.... Software product line (SPL) or product family Configurable (software) system whose variants (products) differ by the provided features, i.e. the functionality that is relevant for an end-user Popular in embedded and critical systems domain: formal modelling and analysis techniques for proving SPL behaviour correct are widely studied Thüm et al., A classification and survey of analysis strategies for ACM Comput. Surv. (2014) Challenge existing formal methods and tools by potentially high number of different products, each giving rise to a large state space in general Lift success stories from products to families exploiting variability Dedicated family-based SPL behavioural models and model checkers (e.g. FTSs, Feature Nets, MTSs, PL-CCS, DeltaCCS, QFLan, SNIP, ProVeLines, VMC) but recently... Dimovski et al., Family-based model checking without a family-based model SPIN 15 Chrszon et al., Family-based modeling and analysis for probabilistic systems featuring FASE 16 Dimovski et al., Variability-specific Abstraction Refinement for Family-based Model FASE 17 3 / 25

4 Family-based modelling and analysis quancol.... Software product line (SPL) or product family Configurable (software) system whose variants (products) differ by the provided features, i.e. the functionality that is relevant for an end-user Popular in embedded and critical systems domain: formal modelling and analysis techniques for proving SPL behaviour correct are widely studied Thüm et al., A classification and survey of analysis strategies for ACM Comput. Surv. (2014) Challenge existing formal methods and tools by potentially high number of different products, each giving rise to a large state space in general Lift success stories from products to families exploiting variability Dedicated family-based SPL behavioural models and model checkers (e.g. FTSs, Feature Nets, MTSs, PL-CCS, DeltaCCS, QFLan, SNIP, ProVeLines, VMC) but recently... Dimovski et al., Family-based model checking without a family-based model SPIN 15 Chrszon et al., Family-based modeling and analysis for probabilistic systems featuring FASE 16 Dimovski et al., Variability-specific Abstraction Refinement for Family-based Model FASE 17 3 / 25

5 Family-based modelling and analysis quancol.... Software product line (SPL) or product family Configurable (software) system whose variants (products) differ by the provided features, i.e. the functionality that is relevant for an end-user Popular in embedded and critical systems domain: formal modelling and analysis techniques for proving SPL behaviour correct are widely studied Thüm et al., A classification and survey of analysis strategies for ACM Comput. Surv. (2014) Challenge existing formal methods and tools by potentially high number of different products, each giving rise to a large state space in general Lift success stories from products to families exploiting variability Dedicated family-based SPL behavioural models and model checkers (e.g. FTSs, Feature Nets, MTSs, PL-CCS, DeltaCCS, QFLan, SNIP, ProVeLines, VMC) but recently... Dimovski et al., Family-based model checking without a family-based model SPIN 15 Chrszon et al., Family-based modeling and analysis for probabilistic systems featuring FASE 16 Dimovski et al., Variability-specific Abstraction Refinement for Family-based Model FASE 17 3 / 25

6 Family-based modelling and analysis quancol.... Software product line (SPL) or product family Configurable (software) system whose variants (products) differ by the provided features, i.e. the functionality that is relevant for an end-user Popular in embedded and critical systems domain: formal modelling and analysis techniques for proving SPL behaviour correct are widely studied Thüm et al., A classification and survey of analysis strategies for ACM Comput. Surv. (2014) Challenge existing formal methods and tools by potentially high number of different products, each giving rise to a large state space in general Lift success stories from products to families exploiting variability Dedicated family-based SPL behavioural models and model checkers (e.g. FTSs, Feature Nets, MTSs, PL-CCS, DeltaCCS, QFLan, SNIP, ProVeLines, VMC) but recently... Dimovski et al., Family-based model checking without a family-based model SPIN 15 Chrszon et al., Family-based modeling and analysis for probabilistic systems featuring FASE 16 Dimovski et al., Variability-specific Abstraction Refinement for Family-based Model FASE 17 3 / 25

7 FTS: featured transition systems Classen et al., Model Checking Lots of ICSE 10 quancol.... FTS F = (S, θ, s ) over actions A and features F (typical element f) S a finite set of states θ : S A S B[F ] the transition constraint function s S the initial state LTS L = (S,, s ) over actions A S a finite set of states S A S the transition relation s S the initial state 4 / 25

8 FTS: featured transition systems Classen et al., Model Checking Lots of ICSE 10 quancol.... FTS F = (S, θ, s ) over actions A and features F (typical element f) S a finite set of states θ : S A S B[F ] the transition constraint function s S the initial state LTS F p = (S, F p, s ) projection of F with respect to product p F p S A S such that s a F p t iff p = θ(s, a, t) P 2 F set of products p, q,... P P product family, identified by feature expression γ P B[F ] γ B[F ] interpreted as set of products Q γ, i.e. products p for which the induced truth assignment (true for f p, false for f p) validates γ 4 / 25

9 FTS of example SPL quancol.... Product line of (four) coffee machines with independent features {$, e} F std ins ins $ s 0 s 1 s 2 xxl F p 1 std F p 2 std s 0 ins s 1 ins s 2 xxl s ins 0 s 1 s 2 xxl Products with feature $ can obtain an xxl coffee upon coin insertion, but products without cannot how to express this? and how to model check this efficiently? 5 / 25

10 FTS of example SPL quancol.... Product line of (four) coffee machines with independent features {$, e} F std ins ins $ s 0 s 1 s 2 xxl F p 1 std F p 2 std s 0 ins s 1 ins s 2 xxl s ins 0 s 1 s 2 xxl Products with feature $ can obtain an xxl coffee upon coin insertion, but products without cannot how to express this? and how to model check this efficiently? 5 / 25

11 Towards family-based model checking quancol.... We showed how to use mcrl2 for product-based model checking of SPL models ter Beek & de FormaliSE 14, SPLC 14 We proposed a feature-oriented modular verification technique for SPL models with mcrl2 ter Beek & de FMSPLE 14, ISoLA 14 We extended branching bisimulation for LTSs to branching feature bisimulation for FTSs Belder, ter Beek & de FMSPLE 15 We defined feature-oriented modal µ-calculi to reason on FTSs by explicitly incorporating feature expressions in the modal operators ter Beek, de Vink & FMSPLE 16 We showed how to use off-the-shelf tools like mcrl2 for familybased model checking of SPL models ter Beek, de Vink & FASE 17 6 / 25

12 Towards family-based model checking quancol.... We showed how to use mcrl2 for product-based model checking of SPL models ter Beek & de FormaliSE 14, SPLC 14 We proposed a feature-oriented modular verification technique for SPL models with mcrl2 ter Beek & de FMSPLE 14, ISoLA 14 We extended branching bisimulation for LTSs to branching feature bisimulation for FTSs Belder, ter Beek & de FMSPLE 15 We defined feature-oriented modal µ-calculi to reason on FTSs by explicitly incorporating feature expressions in the modal operators ter Beek, de Vink & FMSPLE 16 We showed how to use off-the-shelf tools like mcrl2 for familybased model checking of SPL models ter Beek, de Vink & FASE 17 6 / 25

13 mcrl2: language and toolset quancol.... Formal, process-algebraic specification of distributed and concurrent systems, associated industrial-strength toolset Explore 10 6 states/second, state spaces up to states Built-in datatypes (e.g. Bool, Int, Real, Sets, Functions) and user-defined abstract datatypes, parametrised actions Modal µ-calculus with data (subsuming LTL, CTL, etc.) Visualisation, behavioural reduction, model checking Highly optimised, actively maintained Intermediate artifacts user-accessible 7 / 25

14 mcrl2: language and toolset quancol.... Formal, process-algebraic specification of distributed and concurrent systems, associated industrial-strength toolset Explore 10 6 states/second, state spaces up to states Built-in datatypes (e.g. Bool, Int, Real, Sets, Functions) and user-defined abstract datatypes, parametrised actions Modal µ-calculus with data (subsuming LTL, CTL, etc.) Visualisation, behavioural reduction, model checking Highly optimised, actively maintained Intermediate artifacts user-accessible 7 / 25

15 mcrl2: language and toolset quancol.... Formal, process-algebraic specification of distributed and concurrent systems, associated industrial-strength toolset Explore 10 6 states/second, state spaces up to states Built-in datatypes (e.g. Bool, Int, Real, Sets, Functions) and user-defined abstract datatypes, parametrised actions Modal µ-calculus with data (subsuming LTL, CTL, etc.) Visualisation, behavioural reduction, model checking Highly optimised, actively maintained Intermediate artifacts user-accessible 7 / 25

16 mcrl2: language and toolset quancol.... Formal, process-algebraic specification of distributed and concurrent systems, associated industrial-strength toolset Explore 10 6 states/second, state spaces up to states Built-in datatypes (e.g. Bool, Int, Real, Sets, Functions) and user-defined abstract datatypes, parametrised actions Modal µ-calculus with data (subsuming LTL, CTL, etc.) Visualisation, behavioural reduction, model checking Highly optimised, actively maintained Intermediate artifacts user-accessible 7 / 25

17 mcrl2: language and toolset quancol.... Formal, process-algebraic specification of distributed and concurrent systems, associated industrial-strength toolset Explore 10 6 states/second, state spaces up to states Built-in datatypes (e.g. Bool, Int, Real, Sets, Functions) and user-defined abstract datatypes, parametrised actions Modal µ-calculus with data (subsuming LTL, CTL, etc.) Visualisation, behavioural reduction, model checking Highly optimised, actively maintained Intermediate artifacts user-accessible 7 / 25

18 mcrl2: language and toolset quancol.... Formal, process-algebraic specification of distributed and concurrent systems, associated industrial-strength toolset Explore 10 6 states/second, state spaces up to states Built-in datatypes (e.g. Bool, Int, Real, Sets, Functions) and user-defined abstract datatypes, parametrised actions Modal µ-calculus with data (subsuming LTL, CTL, etc.) Visualisation, behavioural reduction, model checking Highly optimised, actively maintained Intermediate artifacts user-accessible 7 / 25

19 mcrl2: language and toolset quancol.... Formal, process-algebraic specification of distributed and concurrent systems, associated industrial-strength toolset Explore 10 6 states/second, state spaces up to states Built-in datatypes (e.g. Bool, Int, Real, Sets, Functions) and user-defined abstract datatypes, parametrised actions Modal µ-calculus with data (subsuming LTL, CTL, etc.) Visualisation, behavioural reduction, model checking Highly optimised, actively maintained Intermediate artifacts user-accessible 7 / 25

20 mcrl2: language and toolset quancol.... Formal, process-algebraic specification of distributed and concurrent systems, associated industrial-strength toolset Explore 10 6 states/second, state spaces up to states Built-in datatypes (e.g. Bool, Int, Real, Sets, Functions) and user-defined abstract datatypes, parametrised actions Modal µ-calculus with data (subsuming LTL, CTL, etc.) Visualisation, behavioural reduction, model checking Highly optimised, actively maintained Intermediate artifacts user-accessible 7 / 25

21 The modal µ-calculus µl quancol.... set of actions A, set of variables X µ-calculus µl over A and X, formula ϕ µl given by ϕ :: = ϕ ϕ ψ ϕ ψ a ϕ [a] ϕ X µx.ϕ νx.ϕ duality a ϕ [a] ϕ, a positive normal form avoids negations for µx.ϕ and νx.ϕ, all free occurrences of X in ϕ are in the scope of an even number of negations (guarantees well-definedness fixpoint formulae) 8 / 25

22 Examples of µl-formulae quancol.... a ( [b] c ) it is possible to execute action a, after which action b cannot be executed whereas action c can µx.( a X b ) there exists a finite repetition of executing action a, followed by an execution of action b νx. ( µy.[a]y [b]x ) action b is executed infinitely often on all infinite executions containing actions a and b 9 / 25

23 Examples of µl-formulae quancol.... a ( [b] c ) it is possible to execute action a, after which action b cannot be executed whereas action c can µx.( a X b ) there exists a finite repetition of executing action a, followed by an execution of action b νx. ( µy.[a]y [b]x ) action b is executed infinitely often on all infinite executions containing actions a and b µx : finite looping 9 / 25

24 Examples of µl-formulae quancol.... a ( [b] c ) it is possible to execute action a, after which action b cannot be executed whereas action c can µx.( a X b ) there exists a finite repetition of executing action a, followed by an execution of action b νx. ( µy.[a]y [b]x ) action b is executed infinitely often on all infinite executions containing actions a and b µx : finite looping vs. νx : infinite looping 9 / 25

25 Semantics of µl over LTSs quancol.... state sets U sset = 2 S, state-based environments ε senv = X sset semantics [[ ]] L : µl senv sset [[ ]] L (ε) = [[ ]] L (ε) = S [[ ϕ]] L (ε) = S \ [[ ϕ]] L (ε) [[ (ϕ ψ) ]] L (ε) = [[ ϕ]] L (ε) [[ψ ]] L (ε) [[ (ϕ ψ) ]] L (ε) = [[ ϕ]] L (ε) [[ψ ]] L (ε) [[ a ϕ]] L (ε) = { s t : s [[[a]ϕ]] L (ε) = { s t : s [[X ]] L (ε) = ε(x ) a t t [[ ϕ]] L (ε) } a t t [[ ϕ]] L (ε) } [[ µx.ϕ]] L (ε) = lfp( U [[ ϕ]] L (ε[u/x ]) ) [[ νx.ϕ]] L (ε) = gfp( U [[ ϕ]] L (ε[u/x ]) ) variant environment ε[u/x ] yields ε(y ) for Y X, the set U for X 10 / 25

26 Semantics of µl over LTSs quancol.... state sets U sset = 2 S, state-based environments ε senv = X sset semantics [[ ]] L : µl senv sset [[ ]] L (ε) = [[ ]] L (ε) = S [[ ϕ]] L (ε) = S \ [[ ϕ]] L (ε) [[ (ϕ ψ) ]] L (ε) = [[ ϕ]] L (ε) [[ψ ]] L (ε) [[ (ϕ ψ) ]] L (ε) = [[ ϕ]] L (ε) [[ψ ]] L (ε) [[ a ϕ]] L (ε) = { s t : s [[[a]ϕ]] L (ε) = { s t : s [[X ]] L (ε) = ε(x ) a t t [[ ϕ]] L (ε) } a t t [[ ϕ]] L (ε) } [[ µx.ϕ]] L (ε) = lfp( U [[ ϕ]] L (ε[u/x ]) ) [[ νx.ϕ]] L (ε) = gfp( U [[ ϕ]] L (ε[u/x ]) ) variant environment ε[u/x ] yields ε(y ) for Y X, the set U for X 10 / 25

27 A feature µ-calculus µl f quancol.... set of actions A, set of features F, set of variables X feature µ-calculus µl f over A, F, and X, formula ϕ f µl f given by ϕ f ::= ϕ f ϕ f ψ f ϕ f ψ f a χ ϕ f [a χ]ϕ f X µx.ϕ f νx.ϕ f for µx.ϕ f and νx.ϕ f an even number of negations as before 11 / 25

28 A semantics of µl f over FTSs quancol.... state-family pairs (s, P) spset = 2 S 2P state-family environments ζ spenv = X spset semantics [[ ]] F : µl f spenv spset [[ ]] F (ζ) = [[ ]] F (ζ) = S 2 P [[ ϕ f ]] F (ζ) = (S 2 P ) \ [[ ϕ f ]] F (ζ) [[ (ϕ f ψ f ) ]] F (ζ) = [[ ϕ f ]] F (ζ) [[ψ f ]] F (ζ) [[ (ϕ f ψ f ) ]] F (ζ) = [[ ϕ f ]] F (ζ) [[ψ f ]] F (ζ) [[ a χ ϕ f ]] F (ζ) =... [[[a χ] ϕ f ]] F (ζ) =... [[X ]] F (ζ) = ζ (X ) [[ µx.ϕ f ]] F (ζ) = lfp( W [[ ϕ f ]] F (ζ[w /X ]) ) [[ νx.ϕ f ]] F (ζ) = gfp( W [[ ϕ f ]] F (ζ[w /X ]) ) 12 / 25

29 A semantics of µl f over FTSs quancol.... [[ a χ ϕ f ]] F (ζ) = { (s, P) P Q χ γ, t : s a γ F t P Q γ (t, P Q χ Q γ ) [[ ϕ f ]] F (ζ) } a χ ϕ f holds (for a family P with respect to an FTS F in a state s) if all products in P satisfy the feature expression χ and there is an a-transition, shared among all products in P, that leads to a state where ϕ f holds for P [[[a χ] ϕ f ]] F (ζ) = { (s, P) γ, t : s a γ F t P Q χ Q γ (t, P Q χ Q γ ) [[ ϕ f ]] F (ζ) } [a χ] ϕ f holds (for a family P with respect to an FTS F in a state s) if for each subsetp of P for which an a-transition is possible, ϕ f holds for P in the target state of that a-transition 13 / 25

30 A semantics of µl f over FTSs quancol.... [[ a χ ϕ f ]] F (ζ) = { (s, P) P Q χ γ, t : s a γ F t P Q γ (t, P Q χ Q γ ) [[ ϕ f ]] F (ζ) } a χ ϕ f holds (for a family P with respect to an FTS F in a state s) if all products in P satisfy the feature expression χ and there is an a-transition, shared among all products in P, that leads to a state where ϕ f holds for P [[[a χ] ϕ f ]] F (ζ) = { (s, P) γ, t : s a γ F t P Q χ Q γ (t, P Q χ Q γ ) [[ ϕ f ]] F (ζ) } [a χ] ϕ f holds (for a family P with respect to an FTS F in a state s) if for each subsetp of P for which an a-transition is possible, ϕ f holds for P in the target state of that a-transition 13 / 25

31 Example µl f formula: duality lost quancol.... s,p = F ϕ f iff (s,p) [[ ϕ f ]] F s 0 a f a f s 1 s 2 Products p 1 = {f, g } and p 2 = {g } Clearly: {f, g } = F p1 a {g } = F p2 a but... {p 1, p 2 } = F a Hence, since neither {p 1, p 2 } = F a nor {p 1, p 2 } = F [a ], a χ and [a χ] are not each other s dual 14 / 25

32 Example µl f formula: duality lost quancol.... s,p = F ϕ f iff (s,p) [[ ϕ f ]] F s 0 a f a f s 1 s 2 Products p 1 = {f, g } and p 2 = {g } Clearly: {f, g } = F p1 a {g } = F p2 a but... {p 1, p 2 } = F a Hence, since neither {p 1, p 2 } = F a nor {p 1, p 2 } = F [a ], a χ and [a χ] are not each other s dual 14 / 25

33 Example µl f formula: duality lost quancol.... s,p = F ϕ f iff (s,p) [[ ϕ f ]] F s 0 a f a f s 1 s 2 Products p 1 = {f, g } and p 2 = {g } Clearly: {f, g } = F p1 a {g } = F p2 a but... {p 1, p 2 } = F a Hence, since neither {p 1, p 2 } = F a nor {p 1, p 2 } = F [a ], a χ and [a χ] are not each other s dual 14 / 25

34 Examples of µl f -formulae quancol.... ins ( [ins e] std ) the family of products P that can execute ins, after which ins cannot be executed by products F std ins ins $ s 0 s 1 s 2 xxl satisfying e, while std can be executed by all products of P νx. µy. ( ([ins e]y [xxl e]y ) [std e]x ) for the (sub)family of products with feature e, action std occurs infinitely often on all infinite runs over {ins, xxl, std } [ true ] ( ( [ ins $ ] true. xxl ) [ xxl $ ] ) products with feature $ can obtain an xxl coffee upon coin insertion, but products without cannot 15 / 25

35 Examples of µl f -formulae quancol.... ins ( [ins e] std ) the family of products P that can execute ins, after which ins cannot be executed by products F std ins ins $ s 0 s 1 s 2 xxl satisfying e, while std can be executed by all products of P νx. µy. ( ([ins e]y [xxl e]y ) [std e]x ) for the (sub)family of products with feature e, action std occurs infinitely often on all infinite runs over {ins, xxl, std } [ true ] ( ( [ ins $ ] true. xxl ) [ xxl $ ] ) products with feature $ can obtain an xxl coffee upon coin insertion, but products without cannot 15 / 25

36 Examples of µl f -formulae quancol.... ins ( [ins e] std ) the family of products P that can execute ins, after which ins cannot be executed by products F std ins ins $ s 0 s 1 s 2 xxl satisfying e, while std can be executed by all products of P νx. µy. ( ([ins e]y [xxl e]y ) [std e]x ) for the (sub)family of products with feature e, action std occurs infinitely often on all infinite runs over {ins, xxl, std } [ true ] ( ( [ ins $ ] true. xxl ) [ xxl $ ] ) products with feature $ can obtain an xxl coffee upon coin insertion, but products without cannot multi-feature µl f formula, novel also w.r.t. fltl and fctl 15 / 25

37 From µl f to µl quancol.... Model checking a µl f -formula over an FTS for an individual product reduces to model checking a µl-formula over the corresponding LTS projection function pr : µl f P µl pr(, p) = pr(, p) = pr( ϕ f, p) = pr(ϕ f, p) pr(ϕ f ψ f, p) = pr(ϕ f ) pr(ψ f ) pr(ϕ f ψ f, p) = pr(ϕ f ) pr(ψ f ) pr( a χ ϕ f, p) = if p Q χ then a pr(ϕ f, p) else end pr([a χ] ϕ f, p) = if p Q χ then [a]pr(ϕ f, p) else end pr(x, p) = X pr(µx.ϕ f, p) = µx.pr(ϕ f, p) pr(νx.ϕ f, p) = νx.pr(ϕ f, p) 16 / 25

38 From µl f to µl quancol.... Model checking a µl f -formula over an FTS for an individual product reduces to model checking a µl-formula over the corresponding LTS projection function pr : µl f P µl pr(, p) = pr(, p) = pr( ϕ f, p) = pr(ϕ f, p) pr(ϕ f ψ f, p) = pr(ϕ f ) pr(ψ f ) pr(ϕ f ψ f, p) = pr(ϕ f ) pr(ψ f ) pr( a χ ϕ f, p) = if p Q χ then a pr(ϕ f, p) else end pr([a χ] ϕ f, p) = if p Q χ then [a]pr(ϕ f, p) else end pr(x, p) = X pr(µx.ϕ f, p) = µx.pr(ϕ f, p) pr(νx.ϕ f, p) = νx.pr(ϕ f, p) 16 / 25

39 Main results of FMSPLE 16 quancol.... Given an FTS F and a set of products P Theorem 1 s, {p} = F ϕ f s = F p pr(ϕ f, p) closed ϕ f µl f, s S, product p P Theorem 2 s, P = F ϕ f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P Note: in general s, P = F ϕ f does not imply s = F p pr(ϕ f, p) for all products in family P 17 / 25

40 Main results of FMSPLE 16 quancol.... Given an FTS F and a set of products P Theorem 1 s, {p} = F ϕ f s = F p pr(ϕ f, p) closed ϕ f µl f, s S, product p P Theorem 2 s, P = F ϕ f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P Note: in general s, P = F ϕ f does not imply s = F p pr(ϕ f, p) for all products in family P 17 / 25

41 Main results of FMSPLE 16 quancol.... Given an FTS F and a set of products P Theorem 1 s, {p} = F ϕ f s = F p pr(ϕ f, p) closed ϕ f µl f, s S, product p P Theorem 2 s, P = F ϕ f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P Note: in general s, P = F ϕ f does not imply s = F p pr(ϕ f, p) for all products in family P 17 / 25

42 Main results of FMSPLE 16 quancol.... Given an FTS F and a set of products P Theorem 1 s, {p} = F ϕ f s = F p pr(ϕ f, p) closed ϕ f µl f, s S, product p P Theorem 2 s, P = F ϕ f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P Note: in general s, P = F ϕ f does not imply s = F p pr(ϕ f, p) for all products in family P 17 / 25

43 A first-order µ-calculus with data µl FO quancol.... set of sorted actions A, set of features F, set of data variables V, set of recursion variables X µ-calculus with data µl FO over A, F,V and X, formula ϕ µl FO given by ϕ f ::= ϕ ϕ ψ ϕ ψ γ 1 γ 2 (Q γ1 Q γ2 ).ϕ.ϕ a() ϕ [a()] ϕ X (γ) µ X( X :=γ).ϕ ν X( X :=γ).ϕ with the usual restrictions on free variables and the number of negations 18 / 25

44 Semantics µl FO over parametrised LTSs FTS F = (S, θ, s ) over actions A and features F quancol.... S a finite set of states θ : S A S B[F ] the transition constraint function s S the initial state LTS L = (S,, s ) over actions A S a finite set of states S A S the transition relation s S the initial state 19 / 25

45 Semantics µl FO over parametrised LTSs FTS F = (S, θ, s ) over actions A and features F quancol.... S a finite set of states θ : S A S B[F ] the transition constraint function s S the initial state parametrised LTS L(F ) = (S,, s ) for F over actions A[F ] = { a(γ) a A, γ B[F ] } is defined by s a(γ) t iff θ(s, a, t) = γ and γ µl FO is a fragment of the logic from: Groote & Mateescu, Verification of temporal properties of processes in a setting with AMAST 99 Groote & Willemse, Model-checking processes with Sci. Comput. Program. (2005) where its full semantics can be found 19 / 25

46 Semantics µl FO over parametrised LTSs FTS F = (S, θ, s ) over actions A and features F quancol.... S a finite set of states θ : S A S B[F ] the transition constraint function s S the initial state parametrised LTS L(F ) = (S,, s ) for F over actions A[F ] = { a(γ) a A, γ B[F ] } is defined by s a(γ) t iff θ(s, a, t) = γ and γ e.g. [[ a() ϕ]] FO (ξ)(θ) = { s γ,t : s t a(γ) θ() =Q γ t [[ ϕ]] FO (ξ)(θ) } i.e. a() ϕ holds if there is a transition s a(γ) t such that family θ() equals family Q γ (associated with transition s feature expression γ) and t satisfies ϕ 19 / 25

47 From µl f to µl FO quancol.... translation function tr : B[F ] µl f µl FO tr(γ, ) = tr(γ, ) = tr(γ, ϕ f ) = tr(γ, ϕ f ) tr(γ, ϕ f ψ f ) = tr(γ, ϕ f ) tr(γ, ψ f ) tr(γ, ϕ f ψ f ) = tr(γ, ϕ f ) tr(γ, ψ f ) tr(γ, a χ ϕ f ) = (γ χ). a() ((γ ) tr(γ χ, ϕ f )) tr(γ,[a χ]ϕ f ) =.[a()]((γ χ ) tr(γ χ, ϕ f )) tr(γ, X ) = X (γ) tr(γ, µx.ϕ f ) = µ X (:=γ).tr(, ϕ f ) tr(γ, νx.ϕ f ) = ν X (:=γ).tr(, ϕ f ) 20 / 25

48 A main result of FASE 17 quancol.... Given an FTS F and a set of products P Theorem 3 s, P = F ϕ f s = L(F ) tr(γ P, ϕ f ) closed ϕ f µl f, s S, family P P Theorem 2 s, P = F ϕ f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P Lemma 1 s, P = F ϕ c f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P 21 / 25

49 A main result of FASE 17 quancol.... Given an FTS F and a set of products P Theorem 3 s, P = F ϕ f s = L(F ) tr(γ P, ϕ f ) closed ϕ f µl f, s S, family P P Theorem 2 s, P = F ϕ f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P Lemma 1 s, P = F ϕ c f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P 21 / 25

50 Recall a result of FMSPLE 16 quancol.... Given an FTS F and a set of products P Theorem 3 s, P = F ϕ f s = L(F ) tr(γ P, ϕ f ) closed ϕ f µl f, s S, family P P Theorem 2 s, P = F ϕ f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P Lemma 1 s, P = F ϕ c f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P 21 / 25

51 Another result of FASE 17 quancol.... Given an FTS F and a set of products P Theorem 3 s, P = F ϕ f s = L(F ) tr(γ P, ϕ f ) closed ϕ f µl f, s S, family P P Theorem 2 s, P = F ϕ f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P Lemma 1 s, P = F ϕ c f = p P : s = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, s S, family P P 21 / 25

52 Family-based partitioning for µl f quancol.... Given a negation-free ϕ f and a family P, compute a partitioning (P, P ) of P satisfying p P : s, p = F p pr(ϕ f, p) and p P : s, p = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, family P P Algorithm 1 Family-Based Partitioning 1: function fbp(p, ϕ f ) 2: if s, P = F ϕ f then return (P, ) 3: else 4: if s, P = F ϕf c then return (, P) 5: else partition P into (P 1, P 2 ) 6: (P 1 +, P 1 ) fbp(p 1, ϕ f ) 7: (P 2 +, P 2 ) fbp(p 2, ϕ f ) 8: return (P 1 + P+ 2, P 1 P 2 ) 9: end if 10: end if 11: end function 22 / 25

53 Family-based partitioning algorithm quancol.... Theorem 4 fbp(p, ϕ f ) terminates and returns a partitioning (P, P ) of P satisfying p P : s, p = F p pr(ϕ f, p) and p P : s, p = F p pr(ϕ f, p) closed, negation-free ϕ f µl f, family P P Algorithm 1 Family-Based Partitioning 1: function fbp(p, ϕ f ) 2: if s, P = F ϕ f then return (P, ) 3: else 4: if s, P = F ϕf c then return (, P) 5: else partition P into (P 1, P 2 ) 6: (P 1 +, P 1 ) fbp(p 1, ϕ f ) 7: (P 2 +, P 2 ) fbp(p 2, ϕ f ) 8: return (P 1 + P+ 2, P 1 P 2 ) 9: end if 10: end if 11: end function 22 / 25

54 Minepump SPL benchmark ( P = 2 7 ) Classen et al., Featured transition systems: Foundations for verifying variabilityintensive systems and their application to LTL model checking. IEEE Trans. Softw. Eng. (2013) quancol.... Φ property in µlf result one-by-one all-in-one ϕ1 Absence of deadlock [ true ] true 128/ ϕ2 The controller cannot infinitely often receive water level readings µx. [ ( levelmsg ). levelmsg ] X 0/ ϕ3 The controller cannot fairly receive each of the three message types µx. ( [ true. commandmsg ] X [ true. alarmmsg ] X [ true. levelmsg ] X ) 0/ The pump cannot be switched on infinitely often ϕ4 ( µx. νy. ( [ pumpstart. ( pumpstop ). pumpstop ] X [ pumpstart ] Y ) ) ( [ true. pumpstart ] µz. [ pumpstop ] Z ) 96/ The system cannot be in a situation in which the pump runs indefinitely in the presence of methane ϕ5 [ true ] ( ( [pumpstart. ( pumpstop ). methanerise] µx. [R]X ) ( [methanerise. ( methanelower ). pumpstart] µx. [R]X ) ) for R = ( pumpstop + methanelower ) 96/ Assuming fairness (ϕ3), the system cannot be in a situation in which the pump runs indefinitely in the presence of methane (ϕ5) ϕ6 [ true ] ( ( [ pumpstart. ( pumpstop ). methanerise ] Ψ ) ( [ methanerise. ( methanelower ). pumpstart ] Ψ ) ) for Ψ = µx. ( [ R. commandmsg ] X [ R. alarmmsg ] X [ R. levelmsg ] X ) and R as before 112/ ϕ7 The controller can always eventually receive/read a message, i.e. return to its initial state from any state [ true ] true. receivemsg 128/ ϕ8 Invariantly the pump is not started when the low water level signal fires [ true. lowlevel. ( (normallevel + highlevel)). pumpstart.] 128/ ϕ9 Invariantly, when the level of methane rises, it inevitably decreases [ true. methanerise ] µx. [ methanelower ] X true 0/ Products with feature Ct can switch on the pump ϕ10 true. pumpstart Ct 32/ Products with feature Ct can always switch on the pump ϕ11 [ true Ct ] true. pumpstart Ct 28/ Products with features {Ct, Ma, Lh} can start the pump upon a high water level, but products without feature Lh cannot ϕ12 [true ] (([highlevel Ct Ma Lh] true.pumpstart ) [pumpstart Lh] ) 128/ mcrl2 code distributed with mcrl2 toolset (svn revision 14493) 23 / 25

55 Conclusions and future work quancol.... Introduced and compared feature-oriented µ-calculi with FTS semantics Resembles fltl and fctl by Classen et al., but µl f is more expressive Translation to µl FO allows family-based model checking multi-feature properties of configurable systems with off-the-shelf tools (e.g. mcrl2) Defined a first (naive) family-based partitioning procedure for µl f ; its efficiency depends on initial partitioning of P and quality of refinements Future work: improve partitioning strategy 1. Determine heuristics for finding a good initial partitioning of P 2. Extract information from failed model-checking problems to find a good split-up of the family of products in line 5 of Algorithm 1? (difficult in particular for µ-calculus, since easily-interpretable feedback from its model checkers is generally missing so far) 24 / 25

56 Conclusions and future work quancol.... Introduced and compared feature-oriented µ-calculi with FTS semantics Resembles fltl and fctl by Classen et al., but µl f is more expressive Translation to µl FO allows family-based model checking multi-feature properties of configurable systems with off-the-shelf tools (e.g. mcrl2) Defined a first (naive) family-based partitioning procedure for µl f ; its efficiency depends on initial partitioning of P and quality of refinements Future work: improve partitioning strategy 1. Determine heuristics for finding a good initial partitioning of P 2. Extract information from failed model-checking problems to find a good split-up of the family of products in line 5 of Algorithm 1? (difficult in particular for µ-calculus, since easily-interpretable feedback from its model checkers is generally missing so far) 24 / 25

57 Conclusions and future work quancol.... Introduced and compared feature-oriented µ-calculi with FTS semantics Resembles fltl and fctl by Classen et al., but µl f is more expressive Translation to µl FO allows family-based model checking multi-feature properties of configurable systems with off-the-shelf tools (e.g. mcrl2) Defined a first (naive) family-based partitioning procedure for µl f ; its efficiency depends on initial partitioning of P and quality of refinements Future work: improve partitioning strategy 1. Determine heuristics for finding a good initial partitioning of P 2. Extract information from failed model-checking problems to find a good split-up of the family of products in line 5 of Algorithm 1? (difficult in particular for µ-calculus, since easily-interpretable feedback from its model checkers is generally missing so far) 24 / 25

58 Conclusions and future work quancol.... Introduced and compared feature-oriented µ-calculi with FTS semantics Resembles fltl and fctl by Classen et al., but µl f is more expressive Translation to µl FO allows family-based model checking multi-feature properties of configurable systems with off-the-shelf tools (e.g. mcrl2) Defined a first (naive) family-based partitioning procedure for µl f ; its efficiency depends on initial partitioning of P and quality of refinements Future work: improve partitioning strategy 1. Determine heuristics for finding a good initial partitioning of P 2. Extract information from failed model-checking problems to find a good split-up of the family of products in line 5 of Algorithm 1? (difficult in particular for µ-calculus, since easily-interpretable feedback from its model checkers is generally missing so far) 24 / 25

59 Conclusions and future work quancol.... Introduced and compared feature-oriented µ-calculi with FTS semantics Resembles fltl and fctl by Classen et al., but µl f is more expressive Translation to µl FO allows family-based model checking multi-feature properties of configurable systems with off-the-shelf tools (e.g. mcrl2) Defined a first (naive) family-based partitioning procedure for µl f ; its efficiency depends on initial partitioning of P and quality of refinements Future work: improve partitioning strategy 1. Determine heuristics for finding a good initial partitioning of P 2. Extract information from failed model-checking problems to find a good split-up of the family of products in line 5 of Algorithm 1? (difficult in particular for µ-calculus, since easily-interpretable feedback from its model checkers is generally missing so far) 24 / 25

60 Conclusions and future work quancol.... Introduced and compared feature-oriented µ-calculi with FTS semantics Resembles fltl and fctl by Classen et al., but µl f is more expressive Translation to µl FO allows family-based model checking multi-feature properties of configurable systems with off-the-shelf tools (e.g. mcrl2) Defined a first (naive) family-based partitioning procedure for µl f ; its efficiency depends on initial partitioning of P and quality of refinements Future work: improve partitioning strategy 1. Determine heuristics for finding a good initial partitioning of P 2. Extract information from failed model-checking problems to find a good split-up of the family of products in line 5 of Algorithm 1? (difficult in particular for µ-calculus, since easily-interpretable feedback from its model checkers is generally missing so far) 24 / 25

61 Conclusions and future work quancol.... Introduced and compared feature-oriented µ-calculi with FTS semantics Resembles fltl and fctl by Classen et al., but µl f is more expressive Translation to µl FO allows family-based model checking multi-feature properties of configurable systems with off-the-shelf tools (e.g. mcrl2) Defined a first (naive) family-based partitioning procedure for µl f ; its efficiency depends on initial partitioning of P and quality of refinements Future work: improve partitioning strategy 1. Determine heuristics for finding a good initial partitioning of P 2. Extract information from failed model-checking problems to find a good split-up of the family of products in line 5 of Algorithm 1? (difficult in particular for µ-calculus, since easily-interpretable feedback from its model checkers is generally missing so far) 24 / 25

62 Conclusions and future work quancol.... Introduced and compared feature-oriented µ-calculi with FTS semantics Resembles fltl and fctl by Classen et al., but µl f is more expressive Translation to µl FO allows family-based model checking multi-feature properties of configurable systems with off-the-shelf tools (e.g. mcrl2) Defined a first (naive) family-based partitioning procedure for µl f ; its efficiency depends on initial partitioning of P and quality of refinements Future work: improve partitioning strategy 1. Determine heuristics for finding a good initial partitioning of P 2. Extract information from failed model-checking problems to find a good split-up of the family of products in line 5 of Algorithm 1? (difficult in particular for µ-calculus, since easily-interpretable feedback from its model checkers is generally missing so far) 24 / 25

63 The quest for an efficient strategy quancol.... Execution of Algorithm 1 for deadlock freedom (ϕ 1 ) and with initial family (family characterised at node is conjunction of features along path from root) Ma 2.2 Ma 2.3 Ln 2.9 Ln 3.0 Cp 2.6 Cp 1.7 Cp 1.0 Cp 1.1 Ma 1.3 Ma 2.7 Ma 1.6 Ma 2.2 Ct 1.6 Ct 0.5 Ct 1.5 Ct 0.8 Ct 1.7 Ct 0.6 Ct 0.8 Ct Mq 0.7 Mq 1.0 Mq 0.8 Mq 0.9 Mq 0.7 Mq 0.4 Mq 0.8 Mq 0.6 (time in seconds) Optimal partitioning strategy Total computation time: 27.9 Computation time leaves: 8.4 (i.e. Mq, Mq, and Ct nodes) At once possible families: 2.07 Non-optimal partitioning strategy (splitting Ln and Ln, then optimal) Total computation time: 45.0 (+60%) 25 / 25

From Featured Transition Systems to Modal Transition Systems with Variability Constraints: A Model Transformation

From Featured Transition Systems to Modal Transition Systems with Variability Constraints: A Model Transformation From Featured Transition Systems to Modal Transition Systems with Variability Constraints: A Model Transformation Maurice ter Beek, Stefania Gnesi & Franco Mazzanti Formal Methods and Tools lab, ISTI-CNR,

More information

Introduction to Temporal Logic. The purpose of temporal logics is to specify properties of dynamic systems. These can be either

Introduction to Temporal Logic. The purpose of temporal logics is to specify properties of dynamic systems. These can be either Introduction to Temporal Logic The purpose of temporal logics is to specify properties of dynamic systems. These can be either Desired properites. Often liveness properties like In every infinite run action

More information

Modelling and Analysing Variability in Product Families

Modelling and Analysing Variability in Product Families Modelling and Analysing Variability in Product Families Maurice H. ter Beek ISTI CNR, Pisa, Italy joint work with P. Asirelli A. Fantechi S. Gnesi ISTI CNR University of Florence ISTI CNR University of

More information

A logical framework to deal with variability

A logical framework to deal with variability A logical framework to deal with variability (research in progress) M.H. ter Beek joint work with P. Asirelli, A. Fantechi and S. Gnesi ISTI CNR Università di Firenze XXL project meeting Pisa, 21 June

More information

Feature-based modular verification of software product lines. Maurice ter Beek

Feature-based modular verification of software product lines. Maurice ter Beek Feature-based modular verification of software product lines Maurice ter Beek ISTI CNR, Pisa 3rd General Meeting CINA, Torino February 12, 2015 joint work with Erik de Vink and Tessa Belder (TU Eindhoven

More information

Chapter 4: Computation tree logic

Chapter 4: Computation tree logic INFOF412 Formal verification of computer systems Chapter 4: Computation tree logic Mickael Randour Formal Methods and Verification group Computer Science Department, ULB March 2017 1 CTL: a specification

More information

Temporal logics and explicit-state model checking. Pierre Wolper Université de Liège

Temporal logics and explicit-state model checking. Pierre Wolper Université de Liège Temporal logics and explicit-state model checking Pierre Wolper Université de Liège 1 Topics to be covered Introducing explicit-state model checking Finite automata on infinite words Temporal Logics and

More information

Partial model checking via abstract interpretation

Partial model checking via abstract interpretation Partial model checking via abstract interpretation N. De Francesco, G. Lettieri, L. Martini, G. Vaglini Università di Pisa, Dipartimento di Ingegneria dell Informazione, sez. Informatica, Via Diotisalvi

More information

Chapter 6: Computation Tree Logic

Chapter 6: Computation Tree Logic Chapter 6: Computation Tree Logic Prof. Ali Movaghar Verification of Reactive Systems Outline We introduce Computation Tree Logic (CTL), a branching temporal logic for specifying system properties. A comparison

More information

Model Checking in the Propositional µ-calculus

Model Checking in the Propositional µ-calculus Model Checking in the Propositional µ-calculus Ka I Violet Pun INF 9140 - Specification and Verification of Parallel Systems 13 th May, 2011 Overview Model Checking is a useful means to automatically ascertain

More information

A linear translation from LTL to the first-order modal µ-calculus

A linear translation from LTL to the first-order modal µ-calculus A linear translation from LTL to the first-order modal µ-calculus Sjoerd Cranen Jan Friso Groote Michel Reniers {s.cranen, j.f.groote, m.a.reniers}@tue.nl Eindhoven University of Technology Department

More information

Alan Bundy. Automated Reasoning LTL Model Checking

Alan Bundy. Automated Reasoning LTL Model Checking Automated Reasoning LTL Model Checking Alan Bundy Lecture 9, page 1 Introduction So far we have looked at theorem proving Powerful, especially where good sets of rewrite rules or decision procedures have

More information

Modal and Temporal Logics

Modal and Temporal Logics Modal and Temporal Logics Colin Stirling School of Informatics University of Edinburgh July 23, 2003 Why modal and temporal logics? 1 Computational System Modal and temporal logics Operational semantics

More information

Helsinki University of Technology Laboratory for Theoretical Computer Science Research Reports 99

Helsinki University of Technology Laboratory for Theoretical Computer Science Research Reports 99 Helsinki University of Technology Laboratory for Theoretical Computer Science Research Reports 99 Teknillisen korkeakoulun tietojenkäsittelyteorian laboratorion tutkimusraportti 99 Espoo 2005 HUT-TCS-A99

More information

Abstracting real-valued parameters in parameterised boolean equation systems

Abstracting real-valued parameters in parameterised boolean equation systems Department of Mathematics and Computer Science Formal System Analysis Research Group Abstracting real-valued parameters in parameterised boolean equation systems Master Thesis M. Laveaux Supervisor: dr.

More information

The State Explosion Problem

The State Explosion Problem The State Explosion Problem Martin Kot August 16, 2003 1 Introduction One from main approaches to checking correctness of a concurrent system are state space methods. They are suitable for automatic analysis

More information

Introduction to mcrl2

Introduction to mcrl2 Introduction to mcrl2 Luís S. Barbosa DI-CCTC Universidade do Minho Braga, Portugal May, 2011 mcrl2: A toolset for process algebra mcrl2 provides: a generic process algebra, based on Acp (Bergstra & Klop,

More information

Overview. overview / 357

Overview. overview / 357 Overview overview6.1 Introduction Modelling parallel systems Linear Time Properties Regular Properties Linear Temporal Logic (LTL) Computation Tree Logic syntax and semantics of CTL expressiveness of CTL

More information

Probabilistic Model Checking Michaelmas Term Dr. Dave Parker. Department of Computer Science University of Oxford

Probabilistic Model Checking Michaelmas Term Dr. Dave Parker. Department of Computer Science University of Oxford Probabilistic Model Checking Michaelmas Term 2011 Dr. Dave Parker Department of Computer Science University of Oxford Overview Temporal logic Non-probabilistic temporal logic CTL Probabilistic temporal

More information

Linear Temporal Logic (LTL)

Linear Temporal Logic (LTL) Chapter 9 Linear Temporal Logic (LTL) This chapter introduces the Linear Temporal Logic (LTL) to reason about state properties of Labelled Transition Systems defined in the previous chapter. We will first

More information

CS357: CTL Model Checking (two lectures worth) David Dill

CS357: CTL Model Checking (two lectures worth) David Dill CS357: CTL Model Checking (two lectures worth) David Dill 1 CTL CTL = Computation Tree Logic It is a propositional temporal logic temporal logic extended to properties of events over time. CTL is a branching

More information

Time and Timed Petri Nets

Time and Timed Petri Nets Time and Timed Petri Nets Serge Haddad LSV ENS Cachan & CNRS & INRIA haddad@lsv.ens-cachan.fr DISC 11, June 9th 2011 1 Time and Petri Nets 2 Timed Models 3 Expressiveness 4 Analysis 1/36 Outline 1 Time

More information

On-the-Fly Model Checking for Extended Action-Based Probabilistic Operators

On-the-Fly Model Checking for Extended Action-Based Probabilistic Operators On-the-Fly Model Checking for Extended Action-Based Probabilistic Operators Radu Mateescu and José Ignacio Requeno Inria Grenoble and LIG / Convecs http://convecs.inria.fr SPIN 2016 - Eindhoven, March

More information

3-Valued Abstraction-Refinement

3-Valued Abstraction-Refinement 3-Valued Abstraction-Refinement Sharon Shoham Academic College of Tel-Aviv Yaffo 1 Model Checking An efficient procedure that receives: A finite-state model describing a system A temporal logic formula

More information

Model Checking for the -calculus. Paolo Zuliani , Spring 2011

Model Checking for the -calculus. Paolo Zuliani , Spring 2011 Model Checking for the -calculus Paolo Zuliani 15-817, Spring 2011 Outline What is the -calculus? Semantics Model Checking algorithms [Other fixpoint theorems] The -calculus A language for describing properties

More information

Helsinki University of Technology Laboratory for Theoretical Computer Science Research Reports 66

Helsinki University of Technology Laboratory for Theoretical Computer Science Research Reports 66 Helsinki University of Technology Laboratory for Theoretical Computer Science Research Reports 66 Teknillisen korkeakoulun tietojenkäsittelyteorian laboratorion tutkimusraportti 66 Espoo 2000 HUT-TCS-A66

More information

Linear Temporal Logic and Büchi Automata

Linear Temporal Logic and Büchi Automata Linear Temporal Logic and Büchi Automata Yih-Kuen Tsay Department of Information Management National Taiwan University FLOLAC 2009 Yih-Kuen Tsay (SVVRL @ IM.NTU) Linear Temporal Logic and Büchi Automata

More information

FAIRNESS FOR INFINITE STATE SYSTEMS

FAIRNESS FOR INFINITE STATE SYSTEMS FAIRNESS FOR INFINITE STATE SYSTEMS Heidy Khlaaf University College London 1 FORMAL VERIFICATION Formal verification is the process of establishing whether a system satisfies some requirements (properties),

More information

Computation Tree Logic

Computation Tree Logic Computation Tree Logic Hao Zheng Department of Computer Science and Engineering University of South Florida Tampa, FL 33620 Email: zheng@cse.usf.edu Phone: (813)974-4757 Fax: (813)974-5456 Hao Zheng (CSE,

More information

A Brief Introduction to Model Checking

A Brief Introduction to Model Checking A Brief Introduction to Model Checking Jan. 18, LIX Page 1 Model Checking A technique for verifying finite state concurrent systems; a benefit on this restriction: largely automatic; a problem to fight:

More information

ESE601: Hybrid Systems. Introduction to verification

ESE601: Hybrid Systems. Introduction to verification ESE601: Hybrid Systems Introduction to verification Spring 2006 Suggested reading material Papers (R14) - (R16) on the website. The book Model checking by Clarke, Grumberg and Peled. What is verification?

More information

Łukasz Kaiser Joint work with Diana Fischer and Erich Grädel

Łukasz Kaiser Joint work with Diana Fischer and Erich Grädel Quantitative Systems, Modal Logics and Games Łukasz Kaiser Joint work with Diana Fischer and Erich Grädel Mathematische Grundlagen der Informatik RWTH Aachen AlgoSyn, February 28 Quantitative Systems (Łukasz

More information

Developing Modal Tableaux and Resolution Methods via First-Order Resolution

Developing Modal Tableaux and Resolution Methods via First-Order Resolution Developing Modal Tableaux and Resolution Methods via First-Order Resolution Renate Schmidt University of Manchester Reference: Advances in Modal Logic, Vol. 6 (2006) Modal logic: Background Established

More information

Merging Features in Featured Transition Systems

Merging Features in Featured Transition Systems Merging Features in Featured Transition Systems Joanne M. Atlee University of Waterloo jmatlee@uwaterloo.ca Sandy Beidu University of Waterloo sandybeidu@yahoo.com Uli Fahrenberg Inria Rennes ulrich.fahrenberg@inria.fr

More information

University of Surrey. Bounded Retransmission in Event-B CSP: A Case Study. Steve Schneider, Helen Treharne and Heike Wehrheim

University of Surrey. Bounded Retransmission in Event-B CSP: A Case Study. Steve Schneider, Helen Treharne and Heike Wehrheim University of Surrey Bounded Retransmission in Event-B CSP: A Case Study Department of Computing Steve Schneider, Helen Treharne and Heike Wehrheim March 21 st 2011 Computing Sciences Report CS-11-04 Bounded

More information

Temporal Logic Model Checking

Temporal Logic Model Checking 18 Feb, 2009 Thomas Wahl, Oxford University Temporal Logic Model Checking 1 Temporal Logic Model Checking Thomas Wahl Computing Laboratory, Oxford University 18 Feb, 2009 Thomas Wahl, Oxford University

More information

Chapter 5: Linear Temporal Logic

Chapter 5: Linear Temporal Logic Chapter 5: Linear Temporal Logic Prof. Ali Movaghar Verification of Reactive Systems Spring 94 Outline We introduce linear temporal logic (LTL), a logical formalism that is suited for specifying LT properties.

More information

Temporal Logic. Stavros Tripakis University of California, Berkeley. We have designed a system. We want to check that it is correct.

Temporal Logic. Stavros Tripakis University of California, Berkeley. We have designed a system. We want to check that it is correct. EE 244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Fall 2016 Temporal logic Stavros Tripakis University of California, Berkeley Stavros Tripakis (UC Berkeley) EE 244, Fall 2016

More information

Computation Tree Logic (CTL) & Basic Model Checking Algorithms

Computation Tree Logic (CTL) & Basic Model Checking Algorithms Computation Tree Logic (CTL) & Basic Model Checking Algorithms Martin Fränzle Carl von Ossietzky Universität Dpt. of Computing Science Res. Grp. Hybride Systeme Oldenburg, Germany 02917: CTL & Model Checking

More information

Model Checking: An Introduction

Model Checking: An Introduction Model Checking: An Introduction Meeting 3, CSCI 5535, Spring 2013 Announcements Homework 0 ( Preliminaries ) out, due Friday Saturday This Week Dive into research motivating CSCI 5535 Next Week Begin foundations

More information

Model for reactive systems/software

Model for reactive systems/software Temporal Logics CS 5219 Abhik Roychoudhury National University of Singapore The big picture Software/ Sys. to be built (Dream) Properties to Satisfy (caution) Today s lecture System Model (Rough Idea)

More information

Scalable and Accurate Verification of Data Flow Systems. Cesare Tinelli The University of Iowa

Scalable and Accurate Verification of Data Flow Systems. Cesare Tinelli The University of Iowa Scalable and Accurate Verification of Data Flow Systems Cesare Tinelli The University of Iowa Overview AFOSR Supported Research Collaborations NYU (project partner) Chalmers University (research collaborator)

More information

MODEL CHECKING. Arie Gurfinkel

MODEL CHECKING. Arie Gurfinkel 1 MODEL CHECKING Arie Gurfinkel 2 Overview Kripke structures as models of computation CTL, LTL and property patterns CTL model-checking and counterexample generation State of the Art Model-Checkers 3 SW/HW

More information

Model Checking & Program Analysis

Model Checking & Program Analysis Model Checking & Program Analysis Markus Müller-Olm Dortmund University Overview Introduction Model Checking Flow Analysis Some Links between MC and FA Conclusion Apology for not giving proper credit to

More information

Logic Model Checking

Logic Model Checking Logic Model Checking Lecture Notes 10:18 Caltech 101b.2 January-March 2004 Course Text: The Spin Model Checker: Primer and Reference Manual Addison-Wesley 2003, ISBN 0-321-22862-6, 608 pgs. the assignment

More information

Generating Linear Temporal Logic Formulas for Pattern-Based Specifications

Generating Linear Temporal Logic Formulas for Pattern-Based Specifications Generating Linear Temporal Logic Formulas for Pattern-Based Specifications Salamah Salamah, Vladik Kreinovich, and Ann Q. Gates Dept. of Computer Science, University of Texas at El Paso El Paso, TX 79968,

More information

Design of Distributed Systems Melinda Tóth, Zoltán Horváth

Design of Distributed Systems Melinda Tóth, Zoltán Horváth Design of Distributed Systems Melinda Tóth, Zoltán Horváth Design of Distributed Systems Melinda Tóth, Zoltán Horváth Publication date 2014 Copyright 2014 Melinda Tóth, Zoltán Horváth Supported by TÁMOP-412A/1-11/1-2011-0052

More information

Verification Using Temporal Logic

Verification Using Temporal Logic CMSC 630 February 25, 2015 1 Verification Using Temporal Logic Sources: E.M. Clarke, O. Grumberg and D. Peled. Model Checking. MIT Press, Cambridge, 2000. E.A. Emerson. Temporal and Modal Logic. Chapter

More information

LTL and CTL. Lecture Notes by Dhananjay Raju

LTL and CTL. Lecture Notes by Dhananjay Raju LTL and CTL Lecture Notes by Dhananjay Raju draju@cs.utexas.edu 1 Linear Temporal Logic: LTL Temporal logics are a convenient way to formalise and verify properties of reactive systems. LTL is an infinite

More information

Bringing class diagrams to life

Bringing class diagrams to life Bringing class diagrams to life Luis S. Barbosa & Sun Meng DI-CCTC, Minho University, Braga & CWI, Amsterdam UML & FM Workshop 2009 Rio de Janeiro 8 December, 2009 Formal Methods proofs problems structures

More information

Correspondence between Kripke Structures and Labeled Transition Systems for Model Minimization

Correspondence between Kripke Structures and Labeled Transition Systems for Model Minimization Correspondence between Kripke Structures and Labeled Transition Systems for Model Minimization Rob Schoren Abstract This document is mainly an extension of the work of Michel Reniers and Tim Willemse,

More information

Synthesis of Partial Behaviour Models from Properties and Scenarios

Synthesis of Partial Behaviour Models from Properties and Scenarios UCHITEL, BRUNET, CHECHIK 1 Synthesis of Partial Behaviour Models from Properties and Scenarios Sebastian Uchitel, Greg Brunet, and Marsha Chechik Abstract Synthesis of behaviour models from software development

More information

Course Runtime Verification

Course Runtime Verification Course Martin Leucker (ISP) Volker Stolz (Høgskolen i Bergen, NO) INF5140 / V17 Chapters of the Course Chapter 1 Recall in More Depth Chapter 2 Specification Languages on Words Chapter 3 LTL on Finite

More information

Formal Verification of Mobile Network Protocols

Formal Verification of Mobile Network Protocols Dipartimento di Informatica, Università di Pisa, Italy milazzo@di.unipi.it Pisa April 26, 2005 Introduction Modelling Systems Specifications Examples Algorithms Introduction Design validation ensuring

More information

First-order resolution for CTL

First-order resolution for CTL First-order resolution for Lan Zhang, Ullrich Hustadt and Clare Dixon Department of Computer Science, University of Liverpool Liverpool, L69 3BX, UK {Lan.Zhang, U.Hustadt, CLDixon}@liverpool.ac.uk Abstract

More information

Model Checking with CTL. Presented by Jason Simas

Model Checking with CTL. Presented by Jason Simas Model Checking with CTL Presented by Jason Simas Model Checking with CTL Based Upon: Logic in Computer Science. Huth and Ryan. 2000. (148-215) Model Checking. Clarke, Grumberg and Peled. 1999. (1-26) Content

More information

A 3 Valued Contraction Model Checking Game: Deciding on the World of Partial Information

A 3 Valued Contraction Model Checking Game: Deciding on the World of Partial Information A 3 Valued Contraction Model Checking Game: Deciding on the World of Partial Information Jandson S. Ribeiro and Aline Andrade Distributed Systems Laboratory (LaSiD) Computer Science Department Mathematics

More information

Linear-Time Logic. Hao Zheng

Linear-Time Logic. Hao Zheng Linear-Time Logic Hao Zheng Department of Computer Science and Engineering University of South Florida Tampa, FL 33620 Email: zheng@cse.usf.edu Phone: (813)974-4757 Fax: (813)974-5456 Hao Zheng (CSE, USF)

More information

Automata-Theoretic Model Checking of Reactive Systems

Automata-Theoretic Model Checking of Reactive Systems Automata-Theoretic Model Checking of Reactive Systems Radu Iosif Verimag/CNRS (Grenoble, France) Thanks to Tom Henzinger (IST, Austria), Barbara Jobstmann (CNRS, Grenoble) and Doron Peled (Bar-Ilan University,

More information

Using Patterns and Composite Propositions to Automate the Generation of Complex LTL Specifications

Using Patterns and Composite Propositions to Automate the Generation of Complex LTL Specifications Using Patterns and Composite Propositions to Automate the Generation of Complex LTL Specifications Salamah Salamah, Ann Q. Gates, Vladik Kreinovich, and Steve Roach Dept. of Computer Science, University

More information

Temporal & Modal Logic. Acronyms. Contents. Temporal Logic Overview Classification PLTL Syntax Semantics Identities. Concurrency Model Checking

Temporal & Modal Logic. Acronyms. Contents. Temporal Logic Overview Classification PLTL Syntax Semantics Identities. Concurrency Model Checking Temporal & Modal Logic E. Allen Emerson Presenter: Aly Farahat 2/12/2009 CS5090 1 Acronyms TL: Temporal Logic BTL: Branching-time Logic LTL: Linear-Time Logic CTL: Computation Tree Logic PLTL: Propositional

More information

Dynamic Semantics. Dynamic Semantics. Operational Semantics Axiomatic Semantics Denotational Semantic. Operational Semantics

Dynamic Semantics. Dynamic Semantics. Operational Semantics Axiomatic Semantics Denotational Semantic. Operational Semantics Dynamic Semantics Operational Semantics Denotational Semantic Dynamic Semantics Operational Semantics Operational Semantics Describe meaning by executing program on machine Machine can be actual or simulated

More information

Bounded Retransmission in Event-B CSP: a Case Study

Bounded Retransmission in Event-B CSP: a Case Study Available online at www.sciencedirect.com Electronic Notes in Theoretical Computer Science 280 (2011) 69 80 www.elsevier.com/locate/entcs Bounded Retransmission in Event-B CSP: a Case Study Steve Schneider

More information

Syntax and Semantics of Propositional Linear Temporal Logic

Syntax and Semantics of Propositional Linear Temporal Logic Syntax and Semantics of Propositional Linear Temporal Logic 1 Defining Logics L, M, = L - the language of the logic M - a class of models = - satisfaction relation M M, ϕ L: M = ϕ is read as M satisfies

More information

Property Checking of Safety- Critical Systems Mathematical Foundations and Concrete Algorithms

Property Checking of Safety- Critical Systems Mathematical Foundations and Concrete Algorithms Property Checking of Safety- Critical Systems Mathematical Foundations and Concrete Algorithms Wen-ling Huang and Jan Peleska University of Bremen {huang,jp}@cs.uni-bremen.de MBT-Paradigm Model Is a partial

More information

Normal Forms of Propositional Logic

Normal Forms of Propositional Logic Normal Forms of Propositional Logic Bow-Yaw Wang Institute of Information Science Academia Sinica, Taiwan September 12, 2017 Bow-Yaw Wang (Academia Sinica) Normal Forms of Propositional Logic September

More information

An Introduction to Temporal Logics

An Introduction to Temporal Logics An Introduction to Temporal Logics c 2001,2004 M. Lawford Outline Motivation: Dining Philosophers Safety, Liveness, Fairness & Justice Kripke structures, LTS, SELTS, and Paths Linear Temporal Logic Branching

More information

T Reactive Systems: Temporal Logic LTL

T Reactive Systems: Temporal Logic LTL Tik-79.186 Reactive Systems 1 T-79.186 Reactive Systems: Temporal Logic LTL Spring 2005, Lecture 4 January 31, 2005 Tik-79.186 Reactive Systems 2 Temporal Logics Temporal logics are currently the most

More information

Model checking (III)

Model checking (III) Theory and Algorithms Model checking (III) Alternatives andextensions Rafael Ramirez rafael@iua.upf.es Trimester1, Oct2003 Slide 9.1 Logics for reactive systems The are many specification languages for

More information

Introduction to Model Checking. Debdeep Mukhopadhyay IIT Madras

Introduction to Model Checking. Debdeep Mukhopadhyay IIT Madras Introduction to Model Checking Debdeep Mukhopadhyay IIT Madras How good can you fight bugs? Comprising of three parts Formal Verification techniques consist of three parts: 1. A framework for modeling

More information

A Tableau-Based Decision Procedure for Right Propositional Neighborhood Logic (RPNL )

A Tableau-Based Decision Procedure for Right Propositional Neighborhood Logic (RPNL ) A Tableau-Based Decision Procedure for Right Propositional Neighborhood Logic (RPNL ) Davide Bresolin Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine {bresolin,

More information

Time(d) Petri Net. Serge Haddad. Petri Nets 2016, June 20th LSV ENS Cachan, Université Paris-Saclay & CNRS & INRIA

Time(d) Petri Net. Serge Haddad. Petri Nets 2016, June 20th LSV ENS Cachan, Université Paris-Saclay & CNRS & INRIA Time(d) Petri Net Serge Haddad LSV ENS Cachan, Université Paris-Saclay & CNRS & INRIA haddad@lsv.ens-cachan.fr Petri Nets 2016, June 20th 2016 1 Time and Petri Nets 2 Time Petri Net: Syntax and Semantic

More information

An On-the-fly Tableau Construction for a Real-Time Temporal Logic

An On-the-fly Tableau Construction for a Real-Time Temporal Logic #! & F $ F ' F " F % An On-the-fly Tableau Construction for a Real-Time Temporal Logic Marc Geilen and Dennis Dams Faculty of Electrical Engineering, Eindhoven University of Technology P.O.Box 513, 5600

More information

Lectures on the modal µ-calculus

Lectures on the modal µ-calculus Lectures on the modal µ-calculus Yde Venema c YV 2008 Abstract These notes give an introduction to the theory of the modal µ-calculus and other modal fixpoint logics. Institute for Logic, Language and

More information

Models for Efficient Timed Verification

Models for Efficient Timed Verification Models for Efficient Timed Verification François Laroussinie LSV / ENS de Cachan CNRS UMR 8643 Monterey Workshop - Composition of embedded systems Model checking System Properties Formalizing step? ϕ Model

More information

Using Patterns and Composite Propositions to Automate the Generation of LTL Specifications

Using Patterns and Composite Propositions to Automate the Generation of LTL Specifications Using Patterns and Composite Propositions to Automate the Generation of LTL Specifications Salamah Salamah, Ann Q. Gates, Vladik Kreinovich, and Steve Roach Dept. of Computer Science, University of Texas

More information

Solving Disjunctive/Conjunctive Boolean Equation Systems with Alternating Fixed Points

Solving Disjunctive/Conjunctive Boolean Equation Systems with Alternating Fixed Points Solving Disjunctive/Conjunctive Boolean Equation Systems with Alternating Fixed Points Jan Friso Groote 2,3 and Misa Keinänen 1,3 1 Dept. of Computer Science and Engineering, Lab. for Theoretical Comp.

More information

Model checking, verification of CTL. One must verify or expel... doubts, and convert them into the certainty of YES [Thomas Carlyle]

Model checking, verification of CTL. One must verify or expel... doubts, and convert them into the certainty of YES [Thomas Carlyle] Chater 5 Model checking, verification of CTL One must verify or exel... doubts, and convert them into the certainty of YES or NO. [Thomas Carlyle] 5. The verification setting Page 66 We introduce linear

More information

Description Logics. Deduction in Propositional Logic. franconi. Enrico Franconi

Description Logics. Deduction in Propositional Logic.   franconi. Enrico Franconi (1/20) Description Logics Deduction in Propositional Logic Enrico Franconi franconi@cs.man.ac.uk http://www.cs.man.ac.uk/ franconi Department of Computer Science, University of Manchester (2/20) Decision

More information

CTL Model checking. 1. finite number of processes, each having a finite number of finite-valued variables. Model-Checking

CTL Model checking. 1. finite number of processes, each having a finite number of finite-valued variables. Model-Checking CTL Model checking Assumptions:. finite number of processes, each having a finite number of finite-valued variables.. finite length of CTL formula Problem:Determine whether formula f 0 is true in a finite

More information

V Honors Theory of Computation

V Honors Theory of Computation V22.0453-001 Honors Theory of Computation Problem Set 3 Solutions Problem 1 Solution: The class of languages recognized by these machines is the exactly the class of regular languages, thus this TM variant

More information

New Complexity Results for Some Linear Counting Problems Using Minimal Solutions to Linear Diophantine Equations

New Complexity Results for Some Linear Counting Problems Using Minimal Solutions to Linear Diophantine Equations New Complexity Results for Some Linear Counting Problems Using Minimal Solutions to Linear Diophantine Equations (Extended Abstract) Gaoyan Xie, Cheng Li and Zhe Dang School of Electrical Engineering and

More information

Algorithmic verification

Algorithmic verification Algorithmic verification Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2018 Outline Overview Model checking Symbolic execution Outline Overview Model checking Symbolic execution Program verification

More information

Temporal Logic of Actions

Temporal Logic of Actions Advanced Topics in Distributed Computing Dominik Grewe Saarland University March 20, 2008 Outline Basic Concepts Transition Systems Temporal Operators Fairness Introduction Definitions Example TLC - A

More information

Timo Latvala. February 4, 2004

Timo Latvala. February 4, 2004 Reactive Systems: Temporal Logic LT L Timo Latvala February 4, 2004 Reactive Systems: Temporal Logic LT L 8-1 Temporal Logics Temporal logics are currently the most widely used specification formalism

More information

Formal Models for Encapsulation, Structure and Hierarchy in Distributed Systems

Formal Models for Encapsulation, Structure and Hierarchy in Distributed Systems Formal Models for Encapsulation, Structure and Hierarchy in Distributed Systems M.C.W. Geilen Section of Information and Communication Systems, Faculty of Electrical Engineering, Eindhoven University of

More information

LOGIC PROPOSITIONAL REASONING

LOGIC PROPOSITIONAL REASONING LOGIC PROPOSITIONAL REASONING WS 2017/2018 (342.208) Armin Biere Martina Seidl biere@jku.at martina.seidl@jku.at Institute for Formal Models and Verification Johannes Kepler Universität Linz Version 2018.1

More information

Introduction to Intuitionistic Logic

Introduction to Intuitionistic Logic Introduction to Intuitionistic Logic August 31, 2016 We deal exclusively with propositional intuitionistic logic. The language is defined as follows. φ := p φ ψ φ ψ φ ψ φ := φ and φ ψ := (φ ψ) (ψ φ). A

More information

Lecture 16: Computation Tree Logic (CTL)

Lecture 16: Computation Tree Logic (CTL) Lecture 16: Computation Tree Logic (CTL) 1 Programme for the upcoming lectures Introducing CTL Basic Algorithms for CTL CTL and Fairness; computing strongly connected components Basic Decision Diagrams

More information

Propositional Logic Language

Propositional Logic Language Propositional Logic Language A logic consists of: an alphabet A, a language L, i.e., a set of formulas, and a binary relation = between a set of formulas and a formula. An alphabet A consists of a finite

More information

EDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach

EDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach EDA045F: Program Analysis LECTURE 10: TYPES 1 Christoph Reichenbach In the last lecture... Performance Counters Challenges in Dynamic Performance Analysis Taint Analysis Binary Instrumentation 2 / 44 Types

More information

An Introduction to Multi Valued Model Checking

An Introduction to Multi Valued Model Checking An Introduction to Multi Valued Model Checking Georgios E. Fainekos Department of Computer and Information Science University of Pennsylvania, Philadelphia, PA 19104, USA E-mail: fainekos (at) grasp.cis.upenn.edu

More information

Thorough Checking Revisited

Thorough Checking Revisited Thorough Checking Revisited Shiva Nejati Mihaela Gheorghiu Marsha Chechik {shiva,mg,chechik}@cs.toronto.edu University of Toronto 1 Automated Abstraction SW/HW Artifact Correctness Property Model Extraction

More information

A Logical Viewpoint on Process-Algebraic Quotients

A Logical Viewpoint on Process-Algebraic Quotients ! A Logical Viewpoint on Process-Algebraic Quotients Antonín Kučera and avier sparza Faculty of nformatics, Masaryk University, Botanická 68a, 62 Brno, Czech Republic, nstitut für nformatik, Technische

More information

A Logical Framework to Deal with Variability

A Logical Framework to Deal with Variability A Logical Framework to Deal with Variability Patrizia Asirelli 1, Maurice H. ter Beek 1, Alessandro Fantechi 1,2, and Stefania Gnesi 1 1 Istituto di Scienza e Tecnologie dell Informazione A. Faedo, CNR,

More information

Security as a Resource in Process-Aware Information Systems

Security as a Resource in Process-Aware Information Systems Security as a Resource in Process-Aware Information Systems 14 October 2011 Joint Work with: Jason Crampton Information Security Group Royal Holloway Jim Huan-Pu Kuo Department of Computing Imperial College

More information

2.5.2 Basic CNF/DNF Transformation

2.5.2 Basic CNF/DNF Transformation 2.5. NORMAL FORMS 39 On the other hand, checking the unsatisfiability of CNF formulas or the validity of DNF formulas is conp-complete. For any propositional formula φ there is an equivalent formula in

More information

A Framework for. Security Analysis. with Team Automata

A Framework for. Security Analysis. with Team Automata A Framework for Security Analysis with Team Automata Marinella Petrocchi Istituto di Informatica e Telematica National Research Council IIT-CNR Pisa, Italy Tuesday 8 June 2004 DIMACS with Maurice ter Beek

More information

Models of Concurrency

Models of Concurrency Models of Concurrency GERARDO SCHNEIDER UPPSALA UNIVERSITY DEPARTMENT OF INFORMATION TECHNOLOGY UPPSALA, SWEDEN Thanks to Frank Valencia Models of Concurrency p.1/57 Concurrency is Everywhere Concurrent

More information

Alternating Time Temporal Logics*

Alternating Time Temporal Logics* Alternating Time Temporal Logics* Sophie Pinchinat Visiting Research Fellow at RSISE Marie Curie Outgoing International Fellowship * @article{alur2002, title={alternating-time Temporal Logic}, author={alur,

More information