I am trying to understand bisimulation contraction of Kripke models.
I have read these lecture slides and this Wikipedia page, but I still don't fully understand it.
I can understand that the two models below are bisimilar
In the lecture slides, the partition refinement algorithm is given as
I do understand that from the graph on the left in the first picture, the initial partition becomes
initial_partition = {
'p': ['n1', 'n2'],
'q': ['n3', 'n4']
}
because two of the nodes have $p$ and the two remaining nodes have $q$.
But now I need to understand the second step in the algorithm. It seems to me that I should first loop through each of the two blocks in the initial partition, and for each node check its relations to nodes in the other blocks in the initial partition.
Can someone give me an example of a larger model (more nodes), and show me the steps in reducing the larger model to a smaller model, or give me a hint on where to find literature about it where it is described more easy?
Edit
What I mean is that the model in the middle of this picture
shows the first partition, but I don't know what the next partition look like, and why I can suddenly remove two of the nodes.