The main difference between the intensional types and the extensional
types is that in the intensional types, the arguments are functions
from worlds to extensions: intransitive verb phrases like "left" now
The main difference between the intensional types and the extensional
types is that in the intensional types, the arguments are functions
from worlds to extensions: intransitive verb phrases like "left" now
-take individual concepts as arguments (type s->e) rather than plain
+take so-called "individual concepts" as arguments (type s->e) rather than plain
individuals (type e), and attitude verbs like "think" now take
propositions (type s->t) rather than truth values (type t).
In addition, the result of each predicate is an intension.
individuals (type e), and attitude verbs like "think" now take
propositions (type s->t) rather than truth values (type t).
In addition, the result of each predicate is an intension.
@@ -66,7+66,7 @@ of evaluation is hidden inside of an evaluation coordinate, or built
into the the lexical meaning function, but we've made it explicit here
in the way that the intensionality monad makes most natural.)
into the the lexical meaning function, but we've made it explicit here
in the way that the intensionality monad makes most natural.)
-The intenstional types are more complicated than the intensional
+The intensional types are more complicated than the extensional
types. Wouldn't it be nice to make the complicated types available
for those expressions like attitude verbs that need to worry about
intensions, and keep the rest of the grammar as extensional as
types. Wouldn't it be nice to make the complicated types available
for those expressions like attitude verbs that need to worry about
intensions, and keep the rest of the grammar as extensional as
@@ -77,28+77,22 @@ division-by-zero problems as much as possible.
So here's what we do:
So here's what we do:
-In OCaml, we'll use integers to model possible worlds:
+In OCaml, we'll use integers to model possible worlds. Characters (characters in the computational sense, i.e., letters like `'a'` and `'b'`, not Kaplanian characters) will model individuals, and OCaml booleans will serve for truth values:
type s = int;;
type e = char;;
type t = bool;;
type s = int;;
type e = char;;
type t = bool;;
-Characters (characters in the computational sense, i.e., letters like
-`'a'` and `'b'`, not Kaplanian characters) will model individuals, and
-OCaml booleans will serve for truth values.
+ let ann = 'a';;
+ let bill = 'b';;
+ let cam = 'c';;
-<pre>
-let ann = 'a';;
-let bill = 'b';;
-let cam = 'c';;
-
-let left1 (x:e) = true;;
-let saw1 (x:e) (y:e) = y < x;;
+ let left1 (x:e) = true;;
+ let saw1 (x:e) (y:e) = y < x;;
-left1 ann;;
-saw1 bill ann;; (* true *)
-saw1 ann bill;; (* false *)
-</pre>
+ left1 ann;;
+ saw1 bill ann;; (* true *)
+ saw1 ann bill;; (* false *)
So here's our extensional system: everyone left, including Ann;
and Ann saw Bill, but Bill didn't see Ann. (Note that Ocaml word
So here's our extensional system: everyone left, including Ann;
and Ann saw Bill, but Bill didn't see Ann. (Note that Ocaml word
@@ -133,8+127,8 @@ Now we are ready for the intensionality monad:
<pre>
type 'a intension = s -> 'a;;
<pre>
type 'a intension = s -> 'a;;
-let unit x (w:s) = x;;
-let bind m f (w:s) = f (m w) w;;
+let unit x = fun (w:s) -> x;;
+let bind m f = fun (w:s) -> f (m w) w;;
</pre>
Then the individual concept `unit ann` is a rigid designator: a
</pre>
Then the individual concept `unit ann` is a rigid designator: a