Jump to content

Subject reduction

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Citation bot (talk | contribs) at 09:57, 13 December 2019 (Add: citeseerx. Removed URL that duplicated unique identifier. | You can use this bot yourself. Report bugs here.| Activated by User:Nemo bis | via #UCB_webform). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In type theory, a type system has the property of subject reduction (also subject evaluation, type preservation or simply preservation) if evaluation of expressions does not cause their type to change. Formally, if Γ ⊢ e1 : τ and e1e2 then Γ ⊢ e2 : τ.

Together with progress, it is an important meta-theoretical property for establishing type soundness of a type system.

The opposite property, if Γ ⊢ e2 : τ and e1e2 then Γ ⊢ e1 : τ, is called subject expansion. It often does not hold as evaluation can erase ill-typed sub-terms of an expression, resulting in a well-typed one.

References

  • Wright, Andrew K.; Felleisen, Matthias (1994). "A Syntactic Approach to Type Soundness". Information and Computation. 115 (1): 38–94. CiteSeerX 10.1.1.44.5122. doi:10.1006/inco.1994.1093.
  • Pierce, Benjamin C. (2002). "8.3 Safety = Progress + Preservation". Types and Programming Languages. MIT Press. ISBN 978-0-262-16209-8.