+ | TacticAst.Reduce (_,reduction_kind,opts) ->
+ let terms, also_in_hypotheses =
+ match opts with
+ | Some (l,`Goal) -> Some l, false
+ | Some (l,`Everywhere) -> Some l, true
+ | None -> None, false
+ in
+ (match reduction_kind with
+ | `Reduce -> Tactics.reduce ~also_in_hypotheses ~terms
+ | `Simpl -> Tactics.simpl ~also_in_hypotheses ~terms
+ | `Whd -> Tactics.whd ~also_in_hypotheses ~terms)