array_ops[T: TYPE]: THEORY
BEGIN
IMPORTING below_arrays, caret_arrays, concat_arrays
t: VAR T
n,m,i,j: VAR nat
barr(n): TYPE = below_array[n,T]
fill(n: nat, t: T): below_array[n,T] = (LAMBDA (ii: below(n)): t)
caret_fill0 : LEMMA FORALL (j: below(n)):
i <= j IMPLIES fill(n,t)^(i,j) = fill(j-i+1,t)
caret_fill1 : LEMMA FORALL (j: below(n)):
i <= j IMPLIES fill(n,t)^(i,j) = fill(j-i+1,t)
caret_concat_bot : LEMMA FORALL (j: below(n), A_n: barr(n), B_m: barr(m)):
j < n IMPLIES (A_n o B_m)^(i,j) = A_n^(i,j)
caret_concat_top : LEMMA FORALL (A_n: barr(n), B_m: barr(m)):
i >= n AND j >= n AND j < n + m
IMPLIES (A_n o B_m)^(i,j) = B_m^(i-n, j-n)
caret_concat_all : LEMMA FORALL (j: below(n), A_n: barr(n), B_m: barr(m)):
i <= n AND n <= j IMPLIES
(A_n o B_m)^(i,j) = A_n^(0,i-n) o B_m^(j,n-1)
array_decomp : LEMMA FORALL (n: posnat, k: below(n-1), A_n:barr(n)):
(A_n^(0,k)) o (A_n^(k+1,n-1)) = A_n
caret_bot_all : LEMMA FORALL (n: posnat, A_n: barr(n), B_m: barr(m)):
(A_n o B_m)^(0,n-1) = A_n
caret_top_all : LEMMA FORALL (A_n: barr(n), B_m: barr(m)):
n+m > 0 IMPLIES (A_n o B_m)^(n,n+m-1) = B_m
% ===== (below_array,o,1) is a monoid =====================================
concat_array_bot : THEOREM (FORALL (i: below(m),
a_m:below_array[m,T],
a_n:below_array[n,T]):
(a_m o a_n)(i) = a_m(i))
concat_array_top : THEOREM (FORALL (j: {i: int | i >= m AND i < n+m},
a_m:below_array[m,T],
a_n:below_array[n,T]):
(a_m o a_n)(j) = a_n(j-m))
concat_array_r : THEOREM (FORALL (a_n:below_array[n,T]):
a_n o empty_array[T] = a_n)
concat_array_l : THEOREM (FORALL (a_n:below_array[n,T]):
empty_array[T] o a_n = a_n)
concat_array_assoc: THEOREM (FORALL (a_m:below_array[m,T]),
(a_n:below_array[n,T]),
(a_j:below_array[j,T]):
a_m o (a_n o a_j) = (a_m o a_n) o a_j)
END array_ops
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
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.
|