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: Abhishek Anand <abhishek.anand.iitg AT gmail.com>
  • To: coq-club <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] arg-min existential instantiation of an inequality
  • Date: Wed, 16 Mar 2016 12:21:13 -0400
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=abhishek.anand.iitg AT gmail.com; spf=Pass smtp.mailfrom=abhishek.anand.iitg AT gmail.com; spf=None smtp.helo=postmaster AT mail-yw0-f181.google.com
  • Ironport-phdr: 9a23:2YR8nhRaA2hELW47gYwIc3eVSNpsv+yvbD5Q0YIujvd0So/mwa64YRyN2/xhgRfzUJnB7Loc0qyN4/CmATZLscvJmUtBWaIPfidNsd8RkQ0kDZzNImzAB9muURYHGt9fXkRu5XCxPBsdMs//Y1rPvi/6tmZKSV3BPAZ4bt74BpTVx5zukbviq9uLOU4Y2XKUWvBbElaflU3prM4YgI9veO4a6yDihT92QdlQ3n5iPlmJnhzxtY+a9Z9n9DlM6bp6r5YTGfayQ6NtRrtBST8iLmp9sMbsrFzISRaFznoaSGQf1BRSVVvr9hb/C777sirhtud+kACcNMv6BeQ9UzSj9KdmS1nhji4BO3g48X3YosN1haNf5hmmokoskMbvfIiJOa8mLevmdtQASD8ZUw==

Your functions f and g have a finite domain. So you can write down a recursive function that computes f and g for all possible inputs and gives you the input you are after.


On Wed, Mar 16, 2016 at 9:35 AM, David Asher <asher AT informatik.hu-berlin.de> wrote:
Dear Coq-Club,

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).

I suspect that the answer will have to do something with well founded induction on natural numbers. At least that was the answer to my previous question, where I wanted to know how to instantiate x for a Relation s.t. x is minimal. Xavier Leroy pointed me into the right direction to use well-founded induction on natural numbers with the lt-relation:

Lemma P_upto_n_dec:
forall n, (exists m, m < n /\ P m) \/ (forall m, m < n -> ~ P m).
Proof.
intros.
destruct (classic(exists m, m < n /\ P m)) ; firstorder.
Qed.

Lemma minimal_exists:
forall n, P n -> exists m, P m /\ forall p, p < m -> ~ P p.
Proof.
induction n using lt_wf_ind; intros.
destruct (P_upto_n_dec n) as [[m [A B]] | C].
- eauto.
- exists n; auto.
Qed.

However, I think for my Problem this won't work. I suspect, I have to define my own relation, proving that it is well-founded and than using this relation in order to perform a well-founded induction on natural numbers. Unfortunately I don't have any clue how to do this.

Thank you
David




Archive powered by MHonArc 2.6.18.

Top of Page