Tuesday, February 19, 2019

Алгебра базисных предикатов по Е.А. Мирончик (2017) versus Bitwise2

Изначально техника, используемая ниже была введена
в работе http://kpolyakov.spb.ru/download/mea18bit.pdf 
Существует также статья в журнале "Информатика в школе" №7 2017 несколько более удобная для первого чтения, но только как твердая копия, он-лайн версии нет.

**************
Теорема 1
**************
Для выполнения  ∀ x∈N: E(k,x) => E(m,x) = True
необходимо и достаточно, чтобы множество единичных битов "k" полностью входило во множество единичных битов "m"

Необходимость
Пусть j(1),..,j(s) - номера единичных битов "k" ,
упорядоченное по убыванию (например),тогда
¬E(k) = ¬E(j(1))*....*¬E(j(s)) покажем,что
        ¬E(k) + E(m) = 1
Имеем
¬E(k)=¬E(j(1)*....*¬E(j(s)
E(m) = E(j(1)) + ... + E(j(s)) + E(rest)
Последовательно подавляем все множители в конъюнкции
¬E(k)+E(m)=¬E(j(1))*....*¬E(j(s)) + E(j(1)) + ... + E(j(s)) + E(rest) = 1

Достаточность
Если есть хоть один единичный бит "к" (c номером "р"), не входящий в единичные биты "m",то k&2^p !=0  и в тоже время номера единичных битов "m" не содержат "р",тогда 2^p с единицей на месте "р" в двоичном представлении 1000...0 (считая от 0 справа налево) будет умножаться на 0 в р-ой позиции "m",то есть m&2^p=0
В этом случае  k&2^p !=0 то есть Е(к,2^p)=1 если при этом
m&2^p =0 тогда Е(m,2^p)=0
В этом случае  Е(к,2^p) => Е(m,2^p) =0 то есть условие теоремы не выполнено для всех "x"

Заметим (¬A=>¬B ) = (A+¬B) = (B => A) и (¬A+A*B) = (¬A+B)

 Рассмотрим классический пример задачи ЕГЭ №18 на побитную конъюнкцию



Запишем в терминах алгебры {E(k)}
      E(49)=> (¬E(33)=> E(A))  ≡ 1
Разложим Е(49) и Е(33) по базисным предикатам
     Е(49) = Е(32) + Е(16) + Е(1)
     Е(33) = Е(32) +Е(1)
По Де Моргану :-
    ¬Е(49) = ¬Е(32)*¬Е(16)*¬Е(1)
Избавимся от импликаций в исходном уравнении
и получим
  ¬Е(32)*¬Е(16)*¬Е(1) + Е(32) +Е(1) +Е(А) ≡ 1
Подавим ¬Е(32) и ¬Е(1) в конъюнкции (помня,что ¬X*Y+X = Y+X)
   ¬Е(16) + Е(33) + Е(А) ≡ 1
и конвертируем обратно в импликацию
   (Е(16)=>E(A)) + (E(16)=>E(33)) ≡ 1
Допустим, что  Е(16)=>E(A) ≡ 1

Применяя Теорему 1,положим A(min) = 16 
  33=100001
  16=010000  
Возьмем любое А < A(min) тогда в четвертом бите
это А имеет 0 положим х(А) = 10000
  16&x(A) =  1
  A&x(A)  =  0
  33&x(A) = 0
Таким образом рассматриваемый предикат ложен
при значении аргумента х(А) :-
(Е(16)=>E(A)) + (E(16)=>E(33))(х(А)) = 0
Дествительно, уменьшить А(min)=16 не удается

Перейдем к более сложным примерам
  


(E(A)*¬E(12) => ¬E(A)*E(21)) + ¬E(21)*¬E(12) ≡ 1
¬E(A) + E(12) + ¬E(A)*E(21) +  ¬E(21)*¬E(12) ≡ 1

Применяем принцип поглощения
¬E(A) + E(12) + ¬E(21)*¬E(12) ≡ 1


и подавляем ¬E(12) в конъюнкции
¬E(A) + E(12) + ¬E(21) ≡ 1
¬(¬E(12)) + ¬E(A) + ¬E(21) ≡ 1


Используем дистрибутивность импликации
по отношению к дизъюнкции
¬E(12) => ¬E(A) + ¬E(21) ≡ 1
(¬E(12) => ¬E(A)) + (¬E(12) => ¬E(21)) ≡ 1


Согласно замечанию получаем
(E(A) => E(12)) + (E(21) => E(12)) ≡ 1


21=10101 (binary)
12=1100 (binary)

По Теореме 1
E(21) => E(12) ! ≡ 1
Таким образом нам необходимо, чтобы
E(A) => E(12) ≡ 1
По Теореме 1 окончательно имеем :-
А(мах) = 12



((E(13) + E(A)) => E(13) + E(A)*¬E(39) ≡ 1
¬E(13)*¬E(A) + E(13) + E(A)*¬E(39) ≡ 1

Подавляем E(А) в конъюнкции
¬E(A) + E(13) + E(A)*¬E(39) ≡ 1
¬E(A) + E(13) + ¬E(39) ≡ 1

Используем дистрибутивность импликации
по отношению к дизъюнкции
¬(¬E(13)) + ¬E(A) + ¬E(39) ≡ 1
¬E(13) => ¬E(A) + ¬E(39) ≡ 1

Согласно замечанию
(¬E(13) => ¬E(A)) + (¬E(13) => ¬E(39)) ≡ 1
(E(A) => E(13)) + (E(39) => E(13)) ≡ 1

По Теореме 1
E(39) => E(13) !
≡ 1
Таким образом нам необходимо, чтобы 
E(A) => E(13) ≡ 1
По Теореме 1 окончательно имеем :-
А(мах) = 13

***************
Теорема 2
***************
Полученное выше А(мах) увеличить невозможно
не потеряв тождественной истинности  
(E(A)=>E(T)) + (E(P)=>E(T)) 1
где смысл Т и Р ясен из контекста выше. 

Доказательство
Определим  $(C)  как множество единичных бит в С ∈ N , идущих
строго в порядке убывании разрядов  {j(1),j(2),....,j(k)}

Рассмотрим тождество (E(A)=>E(T)) + (E(P)=>E(T)) = 1
раносильное исходному уравнению

Пусть А(mах) = Т и А > A(max)

Существует единица из $(A) не входящая в $(A(max))
Определим х(А) имеющим нули в всех позициях $(A(max))
и единицу в позиции единицы в $(A),не входящей в
$(A(max))

P также как и А должно иметь единицу не входящую в $(A(max))
В х(А) поставим единицу на той же позиции, что и единица из Р,
не входящая в $(A(max))

Тогда
 T&x(A) = 0
 A&x(A) = 1
 P&x(A) = 1

Получаем
 E(A,x(A)) = 1
 E(T,x(A)) = 0  
 E(P,x(A)) = 1

E(A,x(A)) => E(T,x(A)) = 0
E(P,x(A)) => E(T,x(A)) = 0
Предикат (E(A)=>E(T)) + (E(P)=>E(T)) = 0
при х = х(А)


Рассмотрим Пример 7
из http://kpolyakov.spb.ru/download/bitwise2.pdf


Можно сформулировать и так :-
Найти максимальное А, чтобы предикат
    (¬E(46) + ¬E(18)) => (E(115) => ¬E(A))
был тождественно истинным



Определим  $(C)  как множество единичных бит в С ∈ N , идущих
строго в порядке убывании разрядов  {j(1),j(2),....,j(k)}
(¬E(46) + ¬E(18)) => (E(115) => ¬E(A)) ≡ 1
(¬E(46) + ¬E(18)) => (¬E(115) + ¬E(A)) ≡ 1
E(46)*E(18) + ¬E(115) + ¬E(A) ≡ 1


Поскольку импликация дистрибутивна как по отношению к дизъюнкции так и конъюнкции

(E(A) => E(46)*E(18)) + (E(A) => ¬E(115)) ≡ 1
(E(A) => E(46))*(E(A) => E(18))  + (E(A) => ¬E(115)) ≡ 1

Найдем А(мах) такое ,что
(E(A) => E(46))*(E(A) => E(18)) ≡ 1

По Теореме 1
$(A) ⊂ $(46&18) = $(2)
46 = 101110
&
18 = 010010
=============
2 =  000010

Откуда А(мах) = 2
Рассмотрим любое А > 2
Тогда А имеет единичный бит вне $(46) либо вне $(18)
в числе х(А) поставим на это место 1, а остальные 

заполняем нулями, что повлечет
(E(A,х(А)) => E(46,х(А))*(E(A,х(А)) => E(18,х(А)) = 0  ;
Далее нужно, чтобы х(А) ∈ Е(115)
115 = 1110011

                                                 6543210
В 0-ой из единичных разрядов 1110011 ставим 1, 

а остальные заполняем нулями тогда
(E(A,х(А)) => ¬E(115,x(A)) = 0

Таким образом, действительно А(мах) = 2


************************
Второе решение
************************
(¬E(46) + ¬E(18))=> (E(115)=> ¬(E(A)) = 1
E(46)*E(18) + ¬E(115) + ¬E(A) = 1
E(46) =E(44) + E(2)
E(18) =E(16) + E(2)
E(46)*E(18) = E(44)*E(16) + E(44)*E(2) + E(2)*E(16) + E(2)
E(46)*E(18) = E(44)*E(16) + E(2)
E(44)*E(16) + E(2) + ¬E(A) = 1
(E(A)=>E(2)) + (E(A)=>E(44))*(E(A)=>E(16)) = 1
(E(A)=>E(2)) + (E(A)=>E(44&16)) =1


44=101100
&
16=010000
=======
0 =000000


(E(A)=>E(2)) + (E(A)=>E(0)) =1
(E(A)=>E(2))  =1

Откуда A(max) = 2




(E(28)+E(45)) => (¬E(48)=> E(A)) ≡ 1
¬E(28)*¬E(45) + E(48) + E(A) = 1
¬E(32)¬E(16)*¬E(8)*¬E(4)*¬E(1) + E(32) + E(16) + E(A)  ≡ 1

Подавляем два первых множителя конъюнкции
 ¬E(8)*¬E(4)*¬E(1) + E(32) + E(16) + E(A)  ≡ 1
¬E(13) + E(48) + E(A) ≡ 1
(E(13)=> E(A)) + (E(13) => E(48)) ≡ 1
(E(13)=> E(A)) ≡ 1


Положим А(min) = 13
Возьмем любое A < A(min)
48=110000
13=001101
Тогда в одном из разрядов содержащих  1 в 1101
А будет иметь 0. В числе х(А) на это место ставим 1
(либо 0-ой либо 2-ой либо 3-ий разряды)  остальные 
разряды в х(А) нулевые.
13&x(A)  = 1
А&x(A)   = 0
48&x(A) = 0
Откуда
(E(13,x(A)=> E(A,x(A)) + (E(13,x(A)=> E(48,x(A)) =0
Действительно,  A(min) =13

Saturday, February 9, 2019

Алгебра предикатов в контексте подхода к задаче № 18 ЕГЭ Информатика (once again)

Подход к  решению задачи Р02 отличается от стандартов, исходящих из оригинальной работы http://kpolyakov.spb.ru/download/inf-2015-10.pdf , а именно, мы используем Предикатную логику 1-го порядка. Смотри https://ru.wikipedia.org/wiki/Логика_первого_порядка

Рассмотрим задачу Р02 из файла ege18.doc


Сформулируем ее следующим образом

**************
Задача 01
**************
Определим следующие одноместные предикаты
Определим предикаты
Р(x) = { 1; x ∈ [10;15];
             0; x !∈ [10;15]
           }
Q(x) = { 1; x ∈ [5;20] ;
            0; x !∈ [5;20]
           }
S(x) = { 1; x ∈  [15;25] ;
            0; x !∈ [15;25]
           }
Символ "R" в условии  заменим на  "S". "R" - означает как всегда
множество всех вещественных чисел.
Найти наименьшую область истинности предиката А(х) такого,что
∀ x∈R :  (A(x)vP(x))⊕(¬Q(x)vS(x)) = 1

************************
Решение задачи 01
************************

Область истинности предиката Х в дальнейшем
будем обозначать $(X)
Поскольку
∀ x∈R :  (A(x)vP(x))⊕(¬Q(x)vS(x)) = 1
       то $(AvP)∩$(¬QvS) = ∅
 в противном случае

∃ y∈ $(AvP)∩$(¬QvS) : (A(y)vP(y))⊕(¬Q(y)vS(y)) = 0
так как (A(y)vP(y))=1 и (¬Q(y)vS(y))=1

c другой стороны $(AvP)∪$(¬QvS) = R
в противном случае
∃ y∈ R\($(AvP)∪$(¬QvS)) :  (A(y)vP(y))⊕(¬Q(y)vS(y)) = 0
так как (A(y)vP(y))=0 и (¬Q(y)vS(y))=0

Таким образом мы получаем :-
$(AvP)∩$(¬QvS) = ∅
$(AvP)∪$(¬QvS) = R

Следовательно,
    $(AvP) = R\$(¬QvS)

Поскольку
   ∀ x∈$(P)∪$(Q) : P(x)vQ(x) = 1
   ∀ z ∈R\($(P)∪$(Q)) : P(z)vQ(z) =0

то $(¬QvS) = (-∞;5]∪[15;+∞),откуда

    $(AvP) = [5;15]

Следовательно, минимальная область истинности предиката А
    $(A)= [5;15]\[10;15] = [5;10]


Ответ на задачу Р02 соответственно будет (3)
 

Monday, February 4, 2019

Алгебра предикатов и классические задачи ЕГЭ Информатика № 18 с XOR и "~"

Задачи, разобранные ниже, взяты из Новостной Ленты ВК последних недель, но подход к их решению принципиально отличается от стандартов исходящих из оригинальной работы
 http://kpolyakov.spb.ru/download/inf-2015-10.pdf
а именно, мы используем Предикатную логику 1-го порядка. Смотри

По сути все клоны классической задачи 18 иcпользуют

Утверждение 01
********************************************************************
Пусть P и Q два одноместных предиката, определенных
На множестеве Х любой природы.
Если ∀ x ∈ Х : P(x) => Q(x) = True (*),то область истинности
предиката $(P) вложена в область истинности предиката $(Q)

*****************************************************************************
Допустим  ∃ y : (P(y)=1)^(Q(y) = 0 ) =1. Тогда P(y) => Q(y) = False
Что противоречит условию (*) и $(P) вложено в $(Q)
Отсюда также следует , что максимальная область истинности P ($(P)) есть область истинности Q ($(Q)), поскольку при Q(z)=1, мы можем не теряя общности считать P(z)=1, а минимальная область истинности Q ($(Q)) есть область истинности P ($(P)).
 
Определение А(мах) или А(мин) просто зависит от порядка
предикатов в импликации. Если А справа, то опреляется
минимальная область истинности, если слева то максимальная


Определим предикаты
Р(x) =  { 1; x ∈ [15;28] ;
              0; x !∈ [15;28]
            }
Q(x) = { 1; x ∈  [5;9] ;
              0; x !∈ [5;9]
           }

Определите максимальную область истинности  предиката А(х) такого,что

∀ x∈R :  A(x) => (P(x) ~ ¬Q(x)) = 1
∀ x∈R :  ¬A(x) v (P(x)⊕Q(x)) = 1
   Откуда следует вложение $(P⊕Q) в  $(A)
∀ x∈R :  A(x) => (P(x)⊕Q(x)) = 1 (*)


Область истинности  P(x)⊕Q(x)  есть $(P⊕Q)
Тогда $(P⊕Q) =  [15;28]\[5;9]∪[5;9]\[15;28]=[5;9]∪[15,28]
Допустим

∃ y∈R : (A(y)=1)^(P(y)⊕Q(y) = 0 ) = 1
Тогда
∃ y∈R : A(y) => P(y)⊕Q(y)  = 0

мы получаем противоречие с (*) , то есть $(A) вложено в $(P⊕Q)
Следовательно максимальная область истинности А(х)
есть область истинности  P(x)⊕Q(x) то есть  $(P⊕Q)
Максимальная длина связной компоненты [5;9]∪[15,28]
есть 28-15 = 13 

  
Определим предикаты
Р(x) =  { 1; x ∈ [11;21] ;
              0; x !∈ [11;21]
            }
Q(x) = { 1; x ∈  [15;40] ;
              0; x !∈ [15;40]
           }


Определите максимальную область истинности  предиката А(х) такого,что

∀ x∈R :  A(x) =>¬ (P(x)~Q(x)) = 1
∀ x∈R :  ¬A(x) v (P(x)Q(x)) = 1
 Откуда следует вложение $(P⊕Q) в  $(A)
∀ x∈R :  A(x) => (P(x)⊕Q(x)) = 1 (*)

Область истинности  P(x)⊕Q(x)  есть $(P⊕Q)
Тогда $(P⊕Q) =  [11;21]\[15;40]∪[15;40]\[11;21]=[11;15]∪[21,40]
Допустим

∃ y∈R : (A(y)=1)^(P(y)⊕Q(y) = 0 ) = 1
Тогда
∃ y∈R : A(y) => P(y)⊕Q(y)  = 0

мы получаем противоречие с (*) ,то есть $(A) вложено в $(P⊕Q)
Следовательно максимальная область истинности А(х)
есть область истинности  P(x)⊕Q(x) то есть  $(P⊕Q)

Максимальная длина связной компоненты [11;15]∪[21,40]
есть 40 - 21 =19

*****************************************************************************
Пример решение той же задачи по http://labs.org.ru/ege-18-practice/
*****************************************************************************


Официальное решение


Теперь сформулируем эту же задачу следуя 

Определите предикаты P(x) и Q(x), А(х) как одноместные
предикаты , то есть отображения вещественной оси во
множество {0,1} или {True,False} следующим образом

Р(x) =  { 1; x ∈ [11;21] ;
              0; x !∈ [11;21]
            }
Q(x) = { 1; x ∈  [1540] ;
             0; x !∈ [15;40]
           }

и найдите максимальный связный экстент в  области истинности  предиката А(х),как некоторого подмножества R  такого,что

∀ x∈R :  A(x) =>¬ (P(x)~Q(x)) = 1
 что равносильно
∀ x∈R :  A(x) => (P(x)⊕Q(x)) = 1  (*)

************
Решение
************
Обозначим область истинности  P(x)⊕Q(x)  через $(P⊕Q) 
    ∀ x∈R :  A(x) =>¬ (P(x)~Q(x))  = 1
    ∀ x∈R : ¬ A(x) v (P(x)Q(x))   = 1  
          Откуда следует вложение $(P⊕Q) в  $(A)  
Заметим,что $(P⊕Q) =  [11;21]\[15;40]∪[15;40]\[11;21]=[11;15]∪[21,40]
Допустим
    ∃ y∈R : (A(y)=1)^(P(y)⊕Q(y) = 0 ) = 1
Тогда
    ∃ y∈R : A(y) => P(y)⊕Q(y)  = 0
мы получаем противоречие с (*)

Следовательно, максимальная область истинности А(х)
есть область истинности  P(x)⊕Q(x) то есть  $(P⊕Q)
Максимальная длина связной компоненты [11;15]∪[21,40]
 есть 40 - 21 =19 


Рассмотрим задачу Р02 из файла ege18.doc


Сформулируем ее следующим образом

**************
Задача 01
**************
Символ "R" в условии  заменим на  "S". "R" - означает как всегда
множество всех вещественных чисел.
Определим следующие одноместные предикаты
Определим предикаты
Р(x) = { 1; x ∈ [10;15];
             0; x !∈ [10;15]
           }
Q(x) = { 1; x ∈ [5;20] ;
            0; x !∈ [5;20]
           }
S(x) = { 1; x ∈  [15;25] ;
            0; x !∈ [15;25]
           }
Найти наименьшую область истинности предиката А(х) такого,что
∀ x∈R :  (A(x)vP(x))⊕(¬Q(x)vS(x)) = 1

************************
Решение задачи 01
************************

Область истинности предиката Х в дальнейшем
будем обозначать $(X)
Поскольку
∀ x∈R :  (A(x)vP(x))⊕(¬Q(x)vS(x)) = 1
       то $(AvP)∩$(¬QvS) = ∅
 в противном случае

∃ y∈ $(AvP)∩$(¬QvS) : (A(y)vP(y))⊕(¬Q(y)vS(y)) = 0
так как (A(y)vP(y))=1 и (¬Q(y)vS(y))=1

c другой стороны $(AvP)∪$(¬QvS) = R
в противном случае
∃ y∈ R\($(AvP)∪$(¬QvS)) :  (A(y)vP(y))⊕(¬Q(y)vS(y)) = 0
так как (A(y)vP(y))=0 и (¬Q(y)vS(y))=0

Таким образом мы получаем :-
$(AvP)∩$(¬QvS) = ∅
$(AvP)∪$(¬QvS) = R

Следовательно,
    $(AvP) = R\$(¬QvS)

Поскольку
   ∀ x∈$(P)∪$(Q) : P(x)vQ(x) = 1
   ∀ z ∈R\($(P)∪$(Q)) : P(z)vQ(z) =0

то $(¬QvS) = (-∞;5]∪[15;+∞),откуда

    $(AvP) = [5;15]

Следовательно, минимальная область истинности предиката А
    $(A)= [5;15]\[10;15] = [5;10]


Ответ на задачу Р02 соответственно будет (3)

Краткое пояснение



Thursday, January 24, 2019

Алгебра предикатов и классические примеры задач ЕГЭ Информатика № 18

Практически важнейшей сферой применения логики предикатов к логико-математической практике является сфера построения доказательств различных теорем, основывающаяся на теории логического следования. Более сложное строение формул логики предикатов, по сравнению с формулами логики высказываний, дает возможность проводить более сложные доказательства и в результате получать более тонкие заключения. [1]. Смотри таже
  2.  Техника исчисления базисных предикатов по Е.А. Мирончик 2017 и ЕГЭ Задача 18 ( поразрядная конъюнкция ) 
  3.  Shooting problems P-22,P-23,P-25 via "Calculus of basic predicates" by E.A.Mironchick 2017

Всюду в дальнейшем N+ означает множество неотрицательных
целых чисел.По умолчанию х всегда принадлежит N+



Определим предикаты

A(x) = { 1; x ∈  [70;90] ;
             0; x !∈ [70;90]
           }
B(x) = { 1; x ∈  [40;60] ;
              0; x !∈ [40;60]
           }
C(x) = { 1; x ∈  [0;N] ;
              0; x !∈ [0;N]
           }

F(x) = (¬A(x)=>B(x))^(¬C(x)=>A(x))
При каком наименьшем N область истинности F(x) содержит более 30 целых чисел

∀ x: (¬A(x)=>B(x))^(¬C(x)=>A(x)) <=> (A(x)vB(x))^(C(x)vA(x))
∀ x: (A(x)vB(x))^(C(x)vA(x)) <=> A(x)vB(x)^C(x)

Область истинности А(х) содержит 21 целое число.
Область истинности В(х)^C(x) есть [40;60]∩[0;N] и должна содержать не менее 11 целых чисел

Если N ∈ [40;60] то [40;60]∩[0;N]=[40;N]

При  N-40+1 = 10 => N=49 ∈[40;60] область истинности
F(x) = A(x)vB(x)^C(x) содержит 31 целое число так как является объединением областей истинности А(х) и В(х)^C(x)

Следующие примеры из работы
  К.Ю. Поляков Множества и логика в задачах ЕГЭ 2015
Ниже следуют решения задач №3,5,6 использующие алгебру предикатов :-


    A(x) = { 1; x ∈ [x1;x2];
                  0; x !∈ [x1;x2]
                }
   P(x) =  { 1; x ∈  [37;60] ;
                 0; x !∈ [37;60]
               }
   Q(x) = { 1; x ∈  [40;77] ;
                 0;  x !∈ [40;77]
               }

F(x) = P(x) => ((Q(x)^¬A(x)) => ¬P(x) ;

Определить наименьшую длину области истинности А(х)

   ∀ x: F(x)= P(x) => ((Q(x)^¬A(x)) => ¬P(x) = True
   P(x) => ((Q(x)^¬A(x)) => ¬P(x) <=> ¬P(x)v¬Q(x)vA(x)v¬P(x)
   P(x) => ((Q(x)^¬A(x)) => ¬P(x) <=> ¬P(x)v¬Q(x)vA(x)
  ∀ x :  ¬P(x)v¬Q(x)vA(x) = 1
  ∀ x :  ¬(¬P(x)v¬Q(x))=>A(x) = 1
  ∀ x :  P(x)^Q(x) => A(x) = 1 (*)

  Допустим
  ∃ y :  (P(y)^Q(y) = 1) ^(A(y) = 0) = 1
  Тогда
  ∃ y : P(y)^Q(y) => A(y) = 0
  мы получаем противоречие с (*)

Таким образом, наименьшая  область истинности A(x) есть пересение областей истинности P(x)  и  Q(x) , то есть [37;60]∩[40;77]=[40;60]



P(x) = { 1; x ∈ [2,4,6,8,10,12] ;
             0; x!∈ [2,4,6,8,10,12]
           }
Q(x) = { 1; x ∈ [4,8,12,116] ;
             0; x!∈ [4,8,12,116]
           }

Определить область истинности предиката А(х),
как множество натуральных чисел таким образом,что

∀ x: P(x) => ((Q(x)^¬A(x)) => ¬P(x)) = 1
∀ x: ((Q(x)^¬A(x)) => ¬P(x)) <=> (¬Q(x)vA(x)v¬P(x))
∀ x: ¬P(x)v¬Q(x)vA(x) = 1
∀ x: ¬(¬P(x)v¬Q(x)) => A(x) = 1
∀ x: P(x)^Q(x) => A(x) = 1 (*)

Допустим
∃ y :  (P(y)^Q(y) = 1) ^(A(y) = 0) = 1
Тогда
∃ y : P(y)^Q(y) => A(y) = 0
мы получаем противоречие с (*)

Таким образом, наименьшая область истинности предиката А(х) есть
пересечение областей истинности  P(x) и Q(x) :-
  [2,4,6,8,10,12]∩[4,8,12,116] = [4,8,12]
Ответ : 24


P(x) = { 1; x ∈ [2,4,6,8,10,12,14,16,18,20] ;
             0; x!∈ [2,4,6,8,10,12,14,16,18,20]
           }

Q(x) = { 1; x ∈ [3,6,9,12,15,18,21,24,27,30] ;
              0; x!∈ [3,6,9,12,15,18,21,24,27,30]
           }

Определить наибольшую область истинности предиката А(х),
как множество натуральных чисел таким образом,что
∀ x: (A(x) => ¬P(x))^(¬Q(x) => ¬A(x)) = 1
∀ x: (A(x) => ¬P(x))^(¬Q(x) => ¬A(x)) <=> (¬A(x)v¬P(x))^(Q(x)v¬A(x))
∀ x: (¬A(x)v¬P(x))^(Q(x)v¬A(x)) <=> ¬A(x)v¬P(x)^Q(x)
∀ x: ¬A(x)v¬P(x)^Q(x) = 1
∀ x: A(x) => ¬P(x)^Q(x)) = 1 (*)

Допустим
∃ y : (A(y)=1)^(¬P(y)^Q(y) = 0 ) = 1
Тогда
∃ y : A(y) => ¬P(y)^Q(y)  = 0
мы получаем противоречие с (*)


Таким образом, наибольшая область истинности предиката А(х) есть
множество элементов области истинности Q(x), не принадлежащих
области истинности P(x) :-
   [3,6,9,12,15,18,21,24,27,30]\[2,4,6,8,10,12,14,16,18,20] =
           = [3,9,15,21,24,27,30]

Определим предикаты:-

P(x) = { 1; x ∈ [10,25] ;
             0; x!∈ [10,25]
          }
Q(x) = { 1; x ∈ [15,30] ;
             0; x!∈ [15,30]
          }
R(x) = { 1; x ∈ [25,40] ;
             0; x!∈ [25,40]
           }

Определить наибольшую область истинности предиката А(х),
такого что
∀ x: (Q(x) => ¬R(x))^A(x)^¬P(x) = 0
∀ x: (¬Q(x)v¬R(x))^A(x)^¬P(x)   = 0
∀ x: (Q(x)^R(x))v¬A(x)vP(x)     = 1
∀ x: A(x) => ((Q(x)^R(x)vP(x))  = 1 (*)
Допустим
∃ y : (A(y)=1)^(Q(y)^R(y))vP(y) = 0) = 1
Тогда
∃ y : A(y) => (Q(y)^R(y))vP(y)) = 0
Пoлучаем противоречие с (*)
Таким образом если обозначить области истинности
предикатов через $(A),$(P),$(Q),$(R) то А(х) будет
равен (Q(x)^R(x))vP(x)
и максимальной областью истинности предиката A(x)
будет $(A) = ($(Q)∩$(R))∪$(P) =
= ([15,30]∩[25,40]))∪[10,25] = [10,30]
*********************************************************
Пример задачи когда множество истинности
предиката А(х) не является связным
*********************************************************
Определим предикаты
Р(x) =  { 1; x ∈  [5;30] ;
               0; x !∈ [5;30]
            }
Q(x) = { 1; x ∈  [14;33] ;
            0; x !∈ [14;33]
            }

Определить наибольшее множество истинности предиката А(х)
определенного на множестве действительных чисел R такого,что

∀ x∈R : (P(x)≡Q(x)) => ¬A(x)=True

Решение.
Поскольку   (P(x)≡Q(x)) => ¬A(x) ≡ 1 то
    (P(x)⊕Q(x)) v ¬A(x) ≡ 1
    ∀ x∈R : A(x) => P(x)⊕Q(x) = 1 (*)

Допустим
∃ y : (A(y)=1)^(P(y)⊕Q(y) = 0 ) = 1
Тогда
∃ y : A(y) => P(y)⊕Q(y)  = 0
мы получаем противоречие с (*)

Таким обазом , наибольшее множество истинности предиката А(х)
есть ([5;30]\[14;33])∪([14;33]\[5;30]) = [5;14]∪[30;33]


По сути все клоны классической задачи 18 ипользуют

Утверждение 01
Пусть P и Q два одноместных предиката, определенных
На множестеве Х любой природы.
Если ∀ x ∈ Х : P(x) => Q(x) = True ,то область истинности
предиката P вложена в область истинности предиката Q  


Ссылки
1. http://mathhelpplanet.com/static.php?p=primeneniye-logiki-predikatov


Wednesday, January 16, 2019

Comparison of the length of the code and the transparency of the solution via "Calculus basic predicates" and via Bitwise2 in solving a complex problem on bitwise conjunction

Down here we sequentially apply

¬A + A*B = (¬A + A)*(¬A + B) = ¬A + B
 A + ¬A*B = (A + ¬A)*(A + B) = A + B

Solution via "Calculus of basic predicates"
********************************************************************
(x&248 ¬= 152)v(x&252 = 156)v(x&250 = 154)v(x&A = 0) = 1
********************************************************************
252 = 11111100
156 = 10011100
248 = 11111000
152 = 10011000
250 = 11111010
154 = 10011010

(x&248 ¬= 152) = E(96) + ¬E(128) + ¬E(16) + ¬E(8)
(x&252 =  156)  =  ¬E(96)*E(128)*E(16)*E(8)*E(4)
(x&250 =  154)  =  ¬E(96)*E(128)*E(16)*E(8)*E(2)

E(96) + ¬E(128) + ¬E(16) + ¬E(8) + ¬E(96)*E(128)*E(16)*E(8)*E(4)
       + ¬E(96)*E(128)*E(16)*E(8)*E(2) + ¬E(A) ≡ 1

Converting ¬E(96)*E(128)*E(16)*E(8)*E(4) and get
E(96) + ¬E(128) + ¬E(16) + ¬E(8) entries like before run (1)
E(96) + ¬E(128) + ¬E(16) + ¬E(8)  + E(4) +
      + ¬E(96)*E(128)*E(16)*E(8)*E(2) + ¬E(A) = 1


Converting ¬E(96)*E(128)*E(16)*E(8)*E(2) and get
E(96) + ¬E(128) + ¬E(16) + ¬E(8) entries like before run (2)
E(96) + ¬E(128) + ¬E(16) + ¬E(8) + E(4) +
      + ¬E(96)*E(128)*E(16)*E(8)*E(2) + ¬E(A) ≡ 1

E(96)+ ¬E(128) + ¬E(16) + ¬E(8) + E(4) + E(2) ¬E(A) ≡ 1
E(102) + ¬E(128) + ¬E(16) + ¬E(8) +  ¬E(A) ≡ 1
(E(A)=> E(102)) + (E(A)=> ¬E(128)) + (E(A)=> ¬E(16)) + (E(A)=> ¬E(8)) ≡ 1

We get A(min) = 102


Solution via Bitwise2
********************************************************************
(x&248 ¬= 152)v(x&252 = 156)v(x&250 = 154)v(x&A = 0) = 1
********************************************************************
252 = 11111100
156 = 10011100
248 = 11111000
152 = 10011000
250 = 11111010
154 = 10011010

(x&248 ¬= 152) = ¬Z(96) + Z(128) + Z(16) + Z(8)
(x&252 =  156)  =  Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(4)
(x&250 =  154)  =  Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(2)


¬Z(96) + Z(128) + Z(16) + Z(8) + Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(4)
       + Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(2) + A = 1


Converting Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(4) and get
¬Z(96) + Z(128) + Z(16) + Z(8) entries like before run (1)
¬Z(96) + Z(128) + Z(16) + Z(8) + ¬Z(4)
       + Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(2)  + A =  1


Converting Z(96)*¬Z(128)*¬Z(16)*¬Z(8)*¬Z(2) and get
¬Z(96) + Z(128) + Z(16) + Z(8) entries like before run (2)
¬Z(96) + Z(128) + Z(16) + Z(8) + ¬Z(4) + ¬Z(2)  + A =  1


Now we are ready to apply De Morgan rules :-
     ¬(Z(96)*Z(4)*Z(2)) + Z(128) + Z(16) + Z(8) + A = 1

Finally getting done

Z(102) => Z(128) + Z(16) + Z(8) + A = 1
(Z(102)=>Z(128)) + (Z(102)=>Z(16)) + (Z(102)=>Z(8)) + (Z(102)=>A) = 1
Z(102) => A = 1

Which appears to be dual to

E(96)+ ¬E(128) + ¬E(16) + ¬E(8) + E(4) + E(2) ¬E(A) ≡ 1
E(102) + ¬E(128) + ¬E(16) + ¬E(8) +  ¬E(A) ≡ 1
(E(A)=> E(102)) + (E(A)=> ¬E(128)) + (E(A)=> ¬E(16)) + (E(A)=> ¬E(8)) ≡ 1

Due to Theorem 1
  For truth ∀ x: E(k)(x) => E(m)(x), e.g. E(k) => E(m) ≡ 1
  it is necessary  and sufficient that the set of unit bits "k"
  is fully included in the set of unit bits "m"


Final conclusion - the both approaches work almost the same way 
due to Polyakov's formulas for extended Bitwise2 functionality.
Both approaches one more time demonstrate completely dual nature
of working code in both versions and provide the same level transparency .
In other words, if "c" (see snapshot above) requires a decomposition 
into a relatively long sum of basic predicates, Polyakov's formulas work absolutely as well as basic predicates, what generally can be seen directly 
from their definition

Окончательный вывод - оба подхода работают практически одинаково
в силу формул Полякова для расширенной функциональности Bitwise2.
Оба подхода еще раз демонстрируют полностью двойственную природу
рабочего кода в обоих версиях и обеспечивают тот же уровень прозрачности. Другими словами, если «c» (см. снапшот выше) требует декомпозиции в сравнительно длинную сумму базисных предикатов формулы Полякова работают абсолютно так же, как и базисные предикаты,что легко можно увидеть непосредственно из их определения.

 

Sunday, January 13, 2019

Shooting problems P-23,P-25 via "Calculus of basic predicates" by E.A.Mironchick 2017

  That is a fairly strong demonstration of power and flexibility of "Calculus of basic predicates" approach by E.A.Mironchick 2017

In general we follow guidelines of technique developed in
http://kpolyakov.spb.ru/download/mea18bit.pdf

Per link mentioned above (quoting Helen A. Mironchick)
Let Et (x) be a predicate whose truth set is all x for which x & t ≠ 0.
If t is a power of two, then such a predicate will be called basic.
The basic predicate describes (fixes) a single unit in the binary notation.
Further, for brevity, the predicate Et (x) will be denoted by E(t);
we will also denote the truth set of this predicate.

(quoting ends)



Length of Biwise2 code

  

 Length of "Calculus of basic predicates" code

 (( E(A)*¬E(12) => (¬E(A)*E(21)) + ¬E(21)*¬E(12) 1
¬E(A) + E(12) + ¬E(A)*E(21) + ¬E(21)*¬E(12) 1
¬E(A) + E(12) + ¬E(21)*¬E(12) 1
¬E(A) + E(12) + ¬E(21) 1

Thus  А(max) =12



Length of Biwise2 code for ( x & 125 != 1) + ((x & 34 = 2) => (x & A = 0)) ≡ 1



 Length of "Calculus of basic predicates" code
 for    ( x & 125 != 1) + ((x & 34 = 2) => (x & A = 0))

E(124) + ¬E(1) + E(32) + ¬E(2) + ¬E(A) 1

So A(max) = 124

E(124) = E(64) + E(32) + E(16) + E(8) + E(4)
E(64) + E(32) + E(16) + E(8) + E(4) +
      + ¬E(1) + E(32) + ¬E(2) + ¬E(A)
1

So A(min) = 4

Monday, December 31, 2018

Solution of the equation E(M)⊕E(N) => E(A)*¬E(M & N) ≡ 1 via the calculus of basic predicates according to E.A.Mironchick

In general we follow guidelines of technique developed in
http://kpolyakov.spb.ru/download/mea18bit.pdf

Per link mentioned above (quoting Helen A. Mironchick)
Let Et (x) be a predicate whose truth set is all x for which x & t ≠ 0.
If t is a power of two, then such a predicate will be called basic.
The basic predicate describes (fixes) a single unit in the binary notation.
Further, for brevity, the predicate Et (x) will be denoted by E(t);
we will also denote the truth set of this predicate.

(quoting ends)


Denote by {X} the binary representation of a natural number X.
The core statement of the post below  is :-

Let R, M, N be natural numbers. R is the minimum
satisfying the condition {M OR N} = {R OR {M & N}},
where "OR" is a bitwise disjunction, and "&" is a bitwise conjunction
Then the smallest A satisfying the equation
E(M)⊕E(N)=>E(A)*¬E (M & N) ≡ 1 would be equal R.


First we intend to show that, E(M) v E(N) = E(R) v E(M&N).
Notice also that everywhere below, "*" is "^".

Consider expansions in the logical sum of  basic predicates.
E (M) and E(N). All pairs of equal basic predicates will be
collapsed into one and the logical sum of such predicate pairs
will obviously give E(M&N). The logical sum of all those
remaining is exactly E (R). It remains to apply the formulas
of De Morgan.

               ¬(E(M) v E(N)) = ¬(E(R) v E(M & N))

and get the required equality below

               ¬E(M)*¬E(N) = ¬E(R)*¬E(M&N)  (1)

Bitwise2 has a familiar formula. Due to the fact that ¬E(N) = Z(N)

  Z(M)*Z(N) = Z(M OR N) = Z(R)*Z(M & N)

See :-   Solving the equation ¬Z(M)⊕¬Z(N) => ¬A*Z(M&N) ≡ 1 in the Bitwise2 technique  https://informatics-ege.blogspot.com/2018/12/zmn-am-1-bitwise2.html

Thus, ¬E(M)*¬E(N) = ¬E(R)*¬E (M & N) can be obtained
as a result of Statement 3 of http://kpolyakov.spb.ru/download/bitwise2.pdf

   Convert the original equation as follows

   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

    From the decomposition of M and N into basic predicates
    define the numbers REST-M and REST-N such that
    each of them has no common unit bits with M&N and in doing so
    obtain

     {REST-M} + {M & N} = {M}
     {REST-N} + {M & N} = {N}

     Consequently

     E(M) = E(REST-M) v E(M&N)
     E(N) = E(REST-N) v E(M&N)

Apply formula (1) to ¬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
  
    Thus A (min) = R

The rest is not critical for the core result
already obtained, but makes things quite clear
Here we rely the duality between the calculus
of basic predicates and Bitwise2 to make sure
that ∃ x : E(REST-M)(x)*E(REST-N)(x) = False

E(REST-M)*E(REST-N) = ¬Z(REST-M)*¬Z(REST-N)
¬Z(REST-M)*¬Z(REST-N) = ¬(Z(REST-M) v Z(REST-N))

∃ x : Z(REST-M)(x) v Z(REST-N)(x) =True
∃ x : ¬(Z(REST-M)(x) v Z(REST-N)(x)) = ¬Z((REST-M)(x)&(REST-M)(x)) = ¬Z(0)
¬Z(0) = ¬True = False


Finally we get ∃ x : E(REST-M)(x)*E(REST-N)(x)=False
So, in fact:-

 ∀ х :  ¬E(R)(x)*¬E(M&N)(x) v (E(REST-M)(x) v E(M & N))(x)*(E(REST-N)(x) v E(M&N)(x)) v E(A)(x)*¬E(M&N)(x) = 1

means that
 
   ¬E(R)*¬E(M&N) v E (M&N) v E(A)*¬E(M&N) ≡ 1
   ¬E(R) v E(M&N) v E(A)≡ 1


Links
1. http://kpolyakov.spb.ru/download/mea18bit.pdf