aboutsummaryrefslogtreecommitdiff
path: root/contrib/romega
diff options
context:
space:
mode:
authorherbelin2003-09-26 09:24:44 +0000
committerherbelin2003-09-26 09:24:44 +0000
commitd4967e55339fe0ff24f4eae034801c71e61a0819 (patch)
tree82b6839ae285d77edf72ff3c7ca493089a70f708 /contrib/romega
parent6272ee75390015c486e2272a95386f4af30d6bda (diff)
Un peu plus de souplesse dans la globalisation des noms utilises par les tactiques
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@4478 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'contrib/romega')
-rw-r--r--contrib/romega/const_omega.ml225
1 files changed, 123 insertions, 102 deletions
diff --git a/contrib/romega/const_omega.ml b/contrib/romega/const_omega.ml
index cbff8eea7d..28a969babc 100644
--- a/contrib/romega/const_omega.ml
+++ b/contrib/romega/const_omega.ml
@@ -62,125 +62,146 @@ let recognize_number t =
"POS",[t] -> loop t | "NEG",[t] -> - (loop t) | "ZERO",[] -> 0
| _ -> failwith "not a number";;
-let constant = Coqlib.gen_constant "Omega"
-
-let coq_xH = lazy (constant ["ZArith"; "fast_integer"] "xH")
-let coq_xO = lazy (constant ["ZArith"; "fast_integer"] "xO")
-let coq_xI = lazy (constant ["ZArith"; "fast_integer"] "xI")
-let coq_ZERO = lazy (constant ["ZArith"; "fast_integer"] "ZERO")
-let coq_POS = lazy (constant ["ZArith"; "fast_integer"] "POS")
-let coq_NEG = lazy (constant ["ZArith"; "fast_integer"] "NEG")
-let coq_Z = lazy (constant ["ZArith"; "fast_integer"] "Z")
-let coq_relation = lazy (constant ["ZArith"; "fast_integer"] "relation")
-let coq_SUPERIEUR = lazy (constant ["ZArith"; "fast_integer"] "SUPERIEUR")
-let coq_INFEEIEUR = lazy (constant ["ZArith"; "fast_integer"] "INFERIEUR")
-let coq_EGAL = lazy (constant ["ZArith"; "fast_integer"] "EGAL")
-let coq_Zplus = lazy (constant ["ZArith"; "fast_integer"] "Zplus")
-let coq_Zmult = lazy (constant ["ZArith"; "fast_integer"] "Zmult")
-let coq_Zopp = lazy (constant ["ZArith"; "fast_integer"] "Zopp")
+let init_dir = ["Coq";"Init"]
+let arith_dir = ["Coq";"Arith"]
+let logic_dir = ["Coq";"Logic"]
+let zarith_dir = ["Coq";"ZArith"]
+let list_dir = ["Coq";"Lists"]
+let coq_modules = [
+ zarith_dir@["fast_integer"];
+ zarith_dir@["zarith_aux"];
+ zarith_dir@["auxiliary"];
+ init_dir@["Datatypes"];
+ init_dir@["Peano"];
+ init_dir@["Logic"];
+ arith_dir@["Compare_dec"];
+ arith_dir@["Peano_dec"];
+ arith_dir@["Minus"];
+ logic_dir@["Decidable"];
+ list_dir@["PolyList"]
+]
+
+let constant = Coqlib.gen_constant_in_modules "ROmega" coq_modules
+
+let coq_xH = lazy (constant "xH")
+let coq_xO = lazy (constant "xO")
+let coq_xI = lazy (constant "xI")
+let coq_ZERO = lazy (constant "ZERO")
+let coq_POS = lazy (constant "POS")
+let coq_NEG = lazy (constant "NEG")
+let coq_Z = lazy (constant "Z")
+let coq_relation = lazy (constant "relation")
+let coq_SUPERIEUR = lazy (constant "SUPERIEUR")
+let coq_INFEEIEUR = lazy (constant "INFERIEUR")
+let coq_EGAL = lazy (constant "EGAL")
+let coq_Zplus = lazy (constant "Zplus")
+let coq_Zmult = lazy (constant "Zmult")
+let coq_Zopp = lazy (constant "Zopp")
(* auxiliaires zarith *)
-let coq_Zminus = lazy (constant ["ZArith"; "zarith_aux"] "Zminus")
-let coq_Zs = lazy (constant ["ZArith"; "zarith_aux"] "Zs")
-let coq_Zgt = lazy (constant ["ZArith"; "zarith_aux"] "Zgt")
-let coq_Zle = lazy (constant ["ZArith"; "zarith_aux"] "Zle")
-let coq_inject_nat = lazy (constant ["ZArith"; "zarith_aux"] "inject_nat")
+let coq_Zminus = lazy (constant "Zminus")
+let coq_Zs = lazy (constant "Zs")
+let coq_Zgt = lazy (constant "Zgt")
+let coq_Zle = lazy (constant "Zle")
+let coq_inject_nat = lazy (constant "inject_nat")
(* Peano *)
-let coq_le = lazy(constant ["Init"; "Peano"] "le")
-let coq_gt = lazy(constant ["Init"; "Peano"] "gt")
+let coq_le = lazy(constant "le")
+let coq_gt = lazy(constant "gt")
(* Datatypes *)
-let coq_nat = lazy(constant ["Init"; "Datatypes"] "nat")
-let coq_S = lazy(constant ["Init"; "Datatypes"] "S")
-let coq_O = lazy(constant ["Init"; "Datatypes"] "O")
+let coq_nat = lazy(constant "nat")
+let coq_S = lazy(constant "S")
+let coq_O = lazy(constant "O")
(* Minus *)
-let coq_minus = lazy(constant ["Arith"; "Minus"] "minus")
+let coq_minus = lazy(constant "minus")
(* Logic *)
-let coq_eq = lazy(constant ["Init"; "Logic"] "eq")
-let coq_refl_equal = lazy(constant ["Init"; "Logic"] "refl_equal")
-let coq_and = lazy(constant ["Init"; "Logic"] "and")
-let coq_not = lazy(constant ["Init"; "Logic"] "not")
-let coq_or = lazy(constant ["Init"; "Logic"] "or")
-let coq_ex = lazy(constant ["Init"; "Logic"] "ex")
+let coq_eq = lazy(constant "eq")
+let coq_refl_equal = lazy(constant "refl_equal")
+let coq_and = lazy(constant "and")
+let coq_not = lazy(constant "not")
+let coq_or = lazy(constant "or")
+let coq_ex = lazy(constant "ex")
(* Lists *)
-let coq_cons = lazy (constant ["Lists"; "PolyList"] "cons")
-let coq_nil = lazy (constant ["Lists"; "PolyList"] "nil")
-
-let coq_t_nat = lazy (constant module_refl_path "Tint")
-let coq_t_plus = lazy (constant module_refl_path "Tplus")
-let coq_t_mult = lazy (constant module_refl_path "Tmult")
-let coq_t_opp = lazy (constant module_refl_path "Topp")
-let coq_t_minus = lazy (constant module_refl_path "Tminus")
-let coq_t_var = lazy (constant module_refl_path "Tvar")
-let coq_t_equal = lazy (constant module_refl_path "EqTerm")
-let coq_t_leq = lazy (constant module_refl_path "LeqTerm")
-let coq_t_geq = lazy (constant module_refl_path "GeqTerm")
-let coq_t_lt = lazy (constant module_refl_path "LtTerm")
-let coq_t_gt = lazy (constant module_refl_path "GtTerm")
-let coq_t_neq = lazy (constant module_refl_path "NeqTerm")
-
-let coq_proposition = lazy (constant module_refl_path "proposition")
-let coq_interp_sequent = lazy (constant module_refl_path "interp_goal")
-let coq_normalize_sequent = lazy (constant module_refl_path "normalize_goal")
-let coq_execute_sequent = lazy (constant module_refl_path "execute_goal")
-let coq_sequent_to_hyps = lazy (constant module_refl_path "goal_to_hyps")
+let coq_cons = lazy (constant "cons")
+let coq_nil = lazy (constant "nil")
+
+let romega_constant = Coqlib.gen_constant "ROmega" module_refl_path
+
+let coq_t_nat = lazy (romega_constant "Tint")
+let coq_t_plus = lazy (romega_constant "Tplus")
+let coq_t_mult = lazy (romega_constant "Tmult")
+let coq_t_opp = lazy (romega_constant "Topp")
+let coq_t_minus = lazy (romega_constant "Tminus")
+let coq_t_var = lazy (romega_constant "Tvar")
+let coq_t_equal = lazy (romega_constant "EqTerm")
+let coq_t_leq = lazy (romega_constant "LeqTerm")
+let coq_t_geq = lazy (romega_constant "GeqTerm")
+let coq_t_lt = lazy (romega_constant "LtTerm")
+let coq_t_gt = lazy (romega_constant "GtTerm")
+let coq_t_neq = lazy (romega_constant "NeqTerm")
+
+let coq_proposition = lazy (romega_constant "proposition")
+let coq_interp_sequent = lazy (romega_constant "interp_goal")
+let coq_normalize_sequent = lazy (romega_constant "normalize_goal")
+let coq_execute_sequent = lazy (romega_constant "execute_goal")
+let coq_sequent_to_hyps = lazy (romega_constant "goal_to_hyps")
(* Constructors for shuffle tactic *)
-let coq_t_fusion = lazy (constant module_refl_path "t_fusion")
-let coq_f_equal = lazy (constant module_refl_path "F_equal")
-let coq_f_cancel = lazy (constant module_refl_path "F_cancel")
-let coq_f_left = lazy (constant module_refl_path "F_left")
-let coq_f_right = lazy (constant module_refl_path "F_right")
+let coq_t_fusion = lazy (romega_constant "t_fusion")
+let coq_f_equal = lazy (romega_constant "F_equal")
+let coq_f_cancel = lazy (romega_constant "F_cancel")
+let coq_f_left = lazy (romega_constant "F_left")
+let coq_f_right = lazy (romega_constant "F_right")
(* Constructors for reordering tactics *)
-let coq_step = lazy (constant module_refl_path "step")
-let coq_c_do_both = lazy (constant module_refl_path "C_DO_BOTH")
-let coq_c_do_left = lazy (constant module_refl_path "C_LEFT")
-let coq_c_do_right = lazy (constant module_refl_path "C_RIGHT")
-let coq_c_do_seq = lazy (constant module_refl_path "C_SEQ")
-let coq_c_nop = lazy (constant module_refl_path "C_NOP")
-let coq_c_opp_plus = lazy (constant module_refl_path "C_OPP_PLUS")
-let coq_c_opp_opp = lazy (constant module_refl_path "C_OPP_OPP")
-let coq_c_opp_mult_r = lazy (constant module_refl_path "C_OPP_MULT_R")
-let coq_c_opp_one = lazy (constant module_refl_path "C_OPP_ONE")
-let coq_c_reduce = lazy (constant module_refl_path "C_REDUCE")
-let coq_c_mult_plus_distr = lazy (constant module_refl_path "C_MULT_PLUS_DISTR")
-let coq_c_opp_left = lazy (constant module_refl_path "C_MULT_OPP_LEFT")
-let coq_c_mult_assoc_r = lazy (constant module_refl_path "C_MULT_ASSOC_R")
-let coq_c_plus_assoc_r = lazy (constant module_refl_path "C_PLUS_ASSOC_R")
-let coq_c_plus_assoc_l = lazy (constant module_refl_path "C_PLUS_ASSOC_L")
-let coq_c_plus_permute = lazy (constant module_refl_path "C_PLUS_PERMUTE")
-let coq_c_plus_sym = lazy (constant module_refl_path "C_PLUS_SYM")
-let coq_c_red0 = lazy (constant module_refl_path "C_RED0")
-let coq_c_red1 = lazy (constant module_refl_path "C_RED1")
-let coq_c_red2 = lazy (constant module_refl_path "C_RED2")
-let coq_c_red3 = lazy (constant module_refl_path "C_RED3")
-let coq_c_red4 = lazy (constant module_refl_path "C_RED4")
-let coq_c_red5 = lazy (constant module_refl_path "C_RED5")
-let coq_c_red6 = lazy (constant module_refl_path "C_RED6")
-let coq_c_mult_opp_left = lazy (constant module_refl_path "C_MULT_OPP_LEFT")
+let coq_step = lazy (romega_constant "step")
+let coq_c_do_both = lazy (romega_constant "C_DO_BOTH")
+let coq_c_do_left = lazy (romega_constant "C_LEFT")
+let coq_c_do_right = lazy (romega_constant "C_RIGHT")
+let coq_c_do_seq = lazy (romega_constant "C_SEQ")
+let coq_c_nop = lazy (romega_constant "C_NOP")
+let coq_c_opp_plus = lazy (romega_constant "C_OPP_PLUS")
+let coq_c_opp_opp = lazy (romega_constant "C_OPP_OPP")
+let coq_c_opp_mult_r = lazy (romega_constant "C_OPP_MULT_R")
+let coq_c_opp_one = lazy (romega_constant "C_OPP_ONE")
+let coq_c_reduce = lazy (romega_constant "C_REDUCE")
+let coq_c_mult_plus_distr = lazy (romega_constant "C_MULT_PLUS_DISTR")
+let coq_c_opp_left = lazy (romega_constant "C_MULT_OPP_LEFT")
+let coq_c_mult_assoc_r = lazy (romega_constant "C_MULT_ASSOC_R")
+let coq_c_plus_assoc_r = lazy (romega_constant "C_PLUS_ASSOC_R")
+let coq_c_plus_assoc_l = lazy (romega_constant "C_PLUS_ASSOC_L")
+let coq_c_plus_permute = lazy (romega_constant "C_PLUS_PERMUTE")
+let coq_c_plus_sym = lazy (romega_constant "C_PLUS_SYM")
+let coq_c_red0 = lazy (romega_constant "C_RED0")
+let coq_c_red1 = lazy (romega_constant "C_RED1")
+let coq_c_red2 = lazy (romega_constant "C_RED2")
+let coq_c_red3 = lazy (romega_constant "C_RED3")
+let coq_c_red4 = lazy (romega_constant "C_RED4")
+let coq_c_red5 = lazy (romega_constant "C_RED5")
+let coq_c_red6 = lazy (romega_constant "C_RED6")
+let coq_c_mult_opp_left = lazy (romega_constant "C_MULT_OPP_LEFT")
let coq_c_mult_assoc_reduced =
- lazy (constant module_refl_path "C_MULT_ASSOC_REDUCED")
-let coq_c_minus = lazy (constant module_refl_path "C_MINUS")
-let coq_c_mult_sym = lazy (constant module_refl_path "C_MULT_SYM")
-
-let coq_s_constant_not_nul = lazy (constant module_refl_path "O_CONSTANT_NOT_NUL")
-let coq_s_constant_neg = lazy (constant module_refl_path "O_CONSTANT_NEG")
-let coq_s_div_approx = lazy (constant module_refl_path "O_DIV_APPROX")
-let coq_s_not_exact_divide = lazy (constant module_refl_path "O_NOT_EXACT_DIVIDE")
-let coq_s_exact_divide = lazy (constant module_refl_path "O_EXACT_DIVIDE")
-let coq_s_sum = lazy (constant module_refl_path "O_SUM")
-let coq_s_state = lazy (constant module_refl_path "O_STATE")
-let coq_s_contradiction = lazy (constant module_refl_path "O_CONTRADICTION")
-let coq_s_merge_eq = lazy (constant module_refl_path "O_MERGE_EQ")
-let coq_s_split_ineq =lazy (constant module_refl_path "O_SPLIT_INEQ")
-let coq_s_constant_nul =lazy (constant module_refl_path "O_CONSTANT_NUL")
-let coq_s_negate_contradict =lazy (constant module_refl_path "O_NEGATE_CONTRADICT")
-let coq_s_negate_contradict_inv =lazy (constant module_refl_path "O_NEGATE_CONTRADICT_INV")
+ lazy (romega_constant "C_MULT_ASSOC_REDUCED")
+let coq_c_minus = lazy (romega_constant "C_MINUS")
+let coq_c_mult_sym = lazy (romega_constant "C_MULT_SYM")
+
+let coq_s_constant_not_nul = lazy (romega_constant "O_CONSTANT_NOT_NUL")
+let coq_s_constant_neg = lazy (romega_constant "O_CONSTANT_NEG")
+let coq_s_div_approx = lazy (romega_constant "O_DIV_APPROX")
+let coq_s_not_exact_divide = lazy (romega_constant "O_NOT_EXACT_DIVIDE")
+let coq_s_exact_divide = lazy (romega_constant "O_EXACT_DIVIDE")
+let coq_s_sum = lazy (romega_constant "O_SUM")
+let coq_s_state = lazy (romega_constant "O_STATE")
+let coq_s_contradiction = lazy (romega_constant "O_CONTRADICTION")
+let coq_s_merge_eq = lazy (romega_constant "O_MERGE_EQ")
+let coq_s_split_ineq =lazy (romega_constant "O_SPLIT_INEQ")
+let coq_s_constant_nul =lazy (romega_constant "O_CONSTANT_NUL")
+let coq_s_negate_contradict =lazy (romega_constant "O_NEGATE_CONTRADICT")
+let coq_s_negate_contradict_inv =lazy (romega_constant "O_NEGATE_CONTRADICT_INV")
(* \subsection{Construction d'expressions} *)