This question is about how to prove a transformation exists between two objects $A$ and $B$, $f : A \to B$. First I explain what the problem I'm having is, followed by the questions.
I am confused with how to prove isomorphism between two objects, or I guess more generally a transformation between two objects. It seems that you can create an isomorphism/transformation by definition, and there is no need for proof. But in the programming / software world, you can't just say $f : A \to B$. The function needs to be implemented. More generally (in programming), instead of custom functions you can create a data structure $D$ such that $f : \{A, D\} \to B$ or $f_D : A \to B$ to define the transformation; the generic function just uses the data structure to perform the transformation. As such, it seems there's some sort of information in that data structure that can be used somehow in a proof of the transformation. But I'm confused because mathematically the implementation / data structure stuff is left out -- you just write $f : A \to B$. So I'm wondering what is actually necessary to prove a transformation exists between two objects.
For reference, I am also ~somewhat~ thinking in terms of Homotopy Type Theory (HoTT). In that field (from my understanding), a proof of equivalence between two types is that a path exists between them. I imagine this path to be like a transformation. But in HoTT, just stating two types are equal (i.e. that a path exists) is enough. You don't have to define the algorithmic steps or anything between the two types (whereas you would if in software you actually want to perform a transformation).
So I am wondering:
- Given two objects $A$ and $B$, how to prove there is a transformation $f : A \to B$ that exists between them. Wondering if you have to show step by step the algorithmic transformation, or if you just have to show there is a path of some sort, or something else (that's all I can think of). I haven't been able to understand how to prove a transformation exists (keep thinking along the lines of a step-by-step algorithm to transform but not sure if that's the right track). Not sure what to do here, but I feel just stating that "there is a transformation" is not rigorous enough. I would like the transformation to be shown and have the rigor of a proof.
- If there is a transformation between two objects (like the coffee cup $\to$ donut example), wondering if that is considered an isomorphism, or if not, then it is just a general transformation / equivalence. Not sure the terminology there. Hoping to understand how to distinguish between transformations and isomorphisms. Not clear to me how they are different in these examples, given that there is a bijection. In programming, the two structures might be two different graphs, with a bijection between them (but the data associated to each vertex might be different between the two graphs), so maybe this has something to do with graph isomorphism.
I'm just wondering at a high level how to do this, not necessarily a specific proof if it involves too much. Basically, what I need to show in order to be able to say "we have a proof of the transformation between $A$ and $B$" or that "$B$ is proven to be derived from $A$". I am wondering if there is a way to have the rigor of proofs in this setting.
By "object" I mean any sort of mathematical structure, but specifically in this example I am thinking in terms of graphs. More generally, I am thinking in terms of the 3 images below (topology transformation, path transformation, and graph transformation), which all seem similar to me in that there are two points/graphs/paths/objects/structures $A$ and $B$, and a transformation between them.