Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This contains some falsehoods, e.g.

  (A⇔B⇔C)
is not the same as

  ((A⇔B)∧(B⇔C))
and the former doesn't imply

  (A⇔C)
either, but the latter does.


Interpreting A⇔B⇔C as (A⇔B)⇔C is utterly non-standard, but admittedly interesting.

A⇔B⇔C is usually not a valid expression in any mathematical formalism. But if used informally, A⇔B⇔C is usually meant to mean (A⇔B)∧(B⇔C), just as when you say A=B=C when you actually mean (A=B)∧(B=C).


https://en.wikipedia.org/wiki/Logical_biconditional

(A⇔B)⇔C has more in common with the other logical operators: due to it's associativity an interpretation that is, in my opinion, closer than A=B=C.

Edit, removed: Note that (A⇔B)∧(B⇔C)) is not one of the two ambiguous options: either (A⇔B)⇔C or (A∧B∧C)∨(¬A∧¬B∧¬C) this is wrong.


What? `(A⇔B)∧(B⇔C)` is exactly equivalent to `(A∧B∧C)∨(¬A∧¬B∧¬C)` which is equivalent to `A = B = C`


So it is.


What?

What do you mean by (A⇔B⇔C) then?

Because I’m pretty sure I’ve basically only seen it as shorthand for the conjunction of (A⇔B) and (B⇔C), when it is understood that ⇔ is transitive.


So what's the interpretation that will make one false and the other true?


My standard interpretation is ((A⇔B)⇔C). A=F,B=F,C=T differ in evaluation.

* edited T to F


Those parentheses are meaningless, since IFF (aka NOT-XOR) is associative and commutative.

IFF is a parity counter like XOR.

XOR counts how many bits are true. IFF is NOT of how many bits are false. (This shows why XOR is used much more than IFF, because it is cleaner.)

(a XOR false is a, and a XOR true is NOT a, aka a+1 mod 2; a IFF true is a, and a IFF false is a+1 mod 2)


The discussion is the meaninglessness of the parentheses. ⇔ is indeed commutative and associative which means that we can define removing the parentheses as equivalent. However it is equally valid to not do this and define an n-ary '⇔' operator that evaluates ⇔(a1..an) as all ai have the same value. The result is different semantics for A⇔B⇔C.

I've taught and always assume ((A⇔B)⇔C). I've apparently used (A⇔B)&(B⇔C) once.


Doesn't that evaluate as true if A and B are contradictions and C is a tautology?

Whatever A⇔B⇔C means, surely it shouldn't allow for that.


Why not? The sky if green if and only if pigs can fly if and only if water is wet. The sky if green if and only if pigs can fly is true. True if and only if water is wet is true.


Ok, you've got a point, I've just never seen it used that way (though too be fair, I haven't often seen it used, probably for the reasons we're discussing).


How do you read

  (A⇔B⇔C)

?


The error comme from the use of the equivalence operator instead of the material Implication operator =>




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: