4. map f (map g []) = map (f . g) []
map f [] = []
(定義1) map f [] = []
5. map f (map g []) = map (f . g) []
map f [] = []
[] = []
(定義1) map f [] = []
6. (仮定1) map f (map g xs) = map (f . g) xs
map f (map g (x:xs)) = map (f . g) (x:xs)
7. map f (map g (x:xs)) = map (f . g) (x:xs)
map f (g x : map g xs) = (f . g) x : map (f . g) xs
(定義2) map f (x:xs) = f x : map f xs
8. map f (map g (x:xs)) = map (f . g) (x:xs)
map f (g x : map g xs) = (f . g) x : map (f . g) xs
f (g x) : map f (map g xs) = (f . g) x : map (f . g) xs
(定義2) map f (x:xs) = f x : map f xs
9. map f (map g (x:xs)) = map (f . g) (x:xs)
map f (g x : map g xs) = (f . g) x : map (f . g) xs
f (g x) : map f (map g xs) = (f . g) x : map (f . g) xs
f (g x) : map f (map g xs) = f (g x) : map (f . g) xs
(定義3) (f . g) x = f (g x)
10. map f (map g (x:xs)) = map (f . g) (x:xs)
map f (g x : map g xs) = (f . g) x : map (f . g) xs
f (g x) : map f (map g xs) = (f . g) x : map (f . g) xs
f (g x) : map f (map g xs) = f (g x) : map (f . g) xs
f (g x) : map (f . g) xs = f (g x) : map (f . g) xs
(仮定1) map f (map g xs) = map (f . g) xs