@Smeilz1
За любое развитие

Как применяется импликация в программировании?

Можете привести простейший пример импликации на Python или в псевдокоде, но с реальными числами, а не абстрактный?
Вот пример из wiki, я его не понимаю.
if 2 < 4: - #Это 0 для условия A
    if 3 < 5: #Это 0 для условия B


Что тогда будет следованием? Какой код будет являться импликацией со значением 0 и 1?

Вот я написал такой код:
if (a and b) or not a:
    print('Yeeea')

Тут все понятно, что импликация будет верна, если :
A = False
A = True and B = True
в остальном случае не верна.

Или вот тоже код реализующий импликацию
def implies(a,b):
    if a:
        return b
    else:
        return True


Только вопрос был в том, как именно тот же Python использует импликацию в работе операторов if?
Ведь конструкция вложенных if будет верна, только в случае, когда оба условия верны, если первый if(который A) = False, то программа никогда не дойдет до условия B.
  • Вопрос задан
  • 10012 просмотров
Пригласить эксперта
Ответы на вопрос 2
wiki смотрели?

В языках программирования импликация используется, как правило, неявно. Например, конструкция, предполагающая истинность условия B в данном участке программы:

if ( выражение A ) {
    if ( выражение B ) {
       сделать_что-то_полезное
    }
       else {
       <font color=Red>сбой</font>
    };
 }

будет успешно выполняться тогда и только тогда, когда верна импликация A→B. В то же время эти условия можно спокойно написать в одной строке, объединив их оператором конъюнкции.

if ( выражение A ) and ( выражение B ) {
    сделать_что-то_полезное
 }


При стандартных опциях компилятора (Delphi, C++ Builder) проверка идет до тех пор, пока результат не станет очевидным, и если А ложно, то (А и В) ложно вне зависимости от В, и не нужно ставить еще один условный оператор.

//выражение A - ложно
 if ( выражение A ) {
    //Дальше проверка не идет
    ... if ( выражение B ) {
       сделать_что-то_полезное
    } ...
 }


В функциональных языках импликация может быть не только правилом вычислений, но и видом отношения между данными, то есть обрабатываться (в том числе и выполняться) и создаваться по ходу выполнения программы.
Ответ написан
@nektopme
Проблемы понимания импликации алгебры булевой возникают из "объяснений" импликации естественным языком: "если то", "следовательно".

Нет в импликации естественного языка.
Наши языковые интуиции в импликации лишь сбивают с толку.

Это функция, принимающая две переменные (каждая 0 или 1) и возвращающая 0 или 1, в зависимости от своей таблицы истинности.

Мнемоника импликации; 1 -> 0 = 0.

В остальных случаях бинарная/булева функция "импликация" вернёт 1.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы