diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | site/index.org | 8 | ||||
-rw-r--r-- | site/posts/StronglySpecifiedFunctions.org | 17 | ||||
-rw-r--r-- | site/posts/StronglySpecifiedFunctionsProgram.v | 2 | ||||
-rw-r--r-- | site/posts/StronglySpecifiedFunctionsRefine.v (renamed from site/posts/StronglySpecifiedFunctions.v) | 2 |
5 files changed, 23 insertions, 9 deletions
@@ -35,7 +35,7 @@ site/posts/AlgebraicDatatypes.html site/posts/StronglySpecifiedFunctionsProgram.html site/posts/LtacPatternMatching.html site/posts/ClightIntroduction.html -site/posts/StronglySpecifiedFunctions.html +site/posts/StronglySpecifiedFunctionsRefine.html site/posts/RewritingInCoq.html site/posts/LtacMetaprogramming.html site/posts/MixingLtacAndGallina.html @@ -51,6 +51,7 @@ site/cleopatra.html site/projects/index.html site/posts/Thanks.html site/posts/DiscoveringCommonLisp.html +site/posts/StronglySpecifiedFunctions.html site/posts/ExtensibleTypeSafeErrorHandling.html site/posts/CleopatraV1.html site/posts/Ltac.html diff --git a/site/index.org b/site/index.org index 22fa452..263395e 100644 --- a/site/index.org +++ b/site/index.org @@ -22,17 +22,13 @@ Coq is a formal proof management system which provides a pure functional language with nice dependent types together with an environment for writing machine-checked proofs. -- A Series on Strongly-Specified Funcions in Coq :: +- [[./posts/StronglySpecifiedFunctions.org][A Series on Strongly-Specified Funcions in Coq]] :: Using dependent types and the ~Prop~ sort, it becomes possible to specify functions whose arguments and results are constrained by properties. Using such a “strongly-specified” function requires to provide a proof that the supplied arguments satisfy the expected properties, and allows for soundly assuming the results are correct too. However, implementing dependently-typed - functions can be challenging. In this series, we explore several approaches - available to Coq developers. - - 1. [[./posts/StronglySpecifiedFunctions.html][Using the ~refine~ Tactics]] - 2. [[./posts/StronglySpecifiedFunctionsProgram.html][Using the ~Program~ Framework]] + functions can be challenging. - [[./posts/Ltac.org][A Series on Ltac]] :: Ltac is the “tactic language” of Coq. It is commonly advertised as the common diff --git a/site/posts/StronglySpecifiedFunctions.org b/site/posts/StronglySpecifiedFunctions.org new file mode 100644 index 0000000..9bd488d --- /dev/null +++ b/site/posts/StronglySpecifiedFunctions.org @@ -0,0 +1,17 @@ +#+OPTIONS: toc:nil num:nil + +#+BEGIN_EXPORT html +<h1>A Series on Strongly-Specified Functions in Coq</h1> +#+END_EXPORT + +Using dependent types and the ~Prop~ sort, it becomes possible to specify +functions whose arguments and results are constrained by properties. Using such +a “strongly-specified” function requires to provide a proof that the supplied +arguments satisfy the expected properties, and allows for soundly assuming the +results are correct too. However, implementing dependently-typed functions can +be challenging. In this series, we explore several approaches available to Coq +developers. + +- [[./StronglySpecifiedFunctionsRefine.html][Using the ~refine~ Tactics]] :: + +- [[./StronglySpecifiedFunctionsProgram.html][Using the ~Program~ Framework]] :: diff --git a/site/posts/StronglySpecifiedFunctionsProgram.v b/site/posts/StronglySpecifiedFunctionsProgram.v index f7f84df..8ffb70c 100644 --- a/site/posts/StronglySpecifiedFunctionsProgram.v +++ b/site/posts/StronglySpecifiedFunctionsProgram.v @@ -3,7 +3,7 @@ This is the second article (initially published on #<span id="original-created-at">January 01, 2017</span>#) of a series of two on how to write strongly-specified functions in Coq. You can read the previous part - #<a href="./StronglySpecifiedFunctions.html">here</a>#. # *) + #<a href="./StronglySpecifiedFunctionsRefine.html">here</a>#. # *) (** #<div id="generate-toc"></div># diff --git a/site/posts/StronglySpecifiedFunctions.v b/site/posts/StronglySpecifiedFunctionsRefine.v index 5d0e69a..d9bb3aa 100644 --- a/site/posts/StronglySpecifiedFunctions.v +++ b/site/posts/StronglySpecifiedFunctionsRefine.v @@ -21,7 +21,7 @@ #<div id="generate-toc"></div># - #<div id="history">site/posts/StronglySpecifiedFunctions.v</div># *) + #<div id="history">site/posts/StronglySpecifiedFunctionsRefine.v</div># *) (** ** Is this list empty? *) |