A ¡Circuit ¡Approach ¡to ¡LTL ¡Model ¡ Checking ¡ Koen ¡Claessen ¡ Chalmers ¡University ¡of ¡Technology ¡ Niklas ¡Een, ¡Baruch ¡Sterin ¡ UC ¡Berkeley ¡
PLTL ¡– ¡Linear ¡Temporal ¡Logic ¡ w/Past ¡Operators ¡ LTL ¡and ¡PLTL ¡are ¡used ¡to ¡model ¡and ¡specify ¡ system ¡behavior ¡ Atomic ¡ProposiHons ¡ p, ¡q, ¡…. ¡ Boolean ¡Operators ¡ &, ¡|, ¡!, ¡–>, ¡… ¡
PLTL ¡– ¡Linear ¡Temporal ¡Logic ¡ w/Past ¡Operators ¡ Some ¡future ¡temporal ¡operators ¡ X f ¡ ¡ f ¡holds ¡in ¡the ¡next ¡cycle ¡ F f ¡ ¡ f ¡holds ¡someHme ¡in ¡the ¡future ¡ G f ¡ ¡ ¡ f ¡holds ¡forever ¡ f U g ¡ g ¡holds ¡someHme ¡in ¡the ¡future, ¡and ¡unHl ¡then, ¡ f ¡ holds ¡ Some ¡past ¡temporal ¡operators ¡ Y f ¡ ¡ f ¡held ¡in ¡the ¡previous ¡cycle ¡ O f ¡ ¡ f ¡held ¡someHme ¡in ¡the ¡past ¡ H f ¡ ¡ f ¡held ¡unHl ¡now ¡
A ¡Few ¡LTL ¡Formulas ¡ G ¡!err ¡ The ¡error ¡signal ¡is ¡never ¡raised ¡ F ¡err ¡ The ¡error ¡signal ¡will ¡eventually ¡be ¡raised ¡ G ( ¡req ¡–> ¡ X ¡ F ¡ack ¡) ¡ Every ¡request ¡must ¡be ¡eventually ¡acknowledged ¡ F ¡( ¡req ¡& ¡ X ¡G ¡!ack ¡) ¡ There ¡will ¡eventually ¡be ¡a ¡request ¡that ¡is ¡never ¡ acknowledged ¡
Monotonicity ¡ LTL ¡operators ¡are ¡monotone ¡ For ¡example: ¡ p ¡ ¡: ¡0 ¡0 ¡1 ¡0 ¡0 ¡1 ¡0 ¡0 ¡0 ¡0 ¡1 ¡1 ¡0 ¡0 ¡0 ¡0 ¡0 ¡0 ¡0 ¡0 ¡1 ¡… ¡ X p ¡ ¡: ¡0 ¡1 ¡0 ¡0 ¡1 ¡0 ¡0 ¡0 ¡0 ¡1 ¡1 ¡0 ¡0 ¡0 ¡0 ¡0 ¡0 ¡0 ¡0 ¡1 ¡… ¡
Monotonicity ¡ LTL ¡operators ¡are ¡monotone ¡ For ¡example: ¡ p ¡ ¡: ¡0 ¡0 ¡1 ¡0 ¡0 ¡1 ¡0 ¡ 1 ¡0 ¡0 ¡1 ¡1 ¡0 ¡ 1 ¡0 ¡0 ¡0 ¡ 1 ¡0 ¡0 ¡1 ¡… ¡ X p ¡ ¡: ¡0 ¡1 ¡0 ¡0 ¡1 ¡0 ¡ 1 ¡0 ¡0 ¡1 ¡1 ¡0 ¡ 1 ¡0 ¡0 ¡0 ¡ 1 ¡0 ¡0 ¡1 ¡… ¡ ¡ If ¡p ¡holds ¡in ¡more ¡places, ¡then ¡ X p ¡holds ¡in ¡more ¡ places ¡ ¡
Automata-‑TheoreHc ¡Approach[VW86] ¡ Every ¡LTL ¡formula ¡ f ¡has ¡a ¡Büchi ¡automaton ¡ A f ¡ ( monitor ) ¡that ¡accepts ¡all ¡traces ¡that ¡saHsfy ¡ f ¡ To ¡check ¡whether ¡ f ¡hold ¡on ¡every ¡trace ¡of ¡ M: ¡ Build ¡a ¡Büchi ¡automaton ¡ A !f ¡ (monitor ¡for ¡ !f ) ¡ Check ¡if ¡ M×A !f ¡ is ¡empty ¡
LTL ¡Model ¡Checking ¡ Directly ¡construct ¡Büchi ¡Automata ¡[VW86] ¡ ¡ Construct ¡an ¡AlternaHng ¡Büchi ¡Automata, ¡ convert ¡to ¡Regular ¡Büchi ¡[V95] ¡ BeauHful, ¡clean ¡and ¡elegant ¡ AlternaHng ¡automata ¡and ¡their ¡conversion ¡to ¡Büchi ¡ automata ¡are ¡nontrivial ¡ Temporal ¡Testers ¡[PZ06] ¡
Transforming ¡the ¡Formula ¡ Assume ¡formula ¡in ¡NNF, ¡with ¡only ¡|, ¡& ¡as ¡ boolean ¡operators ¡ For ¡every ¡node ¡ *f ¡or ¡ f*g ¡in ¡the ¡parse ¡tree: ¡ Introduce ¡a ¡new ¡ ac:vator ¡ variable ¡ z i ¡ Replace ¡the ¡node ¡with ¡that ¡variable ¡ Maintain ¡correctness ¡by ¡adding ¡a ¡ conjunct ¡ G ( z i ¡<–> ¡ *f ¡) ¡or ¡G ( ¡ z i ¡<–> ¡ f*g ¡) ¡ Add ¡a ¡conjunct ¡ z 0 ¡for ¡the ¡top ¡level ¡acHvator ¡
Example ¡ Formula ¡ Conjuncts ¡ F ¡( ¡req ¡& ¡ X ¡G ¡!ack ¡) ¡
Example ¡ Formula ¡ Conjuncts ¡ F ¡( ¡req ¡& ¡ X ¡z 3 ¡ ) ¡ G ( ¡ z 3 ¡<–> ¡ G ¡ !ack ¡) ¡
Example ¡ Formula ¡ Conjuncts ¡ F ¡( ¡req ¡& ¡ z 2 ¡ ) ¡ G ( ¡ z 2 ¡<–> ¡ X ¡z 3 ¡) ¡& ¡ G ( ¡ z 3 ¡<–> ¡ G ¡ !ack ¡) ¡ ¡
Example ¡ Formula ¡ Conjuncts ¡ F ¡ z 1 ¡ G ( ¡ z 1 ¡<–> ¡req ¡& ¡ z 2 ¡) ¡& ¡ G ( ¡ z 2 ¡<–> ¡ X ¡z 3 ¡) ¡& ¡ G ( ¡ z 3 ¡<–> ¡ G ¡ !ack ¡) ¡ ¡
Example ¡ Formula ¡ Conjuncts ¡ z 0 ¡ G ( ¡ z 0 ¡<–> ¡ F ¡ z 1 ¡) ¡& ¡ G ( ¡ z 1 ¡<–> ¡req ¡& ¡ z 2 ¡) ¡& ¡ G ( ¡ z 2 ¡<–> ¡ X ¡z 3 ¡) ¡& ¡ G ( ¡ z 3 ¡<–> ¡ G ¡ !ack ¡) ¡ ¡
Example ¡ Formula ¡ Conjuncts ¡ z 0 ¡& ¡ G ( ¡ z 0 ¡<–> ¡ F ¡ z 1 ¡) ¡& ¡ G ( ¡ z 1 ¡<–> ¡req ¡& ¡ z 2 ¡) ¡& ¡ G ( ¡ z 2 ¡<–> ¡ X ¡z 3 ¡) ¡& ¡ G ( ¡ z 3 ¡<–> ¡ G ¡ !ack ¡) ¡
<–> ¡–> ¡–> ¡ We ¡can ¡replace ¡the ¡<–> ¡with ¡a ¡simple ¡–> ¡ Given ¡a ¡trace ¡saHsfying ¡a ¡conjunct ¡ G ( z i ¡<–> ¡ f*g ) ¡ Then ¡it ¡saHsfies ¡ G ( z i ¡–> ¡ f*g ) ¡ Given ¡a ¡trace ¡saHsfying ¡a ¡conjunct ¡ G ( z i ¡–> ¡ f*g ) ¡ Then ¡we ¡change ¡ z i ¡to ¡1 ¡whenever ¡ f*g ¡holds ¡ Because ¡LTL ¡operators ¡are ¡monotonic, ¡and ¡in ¡ NNF ¡we ¡only ¡have ¡monotonic ¡boolean ¡ operators, ¡this ¡trace ¡now ¡saHsfies ¡ G ( z i ¡<–> ¡ f*g ) ¡
Example ¡ Z 0 ¡& ¡ This ¡new ¡formula ¡is ¡ saHsfiable ¡iff ¡the ¡original ¡ G ( ¡ z 0 ¡–> ¡ F ¡ z 1 ¡) ¡& ¡ formula ¡is ¡saHsfiable ¡ G ( ¡ z 1 ¡–> ¡req ¡& ¡ z 2 ¡) ¡& ¡ ¡ G ( ¡ z 2 ¡–> ¡ X ¡z 3 ¡) ¡& ¡ It ¡is ¡easy ¡to ¡construct ¡ G ( ¡ z 3 ¡–> ¡ G ¡ !ack ¡) ¡ monitors ¡for ¡each ¡ conjunct ¡
Monitors ¡ z ¡ error ¡ f ¡ f*g ¡ pending ¡ g ¡ accept ¡
Monitors ¡ pending : ¡ ¡ Holds ¡if ¡the ¡monitor ¡has ¡an ¡outstanding ¡ requirement ¡ failed : ¡ Holds ¡if ¡a ¡violaHon ¡has ¡been ¡detected ¡ accept : ¡ ¡ Must ¡hold ¡infinitely ¡omen ¡for ¡a ¡trace ¡to ¡be ¡valid ¡ In ¡most ¡cases ¡ accept ¡ = ¡!pending ¡
Example ¡Monitors ¡ G ( ¡z ¡–> ¡X ¡a ¡) ¡ ¡pending ¡= ¡z ¡ ¡failed ¡= ¡ prev (z) ¡& ¡!a ¡ G ( ¡z ¡–> ¡ G ¡a ¡) ¡ ¡pending ¡= ¡ prev (pending) ¡| ¡z ¡ ¡failed ¡= ¡pending ¡& ¡!a ¡ G ( ¡z ¡–> ¡ F ¡a ¡) ¡ ¡pending ¡= ¡(z ¡| ¡ prev (pending) ¡) ¡& ¡!a ¡ ¡accept ¡= ¡pending ¡& ¡!a ¡
Monitor ¡for ¡G(z ¡-‑> ¡Fa) ¡ z ¡ OR ¡ pending ¡ FF ¡ AND ¡ a ¡ accept ¡
Summary ¡ Negate ¡the ¡formula ¡ f ¡ Put ¡ !f ¡in ¡NNF ¡form ¡ Expand ¡! f ¡to ¡its ¡conjuncts ¡ Replace ¡<–> ¡with ¡–> ¡ Construct ¡monitors ¡for ¡the ¡conjuncts ¡ Mark ¡all ¡! failed ¡signals ¡as ¡constraints ¡ Replace ¡the ¡top-‑level ¡ z 0 ¡with ¡ is_init ¡ Mark ¡all ¡ accept ¡signals ¡as ¡fairness ¡constraints ¡
Finite ¡Traces ¡ What ¡happens ¡if ¡all ¡pending ¡signals ¡become ¡0? ¡ ¡ The ¡trace ¡can ¡be ¡extended ¡to ¡an ¡infinite ¡trace, ¡ by ¡seqng ¡all ¡acHvators ¡to ¡0 ¡going ¡forward ¡ ¡ This ¡gives ¡a ¡safety ¡property ¡(!failed ¡& ¡!pending), ¡ which ¡catches ¡all ¡ informa:ve ¡prefixes ¡ [KV99] ¡
AssumpHons ¡and ¡AsserHons ¡ LTL ¡formulas ¡are ¡used ¡to ¡either ¡ Specify ¡behavior ¡– ¡ Asser:ons ¡ Model ¡the ¡environment ¡– ¡ Assump:ons ¡ In ¡pracHce, ¡infinite ¡traces ¡are ¡expensive ¡to ¡find ¡ (finding ¡a ¡loop ¡is ¡hard) ¡ SomeHmes, ¡a ¡reasonable ¡compromise ¡for ¡safety ¡ asserHons, ¡is ¡to ¡only ¡use ¡the ¡ failed ¡signal ¡of ¡the ¡ assumpHons ¡(ignoring ¡ accept ) ¡
Deadlock ¡and ¡Acceptable ¡States ¡ Deadlock ¡States: ¡ States ¡which ¡will ¡eventually ¡reach ¡a ¡ failed ¡signal ¡ TransiHve ¡strong ¡preimage ¡of ¡ failed ¡ Detect ¡ failed ¡ faster ¡ Acceptable ¡States: ¡ States ¡that ¡can ¡reach ¡all ¡ accept ¡signals ¡ IntersecHon ¡of ¡the ¡all ¡the ¡transiHve ¡(weak) ¡ preimage ¡of ¡each ¡ accept ¡signals ¡ Restrict ¡search ¡to ¡a ¡small ¡set ¡
Recommend
More recommend