What is a pure functional?

  • Authors:
  • Martin Hofmann;Aleksandr Karbyshev;Helmut Seidl

  • Affiliations:
  • Institut für Informatik, Universität München, München, Germany;Fakultät für Informatik, Technische Universität München;Fakultät für Informatik, Technische Universität München

  • Venue:
  • ICALP'10 Proceedings of the 37th international colloquium conference on Automata, languages and programming: Part II
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Given an ML function f : (int → int) → int how can we rigorously specify that f is pure, i.e., produces no side-effects other than those arising from calling its functional argument? We show that existing methods based on preservation of invariants and relational parametricity are insufficient for this purpose and thus define a new notion that captures purity in the sense that for any functional F that is pure in this sense there exists a corresponding question-answer strategy. This research is motivated by an attempt to prove algorithms correct that take such supposedly pure functionals as input and apply them to stateful arguments in order to inspect intensional aspects of their behaviour.