Definitely a repost, but it fits the season

  • NeatNit@discuss.tchncs.de
    link
    fedilink
    arrow-up
    0
    ·
    8 days ago

    I never got why “implies” is called that. How does the phrase “A implies B” relate to the output’s truth table?

    I have my own “head canon” to remember it but I’ll share it later, want to hear someone else’s first.

    • stingpie@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      8 days ago

      I think ‘implies’ asks whether it’s possible that A causes B to be true. In other words, it is false if there is evidence that A does not cause B.

      So:

      If A is true and B is false, then the result is false, since A could not cause B to be true.

      If A and B are both true, then the result is true, since A could cause B.

      If A is false and B is true, then the result is true since A could or could not make B true (but another factor could also be making B true)

      If A and B are both false we don’t have any evidence about the relationship between A and B, so the result is true.

      I don’t know for sure, though. I’m not a mathematician.

      • NeatNit@discuss.tchncs.de
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        8 days ago

        Yup, that’s my interpretation too. It just doesn’t sit well with all the other operators.

        All the others are phrased as direct questions about the values of A and B:

        • A AND B = “Are A and B both true?”
        • A OR B = “Are either A or B true, or both?”
        • A NAND B = “Is (A AND B) not true?”
        • A IMPLIES B = “Is it possible, hypothetically speaking, for it to be the case that A implies B, given the current actual values of A and B?”

        You see the issue?

        Edit: looking online, some people see it as: “If A is true, take the value of B.” A implies that you should take the value of B. But if A is false, you shouldn’t take the value of B, instead you should use the default value which is inexplicably defined to be true for this operation.

        This is slightly more satisfying but I still don’t like it. The implication (ha) that true is the default value for a boolean doesn’t sit right with me. I don’t even feel comfortable with a boolean having a default value, let alone it being true instead of false which would be more natural.

        Edit 2: fixed a brain fart for A NAND B