Title: Automatic Symmetry Detection for Model Checking Using Computational Group Theory
1Automatic Symmetry Detection for Model Checking
Using Computational Group Theory
- Alastair F. Donaldson
- Alice Miller
- Department of Computing Science
- University of Glasgow
2Automatic Symmetry Detection for Model Checking
Using Compuational Group Theory
System Requirements
Model Logical Properties
Problem State-space explosion
Expressed in e.g. Promela and LTL
Model Checker
Results
SPIN is a popular model checker
3Automatic Symmetry Detection for Model Checking
Using Compuational Group Theory
System Requirements
Model Logical Properties
Symmetries of Model
Expressed in e.g. Promela and LTL
Model Checker
Results
SPIN is a popular model checker
4Automatic Symmetry Detection for Model Checking
Using Compuational Group Theory
System Requirements
Model Logical Properties
Symmetries of Model
Symm Extractor
Expressed in e.g. Promela and LTL
Model Checker
Results
SPIN is a popular model checker
5Automatic Symmetry Detection for Model Checking
Using Compuational Group Theory
System Requirements
GAP
Model Logical Properties
Symmetries of Model
Symm Extractor
Expressed in e.g. Promela and LTL
Model Checker
Results
SPIN is a popular model checker
6Contributions
- Extend idea of static channel diagram (introduced
in previous work) - Use computational group theory to avoid
unnecessary loss of symmetry - Implementation for Promela language
7Symmetry reduction example
- Structure much smaller
- Mutex property invariant
- G(?? (C1 ? C2))
G(?? (C1 ? C2))
8Symmetry detection
- What are symmetries of Kripke structure?
- Cannot find them by building structure
- State-space too large
- Defeats point of symmetry reduction!
- Various options
- Symmetry group given by user
- User specifies interchangeable components
- Symmetries inferred automatically
9Symmetry from communication structure
Symmetries of comm. structure ? symmetries of
Kripke structure
10Static channel diagrams
- Graphical representation of potential
communication in Promela program. - Nodes Process identifiers names of static
channels - Edges Derived from send/receive statements on
static channels. - Colouring Nodes coloured according to types of
processes and channels.
Assumes constant set of processes static
channels
Easy to extract SCD from program text
11Example client-server with load balancers
SCD automorphism bijection of nodes which
preserves edges colours.
S
S
S
No edges from S to C !
3 of chan
3 of chan
3 of chan
Lb
Lb
Aut(C(P)) group of all auts of C(P).
1 of chan
1 of chan
C
C
C
C
C
C
1 of mtype
1 of mtype
1 of mtype
1 of mtype
1 of mtype
1 of mtype
12Action of Aut(C(P)) on Kripke structure and
program text
- Let ? in Aut(C(P)).
- Action on Kripke structure ? permutes local
state of components.
(N,N,T,C) -gt (N,N,C,T) when ? (3 4)
- Action on program text ? permuting static
channel names and literal pid values. - We say ?(P) ? P if the programs are the same
after normalisation.
13Deriving Kripke structure automorphisms
- Theorem if ?(P) ? P then ? is an automorphism of
Kripke structure for P when lifted to states. - If ?(P) ? P we say ? is valid for P.
- Lemma if ?, ? are valid for P then ?? is valid
for P.
14Finding largest valid subgroup
- Validity determined by simple check
- Conservative, but efficient practical
- Start with subgroup obtained from valid
generators - Enlarge add valid coset representatives
- Repeating until no more valid reps results in
largest valid subgroup - GAP used for group theoretic computation
- Random conjugates used to boost performance
15Automatic symmetry detection process
Static channel diagram
Source code proctype P x 4 init
extract
Implemented for Promela
Find symmetries using saucy
We can use G for symmetry reduction
Compute largest possible valid subgroup using GAP
Group G of valid symmetries of state-space G
Aut(C(P))
Symmetry group of SCD Aut(C(P))
16Conclusions and Future Work
- Summary
- Automatic framework for detecting symmetry
- Exploits static channel diagram of Promela model
- Uses computational group theory to avoid
unnecessary loss of symmetry - Future work
- Implement efficient reduction techniques for
arbitrary kinds of symmetry - Use powerful results from computational group
theory to achieve efficiency