Zulip Chat Archive
Stream: general
Topic: transfer between isomorphic types
Alexander Bentkamp (Apr 02 2019 at 18:02):
Is there a way to transfer theorems between two isomorphic types (semi-)automatically? For example using transfer
? @Johannes Hölzl ?
In my case, I have row vectors (1xn matrices) and column vectors (nx1 matrices). Whether this makes sense or not is surely also up for discussion and you can tell me your opinion if you like.
Anyhow, I'd like to prove lemmas only for one of them and transfer them to the other via a bijection.
Johan Commelin (Apr 02 2019 at 18:02):
Search for transfer
in this chat...
Johan Commelin (Apr 02 2019 at 18:02):
Or transport
Johan Commelin (Apr 02 2019 at 18:03):
You will find lots of requests, headaches, pain, confusion
Johan Commelin (Apr 02 2019 at 18:03):
Mathematicians think its trivial, computer scientists think not.
Johan Commelin (Apr 02 2019 at 18:03):
People are trying to build things. Little progress so far.
Johan Commelin (Apr 02 2019 at 18:03):
The transfer
tactic exists. But there is no infrastructure.
Alexander Bentkamp (Apr 02 2019 at 18:05):
Oh, right, I should have searched in the chat earlier. Thanks :-)
Johan Commelin (Apr 02 2019 at 18:06):
No worries! The more people are interested in this thing, the higher the chances we get a solution soon.
Johan Commelin (Apr 02 2019 at 18:07):
You are working in the Lean Forward project, right?
Johan Commelin (Apr 02 2019 at 18:08):
Having a powerful and easy-to-use transfer/transport system is a core feature if mathematicians are to use theorem provers...
Alexander Bentkamp (Apr 02 2019 at 18:08):
I am actually part of the Matryoshka project, but I am also working in Amsterdam.
Alexander Bentkamp (Apr 02 2019 at 18:08):
yes, that would be definitely good to have
Simon Hudon (Apr 02 2019 at 18:09):
That's a pretty realistic looking hologram that you sent to Pittsburgh!
Johan Commelin (Apr 02 2019 at 18:09):
Aah, too bad. I was thinking I could suggest you a topic :stuck_out_tongue_wink:
Alexander Bentkamp (Apr 02 2019 at 18:35):
But it seems to work pretty well for has_add
and has_mul
, right?
Kevin Buzzard (Apr 02 2019 at 18:44):
It's not perfect
Kevin Buzzard (Apr 02 2019 at 18:44):
But it's much better than nothing
Kevin Buzzard (Apr 02 2019 at 18:45):
It's also used for integers somehow
Kevin Buzzard (Apr 02 2019 at 18:45):
Relating them to pairs of naturals
Patrick Massot (Apr 02 2019 at 18:46):
I think this is no longer true
Patrick Massot (Apr 02 2019 at 18:46):
since Lean 3.4.2
Simon Hudon (Apr 02 2019 at 18:49):
I thought they only moved that construction from core to mathlib
Patrick Massot (Apr 02 2019 at 18:49):
No, int is in core
Patrick Massot (Apr 02 2019 at 18:50):
https://github.com/leanprover/lean/commit/95fa4cfb0a8774570d67bb231c1ab088a94e12bb
Patrick Massot (Apr 02 2019 at 18:51):
So transfer is now in mathlib, and is no longer used to build int
Last updated: Dec 20 2023 at 11:08 UTC