Semi-inversion of guarded equations

  • Authors:
  • Torben Æ Mogensen

  • Affiliations:
  • DIKU, University of Copenhagen, Denmark

  • Venue:
  • GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

An inverse of a program is a program that takes the output of the original program and produces its input. A semi-inverse of a program is a program that takes some of the input and some of the output of the original program and produces the remaining input and output. Inversion is, hence, a special case of semi-inversion. We propose a method for inverting and semi-inverting programs written as guarded equations. The semi-inversion process is divided into four phases: Translation of equations into a relational form, refining operators, determining evaluation order for each equation of the semi-inverted functions and translation of semi-inverted functions back to the original syntax. In cases where the method fails to semi-invert a program, it can suggest which additional parts of the programs input or output are needed to make it work.