62 lines
1.2 KiB
Nix
62 lines
1.2 KiB
Nix
{
|
|
lib,
|
|
mkCoqDerivation,
|
|
coq,
|
|
version ? null,
|
|
}:
|
|
|
|
let
|
|
repo = "stalmarck";
|
|
defaultVersion =
|
|
with lib.versions;
|
|
lib.switch coq.coq-version [
|
|
{
|
|
case = isEq "8.20";
|
|
out = "8.20.0";
|
|
}
|
|
] null;
|
|
release = {
|
|
"8.20.0".sha256 = "sha256-jITxQT1jLyZvWCGPnmK8i3IrwsZwMPOV0aBe9r22TIQ=";
|
|
};
|
|
releaseRev = v: "v${v}";
|
|
|
|
packages = [
|
|
"stalmarck"
|
|
"stalmarck-tactic"
|
|
];
|
|
|
|
stalmarck_ =
|
|
package:
|
|
let
|
|
pname = package;
|
|
istac = package == "stalmarck-tactic";
|
|
propagatedBuildInputs = lib.optional istac (stalmarck_ "stalmarck");
|
|
description =
|
|
if istac then
|
|
"Coq tactic and verified tool for proving tautologies using Stålmarck's algorithm"
|
|
else
|
|
"A two-level approach to prove tautologies using Stålmarck's algorithm in Coq.";
|
|
in
|
|
mkCoqDerivation {
|
|
inherit
|
|
version
|
|
pname
|
|
defaultVersion
|
|
release
|
|
releaseRev
|
|
repo
|
|
propagatedBuildInputs
|
|
;
|
|
|
|
mlPlugin = istac;
|
|
useDune = istac;
|
|
|
|
meta = {
|
|
inherit description;
|
|
license = lib.licenses.lgpl21Plus;
|
|
};
|
|
|
|
passthru = lib.genAttrs packages stalmarck_;
|
|
};
|
|
in
|
|
stalmarck_ "stalmarck-tactic"
|