given vertices new type enum
find move : function (total) int(1..1) --> tuple(vertices,vertices)
such that
move(1) = (min(vertices),min(vertices))
works great with conjure solve tmp.essence tmp.param and this parameter file:
letting vertices be new type enum {loc_1_1,loc_2_1}
However, with the same parameter file the following spec (which I would expect to behave identically)
given vertices new type enum
find move : function (total) int(1..1) --> tuple(vertices,vertices)
letting Z be min(vertices)
such that
move(1) = (Z,Z)
fails with
Error:
Undefined reference: vertices
Bindings in context:
move: declaration of find move: function (total) int(1) --> (vertices, vertices)
This is with current head, but an equivalent error is printed by conjure 2019-11-19.
This looks to me as if the symbol table entry representing min(vertices) is getting messed up, almost as if the letting has stomped over the previous entry. However, this is pure speculation and not informed by the code.
If there is a reason this should not work, then an error message mentioning the letting Z... line would probably be helpful, rather than blaming vertices, the definition of which hasn't changed.
The following simple spec
works great with
conjure solve tmp.essence tmp.param
and this parameter file:However, with the same parameter file the following spec (which I would expect to behave identically)
fails with
This is with current head, but an equivalent error is printed by conjure 2019-11-19.
This looks to me as if the symbol table entry representing
min(vertices)
is getting messed up, almost as if theletting
has stomped over the previous entry. However, this is pure speculation and not informed by the code.If there is a reason this should not work, then an error message mentioning the
letting Z...
line would probably be helpful, rather than blamingvertices
, the definition of which hasn't changed.