****************************
Обновлено 06.03.2019
****************************
В целом мы следуем технике, разработанной в http://kpolyakov.spb.ru/download/mea18bit.pdf
Следуя ссылке, упомянутой выше (цитируя Е.А. Мирончик)
Пусть Et (x) - предикат, набор истинности которого равен всем x,
для которого x & t ≠ 0. Если t является степенью двойки, то такой предикат будет называться базовым.Базовый предикат описывает(фиксирует) едиственную единицу в двоичной записи.
Далее, для краткости, предикат Et(x) обозначим через E(t);
мы также будем обозначать набор истинности этого предиката.
(цитата заканчивается)
Основной результат полученный ниже
Обозначим {X} двоичноe представлении натурального числа X.
Пусть R,M,N - натуральные числа. R - минимальное,
удовлетворяющее условию {M OR N} = {R OR {M&N}} ,
где OR -побитная дизъюнкция, а & - побитная конъюнкция
Тогда наименьшее А , удовлетворяющее уравнению
E(M)⊕E(N) => E(A)*¬E(M&N) ≡ 1 равно R.
1. Покажем что, E(M) v E(N) = E(R) v E(M&N). Всюду ниже "*" есть "^".
Рассмотрим разложения в сумму (логическую) базисных предикатов
E(M) и E(N). Все пары равных базисных предикатов, будут свернуты в один и сумма (логическая) такого рода пар предикатов даст очевидно E(M&N) .
Сумма (логическая) всех оставшихся есть в точности E(R).
Остается применить формулы Де Моргана
¬(E(M) v E(N)) = ¬(E(R) v E(M&N))
и получить требуемое ниже равенство
¬E(M)*¬E(N) = ¬E(R)*¬E(M&N) (1)
На диалекте Bitwise2 - это хорошо знакомая формула
В силу того , что ¬E(N)=Z(N)
Z(M)*Z(N)=Z(M OR N)=Z(R)*Z(M&N)
Смотри :-
Решение уравнения ¬Z(M)⊕¬Z(N)=> ¬A*Z(M&N) ≡ 1 в технике Bitwise2
Таким образом, ¬E(M)*¬E(N) = ¬E(R)*¬E(M&N) можно получить
и как следствие Утверждения 3 из
http://kpolyakov.spb.ru/download/bitwise2.pdf
Преобразуем исходное уравнение, как следует ниже
E(M)⊕E(N) => E(A)*¬E(M&N) ≡ 1
(E(M)≡E(N)) v E(A)*¬E(M&N) ≡ 1
¬E(M)*¬E(N) v E(M)*E(N) v E(A)*¬E(M&N) ≡ 1
Из разложения М и N по базисным предикатам
определим числа REST-M и REST-N такие,что
каждое из них не имеет общих единичных битов
с M&N и при этом
{REST-M} + {M&N} = {M}
{REST-N} + {M&N} = {N}
следовательно
E(M) = E(REST-M) v E(M&N)
E(N) = E(REST-N) v E(M&N)
Применим формулу (1) к ¬E(M)*¬E(N) :-
¬E(R)*¬E(M&N) v (E(REST-M) v E(M&N))*(E(REST-N) v E(M&N)) v
v E(A)*¬E(M&N) ≡ 1
¬E(R)*¬E(M&N) v E(REST-M)*E(REST-N) v E(M&N) v
v E(A)*¬E(M&N) ≡ 1
¬E(R) v E(REST-M)*E(REST-N) v E(M&N) v E(A)≡ 1
**************
Теорема 1
**************
Для истинности ∀ x: E(k)(x) => E(m)(x) необходимо
и достаточно, чтобы набор единичных битов "k"
полностью входил в набор единичных битов "m"
Ниже, мы собираемся использовать Теорему 1, где
это является необходимым по-умолчанию
Обозначим,$(X) набор единичных бит в X.
Преобразуем последнее уравнение следующим образом
(E(R) => E(REST-N))*(E(R) => E(REST-N)) v
v (E(R) => E(M&N)) v (E(R) => E(A)) ≡ 1
Присвоим значение A(min) = R и рассмотрим любое A < A(min)
∃ j: (j! ∈ $ (A))*(j ∈ $ (R)) = 1
Теперь нашей целью является доказать, что для любого
A < A(min) существует целое число y = y(A), которое дает
(E(R) => E(REST-N))*(E (R) => E(REST-N)) v
v (E(R) => E(M & N)) v (E(R) => E(A))(y(A)) = 0
Установим единичный бит на место "j" в y = y(A)
В силу j ∈ $ (R) это j !∈ $ (M&N). Остальные биты "у"
установим нулевыми.
Заметим,что "j" также не принадлежит хотя бы одному из множеств
$(REST-M) или $(REST-N), в противном случае "j" будет принадлежать
$(М&N). Таким образом, конъюнкция ниже равна 0.
(E(R,y) => E(REST-M,y))*(E(R,y) => E(REST-N, y)) = 0 (1)
Затем заметим, что (E(R,y) => E(M&N,y)) = 0 (2)
и (E(R,y) => E(A,y) = 0 (3)
Мы получаем в силу (1),(2) и (3)
(E(R) => E(REST-M))*(E (R) => E (REST-N)) v
v (E(R) => E(M&N)) v (E(R) => E(A))(y) = 0
Таким образом, для любого A, меньшего чем R, существует y = y(A) такое
этот предикат, написанный выше, имеет значение 0
для числа у = у(А). Откуда А(min) есть реальный минимум А(min)
Ссылки
1. http://kpolyakov.spb.ru/download/mea18bit.pdf
Обновлено 06.03.2019
****************************
В целом мы следуем технике, разработанной в http://kpolyakov.spb.ru/download/mea18bit.pdf
Следуя ссылке, упомянутой выше (цитируя Е.А. Мирончик)
Пусть Et (x) - предикат, набор истинности которого равен всем x,
для которого x & t ≠ 0. Если t является степенью двойки, то такой предикат будет называться базовым.Базовый предикат описывает(фиксирует) едиственную единицу в двоичной записи.
Далее, для краткости, предикат Et(x) обозначим через E(t);
мы также будем обозначать набор истинности этого предиката.
(цитата заканчивается)
Основной результат полученный ниже
Обозначим {X} двоичноe представлении натурального числа X.
Пусть R,M,N - натуральные числа. R - минимальное,
удовлетворяющее условию {M OR N} = {R OR {M&N}} ,
где OR -побитная дизъюнкция, а & - побитная конъюнкция
Тогда наименьшее А , удовлетворяющее уравнению
E(M)⊕E(N) => E(A)*¬E(M&N) ≡ 1 равно R.
1. Покажем что, E(M) v E(N) = E(R) v E(M&N). Всюду ниже "*" есть "^".
Рассмотрим разложения в сумму (логическую) базисных предикатов
E(M) и E(N). Все пары равных базисных предикатов, будут свернуты в один и сумма (логическая) такого рода пар предикатов даст очевидно E(M&N) .
Сумма (логическая) всех оставшихся есть в точности E(R).
Остается применить формулы Де Моргана
¬(E(M) v E(N)) = ¬(E(R) v E(M&N))
и получить требуемое ниже равенство
¬E(M)*¬E(N) = ¬E(R)*¬E(M&N) (1)
На диалекте Bitwise2 - это хорошо знакомая формула
В силу того , что ¬E(N)=Z(N)
Z(M)*Z(N)=Z(M OR N)=Z(R)*Z(M&N)
Смотри :-
Решение уравнения ¬Z(M)⊕¬Z(N)=> ¬A*Z(M&N) ≡ 1 в технике Bitwise2
Таким образом, ¬E(M)*¬E(N) = ¬E(R)*¬E(M&N) можно получить
и как следствие Утверждения 3 из
http://kpolyakov.spb.ru/download/bitwise2.pdf
Преобразуем исходное уравнение, как следует ниже
E(M)⊕E(N) => E(A)*¬E(M&N) ≡ 1
(E(M)≡E(N)) v E(A)*¬E(M&N) ≡ 1
¬E(M)*¬E(N) v E(M)*E(N) v E(A)*¬E(M&N) ≡ 1
Из разложения М и N по базисным предикатам
определим числа REST-M и REST-N такие,что
каждое из них не имеет общих единичных битов
с M&N и при этом
{REST-M} + {M&N} = {M}
{REST-N} + {M&N} = {N}
следовательно
E(M) = E(REST-M) v E(M&N)
E(N) = E(REST-N) v E(M&N)
Применим формулу (1) к ¬E(M)*¬E(N) :-
¬E(R)*¬E(M&N) v (E(REST-M) v E(M&N))*(E(REST-N) v E(M&N)) v
v E(A)*¬E(M&N) ≡ 1
¬E(R)*¬E(M&N) v E(REST-M)*E(REST-N) v E(M&N) v
v E(A)*¬E(M&N) ≡ 1
¬E(R) v E(REST-M)*E(REST-N) v E(M&N) v E(A)≡ 1
**************
Теорема 1
**************
Для истинности ∀ x: E(k)(x) => E(m)(x) необходимо
и достаточно, чтобы набор единичных битов "k"
полностью входил в набор единичных битов "m"
Ниже, мы собираемся использовать Теорему 1, где
это является необходимым по-умолчанию
Обозначим,$(X) набор единичных бит в X.
Преобразуем последнее уравнение следующим образом
(E(R) => E(REST-N))*(E(R) => E(REST-N)) v
v (E(R) => E(M&N)) v (E(R) => E(A)) ≡ 1
Присвоим значение A(min) = R и рассмотрим любое A < A(min)
∃ j: (j! ∈ $ (A))*(j ∈ $ (R)) = 1
Теперь нашей целью является доказать, что для любого
A < A(min) существует целое число y = y(A), которое дает
(E(R) => E(REST-N))*(E (R) => E(REST-N)) v
v (E(R) => E(M & N)) v (E(R) => E(A))(y(A)) = 0
Установим единичный бит на место "j" в y = y(A)
В силу j ∈ $ (R) это j !∈ $ (M&N). Остальные биты "у"
установим нулевыми.
Заметим,что "j" также не принадлежит хотя бы одному из множеств
$(REST-M) или $(REST-N), в противном случае "j" будет принадлежать
$(М&N). Таким образом, конъюнкция ниже равна 0.
(E(R,y) => E(REST-M,y))*(E(R,y) => E(REST-N, y)) = 0 (1)
Затем заметим, что (E(R,y) => E(M&N,y)) = 0 (2)
и (E(R,y) => E(A,y) = 0 (3)
Мы получаем в силу (1),(2) и (3)
(E(R) => E(REST-M))*(E (R) => E (REST-N)) v
v (E(R) => E(M&N)) v (E(R) => E(A))(y) = 0
Таким образом, для любого A, меньшего чем R, существует y = y(A) такое
этот предикат, написанный выше, имеет значение 0
для числа у = у(А). Откуда А(min) есть реальный минимум А(min)
Ссылки
1. http://kpolyakov.spb.ru/download/mea18bit.pdf
No comments:
Post a Comment