Definition FinContainer : Traversal.

Theorem Traversal_is_finite_container : forall (T:Traversal), exists (spec : FinContainerSpec) (f : forall a, T a -> FinContainer spec a) (g : forall a, FinContainer spec a -> T a), (forall a, (forall x, g a (f a x) = x) /\ forall y, f a (g a y) = y) /\ (forall a b (F : Applicative) (h: a -> F b) (x : T a), map (f b) (traverse h x) = traverse h (f a x)).