Продолжение логики (есть и нет) с одноименным названием статьи. В этом смысле: (нет что-либо) = (что-либо ? что-либо). Вот код на python:

#!/usr/bin/python
# логика: нет х = (х не-равно х)
#        есть х = (х равно х)
A = ('a', 'b', 'c')
B = ('c', 'd')
C = ('d', 'e')
D = ()
#
#множества пересекаются, если (существует OR существуют) inSet1 == inSet2
#множества не пересекаются, если not (существует OR существуют)
def intersection_of_sets(set1, set2):
    pm = False
    for inSet1 in set1:
        for inSet2 in set2:
            if inSet1 == inSet2: 
                #print('множества пересекаются: ', inSet1, '=', inSet2)
                pm = True
            #else: print('множества не пересекаются, т.е. имеем пустое множество')
    if pm == True: print('множества пересекаются')
    else: print('множества не пересекаются')
    return pm
#
intersection_of_sets(A, B) #вернет True: множества пересекаются
intersection_of_sets(A, C) #вернет False: пересечение множеств - пусто
                           #т.е. каждый элемент множеств А не равен 
                           #каждому элементу множества С
intersection_of_sets(D, D) #вернет False: пустое множество задается 
                           #тождественно ложной формулой, т.е. противоречием
                           #т.е в нем нет такого элемента х, что х=х

А ниже ссылка на теорию. Цитата из учебного пособия [Н. Непейвода, Прикладная логика, стр 71], в котором пустое множество задается тождественно ложной формулой.

image

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

P.S. Система, утверждения которых нельзя ни доказать, ни опровергнуть средствами самой теории, называется неполной. Наоборот, система называется полной, если в ней доказывается либо F, либо доказывается его отрицание. А поскольку тождественно ложные формулы исключены из доказательств, то и выразить то, что ими описывается, не представляется возможным. … Так в классическом представлении приходят к выводам о неизбежности недоказуемого в непротиворечивой системе.
Поделиться с друзьями
-->

Комментарии (10)


  1. DaneSoul
    09.05.2017 13:16
    +6

    <сарказм>В Твиттер не влезло?</сарказм>


    1. napa3um
      09.05.2017 13:31
      +1

      На хабре/гиктаймсе публикуется всё больше «фундаментальных» открытий («открывают» новыми словами ООП, ФП, нейросети, эволюцию, теорию информации, физику, математику), наверное, это как-то связано с весной.


      1. DaneSoul
        09.05.2017 13:36
        +2

        Фундаментальные статьи — это хорошо, когда они целостны и раскрывают важную и интересую тему с разных сторон. Про туже логику я бы не прочь почитать детальную статью, но именно статью, а не вот такой «огрызок» из пары абзацев.


        1. napa3um
          09.05.2017 13:42

          https://ru.wikipedia.org/wiki/Парадоксы_теории_множеств


  1. bulygin69
    09.05.2017 14:08
    -2

    Да не в самом же коде дело. Это только способ показать, что
    есть А = (А равно А),
    нет А = (А не равно А)
    (А не-равно А) — тождественно ложная формула или, иначе говоря, противоречие.
    И что пустое множество может быть выражено тождественно ложной формулой.

    P.S. Зачем продолжена итерация? Затем, чтобы показать что [не существовать = не (существует или существуют)]


  1. zzimba
    09.05.2017 14:10

    1. Вы говорите про множества, а ипользуете кортеж
    2. Если взять дествительно множества то для их сравнения не нужно изобретать велосипед, достаточно бинарного and

    A = {'a', 'b', 'c'}
    B = {'c', 'd'}
    C = {'d', 'e'}
    D = set()
    
    bool(A & B)
    True
    bool(A & C)
    False
    bool(D & D)
    False
    D == D
    True
    


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

    Но если цепляться к вашей реализации то она настолько же оптимальна насколько сортировка пузырьком.
    Зачем гонять цикл в цикле?
    Зачем если нашли пересечение продолжать итерации?

     for inSet1 in set1:
            if inSet1 in set2: 
                #print('множества пересекаются: ', inSet1, '=', inSet2)
                pm = True
                break
    


    Учитись писать код


    1. bulygin69
      09.05.2017 14:13
      -2

      Да не в самом же коде дело. Это только способ показать, что
      есть А = (А равно А),
      нет А = (А не равно А)
      (А не-равно А) — тождественно ложная формула или, иначе говоря, противоречие.
      И что пустое множество может быть выражено тождественно ложной формулой.

      P.S. Зачем продолжена итерация? Затем, чтобы показать что [не существовать = не (существует или существуют)]


    1. bulygin69
      09.05.2017 14:26
      -2

      Насчет кортежа… Если бы использовались {}, то смысл этой логики не удалось бы показать. Да, в практическом смысле проще было бы привести (если иметь ввиду результат) операции python c множествами. Но, повторюсь, дело не в быстродействии, а в том, чтобы отобразить логику


  1. erwins22
    09.05.2017 20:23

    возможно что гегелевская теорема о неполноте является всего лишь следствием противоречивости ZFC


    1. bulygin69
      10.05.2017 03:29
      -1

      Так же считаю.