Frama-C-discuss mailing list archives

This page gathers the archives of the old Frama-C-discuss archives, that was hosted by Inria's gforge before its demise at the end of 2020. To search for mails newer than September 2020, please visit the page of the new mailing list on Renater.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Frama-c-discuss] Arithmetics in finite fields


  • Subject: [Frama-c-discuss] Arithmetics in finite fields
  • From: Boris.Hollas at de.bosch.com (Hollas Boris (CR/AEY1))
  • Date: Mon, 1 Feb 2010 13:29:59 +0100

We have applications where we do arithmetics in GF(2^32). This is easily done with unsigned integers and the standard operations +, *. However, Jessie isn't able to verify arithmetic safety because it doesn't know that we want to compute in GF(2^32). For example, nothing bad can happen in this code

const unsigned long m = 0x10000;

unsigned int foo(unsigned int a) {
  return (((a+1) % m) * ((a+1) % m)) % m;
}


Which is equivalent to


unsigned int foo(unsigned int a) {
  return (a+1)*(a+1);
}


On a platform that uses 32-bit integers. Is there a way to verify arithmetics in GF(2^32) with Frama-C/Jessie?