public void mergeEquate(Address originAddress, int opIndex, long value) {
		EquateTable resultEquateTable = resultProgram.getEquateTable();
		EquateTable originEquateTable = originProgram.getEquateTable();
		Address resultAddress = originToResultTranslator.getAddress(originAddress);
		Equate resultEquate = resultEquateTable.getEquate(resultAddress, opIndex, value);
		Equate originEquate = originEquateTable.getEquate(originAddress, opIndex, value);
		if (Objects.equals(resultEquate, originEquate)) {
			return;
		}
		if (resultEquate != null) {
			resultEquate.removeReference(resultAddress, opIndex);
			if (resultEquate.getReferenceCount() == 0) {
				resultEquateTable.removeEquate(resultEquate.getName());
			}
		}
		if (originEquate != null) {
			Equate uniqueEquate = getUniqueEquate(resultEquateTable, originEquate.getName(), value);
			uniqueEquate.addReference(resultAddress, opIndex);
		}
	}
<CODE>mergeEquate</CODE> replaces the current equates in program1 with those in program2.
@param originAddress the address where the equates should be merged.
This address should be derived from the origin program.
@param opIndex the operand index where the equates should be merged.
@param value the scalar value where the equate is used.
Ghidra/Features/Base/src/main/java/ghidra/program/util/ProgramMerge.java