protected boolean isLower(long lower) {
		try (LockHold hold = trace.lockRead()) {
			synchronized (ordered) {
				Lifespan range = spanSet.spanContaining(lower);
				if (range == null) {
					return false;
				}
				return range.lmin() == lower;
			}
		}
	}
NB. Because occlusion.occluded can be expensive, we should only keep the lock long enough
to copy the spans.
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/DBTraceTimeViewport.java