
# 11 "plugins/micromega/g_zify.mlg"
 

open Ltac_plugin
open Stdarg
open Tacarg

let locality = Zify.zify_register_locality


# 13 "plugins/micromega/g_zify.ml"

let _ = Mltop.add_known_module "rocq-runtime.plugins.zify"
let () = Vernacextend.static_vernac_extend ~plugin:(Some "rocq-runtime.plugins.zify") ~command:"DECLAREINJECTION" ~classifier:(fun ~atts:_ _ -> Vernacextend.classify_as_sideeff) ?entry:None 
         [(Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Add",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal
            ("InjTyp",
             Vernacextend.TyNonTerminal (Extend.TUentry (Genarg.get_arg_tag wit_reference),
             Vernacextend.TyNil)))),
          (let coqpp_body t locality = Vernactypes.vtdefault (fun () -> 
# 24 "plugins/micromega/g_zify.mlg"
                                                             Zify.InjTable.register locality t 
# 30 "plugins/micromega/g_zify.ml"
) in
            fun t ?loc ~atts () -> coqpp_body t (Attributes.parse 
# 24 "plugins/micromega/g_zify.mlg"
      locality
# 35 "plugins/micromega/g_zify.ml"
 atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Add",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal
            ("BinOp",
             Vernacextend.TyNonTerminal (Extend.TUentry (Genarg.get_arg_tag wit_reference),
             Vernacextend.TyNil)))),
          (let coqpp_body t locality = Vernactypes.vtdefault (fun () -> 
# 25 "plugins/micromega/g_zify.mlg"
                                                              Zify.BinOp.register locality t 
# 51 "plugins/micromega/g_zify.ml"
) in
            fun t ?loc ~atts () -> coqpp_body t (Attributes.parse 
# 25 "plugins/micromega/g_zify.mlg"
      locality
# 56 "plugins/micromega/g_zify.ml"
 atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Add",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal
            ("UnOp",
             Vernacextend.TyNonTerminal (Extend.TUentry (Genarg.get_arg_tag wit_reference),
             Vernacextend.TyNil)))),
          (let coqpp_body t locality = Vernactypes.vtdefault (fun () -> 
# 26 "plugins/micromega/g_zify.mlg"
                                                              Zify.UnOp.register locality t 
# 72 "plugins/micromega/g_zify.ml"
) in
            fun t ?loc ~atts () -> coqpp_body t (Attributes.parse 
# 26 "plugins/micromega/g_zify.mlg"
      locality
# 77 "plugins/micromega/g_zify.ml"
 atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Add",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal
            ("CstOp",
             Vernacextend.TyNonTerminal (Extend.TUentry (Genarg.get_arg_tag wit_reference),
             Vernacextend.TyNil)))),
          (let coqpp_body t locality = Vernactypes.vtdefault (fun () -> 
# 27 "plugins/micromega/g_zify.mlg"
                                                              Zify.CstOp.register locality t 
# 93 "plugins/micromega/g_zify.ml"
) in
            fun t ?loc ~atts () -> coqpp_body t (Attributes.parse 
# 27 "plugins/micromega/g_zify.mlg"
      locality
# 98 "plugins/micromega/g_zify.ml"
 atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Add",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal
            ("BinRel",
             Vernacextend.TyNonTerminal (Extend.TUentry (Genarg.get_arg_tag wit_reference),
             Vernacextend.TyNil)))),
          (let coqpp_body t locality = Vernactypes.vtdefault (fun () -> 
# 28 "plugins/micromega/g_zify.mlg"
                                                              Zify.BinRel.register locality t 
# 114 "plugins/micromega/g_zify.ml"
) in
            fun t ?loc ~atts () -> coqpp_body t (Attributes.parse 
# 28 "plugins/micromega/g_zify.mlg"
      locality
# 119 "plugins/micromega/g_zify.ml"
 atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Add",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal
            ("PropOp",
             Vernacextend.TyNonTerminal (Extend.TUentry (Genarg.get_arg_tag wit_reference),
             Vernacextend.TyNil)))),
          (let coqpp_body t locality = Vernactypes.vtdefault (fun () -> 
# 29 "plugins/micromega/g_zify.mlg"
                                                              Zify.PropBinOp.register locality t 
# 135 "plugins/micromega/g_zify.ml"
) in
            fun t ?loc ~atts () -> coqpp_body t (Attributes.parse 
# 29 "plugins/micromega/g_zify.mlg"
      locality
# 140 "plugins/micromega/g_zify.ml"
 atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Add",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal
            ("PropBinOp",
             Vernacextend.TyNonTerminal (Extend.TUentry (Genarg.get_arg_tag wit_reference),
             Vernacextend.TyNil)))),
          (let coqpp_body t locality = Vernactypes.vtdefault (fun () -> 
# 30 "plugins/micromega/g_zify.mlg"
                                                                 Zify.PropBinOp.register locality t 
# 156 "plugins/micromega/g_zify.ml"
) in
            fun t ?loc ~atts () -> coqpp_body t (Attributes.parse 
# 30 "plugins/micromega/g_zify.mlg"
      locality
# 161 "plugins/micromega/g_zify.ml"
 atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Add",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal
            ("PropUOp",
             Vernacextend.TyNonTerminal (Extend.TUentry (Genarg.get_arg_tag wit_reference),
             Vernacextend.TyNil)))),
          (let coqpp_body t locality = Vernactypes.vtdefault (fun () -> 
# 31 "plugins/micromega/g_zify.mlg"
                                                              Zify.PropUnOp.register locality t 
# 177 "plugins/micromega/g_zify.ml"
) in
            fun t ?loc ~atts () -> coqpp_body t (Attributes.parse 
# 31 "plugins/micromega/g_zify.mlg"
      locality
# 182 "plugins/micromega/g_zify.ml"
 atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Add",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal
            ("BinOpSpec",
             Vernacextend.TyNonTerminal (Extend.TUentry (Genarg.get_arg_tag wit_reference),
             Vernacextend.TyNil)))),
          (let coqpp_body t locality = Vernactypes.vtdefault (fun () -> 
# 32 "plugins/micromega/g_zify.mlg"
                                                              Zify.BinOpSpec.register locality t 
# 198 "plugins/micromega/g_zify.ml"
) in
            fun t ?loc ~atts () -> coqpp_body t (Attributes.parse 
# 32 "plugins/micromega/g_zify.mlg"
      locality
# 203 "plugins/micromega/g_zify.ml"
 atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Add",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal
            ("UnOpSpec",
             Vernacextend.TyNonTerminal (Extend.TUentry (Genarg.get_arg_tag wit_reference),
             Vernacextend.TyNil)))),
          (let coqpp_body t locality = Vernactypes.vtdefault (fun () -> 
# 33 "plugins/micromega/g_zify.mlg"
                                                              Zify.UnOpSpec.register locality t 
# 219 "plugins/micromega/g_zify.ml"
) in
            fun t ?loc ~atts () -> coqpp_body t (Attributes.parse 
# 33 "plugins/micromega/g_zify.mlg"
      locality
# 224 "plugins/micromega/g_zify.ml"
 atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Add",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal
            ("Saturate",
             Vernacextend.TyNonTerminal (Extend.TUentry (Genarg.get_arg_tag wit_reference),
             Vernacextend.TyNil)))),
          (let coqpp_body t locality = Vernactypes.vtdefault (fun () -> 
# 34 "plugins/micromega/g_zify.mlg"
                                                              Zify.Saturate.register locality t 
# 240 "plugins/micromega/g_zify.ml"
) in
            fun t ?loc ~atts () -> coqpp_body t (Attributes.parse 
# 34 "plugins/micromega/g_zify.mlg"
      locality
# 245 "plugins/micromega/g_zify.ml"
 atts)),
          None))]

let () = Tacentries.tactic_extend "rocq-runtime.plugins.zify" "ITER" ~level:0 
         [(Tacentries.TyML (Tacentries.TyIdent ("zify_iter_specs", Tacentries.TyNil), 
           (fun ist -> 
# 38 "plugins/micromega/g_zify.mlg"
                            Zify.iter_specs
# 254 "plugins/micromega/g_zify.ml"
)))]

let () = Tacentries.tactic_extend "rocq-runtime.plugins.zify" "TRANS" ~level:0 
         [(Tacentries.TyML (Tacentries.TyIdent ("zify_op", Tacentries.TyNil), 
           (fun ist -> 
# 42 "plugins/micromega/g_zify.mlg"
                      Zify.zify_tac 
# 262 "plugins/micromega/g_zify.ml"
)));
         (Tacentries.TyML (Tacentries.TyIdent ("zify_saturate", Tacentries.TyNil), 
          (fun ist -> 
# 43 "plugins/micromega/g_zify.mlg"
                            Zify.saturate 
# 268 "plugins/micromega/g_zify.ml"
)));
         (Tacentries.TyML (Tacentries.TyIdent ("zify_iter_let", Tacentries.TyArg (
                                                                Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                                Tacentries.TyNil)), 
          (fun t ist -> 
# 44 "plugins/micromega/g_zify.mlg"
                                    Zify.iter_let t 
# 276 "plugins/micromega/g_zify.ml"
)));
         (Tacentries.TyML (Tacentries.TyIdent ("zify_elim_let", Tacentries.TyNil), 
          (fun ist -> 
# 45 "plugins/micromega/g_zify.mlg"
                           Zify.elim_let 
# 282 "plugins/micromega/g_zify.ml"
)))]

let () = Vernacextend.static_vernac_extend ~plugin:(Some "rocq-runtime.plugins.zify") ~command:"ZifyPrint" ~classifier:(fun ~atts:_ _ -> Vernacextend.classify_as_sideeff) ?entry:None 
         [(Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Show",
           Vernacextend.TyTerminal
           ("Zify", Vernacextend.TyTerminal ("InjTyp", Vernacextend.TyNil))),
          (let coqpp_body () = Vernactypes.vtdefault (fun () -> 
# 49 "plugins/micromega/g_zify.mlg"
                                 Zify.InjTable.print () 
# 295 "plugins/micromega/g_zify.ml"
) in
            fun ?loc ~atts () ->
            coqpp_body (Attributes.unsupported_attributes atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Show",
           Vernacextend.TyTerminal
           ("Zify", Vernacextend.TyTerminal ("BinOp", Vernacextend.TyNil))),
          (let coqpp_body () = Vernactypes.vtdefault (fun () -> 
# 50 "plugins/micromega/g_zify.mlg"
                                 Zify.BinOp.print () 
# 309 "plugins/micromega/g_zify.ml"
) in
            fun ?loc ~atts () ->
            coqpp_body (Attributes.unsupported_attributes atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Show",
           Vernacextend.TyTerminal
           ("Zify", Vernacextend.TyTerminal ("UnOp", Vernacextend.TyNil))),
          (let coqpp_body () = Vernactypes.vtdefault (fun () -> 
# 51 "plugins/micromega/g_zify.mlg"
                                 Zify.UnOp.print () 
# 323 "plugins/micromega/g_zify.ml"
) in
            fun ?loc ~atts () ->
            coqpp_body (Attributes.unsupported_attributes atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Show",
           Vernacextend.TyTerminal
           ("Zify", Vernacextend.TyTerminal ("CstOp", Vernacextend.TyNil))),
          (let coqpp_body () = Vernactypes.vtdefault (fun () -> 
# 52 "plugins/micromega/g_zify.mlg"
                                 Zify.CstOp.print () 
# 337 "plugins/micromega/g_zify.ml"
) in
            fun ?loc ~atts () ->
            coqpp_body (Attributes.unsupported_attributes atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Show",
           Vernacextend.TyTerminal
           ("Zify", Vernacextend.TyTerminal ("BinRel", Vernacextend.TyNil))),
          (let coqpp_body () = Vernactypes.vtdefault (fun () -> 
# 53 "plugins/micromega/g_zify.mlg"
                                 Zify.BinRel.print () 
# 351 "plugins/micromega/g_zify.ml"
) in
            fun ?loc ~atts () ->
            coqpp_body (Attributes.unsupported_attributes atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Show",
           Vernacextend.TyTerminal
           ("Zify", Vernacextend.TyTerminal ("UnOpSpec", Vernacextend.TyNil))),
          (let coqpp_body () = Vernactypes.vtdefault (fun () -> 
# 54 "plugins/micromega/g_zify.mlg"
                                  Zify.UnOpSpec.print() 
# 365 "plugins/micromega/g_zify.ml"
) in
            fun ?loc ~atts () ->
            coqpp_body (Attributes.unsupported_attributes atts)),
          None));
         (Vernacextend.TyML
         (false,
          Vernacextend.TyTerminal
          ("Show",
           Vernacextend.TyTerminal
           ("Zify",
            Vernacextend.TyTerminal ("BinOpSpec", Vernacextend.TyNil))),
          (let coqpp_body () = Vernactypes.vtdefault (fun () -> 
# 55 "plugins/micromega/g_zify.mlg"
                                   Zify.BinOpSpec.print() 
# 380 "plugins/micromega/g_zify.ml"
) in
            fun ?loc ~atts () ->
            coqpp_body (Attributes.unsupported_attributes atts)),
          None))]

