Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Experiences using double-negation elimination (dec_not_not)

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Experiences using double-negation elimination (dec_not_not)


Chronological Thread 
  • From: Nathaniel Yazdani <nyazdani AT cs.washington.edu>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Experiences using double-negation elimination (dec_not_not)
  • Date: Tue, 19 Dec 2017 15:58:02 -0800
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=nyazdani AT cs.washington.edu; spf=None smtp.mailfrom=nyazdani AT cs.washington.edu; spf=None smtp.helo=postmaster AT mail-pf0-f178.google.com
  • Ironport-phdr: 9a23:8u+spxSwi7Z8JJqjAGQHTvLZmtpsv+yvbD5Q0YIujvd0So/mwa6yZxCN2/xhgRfzUJnB7Loc0qyK6/mmATRIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfa5+IA+qoQnNq8IbnZZsJqEtxxXTv3BGYf5WxWRmJVKSmxbz+MK994N9/ipTpvws6ddOXb31cKokQ7NYCi8mM30u683wqRbDVwqP6WACXWgQjxFFHhLK7BD+Xpf2ryv6qu9w0zSUMMHqUbw5Xymp4qF2QxHqlSgHLSY0/mHLhcN/kaxVrhyhqQJ9zIDXZ4+YL+Bxcr/Yfd4ARWpNQsRcWipcCY28dYsPCO8BMP5AoYbnu1sOrQGxBQ+tBOzxzj9Dm3350rc70us8Cw7G2g0gFM8JvXTSrNT6LqYTXv2vw6nOzDXOdO9Z2Szn5InGaB8huvGMXbN2ccre1UkvEAXFgk+OpoP4IjOYz+IAuHWV4epnUOKgkW8nqwdprzezwccskI/JiZwRylDA7yl23ps6JcCgRE50YN6kDJtQtzyBOIdsXswiRGRotSAnwbMFoZ62ZDYGxIgjyhLFaPGKc5KE7g/nWeqPOzt0mXBodbGnixu28kWs0PPwW8a13VpQqidJjMPAu3EM2hHV98OJUOFy/l271jaKzw3T6v9LIUQzlafDLp4u2L8wlp4KvUTbEC/6hFz6jKGLekgm+eWk8evnYrLhpp+TM497lBvyPbgpmsy6Geg4Mw4OUHaH+emkyrHv4Un0TK9Jg/A2iKXVrZTXKdoBqqKkAQJY0Z4v6xOlADen1NQYk2MHLFVAeB+fiYjoO0vBIfHlAvilhVSskSxmyOzdPrH7DJTCNGPDkLfgfbZ75E5c1A0zzdZF651KF74BPer/WlXtu9zAEh85Lwu0zv77B9V6z4MSQH6AAquEMKzJqlKI/eIuI+yUZIAPojr9Kv4l5+TvjXAjg1Mdc7OpjtMrbyWzGe0jKEGEa1LthM0AGCEEpFkQVuvv3XuLTT5aYXe/W+oN7yM3AYSnRdPFV4m/jLWH3Q+wBdtJb3tGC1aDDXDuMYiIRqFfO2qpPsZ9n2lcBvCaQIg72ET2uQ==

This great, exactly what we were looking for. Thanks for the information!

Best,
Nate

On Dec 19, 2017, at 2:55 PM, Abhishek Anand <abhishek.anand.iitg AT gmail.com> wrote:

A typical usage in my experience is illustrated in the following file of the CoRN library:

It shows that double negation (DN) is a monad. 
Also note (in the above file) the following lemma (note that P is an arbitrary (possibly undecidable) proposition):

Lemma DN_decisionT (P: Type): DN (P + (P->False)).
Proof. firstorder. Qed.

Roughly speaking, if we have to prove propositions that are known to be stable (P is stable := (~~P) -> P), we can use the excluded middle principle in our constructive proofs.
Coq.Logic.Decidable.dec_not_not can be used to weaken a goal P to ~~P and thus enter the DN monad where it is possible to make cases on undecidable propositions (e.g. equality of functions of type nat -> nat)

The above file also shows that stability is closed under conjunction and universal quantification.
(Stability is not closed under disjunction or existential quantification. Intuitively, constructive proofs of those propositions have non-trivial extra information.)


On Sun, Dec 17, 2017 at 8:17 PM, Nathaniel Yazdani <nyazdani AT cs.washington.edu> wrote:
Hi,

Would anyone mind sharing past instances in which they’ve used constructive double-negation elimination (i.e., Coq.Logic.Decidable.dec_not_not) in a Coq proof? Either experience summaries or examples of proofs themselves (if you don’t mind sharing) would be much appreciated.

I’m working with several colleagues on an automated tool to assist with proof evolution. The tool works by analyzing proof terms, and we’ve noticed that the analysis is ineffective on terms produced by the omega tactic, due to its use of dec_not_not. We would like to gather examples of how dec_not_not is used in other kinds of proofs, so that we can design a more robust approach to handling it.

Thanks,
Nate Yazdani





Archive powered by MHonArc 2.6.18.

Top of Page