public Production NextCNFNonterminalProduction(int numNonTerminals, Nonterminal lhs = null) {
if (lhs == null) {
lhs = RandomNonterminal(numNonTerminals);
}
var rhs1 = RandomNonterminal(numNonTerminals, false);
var rhs2 = RandomNonterminal(numNonTerminals, false);
return new Production(lhs, new Sentence { rhs1, rhs2 });
}