Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] arg-min existential instantiation of an inequality

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] arg-min existential instantiation of an inequality


Chronological Thread 
  • From: David Asher <asher AT informatik.hu-berlin.de>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] arg-min existential instantiation of an inequality
  • Date: Wed, 16 Mar 2016 17:09:55 +0100
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=asher AT informatik.hu-berlin.de; spf=Pass smtp.mailfrom=asher AT informatik.hu-berlin.de; spf=None smtp.helo=postmaster AT mailout1.informatik.hu-berlin.de
  • Ironport-phdr: 9a23:T0XoRRZ/fLyN5+e1z8bD46T/LSx+4OfEezUN459isYplN5qZpci+bnLW6fgltlLVR4KTs6sC0LqG9fi6Ejxaqb+681k8M7V0HycfjssXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aJBzzOEJPK/jvHcaK1oLsh7D0o8eYM18ArQH+SI0xBS3+lR/WuMgSjNkqAYcK4TyNnEF1ff9Lz3hjP1OZkkW0zM6x+Jl+73YY4Kp5pIYTGZn9Kq8/VPlTCCksG2Ez/szi8xfZHiWV4X5JfmwIkxYAKhPF4QuyCp7qsibgnut71i6AOMTqTLNyWSnn5apxTB7uzisKYW1quFrLg9B92foI6CmqoAZyltbZ



On 03/16/2016 04:09 PM, Emilio Jesús Gallego Arias wrote:
Dear David,

David Asher <asher AT informatik.hu-berlin.de> writes:

I asked a similar question a while ago. I have an existentially
quantified Proposition in my hypothesis set, say "exists x, f(x) <
g(x)", where f and g are functions of type "{x : nat | x < n} ->
nat". Now I want, as I did my pencil and paper proof, to instantiate x
such that "f(x) < g(x)" holds and for every y < x implies that
f(y)>=g(y). In other words I'm trying to proof the following:

Variable x : nat.
Variable f : {n : nat | n < x} -> nat.
Variable g : {n : nat | n < x} -> nat.

Lemma arg_min_inequality : forall x,
   (f x < g x) -> (exists x, f x < g x /\
                             forall y, f y < f x -> f y >= g y).
How does the paper proof look?
It is an indirect proof. My actual proof goal is "forall x, f(x)>=g(x)". From the opposite assumption "exists x, f(x)<g(x)" plus the statement that x to be chosen s.t. f(x) is minimal, I can derive a contradiction.

It is enough to assume that either such a minimal element exists, and if
not derive a contradiction from non-existance?

If that is the case, the following code may help:

 From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat seq choice fintype.

Variable n : nat.
Variable f : 'I_n -> nat.
Variable g : 'I_n -> nat.

Lemma arg_min_inequality x (f_lt_g : f x < g x) :
   exists m, (f m < g m) &&
             [forall y, (f y < f m) ==> (g y <= f y)].
Proof.
pose P m := (f m < g m) && [forall y, (f y < f m) ==> (g y <= f y)].
case: (pickP P) => [m pm|]; first by exists m.
rewrite /P {P} => h.

E.

(Available online at https://x80.org/collacoq/osipiyesim.coq)

Therefore I'm not sure if I can derive a contradiction from assuming the non-existence.

David




Archive powered by MHonArc 2.6.18.

Top of Page