src/HOL/SPARK/Examples/RIPEMD-160/rmd/hash.fdl
changeset 41561 d1318f3c86ba
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/HOL/SPARK/Examples/RIPEMD-160/rmd/hash.fdl	Sat Jan 15 12:35:29 2011 +0100
     1.3 @@ -0,0 +1,74 @@
     1.4 +           {*******************************************************}
     1.5 +                               {FDL Declarations}
     1.6 +    {Examiner Pro Edition, Version 9.1.0, Build Date 20101119, Build 19039}
     1.7 +             {Copyright (C) 2010 Altran Praxis Limited, Bath, U.K.}
     1.8 +           {*******************************************************}
     1.9 +
    1.10 +
    1.11 +                        {DATE : 29-NOV-2010 14:30:20.17}
    1.12 +
    1.13 +                             {function RMD.Hash}
    1.14 +
    1.15 +
    1.16 +title function hash;
    1.17 +
    1.18 +  function round__(real) : integer;
    1.19 +  type interfaces__unsigned_32 = integer;
    1.20 +  type block_index = integer;
    1.21 +  type message_index = integer;
    1.22 +  type chain = record
    1.23 +        h0 : integer;
    1.24 +        h1 : integer;
    1.25 +        h2 : integer;
    1.26 +        h3 : integer;
    1.27 +        h4 : integer
    1.28 +     end;
    1.29 +  type block = array [integer] of integer;
    1.30 +  type message = array [integer] of block;
    1.31 +  const ca_init : integer = pending;
    1.32 +  const cb_init : integer = pending;
    1.33 +  const cc_init : integer = pending;
    1.34 +  const cd_init : integer = pending;
    1.35 +  const ce_init : integer = pending;
    1.36 +  const message_index__base__first : integer = pending; 
    1.37 +  const message_index__base__last : integer = pending; 
    1.38 +  const block_index__base__first : integer = pending; 
    1.39 +  const block_index__base__last : integer = pending; 
    1.40 +  const word__base__first : integer = pending; 
    1.41 +  const word__base__last : integer = pending; 
    1.42 +  const interfaces__unsigned_32__base__first : integer = pending; 
    1.43 +  const interfaces__unsigned_32__base__last : integer = pending; 
    1.44 +  const x__index__subtype__1__first : integer = pending; 
    1.45 +  const x__index__subtype__1__last : integer = pending; 
    1.46 +  const message_index__first : integer = pending; 
    1.47 +  const message_index__last : integer = pending; 
    1.48 +  const message_index__size : integer = pending; 
    1.49 +  const block_index__first : integer = pending; 
    1.50 +  const block_index__last : integer = pending; 
    1.51 +  const block_index__size : integer = pending; 
    1.52 +  const chain__size : integer = pending; 
    1.53 +  const word__first : integer = pending; 
    1.54 +  const word__last : integer = pending; 
    1.55 +  const word__modulus : integer = pending; 
    1.56 +  const word__size : integer = pending; 
    1.57 +  const interfaces__unsigned_32__first : integer = pending; 
    1.58 +  const interfaces__unsigned_32__last : integer = pending; 
    1.59 +  const interfaces__unsigned_32__modulus : integer = pending; 
    1.60 +  const interfaces__unsigned_32__size : integer = pending; 
    1.61 +  var x : message;
    1.62 +  var ca : integer;
    1.63 +  var cb : integer;
    1.64 +  var cc : integer;
    1.65 +  var cd : integer;
    1.66 +  var ce : integer;
    1.67 +  var loop__1__i : integer;
    1.68 +  function rmd_hash(message, integer) : chain;
    1.69 +  function round_spec(chain, block) : chain;
    1.70 +  function rounds(chain, integer, message) : chain;
    1.71 +  var ce__1 : integer;
    1.72 +  var cd__1 : integer;
    1.73 +  var cc__1 : integer;
    1.74 +  var cb__1 : integer;
    1.75 +  var ca__1 : integer;
    1.76 +
    1.77 +end;