Module Ltac_plugin.RewriteStratAst

type unary_strategy =
  1. | Subterms
  2. | Subterm
  3. | Innermost
  4. | Outermost
  5. | Bottomup
  6. | Topdown
  7. | Progress
  8. | Try
  9. | Any
  10. | Repeat
type binary_strategy =
  1. | Compose
type nary_strategy =
  1. | Choice
type ('constr, 'constr_pattern, 'redexpr, 'id, 'tactic) strategy_ast =
  1. | StratId
  2. | StratFail
  3. | StratRefl
  4. | StratUnary of unary_strategy * ('constr, 'constr_pattern, 'redexpr, 'id, 'tactic) strategy_ast
  5. | StratBinary of binary_strategy * ('constr, 'constr_pattern, 'redexpr, 'id, 'tactic) strategy_ast * ('constr, 'constr_pattern, 'redexpr, 'id, 'tactic) strategy_ast
  6. | StratNAry of nary_strategy * ('constr, 'constr_pattern, 'redexpr, 'id, 'tactic) strategy_ast list
  7. | StratConstr of 'constr * bool
  8. | StratTerms of 'constr list
  9. | StratHints of bool * string
  10. | StratEval of 'redexpr
  11. | StratFold of 'constr
  12. | StratVar of 'id
  13. | StratFix of 'id * ('constr, 'constr_pattern, 'redexpr, 'id, 'tactic) strategy_ast
  14. | StratMatches of 'constr_pattern
  15. | StratTactic of 'tactic
val map_strategy : ('a -> 'b) -> ('c -> 'd) -> ('e -> 'f) -> ('g -> 'h) -> ('i -> 'j) -> ('a, 'c, 'e, 'g, 'i) strategy_ast -> ('b, 'd, 'f, 'h, 'j) strategy_ast
val pr_strategy : ('a -> Pp.t) -> ('b -> Pp.t) -> ('c -> Pp.t) -> ('d -> Pp.t) -> ('e -> Pp.t) -> ('a, 'b, 'c, 'd, 'e) strategy_ast -> Pp.t