pub fn cumulative_reading<'a>(
expr: &'a LogicExpr<'a>,
interner: &mut Interner,
expr_arena: &'a Arena<LogicExpr<'a>>,
) -> Option<&'a LogicExpr<'a>>Expand description
Builds the CUMULATIVE reading (Scha 1981) for a two-cardinal transitive
sentence — the reading irreducible to either nesting:
“Three boys lifted five boxes.” →
∃=3 x(Boy(x) ∧ ∃y(Box(y) ∧ Lift(x,y))) ∧ ∃=5 y(Box(y) ∧ ∃x(Boy(x) ∧ Lift(x,y)))
i.e. exactly 3 boys each lifted some box AND exactly 5 boxes were each lifted
by some boy. This is first-order over the Link lattice (no ⊕ term needed). It
is produced only when there are exactly two cardinal quantifiers in the same
island over a shared nucleus; otherwise returns None.