4 ElementSig::ElementSig(uint id, SetSig *_ssig):
12 string ElementSig::toString() const{
13 return "Element" + to_string(id) + ".value";
16 string ElementSig::getSignature() const{
17 return "one sig Element" + to_string(id) + " {\n\
20 value in " + *ssig + "\n\
25 SetSig::SetSig(uint id, Set *set): Signature(id){
26 ASSERT(set->getSize() > 0);
27 domain = to_string(set->getElement(0));
28 for(uint i=1; i< set->getSize(); i++){
29 domain += " + " + to_string(set->getElement(i));
33 string SetSig::toString() const{
34 return "Set" + to_string(id) + ".domain";
37 string SetSig::getSignature() const{
38 return "one sig Set" + to_string(id) + " {\n\
41 domain = " + domain + "\n\
46 string Signature::operator+(const string& str){
47 return toString() + str;
50 string operator+(const string& str, const Signature& sig){
51 return str + sig.toString();