Source: https://joram.ow2.io/doc/ICAR/book-icar2006.pdf