Steve D'Aprano <steve+pyt...@pearwood.info>: > On Fri, 7 Jul 2017 05:45 pm, Chris Angelico wrote: > >> On Fri, Jul 7, 2017 at 4:43 PM, Steve D'Aprano >> <steve+pyt...@pearwood.info> wrote: >>> On Fri, 7 Jul 2017 01:41 am, Marko Rauhamaa wrote: >>>> In Second-Order Logic, you can define identity directly: >>>> >>>> ∀x ∀y x = y ↔ ∀P (P(x) ↔ P(y)) >>> >>> Translating to English: >>> >>> For all x, for all y, x equals y if and only if for all P >>> (P(x) if and only if P(y)) >>> >>> [...] >> >> It sounds to me like this has defined equality, not identity, right? > > In mathematics, I believe that equality and identity in this sense are > the same, and we could spell the mathematical operator "=" as "is" > instead.
Mathematicians call the principle "extensionality" (<URL: https://en.wikipedia.org/wiki/Extensionality>). Python programmers call it duck-typing. That's why in set theory, you talk about "the empty set". Any two sets that satisfy the conditions for an empty set are indistinguishable and therefore identical: ∀x ∀y (∀z z ∈ x ↔ z ∈ y) ↔ x = y Marko -- https://mail.python.org/mailman/listinfo/python-list