X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=topics%2F_week15_continuation_applications.mdwn;h=d13efa7f6ce12a7177bb9b2d139928d97f184152;hp=ec0cb5d60183ff0f06635a1bd3351794607a2b5e;hb=962395be322717c215b557851b9a45863df11701;hpb=3763823a34161836b06f956662ad4e42372b4739;ds=sidebyside diff --git a/topics/_week15_continuation_applications.mdwn b/topics/_week15_continuation_applications.mdwn index ec0cb5d6..d13efa7f 100644 --- a/topics/_week15_continuation_applications.mdwn +++ b/topics/_week15_continuation_applications.mdwn @@ -104,11 +104,16 @@ Raising closely resembles the reduction rule for shift: Quantifier Raising: given a sentence [... [QDP] ...], build a new sentence [QDP (\x.[... [x] ...])]. +Here, QDP is a scope-taking quantificational DP. + Just to emphasize the similarity between QR and shift, we can use QR to provide insight into the tree task that mystified us earlier. + +
   .
 __|___
 |    |
@@ -119,11 +124,16 @@ a  __|___
       d  _|__
          |  |
          S  e
+
-First we QR the lower shift operator +First we QR the lower shift operator, replacing it with a variable and +abstracting over that variable. + +
    .
 ___|___
 |     |
@@ -138,11 +148,15 @@ S  ___|___
              d  _|__
                 |  |
                 x  e
+
Next, we QR the upper shift operator + +
    .
 ___|___
 |     |
@@ -161,10 +175,11 @@ S  ___|____
                     d  _|__
                        |  |
                        x  e
+
We then evaluate, using the same value for the shift operator proposed before: - shift = \k.k(k "") + S = shift = \k.k(k "") It will be easiest to begin evaluating this tree with the lower shift operator (we get the same result if we start with the upper one). @@ -172,8 +187,11 @@ The relevant value for k is (\x.a(y(d(x e)))). Then k "" is a(y(d(""(e)))), and k(k "") is a(y(d((a(y(d(""(e)))))(e)))). In tree form: + +
    .
 ___|___
 |     |
@@ -196,13 +214,17 @@ S  ___|____
                     d  __|__
                        |   |
                        ""  e
+
Repeating the process for the upper shift operator replaces each occurrence of y with a copy of the whole tree. + +
       .
       |
 ______|______
@@ -235,11 +257,13 @@ a  ___|____           |      |
                                  d  __|__
                                     |   |
                                     ""  e
+
-The yield of this tree (the sequence of leaf nodes) is aadadeedaadadeedee. +The yield of this tree (the sequence of leaf nodes) is +aadadeedaadadeedee, which is the expected output of the double-shifted tree. -Exercise: the result is different, by the way, if the QR occurs in a -different order. +Exercise: the result is different, by the way, if the QR occurs in the +opposite order. Three lessons: @@ -248,7 +272,9 @@ Three lessons: dramatic increase in power and complexity. * Operators that - compose multiple copies of a context can be hard to understand. + compose multiple copies of a context can be hard to understand + (though keep this in mind when we see the continuations-based + analysis of coordination, which involves context doubling). * When considering two-sided, tree-based continuation operators, quantifier raising is a good tool for visualizing (defunctionalizing) @@ -285,15 +311,14 @@ manipulates a list of information. It is natural to imagine separating a box into two regions, the payload and the hidden scratch space: - _______________ _______________ _______________ - | [x->2, y->3] | | [x->2, y->3] | | [x->2, y->3] | - ------------------- ------------------ ------------------ +
+    _______________               _______________            _______________ 
+    | [x->2, y->3] |	          | [x->2, y->3] |          | [x->2, y->3] |
+  ------------------- 	         ------------------        ------------------
     |              |     ¢        |              |    =     |              |
-    |    +2        |	          |     y        |	    |     5        |
-    |______________|	          |______________|	    |______________|
-
-
-(Imagine the + operation has been lifted into the Reader monad too.)
+    |    +2        |	          |     y        |          |     5        |
+    |______________|	          |______________|          |______________|
+
For people who are familiar with Discourse Representation Theory (Kamp 1981, Kamp and Reyle 1993), this separation of boxes into payload and @@ -309,14 +334,18 @@ We won't keep the outer box, but we will keep the horizontal line dividing main effects from side-effects. Tower convention for types: +
                                               γ | β
     (α -> β) -> γ can be equivalently written ----- 
                                                 α
+
Tower convention for values: +
                                            g[] 
     \k.g[k(x)] can be equivalently written ---
                                             x
+
If \k.g[k(x)] has type (α -> β) -> γ, then k has type (α -> β). @@ -329,12 +358,15 @@ individuals) and S (the type of truth values). Then in the spirit of monadic thinking, we'll have a way of lifting an arbitrary value into the tower system: - [] γ|β - LIFT (x:α) = \k.kx : (α -> β) -> γ == --- : --- - x α + [] β|β + LIFT (x:α) = \k.kx : (α -> β) -> β == -- : --- + x α Obviously, LIFT is exactly the midentity (the unit) for the continuation monad. -The name comes from Partee's 1987 theory of type-shifters for +Notice that LIFT requires the result type of the continuation argument +and the result type of the overall expression to match (here, both are β). + +The name LIFT comes from Partee's 1987 theory of type-shifters for determiner phrases. Importantly, LIFT applied to an individual-denoting expression yields the generalized quantifier proposed by Montague as the denotation for proper names: @@ -347,6 +379,14 @@ So if the proper name *John* denotes the individual j, LIFT(j) is the generalized quantifier that maps each property k of type DP -> S to true just in case kj is true. +Crucially for the discussion here, LIFT does not apply only to DPs, as +in Montague and Partee, but to any expression whatsoever. For +instance, here is LIFT applied to a lexical verb phrase: + + [] S|S + LIFT (left:DP\S) = \k.kx : (DP\S -> S) -> S == ---- : --- + left DP + Once we have expressions of type (α -> β) -> γ, we'll need to combine them. We'll use the ¢ operator from the continuation monad: @@ -373,6 +413,16 @@ operator: Not a monad (Wadler); would be if the types were Neverthless, obeys the monad laws. +Oh, one more thing: because natural language allows the functor to be +on the left or on the right, we replace the type arrow -> with a +left-leaning version \ and a right-leaning version, as follows: + + α/β β = α + β β\α = α + +This means we need two versions of ¢ too (see Barker and Shan 2014 +chapter 1 for full details). + This is (almost) all we need to get some significant linguistic work done.