;; Coordination ;; coord-subj-comp-op-gpr "B is larger than D and C is larger than D" => "B and C are larger than D" coord-subj-three-op-gpr "B is between D and E, and C is between D and E" => "B and C are betwen D and E" coord-subj-two-neg-op-gpr "B is not larger than D and C is not larger than D" => "B and C are not larger than D" coord-subj-two-pos-op-gpr "B is in back of C and D is in back of C" => "B and D are in back of C" coord-subj-two-noprop-neg-op-gpr "B is not a cube and C is not a cube" => "B and C are not cubes" coord-subj-two-noprop-op-gpr "B is not a cube and C is not a cube" => "B and C are cubes" coord-subj-one-neg-op-gpr "B is not large and C is not large" => "B and C are not large" coord-subj-one-pos-op-gpr "B is large and C is large" => "B and C are large" coord-subj-comp-nary-op-gpr "B is larger than E, and C is larger than E, and D is larger than E" => "B, C, and D are larger than E" coord-subj-three-nary-op-gpr "B is between D and E, and C is between D and E, and A is between D and E" "B, C, and A are between D and E" coord-subj-two-neg-nary-op-gpr "B is not in back of E, and C is not in back of E, and D is not in back of E" "B, C, and D are not in back of E" coord-subj-two-pos-nary-op-gpr "B is in back of E, and C is in back of E, and D is in back of E" => "B, C, and D are in back of E" coord-subj-two-noprop-neg-nary-op-gpr "B is not a cube, and C is not a cube, and D is not a cube" => "B, C, and D are not cubes" coord-subj-two-noprop-nary-op-gpr "B is a cube, and C is a cube, and D is a cube" => "B, C, and D are cubes" coord-subj-one-neg-nary-op-gpr "B is not small, and C is not small, and D is not small" => "B, C, and D are not small" coord-subj-one-pos-nary-op-gpr "B is small, and C is small, and D is small" => "B, C, and D are small" coord-vp-two-op-gpr "B is smaller than C and B is larger than D" => "B is smaller than C and (is) larger than D" coord-vp-one-op-gpr "B is a cube and B is large" => "B is a cube and is large" common-vp-comp-op-gpr "B is larger than C and B is larger than D" => "B is larger than C and D" common-vp-same-n-op-gpr "B is in the same column as C and B is in the same column as D" => "B is in the same column as C and D" common-vp-dir-op-gpr "B is to the right of C and B is to the right of D" => "B is to the right of C and D" common-vp-loc-op-gpr "B is in front of C and B is in front of D" => "B is in front of C and D" common-vp-threearg-op-gpr "B is between C and D, or B is between E and F" => "B is between C and D or E and F" common-ppof-left-op-gpr "B is to the right of D or B is to the left of D" => "B is to the right or to the left of D" common-ppof-right-op-gpr "B is to the right of D or B is to the left of D" => "B is to the left or to the right of D" common-to-the-op-gpr "B is to the right of D or B is to the left of D" => "B is to the right or left of D" common-pred-op-gpr "B is a cube or B is a tetrahedron" => "B is a cube or a tetrahedron" common-vp-loc-neg-op-gpr "B is not in front of C and B is not in front of D" => "B is not in front of C or D" common-dobj-onepred-op-gpr "B is in front of C or in back of C" => "B is in front of or in back of C" common-dobj-twopred-op-gpr "B is larger than C or smaller than C" => "B is larger than or smaller than C" common-dobj-onetwopred-op-gpr "B is in front of C or smaller than C" => "B is in front of or smaller than C" common-dobj-twoonepred-op-gpr "B is smaller than C or in front of C" => "B is smaller than or in front of C" common-noun-obj-op-gpr "B is to the left of C or right of C" => "B is to the left of or right of C" rebracket-conj-gpr (normalize multi-coord bracketing) "[A and [B and C]]" => "[[A and B] and C] paired-either-nrev-gpr paired-either-rev-gpr paired-either-x-nrev-gpr paired-either-x-rev-gpr "B is large or C is large" => "Either B is large or C is large" paired-both-nrev-gpr paired-both-rev-gpr paired-both-x-nrev-gpr paired-both-x-rev-gpr paired-both-xs-nrev-gpr paired-both-xs-rev-gpr paired-both-xn-nrev-gpr paired-both-xn-rev-gpr "It is the case that B is large and that C is large" => "It is the case both that B is large and that C is large" ;; Negation ;; not-or-to-nor-op-gpr "B is not a cube and is not a tetrahedron" => "B is neither a cube nor a tetrahedron" not-nom-or-to-nor-one-op-gpr "It is not the case that B or C is large" => "Neither B nor C is large" not-nom-or-to-nor-comp-op-gpr "It is not the case that B or C is larger than D" => "Neither B nor C is larger than D" not-nom-or-to-nor-two-op-gpr "It is not the case that B or C is in front of D" => "Neither B nor C is in front of D" and-neg-but-op-gpr "B is a cube, and D is not large" => "B is a cube, but D is not large" ;; Pronouns ;; conj-pro-subj-unamb-gpr "B is small and B is a cube" => "B is small and it is a cube" conj-pro-subj-ambig-gpr "B is larger than C, and B is a cube" => "B is larger than C, and it (i.e., B) is a cube" cond-pro-subj-gpr "If B is a cube, B is small" => "If B is a cube, it is small" cond-pro-subj-ambig-gpr "If B is larger than C, then B is a cube" => "If B is larger than C, then it (i.e., B) is a cube" cond-pro-subj-embed-cons-gpr "If B is large, then B is a cube if C is large" => "If B is large, then it is a cube if C is large" cond-pro-subj-embed-cons-neg-gpr "If B is large, then B is not a cube if C is large" => "If B is large, then it is not a cube if C is large" cond-pro-subj-embed-ant-gpr "If B is large, then if B is a cube then C is large" => "If B is large, then if it is a cube then C is large" cond-pro-subj-embed-ant-neg-gpr "If B is large, then if B is not a cube then C is large" => "If B is large, then if it is not a cube then C is large" cond-pro-subj-rev-gpr "B is small if B is a cube" => "B is small if it is a cube" cond-pro-subj-rev-prov-gpr "B is small provided that B is a cube" => "B is small provided that it is a cube" cond-pro-subj-ambig-rev-gpr "B is in front of D if B is a cube" => "B is in front of D if it (i.e, B) is a cube" cond-pro-subj-ambig-rev-prov-gpr "B is in front of D provided that B is a cube" => "B is in front of D provided that it (i.e, B) is a cube" unless-pro-subj-gpr "B is large unless B is a cube" => "B is large unless it is a cube" unless-pro-subj-ambig-gpr "B is in back of C unless B is a cube" => "B is in back of C unless it (i.e., B) is a cube" onlyif-pro-subj-gpr "B is small only if B is a cube" => "B is small only if it is a cube" iff-pro-subj-gpr "B is small if and only if B is a cube" => "B is small if and only if it is a cube" iff-pro-subj-crdvp-gpr "B is a cube if and only if B is either medium or small" => "B is a cube if and only if it is either medium or small" ;; Pronouns and coordination ;; conj-pro-coord-subj-and-gpr "B and C are cubes, and B and C are small" => "B and C are cubes, and they are small" conj-pro-coord-subj-or-gpr "B or C is a cube, and B or C is small" => "B or C is a cube, and one of them is small" cond-pro-coord-subj-and-gpr "If B and C are cubes, then B and C are small" => "If B and C are cubes, then they are small" cond-pro-coord-subj-or-gpr "If B or C is a cube, then B or C is small" => "If B or C is a cube, then one of them is small" cond-pro-coord-subj-coord-cq-and-gpr "If B and C are cubes then B and C are large or small" => "If B and C are cubes then they are large or small" cond-pro-coord-subj-coord-cq-or-gpr "If B or C is a cube then B or C is large or small" => "If B or C is a cube then one of them is large or small" onlyif-pro-coord-subj-and-gpr "B and C are cubes only if B and C are small" => "B and C are cubes only if they are small" onlyif-pro-coord-subj-or-gpr "B or C is a cube only if B or C is small" => "B or C is a cube only if one of them is small" iff-pro-coord-subj-and-gpr "B and C are cubes if and only if B and C are small" => "B and C are cubes if and only if they are small" iff-pro-coord-subj-or-gpr "B or C is a cube if and only if B or C is small" => "B or C is a cube if and only if one of them is small" coord-vp-prosub-two-op-gpr "B and C are large and they are cubes" => "B and C are large and are cubes" coord-vp-prosub-one-op-gpr "B and C are cubes and they are large" => "B and C are cubes and are large" ;; VP ellipsis ;; vp-ellip-if-pos-one-gpr "If B is large, then C is large" => "If B is large, then C is" vp-ellip-if-pos-two-comp-gpr "If B is larger than D, then C is larger than D" => "If B is larger than D, then C is" vp-ellip-if-neg-one-gpr "If B is large, then C isn't large" => "If B is large, then C isn't" vp-ellip-if-pos-two-gpr "If B is a cube, then C is a cube" => "If B is a cube, then C is" vp-ellip-if-neg-two-gpr "If B is a cube, then C isn't a cube" => "If B is a cube, then C isn't" vp-ellip-if-pos-ante-one-gpr "C is large if B is large" => "C is large if B is" vp-ellip-if-pos-ante-two-comp-gpr "C is larger than B if D is larger than B" => "C is larger than B if D is" vp-ellip-if-pos-ante-two-gpr "C is a cube if B is a cube" => "C is a cube if B is" vp-ellip-iff-pos-one-gpr "C is large if and only if B is large" => "C is large if and only if B is. vp-ellip-iff-pos-two-comp-gpr "C is larger than D if and only if B is larger than D" => "C is larger than D if and only if B is" vp-ellip-iff-neg-one-gpr "C is large if and only if B isn't large" => "C is large if and only if B isn't" vp-ellip-iff-pos-two-gpr "C is a cube, if and only if B is a cube" => "C is a cube, if and only if B is" vp-ellip-iff-neg-two-gpr "C is a cube, if and only if B isn't a cube" => "C is a cube, if and only if B isn't" vp-ellip-coord-pos-one-gpr "B is large, and C is large" => "B is large, and C is" vp-ellip-coord-pos-two-gpr "B is a cube, and C is a cube" => "B is a cube, and C is" vp-ellip-coord-pos-twoconj-gpr "B is between C and D, and F is between C and D" => "B is between C and D, and F is" ;; Alternative connectives ;; iff-to-justincase-gpr "B is large if and only if C is small" => "B is large just in case C is small" iff-to-justincasefact-gpr "B is large if and only if C is small" => "B is large just in case it is a fact that C is small" ifthen-to-onlyif-gpr "If B is large then C is small" => "B is large only if C is small" and-but-small-large-op-gpr "B is small and C is large" => "B is small but C is large" and-but-small-large-2-op-gpr "B is small and C is large" => "B is small but C is large" and-but-large-small-op-gpr "B is large and C is small" => "B is large but C is small" and-but-large-small-2-op-gpr "B is large and C is small" => "B is large but C is small" and-but-loc-op-gpr "B is in the same row as D and C is in the same column as D" => "B is in the same row as D but C is in the same column as D" and-but-pos-op-gpr "B is in front of D and C is in back of D" => "B is in front of D but C is in back of D" ifnot-to-unless-gpr "If B is not large then C is large" => "Unless B is large C is large" unless-the-case-gpr "Unless it is the case that B is large, C is large" => "Unless B is large, C is large" semicol-and-op-gpr "B is small and B is a cube" => "B is small; moreover, B is a cube" semicol-but-op-gpr "B is small but C is large" => "B is small; however, C is large" ifthen-to-provided-gpr "B is a cube if C is small" => "B is a cube provided that C is small" drop-then-opt-gpr drop-then-oblig-gpr "If B is a cube, then C is large" => "If B is a cube, C is large" ;; Adjectives: prenominal or not ;; adj-predn-gpr "B is large and B is a cube" => "B is a large cube" predn-adj-gpr "B is a cube and B is large" => "B is a large cube" same-to-and-loc-op-gpr "B is in the same row as C" => "B and C are in the same row" same-to-and-size-op-gpr "B is the same size as C" => "B and C are the same size" ;; Partitives ;; either-to-neither-gpr "B and C are cubes, but B and C are not large" => "B and C are cubes, but neither is large" neither-part-op-gpr "B and C are cubes, but neither is large" => "B and C are cubes, but neither of them is large" none-of-op-gpr "B, C, and D are cubes, but none is large" => "B, C, and D are cubes, but none of them is large" one-of-set-two-gpr "B, C, or D is a cube" => "One of B, C, and D is a cube" one-of-set-one-gpr "B, C, or D is large" => "One of B, C, and D is large" part-pron-one-op-gpr "A and B are cubes, and A or B is large" => "A and B are cubes, and one of them is large" part-pron-both-op-gpr "A and B are cubes, and they are large" => "A and B are cubes, and both of them are large" at-least-one-gpr "A, B, and C are cubes, and one of them is large" => "A, B, and C are cubes, and at least one of them is large" ;; Adverbs: addition or deletion ;; also-adv-pro-op-gpr "B is a cube iff it is large" => "B is a cube iff it is also large" also-adv-part-op-gpr "B and C are cubes iff one of them is large" => "B and C are cubes iff one of them is also large" also-adv-cond-onearg-gpr "If B is large, C is large" => "If B is large, C is also large" also-adv-cond-twoarg-comp-gpr "If B is larger than D, C is larger than D" => "If B is larger than D, C is also larger than D" also-adv-cond-twoarg-gpr "If B is a cube, C is a cube" => "If B is a cube, C is also a cube" both-adv-op-gpr "B and C are cubes" => "B and C are both cubes" either-adv-op-gpr "If B is not a cube, then C is not a cube" => "If B is not a cube, then C is not a cube either" conj-s-rev-and-gpr "B is large and C is large" => "C is large and B is large" conj-s-rev-or-gpr "B is large or C is large" => "C is large or B is large" conj-s-rev-and-neg-gpr "It's not the case that B is large and C is large" => "C is large and it's not the case that B is large" conj-s-rev-or-neg-gpr "It's not the case that B is large or C is large" => "C is large or it's not the case that B is large" thecase-cleft-gpr "B is large or C is large and D is small" "D is small and it is the case that B is large or that C is large" thecase-cright-gpr "D is small and B is large or C is large" "D is small and it is the case that B is large or that C is large"