Entry Value
Name foldl_with_cons
Conclusion !l1 l2. foldl (C CONS) l2 l1 = APPEND (REVERSE l1) l2
Constructive Proof Yes
Axiom
(\a. a = (\b. (\c. c) = (\c. c))) (\d. (\e. d e) = d)
Classical Lemmas N|A
Constructive Lemmas
  • T
  • !x y. x = y <=> y = x
  • !x y. x = y ==> y = x
  • !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
  • !t. F ==> t <=> T
  • !t. T ==> t <=> t
  • !t. t ==> F <=> ~t
  • !t. t ==> T <=> T
  • !t. t ==> t
  • !f y. (\x. f x) y = f y
  • !f g. (!x. f x = g x) <=> f = g
  • !f g. (!x. f x = g x) ==> f = g
  • !t. (\x. t x) = 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. foldr f b [] = b
  • !f x y. C f x y = f y x
  • !f. C (C f) = f
  • !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. foldr CONS l2 l1 = APPEND l1 l2
  • !l. APPEND [] l = l
  • F <=> (!p. p)
  • T <=> (\p. p) = (\p. p)
  • (~) = (\p. p ==> F)
  • (/\) = (\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)
  • C = (\f x y. f y x)
  • Contained Package list-fold-thm
    Comment Standard HOL library retrieved from OpenTheory
    Back to main package pageBack to contained package page