CADiZ

Reference manual / Extended toolkit / section seqlaws


Laws about Sequences in The Mathematical Tool-kit

section seqlaws parents seqdefs, numlaws, setlaws

This section may eventually contain general-purpose tactics, and does contain laws, with (some of) their proofs, on the assumption that the definitions of seqdefs.z are present.

Written by Sam Valentine, last updated September 1999.

Laws

L134 ==

\vdash? \forall a, b: \real | a > b @ a .. b = \emptyset

L135 ==

\vdash? \forall a: \num @ a .. a = { a }

L136 ==

\vdash? \forall a, b, c, d: \real | a \leq b \land c \leq d @ b .. c \subseteq a .. d

domainOfHash ==

[ X ] \vdash? dom # = \finset X

L151 ==

[X] \vdash? \forall S, T: \finset X @ # (S \cup T) + # (S \cap T) = # S + # T

L152 ==

[X] \vdash? \finset1 X = { S:\finset X | 0 < # S }

L205 ==

[I, X] \vdash? \forall s: I \rel X @ dom (items s) = ran s

L206 ==

[I, X] \vdash? \forall s, t: I \pfun X @
items s = items t \iff (\exists f: dom s \bij dom t @ s = t \circ f)

L154 ==

\vdash? \finset1 \num \subseteq dom min

L155 ==

\vdash? \finset1 \num \subseteq dom max

L156 ==

\vdash? (\power \nat) \cap (dom min) = \power1 \nat

L157 ==

\vdash? (\power \nat) \cap (dom max) = \finset1 \nat

L158 ==

\vdash? \forall S, T: dom min @ min (S \cup T) = min { min S, min T }

L159 ==

\vdash? \forall S, T: dom max @ max (S \cup T) = max { max S, max T }

L160 ==

\vdash? \forall S, T: dom min | S \subseteq T @ min S \geq min T

L161 ==

\vdash? \forall S, T: dom max | S \subseteq T @ max S \leq max T

L162a ==

\vdash? \forall a, b: \num | a \leq b @ min (a .. b) = a

L162b ==

\vdash? \forall a, b: \num | a \leq b @ max (a .. b) = b

L163 ==

\vdash? \forall a, b, c, d: \num @
(a .. b) \cap (c .. d) = max { a, c } .. min { b, d }

L164 ==

[X] \vdash? seq1 X = seq X \ { \langle \rangle }

L199 ==

[X] \vdash? \forall A: \power X @ disjoint \langle A \rangle

L200 ==

[X] \vdash? \forall A, B: \power X @ disjoint \langle A, B \rangle \iff A \cap B = \emptyset

L201 ==

[X] \vdash? \forall A, B, C: \power X @
\langle A, B \rangle partition C \iff A \cap B = \emptyset \land A \cup B = C

L165 ==

[X] \vdash? \forall s, t: seq X; u: sequence X @ (s \cat t) \cat u = s \cat (t \cat u)

L166 ==

[X] \vdash? \forall s: sequence X @ \langle \rangle \cat s = s

L167 ==

[X] \vdash? \forall s: seq X @ s \cat \langle \rangle = s

L168 ==

[X] \vdash? \forall s, t: seq X @ # (s \cat t) = # s + # t

S0 ==

[X,Y] \vdash? \forall s: sequence X; f: X \fun Y @ f \circ s \in sequence Y

S1 ==

[X,Y] \vdash? \forall s: seq X; f: X \fun Y @ # (f \circ s) = # s

S2 ==

[X,Y] \vdash? \forall s: sequence X; f: X \fun Y @ \forall i: dom s @ (f \circ s) i = f (s  i)

S3 ==

[X,Y] \vdash? \forall f: X \fun Y @ f \circ \langle\rangle = \langle\rangle

S4 ==

[X,Y] \vdash? \forall x: X; f: X \fun Y @ f \circ \langle x \rangle = \langle f(x) \rangle

S5 ==

[X,Y] \vdash? \forall s: seq X; t: sequence X; f: X \fun Y @ f \circ (s \cat t) = (f \circ s) \cat (f \circ t)

S6 ==

[X] \vdash? \forall s: sequence X @ ran s = { i: dom s @ s  i }

S7 ==

[X] \vdash? ran \langle\rangle = \emptyset[X]

S8 ==

[X] \vdash? \forall x: X @ ran \langle x \rangle = {x}

S9 ==

[X] \vdash? \forall s: seq X; t: sequence X @ ran (s \cat t) = (ran s) \cup (ran t)

L169 ==

[X] \vdash? rev[X] \langle\rangle = \langle\rangle

L170 ==

[X] \vdash? \forall x: X @ rev \langle x \rangle = \langle x \rangle

L171 ==

[X] \vdash? \forall s, t: seq X @ rev (s \cat t) = (rev t) \cat (rev s)

L172 ==

[X] \vdash? \forall s: seq X @ rev (rev s) = s

S10 ==

[X,Y] \vdash? \forall s: seq X; f: X \fun Y @ rev (f \circ s) = f \circ (rev s)

S11 ==

[X] \vdash? \forall s: seq X @ ran (rev s) = ran s

L173 ==

[X] \vdash? \forall x: X @ head \langle x \rangle = last \langle x \rangle = x

L174 ==

[X] \vdash? \forall x: X @ tail \langle x \rangle = front \langle x \rangle = \langle \rangle

L175a ==

[X] \vdash? \forall s: seq1 X; t: sequence X @ head(s \cat t) = head s

L175b ==

[X] \vdash? \forall s: seq1 X; t: sequence X @ tail(s \cat t) = (tail s) \cat t

L176a ==

[X] \vdash? \forall s: seq X; t: seq1 X @ last(s \cat t) = last t

L176b ==

[X] \vdash? \forall s: seq X; t: seq1 X @ front(s \cat t) = s \cat (front t)

L177 ==

[X] \vdash? \forall s: sequence1 X @ \langle head s \rangle \cat (tail s) = s

L178 ==

[X] \vdash? \forall s: seq1 X @ (front s) \cat \langle last s \rangle = s

L179a ==

[X] \vdash? \forall s: seq1 X @ head(rev s) = last s

L179b ==

[X] \vdash? \forall s: seq1 X @ tail(rev s) = rev(front s)

L180a ==

[X] \vdash? \forall s: seq1 X @ last(rev s) = head s

L180b ==

[X] \vdash? \forall s: seq1 X @ front(rev s) = rev(tail s)

L181a ==

[X] \vdash? \forall V: \power X @ \langle\rangle \filter V = \langle\rangle

L181b ==

[X] \vdash? \forall U: \power \nat; s: seq X | s = \langle\rangle @ U \extract s = \langle\rangle

L182 ==

[X] \vdash? \forall s: seq X; t: sequence X; V: \power X @ (s \cat t) \filter V = (s \filter V) \cat (t\filter V)

L183 ==

[X] \vdash? \forall s: sequence X; V: \power X @ ran s \subseteq V \iff s \filter V = s

L184a ==

[X] \vdash? \forall s: sequence X @ s \filter \emptyset = \langle\rangle

L184b ==

[X] \vdash? \forall s: sequence X @ \emptyset \extract s = \langle\rangle

L185 ==

[X] \vdash? \forall s: seq X; V: \power X @ # (s \filter V) \leq # s

L186 ==

[X] \vdash? \forall s: seq X; V: \power X @ (rev s) \filter V = rev (s \filter V)

L187 ==

[X] \vdash? \forall s: sequence X; V, W: \power X @ (s \filter V) \filter W = s \filter (V \cap W)

S12 ==

[X,Y] \vdash? \forall s: sequence X; f: X \fun Y; V: \power Y @
(f \circ s) \filter V = f \circ (s \filter f~ \limg V \rimg )

S13 ==

[X] \vdash? \forall s: sequence X; V: \power X @ ran (s \filter V) = (ran s) \cap V

L188 ==

[X] \vdash? \forall s, t: sequence X @ s prefix t \iff s = dom s \extract t

L189 ==

[X] \vdash? \forall s, t: seq X @ s suffix t \iff s = (# t - # s + 1 .. # t) \extract t

L190 ==

[X] \vdash? \forall s, t: seq X @
s infix t \iff (\exists n: 1 .. # t @ s = (n .. n + # s) \extract t)

L191 ==

[X] \vdash? \forall s, t: sequence X @ s infix t \iff (\exists u: seq X @ s suffix u \land u prefix t)

L192 ==

[X] \vdash? \forall s, t: sequence X @ s infix t \iff (\exists v: seq X @ s prefix v \land v suffix t)

dsumIsFunction ==

[I] \vdash? +/ \in \finset (I \cross \real) \fun \real

dcatOldDef1 ==

[X] \vdash? \forall s: seq seq X | s = \langle \rangle @ \dcat s = \langle \rangle

dcatOldDef2 ==

[X] \vdash? \forall s: sequence X @ \dcat \langle s \rangle = s

dcatOldDef3 ==

[X] \vdash? \forall q, r: seq seq X @ \dcat (q \cat r) = (\dcat q) \cat (\dcat r)

L193 ==

[X] \vdash? \forall s, t: seq X @ \dcat \langle s, t \rangle = s \cat t

L194 ==

[X] \vdash? \forall q: seq (seq X) @ rev (\dcat q) = \dcat (rev (rev \circ q))

L195 ==

[X] \vdash? \forall q: seq (seq X); V: \power X @
(\dcat q) \filter V = \dcat ((\lambda s: seq X @ s \filter V) \circ q)

L196 ==

[X, Y] \vdash? \forall f: X \rel Y; q: seq (seq X) @
f \circ (\dcat q) = \dcat ((\lambda s: seq X @ f \circ s) \circ q)

L197 ==

[X] \vdash? \forall q: seq (seq X) @
ran (\dcat q) = \bigcup { i: dom q @ ran (q  i) } = \bigcup (ran(ran \circ q))

L137 ==

[X] \vdash? \forall R: X \rel X @ iter 0 R = id X

L138 ==

[X] \vdash? \forall R: X \rel X @ iter 1 R = R

L139 ==

[X] \vdash? \forall R: X \rel X @ iter 2 R = R \comp R

L140 ==

[X] \vdash? \forall R: X \rel X @ iter (- 1) R = R ~

L141 ==

[X] \vdash? \forall k: \nat; R: X \rel X @ iter (k+1) R = R \comp iter k R = iter k R \comp R

L142 ==

[X] \vdash? \forall a: \num; R: X \rel X @ iter a (R~) = (iter a R) ~

L143 ==

[X] \vdash? \forall a, b: \nat; R: X \rel X @ iter (a+b) R = iter a R \comp iter b R

L144 ==

[X] \vdash? \forall a, b: \num; R: X \rel X @ iter (a*b) R = iter b (iter a R)

L145 ==

[X] \vdash? \forall R: X \rel X @ R+ = \bigcup { k: \nat1 @ iter k R }

L146 ==

[X] \vdash? \forall R: X \rel X @ R* = \bigcup { k: \nat @ iter k R }

L147 ==

[X] \vdash? \forall a: \num; R, S: X \rel X | R \comp S = S \comp R @ iter a (R \comp S) = iter a R \comp iter a S

IT 5-Jan-2002