4.2. and in Action: Existential and Universal Quantification
One of the idiosyncracies of DS is the use of the epsilon calculus in order to handle quantification. DS uses this mechanism, among other reasons, to keep the types of NPs lower (e) and, thus, have a uniform predicate–argument composition in that way (verbal elements are always the functors, NPs are always the arguments). What I want to show here is a way to do existential quantification using types that respect this lower typing that DS wants. Let us start. Say we want to parse the sentence a man walks. We start with the entry for the indefinite:
| IF | |
| THEN | make(); go(); put(); |
| | go(); make(); go(); |
| | put(Ty(), Fo()), go()() |
| ELSE | abort |
The idea here is that the indefinite creates the CN node and the CN →object node. The type is the top type in the CN universe, meaning that all other types in the universe are its subtypes. In that node, the formula value is added. This basically creates a function requiring an A argument to create a dependent pair, where the first projection is the proof that x is an A and the second component is just the true proposition. Note that A is of type CN, the universe of common nouns. The next step is the entry for the common noun man:
| (10) | Lexical entry for man |
| IF | |
| THEN | |
| ELSE | abort |
The lexical entry for just contributes its type in the CN node (in effect, this is ). The lexical entry for walks is as follows:
| (11) | Lexical entry for walks |
| IF | |
| THEN | |
| ELSE | abort |
The requirement has a more general type that will be compatible with any type in the
universe. The verb walks then contributes the type
. Combining the
and
nodes will give us the formula
. But this is of type
. Indeed this is true, given that the
is a subtype of its first projection, i.e.,
man, and
man is a subtype of
object which can thus be used in any environment that requires such a type. The end result is reflected in the tree below, where
walks combines with the first projection of the dependent path:
| (12) |
![Languages 10 00269 i001 Languages 10 00269 i001]() |
interpretation can also proceed via
, i.e., instead of being base types, they are more elaborate types like, for example,
types. For example, in the case of
, we could have
. In this case, what we would get is
| (13) |
![Languages 10 00269 i002 Languages 10 00269 i002]() |
Note that combining
and
gives
that simplifies to
. Also in both interpretations of
CN, the end result is the same formula. However, in the second case, one can recover the fact that x is male via the second projection that says that there is proof p that x is male, while in the first case the second projection is just the truth placeholder.
The nice thing about the use of
is that we can still keep the DS intuition that NPs are of a lower type. In DS, this is maintained by using the epsilon calculus
and
operators for existential and universal quantification. In the case of existential quantification, this is possible with
-types in our case as well. However, when we move to universal quantification using
, this lower typing cannot be maintained. In MLTT-semantics, the universal quantifier is a polymorphic type with the following type:
Based on this, we assume the following lexical entry for
every:
| (15) | Lexical entry for every |
| IF | |
| THEN | make(); go(); put(); |
| | go(); make(); go(); |
| | put(Ty(), Fo()) |
| ELSE | abort |
The crucial difference is in both the type and formula value: instead of and , respectively, what we have is and . In effect, what we get is a polymorphic function that takes a CN argument of type A and returns a generalized quantifier of type . Now, when every applies to man, we get the following:
The CN node contributes
The node contributes
Applying the function:
This creates a generalized quantifier of type , which can then take walk as its argument.
| (16) |
![Languages 10 00269 i003 Languages 10 00269 i003]() |
Let us now see cases involving two quantifiers. Take the sentence
every doctor examined a patient. We first process
every doctor using
, followed by
examined and the indefinite as a
. The indefinite, as we have said, is parsed as a
allowing a lower type to be used because of its first projection. Then, the combination of the predicate and the existential is fed to the universal as an argument, giving the following as the end result:
4| (17) |
![Languages 10 00269 i004 Languages 10 00269 i004]() |
Scopal statements can be handled in the usual DS way shown in
Cann et al. (
2005) using scopal statements at the top node. For example, parsing
every doctor examined will project a statement of scope on the top node:
| (18) |
![Languages 10 00269 i005 Languages 10 00269 i005]() |
When a patient is processed, the indefinite creates an underspecified scope statement where the metavariable U can be resolved to different terms depending on whether narrow or wide scope is chosen. The indefinite also projects a scope requirement that must be satisfied:
| (19) |
![Languages 10 00269 i006 Languages 10 00269 i006]() |
For the narrow scope reading, the metavariable U is resolved to the universal term already present in the structure, giving . This results in the scope statement , meaning the indefinite takes narrow scope relative to the universal quantifier. Function application then yields the final semantic result :
| (20) |
![Languages 10 00269 i007 Languages 10 00269 i007]() |
Alternatively, for the wide scope reading, the metavariable U is resolved to immediately upon processing the indefinite, giving . This results in the scope statement , meaning the indefinite takes wide scope over the universal quantifier. The same tree structure applies, but the scope statement determines that the final semantic result is :
| (21) |
![Languages 10 00269 i008 Languages 10 00269 i008]() |
What we did so far is as follows: in a way, we kept the intuition for lower typing for the case of existentials (as in the epsilon use for indefinites in the original DS treatment) and a higher-order typing for universals using
types. To my knowledge, this is the first digression into a use where quantifiers are functors rather than arguments in DS (even though this is the standard in mostly all other formal semantics treatments). What we did here has further connections with the way existentials and universals have been shown to work. For example, going back to
Reinhart (
1997), choice functions and similar mechanisms (e.g., skolem functions) show that existentials take scope in different ways than universals. Here, I have shown a minimal account of scope in the traditional DS way of accounting for scope. However, the
,
assymetry of typing and the use of associated projections of
might give rise to similar uses. Indeed, the connection between
and choice/skolem functions is intriguing. For example
acts like a choice function that picks a witness from the domain of patients. In the same sense, when
, the
behaves like a skolem constant. These are intriguing connections and we aspire to further elaborate on these in future work.
4.3. MLTT Contexts and Rerunning DS Actions
One of the powerful features of DS is its incremental, real-time, left-to-right processing that allows transparent semantic representations to be unfolded as a by-product of incremental parsing. DS has been shown to be very suitable for phenomena that go beyond the level of the sentence, notably ellipsis and dialogue phenomena. One very prominent feature of DS is the availability to rerun previous actions again. To give an example, consider the elliptical case of John loves Mary. George does too. The classic DS account of such elliptical cases involves the parser building a complete semantic tree for the first sentence, simultaneously recording all the parsing actions used in a dynamic DAG. When George does too is processed, the auxiliary projects a metavariable of type e → t that triggers a backwards search through the DAG. The sequence of actions that gave rise to the predicate loves Mary from the first sentence are identified and rerun this time at the elliptical sentence, and with George as the new subject. This rerun mechanism produces the desired interpretation George loves Mary without requiring any special ellipsis-specific machinery.
What I want to discuss here is the use of type-theoretic contexts as a means to record the history of parsing actions. In effect, TT contexts will be used to record the actions taken during the parsing process that drive incremental semantic growth. Ideally, we need a record of things like the lexical and computational actions used, the tree-building operations performed (node creation, pointer movement, type and formula decoration), and also, metavariable projections and resolutions/substitutions.
In Martin-Löf Type Theory (MLTT), contextsare finite sequences of variable declarations with their types, written as follows:
| (22) | |
Contexts serve several crucial functions:
Variable Binding: Each variable is bound with its type , which may depend on previously declared variables.
Dependency Structure: Later types can refer to earlier variables, creating dependent types like and .
Typing Judgments: All type-theoretic judgments are made relative to a context:
Context Extension: New assumptions are added via context extension (provided ).
Substitution: When we have and , we can substitute to get .
Contexts thus provide the foundational infrastructure for dependent typing, ensuring that all type dependencies are properly tracked and that substitution operations preserve well-typedness.
In this paper, we extend the standard MLTT notion of contexts to record not just semantic assumptions but the complete derivational history of DS parsing. Our DS-MLTT contexts take the following form:
where semantic assumptions are interleaved with action assumptions that record the parsing steps used to derive each semantic judgment. This allows us to treat action rerun as a formal operation on TT contexts, where we can extract and re-use action sequences. Let us exemplify the mechanism using the VP ellipsis example. But first, we need to define the basic Action types needed:
| (24) | Basic Types: |
| |
| (25) | DSAction as a Disjoint Union Type:5 |
| | To give an example, consider the parse of the simple sentence John loves Mary. We start with the initial ?Ty(Prop) context: |
After parsing the sentence, we end up with the following context:
| (27) | Full DS-MLTT Context : |
When the sentence is followed by
George does too, the following happens. We start with INTRO and PREDICTION and parsing of
George, and the pointer at the predicate node, then
does comes into parse, projecting a predicate formula metavariable U:
This metavariable acts as a placeholder signaling that predicate content must be recovered from the prior discourse context
.
At this point,
too comes into parse and triggers a context rerun, filtering out the subject as follows:
| (29) | Lexical entry for too (simplified): |
| IF | |
| THEN | Run(, )) |
| ELSE | abort |
The filtering operation works as follows: we exclude all actions associated with building and populating the left daughter node at address
(the subject position). Specifically, this removes actions from
through
in
. The filtered context
retains only the actions that constructed the predicate:
These remaining actions are rerun in the current tree where George occupies the subject position. The rerun rebuilds the predicate structure: loves projects its argument structure, Mary fills the object slot, and function application produces . The U metavariable is then substituted with this recovered predicate value, and COMPLETION plus ELIMINATION yield the final result .
4.5. Adjectives
I am going to propose two mechanisms for adjectives: one that does not use LINK and projects adjectival semantics in the CN node, and one that uses LINK. Various adjectival constructions cross-linguistically seem to be requiring both as I will argue, e.g, regular adjectival modification vs polydefinites in Greek and stage- vs. individual-level readings in English. Let us start with a classic intersective adjective like black. The standard assumption in MLTT-semantics is that something like black dog involves a in effect, a dependent pair with the first projection being proof that an object is a dog, along with proof that it is black (given that it is a dog). Based on this, one can envision the following lexical entry for black in English:
| (30) | Lexical Entry for black: |
| IF | |
| THEN | make(); go(); put(); |
| | go(); make(); go(); |
| | put(, ) |
| ELSE | abort |
Parsing black will give us
| (31) | Parsing black |
![Languages 10 00269 i009 Languages 10 00269 i009]() |
Then, dog is parsed, providing the noun type and combining with the polymorphic type to return . The ?Object node gets a type and a formula:
| (32) | After parsing dog |
![Languages 10 00269 i010 Languages 10 00269 i010]() |
Walks comes into parse, combines with the subject node, and the parse is complete:
| (33) | After a black dog walks |
![Languages 10 00269 i011 Languages 10 00269 i011]() |
Note that in the above, the ending formula is , since the first projection of the is a coercion (basically, we drop the ⊤ from the formula). In TTs where this does not hold, one needs to find a way to grab the first projection content. Of course, we need to repeat here that this exact mechanism is also the one that allows us to keep a lower type with types.
The other way to deal with adjectives and, in general, modifiers is via LINK. The difference here is that the adjective, instead of projecting its semantics into the main tree, initiates a LINK relation from the type ?CN node.
| (34) | After parsing black on a LINKed tree |
![Languages 10 00269 i012 Languages 10 00269 i012]() |
After LINK evaluation gives us
at the CN node, then ELIMINATION combines it with the determiner:
The verb comes into parse and everything works as expected from there on:
| (36) | |
![Languages 10 00269 i013 Languages 10 00269 i013]() |
One thing that these two different ways of encoding adjectives offer us is that we can deal with some well-known differences in adjectival syntax cross-linguistically. For example, take the case of individual- vs. stage-level readings in English, i.e., the difference between
the responsible people and
the people responsible. In the first case, the property of being responsible is tightly knit into that specific subset of people, whereas in the second, it is situation-dependent. One can envision where the prenominal adjectives give the semantics we just discussed, and the postnominal is derived by LINK via a LINK evaluation rule that ties the semantics to a situation variable. Similar considerations apply to Greek polydefinites, recasting the account by
Chatzikyriakidis and Spathas (
2025) with MLTT-semantics.
Let me now say a few words on how adverbs can be incorporated in DS-MLTT. In terms of their semantics, the semantics of various types of adverbs have been dealt with in
Chatzikyriakidis and Luo (
2017) and the assumption that adverbs involve LINK relations.
| (37) | Lexical Entry for quickly: |
| IF | |
| THEN | make(); go(); |
| | put(, |
| | ) |
| ELSE | abort |
Now take the sentence John walks quickly. The first step is parsing the subject and verb:
| (38) | After John walks |
![Languages 10 00269 i014 Languages 10 00269 i014]() |
| (39) | After quickly is parsed |
![Languages 10 00269 i015 Languages 10 00269 i015]() |
The adverb’s typing contains an A argument which is inferred from context. This is not unusual in type systems. In fact, we can assume that the A is an implicit argument, in the same sense one can declare implicit arguments in proof-assistants implementing MLTTs like Coq (
The Coq Development Team, 2024). Given this type being implicit, the result of the tree after evaluation is as follows:
| (40) | Final tree after ELIMINATION |
![Languages 10 00269 i016 Languages 10 00269 i016]() |
This is a simple treatment of VP adverbs that does not get into the details of the semantics of each adverb. However, the MLTT paradigm is expressive enough to capture various fine-grained issues in adverbial semantics. To give an example, considering veridicality, if we wanted to encode veridicality for VP (or Prop adverbs), one way is to use the following -type based account. According to this, the lexical entry for quickly will be the following:
We use an auxiliary type constructor that associates a modified predicate with a proof of veridicality:
Then, every veridical adverb is of the following definition:
For
quickly, we have the following DS entry:
| (43) | Lexical Entry for veridical quickly |
| IF | |
| THEN | make(); go(); |
| | put(, |
| | ) |
| ELSE | abort |
Now, after parsing something like John walks quickly, we get the following:
Parse gives .
This is equal to .
Extract the proof from the second projection: .
Instantiate with : .
Modus ponens: .
Same considerations apply to sentence-level adverbs. Of course, the semantics, but also syntax, of adverbs are far more complicated, but I will not delve into more fine-grained issues of adverbial semantics here. The interested reader is directed to
Maienborn and Schäfer (
2019);
Morzycki (
2016) for a general discussion on the nature and problems of modification in NL semantics and to
Chatzikyriakidis and Luo (
2017) for a more thorough discussion on treating the semantics of aspects of adjectival and adverbial modification using MLTT-semantics.