222
правки
Изменения
м
→Доказательство 0-1 принципа
Пусть <tex> f: A \rightarrow B </tex> - монотонная. Тогда <tex> \forall a_1, a_2 \in A: f(\min(a_1, a_2)) = \min(f(a_1), f(a_2)) </tex>.
| proof =
Не теряя общности, предположим что <tex> a_1 \le a_2 </tex>. Тогда, <tex> f(\min(a_1, a_2)) = f(a_1) </tex>. Также, по монотонности, <tex> f(a_1) \le f(a_2) </tex>. Тогда <tex> \min(f(a_1), f(a_2)) = f(a_1) </tex>. То есть,
<tex> f(\min(a_1, a_2)) = \min(f(a_1), f(a_2)) = f(a_1) </tex>. Такие же рассуждения можно провести для случая <tex> a_2 < a_1 </tex>.
{{Лемма
| statement =
Пусть <tex> f: A \rightarrow B </tex> - — монотонная, а <tex> N </tex> - — сеть компараторов.Тогда <tex> N </tex> и <tex> f </tex> коммутируют, то есть <tex> N(f(a)) = f(N(a)) </tex> - другими . Другими словами, неважно, применить сначала <tex> f </tex> к <tex> a </tex> и пропустить через сеть <tex> N </tex>, или пропустить через сеть <tex> N </tex> последовательность <tex> a </tex>, а потом применить монотонную функцию <tex> f </tex>.
| proof =
Рассмотрим произвольный компаратор <tex> [i: j] </tex>, сортирующий элементы <tex> a_i </tex> и <tex> a_j </tex>. Применим его к последовательности <tex> f(a) </tex> и рассмотрим элемент с индексом <tex> i </tex>.
<tex> [i: j]f(a)_i </tex> <br> <tex>= [i: j](f(a_0), \dots, f(a_{n-1}))_i </tex> (по введенному нами определению) <br> <tex> = \min(f(a_i), f(a_j)) </tex> (по определению компаратора) <br> <tex> = f(\min(a_i, a_j)) </tex> (по уже доказанной лемме) <br> <tex> = f([i: j](a)_i) </tex> (по определению компаратора) <br> <tex> = f([i: j](a))_i </tex>(по введенному нами определению).
То есть, в результате <tex> i </tex>-й элемент не зависит от порядка применения компаратора <tex> [i: j] </tex> и функции <tex> f </tex>. Те же рассуждения можно провести для всех других индексов, то есть <tex> [i: j]f(a) = f([i: j](a)) </tex>, и также для всех компараторов в сети, то есть лемма доказана.
}}
| statement = Если сеть компараторов сортирует все последовательности из нулей и единиц, то она сортирующая
| proof =
Рассмотрим сеть <tex> N </tex> , сортирующую в возрастающем порядке: <tex> a_0 \le a_1 \le \dots \le a_{n-1} </tex>.
Предположим, что есть последовательность <tex> a </tex>, которую сеть <tex> N </tex> не сортирует. Тогда после пропуска <tex> a </tex> через сеть <tex> N </tex>, получим последовательность <tex> b</tex>, в которой найдется индекс <tex> i </tex> такой, что <tex> b_i > b_{i + 1} </tex>.
Рассмотрим функцию <tex> f(x) =