{
  "id": "org.chuffed.chuffed",
  "name": "Chuffed",
  "description": "Chuffed FlatZinc executable",
  "version": "0.10.4",
  "mznlib": "../chuffed",
  "executable": "@BIN_PATH@/fzn-chuffed",
  "tags": ["cp","lcg","int"],
  "stdFlags": ["-a","-f","-n","-r","-s","-v","--cp-profiler"],
  "extraFlags": [
      ["--prop-fifo", "Use FIFO queues for propagation", "bool", "false"],
      ["--vsids", "Use activity-based search on the Boolean variables", "bool", "false"],
      ["--toggle-vsids", "Alternate search between user-specified and activity-based one", "bool", "false"],
      ["--restart", "Restart sequence type", "opt:chuffed:none:constant:linear:luby:geometric", "chuffed"],
      ["--restart-base", "Base for geometric restart sequence", "float", "1.5"],
      ["--restart-scale", "Scale factor for restart sequence", "int", "1000000000"],
      ["--switch-to-vsids-after", "Search starts with the user-specified one and switches to the activity-based one after a specified number of conflicts", "int", "1000000000"],
      ["--branch-random", "Use random variable selection for tie breaking instead of input order", "bool", "false"],
      ["--sat-polarity", "Selection of the polarity of Boolean variables (0 = default, 1 = same, 2 = anti, 3 = random)", "int", "0"],
      ["--lazy", "Allow clause generation for domain update", "bool:on:off", "true"],
      ["--finesse", "Try to generated stronger clauses", "bool:on:off", "true"],
      ["--learn", "Compute nogoods when a conflict is encountered", "bool:on:off", "true"],
      ["--eager-limit", "The maximal domain size of eager integer variables", "int", "1000"],
      ["--sat-var-limit", "The maximal number of Boolean variables", "int", "2000000"],
      ["--n-of-learnts", "The maximal number of learnt clauses", "int", "100000"],
      ["--learnts-mlimit", "The maximal memory limit for learnt clauses in Bytes", "int", "500000000"],
      ["--sort-learnt-level", "Sort literals in a learnt clause based on their decision level", "bool", "false"],
      ["--one-watch", "Watch only one literal in a learn clause", "bool:on:off", "true"],
      ["--bin-clause-opt", "Optimise learnt clauses of length 2", "bool:on:off", "true"],
      ["--introduced-heuristic", "Decide if variable is introduced based on its name", "bool", "false"],
      ["--use-var-is-introduced", "Decide if variable is introduced based on var_is_introduced annotation", "bool", "false"],
      ["--exclude-introduced", "Exclude introduced variables from learnt clauses", "bool", "false"],
      ["--decide-introduced", "Allow search decisions on introduced variables and their derived internal variables", "bool:on:off", "true"],
      ["--fd-simplify", "Remove FD propagators that are satisfied globally", "bool:on:off", "true"],
      ["--sat-simplify", "Remove of clauses that are satisfied globally", "bool:on:off", "true"],
      ["--cumu-global", "Use the global cumulative propagator if possible", "bool:on:off", "true"],
      ["--disj-edge-find", "Use the edge-finding propagator for disjunctive constraints", "bool:on:off", "true"],
      ["--disj-set-bp", "Use the set bounds propagator for disjunctive constraints", "bool:on:off", "true"],
      ["--mdd", "Use the MDD propagator if possible", "bool", "false"],
      ["--mip", "Use the MIP propagator if possible", "bool", "false"],
      ["--mip-branch", "Use MIP branching as the branching strategy", "bool", "false"],
      ["--sym-static", "Use static symmetry breaking constraints", "bool", "false"],
      ["--ldsb", "Use lightweight dynamic symmetry breaking constraints '1UIP crippled'", "bool", "false"],
      ["--ldsbta", "Use lightweight dynamic symmetry breaking constraints '1UIP'", "bool", "false"],
      ["--ldsbad", "Use lightweight dynamic symmetry breaking constraints 'all decision clause'", "bool", "false"],
  ],
  "supportsMzn": false,
  "supportsFzn": true,
  "needsSolns2Out": true,
  "needsMznExecutable": false,
  "needsStdlibDir": false,
  "isGUIApplication": false
}
