273 lines
11 KiB
HTML
273 lines
11 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en"><head>
|
||
<meta charset="utf-8">
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Table of Contents | Programming Language Foundations in Agda
|
||
</title><!-- Begin Jekyll SEO tag v2.6.1 -->
|
||
<meta name="generator" content="Jekyll v3.9.0" />
|
||
<meta property="og:title" content="Table of Contents" />
|
||
<meta property="og:locale" content="en_US" />
|
||
<meta name="description" content="Programming Language Foundations in Agda" />
|
||
<meta property="og:description" content="Programming Language Foundations in Agda" />
|
||
<link rel="canonical" href="https://plfa.github.io/19.08/" />
|
||
<meta property="og:url" content="https://plfa.github.io/19.08/" />
|
||
<meta property="og:site_name" content="Programming Language Foundations in Agda" />
|
||
<script type="application/ld+json">
|
||
{"url":"https://plfa.github.io/19.08/","headline":"Table of Contents","description":"Programming Language Foundations in Agda","name":"Programming Language Foundations in Agda","@type":"WebSite","@context":"https://schema.org"}</script>
|
||
<!-- End Jekyll SEO tag -->
|
||
<link rel="stylesheet" href="/19.08/assets/main.css"></head>
|
||
<body><header class="site-header" role="banner">
|
||
|
||
<div class="wrapper">
|
||
|
||
<a class="site-title" href="/19.08/">Programming Language Foundations in Agda
|
||
</a>
|
||
|
||
<nav class="site-nav">
|
||
<span class="menu-icon">
|
||
<svg viewBox="0 0 18 15" width="18px" height="15px">
|
||
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
|
||
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
|
||
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
|
||
</svg>
|
||
</span>
|
||
|
||
<div class="trigger">
|
||
<a class="page-link" href="/19.08/">The Book</a>
|
||
<a class="page-link" href="/19.08/Announcements/">Announcements</a>
|
||
<a class="page-link" href="/19.08/GettingStarted/">Getting Started</a>
|
||
<a class="page-link" href="/19.08/Citing/">Citing</a>
|
||
<a class="page-link" href="https://agda-zh.github.io/PLFA-zh/">中文</a>
|
||
</div>
|
||
</nav>
|
||
|
||
</div>
|
||
|
||
</header>
|
||
<main class="page-content" aria-label="Content">
|
||
<div class="wrapper">
|
||
<article class="post">
|
||
|
||
<header class="post-header">
|
||
<h1 class="post-title">Table of Contents</h1>
|
||
</header>
|
||
|
||
<p style="text-align:center;">
|
||
|
||
|
||
|
||
|
||
|
||
</p>
|
||
|
||
|
||
<div class="post-content">
|
||
<p>This book is an introduction to programming language theory using the
|
||
proof assistant Agda.</p>
|
||
|
||
<p>Comments on all matters—organisation, material to add, material to
|
||
remove, parts that require better explanation, good exercises, errors,
|
||
and typos—are welcome. The book repository is on <a href="https://github.com/plfa/plfa.github.io/">GitHub</a>.
|
||
Pull requests are encouraged.</p>
|
||
|
||
<h2 id="front-matter">Front matter</h2>
|
||
|
||
<ul>
|
||
<li><a href="/19.08/Dedication/">Dedication</a></li>
|
||
<li><a href="/19.08/Preface/">Preface</a></li>
|
||
</ul>
|
||
|
||
<h2 id="part-1-logical-foundations">Part 1: Logical Foundations</h2>
|
||
|
||
<ul>
|
||
<li><a href="/19.08/Naturals/">Naturals</a>: Natural numbers</li>
|
||
<li><a href="/19.08/Induction/">Induction</a>: Proof by induction</li>
|
||
<li><a href="/19.08/Relations/">Relations</a>: Inductive definition of relations</li>
|
||
<li><a href="/19.08/Equality/">Equality</a>: Equality and equational reasoning</li>
|
||
<li><a href="/19.08/Isomorphism/">Isomorphism</a>: Isomorphism and embedding</li>
|
||
<li><a href="/19.08/Connectives/">Connectives</a>: Conjunction, disjunction, and implication</li>
|
||
<li><a href="/19.08/Negation/">Negation</a>: Negation, with intuitionistic and classical logic</li>
|
||
<li><a href="/19.08/Quantifiers/">Quantifiers</a>: Universals and existentials</li>
|
||
<li><a href="/19.08/Decidable/">Decidable</a>: Booleans and decision procedures</li>
|
||
<li><a href="/19.08/Lists/">Lists</a>: Lists and higher-order functions</li>
|
||
</ul>
|
||
|
||
<h2 id="part-2-programming-language-foundations">Part 2: Programming Language Foundations</h2>
|
||
|
||
<ul>
|
||
<li><a href="/19.08/Lambda/">Lambda</a>: Introduction to Lambda Calculus</li>
|
||
<li><a href="/19.08/Properties/">Properties</a>: Progress and Preservation</li>
|
||
<li><a href="/19.08/DeBruijn/">DeBruijn</a>: Intrinsically-typed de Bruijn representation</li>
|
||
<li><a href="/19.08/More/">More</a>: Additional constructs of simply-typed lambda calculus</li>
|
||
<li><a href="/19.08/Bisimulation/">Bisimulation</a>: Relating reductions systems</li>
|
||
<li><a href="/19.08/Inference/">Inference</a>: Bidirectional type inference</li>
|
||
<li><a href="/19.08/Untyped/">Untyped</a>: Untyped lambda calculus with full normalisation</li>
|
||
</ul>
|
||
|
||
<h2 id="backmatter">Backmatter</h2>
|
||
|
||
<ul>
|
||
<li><a href="/19.08/Acknowledgements/">Acknowledgements</a></li>
|
||
<li><a href="/19.08/Fonts/">Fonts</a>: Test page for fonts</li>
|
||
<li><a href="/19.08/Statistics/">Statistics</a>: Line counts for each chapter</li>
|
||
</ul>
|
||
|
||
<h2 id="related">Related</h2>
|
||
|
||
<ul>
|
||
<li>Courses taught from the textbook:
|
||
<ul>
|
||
<li>Philip Wadler, University of Edinburgh,
|
||
<a href="/19.08/TSPL/2018/">2018</a></li>
|
||
<li>David Darais, University of Vermont,
|
||
<a href="http://david.darais.com/courses/fa2018-cs295A/">2018</a></li>
|
||
<li>John Leo, Google Seattle, 2018–2019</li>
|
||
<li>Philip Wadler, Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio),
|
||
<a href="/19.08/PUC/2019/">2019</a></li>
|
||
<li>Prabhakar Ragde, University of Waterloo,
|
||
<a href="https://cs.uwaterloo.ca/~plragde/842/">2019</a></li>
|
||
</ul>
|
||
</li>
|
||
<li>A paper describing the book appeared in <a href="https://homepages.inf.ed.ac.uk/wadler/topics/agda.html#sbmf">SBMF</a>.</li>
|
||
</ul>
|
||
|
||
|
||
</div>
|
||
|
||
<p style="text-align:center;">
|
||
|
||
|
||
|
||
|
||
|
||
</p>
|
||
|
||
|
||
</article>
|
||
|
||
</div>
|
||
</main><footer class="site-footer h-card">
|
||
<data class="u-url" href="/19.08/"></data>
|
||
|
||
<div class="wrapper">
|
||
|
||
<h2 class="footer-heading">Programming Language Foundations in Agda
|
||
</h2><div class="footer-col-wrapper">
|
||
<div class="footer-col footer-col-1">
|
||
<ul class="contact-list">
|
||
<li class="p-name">Philip Wadler</li>
|
||
<li><a class="u-email" href="mailto:wadler@inf.ed.ac.uk">wadler@inf.ed.ac.uk</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="footer-col footer-col-2"><ul class="social-media-list"><li><a href="https://github.com/wadler"><svg class="svg-icon"><use xlink:href="/19.08/assets/minima-social-icons.svg#github"></use></svg> <span class="username">wadler</span></a></li></ul>
|
||
</div>
|
||
|
||
<div class="footer-col footer-col-3"></div>
|
||
</div><div class="footer-col-wrapper">
|
||
<div class="footer-col footer-col-1">
|
||
<ul class="contact-list">
|
||
<li class="p-name">Wen Kokke</li>
|
||
<li><a class="u-email" href="mailto:wen.kokke@ed.ac.uk">wen.kokke@ed.ac.uk</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="footer-col footer-col-2"><ul class="social-media-list"><li><a href="https://github.com/wenkokke"><svg class="svg-icon"><use xlink:href="/19.08/assets/minima-social-icons.svg#github"></use></svg> <span class="username">wenkokke</span></a></li><li><a href="https://www.twitter.com/wenkokke"><svg class="svg-icon"><use xlink:href="/19.08/assets/minima-social-icons.svg#twitter"></use></svg> <span class="username">wenkokke</span></a></li></ul>
|
||
</div>
|
||
|
||
<div class="footer-col footer-col-3"></div>
|
||
</div><div class="footer-col-wrapper">
|
||
<div class="footer-col footer-col-1">
|
||
<ul class="contact-list">
|
||
<li class="p-name">Jeremy Siek</li>
|
||
<li><a class="u-email" href="mailto:jsiek@indiana.edu">jsiek@indiana.edu</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="footer-col footer-col-2"><ul class="social-media-list"><li><a href="https://github.com/jsiek"><svg class="svg-icon"><use xlink:href="/19.08/assets/minima-social-icons.svg#github"></use></svg> <span class="username">jsiek</span></a></li><li><a href="https://www.twitter.com/jeremysiek"><svg class="svg-icon"><use xlink:href="/19.08/assets/minima-social-icons.svg#twitter"></use></svg> <span class="username">jeremysiek</span></a></li></ul>
|
||
</div>
|
||
|
||
<div class="footer-col footer-col-3"></div>
|
||
</div>This work is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>
|
||
</div>
|
||
</footer>
|
||
<!-- Import jQuery -->
|
||
<script type="text/javascript" src="/19.08/assets/jquery.js"></script>
|
||
|
||
<script type="text/javascript">
|
||
|
||
// Makes sandwhich menu works
|
||
$('.menu-icon').click(function(){
|
||
$('.trigger').toggle();
|
||
});
|
||
|
||
// Script which allows for foldable code blocks
|
||
$('div.foldable pre').each(function(){
|
||
var autoHeight = $(this).height();
|
||
var lineHeight = parseFloat($(this).css('line-height'));
|
||
|
||
var plus = $("<div></div>");
|
||
var horLine = $("<div></div>");
|
||
var verLine = $("<div></div>");
|
||
$(this).prepend(plus);
|
||
plus.css({
|
||
'position' : 'relative',
|
||
'float' : 'right',
|
||
'right' : '-' + (0.5 * lineHeight - 1.5) + 'px',
|
||
'width' : lineHeight,
|
||
'height' : lineHeight});
|
||
verLine.css({
|
||
'position' : 'relative',
|
||
'height' : lineHeight,
|
||
'width' : '3px',
|
||
'background-color' : '#C1E0FF'});
|
||
horLine.css({
|
||
'position' : 'relative',
|
||
'top' : '-' + (0.5 * lineHeight + 1.5) + 'px',
|
||
'left' : '-' + (0.5 * lineHeight - 1.5) + 'px',
|
||
'height' : '3px',
|
||
'width' : lineHeight,
|
||
'background-color' : '#C1E0FF'});
|
||
plus.append(verLine);
|
||
plus.append(horLine);
|
||
|
||
$(this).height(2.0 * lineHeight);
|
||
$(this).css('overflow','hidden');
|
||
|
||
$(this).click(function(){
|
||
if ($(this).height() == autoHeight) {
|
||
$(this).height(2.0 * lineHeight);
|
||
plus.show();
|
||
}
|
||
else {
|
||
$(this).height('auto');
|
||
plus.hide();
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
|
||
<!-- Import KaTeX -->
|
||
<script type="text/javascript" src="/19.08/assets/katex.js"></script>
|
||
|
||
<!-- Script which renders TeX using KaTeX -->
|
||
<script type="text/javascript">
|
||
$("script[type='math/tex']").replaceWith(
|
||
function(){
|
||
var tex = $(this).text();
|
||
return "<span class=\"inline-equation\">" +
|
||
katex.renderToString(tex) +
|
||
"</span>";
|
||
});
|
||
$("script[type='math/tex; mode=display']").replaceWith(
|
||
function(){
|
||
var tex = $(this).text().replace(/%.*?(\n|$)/g,"");
|
||
return "<div class=\"equation\">" +
|
||
katex.renderToString("\\displaystyle "+tex) +
|
||
"</div>";
|
||
});
|
||
</script>
|
||
</body>
|
||
|
||
</html>
|