Разбор логической импликации в контексте языков программирования
К@ilyabirman_channelмедиа / агрегатор
1 месАвтор анализирует, почему конструкция if (a) b не является логической импликацией и почему попытки применить формальную логику к коду часто бессмысленны.
Продолжение
Один из комментаторов у Никиты написал, мол, как же импликации нет в языках программирования, когда там есть if (a) b? Но что значит? В известных мне языках программирования это даже не является выражением, но если бы являлось, каким было бы его значение? Иными словами, что бы нам дал вывод print (if (a) b)? Конечно же true! Ведь в этом буквально состоит работа языка программирования: обеспечить b, когда истинно a. Если он этого не делает, то зачем такой язык программирования нужен? Но в то же время, если a ложно, то глядя на эту строчку мы никак не сделаем вывод о том, произойдёт ли b. Может, какая-то другая часть кода обеспечит b. Строчка if (a) b никак не способна предотвратить b.
Получается какая-то эзотерика, и только потому, что никто никогда не рассматривает if (a) b как логическое выражение и не пытается оценить его истинность. Всех интересует только логическое выражение a по отдельности, потому что от его истинности зависит, может ли быть уверены в том, что произойдёт b.
Импликация в языках программирования была бы, если бы можно было написать if (a→b) c, то есть «если из a следует b, обеспечь c». Но нафиг это надо? Как мы уже выяснили, когда значения a и b уже известны, значение истинности их импликации не несёт никакой пользы и почти никакого смысла.
Кратко (AI)
Автор рассуждает о природе логической импликации в языках программирования. Он объясняет, почему конструкция if (a) b не эквивалентна логической импликации, так как она не является выражением с истинностным значением, и делает вывод о бесполезности применения формальной логики к исполняемому коду.
Обсуждение
0Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖