1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | language Essence 1.3 $ prob036.essence: Fixed Length Error Correcting Codes $ Problem details available at http://www.csplib.org/Problems/prob036/ given Character new type enum , maxDist : int (1..) , $ maxDist is the maximum distance between two characters codeWordLength : int (1..), numOfCodeWords : int (1..) letting Index be domain int (1..codeWordLength), String be domain function ( total ) Index --> Character given dist : function (Character, Character) --> int (0..maxDist), minDist : int (0..maxDist * codeWordLength) find c : set ( size numOfCodeWords) of String such that forAll s1, s2 in c , s1 != s2 . ( sum i : Index . dist((s1(i),s2(i)))) >= minDist |