Булев-Раж

Аватар пользователя Спокус Халепний
Систематизация и связи
Логика
Термины: 
Ссылка на философа, ученого, которому посвящена запись: 

Прошу не путать заглавие с "Мулен-Руж", а также с "Gold Rush". Данная тема действительно касается Булевой алгебры с двумя переменными. Попробуем от неё (сией алгебры) впасть в раж. Правда, это может приключиться только уже в развитие темы (чуть позже).

Для начала рассмотрим просто наглядненький пример на котором в дальнейшем покажем булевы способности.[ Кстати, по ходу вопрос, если кто знает (я - нет). Каким образом... вернее - через что (через какой орган тела) можно было перевести фамилию George Boole с английского на русский как Буль? Откуда взялся мягкий знак? Ну, я ещё как-то мог бы понять, если бы перевели как Буле. Но почему не просто - Бул?]

Итак, в булев-раж мы планируем впадать на примере с таможней. Этот пример выбран только лишь для того, чтобы не было совсем уж скучно.

Наш старший аргумент отображен для наглядности левой частью схемы (см.ниже). Младший аргумент - правой частью. А возможная булева операция - в середине схемы.

 

               

 

Задумаемся, какие различные булевы операции могут быть здесь заданы для отображения различных вариантов работы таможни. Другими словами, у нас есть общее выражение:

С = А <булева операция> В

Ясно, что А (левая часть схемы) может принимать значения 0 или 1 (поступление на таможенный контроль запрещенного - '0', или разрешенного - '1' для ввоза или вывоза).

Соответственно и В (правая часть схема) может принимать значение '0' если таможенники не верещагины (т.е. мзду берут) и '1' - если всё ОК и таможенный сбор поступает в бюджет.

Сама булева операция (средняя часть схемы) моделирует возможную работу таможенников :) .

P.S. Название булевых операций прошу писать словами.

После первых обсуждений - продолжим, чтобы дойти до самого интересного.

Комментарии

Аватар пользователя Спокус Халепний

Продолжу сам с собой.
Как известно, булеву операцию можно задать последовательностью '0' и '1', которая (последовательность) является результатом всех возможных комбинаций между старшим и младшим аргументами А и В.
Другими словами, вот так:
1100  возможные значения старшего аргумента - А в комбинации с В;
1010  возможные значения младшего аргумента - В в комбинации с А;
====
 1110 один из возможных результатов операции (тут - дизъюнкция).

Ясно, что, к примеру, операция конъюнкция (логическое умножение) задаётся комбинацией '1000' :
1100  - А
1010  - В
====
1000  - если результат такой, то это конъюнкция (логическое "И") .

Таким образом, четырёхбитовая комбинация '0' и '1' задаёт код любой булевой операции.
Тут надо заметить, что несмотря на многолетнее "зомбирование" насчет того, что есть только "И", "ИЛИ" и "НЕ" (иногда, чтоб не было бунта, ОНИ – чистые математики – разрешают использовать импликацию "ЕСЛИ ТО")… так вот, несмотря на такое внушение, булевых операций между двумя аргументами на самом деле существует ровно 16. Впрочем, сама четырёхбитовая комбинация, которая указывает на булеву операцию, уже содержит в себе этот факт, т.к. четыре бита образуют числа от 0 до 15 (и ни копейкой меньше).
Другое дело, что все "излишние" (по мнению хрустально чистых математиков) можно свести к "И", "ИЛИ" и "НЕ", а логические выражения, содержащие "неблагонадёжные" другие булевы операции, можно преобразовать, чтобы избавиться от всего, что сверх того – сверх "И","ИЛИ" и "НЕ".
Однако, такой стерильный подход непогрешимых ангелов-математиков, значительно препятствует практическому использованию булевой алгебры, превращая её из инструмента в катехизис.
Убедимся в этом на представленном выше примере "Таможня".

Оказывается, с помощью булевых операций (которые у нас воплощены в средней части схемы), можно задать 16 вполне себе реальных возможных поведенческих структур работников таможни. Ведь им на вход поступают: разрешённые для ввоза-вывоза предметы (А=1), а могут и  – запрещённые (А=0).
На выходе же, после таможенного контроля, средства могут поступать в бюджет (В=1), а могут и в карманы таможенников (В=0). [Насчёт "кармана", ясное дело, подразумеваются страны Запада, а не Россия, но общность математических рассуждений просто обязывает…]

Обратим внимание, что в схеме "Таможня" для наглядности указаны возможные единички и нули для левого (старшего) и правого (младшего) аргументов, т.е. для А и В.

Посмотрим, что означает, например, булева операция, которая задана кодом 1000 (т.е. логическим "И", конъюнкцией).
Тут чётко можно сказать, что:
- сборы от разрешённых к провозу предметов (когда А=1) поступают в бюджет (В=1),  а не в карман (при В=0 в коде булевой операции второй бит - 0);
- сборами же от запрещённых к провозу предметам (когда А=0) таможня не занимается (штрафы не накладываются, товары не изымаются), т.к. третий и четвёртый биты в коде булевой операции – нули, т.е. ни в бюджет, ни в карман ничего не попадает от запрещённых к ввозу-вывозу предметов;

Теперь посмотрим на интерпретацию булевой операции "ИЛИ" (дизъюнкция), код которой задан как 1110:
- сборы от разрешённых товаров (когда А=1) поступают как в бюджет (В=1), так и в карман (при В=0), потому что и первый и второй биты в коде этой операции – единицы;
- сборы же от запрещённых к провозу предметов поступают в бюджет, но не в карман.
То есть, таможенники в этом случае наживаются только от мзды, которую они накладывают на разрешённые к ввозу-вывозу предметы, иначе (без мзды), очевидно – не пропустят.

Однако интересно было бы посмотреть на идеальный для работы таможни код булевой операции. Чистые математики на такого рода булевый объект смотреть запрещают (ты, падла, - говорят они – преобразуй эту булеву операцию в выражение, состоящее из "И", "ИЛИ, "НЕ", и тогда приходи – гостем будешь).
Однако мы всунемся со своими грязными руками в эту запретную зону.

Рассмотрим булеву операцию с кодом 1010. Такой код образуется для следующей комбинации старшего и младшего аргументов:
1100 - старший аргумент
1010 – младший аргумент
====
1010 – код булевой операции (один из шестнадцати)

Такая булева операция (1010) описывает работу идеальной таможни, потому что:
- сборы от разрешённых к ввозу-вывозу предметов (когда А=1)  поступают в бюджет (В=1) – это задано первым битом кода операции - единицей;
- сборы от разрешённых к ввозу-вывозу предметов (когда А=1) не поступают в карман (В=0) – это задано вторым битом кода операции – нулём;
- сборы от запрещённых к ввозу-вывозу предметов (когда А=0) поступают в бюджет (В=1) – это задано третьим битом кода операции – единицей;
- сборы от запрещённых к ввозу-вывозу предметов (когда А=0) не поступают в карман (В=0) - это задано четвёртым битом кода операции – нулём.

Итак, мы установили, что идеальной работе таможни препятствуют в первую очередь чистые математики, которые хотят всячески затруднить использование булевых операций сверх меры.

Это получилось у нас пока лишь такое маленькое отступление на пути к впадению в настоящий булев раж. О нём - чуть позже.

Аватар пользователя Олан Дуг

yes Интересно! Для общего развития. 

Продолжайте.

Я это чисто интуитивно называл "комбинаторика".

Подобное изложение нравится тем, что ознакомление с  методом сопровождается примерами его практического применения.

Аватар пользователя Вернер

При упоминании таможни возникает чувство ужаса.

Аватар пользователя Спокус Халепний

Теперь в краткой форме опишем все 16 булевых операций на примере таможни.

1111 - Тождественная единица (всегда истина)
Таможня работает во всех направлениях: и отдают в бюджет, и кладут в карман; и за разрешённое, и за запрещённое.

1110 - Дизъюнкция (ИЛИ)
Таможня отдаёт в бюджет сбор и за раз решённое, и штрафы за запрещённое; за разрешённое идёт также и в карман.

1101 - Импликация (обратная)
Таможня отдаёт в бюджет за разрешённое, а также и кладёт в карман за разрешение; запрещённое идёт только в карман.

1100 - Всегда значение старшего аргумента
Таможня работает только с разрешённым, причём как на бюджет, так и на карман; на запрещённое им наплевать.

1011 - Импликация (прямая)
Таможня отдаёт в бюджет сборы за разрешённое (в карман – ни-ни); а за запрещённое – и в бюджет, и в карман.

1010 - Всегда значение младшего аргумента
Таможня работает по закону: всё в бюджет -  как за разрешённое, так и штрафы за запрещённое; и ничего в карман.

1001 - Эквиваленция
Таможня направляет в бюджет за разрешённое (но не в карман); за запрещённое же - только в карман (не в бюджет).

1000 - Конъюнкция (И)
Таможня работает только с разрешённым по правилам – в бюджет (в карман – ни-ни); на запрещённое им наплевать.

0111 - Отрицание конъюнкции
Таможня от разрешённого ничего в бюджет не даёт (только в карман); но штрафы за запрещённое идут и в бюджет, и в карман.

0110 - Отрицание эквиваленции
Таможня от разрешённого ничего в бюджет не даёт (только в карман); но штрафы за запрещённое - в бюджет (в карман ни-ни).

0101 - Отрицание младшего аргумента
Полная противоположность законной работе - всё в карман: и от разрешённого, и от запрещённого (ситуация за неделю до развала).

0100 - Отрицание прямой импликации
В бюджет вообще ничего не идёт; за разрешённое – в карман; на запрещённое – наплевать.

0011 - Отрицание старшего аргумента
Таможня работает только с запрещённым, направляя штрафы в бюджет а взятки – в карман; на разрешённое – наплевать.

0010   Отрицание обратной импликации
Таможня отправляет штрафы за запрещённое в бюджет, ничего в карман не кладёт; на разрешённое – наплевать.

0001 - Отрицание дизъюнкции
Таможня работает только с запрещённым, причём, только на карман; ничего в бюджет не идёт; на разрешённое – наплевать.

0000 - Тождественный нуль (всегда ложь)
Таможня не работает ("все ушли на фронт"); никакие операции не производятся; ситуация: "завтра была война".

А теперь начинается самое главное. Обратим внимание на среднее звено в нашей схеме (там где написано "таможня). Там задаётся булева операция – любая из 16-ти возможных:

                

Посмотрим на это же самое, но без привязки к примеру:

                            0000 - Тождественный нуль (всегда ложь)

 

До вхождения в булев-раж остался один шаг. Продолжение следует.

Аватар пользователя Олан Дуг

А мне это напоминает программирование аналоговых вычислительных систем путем установления требуемых перемычек в схемах обработки исходного сигнала.

Аватар пользователя Спокус Халепний

Вы правы с истоками. Корни этого подхода лежат в описаниях контактных релейных схем и в импульсно-потенциальных диаграммах.

P.S. пришлось удалить ваш небольшой комментарий-пожелание (ниже по теме), т.к. это позволяло мне (как автору темы) исправить небольшую ошибку в моём сообщении, к которому вы оставили этот  свой короткий коммент. Звыняйте!

Аватар пользователя Спокус Халепний

Продолжим рассмотрение универсального булевого функтора, в котором отображаются все 16 булевых операций с двумя аргументами. Рассмотрим схему без привязки к конкретному примеру:

                  

       

 

Схема этого функтора выделена голубоватым цветом. Как уже было сказано, функтор может иметь четыре перемычки, которые обозначены на схеме как 00 01 10 и 11 - двоичными номерами. Эти номера (как двоичные) получились сами собой, потому что перемычки могут "замыкать" соответствующие значения старшего и младшего аргументов, каждый из которых, в свою очередь, может иметь или значение 1, или значение 0. Поэтому то, что они замыкают, то так их и называют: замыкаешь левый ноль с праввой единицей - называешься 01, и т.д.

Для примера, посмотрим как выглядит функтор "импликация" (код операции 1011). В связи с тем, что в его коде три единички, следовательно перемычек будет три. Какие? Действуем по уже описанному правилу:

- перемычка 11 (самая верхняя) соответствует первому биту в коде операции;

- перемычка 10 соответствует второму биту в коде;

- перемычка 01 соответствует третьему биту в коде;

- перемычка 00 (самая нижняя) соответствует четвёртому биту в коде операции.

Итак, мы видим, что в булевой операции "импликация" второй бит нулевой. Следовательно в изображении будет отсутствовать соответствующая перемычка (перемычка 10). Три других - присутствуют.

Поэтому "импликация" имеет такой вид:

А, например, "дизъюнкция" (ИЛИ) (код операции 1110) будет представлена так:

Операция !"конъюнкция" (И) (код операции 1000) будет иметь лищь одну перемычку:

"Тождественная единица" (код 1111) имеет все перемычки:

А "тождественный ноль" (код 0000), т.е. "всегда ложь" - ни одной перемычки:

А вот теперь на минутку забудем  о кодовых двоичных номерах булевых операций,  о названиях булевых операций и о, так называемых, "таблицах истинности", при помощи которых задаются конкретные правила оперирования с аргументами. Однако не забудем, что у нас есть изображения всех шестнадцати булевых операций:

   

Оказывается, что зная СУЩНОСТЬ этих знаков, эти знаки (в отличие от общепринятых) становятся МОТИВИРОВАННЫМИ - мотивированными своей сущностью - способностью замыкать нужную нам комбинацию, которая образует результат любой из шестнадцати булевых операций.

Другими словами, результат мы формируем глядя ЛИШЬ на изображение знака. И наоборот - если нам нужен соответствующий результат, то мы подбираем знак с нужным изображением, т.к. глядя на него мы знаем как он работает.

Мало того, как будет показано дальше, оказывается в эти знаки УЖЕ КАК БЫ ВПИСАНЫ основные законы математической логики, типа закона де Моргана и пр. В данном случае их не надо вводить в качестве аксиом, т.к. они являются легко выводимыми (демонстрируемыми) при помощи этих знаков.

Так вот. Самый детский из всех возможных наивных вопросов ("от Вовочки"): какого хера математики испольуют для обозначения булевых операций чёрт знаент какие символы (причём, часто различные для одних и тех же операций в различных областях знаний), которые НИЧЕГО в себе не несут, кроме каких-то глупых условностей - стрелочек, с чёрточками, перевернутых букв "v" и т.д.

И это в то время, когда существует разработанная сорок лет назад  Г.П.Мельниковым "Иконическая булева алгебра", самые-самые основы которой я пытаюсь здесь изложить.

Ещё немного продолжения будет (если хватит сил).

 

Аватар пользователя Спокус Халепний

Приведём для наглядности чуть видоизменённую таблицу всех 16-ти булевых операций. Во второй колонке, как и раньше, будет двоичный код операции. В третьей колонке будет у нас десятичный номер булевой операции, а в четвёртой - шестнадцатиричный номер.

      1100 - старший (левый) эталонный элемент
      1010 - младший (правый) эталонный элемент
      ------ - ниже - результаты соответствующих булевых операций:

сумма весов будет 4+2+1=7 - номер в списке.

Ясно, что отсутствие перемычек имеет вес 0 и соответствует нулевой иконки в списке операций ("тождественный нуль").

О логичности такой системы обозначений можно ещё говорить много. Но есть и более важные моменты, которые покушаются... боюсь даже произнести... на чистую математику (в области булевой алгебры). Может, ещё посмотрим, но рука бойца колоть устала.

Аватар пользователя Спокус Халепний

К этому моменту мы рассмотрели набор иконических булевых знаков - МОТИВИРОВАННЫХ знаков булевых операций - которые сами по себе есть инструкции для осуществления булевых операций над парой аргументов.

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

Рассмотрим пример.

Пусть нам задан какой-нибудь знак булевой операции, к примеру такой:

И пусть заданы два аргумента в виде битовых строк: А=100110 и В=101010

С = А В

Подставим вместо А и В их значения и получим:

С = 100110 101010 = 111011

Посмотрим на образование этого результата пошагово.
Для первого бита в результирующей строке битов:
1) берём первый бит из А (он - '1') и первый бит из В (он тоже '1');
2) смотрим на соответствующее место в знаке булевой операции, то есть – смотрим на наличие или отсутствие перемычки 11 (место для самой верхней перемычки); видим, что перемычка там есть;
3) наличие соответствующей перемычки говорит о результате - 'истина' или '1'; поэтому первый бит результата – '1'.

Для второго бита в результирующей строке битов:
1) второй бит в А ( его значение '0') и второй бит в В (там тоже '0');
2) смотрим на соответствующее место в знаке булевой операции – на то место, где должна располагаться перемычка 00 (самая нижняя); эта перемычка в данном знаке булевой операции присутствует;
3) наличие перемычки 00 для данной пары битов из аргументов А и В ('0' и '0') говорит об истинности результата; поэтому второй бит в результирующей строке тоже '1'.

Для третьего бита результат тоже будет '1', т.к. соответствующая пара битов '0' и '1' тоже имеет свою перемычку (01) в булевом иконическом знаке.

Четвёртый же бит результата будет '0', потому что рассматриваемая пара битов '1' и '0' не имеет соответствующей перемычки в данном знаке булевой операции – перемычка 10 отсутствует.

Для пятого и шестого бита в результате действуют такой же алгоритм.

Кстати, мы выполнили действия, но даже и не задумывались – а какую, собственно, булеву операцию мы осуществляли!
И (о, боже!) мы совсем забыли заглянуть в булеву "таблицу умножения", т.е. в ту истинностную таблицу, которая "прописана" математиками для каждой булевой операции. Какой позор!
Однако, из любопытства,  можно глянуть на список булевых операций и вспомнить, что мы только что осуществили операцию "импликация", для обозначения которой чистейшие наши математики тоже имеют за пазухой несколько разнородных совершенно немотивированных символов, типа -->.  Эту символику понимать не надо – её, как и в грузинском анекдоте, надо просто запомнитЪ: конЪ – пишется с мягким знаком, а тарелЬка – без.

Это мы ещё в описании иконических булевых операций не подступились к самовыводу (из самих этих знаков) главных булевых аксиом, типа закона де Моргана, а также СНДФ (совершенная нормальная дизъюнктивная форма) и т.д. Всё это в эту алгебру САМОвписано из-за мотивированности  используемых знаков (иконок).

 

 

Аватар пользователя vander

Действительно, у математиков много надуманного, а то, что надо - не всегда есть. 

Я как-то в аспирантуре спросил одного академика (был у нас консультант): как выбрать подходящий математический аппарат для описания тех или иных физических явлений? Он задумался, а потом сказал: "Ты слишком много хочешь от современной науки." Я был шокирован и решил сам докопаться до истины. До сих пор копаюсь. Что-то получается, а что-то - нет.

А подход Мельникова Г.П. очень оригинален. Мне понравился.

Аватар пользователя vlopuhin

Можно я Вас спрошу, пока меня отсюда не выгнали. Что такое результат булевой операции? Откуда он берётся, и куда девается?

Аватар пользователя Спокус Халепний

Результат булевой операции формируется по такому же принципу, как и результат арифметической операции.

Арифметическая операция: с = а <арифм.операция> в

Булева: с = а <булева операция> в

 

Аватар пользователя vlopuhin

Вадим Владимирович, я ещё в памяти и в здравии, чего и Вам желаю. Как всё это формируется мне понятно из прошлых серий, включая формализацию исходных данных и постановку задачи. Мне интересно что такое (содержание) результат булевой операции? И вот один из вариантов, который я Вам уже предлагал: в результате содержится сам функтор, искаженный входящими данными (типа результат просвечивания "таможни", шлём туда одни единицы, а оттуда прут одни ноли: таможня на замке!). Но вдруг по истечении стольких долгожданных дней, появилась новая интерпретация?

Аватар пользователя Спокус Халепний

Так же, как результатом арифметической операции (сложить, умножить, корень n-ой степени, разделить...) является какое-либо числовое значение (с = 7 + 2; результат - 9, т.е. с = 9)... точно так же результатом булевой операции (дизъюнкции, импликации, конъюнкции...) является булево значение - одно из двух (T или F, а можно 0 или 1, Вкл. или Выкл....)

Вам же не приходит в голову сказать, что в результате арифметической операции содержится сам знак "+" (или "х", или "-", или...) искаженный входящими данными 7 и 2. Не приходит! Почему же булева операция должна содержаться в... результате булевой операции? Где справедливость?

 

Аватар пользователя vlopuhin

Всё было бы так гладко, если бы не один тонкий момент. Арифметическая операция производится над числами, и результатом арифметической операции будет число. Что такое число всем понятно (  :)  ), по этому вопросов и не возникает: на входе число - на выходе число, никаких проблем! Совсем другое дело, когда речь идет о булевых константах (истина, ложь). Мы уже договорились, что это не числа, но тогда необходимо разбираться и с результатом булевой операции, с логическими константами такой номер как с числами не проходит.

Но не буду настаивать. Интересно что по этому поводу думают другие участники?

Аватар пользователя vander

Ну почему совсем другое дело? Раз операция проводится над булевыми объектами, значит и результат должен быть булевым объектом. И разницы не вижу.

Аватар пользователя vlopuhin

Я кладу в корзину пять яблок, а потом ещё шесть, в результат входят все яблоки. Перенести такой "алгоритм" на логические константы невозможно, не входят исходные данные полностью или частично в результат. Нету их тама, они остались тута! Тогда что мы получаем на выходе? Истину, ложь, или может быть Функтор? Ну не совсем конечно же функтор, но что то на то похожее. Либо тогда придётся отказаться от каких бы то ни было таможен и прочих рыб с мясом, давайте договариваться на берегу, чего вы мне тут впариваете?

Аватар пользователя Спокус Халепний

С яблоками вам понятно.

А если у нас, например, вот такая электрическая цепочка с двумя рубильниками:

_____/ ______/ _____

Вопрос: в зависимости от включенности(True)/выключенности(False) рубильников будет ли в результат (ток в цепи) входить исходные данные, т.е. положение рубильников?

Почему 5 и 6 яблок образуют результат в корзине, а положения вкл./выкл. у рубильников в результат движения тока по цепи не входят, мол, меня не проведёшь, "нету их там, они остались тута"? Где справедливость!? Почему только с яблоками, а с электрическим током - на тебе дулю!

Аватар пользователя vlopuhin

Ну нет, вы посмотрите на них! А если Иркутскэнерго свет рубанёт на весь Байкальский микрорайон? И что тогда? Прощай Новый Год?

Причем здесь яблоки, ток, или рыба с мясом? Давайте тогда примем за логические константы двоичные числа ноль и единица, и всего то делов! И тогда станет понятно, что идеальный (в смысле самый хороший/лучший) функтор, хоть он и "фильтрует базар", для нас с вами прозрачен, что то в роде:"Что бы дурь каждого видна была!"

Аватар пользователя Спокус Халепний

...вы посмотрите на них! А если Иркутскэнерго свет рубанёт на весь Байкальский микрорайон? И что тогда? Прощай Новый Год?

На это "возражение" я могу лишь ответить так: а если кто-то заберёт у вас корзину, куда вы клали яблоки, демонстрируя арифметическую операцию сложения 5+2 ! И что тогда? Наступает безяблочная жизнь? Или - прощай арифметика?

Давайте тогда примем за логические константы двоичные числа ноль и единица, и всего то делов! И тогда станет понятно, что идеальный (в смысле самый хороший/лучший) функтор...

Логических (булевых) констант есть только две. Какие символы (знаки) выбрать для обозначения этих констант - есть чистая условная договоренность. Вполне подходят 0 и 1. Но надо иметь в виду, что ЭТО НЕ ЧИСЛА 0 и 1... хотя... в принципе вы можете называть их числами, но при этом вы должны уговорить весь остальной мир, чтобы они это слово (число) не использовали в арифметике и других областях. Потому что если в арифметике 0 и 1 число, то в булевой алгебре это не числа - НЕ ТАКИЕ ЖЕ ЧИСЛА, как в арифметике. Несмотря на одинаковость изображения.

В принципе, вы можете нулём и единицей (0 и 1) называть корову и лошадь. Но чтобы вас поняли правильно, постарайтесь внушить остальному миру, чтобы они отказались от этих глупых названий (корова и лошадь) и перешли на удобное вам 0 и 1.

Итак, для булевой алгебры вполне подходят обозначения 0 и 1 для двух констант, но это не числа - не арифметические 0 и 1. Или вот ещё. Буква а часто используется в алгебре, а также в геометрии для обозначения точки (обычно большая буква - А). Но мы же в геометрии или в алгебр не настаиваем, что в выражении "у=ах+в" буква а означает присоединительный союз.

И тогда станет понятно, что идеальный (в смысле самый хороший/лучший) функтор...

Тут под функтором вы имеете в виду вводимые обозначения булевых операций - иконки? Введение именно таких иконок для обозначения булевых операций не зависит от того как мы обозначим булевы константы. Хотя, для дискретной математики привычным является 0 и 1. Но для формальной логики высказываний привычней будет И и Л (True и False).

Аватар пользователя Андреев

Вадим, загляните в личку.

 

Аватар пользователя vander

Хотел заглянуть, да не открывается Ваша личка, а жаль. Наверняка, что-то умное хотели показать?

Аватар пользователя Андреев

Да, возможно вас тоже заинтересует. Я дал свой вариант ответа на загадку Вадима.

Аватар пользователя vlopuhin

 Тут под функтором вы имеете в виду вводимые обозначения булевых операций - иконки? 

Да.

  Но для формальной логики высказываний привычней будет И и Л (True и False).

Вот именно! Для формальной логики высказываний! И это не имеет ничего общего с арифметикой, по крайней мере разница агромадная. То есть вот здесь Вы погорячились: 

Спокус Халепний, 27 Декабрь, 2017 - 09:58, ссылка

Так же, как результатом арифметической операции (сложить, умножить, корень n-ой степени, разделить...) является какое-либо числовое значение (с = 7 + 2; результат - 9, т.е. с = 9)... точно так же результатом булевой операции (дизъюнкции, импликации, конъюнкции...) является булево значение - одно из двух (T или F, а можно 0 или 1, Вкл. или Выкл....)

Надо быть поосторожнее со знаком "=". Да и с таможнями, не дай бог кого-нибудь обидеть! Другими словами, если притягивать за уши арфметику, то для функтора будет самое место там, где в арифметических выражениях стоит знак "=". Грубо говоря, берём высказываение, пропускаем его через функтор, получаем другое высказывание. Берём 1 (или сразу три единицы!?) протаскиваем её через инвертор, получаем 0. Иначе говоря, в арифметике уже есть функтор "=", а вы туда пытаетесь впендюрить ещё 16 функторов.

А лучше оставим арифметику в покое. Чувствую у Вас есть что интересное сказать. Нет, серьёзно, у Вас это хорошо получается.

Аватар пользователя Спокус Халепний

для функтора будет самое место там, где в арифметических выражениях стоит знак "=".

Нет, в нашем контексте функтор - это обобщенное название всех возможных булевых операций. В арифметике - арифметических операций (+, -, /, возведение в степеь, корень, факториал...).

Знак равно - вторичен. Сначал делается действие (операция), а потом, если надо, результат этой операции направляется в левую часть от знака равенства. А может и не направляться, если операций много и текущая операция является лишь промежуточной.

Аватар пользователя vlopuhin

По обе стороны творится хрен знает что. А знака "=" в природе вообще не существует. Но я соглашусь с Вашим контекстом, продолжим в этом ключе...

Аватар пользователя Спокус Халепний

Любая булева переменная (а, в, с...) всегда имеет одно из двух значений - одну из двух констант. Их можно называть по разному - как условимся (истина или ложь, T или F, 0 или 1...).

Итак, на входе булевой операции - две переменные (или константы), а на выходе как результат какой-либо булевой операции -  может быть лишь ОДНА ИЗ ЭТИХ ДВУХ констант. Так же как в арифметике результатом будет обязательно какое-нибудь число (и никогда - булочка с маком). Просто числовых констант может быть много, а в булевой алгебре - только две.

Но булевы переменные могут также содержать целые ряды констант. Каждый член ряда - константа (T или F, или 0 или 1, если мы условились обозначать константы как 0 и 1). Члены ряда считаются пронумерованными. Поэтому первый член ряда (первая константа) от левой переменной (а) соответствует первому члену ряда у правой - второй переменной (в). Над этой парой осуществляется булева операция и результат записывается в первый член ряда результирующей переменной (с). Потом выбирается второй член ряда у переменных (т.е. у аргументов) и осуществляется та же булева операция, результат которой попадает во второй член ряда (с), и т.д.

В программировании это называется операция с битовыми строками.