Constant | Type |
---|---|
STAKE | :num -> (num -> bool) -> bool list |
SCONST | :bool -> num -> bool |
SDEST | :(num -> bool) -> bool # (num -> bool) |
SCONS | :bool -> (num -> bool) -> num -> bool |
SDROP | :num -> (num -> bool) -> num -> bool |
SHD | :(num -> bool) -> bool |
STL | :(num -> bool) -> num -> bool |
|- !f. SHD f = f 0
|- !f n. STL f n = f (SUC n)
|- (!h t. SCONS h t 0 = h) /\ !h t n. SCONS h t (SUC n) = t n
|- SDEST = (\s. (SHD s,STL s))
|- SCONST = K
|- (!s. STAKE 0 s = []) /\ !n s. STAKE (SUC n) s = SHD s::STAKE n (STL s)
|- (SDROP 0 = I) /\ !n. SDROP (SUC n) = SDROP n o STL
|- !x. ?h t. x = SCONS h t
|- !h t. ?x. (SHD x = h) /\ (STL x = t)
|- !h t. SHD (SCONS h t) = h
|- !h t. STL (SCONS h t) = t
|- !b. SHD (SCONST b) = b
|- !b. STL (SCONST b) = SCONST b