Verites / verigraph

Software specification and verification system based on graph rewriting
https://verites.github.io/verigraph/
Apache License 2.0
37 stars 4 forks source link

Terrible performance of isomorphism check between morphisms #53

Open ggazzi opened 7 years ago

ggazzi commented 7 years ago

The default implementation for isomorphism checking between morphisms scales terribly, since for every isomorphism between codomains it has to find isomorphism on the domains. In the case of graph morphisms, it could probably be improved.

The implementation could be a backtracking algorithm that takes each mapping $(a, b)$ in one of the morphisms and assigns it to some mapping $(x, y)$ in the other morphism, which forces the assignment $(a <-> x)$ in the domain isomorphism, and $(b <-> y)$ in the codomain isomorphism.