Skip to content

Commit b6c4102

Browse files
V2.1.0 (#35)
* Preparing coq-htt v2.1.0 for release * preparing coq-htt v2.1.0 for release * Preparing coq-htt v2.1.0 for release * preparing coq-htt v2.1.0 for release * preparing coq-htt v2.1.0 for release
1 parent 8ff85ab commit b6c4102

8 files changed

Lines changed: 40 additions & 14 deletions

File tree

.github/workflows/docker-action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
image:
1818
- 'mathcomp/mathcomp:2.2.0-coq-8.19'
1919
- 'mathcomp/mathcomp:2.3.0-coq-8.20'
20-
- 'mathcomp/mathcomp:latest-coq-dev'
20+
- 'mathcomp/mathcomp-dev:coq-dev'
2121
fail-fast: false
2222
steps:
2323
- uses: actions/checkout@v4

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ that HTT implements Separation logic as a shallow embedding in Coq.
4444
- [MathComp ssreflect 2.2-2.3](https://math-comp.github.io)
4545
- [MathComp algebra](https://math-comp.github.io)
4646
- [MathComp fingroup](https://math-comp.github.io)
47-
- [FCSL-PCM 2.0](https://github.com/imdea-software/fcsl-pcm)
47+
- [FCSL-PCM 2.1](https://github.com/imdea-software/fcsl-pcm)
4848
- [Dune](https://dune.build) 3.6 or later
4949
- Coq namespace: `htt`
5050
- Related publication(s):

coq-htt-core.opam

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
opam-version: "2.0"
55
maintainer: "fcsl@software.imdea.org"
6-
version: "2.0.1"
6+
version: "2.1.0"
77

88
homepage: "https://github.com/imdea-software/htt"
99
dev-repo: "git+https://github.com/imdea-software/htt.git"
@@ -31,14 +31,15 @@ variables). The connection reconciles dependent types with effects of state and
3131
establishes Separation logic as a type theory for such effects. In implementation terms, it means
3232
that HTT implements Separation logic as a shallow embedding in Coq."""
3333

34-
build: ["dune" "build" "-p" name "-j" jobs]
34+
build: [make "-C" "htt" "-j%{jobs}%"]
35+
install: [make "-C" "htt" "install"]
3536
depends: [
3637
"dune" {>= "3.6"}
3738
"coq" { (>= "8.19" & < "8.21~") | (= "dev") }
3839
"coq-mathcomp-ssreflect" { (>= "2.2.0" & < "2.4~") | (= "dev") }
3940
"coq-mathcomp-algebra"
4041
"coq-mathcomp-fingroup"
41-
"coq-fcsl-pcm" { (>= "2.0.0" & < "2.1~") | (= "dev") }
42+
"coq-fcsl-pcm" { (>= "2.1.0" & < "2.2~") | (= "dev") }
4243
]
4344

4445
tags: [

coq-htt.opam

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
opam-version: "2.0"
22
maintainer: "fcsl@software.imdea.org"
3-
version: "2.0.1"
3+
version: "2.1.0"
44

55
homepage: "https://github.com/imdea-software/htt"
66
dev-repo: "git+https://github.com/imdea-software/htt.git"
@@ -28,14 +28,15 @@ variables). The connection reconciles dependent types with effects of state and
2828
establishes Separation logic as a type theory for such effects. In implementation terms, it means
2929
that HTT implements Separation logic as a shallow embedding in Coq."""
3030

31-
build: ["dune" "build" "-p" name "-j" jobs]
31+
build: [make "-C" "examples" "-j%{jobs}%"]
32+
install: [make "-C" "examples" "install"]
3233
depends: [
3334
"dune" {>= "3.6"}
3435
"coq" { (>= "8.19" & < "8.21~") | (= "dev") }
3536
"coq-mathcomp-ssreflect" { (>= "2.2.0" & < "2.4~") | (= "dev") }
3637
"coq-mathcomp-algebra"
3738
"coq-mathcomp-fingroup"
38-
"coq-fcsl-pcm" { (>= "2.0.0" & < "2.1~") | (= "dev") }
39+
"coq-fcsl-pcm" { (>= "2.1.0" & < "2.2~") | (= "dev") }
3940
"coq-htt-core" {= version}
4041
]
4142

examples/llist.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ Lemma lseg_empty (xs : seq A) p q :
6464
Unit \In lseg p q xs ->
6565
p = q /\ xs = [::].
6666
Proof.
67-
by case: xs=>[|x xs][] //= r [h][/esym/umap0E][/unitbP]; rewrite um_unitbU.
67+
by case: xs=>[|x xs][] //= r [h][/esym/join0I][/unitbP]; rewrite um_unitbU.
6868
Qed.
6969

7070
(* reformulation of the specification *)

examples/quicksort.v

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ From mathcomp Require order.
2323
Import order.Order.NatOrder order.Order.TTheory.
2424
Local Open Scope order_scope.
2525

26+
2627
(* Brief mathematics of quickorting *)
2728
(* There is some overlap with mathematics developed for bubblesort *)
2829
(* but the development is repeated here to make the files *)

htt/model.v

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1233,6 +1233,29 @@ Notation "[ 'tryE' x1 , .. , xn ]" :=
12331233
(tryE (existT _ x1 .. (existT _ xn tt) ..))
12341234
(at level 0, format "[ 'tryE' x1 , .. , xn ]").
12351235

1236+
(* backward symbolic execution by one step *)
1237+
Lemma bnd_vrf G A B (pq : A -> spec G B) (g : G) (e1 : ST A)
1238+
(e2 : forall x, STspec G (pq x)) (Q : post B) i :
1239+
vrf i e1 (fun x m =>
1240+
match x with
1241+
Val v => (pq v g).1 m
1242+
| Exn e => valid m -> Q (Exn e) m
1243+
end) ->
1244+
(forall v y m, (pq v g).2 y m -> valid m -> Q y m) ->
1245+
vrf i (bnd e1 e2) Q.
1246+
Proof.
1247+
move=>H1 H2; apply/vrf_bnd/vrf_post/H1=>/= y m V.
1248+
by case: y=>// y H; apply: gE H _ _ => v h; apply: H2.
1249+
Qed.
1250+
1251+
Arguments bnd_vrf {G A B pq} g {e1 e2 Q}.
1252+
1253+
Notation "[bnd_vrf]" := (bnd_vrf tt) (at level 0).
1254+
Notation "[ 'bnd_vrf' x1 , .. , xn ]" :=
1255+
(bnd_vrf (existT _ x1 .. (existT _ xn tt) ..))
1256+
(at level 0, format "[ 'bnd_vrf' x1 , .. , xn ]").
1257+
1258+
12361259
(* Common special case for framing on `Unit`, i.e. passing an *)
12371260
(* empty heap to the routine. For more sophisticated framing *)
12381261
(* variants see the `heapauto` module. *)

meta.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ maintainers:
7272

7373
opam-file-maintainer: fcsl@software.imdea.org
7474

75-
opam-file-version: 2.0.1
75+
opam-file-version: 2.1.0
7676

7777
license:
7878
fullname: Apache-2.0
@@ -88,8 +88,8 @@ tested_coq_opam_versions:
8888
repo: 'mathcomp/mathcomp'
8989
- version: '2.3.0-coq-8.20'
9090
repo: 'mathcomp/mathcomp'
91-
- version: 'latest-coq-dev'
92-
repo: 'mathcomp/mathcomp'
91+
- version: 'coq-dev'
92+
repo: 'mathcomp/mathcomp-dev'
9393

9494
dependencies:
9595
- opam:
@@ -107,9 +107,9 @@ dependencies:
107107
[MathComp fingroup](https://math-comp.github.io)
108108
- opam:
109109
name: coq-fcsl-pcm
110-
version: '{ (>= "2.0.0" & < "2.1~") | (= "dev") }'
110+
version: '{ (>= "2.1.0" & < "2.2~") | (= "dev") }'
111111
description: |-
112-
[FCSL-PCM 2.0](https://github.com/imdea-software/fcsl-pcm)
112+
[FCSL-PCM 2.1](https://github.com/imdea-software/fcsl-pcm)
113113
114114
namespace: htt
115115

0 commit comments

Comments
 (0)