private void createImpliedMatches(TaskMonitor monitor, Set<VTAssociation> processedSrcDestPairs,
			Collection<VTMatch> matches) throws CancelledException {
		for (VTMatch match : matches) {
			monitor.checkCancelled();

			VTAssociation association = match.getAssociation();

			// Implied matches currently only created for functions so skip matches that are
			// data matches
			if (association.getType() == VTAssociationType.DATA) {
				continue;
			}

			// Implied matches should only be created for matches that user has accepted as 
			// good matches
			if (association.getStatus() != VTAssociationStatus.ACCEPTED) {
				continue;
			}
			// only process the same match pair once so implied vote counts are not overinflated
			if (processedSrcDestPairs.contains(association)) {
				continue;
			}

			MatchInfo matchInfo = matchInfoFactory.getMatchInfo(match, addressCorrelator);

			if (matchInfo.getSourceFunction() == null ||
				matchInfo.getDestinationFunction() == null) {
				continue;
			}

			ImpliedMatchUtils.updateImpliedMatchForAcceptedAssocation(
				matchInfo.getSourceFunction(),
				matchInfo.getDestinationFunction(), session,
				addressCorrelator, monitor);

			processedSrcDestPairs.add(association);
		}
	}
Method to create implied matches for the existing applied matches in the current session
@param applyGoodMatches if true, create applied matches for "good" implied matches based on
votes/conflict information. For all the applied implied matches, rerun the creation of 
applied matches until no new ones found.
@param applyGoodMatches if true, apply matches if minVotes met and maxConflicts not exceeded 
for particular match, if false, don't apply any matches
@param minVotes minimum votes needed to apply a match
@param maxConflicts maximum conflicts allowed to apply a match
@param monitor the task monitor
@return true if there are any apply errors, false otherwise
@throws CancelledException if cancelled
Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/actions/AutoVersionTrackingTask.java