Когда речь идет о математике, все прекрасно, поскольку математика работает с абстрактными объектами, которым мы даем определения, — числами, множествами и т. д. Аксиомы верны, потому что мы так сказали. Если же вы хотите доказать что-то связанное с реальным миром — например, что ИИ-системы, разработанные таким-то образом, не убьют вас преднамеренно, — ваши аксиомы должны выполняться в реальном мире. Если они не выполняются, значит, вы доказали нечто о воображаемом мире.
Наука и инженерное дело имеют долгую и славную историю доказательства результатов, связанных с воображаемыми мирами. К примеру, в строительном проектировании можно увидеть математический анализ, начинающийся: «Допустим, АВ — это жесткая балка…» Слово «жесткая» здесь не означает «сделанная из чего-то прочного, скажем, стали»; оно значит «бесконечно твердая», то есть совершенно не гнущаяся. Жестких балок не существует, так что это воображаемый мир. Хитрость заключается в том, чтобы знать, насколько можно удалиться от реального мира, сохраняя полезность результатов. Скажем, если допущение о жесткой балке позволяет инженеру рассчитать силы, действующие в конструкции, которая включает эту балку, причем эти силы так слабы, что изгибают реальную балку ничтожно мало, то инженер имеет обоснованную уверенность, что анализ можно перенести из воображаемого мира в реальный.
У хорошего инженера вырабатывается чутье на моменты, когда этот перенос может провалиться: например, если балка является сжатой и огромные силы давят на нее с обоих концов, то даже крохотный изгиб может привести к возникновению больших поперечных сил, увеличивающих изгиб, и так далее, что приведет к катастрофическому разрушению конструкции. В таком случае анализ переделывается с другими условиями: «Допустим, АВ — упругая балка с жесткостью К». Это, разумеется, по-прежнему воображаемый мир, поскольку реальные балки не бывают однородными в смысле жесткости. В них обязательно присутствуют микроскопические неоднородности, которые могут привести к растрескиванию, если подвергать балку многократному изгибанию. Процесс устранения нереалистических допущений продолжается, пока инженер не будет в достаточной мере уверен, что оставшиеся допущения истинны в реальном мире. В конце концов, инженерные системы можно испытать в реальности, но результаты теста нельзя понимать расширительно. Они не доказывают, что та же система будет работать в других условиях или что другие варианты системы будут вести себя так же, как исходная.
Один из классических примеров ложного допущения в программировании происходит из сферы компьютерной безопасности. В этой области требуются огромные объемы математического анализа, чтобы продемонстрировать, что определенные цифровые протоколы являются