Если я правильно понимаю изоморфизм Карри-Говарда, каждый зависимый тип соответствует теореме, для которой реализующая ее программа является доказательством. Это означает, что любая математическая проблема, например a^n + b^n = c^n
, может быть как-то выражена как тип.Можно ли случайным образом порождать теоремы, которые трудно доказать?
Теперь предположим, что я хочу создать игру, которая генерирует случайные типы (теоремы) и на которых пьесы должны пытаться реализовать программы (доказательства) этих типов (теорем). Возможно ли контролировать сложность этих теорем? I., простой режим будет генерировать тривиальные теоремы, в то время как жесткий режим будет генерировать гораздо более сложные теоремы.
Возможно, вам будет интересно посмотреть на Djinn, обсуждаемый в http://stackoverflow.com/a/10205941/32878, который генерирует программы из ограниченного набора типов. что касается вашего вопроса, я думаю, вам понадобится модель того, что трудно делать людям, а также некоторые автоматические средства проверки, которые могли бы проверить, нет ли альтернатив для предполагаемого ответа. –
Является ли «15 полупростой» (произведение двух простых чисел) теоремой? Я бы сказал, да. Безопасность RSA основана на способности генерировать произвольно жесткие теоремы этой формы. –
Интересная статья, которая может дать вам некоторые идеи: [Теоремы бесплатно] (https://www.mpi-sws.org/~dreyer/tor/papers/wadler.pdf). – Bakuriu