src/HOL/SPARK/Examples/Liseq/Liseq.ads
author wenzelm
Wed, 04 Oct 2017 12:00:53 +0200
changeset 66787 64b47495676d
parent 41561 d1318f3c86ba
permissions -rw-r--r--
obsolete;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41561
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     1
-------------------------------------------------------------------------------
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     2
-- Longest increasing subsequence of an array of integers
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     3
-------------------------------------------------------------------------------
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     4
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     5
package Liseq is
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     6
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     7
   type Vector is array (Integer range <>) of Integer;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     8
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
     9
   --# function Liseq_prfx(A: Vector; i: Integer) return Integer;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    10
   --# function Liseq_ends_at(A: Vector; i: Integer) return Integer;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    11
   --# function Max_ext(A: Vector; i, j: Integer) return Integer;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    12
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    13
   procedure Liseq_length(A: in Vector; L: in out Vector; maxi: out Integer);
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    14
   --# derives maxi, L from A, L;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    15
   --# pre A'First = 0 and L'First = 0 and A'Last = L'Last and A'Last < Integer'Last;
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    16
   --# post maxi = Liseq_prfx (A, A'Last+1);
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    17
d1318f3c86ba Added new SPARK verification environment.
berghofe
parents:
diff changeset
    18
end Liseq;