@Override
	public boolean equals(Object obj) {
		if (this == obj) {
			return true;
		}
		if (obj == null) {
			return false;
		}
		if (getClass() != obj.getClass()) {
			return false;
		}

		VTAbstractProgramCorrelator other = (VTAbstractProgramCorrelator) obj;

		if (!destinationProgram.equals(other.destinationProgram)) {
			return false;
		}
		if (!sourceProgram.equals(other.sourceProgram)) {
			return false;
		}
		if (!SystemUtilities.isEqual(destinationAddressSet, other.destinationAddressSet)) {
			return false;
		}
		if (!SystemUtilities.isEqual(sourceAddressSet, other.sourceAddressSet)) {
			return false;
		}
		if (!options.equals(other.options)) {
			return false;
		}
		return true;
	}
Performs the correlation between two programs looking for how well functions in one program
correlate to functions in another program.
@param session An existing manager that may contain previous results that may
       influence this correlation.
@param monitor a task monitor for reporting progress during the correlation.
@throws CancelledException if the user cancels the correlation via the task monitor.
Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/util/VTAbstractProgramCorrelator.java