You might want to look into Ada and SPARK. It allows constraint-based programming, formal verification to verify your program's correctness, and so on.
https://www.adacore.com/about-spark
https://en.wikibooks.org/wiki/Ada_Programming/Contract_Based...
https://www.adacore.com/gems/gem-31
https://www.adacore.com/uploads/books/pdf/AdaCore-Tech-Cyber...
On top of that, Ada was designed with parallel programming in mind as well, so there are language constructs built in to make your job easier.