Overview Definitions Algorithm References Learning minimal separating DFA for Compositional Verification Karsten Fix February 23, 2017 Karsten Fix Learning minimal separating DFA for Compositional Verification
Overview Definitions Motivation Algorithm References Overview 1 Motivation Definitions 2 Separating DFA 3DFA Consistency Soundness Completeness Algorithm 3 Candidate Generator Completeness Checking Finding minimal consistent DFA Soundness Checking References 4 Karsten Fix Learning minimal separating DFA for Compositional Verification
Overview Definitions Motivation Algorithm References Compositional Verification System consist of Components M 1 and M 2 shall satisfy a Property P can be describe by regular Laguages L ( M 1 ) , L ( M 2 ) , L ( P ). To verify this, there’s an inference rule, that says: L ( M 1 ) ∩ L ( A ) ⊆ L ( P ) L ( M 2 ) ⊆ L ( A ) L ( M 1 ) ∩ L ( M 2 ) ⊆ L ( P ) Intuitively: We can find an Assumption A for M 2 . Karsten Fix Learning minimal separating DFA for Compositional Verification
Overview Definitions Motivation Algorithm References Compositional Verification This premise of the interference rule: L ( M 1 ) ∩ L ( A ) ⊆ L ( P ) can be rewritten as: L ( A ) ⊆ L ( M 1 ) ∩ L ( P ) Substitution: L ( M 2 ) ⊆ L ( A ) ⊆ L ( M 1 ) ∩ L ( P ) Then A is separating DFA for L ( M 2 ) and L ( M 1 ) ∩ L ( P ). Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Separating DFA Definition Let L 1 , L 2 ⊆ Σ ∗ be disjoint regular languages. Then a DFA A is called separating DFA for L 1 and L 2 , if it statisfies: 1 L 1 ⊆ L ( A ) 2 L ( A ) ∩ L 2 = ∅ Or equivalently: L 1 ⊆ L ( A ) ⊆ L 2 Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Separating DFA That means: A accepts at least all words of L 1 and rejects all words of L 2 . L 1 L ( A ) L 2 Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness 3DFA Definition A 3DFA C is defined like a DFA: C = ( Q , Σ , δ, q 0 , Acc , Rej , Dont ) � �� � Q but all states are partitioned into three sets: Acc ⊆ Q : accepting states Rej ⊆ Q : rejecting states Dont ⊆ Q : Don’t care states That means: Acc ∩ Rej ∩ Dont = ∅ Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness 3DFA Given a 3DFA C a string w ∈ Σ ∗ is: accepted by C if ˆ δ ( q 0 , w ) ∈ Acc rejected by C if ˆ δ ( q 0 , w ) ∈ Rej called don’t care string if ˆ δ ( q 0 , w ) ∈ Dont Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness 3DFA - Visualisation A 3DFA will be visualised, using squares for the don’t care states. Rejecting and accepting states are visualised as circles, as usual. An Example: a b a b q 0 q 1 q 3 start a a b b q 2 q 4 a b Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness 3DFA → DFA C + Definition We define a DFA C + , where the don’t care states become accepting states: C + = ( Q , Σ , q 0 , δ, Acc ∪ Dont ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness 3DFA → DFA C + DFA C + : Example 3DFA C : a a b b a b a b q 0 q 1 q 3 start q 0 q 1 q 3 start a a a a b b b b q 2 q 4 q 2 q 4 a a b b Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness 3DFA → DFA C − Definition We define a DFA C − , where only the accepting states are accepting: C − = ( Q , Σ , q 0 , δ, Acc ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness 3DFA → DFA C − DFA C − : Example 3DFA C : a a b b a b a b q 0 q 1 q 3 start q 0 q 1 q 3 start a a a a b b b b q 2 q 4 q 2 q 4 a a b b Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Consistency Definition Let A be a DFA, then it will be called consistent with a 3DFA C , if both are accepting and rejecting the same words. Means: 1 L ( C − ) ⊆ L ( A ) 2 L ( A ) ∩ L ( C + ) = ∅ Or equivalently: L ( C − ) ⊆ L ( A ) ⊆ L ( C + ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Consistency - Visualisation DFA A consistent with a 3DFA C : L ( C + ) L ( A ) L ( C − ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Consistency - Visualisation DFA A inconsistent with a 3DFA C : L ( C + ) L ( C − ) L ( A ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Soundness Definition A 3DFA C is called sound with respect to L 1 and L 2 , if any with C consistent DFA A separates L 1 and L 2 . Remember Consistency: L ( C − ) ⊆ L ( A ) ⊆ L ( C + ) Separating: L 1 ⊆ L ( A ) ⊆ L 2 Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Soundness - Visualisation Any DFA A consistent with 3DFA C : L ( C + ) L ( C − ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Soundness - Visualisation is separating DFA for L 1 and L 2 , so C is sound: L ( C + ) L 1 L 2 L ( C − ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Soundness - Visualisation An unsound 3DFA C : L ( C + ) u v L 1 L 2 L ( C − ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Completeness Definition A 3DFA C is called complete with respect to L 1 and L 2 , if any separating DFA A for L 1 and L 2 is consistent with C . Remember Separating: L 1 ⊆ L ( A ) ⊆ L 2 Consistency: L ( C − ) ⊆ L ( A ) ⊆ L ( C + ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Completeness - Visualisation Any DFA A separating L 1 and L 2 : L ( A ) L 2 L 1 Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Completeness - Visualisation is consistent with 3DFA C , so it is complete: L ( C − ) L 2 L 1 L ( C + ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Completeness - Visualisation An incomplete 3DFA C : v u L ( C − ) L 2 L 1 L ( C + ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Separating DFA Overview 3DFA Definitions Consistency Algorithm Soundness References Completeness Summary 1 DFA A is separating DFA if: L 1 ⊆ L ( A ) ⊆ L 2 2 L ( C − ) : are all words a 3DFA C accepts 3 L ( C + ) : are all words a 3DFA C rejects 4 DFA A is consistent with 3DFA C if: L ( C − ) ⊆ L ( A ) ⊆ L ( C + ) 5 3DFA is sound if L 1 ⊆ L ( C − ) and L ( C + ) ⊆ L 2 6 3DFA is complete if L ( C − ) ⊆ L 1 and L 2 ⊆ L ( C + ) Karsten Fix Learning minimal separating DFA for Compositional Verification
Overview Candidate Generator Definitions Completeness Checking Algorithm Finding minimal consistent DFA References Soundness Checking Overview of L sep C i Completeness Checking Candidate L ( C − i ) ⊆ L 1 No Generator L ( C + ⊆ i ) L 2 CE CE C i Yes No Soundness A i Finding a Checking minimal ⊆ L ( A i ) L 1 consistent DFA L ( A i ) ⊆ L 2 Yes Karsten Fix Learning minimal separating DFA for Compositional Verification
Recommend
More recommend