Entry |
Value |
Name |
foldr_append_assoc |
Conclusion |
!g f b l1 l2.
(!s. g b s = s) /\ (!x s1 s2. g (f x s1) s2 = f x (g s1 s2))
==> foldr f b (APPEND l1 l2) = g (foldr f b l1) (foldr f b l2) |
Constructive Proof |
Yes |
Axiom |
N|A |
Classical Lemmas |
N|A |
Constructive Lemmas |
T!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!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!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)!l. APPEND [] l = lT <=> (\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) |
Contained Package |
list-fold-thm |
Comment |
Standard HOL library retrieved from OpenTheory |