Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] meaning of formal specifications

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] meaning of formal specifications


Chronological Thread 
  • From: Xavier Leroy <Xavier.Leroy AT inria.fr>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] meaning of formal specifications
  • Date: Mon, 25 Jan 2021 18:12:56 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=Xavier.Leroy AT inria.fr; spf=Pass smtp.mailfrom=xavier.leroy AT gmail.com; spf=None smtp.helo=postmaster AT mail-wr1-f49.google.com
  • Ironport-phdr: 9a23:UraxRB9OOPE2h/9uRHKM819IXTAuvvDOBiVQ1KB31eMcTK2v8tzYMVDF4r011RmVBNSdsakP17ae8/i5HzBZvtDZ6DFKWacPfidNsd8RkQ0kDZzNImzAB9muURYHGt9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3wOgVvO+v6BJPZgdip2OCu4Z3TZBhDiCagbb9oIxi6sAHcutMIjYZsJao8xRTEqWZMd+hK2G9kP12ekwv+68uq4JJv7yFcsO89+sBdVqn3Y742RqFCAjQ8NGA16szrtR3dQgaK+3ARTGYYnAdWDgbc9B31UYv/vSX8tupmxSmVJtb2QqwuWTSj9KhkVhnlgzoaOjEj8WHXjstwjL9HoB+kuhdyzZLYbJ2TOfFjeK7WYNEUSndbXstJWCNBDIGzYYsBAeQCIOhWsZXyqkAUoheiHwShHv/jxiNKi3LwwKY00/4hEQbD3AE4Ht0BqmrUrNTrO6cITOu7yrfHzS/Eb/JWxDzw74nHfQo/ofGNQ71wa9Ddx08xGAPfiVWRqZfoPzKT1uQXsmiU9fBsVey1i2M+rQx6vzegyNs2hIbTmoIV1k7L9T9/wIstO9C0VEp2b9G5HJZSuSyXK5d7TMwgTm11pio21KMLtJ6/cSYK1pgq2wPSZviJfoWH7BzuW/qcLSp4in9mZL+ygxC/+lWuxO37U8m7yldKrixdn9nRrnACyRrT6s6dRvRj40ihxDCC3B3Q5OFcOU04i7bXJpo7zrMzlpcfq1rPEjHrlEnsg6KbckMp8fWy5ev9eLXpvJqcOpd0ig7gNqQundSyAeEiPQgPW2iX4Oq91Kf+8UHgTrVHgfk7nrPWsJDdIsQbqaq5DBFP3ok/7Ba/Ci+q0NUenXYZMFJIYAyLg5TtNl3UI/31De2zj0qynDt23fzLMbnsDo3ILnfZkbfhebh961RbyAo21d1e6IhbCq8AIP3tQE/9rtjYAQEjMwyzw+fqE9p91oYEVmKOBq+VKr/dsViN5u43OemDeJcVuCrhK/gi//PhkXg5mUYEcaa12ZsXdWu3E+99I0SZZHrsms0OHX0Lvgo4VuzqiUeNXSRdZ3aoDOoA4WQwD5vjBoPeTKishqaA1WG1BM54fGdDX2CFD3blbc2gVu0LeWrGEsZ/kzEeE5ysUYgw/RCorg7zjbR9eLmHshYEvI7ugYAmr9bYkgs/oGQtXpatllqVRmQxpVsmAjo/3aRxu0t4kw7R3q1xgvgeHttWtaoQD1UKcKXExuk/MOjcHwLMetDTFQSjS9SiRC4rF5c/n45IbEF6FNGvyBvE2njyWuNHp/mwHJUxt5nk8T3pPc8kkyTH0rMghh8oWJkXOA==

On Mon, Jan 25, 2021 at 4:39 PM Fritjof <fritjof AT uni-bremen.de> wrote:
Hi,

I have a question regarding what formal specification exactly means in the
proof assistant context.

First *formal verification* means an implementation satisfies its formal specification.
The satisfiability is shown using formal methods of mathematics, e.g., a constructed proof
in Coq.

So we have the following terms:

1) implementation
2) formal specification
3) constructed proofs

In the context of proof assistants, e.g., Coq, I would describe:

1) implementation - as the *program*, collection of function definitions and data types
2) formal specification - as the properties that argue about the program, e.g., theorems, lemmas or axioms
3) constructed proofs - statements of the LTac language

(or any other way to construct proof terms, by the way.)

I agree with your description above.

However, I have also read that the implementation part is referred to as a formal specification:
- https://www.cis.upenn.edu/~bcpierce/papers/pierce-etaps2018.pdf

or the combination of 1,2 and 3 is referred to as a formal specification, like in: a program in haskell
is extracted from this formal specification.

In a stepwise refinement approach (which the DeepSpec project is, to some extent), the implementation of refinement step N is the specification of step N+1. 
 
Maybe code extraction / automatic code generation is not the best example of a refinement step, causing some confusion in terminology.

Hope this helps,

- Xavier Leroy



Am I right, that the term *formal specification* often donetes the combination of 1,2 and 3, or just 1
or am I  missing something?

Kind Regards,
fritjof




Archive powered by MHonArc 2.6.19+.

Top of Page