From cabaa3341918874ee26fd368df25383e15b31737 Mon Sep 17 00:00:00 2001 From: jim Date: Tue, 24 Mar 2015 09:17:23 -0400 Subject: [PATCH 1/1] ≡ means syntactic identity, not equivalence --- exercises/assignment5_answers.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/assignment5_answers.mdwn b/exercises/assignment5_answers.mdwn index 1780b0aa..9be28e21 100644 --- a/exercises/assignment5_answers.mdwn +++ b/exercises/assignment5_answers.mdwn @@ -506,7 +506,7 @@ type `Bool`. also a mistake. What we want is a result whose type _is_ `Bool`, that is, `∀α. α -> α -> α`. `(q [Bool])` doesn't have that type, but rather the type `Bool -> Bool -> Bool`. The first, desired, type has an outermost `∀`. The second, wrong type doesn't; it only has `∀`s inside the antecedents and consequents of the various arrows. The last one of those could be promoted to be an outermost `∀`, since - `P -> ∀α. Q ≡ ∀α. P -> Q` when `α` is not free in `P`. But that couldn't be done with the others. + `P -> ∀α. Q` is equivalent to `∀α. P -> Q` when `α` is not free in `P`. But that couldn't be done with the others. The type `Nat` (for "natural number") may be encoded as follows: -- 2.11.0