;; 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"