fact: Fixpoint zip (t:tree) (c:context) : tree := match c with | Top_c => t | TwoLeftHole_c em tr c' => zip (Two_t t em tr) c' | TwoRightHole_c tl em c' => zip (Two_t tl em t) c' | ThreeLeftHole_c el em er tr c' => zip (Three_t t el em er tr) c' | ThreeMiddleHole_c tl el er tr c' => zip (Three_t tl el t er tr) c' | ThreeRightHole_c tl el em er c' => zip (Three_t tl el em er t) c' end.
imports: ExtLib.Structures.Monads ExtLib.Data.Monads.OptionMonad ExtLib.Programming.Extras