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