Left-nested conditional structure: "If (B if A), C"
The structure of an LNC where the outer antecedent is itself a conditional.
Example: "If Kripke was there if Strawson was, Anscomb was there"
- innerAntecedent = "Strawson was there"
- innerConsequent = "Kripke was there"
- outerConsequent = "Anscomb was there"
- innerAntecedent : BProp W
A: The inner antecedent
- innerConsequent : BProp W
B: The inner consequent
- outerConsequent : BProp W
C: The outer consequent
Instances For
Get the inner conditional "B if A" as a proposition.
This is the outer antecedent of the full LNC.
Equations
Instances For
Full LNC semantics using material implication.
"If (B if A), C" = (A → B) → C
Equations
Instances For
Full LNC semantics using Kratzer-style conditionals.
The outer conditional uses the Kratzer semantics with modal base and ordering source, while the inner conditional is the restrictor.
Equations
- Semantics.Conditionals.LNC.kratzerSemantics ctx lnc = Semantics.Conditionals.kratzerConditional ctx (fun (w : W) => lnc.innerConditional w = true) fun (w : W) => lnc.outerConsequent w = true
Instances For
Classification of the inner conditional's content.
The content type determines whether the LNC can be interpreted as an HC. Bare conditionals force PC reading; modals/generics allow HC reading.
- bare : InnerConditionalContent
No modal/generic content → forces PC reading
- modal : InnerConditionalContent
Has modal verb/operator → allows HC reading
- generic : InnerConditionalContent
Generic/habitual → allows HC reading
- quantAdv : InnerConditionalContent
Quantificational adverb (always, usually, etc.) → allows HC reading
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Does this content type require discourse anchoring for the inner conditional?
Equations
- Semantics.Conditionals.InnerConditionalContent.bare.requiresDiscourseAnchor = true
- Semantics.Conditionals.InnerConditionalContent.modal.requiresDiscourseAnchor = false
- Semantics.Conditionals.InnerConditionalContent.generic.requiresDiscourseAnchor = false
- Semantics.Conditionals.InnerConditionalContent.quantAdv.requiresDiscourseAnchor = false
Instances For
Can this content type be interpreted as an HC?
Equations
- Semantics.Conditionals.InnerConditionalContent.bare.allowsHCReading = false
- Semantics.Conditionals.InnerConditionalContent.modal.allowsHCReading = true
- Semantics.Conditionals.InnerConditionalContent.generic.allowsHCReading = true
- Semantics.Conditionals.InnerConditionalContent.quantAdv.allowsHCReading = true
Instances For
Interpret an LNC given discourse context and content type.
The main result of @cite{cao-white-lassiter-2025}: bare LNCs default to PC interpretation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Check if an LNC is felicitous in a given discourse state.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Main result: Bare LNCs default to PC interpretation.
When the inner conditional has bare content (no modal/generic/quantAdv), the LNC is interpreted as a premise conditional, regardless of discourse.
Exception: Modal LNCs can be HCs.
When the inner conditional has modal content, the LNC can be interpreted as either HC or PC, depending on discourse context.
Modal LNCs prefer PC when discourse anchor exists.
LNC semantics grounded in Kratzer.
The LNC semantics is compositionally derived from Kratzer's conditional semantics - it's not stipulated specially for LNCs.
Left-nested conditional with metadata for analysis.
- lnc : LNC W
The LNC structure
- content : InnerConditionalContent
Content type of inner conditional
- sentence : String
String representation for display
- notes : String
Notes on interpretation
Instances For
Get interpretation in discourse context
Equations
- alnc.interpret ds worlds = Semantics.Conditionals.interpretLNC ds alnc.lnc alnc.content worlds
Instances For
Check felicity
Equations
- alnc.isFelicitous ds worlds = Semantics.Conditionals.lncFelicitous ds alnc.lnc alnc.content worlds
Instances For
Get polarity context for inner conditional antecedent
Equations
- alnc.innerAntecedentPolarity ds worlds = Semantics.Conditionals.ConditionalPolarityContext.fromConditionalType (alnc.interpret ds worlds)
Instances For
Polarity Patterns (@cite{cao-white-lassiter-2025}, Section 4) #
@cite{gibbard-1981}
The PC analysis of LNCs predicts specific polarity patterns:
In the embedded consequent (B in "if (B if A), C") #
- PPIs licensed: "If John helped someone if asked, we're in good shape"
- NPIs blocked: "*If John helped anyone if asked, we're in good shape"
In the inner antecedent (A) #
- This position is DE regardless of HC/PC reading
- But polarity licensing also depends on epistemic status
The embedded consequent patterns are diagnostic because:
- In HCs: the embedded consequent is in an epistemic uncertainty context
- In PCs: the embedded consequent is treated as established
Polarity licensing in the embedded consequent position.
Following @cite{cao-white-lassiter-2025}: the embedded consequent of an LNC (the B position in "if (B if A), C") shows polarity patterns consistent with PC reading.
- licensesPPI : Bool
Whether the LNC licenses PPIs in B position
- licensesNPI : Bool
Whether the LNC licenses NPIs in B position
Instances For
Get polarity licensing for embedded consequent based on LNC interpretation.
Equations
- Semantics.Conditionals.embeddedConsequentPolarity Semantics.Conditionals.ConditionalType.hypothetical = { licensesPPI := false, licensesNPI := true }
- Semantics.Conditionals.embeddedConsequentPolarity Semantics.Conditionals.ConditionalType.premise = { licensesPPI := true, licensesNPI := false }
Instances For
Bare LNCs license PPIs in embedded consequent.
Bare LNCs block NPIs in embedded consequent.
Simple world type for LNC examples.
Based on the Gibbard scenario: Strawson, Kripke, and Anscomb may or may not have attended a party.
- sOnly : PartyWorld
- kOnly : PartyWorld
- aOnly : PartyWorld
- sk : PartyWorld
- sa : PartyWorld
- ka : PartyWorld
- ska : PartyWorld
- none_ : PartyWorld
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Semantics.Conditionals.instBEqPartyWorld.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
Instances For
Equations
Instances For
Equations
Instances For
Gibbard's example LNC: "If Kripke was there if Strawson was, Anscomb was there"
Equations
- One or more equations did not get rendered due to their size.
Instances For
Summary #
This module provides:
Types #
LNC: Left-nested conditional structureInnerConditionalContent: Content type classification (bare/modal/generic/quantAdv)AnnotatedLNC: LNC with metadata for analysisEmbeddedConsequentPolarity: Polarity licensing in embedded consequent
Key Operations #
LNC.innerConditional: Extract the inner conditional propositionLNC.semantics: Material implication semanticsLNC.kratzerSemantics: Kratzer-style semanticsinterpretLNC: Determine HC/PC interpretation based on content and discourselncFelicitous: Check felicity in discourse contextembeddedConsequentPolarity: Get polarity licensing for embedded position
Theorems #
bare_lnc_as_pc: Bare LNCs default to PC interpretationmodal_lnc_allows_hc: Modal LNCs can be HCs (when no discourse anchor)modal_lnc_prefers_pc: Modal LNCs prefer PC when discourse anchor existslnc_grounded: LNC semantics from Kratzer conditionalsbare_lnc_licenses_ppi_in_B: Bare LNCs license PPIs in embedded consequentbare_lnc_blocks_npi_in_B: Bare LNCs block NPIs in embedded consequent
Insight #
Bare LNCs force PC interpretation because the inner conditional (a propositional object) inherently requires discourse anchoring to be supposed. This explains:
- Why bare LNCs sound odd out of the blue
- Why they improve with discourse context
- Why they pattern with PCs for polarity licensing
- Why modal/generic LNCs allow HC readings