Skip to content

Commit 1d54749

Browse files
authored
Merge pull request #3383 from aleksnanevski/master
added dev version for coq-htt and coq-htt-core
2 parents b02f39b + 7eaebf1 commit 1d54749

File tree

5 files changed

+126
-9
lines changed
  • extra-dev/packages
    • coq-htt/coq-htt.dev
    • coq-htt-core/coq-htt-core.dev
  • released/packages
    • coq-fcsl-pcm/coq-fcsl-pcm.2.1.0
    • coq-htt/coq-htt.2.1.0
    • coq-htt-core/coq-htt-core.2.1.0

5 files changed

+126
-9
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
opam-version: "2.0"
2+
maintainer: "[email protected]"
3+
4+
homepage: "https://github.com/imdea-software/htt"
5+
dev-repo: "git+https://github.com/imdea-software/htt.git"
6+
bug-reports: "https://github.com/imdea-software/htt/issues"
7+
license: "Apache-2.0"
8+
9+
synopsis: "Hoare Type Theory"
10+
description: """
11+
Hoare Type Theory (HTT) is a verification system for reasoning about sequential heap-manipulating
12+
programs based on Separation logic.
13+
14+
HTT incorporates Hoare-style specifications via preconditions and postconditions into types. A
15+
Hoare type `ST P (fun x : A => Q)` denotes computations with a precondition `P` and postcondition
16+
`Q`, returning a value `x` of type `A`. Hoare types are a dependently typed version of monads,
17+
as used in the programming language Haskell. Monads hygienically combine the language features
18+
for pure functional programming, with those for imperative programming, such as state or
19+
exceptions. In this sense, HTT establishes a formal connection in the style of Curry-Howard
20+
isomorphism between monads and (functional programming variant of) Separation logic. Every
21+
effectful command in HTT has a type that corresponds to the appropriate non-structural inference
22+
rule in Separation logic, and vice versa, every non-structural inference rule corresponds to a
23+
command in HTT that has that rule as the type. The type for monadic bind is the Hoare rule for
24+
sequential composition, and the type for monadic unit combines the Hoare rules for the idle
25+
program (in a small-footprint variant) and for variable assignment (adapted for functional
26+
variables). The connection reconciles dependent types with effects of state and exceptions and
27+
establishes Separation logic as a type theory for such effects. In implementation terms, it means
28+
that HTT implements Separation logic as a shallow embedding in Coq."""
29+
30+
build: [make "-C" "htt" "-j%{jobs}%"]
31+
install: [make "-C" "htt" "install"]
32+
depends: [
33+
"coq" {>= "8.19"}
34+
"coq-mathcomp-ssreflect" {>= "2.2.0"}
35+
"coq-hierarchy-builder" {>= "1.7.0"}
36+
"coq-mathcomp-algebra"
37+
"coq-mathcomp-fingroup"
38+
"coq-fcsl-pcm" {>= "2.1.0"}
39+
]
40+
41+
tags: [
42+
"category:Computer Science/Data Types and Data Structures"
43+
"keyword:partial commutative monoids"
44+
"keyword:separation logic"
45+
"logpath:htt"
46+
]
47+
48+
authors: [
49+
"Aleksandar Nanevski"
50+
"Germán Andrés Delbianco"
51+
"Alexander Gryzlov"
52+
"Marcos Grandury"
53+
]
54+
55+
url {
56+
src: "git+https://github.com/imdea-software/htt.git#master"
57+
}
58+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
opam-version: "2.0"
2+
maintainer: "[email protected]"
3+
4+
homepage: "https://github.com/imdea-software/htt"
5+
dev-repo: "git+https://github.com/imdea-software/htt.git"
6+
bug-reports: "https://github.com/imdea-software/htt/issues"
7+
license: "Apache-2.0"
8+
9+
synopsis: "Hoare Type Theory"
10+
description: """
11+
Hoare Type Theory (HTT) is a verification system for reasoning about sequential heap-manipulating
12+
programs based on Separation logic.
13+
14+
HTT incorporates Hoare-style specifications via preconditions and postconditions into types. A
15+
Hoare type `ST P (fun x : A => Q)` denotes computations with a precondition `P` and postcondition
16+
`Q`, returning a value `x` of type `A`. Hoare types are a dependently typed version of monads,
17+
as used in the programming language Haskell. Monads hygienically combine the language features
18+
for pure functional programming, with those for imperative programming, such as state or
19+
exceptions. In this sense, HTT establishes a formal connection in the style of Curry-Howard
20+
isomorphism between monads and (functional programming variant of) Separation logic. Every
21+
effectful command in HTT has a type that corresponds to the appropriate non-structural inference
22+
rule in Separation logic, and vice versa, every non-structural inference rule corresponds to a
23+
command in HTT that has that rule as the type. The type for monadic bind is the Hoare rule for
24+
sequential composition, and the type for monadic unit combines the Hoare rules for the idle
25+
program (in a small-footprint variant) and for variable assignment (adapted for functional
26+
variables). The connection reconciles dependent types with effects of state and exceptions and
27+
establishes Separation logic as a type theory for such effects. In implementation terms, it means
28+
that HTT implements Separation logic as a shallow embedding in Coq."""
29+
30+
build: [make "-C" "examples" "-j%{jobs}%"]
31+
install: [make "-C" "examples" "install"]
32+
depends: [
33+
"coq" {>= "8.19"}
34+
"coq-mathcomp-ssreflect" {>= "2.2.0"}
35+
"coq-hierarchy-builder" {>= "1.7.0"}
36+
"coq-mathcomp-algebra"
37+
"coq-mathcomp-fingroup"
38+
"coq-fcsl-pcm" {>= "2.1.0"}
39+
"coq-htt-core" {= version}
40+
]
41+
42+
tags: [
43+
"category:Computer Science/Data Types and Data Structures"
44+
"keyword:partial commutative monoids"
45+
"keyword:separation logic"
46+
"logpath:htt"
47+
]
48+
49+
authors: [
50+
"Aleksandar Nanevski"
51+
"Germán Andrés Delbianco"
52+
"Alexander Gryzlov"
53+
"Marcos Grandury"
54+
]
55+
56+
url {
57+
src: "git+https://github.com/imdea-software/htt.git#master"
58+
}
59+

released/packages/coq-fcsl-pcm/coq-fcsl-pcm.2.1.0/opam

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ This library relies on propositional and functional extentionality axioms."""
2121
build: [make "-j%{jobs}%"]
2222
install: [make "install"]
2323
depends: [
24-
"coq" { (>= "8.19" & < "9.1~") | (= "dev") }
25-
"coq-mathcomp-ssreflect" { (>= "2.2.0" & < "2.4~") | (= "dev") }
26-
"coq-hierarchy-builder" { (>= "1.7.0" & < "1.9~") | (= "dev") }
24+
"coq" {>= "8.19" & < "9.1~"}
25+
"coq-mathcomp-ssreflect" {>= "2.2.0" & < "2.4~"}
26+
"coq-hierarchy-builder" {>= "1.7.0" & < "1.9~"}
2727
"coq-mathcomp-algebra"
2828
]
2929

released/packages/coq-htt-core/coq-htt-core.2.1.0/opam

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ that HTT implements Separation logic as a shallow embedding in Coq."""
3030
build: [make "-C" "htt" "-j%{jobs}%"]
3131
install: [make "-C" "htt" "install"]
3232
depends: [
33-
"coq" { (>= "8.19" & < "9.1~") | (= "dev") }
34-
"coq-mathcomp-ssreflect" { (>= "2.2.0" & < "2.4~") | (= "dev") }
33+
"coq" {>= "8.19" & < "9.1~"}
34+
"coq-mathcomp-ssreflect" {>= "2.2.0" & < "2.4~"}
3535
"coq-mathcomp-algebra"
3636
"coq-mathcomp-fingroup"
37-
"coq-fcsl-pcm" { (>= "2.1.0" & < "2.2~") | (= "dev") }
37+
"coq-fcsl-pcm" {>= "2.1.0" & < "2.2~"}
3838
]
3939

4040
tags: [

released/packages/coq-htt/coq-htt.2.1.0/opam

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ that HTT implements Separation logic as a shallow embedding in Coq."""
3030
build: [make "-C" "examples" "-j%{jobs}%"]
3131
install: [make "-C" "examples" "install"]
3232
depends: [
33-
"coq" { (>= "8.19" & < "9.1~") | (= "dev") }
34-
"coq-mathcomp-ssreflect" { (>= "2.2.0" & < "2.4~") | (= "dev") }
33+
"coq" {>= "8.19" & < "9.1~"}
34+
"coq-mathcomp-ssreflect" {>= "2.2.0" & < "2.4~"}
3535
"coq-mathcomp-algebra"
3636
"coq-mathcomp-fingroup"
37-
"coq-fcsl-pcm" { (>= "2.1.0" & < "2.2~") | (= "dev") }
37+
"coq-fcsl-pcm" {>= "2.1.0" & < "2.2~"}
3838
"coq-htt-core" {= version}
3939
]
4040

0 commit comments

Comments
 (0)