Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] nth element of a vector

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] nth element of a vector


Chronological Thread 
  • From: Fritjof Bornebusch <fritjof AT uni-bremen.de>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] nth element of a vector
  • Date: Thu, 21 May 2020 12:41:34 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=fritjof AT uni-bremen.de; spf=Pass smtp.mailfrom=fritjof AT uni-bremen.de; spf=None smtp.helo=postmaster AT gabriel-vm-2.zfn.uni-bremen.de
  • Ironport-phdr: 9a23:y6BhtRzfJ7BOwbjXCy+O+j09IxM/srCxBDY+r6Qd2u4SIJqq85mqBkHD//Il1AaPAdyGrasd0qGM4+jJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fcbglVhDexe65+IAiroQneqMUbgpZpJ7osxBfOvnZGYfldy3lyJVKUkRb858Ow84Bm/i9Npf8v9NNOXLvjcaggQrNWEDopM2Yu5M32rhbDVheA5mEdUmoNjBVFBRXO4QzgUZfwtiv6sfd92DWfMMbrQ704RSiu4qF2QxLulSwJNSM28HvPh8J+jKxVvg+vqR9xw4HbfI6aKfVwcaHGcNMGRmdMRNpdWzBdDo6+aYYEEuoPPfxfr4n4v1YArQG+BQiwBOPtzT9IiGL90LA90+Q7FwHJwhcvH88VsHvIrNX+KaAfUe6vzKnJ0TXDbfRW2Tnm5YjVdBAhoOiAUqlqccXPzEkgCQXFgk+NpoP7Jj6Y0PkGvGeH4eR6T+2vl3InpB9rojip3sogl5fEi4IWx13Z9ih3zps5KNm8RUN/f9OqHplduiOEOodrRs4uXWBltiY1x7MIt5O2eCcExZA5yxDRd/GKcZSE7xT+X+ifJjd4gWhqeLO5hxuq6kigy+L8Vs+q31lXoCdJjMPAtnEL1xzP8sSHRfp9/luh2TaSzA/f8P1LIUcxlabDKp4hxKQwlpsJvkjZEC/2gkP7h7KVeEU84uWk9urqb7r8qpOBK4N4lBvyP6QylsClHOg1MBACUmuF9eimyrHv4U/0TK9UgvEoj6XVqpDXKMQdq6WkGQFayJwj5Ay6Dzq+0NQXg30HLFVddRKIlYfmIEvOIPHmAve7mlisjjJry+nYMrH7A5TNIH7DnK38fbZ76k5Q0RE8zcpB6JJRFL4BJuj/VVLvu9DADx85NRK7w/r/Bdlg2I4TVniDDrKFPK/Mq1OF5v4jL/ORaIIXoDr9LuIq5//qjX83g18deqyp0IMZaHCiH/RmP0eZYX3igtoaDGcKuAs+QPXxh12YTzFTYmi9X6Qm6j4mFo2qFZ3DSZy1gLydwCe7GYVbaXxBClCVCHvna4GEW+oXZy+JOc9gkjkEVaC7RIM71BGushX6y7t9IebO9C0Yr8Gr6N8g7OrK0Bo26DZcDsKH0mjLQXsnsHkPQmoYxqFjo0tzgn2Ey651ieFDHtwbs/1TUxs4MpD00up7TtroVwfMeJGFRQD1EZ2dHTgtQ4dpkJc1aEFnFoD610GR72+RG7YQ0oezKtkx+6PY0WL2Ip8gmWvA1ewrlVQjT80JOWD03/cipTiWPJbAlgCir4jvdakY23WXpmiKx3CPsUUdTgs1C+PXU3ZZe03X6N7j60bPSfmiBOZ/a1cT+Yu5MqJPL+bRoxBeXv66ZYbDZWP0kX29ABuOgL+BPtLn

Hi,

thank you for your answers.

My current solution is:

Definition minusone := Types.Signed32.repr (-1).
Notation "-1" := minusone : my_scope. (* default value for List.nth_default
*)

Definition SignedVector := Vector.t Types.Signed32.int.
Definition getAt (index : Types.Signed32.int) (vector: SignedVector(32)) :
Types.Signed32.int :=
List.nth_default (-1) (Vector.to_list vector) (Z.to_nat
(Types.Signed32.unsigned index)).

Compute (getAt (Types.Signed32.repr 0) initialRegisters). (* = {|

Types.Signed32.intval := 1;

Types.Signed32.intrange := Types.Signed32.Z_mod_modulus_range' 1 |}
:
Types.Signed32.int
*)

Compute (getAt (Types.Signed32.repr 64) initialRegisters). (* = {|

Types.Signed32.intval := 4294967295;

Types.Signed32.intrange := Types.Signed32.Z_mod_modulus_range' (-1) |}
:
Types.Signed32.int
*)

The Signed32.int type comes from CompCerts integer library:
https://github.com/AbsInt/CompCert/blob/master/lib/Integers.v

Best Regards,
--f.

On Wed, May 20, 2020 at 08:23:33PM +0200, Dominique Larchey-Wendling wrote:
> Vector.to_list ?
>
> Le 20 mai 2020 18:15:53 GMT+02:00, Fritjof Bornebusch
> <fritjof AT uni-bremen.de> a écrit :
>
> On Wed, May 20, 2020 at 05:29:19PM +0200, Dominique Larchey-Wendling wrote:
>
> Quick fix ... project your vector into a list ;-)
>
> Interessting, do you know any function that does that for me?
>
> ----- Mail original -----
>
> De: "Fritjof Bornebusch" <fritjof AT uni-bremen.de>
> À: "coq-club" <coq-club AT inria.fr>
> Envoyé: Mercredi 20 Mai 2020 17:15:33
> Objet: [Coq-Club] nth element of a vector
>
> Hi there,
> I'm looking for a function that iterates over a vector -
> [1]https://coq.inria.fr/library/Coq.Vectors.Vector.html - and
> returns
> the Zth element, like the nth element of a list.
> The library function only dealy with the Fin.t type, but I need Z.
> Does anyone has a suggestion or hint?
> Best Regards,
> --f.
>
> --
> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser
> ma brièveté.
>
> References
>
> 1. https://coq.inria.fr/library/Coq.Vectors.Vector.html



Archive powered by MHonArc 2.6.19+.

Top of Page