fact: Definition search (P : Prop) := mfix1 f (s:list dyn) : M P := mmatch s with | [? (x:P) s'] (Dyn x) :: s' => ret x | [? d s'] d :: s' => f s' | _ => raise NotFound end.
imports: Mtac2.Mtac2 Arith.Arith Lists.List Strings.String