Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Data Structures

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Data Structures


chronological Thread 
  • From: Dimitris Vekris <dvekris AT hotmail.com>
  • To: <coq-club AT pauillac.inria.fr>
  • Subject: [Coq-Club] Data Structures
  • Date: Sun, 15 Mar 2009 22:22:10 +0200
  • Importance: Normal
  • List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>

I have a list of objects with type Data  that has the property:

exists l: nat, such that:
if i < l, func d(i) = m
if i>= l and l < n, func d(i) < m

where n is the length of that list and func a function: Data ->  nat.

This property can be expressed in the hypothesis  following:

Require Import String.
Require Import List.

Inductive Data : Type :=  data : string -> Data.    
Variable func : Data -> nat.

Hypothesis hypothesis_1 :
  forall (m : nat)(dummy : Data)(d : list Data),
    let n := List.length d in
      exists l , l <= n ->
        (forall (i : nat) , i < l -> func (nth i d dummy) = m) ->
        (forall (i : nat) , i >= l /\ i < n -> func (nth i d dummy) < m) .

What I am searching for is a way to express this property inside "list Data". I would also like to get rid of Variable dummy, which expresses nothing in my proof and is a pain in the ass for me when it comes to proving lemmas that are associated with Data.

Thanks in advance!



What can you do with the new Windows Live? Find out



Archive powered by MhonArc 2.6.16.

Top of Page