For working with Picat as a FlatZinc solver you must first install Picat from
http://picat-lang.org/ . The specific flatzinc parser is also necessary and
Placed (copy/link) the directory "mzn_lib" at your favorite place of global definitions (e.g. in share/minizinc). I've called the directory picat_sat (used in the msc file shown below).
The program fzn_picat.sat.pi must be run by Picat and it seems that MiniZinc require just a single executable in the "exexutable" option so I have written a small executable shell script (called run_picat_sat.sh ) that runs the PicatSAT solver (it's a Linux script so you might have to adjust it if using some other environment):
""""
picat /home/hakank/picat/git/nfz/fzn_picat/fzn_picat_sat.pi $*
"""
The configuration file (picat_sat.msc) is then defined as:
{
"id": "picat_sat",
"name": "picat_sat",
"description": "Picat FlatZinc solver",
"version": "3.1",
"mznlib": "-Gpicat_sat",
"executable": ""executable": "/path/to/run_picat_sat.sh"",
"tags": ["sat","int"],
"stdFlags": ["-a","-n","-f"],
"supportsMzn": false,
"supportsFzn": true,
"needsSolns2Out": true,
"needsMznExecutable": false,
"needsStdlibDir": false,
"isGUIApplication": false
}
If you place this file together with the other msc files (e.g. share/minizinc/solvers/) then MiniZincIDE should show the PicatSAT as a solver automatically.
Hope this helps.
/Hakan