Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default implementations of not and implies #2

Closed
clayrat opened this issue Jul 3, 2017 · 4 comments
Closed

Default implementations of not and implies #2

clayrat opened this issue Jul 3, 2017 · 4 comments

Comments

@clayrat
Copy link

clayrat commented Jul 3, 2017

These should be mutually interdefinable:

  not : a -> a
  not x = x `implies` bottom
  implies : a -> a -> a
  implies x y = (not x) `join` y
@Risto-Stevcev
Copy link
Owner

Added it, thanks for the contrib 👍

@edrx
Copy link

edrx commented Nov 17, 2019

  I don't quite understand the context that you are discussing, but
  here is a simple situation in which (not p) `join` q = p `implies` q
  is false.

  In this Heyting Algebra

        23  
      22  13
    21  12
  20  11  02
    10  01
      00

  if p = 20 and q = 11 then:

    (not p)          = 02
    (not p) `join` q = 12
       p `implies` q = 13

  Take a look at 
  http://angg.twu.net/LATEX/2017planar-has-1.pdf
  http://angg.twu.net/math-b.html#zhas-for-children-2
  for details.

@Risto-Stevcev
Copy link
Owner

Risto-Stevcev commented Nov 17, 2019

Yeah you're right -- heyting algebras don't necessarily satisfy the law of excluded middle, I'm not sure why I accepted this change. I'll fix it

@Risto-Stevcev
Copy link
Owner

122489e

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants