Fixed some typos (#519)

This commit is contained in:
Reza Gharibi 2020-09-25 12:10:46 +03:30 committed by GitHub
parent fcfb0caee2
commit 778d42371d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 8 additions and 8 deletions

View file

@ -215,7 +215,7 @@ sub-id = plfa.part2.Substitution.sub-id
``` ```
We define an auxilliary function for extending a substitution. We define an auxiliary function for extending a substitution.
``` ```
ext-subst : ∀{Γ Δ} → Subst Γ Δ → Δ ⊢ ★ → Subst (Γ , ★) Δ ext-subst : ∀{Γ Δ} → Subst Γ Δ → Δ ⊢ ★ → Subst (Γ , ★) Δ
@ -393,7 +393,7 @@ underneath lambda abstractions via the `ζ` rule. The call-by-name
semantics does not reduce under lambda, so a straightforward proof by semantics does not reduce under lambda, so a straightforward proof by
induction on the reduction sequence is impossible. In the article induction on the reduction sequence is impossible. In the article
_Call-by-name, call-by-value, and the λ-calculus_, Plotkin proves the _Call-by-name, call-by-value, and the λ-calculus_, Plotkin proves the
theorem in two steps, using two auxilliary reduction relations. The theorem in two steps, using two auxiliary reduction relations. The
first step uses a classic technique called Curry-Feys standardisation. first step uses a classic technique called Curry-Feys standardisation.
It relies on the notion of _standard reduction sequence_, which acts It relies on the notion of _standard reduction sequence_, which acts
as a half-way point between full beta reduction and call-by-name by as a half-way point between full beta reduction and call-by-name by

View file

@ -49,7 +49,7 @@ diamond property. Here is a counter example.
Both terms can reduce to `a a`, but the second term requires two steps Both terms can reduce to `a a`, but the second term requires two steps
to get there, not one. to get there, not one.
To side-step this problem, we'll define an auxilliary reduction To side-step this problem, we'll define an auxiliary reduction
relation, called _parallel reduction_, that can perform many relation, called _parallel reduction_, that can perform many
reductions simultaneously and thereby satisfy the diamond property. reductions simultaneously and thereby satisfy the diamond property.
Furthermore, we show that a parallel reduction sequence exists between Furthermore, we show that a parallel reduction sequence exists between
@ -407,7 +407,7 @@ The heart of the confluence proof is made of stone, or rather, of
diamond! We show that parallel reduction satisfies the diamond diamond! We show that parallel reduction satisfies the diamond
property: that if `M ⇛ N` and `M ⇛ N`, then `N ⇛ L` and `N ⇛ L` for property: that if `M ⇛ N` and `M ⇛ N`, then `N ⇛ L` and `N ⇛ L` for
some `L`. The typical proof is an induction on `M ⇛ N` and `M ⇛ N` some `L`. The typical proof is an induction on `M ⇛ N` and `M ⇛ N`
so that every possible pair gives rise to a witeness `L` given by so that every possible pair gives rise to a witness `L` given by
performing enough beta reductions in parallel. performing enough beta reductions in parallel.
However, a simpler approach is to perform as many beta reductions in However, a simpler approach is to perform as many beta reductions in
@ -611,7 +611,7 @@ confluence L↠M₁ L↠M₂
## Notes ## Notes
Broadly speaking, this proof of confluence, based on parallel Broadly speaking, this proof of confluence, based on parallel
reduction, is due to W. Tait and P. Martin-Lof (see Barendredgt 1984, reduction, is due to W. Tait and P. Martin-Löf (see Barendredgt 1984,
Section 3.2). Details of the mechanization come from several sources. Section 3.2). Details of the mechanization come from several sources.
The `subst-par` lemma is the "strong substitutivity" lemma of Shafer, The `subst-par` lemma is the "strong substitutivity" lemma of Shafer,
Tebbi, and Smolka (ITP 2015). The proofs of `par-triangle`, `strip`, Tebbi, and Smolka (ITP 2015). The proofs of `par-triangle`, `strip`,

View file

@ -574,7 +574,7 @@ bound variable.
Whereas before renaming was a result that carried evidence Whereas before renaming was a result that carried evidence
that a term is well typed in one context to evidence that it that a term is well typed in one context to evidence that it
is well typed in another context, now it actually transforms is well typed in another context, now it actually transforms
the term, suitably altering the bound variables. Typechecking the term, suitably altering the bound variables. Type checking
the code in Agda ensures that it is only passed and returns the code in Agda ensures that it is only passed and returns
terms that are well typed by the rules of simply-typed lambda terms that are well typed by the rules of simply-typed lambda
calculus. calculus.

View file

@ -618,7 +618,7 @@ Consider the context:
+ If they differ, we recurse: + If they differ, we recurse:
- If lookup fails, we apply `ext∋` to conver the proof - If lookup fails, we apply `ext∋` to convert the proof
there is no derivation from the contained context there is no derivation from the contained context
to the extended context. to the extended context.

View file

@ -1235,7 +1235,7 @@ Come up with an algorithmic subtyping rule for variant types.
#### Exercise `<:-alternative` (stretch) #### Exercise `<:-alternative` (stretch)
Revise this formalization of records with subtyping (including proofs Revise this formalisation of records with subtyping (including proofs
of progress and preservation) to use the non-algorithmic subtyping of progress and preservation) to use the non-algorithmic subtyping
rules for Chapter 15 of Types and Programming Languages, which we list here: rules for Chapter 15 of Types and Programming Languages, which we list here: