Open anton-k opened 4 years ago
a + a == e
На самом деле, a + inv a = e
, но это тоже не выполняется. Если в определении +
заменить and
на or
, то вроде нормально. Другой вариант: заменить определение e
на False
. Вроде тоже можно.
Для группы необходимо, чтобы для любого a выполнялось: inv a + a == e - почему необходимо, чтобы выполнялось это условие?
По определению группы, 3й пункт на скриншоте:
https://en.wikipedia.org/wiki/Group_(mathematics)
Но конечно не выполняется - для False нет обратного. False не обратный потому что False && False == False != True; True не обратный для False потому что True && False != True
Так что там только моноид.
Антон, здравствуйте! Подскажите, пожалуйста, если не затруднит. Не очень понятен момент из книги
instance Group Bool where e = True (+) a b = and a b inv a = not a
На самом деле приведённое выше определение экземпляра для Group не верно, хотя по типам оно подходит. Оно не верно как раз из-за нарушения свойств. Для группы необходимо, чтобы для любого a выполнялось: inv a + a == e - почему необходимо, чтобы выполнялось это условие?
С наилучшими пожеланиями
через email