Package list-zipwith: Definitions and theorems about the list zipWith function

Information

namelist-zipwith
version1.12
description Definitions and theorems about the list zipWith function
authorJoe Hurd <joe@gilith.com>
licenseMIT
showData.Bool
Data.List

Files

Defined Constant

Theorems

f. zipWith f [] [] = []

f l1 l2 n. length l1 = n length l2 = n length (zipWith f l1 l2) = n

f h1 h2 t1 t2.
    length t1 = length t2
    zipWith f (h1 :: t1) (h2 :: t2) = f h1 h2 :: zipWith f t1 t2

(f. zipWith f [] [] = [])
  f h1 h2 t1 t2.
    length t1 = length t2
    zipWith f (h1 :: t1) (h2 :: t2) = f h1 h2 :: zipWith f t1 t2

Input Type Operators

Input Constants

Assumptions

T

F p. p

(~) = λp. p F

() = λP. P ((select) P)

t. (x. t) t

() = λp. p = λx. T

x. x = x T

n. ¬(Number.Natural.suc n = 0)

() = λp q. p q p

h t. head (h :: t) = h

h t. tail (h :: t) = t

() = λp q. (λf. f p q) = λf. f T T

() = λP. q. (x. P x q) q

m n. Number.Natural.suc m = Number.Natural.suc n m = n

length [] = 0 h t. length (h :: t) = Number.Natural.suc (length t)

P. P 0 (n. P n P (Number.Natural.suc n)) n. P n

P. P [] (a0 a1. P a1 P (a0 :: a1)) x. P x

NIL' CONS'.
    fn. fn [] = NIL' a0 a1. fn (a0 :: a1) = CONS' a0 a1 (fn a1)

t. (T t t) (t T t) (F t F) (t F F) (t t t)

t. (T t t) (t T T) (F t T) (t t T) (t F ¬t)