private boolean correlateAndPossiblyApplyDuplicateFunctions(VTProgramCorrelatorFactory factory,
			VTOptions options, TaskMonitor monitor) throws CancelledException {

		monitor.setMessage(
			"Finding and applying good " + factory.getName() + " matches and markup.");

		VTProgramCorrelator correlator = factory.createCorrelator(sourceProgram, sourceAddressSet,
			destinationProgram, destinationAddressSet, options);

		VTMatchSet results = correlator.correlate(session, monitor);
		monitor.initialize(results.getMatchCount());

		boolean hasMarkupErrors = applyDuplicateFunctionMatches(results, monitor);
		monitor.incrementProgress(1);

		return hasMarkupErrors;
	}
Runs the Duplicate Exact Function match version tracking (VT) correlator then determines
correct matches based on matching operand values. Those matches are accepted and other
possible matches for those functions are blocked. Markup from accepted source functions
is applied to matching destination functions.

@param factory The correlator factory used to create and run the desired VT correlator. In
this case, the duplicate function instruction match correlator.
@param monitor Checks to see if user has cancelled.
@throws CancelledException if cancelled
Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/actions/AutoVersionTrackingTask.java