Entry Value
Name foldl_append
Conclusion !f b l1 l2. foldl f b (APPEND l1 l2) = foldl f (foldl f b l1) l2
Constructive Proof Yes
Axiom
N|A
Classical Lemmas N|A
Constructive Lemmas
  • T
  • !h t. REVERSE (CONS h t) = APPEND (REVERSE t) [h]
  • !x. x = x
  • !p1 p2 q1 q2. (p1 ==> p2) /\ (q1 ==> q2) ==> p1 /\ q1 ==> p2 /\ q2
  • !p1 p2 q1 q2. (p1 ==> p2) /\ (q1 ==> q2) ==> p1 \/ q1 ==> p2 \/ q2
  • !t. (!x. t) <=> t
  • !p q. (!x. p x ==> q x) ==> (?x. p x) ==> (?x. q x)
  • !f b h t. foldr f b (CONS h t) = f h (foldr f b t)
  • !f b l1 l2. foldr f b (APPEND l1 l2) = foldr f (foldr f b l2) l1
  • !f b. foldr f b [] = b
  • !f b l. foldl f b l = foldr (C f) b (REVERSE l)
  • !p. p [] /\ (!h t. p t ==> p (CONS h t)) ==> (!l. p l)
  • !l h t. APPEND (CONS h t) l = CONS h (APPEND t l)
  • !l1 l2 l3. APPEND l1 (APPEND l2 l3) = APPEND (APPEND l1 l2) l3
  • !l1 l2. REVERSE (APPEND l1 l2) = APPEND (REVERSE l2) (REVERSE l1)
  • !l. APPEND [] l = l
  • !l. APPEND l [] = l
  • T <=> (\p. p) = (\p. p)
  • (/\) = (\p q. (\f. f p q) = (\f. f T T))
  • (==>) = (\p q. p /\ q <=> p)
  • (\/) = (\p q. !r. (p ==> r) ==> (q ==> r) ==> r)
  • (!) = (\p. p = (\x. T))
  • (?) = (\p. !q. (!x. p x ==> q) ==> q)
  • REVERSE [] = []
  • Contained Package list-fold-thm
    Comment Standard HOL library retrieved from OpenTheory
    Back to main package pageBack to contained package page