Clarify homomorphisms finder with specified image #700
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR resolves #697, and some related issues discovered when trying to resolve it.
This PR adds some tests, and other minor fixes related to #697.Before this can be merged I'll have to:adjust the documentation forIsDigraphHomomorphism
to remove the claim that values larger thanDigraphNrVertices(source_digraph)
are fixed, since this leads to the paradoxical situation where composing a monomorphism H -> G and an automorphism G -> G yields a non-homomorphism. I should add that as test case too.update the doc forDigraphHomomorphismFinder
to indicate what it returns (or doesn't) when the argumentIMAGE_RESTRICT
is specified and a strict subset of the nodes of the target digraph;add an info warning to the code for the case above (i.e. ifIMAGE_RESTRICT
is specified and a strict subset, then in order to ensure that all/any homomorphisms with image inIMAGE_RESTRICT
are returned, the automorphism group must be explicitly specified to be trivial).with the change toIsDigraphHomomorphism
from the first point, it's possible that specified automorphisms might not fix points greater than the number of nodes in the target graph. These points should be ignored in the code.