Hacker News new | past | comments | ask | show | jobs | submit login

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).




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: