
# 19 "plugins/micromega/g_micromega.mlg"
 

open Ltac_plugin
open Stdarg
open Tacarg





let __coq_plugin_name = "micromega_plugin"
let _ = Mltop.add_known_module __coq_plugin_name
let () = Tacentries.tactic_extend __coq_plugin_name "PsatzZ" ~level:0 
         [(Tacentries.TyML (Tacentries.TyIdent ("psatz_Z", Tacentries.TyArg (
                                                           Extend.TUentry (Genarg.get_arg_tag wit_nat_or_var), 
                                                           Tacentries.TyArg (
                                                           Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                           Tacentries.TyNil))), 
           (fun i t ist -> 
# 32 "plugins/micromega/g_micromega.mlg"
                                              (Coq_micromega.psatz_Z i
                                               (Tacinterp.tactic_of_value ist t))
                                               
           )));
         (Tacentries.TyML (Tacentries.TyIdent ("psatz_Z", Tacentries.TyArg (
                                                          Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                          Tacentries.TyNil)), 
          (fun t ist -> 
# 35 "plugins/micromega/g_micromega.mlg"
                               (Coq_micromega.psatz_Z (-1)) (Tacinterp.tactic_of_value ist t) 
          )))]

let () = Tacentries.tactic_extend __coq_plugin_name "Lia" ~level:0 [(
                                                                   Tacentries.TyML (
                                                                   Tacentries.TyIdent ("xlia", 
                                                                   Tacentries.TyArg (
                                                                   Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                                   Tacentries.TyNil)), 
                                                                   (fun t ist
                                                                   -> 
                                                                   
# 39 "plugins/micromega/g_micromega.mlg"
                              (Coq_micromega.xlia (Tacinterp.tactic_of_value ist t)) 
                                                                   )))]

let () = Tacentries.tactic_extend __coq_plugin_name "Nia" ~level:0 [(
                                                                   Tacentries.TyML (
                                                                   Tacentries.TyIdent ("xnlia", 
                                                                   Tacentries.TyArg (
                                                                   Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                                   Tacentries.TyNil)), 
                                                                   (fun t ist
                                                                   -> 
                                                                   
# 43 "plugins/micromega/g_micromega.mlg"
                              (Coq_micromega.xnlia (Tacinterp.tactic_of_value ist t)) 
                                                                   )))]

let () = Tacentries.tactic_extend __coq_plugin_name "NRA" ~level:0 [(
                                                                   Tacentries.TyML (
                                                                   Tacentries.TyIdent ("xnra", 
                                                                   Tacentries.TyArg (
                                                                   Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                                   Tacentries.TyNil)), 
                                                                   (fun t ist
                                                                   -> 
                                                                   
# 47 "plugins/micromega/g_micromega.mlg"
                             (Coq_micromega.nra (Tacinterp.tactic_of_value ist t))
                                                                   )))]

let () = Tacentries.tactic_extend __coq_plugin_name "NQA" ~level:0 [(
                                                                   Tacentries.TyML (
                                                                   Tacentries.TyIdent ("xnqa", 
                                                                   Tacentries.TyArg (
                                                                   Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                                   Tacentries.TyNil)), 
                                                                   (fun t ist
                                                                   -> 
                                                                   
# 51 "plugins/micromega/g_micromega.mlg"
                             (Coq_micromega.nqa (Tacinterp.tactic_of_value ist t))
                                                                   )))]

let () = Tacentries.tactic_extend __coq_plugin_name "Sos_Z" ~level:0 
         [(Tacentries.TyML (Tacentries.TyIdent ("sos_Z", Tacentries.TyArg (
                                                         Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                         Tacentries.TyNil)), 
           (fun t ist -> 
# 57 "plugins/micromega/g_micromega.mlg"
                             (Coq_micromega.sos_Z (Tacinterp.tactic_of_value ist t)) 
           )))]

let () = Tacentries.tactic_extend __coq_plugin_name "Sos_Q" ~level:0 
         [(Tacentries.TyML (Tacentries.TyIdent ("sos_Q", Tacentries.TyArg (
                                                         Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                         Tacentries.TyNil)), 
           (fun t ist -> 
# 61 "plugins/micromega/g_micromega.mlg"
                               (Coq_micromega.sos_Q (Tacinterp.tactic_of_value ist t)) 
           )))]

let () = Tacentries.tactic_extend __coq_plugin_name "Sos_R" ~level:0 
         [(Tacentries.TyML (Tacentries.TyIdent ("sos_R", Tacentries.TyArg (
                                                         Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                         Tacentries.TyNil)), 
           (fun t ist -> 
# 65 "plugins/micromega/g_micromega.mlg"
                               (Coq_micromega.sos_R (Tacinterp.tactic_of_value ist t)) 
           )))]

let () = Tacentries.tactic_extend __coq_plugin_name "LRA_Q" ~level:0 
         [(Tacentries.TyML (Tacentries.TyIdent ("lra_Q", Tacentries.TyArg (
                                                         Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                         Tacentries.TyNil)), 
           (fun t ist -> 
# 69 "plugins/micromega/g_micromega.mlg"
                                (Coq_micromega.lra_Q (Tacinterp.tactic_of_value ist t)) 
           )))]

let () = Tacentries.tactic_extend __coq_plugin_name "LRA_R" ~level:0 
         [(Tacentries.TyML (Tacentries.TyIdent ("lra_R", Tacentries.TyArg (
                                                         Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                         Tacentries.TyNil)), 
           (fun t ist -> 
# 73 "plugins/micromega/g_micromega.mlg"
                               (Coq_micromega.lra_R (Tacinterp.tactic_of_value ist t)) 
           )))]

let () = Tacentries.tactic_extend __coq_plugin_name "PsatzR" ~level:0 
         [(Tacentries.TyML (Tacentries.TyIdent ("psatz_R", Tacentries.TyArg (
                                                           Extend.TUentry (Genarg.get_arg_tag wit_nat_or_var), 
                                                           Tacentries.TyArg (
                                                           Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                           Tacentries.TyNil))), 
           (fun i t ist -> 
# 77 "plugins/micromega/g_micromega.mlg"
                                               (Coq_micromega.psatz_R i (Tacinterp.tactic_of_value ist t)) 
           )));
         (Tacentries.TyML (Tacentries.TyIdent ("psatz_R", Tacentries.TyArg (
                                                          Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                          Tacentries.TyNil)), 
          (fun t ist -> 
# 78 "plugins/micromega/g_micromega.mlg"
                                 (Coq_micromega.psatz_R (-1) (Tacinterp.tactic_of_value ist t)) 
          )))]

let () = Tacentries.tactic_extend __coq_plugin_name "PsatzQ" ~level:0 
         [(Tacentries.TyML (Tacentries.TyIdent ("psatz_Q", Tacentries.TyArg (
                                                           Extend.TUentry (Genarg.get_arg_tag wit_nat_or_var), 
                                                           Tacentries.TyArg (
                                                           Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                           Tacentries.TyNil))), 
           (fun i t ist -> 
# 82 "plugins/micromega/g_micromega.mlg"
                                              (Coq_micromega.psatz_Q i (Tacinterp.tactic_of_value ist t)) 
           )));
         (Tacentries.TyML (Tacentries.TyIdent ("psatz_Q", Tacentries.TyArg (
                                                          Extend.TUentry (Genarg.get_arg_tag wit_tactic), 
                                                          Tacentries.TyNil)), 
          (fun t ist -> 
# 83 "plugins/micromega/g_micromega.mlg"
                                (Coq_micromega.psatz_Q (-1) (Tacinterp.tactic_of_value ist t)) 
          )))]

let () = Vernacextend.vernac_extend ~command:"ShowLiaProfile" ~classifier:(fun _ -> Vernacextend.classify_as_query) ?entry:None 
         [(Vernacextend.TyML (false, Vernacextend.TyTerminal ("Show", 
                                     Vernacextend.TyTerminal ("Lia", 
                                     Vernacextend.TyTerminal ("Profile", 
                                     Vernacextend.TyNil))), (let coqpp_body () = 
                                                            Vernacextend.vtdefault (fun () -> 
                                                            
# 87 "plugins/micromega/g_micromega.mlg"
                                  Coq_micromega.print_lia_profile () 
                                                            ) in fun ?loc ~atts ()
                                                            -> coqpp_body (Attributes.unsupported_attributes atts)), None))]

