%----------------------------------------------------------------------------- % Prefixes of sequences of countable length. % % Author: Jerry James <loganjerry@gmail.com> % % This file and its accompanying proof file are distributed under the CC0 1.0 % Universal license: http://creativecommons.org/publicdomain/zero/1.0/. % % Version history: % 2007 Feb 14: PVS 4.0 version % 2011 May 6: PVS 5.0 version % 2013 Jan 14: PVS 6.0 version %-----------------------------------------------------------------------------
csequence_prefix[T: TYPE]: THEORY BEGIN
p: VAR pred[T]
n, m: VAR nat
cseq, cseq1, cseq2: VAR csequence
fseq, fseq1, fseq2: VAR finite_csequence
eseq: VAR empty_csequence
nseq, nseq1, nseq2: VAR nonempty_csequence
iseq: VAR infinite_csequence
prefix?(cseq1, cseq2): COINDUCTIVE bool =
empty?(cseq1) OR
(nonempty?(cseq2) AND
first(cseq1) = first(cseq2) AND prefix?(rest(cseq1), rest(cseq2)))
% Unlike suffix?, prefix? is a partial order
prefix?_is_partial_order: JUDGEMENT
prefix? HAS_TYPE (partial_order?[csequence])
% Prefixes of a given sequence are totally ordered
prefix?_total_order: THEOREM FORALL cseq:
total_order?(restrict
[[csequence, csequence],
[(prefix?(cseq)), (prefix?(cseq))], bool]
(prefix?))
% The prefix of cseq of length at most n
prefix(cseq, n): RECURSIVE {fseq | prefix?(fseq, cseq)} = IF n = 0 OR empty?(cseq) THEN empty_cseq ELSE add(first(cseq), prefix(rest(cseq), n - 1)) ENDIF MEASURE n
prefix_concatenate: THEOREM FORALL cseq1, cseq2, n:
prefix(cseq1 o cseq2, n) = IF index?(cseq1)(n) THEN prefix(cseq1, n) ELSE cseq1 o prefix(cseq2, n - length(cseq1)) ENDIF
prefix_some: THEOREM FORALL cseq, n, p:
some(p)(prefix(cseq, n)) IFF
(EXISTS (i: indexes(cseq)): i < n AND p(nth(cseq, i)))
prefix_every: THEOREM FORALL cseq, n, p:
every(p)(prefix(cseq, n)) IFF
(FORALL (i: indexes(cseq)): i < n IMPLIES p(nth(cseq, i)))
% Prefixes of a given sequence are ordered by number
prefix?_order: THEOREM FORALL cseq, n, m:
n <= m IMPLIES prefix?(prefix(cseq, n), prefix(cseq, m))
END csequence_prefix
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet)
¤
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.