This solver was developed and formally proved correct using Why3, extracted to OCaml and then compiled to JavaScript using Js_of_ocaml
Solve Reset
Example 1 Example 2 Example 3 (hard)
See also