Самый простой случай, который я знаю об алгоритме, который существует, хотя неизвестно, какой алгоритм касается автоматов конечного состояния.
Фактор из языка L 1 с помощью языка L 2 определяется как L 1 / L 2 = { х | ∃ у ∈ L 2 таким образом, что х у ∈ L 1 } .L1/L2L1L2L1/L2={x∣∃y∈L2 such that xy∈L1}
Нетрудно доказать, что регулярное множество замкнуто относительно факторного по произвольному множеству. Другими словами, если регулярно, а L 2 произвольно (не обязательно регулярно), то и L 1 / L 2 тоже регулярно.L1L2L1/L2
Доказательство довольно простое. Пусть - FSA, принимающая регулярное множество R , где Q и F - соответственно множество состояний и множество принимающих состояний, и пусть L - произвольный язык. Пусть F ' = { д ∈ Q | ∃ у ∈ LM=(Q,Σ,δ,q0,F)RQFL множество состоянийиз которых конечное состояние может быть достигнуто путем приема строки из L .F′={q∈Q∣∃y∈Lδ(q,y)∈F}L
Автомат , которая отличается от М
только в своем множестве F ' конечных состояний признает именно Р / л . (Или см. Hopcroft-Ullman 1979, стр. 62 для доказательства этого факта.)M′=(Q,Σ,δ,q0,F′)MF′R/L
Однако, когда множество не разрешимо, может не быть алгоритма для определения того, какие состояния имеют свойство, которое определяет F ' . Итак, хотя мы знаем, что множество F ′ является подмножеством Q , у нас нет алгоритма для определения того, какое подмножество. Следовательно, пока мы знаем, что R принимается одним из 2 | Q | возможно FSA, мы не знаем, что это такое. Хотя должен признаться, мы знаем в значительной степени, как это выглядит.LF′F′QR2|Q|
Это пример того, что иногда называют почти конструктивным
доказательством, то есть доказательством того, что один из конечного числа ответов является правильным.
Я полагаю, что расширение этого может быть доказательством того, что один из перечисляемого набора ответов является правильным. Но я не знаю ни одного. Также я не знаю чисто неконструктивного доказательства того, что некоторая проблема разрешима, например, используя только противоречие.