summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorSören Tempel <soeren+git@soeren-tempel.net>2026-03-25 13:24:42 +0100
committerSören Tempel <soeren+git@soeren-tempel.net>2026-04-06 21:21:57 +0200
commita3042cb349f3ededafd401f871aa7c09e2975dac (patch)
treeb1b38a0e557cab0c9d5a85c7d12d57bbe5c7d6f7 /gnu
parent955c617d5c62b695ecca9f485b5f7a94c509781b (diff)
gnu: Add cvc5.
* gnu/packages/maths.scm (cvc5): New variable. Change-Id: Ia8bb80d7763f1dcf8497ae31f35661f4935c853f
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/maths.scm61
1 files changed, 61 insertions, 0 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index ce3e5074c10..da8009b1cbf 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -159,6 +159,7 @@
#:use-module (gnu packages image-processing)
#:use-module (gnu packages java)
#:use-module (gnu packages less)
+ #:use-module (gnu packages libedit)
#:use-module (gnu packages lisp)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
@@ -446,6 +447,66 @@ programming languages.")
(home-page "https://stcorp.nl/coda")
(license license:gpl2+)))
+(define-public cvc5
+ (package
+ (name "cvc5")
+ (version "1.3.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cvc5/cvc5/")
+ (commit (string-append "cvc5-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ynz7di4dyyiiydgmf0z9dc2jl7nm44xi0amch29rcgznwr4wy5m"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Production"
+ #:configure-flags
+ ;; Keep the flags in sync with the options set by `./configure --best`.
+ ;; See <https://github.com/cvc5/cvc5/blob/cvc5-1.3.3/configure.sh#L216-L222>.
+ #~(list "-DBUILD_SHARED_LIBS=1"
+ "-DENABLE_GPL=ON"
+ "-DUSE_EDITLINE=ON"
+ "-DUSE_CLN=ON"
+ "-DUSE_POLY=ON"
+ "-DENABLE_IPO=ON"
+ "-DUSE_CRYPTOMINISAT=ON")
+ ;; TODO: The reduce_constant_dup test fails, needs investigation.
+ #:test-exclude "reduce_constants_dup\\.smt2"
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Guix's libedit package does not require -ltinfo.
+ (add-after 'unpack 'remove-tinfo
+ (lambda _
+ (substitute* "cmake/FindEditline.cmake"
+ ((" tinfo")
+ ""))))
+ ;; The 'check phase requires test programs build using 'build-tests'.
+ (add-before 'check 'build-tests
+ (lambda _
+ (invoke "cmake" "--build" "." "--target" "build-tests"))))))
+ (inputs (list cadical-2.1
+ cln
+ cryptominisat
+ gmp
+ libedit
+ libpoly
+ symfpu))
+ (native-inputs (list pkg-config
+ python-minimal
+ python-tomli
+ python-pyparsing
+ python-pexpect))
+ (home-page "https://cvc5.github.io/")
+ (synopsis "Satisfiability modulo theories solver")
+ (description
+ "cvc5 is a solver for @acronym{SMT, satisfiability modulo theories}
+problems. It processes input in the standard SMT-LIB format.")
+ (license (list license:expat license:bsd-3))))
+
(define-public qdldl
(package
(name "qdldl")