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: Agnishom Chattopadhyay <agnishom AT cmi.ac.in>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] meaning of formal specifications
  • Date: Mon, 25 Jan 2021 10:01:28 -0600
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=agnishom AT cmi.ac.in; spf=Pass smtp.mailfrom=agnishom AT cmi.ac.in; spf=None smtp.helo=postmaster AT mail.cmi.ac.in
  • Ironport-phdr: 9a23:N0F31hVZ1ETidqip9Xy4uchXd4/V8LGtZVwlr6E/grcLSJyIuqrYbB2Bt8tkgFKBZ4jH8fUM07OQ7/mxHzZbqsrd+DBaKdoQDkBD0Z1X1yUbQ+e9QXXhK/DrayFoVO9jb3RCu0+BDE5OBczlbEfTqHDhpRQbGxH4KBYnbr+tQt2agMu4zf299IPOaAtUmjW9falyLBKrpgnNq8Uam4RvJrs1xxfTvHdFdetayGxnKFmOmxrw+tq88IRs/ihNuf8t7dJMXbn/c68lUbFWETMqPnwv6sb2rxfDVwyP5nUdUmUSjBVFBhXO4Q/5UJnsrCb0r/Jx1yaGM8L4S7A0Qimi4LxwSBD0kicHNiU2/3/Rh8dtka9UuhOhpxh4w47JfIGYMed1c63Bcd8GQ2dKQ8BcXDFDDIyhdYsCF+UOPehaoIf9qVUArgawCxewC+700DBEmmX70Lcm3+g9EwzL2hErEdIUsHTTqdX4LLsfUe+zzKnJ1jXDb/RW2TLg44XWchAuu+2MXa53ccrJ00YgCgPFj1WKpo3lIjiY0f4Cs2ed7+phTuKvi2knqwRqrzezw8csi5PFiZgJxVze9CV5xp84KNulQ0F0fdCqCoFftz2GN4RoWMMiRXlltig6xLAEtpC2YSYExYglyhPba/KKc4eF7BL/WOuVLzl1hHZodbO/iRqs7UWtyPHwWtS03VtOrydIncfAu24D2RHV98OJRPx9/kK71jaO0QDe8vxEIVgqmqrdLZ4t2KA/mYcOsUnFAyT4m132gbeLekk5+uWk8frrb7rlq5OGKYN4lxvyPrktl8CjGeg0LBQCUmyB9em/1LDv51D1TbRLg/EskqTUvpbXLtkBqKGjGQ9ayIMj5g6/Dzi41NQYmmEKLFdfdxKGi4jlIU3BIPX5DfulmVujjC1nx/HAPrH5A5XNKGbMkKv5cLpg9kJRyBA/wc5Q6p9XEL0NPu//VlXsuNHbEhM1Kwm0zPzmCNV52IMeQ2WPAqqBPazIvl+I4OMvI/KMZI8SvTbwMOQq5/vvjXMjg1ASYbOl3ZoRaHygBPRpP12ZYWbwgtcGCWoFog0+TPXzhFKeVT5Tem29Urkn5jA7DYKmFZ3MSpqsgLyHxie7H4dZanpIClCWQj/UcNCPXO5JYyaPKOdglCYFXP6vUdwPzxar4Sb1zbt8Lu3RsgYYvI7/08B86+3CnAB6oTV7CcWG02aIZ2pxnyUBTHk32vYs8gRG1l6f3P0g0LRjHttJ6qYRC1toBdvn1+V/TuvKdEfZZN7QEQStR9TgCDp3T9Rjm4ZTMXY4IM2ri1X45wTvA7IRkOXVVpk986aa1H3wYc92jXfAhvF43gsWB/BXPGjjvZZRsg3aBorHiUKczv/4fqEdmifGsmaFnzOD

Sometimes the specification part of a formal verification project can be intertwined with the implementation. For example, Hindley-Milner style types (e.g, Haskell/ML) are a form of promise (formal specification) that a piece of code does something (e.g, returns an Int given an Int). It is possible to extend the type system in ways that makes this sort of specification more precise. You can do this using Sigma types and so on.

In some sense, Coq works in this manner. Just to clear up a misconception, Coq proofs are not all about LTac. The LTac scripts are essentially metaprograms that generate a term in Gallina, the same language in which you'd usually write the datatypes and function definitions.

On Mon, Jan 25, 2021 at 9:39 AM 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

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.

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