diff options
| author | herbelin | 2003-09-26 09:24:44 +0000 |
|---|---|---|
| committer | herbelin | 2003-09-26 09:24:44 +0000 |
| commit | d4967e55339fe0ff24f4eae034801c71e61a0819 (patch) | |
| tree | 82b6839ae285d77edf72ff3c7ca493089a70f708 /contrib/romega | |
| parent | 6272ee75390015c486e2272a95386f4af30d6bda (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.ml | 225 |
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} *) |
