Simulations and bisimulations
A simulation between two systems (incl. PLs, calculi, transition systems, etc.) is a relation
A bisimulation is a simulation
In transition systems
Let
A relation
A bisimulation is a simulation
In functional programming
See Andy Gordon's 1999 article.
References
- There is a book-length introduction to the topic in
@book{sangiorgi_2011,
address = {Cambridge},
title = {Introduction to {Bisimulation} and {Coinduction}},
isbn = {978-0-511-77711-0},
publisher = {Cambridge University Press},
author = {Sangiorgi, Davide},
year = {2011},
doi = {10.1017/CBO9780511777110}
}
- More advanced topics are covered in the volume
@book{sangiorgi_advanced_2011,
address = {Cambridge},
title = {Advanced {Topics} in {Bisimulation} and {Coinduction}},
publisher = {Cambridge University Press},
editor = {Sangiorgi, Davide and Rutten, Jan},
year = {2011},
doi = {10.1017/CBO9780511792588}
}
- The use of bisimilarity as a notion of program equivalence in functional programming languages is surveyed by
@article{gordon_bisimilarity_1999,
title = {Bisimilarity as a theory of functional programming},
volume = {228},
doi = {10.1016/S0304-3975(98)00353-3},
number = {1-2},
journal = {Theoretical Computer Science},
author = {Gordon, Andrew D.},
month = oct,
year = {1999},
pages = {5--47}
}