Thus the DNA:
cond
start
start
stop
is two genes:
cond
start
(implicit stop)
and:
start
stop
I think it should be one gene. I disagree with you because it violates my rule that boolean logic (which I think of as the gene promoter) should not carry over from one gene to the next. I.e. that is, by definition, a gene boundary (be it explicit via a stop or implicit via a cond encounterred in an already coding region) implies clearing of the boolean stack. By defining genes in this way, it makes them more self-contained, more able to be transported in tact with their promoters.
A start does not clear the boolean stack (like an implicit stop-cond or an explicit stop does) nor should it IMHO imply a break in a coding sequence if encounterred within a coding sequence. It's a start, not a stop-start. A start should imply the beginning of a new gene only in the case where the DNA preceeding it is non-coding and the boolean stack is clear, having been previously terminated by a stop. If the DNA preceeding it is coding, be it a cond section or a gene body, it means "and up the boolean stack". So, an embedded start does having meaning. It operates on the boolena stack for the gene. If we don't do it this way, then we will need to invent a new operator "andupstack"
I beleive this methodology of not treating embdedded starts as implicit gene terminators is in keeping with the way biological gene sequences are defined in genbank. Embedded start codons are generally ignored by DNA transcription biology and as such, sequneces in genback with embedded start codons are generally considerred single genes. In short, it takes a stop codon to terminate a gene.
The benefit here is that it neatly transitions into a time when cond blocks don't exist while maintaining backwards compatibility.
So does my way. If we allow stores in cond regions, then cond and start become equivalent except for a cond's implicit stop. If anything, we should do away with all implicit stops and change it so that a cond encounterred in an already coding sequence does not imply a stop. But doing so would imply that conds would not clear the boolean stack and prior boolean logic would thus implact the evalutation of the boolean statements in the cond section, which would break backward compatability.
Remember that the DNA block:
cond
start
start
stop
cond
start
stop
May have the boolean stack entirely modified by the first start statement or the second. Meaning that the cond block is just a redundant aspect of the first gene, but does not necessarily have anything more to do with the second gene than the second gene does with the third gene.
So, the way it currently works and the way I have it codedup currently, that sequnce is two genes and boolean logic from the first gene does not influence the second.
cond
start
start
stop
cond
start
stop