min_seq[T: TYPE+, <= : (total_order?[T]) ]: THEORY %------------------------------------------------------------------------ % % min_seq (basic definitions and properties) % ------------------------------------------- % % Author: Ricky W. Butler % % This theory defines the minimum function over a sequence of values % from an ordered type. This is done in an implementation-independent % manner. % % Imin(s,ii,jj) = general definition of minimum of sequence s % over the internal from ii to jj. Returns the % index into the sequence. % % imin(s) = general definition of minimum of sequence s. % Returns the index into the sequence. % % min(s) = general definition of minimum of sequence s. % Returns the minimal element. % % Notes: % 1. The properties of imin and min are readily obtained via % TYPEPRED "min" and TYPEPRED "imin" or through use of % min_seq_lem and imin_seq_lem. % 2. Since there may be replicates in s, the return type of imin % may not be a singleton set. %------------------------------------------------------------------------
EXPORTING ALL WITH seqs[T]
BEGIN
IMPORTING seqs[T]
% seqs: TYPE = {s: finite_sequence[T] | length(s) > 0} % in?(x,s): bool = (EXISTS (ii: dom(s)): x = seq(s)(ii))
ii,j: VAR nat
s: VAR ne_seqs
x: VAR T
IMPORTING min_array_def
dom(s): TYPE = below(length(s))
abv(ii,s): TYPE = {i: nat | ii <= i AND i < length(s)}
Imin(s, (ii: dom(s)),(jj: abv(ii,s))):
{i: subrange(ii,jj) | (FORALL j: ii <= j AND j <= jj IMPLIES seq(s)(i) <= seq(s)(j))}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.