Skip to content
This repository has been archived by the owner on May 20, 2018. It is now read-only.

What is Leibniz equality? What is it for? #144

Open
robrix opened this issue Oct 25, 2015 · 2 comments
Open

What is Leibniz equality? What is it for? #144

robrix opened this issue Oct 25, 2015 · 2 comments
Labels

Comments

@robrix
Copy link
Contributor

robrix commented Oct 25, 2015

I think this implements Leibniz equality, but I don‘t know what it is, or why, or how it works, or why:

let Equal = Declaration<Recur>("Equal", Datatype(.Type) { A in
    Datatype(A, A) { a, b in
        [ "equal": .Argument((A --> .Type) => { f in f[a] --> f[b] }, const(.End)) ]
    }
})
@robrix robrix changed the title What the heck is Leibniz equality? What is Leibniz equality? What is it for? Oct 25, 2015
@langston-barrett
Copy link

@robrix I don't know anything about Swift or this project, but in logic, Leibniz equality is the principle that two things that are indistinguishable (by propositions) must be identical. Informally "if everything that is true of a is also true of b, then a=b. See https://en.wikipedia.org/wiki/Identity_of_indiscernibles.

@robrix
Copy link
Contributor Author

robrix commented Feb 8, 2018

@siddharthist: That’s super helpful! Thank you.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants