# Packages matching: installed # Name # Installed # Synopsis base-bigarray base base-threads base base-unix base conf-findutils 1 Virtual package relying on findutils conf-m4 1 Virtual package relying on m4 coq 8.11.dev Formal proof management system num 1.3 The legacy Num library for arbitrary-precision integer and rational arithmetic ocaml 4.08.1 The OCaml compiler (virtual package) ocaml-base-compiler 4.08.1 Official release 4.08.1 ocaml-config 1 OCaml Switch Configuration ocamlfind 1.8.1 A library manager for OCaml # opam file: opam-version: "2.0" authors: [ "Sylvain Boulmé" ] maintainer: "kartiksinghal@gmail.com" homepage: "https://github.com/coq-community/hoare-tut" dev-repo: "git+https://github.com/coq-community/hoare-tut.git" bug-reports: "https://github.com/coq-community/hoare-tut/issues" license: "LGPL-3.0-or-later" synopsis: "A Tutorial on Reflecting in Coq the generation of Hoare proof obligations" description: """ Hoare logics are "program logics" suitable for reasoning about imperative programs. This work is both an introduction to Hoare logic and a demo illustrating Coq nice features. It formalizes the generation of PO (proof obligations) in a Hoare logic for a very basic imperative programming language. It proves the soundness and the completeness of the PO generation both in partial and total correctness. At last, it examplifies on a very simple example (a GCD computation) how the PO generation can simplify concrete proofs. Coq is indeed able to compute PO on concrete programs: we say here that the generation of proof obligations is reflected in Coq. Technically, the PO generation is here performed through Dijkstra's weakest-precondition calculus. """ build: [make "-j%{jobs}%" ] install: [make "install"] depends: [ "coq" {>= "8.8"} ] tags: [ "category:Mathematics/Logic/See also" "category:Computer Science/Semantics" "category:Compilation/Semantics" "keyword:Hoare logic" "keyword:imperative program" "keyword:weakest precondition" "keyword:reflection" "logpath:HoareTut" ] url { src: "https://github.com/coq-community/hoare-tut/archive/v8.11.1.tar.gz" checksum: [ "md5=a7d240c73b36b91d4e703dfa75de7aaf" "sha512=146bf09aea7bb98b430148113426c6c85e9b69c9d5b8c9c509bb56a1e85392f7511568b37a091b1384ced9f866b75bd7e2b49dc6cfac2309fab5383e0443698f" ] }
true
Dry install with the current Coq version:
opam install -y --show-action coq-hoare-tut.8.11.1 coq.8.11.dev
Dry install without Coq/switch base, to test if the problem was incompatibility with the current Coq/OCaml version:
true
opam list; echo; ulimit -Sv 4000000; timeout 2h opam install -y --deps-only coq-hoare-tut.8.11.1 coq.8.11.dev
opam list; echo; ulimit -Sv 16000000; timeout 2h opam install -y -v coq-hoare-tut.8.11.1 coq.8.11.dev
Total: 439 K
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/exgcd.vo
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/totalhoarelogic.vo
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/hoarelogicsemantics.vo
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/hoarelogic.vo
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/partialhoarelogic.vo
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/totalhoarelogic.glob
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/exgcd.glob
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/hoarelogicsemantics.glob
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/hoarelogic.glob
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/totalhoarelogic.v
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/partialhoarelogic.glob
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/hoarelogicsemantics.v
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/exgcd.v
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/partialhoarelogic.v
../ocaml-base-compiler.4.08.1/lib/coq/user-contrib/HoareTut/hoarelogic.v
opam remove -y coq-hoare-tut.8.11.1