# Constraint for Total Functions Follow

Hello,

I have a DSL for Total Functions, like : TotalFunction f = X -> Y { < x1 > |-> < y1 > }

< x2 > |-> < y2 >

< x3 > |-> < y3 >

The Elements in the Function is defined as finite Sets, like: FinSet X = { x1 x2 x3 };

FinSet Y = { y1 y2 y3 };

At the moment all FinSet-Elements can be chosen, that means on the left side you can choose all Elements of X and Y, but

in this case on the left side, only Elements of FinSet X shall be allowed, for the right side it should be the same with only Elements of Y.

Now, I had the idea to do a constraint for "Mapping" and do a referent constraint for "from" and "to". In this case I had tried something for "from" first of all, but It doesn't work at all and I have absolutely no idea, how to handle this. Please help:

The pictures below show, how the language looks exactly:

Thank you in advance.

Best regards,

Volker

Please sign in to leave a comment.

Your approach is correct, so I suspect the actual reference scope concept function is incorrectly implemented. Something like this should work:

SimpleRoleScope.forNamedElements(contextNode.ancestor<concept = TotalFunction>.source, link/FinSet : elements/);

That works.

Thank you very much!