Penso che tu stia cercando isomorfo .
Un "isomorfismo" è una mappatura 1-a-1 che preserva la struttura tra due gruppi di oggetti. Si dice che due oggetti sono isomorfi se un dato isomorfismo li mappa l'uno con l'altro.
Questo concetto di solito corrisponde alla nostra intuizione che i due set siano "diverse rappresentazioni della stessa cosa", incluso il fatto che qualsiasi cosa tu possa fare con una rappresentazione puoi farlo altrettanto facilmente con l'altra.
Per completezza: la parte "preservazione della struttura" significa che qualsiasi relazione che è vera per due membri in un insieme deve anche essere vera per i membri corrispondenti dell'altro detto. Dato che è un po 'astratto, considera l'insieme di numeri interi e l'insieme di stringhe che rappresentano gli interi (senza zeri iniziali o notazioni scientifiche o qualsiasi altra cosa che li renderebbe non-1-a-1). L'insieme di numeri interi ha una relazione maggiore di quella. Possiamo definire una relazione superiore alla relazione per l'insieme di stringhe che rappresentano numeri interi. Ora, se scegliamo la mappatura ovvia che corrisponde a 3 a "3" e così via, questa relazione viene conservata da quando x > y è anche il caso che stringGreaterThan (string (x), string (y)) sia vero. Se scegliamo una mappatura stupida che corrisponde a 1 a "3" e 2 a "-42" e così via, ci sono molti casi in cui x > y ma stringGreaterThan (string (x), string (y)) non è vero, il che significa che la mappatura non è un isomorfismo.
P.S. Nella programmazione "isomorfo" a volte ha un significato completamente diverso, vale a dire un codice che può essere eseguito sul client o sul server senza alcuna alterazione. Ma dovrebbe essere molto ovvio nel contesto se stai parlando della mappatura 1-a-1 o del codice client-o-server.