fact: Fixpoint twothree_fold (acc : T) (map : twothree V) : T := match map with | Leaf => acc | Two l k v r => let acc := twothree_fold acc l in let acc := f k v acc in twothree_fold acc r | Three l k1 v1 m k2 v2 r => let acc := twothree_fold acc l in let acc := f k1 v1 acc in let acc := twothree_fold acc m in let acc := f k2 v2 acc in twothree_fold acc r end.
imports: Coq.Lists.List ExtLib.Core.RelDec ExtLib.Structures.Maps ExtLib.Structures.Monads ExtLib.Structures.Reducible