Re: [TYPES] Progress + Preservation = Evaluation
Sam Lindley <[email protected]>
| Newsgroups | gmane.comp.science.types,gmane.comp.lang.agda |
|---|---|
| Message-ID | <[email protected]> |
[ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list ] You should certainly cite Conor McBride's MPC 2015 paper "Turing-Completeness Totally Free": https://personal.cis.strath.ac.uk/conor.mcbride/TotallyFree.pdf Sam On 06/07/18 17:49, Philip Wadler wrote: > [ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list ] > > > > > Everyone on this list will be familiar with Progress and Preservation > for terms in a typed calculus. Write ∅ ⊢ M : A to indicate that term > M has type A for closed M. > > Progress. If ∅ ⊢ M : A then either M is a value or M —→ N, > for some term N. > > Preservation. If ∅ ⊢ M : A and M —→ N then ∅ ⊢ N : A. > > It is easy to combine these two proofs into an evaluator. > Write —↠ for the transitive and reflexive closure of —→. > > Evaluation. If ∅ ⊢ M : A, then for every natural number n, > either M —↠ V, where V is a value and the reduction sequence > has no more than n steps, or M —↠ N, where N is not a value > and the reduction sequence has n steps. > > Evaluation implies that either M —↠ V or there is an infinite > sequence M —→ M₁ —→ M₂ —→ ... that never reduces to a value; > but this last result is not constructive, as deciding which of > the two results holds is not decidable. > > An Agda implementation of Evaluation provides an evaluator for terms: > given a number n it will perform up to n steps of evaluation, stopping > early if a value is reached. This is entirely obvious (at least in > retrospect), but I have not seen it written down anywhere. For > instance, this approach is not exploited in Software Foundations to > evaluate terms (it uses a normalize tactic instead). I have used it > in my draft textbook: > > https:plfa.inf.ed.ac.uk > > Questions: What sources in the literature should one cite for this > technique? How well-known is it as folklore? Cheers, -- P > > > . \ Philip Wadler, Professor of Theoretical Computer Science, > . /\ School of Informatics, University of Edinburgh > . / \ and Senior Research Fellow, IOHK > . http://homepages.inf.ed.ac.uk/wadler/ > > Too brief? Here's why: http://www.emailcharter.org/ > > > > The University of Edinburgh is a charitable body, registered in > Scotland, with registration number SC005336. > -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.