(************************************************************************) (* * The Coq Proof Assistant / The Coq Development Team *) (* v * INRIA, CNRS and contributors - Copyright 1999-2018 *) (* bignat_of_pos a | GApp (r, [a]) when is_gr r glob_NEG -> Bigint.neg (bignat_of_pos a) | GRef (a, _) when GlobRef.equal a glob_ZERO -> Bigint.zero | _ -> raise Non_closed_number ) z let uninterp_z (AnyGlobConstr p) = try Some (bigint_of_z p) with Non_closed_number -> None (************************************************************************) (* Declaring interpreters and uninterpreters for Z *) open Notation let at_declare_ml_module f x = Mltop.declare_cache_obj (fun () -> f x) __coq_plugin_name let _ = let scope = "Z_scope" in register_bignumeral_interpretation scope (z_of_int,uninterp_z); at_declare_ml_module enable_prim_token_interpretation { pt_scope = scope; pt_uid = scope; pt_required = (z_path,binnums); pt_refs = [glob_ZERO; glob_POS; glob_NEG]; pt_in_match = true }