Friday, December 28, 2018

Решение уравнения E(M)⊕E(N) => E(A)*¬E(M&N) ≡ 1 используя исчисление базисных предикатов (Е.А.Мирончик)

****************************
Обновлено 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