Search code examples
programming-languagesconsistency

Should we talk about consistency or congruence?


Always or absolutely most often very educated and professional partners I speak with talk about consistency (ie we shouldn't be able to prove something that is false)...Yet I suggested somewhat of a counterexample. Lying about everything seems to be "consistent" but not congruent. Therefore I suggested that we should speak of congruency when talking about language when consistency seems to be more about pure logic. Could we elaborate on this topic a bit since still much more emphasis is on consistency than congruence? Thank you


Solution

  • To what context(s) is your question meant to apply?

    By strictly observing the way your question is tagged, I assume you meant to talk about programming languages in general. But I rarely see programming languages talked about in terms of consistency, and in fact, I struggle to understand how your example (this idea of a binary truth-falsity divide) is at all applicable to the design of programming languages.

    In general, yes: logicians might talk about both consistency and congruence. But it's far more important that subjective standards like design patterns, coding standards, and even language architecture/design be consistent, since there is no universal or "correct" way of implementing them.

    Beyond that, I'm not sure how congruence solves your counter-example of lying. Certainly there could be agreement on a lie, or any type of false premise. Even with the abstract definition of congruence as similarity between objects, I see little justification for a consistent lie's lack of symmetry.

    Certainly we could have a lengthy discussion about the nature of Truth in general, and its specific relation to formal logic, but that would be clearly off-topic here.