The symbol =
is seen in every corner of logics, mathematics, and programming languages. Let us take a tour on how this specifc symbol is used and referred to, and see how “overdetermined” it currently is. Starting from basic formal logic - specifically the Law of Identity, loaded with Mathematical categories like equivalence relations, isomorphisms, and so on, finally toward practices and theories in and about programming languages.
=
in logicsIn classical formal logic, the Law of Identity says:
Remarks
A
except it’s an empty letter thats holds an intentionality toward some “logical proposition”, and has dual occurrences.B
, C
, D
and so on) is not explicit.A
, =
reflects an internal tension of A
.There is already a minimum level of contradiction in the dual occurrences of A
. Questions arise naturally: What’s the difference between the A
in lhs and the A
in rhs? If A
is self-consistent (or self-persistent), then for what and by what it has to identify with itself?
Such identity is free (with no cost). There is no locativity and linearity, let alone temporality and further physicality. More about Identity is discussed in another post.
=
in mathematicsThe most familar and basic determination of =
in mathematics is as “equivalence relation”, which satisfies:
For now let us suspend any references to foundations of mathematics like Set Theory.
=
in PLIn modern programming languages, we can write programs like:
let f = \x -> (x, x) in
let a = 42 in
let r = f a in
r
Where =
intuitively means “binding” or “assignment”. Clearly, none of three (reflexivity, symmetricity, transitivity) are applicable to the =
above. This is despite tons of “features” of PL that keep overdetermining the symbol =
.
The triad (A before, A after, identification/alienation of A)
.
Minimum level of spatiality (or temporality, causality?).
See Jean-Yves Girard.
(under construction)
Ad hoc postulation. Reduction to a common third.
(under construction)
Exchange of commodity. Linear Logic.
(under construction)
(under construction)