так как теоретически мне кажется, что это возможно
Совсем нет. То, что вы просите, - это вариант проблемы остановки . Вы в основном спрашиваете: могу ли я программно решить, будут ли две программы вести себя одинаково, обрабатывая любой произвольный ввод.
Конечно, one может обойти здесь теоретические невозможности, например, путем определения набора «допустимых» входных данных. В конце концов, это то, что люди делают, используя модульные тесты .
Но в этом очень общем смысле: могу ли я решить, всегда ли две программы выполняют одну и ту же вещь, я почти уверен: вы можете переписать эту проблему во что-то, что напоминает проблему остановки, и, как уже было сказано: что можно не быть решенным. Не сейчас и не через 1000 лет.