Using a functional notation to specify abstract simulation models