| Name | Conclusion | Link |
|---|---|---|
| stream_1 | sreplicate = siterate I | link to proof |
| stream_2 | smap I = I | link to proof |
| stream_3 | !s. stake s 0 = [] | link to proof |
| stream_4 | !s. stream (snth s) = s | link to proof |
| stream_5 | !s. sappend [] s = s | link to proof |
| stream_6 | !s. sdrop s 0 = s | link to proof |
| stream_7 | !f. snth (stream f) = f | link to proof |
| stream_8 | !s. shd s = snth s 0 | link to proof |
| stream_9 | !a. sreplicate a = scons a (sreplicate a) | link to proof |
| stream_10 | !s. stl s = sdrop s 1 | link to proof |
| stream_11 | !s. sdrop s 1 = stl s | link to proof |
| stream_12 | !a n. snth (sreplicate a) n = a | link to proof |
| stream_13 | !h t. shd (scons h t) = h | link to proof |
| stream_14 | !h t. stl (scons h t) = t | link to proof |
| stream_15 | !s n. LENGTH (stake s n) = n | link to proof |
| stream_16 | !s. snth s 1 = shd (stl s) | link to proof |
| stream_17 | !h t. snth (scons h t) 0 = h | link to proof |
| stream_18 | !f. siterate f = sunfold (\a. a,f a) | link to proof |
| stream_19 | !s. stake s 1 = [shd s] | link to proof |
| stream_20 | !s n. sdrop s n = funpow stl n s | link to proof |
| stream_21 | !s n. shd (sdrop s n) = snth s n | link to proof |
| stream_22 | !s1 s2. ssplit (sinterleave s1 s2) = s1,s2 | link to proof |
| stream_23 | !f b. shd (sunfold f b) = FST (f b) | link to proof |
| stream_24 | !s n. snth s (SUC n) = snth (stl s) n | link to proof |
| stream_25 | !s n. sdrop s (SUC n) = stl (sdrop s n) | link to proof |
| stream_26 | !s n. sdrop s (SUC n) = sdrop (stl s) n | link to proof |
| stream_27 | !f s. smap f s = stream (f o snth s) | link to proof |
| stream_28 | !f a. siterate f a = scons a (siterate f (f a)) | link to proof |
| stream_29 | !f g. smap f o smap g = smap (f o g) | link to proof |
| stream_30 | !f b. stl (sunfold f b) = sunfold f (SND (f b)) | link to proof |
| stream_31 | !s n. sdrop s n = stream (\m. snth s (m + n)) | link to proof |
| stream_32 | !h t n. snth (scons h t) (SUC n) = snth t n | link to proof |
| stream_33 | !s n. stake s (SUC n) = CONS (shd s) (stake (stl s) n) | link to proof |
| stream_34 | !h t s. sappend (CONS h t) s = scons h (sappend t s) | link to proof |
| stream_35 | !l1 l2 s. sappend (APPEND l1 l2) s = sappend l1 (sappend l2 s) | link to proof |
| stream_36 | !s m n. snth s (m + n) = snth (sdrop s n) m | link to proof |
| stream_37 | !s1 s2. (!n. snth s1 n = snth s2 n) <=> s1 = s2 | link to proof |
| stream_38 | !s1 s2. (!n. snth s1 n = snth s2 n) ==> s1 = s2 | link to proof |
| stream_39 | !f g s. smap (f o g) s = smap f (smap g s) | link to proof |
| stream_40 | !f b. sunfold f b = stream (\n. FST (f (funpow (SND o f) n b))) | link to proof |
| stream_41 | !s n. stake s (SUC n) = APPEND (stake s n) [snth s n] | link to proof |
| stream_42 | !s n i. i < n ==> nth (stake s n) i = snth s i | link to proof |
| stream_43 | !h t. scons h t = stream (\n. if n = 0 then h else snth t (n - 1)) | link to proof |
| stream_44 | !s m n. stake s (m + n) = APPEND (stake s m) (stake (sdrop s m) n) | link to proof |
| stream_45 | !s n. snth s n = (if n = 0 then shd s else snth (stl s) (n - 1)) | link to proof |
| stream_46 | !s n x. MEM x (stake s n) <=> (?i. i < n /\ x = snth s i) | link to proof |
| stream_47 | !s n. stake s n = (if n = 0 then [] else CONS (shd s) (stake (stl s) (n - 1))) | link to proof |
| stream_48 | !l s. sappend l s = stream (\n. if n < LENGTH l then nth l n else snth s (n - LENGTH l)) | link to proof |
| stream_49 | !f b. sunfold f b = (let a,b' = f b in scons a (sunfold f b')) | link to proof |
| stream_50 | !f b n k. snth (sunfold f b) (n + k) = snth (sunfold f (funpow (SND o f) n b)) k | link to proof |
| stream_51 | !l s n. snth (sappend l s) n = (if n < LENGTH l then nth l n else snth s (n - LENGTH l)) | link to proof |
| stream_52 | !s n. set_of_list (stake s n) = {x | ?i. i < n /\ x = snth s i} | link to proof |
| stream_53 | !s1 s2. sinterleave s1 s2 = stream (\n. if EVEN n then snth s1 (n DIV 2) else snth s2 (n DIV 2)) | link to proof |
| stream_54 | !s. ssplit s = stream (\n. snth s (2 * n)),stream (\n. snth s (2 * n + 1)) | link to proof |
| stream_55 | !p. (!m. ?n. m <= n /\ p n) ==> (?s. (!i j. snth s i <= snth s j <=> i <= j) /\ (!n. p n <=> (?i. snth s i = n))) | link to proof |