sbv-0.9.16: Symbolic Bit Vectors: Prove bit-precise program properties using SMT solvers.

Portabilityportable
Stabilityexperimental
Maintainererkokl@gmail.com

Data.SBV.Examples.Puzzles.Euler185

Description

A solution to Project Euler problem #185: http://projecteuler.net/index.php?section=problems&id=185

Synopsis

Documentation

guesses :: [(String, SWord8)]Source

The given guesses and the correct digit counts, encoded as a simple list.

euler185 :: Symbolic SBoolSource

Encode the problem, note that we check digits are within 0-9 as we use 8-bit words to represent them. Otherwise, the constraints are simply generated by zipping the alleged solution with each guess, and making sure the number of matching digits match what's given in the problem statement.

solve :: IO ()Source

Print out the solution nicely. We have:

>>> solve
4640261571849533
Number of solutions: 1