diff options
| author | barras | 2004-10-20 13:50:08 +0000 |
|---|---|---|
| committer | barras | 2004-10-20 13:50:08 +0000 |
| commit | 9c6487ba87f448daa28158c6e916e3d932c50645 (patch) | |
| tree | 31bc965d5d14b34d4ab501cbd2350d1de44750c5 /tactics | |
| parent | 1457d6a431755627e3b52eaf74ddd09c641a9fe3 (diff) | |
COMMITED BYTECODE COMPILER
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@6245 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'tactics')
| -rw-r--r-- | tactics/hiddentac.ml | 1 | ||||
| -rw-r--r-- | tactics/hiddentac.mli | 1 | ||||
| -rw-r--r-- | tactics/leminv.ml | 5 | ||||
| -rw-r--r-- | tactics/setoid_replace.ml | 12 | ||||
| -rw-r--r-- | tactics/tacinterp.ml | 9 | ||||
| -rw-r--r-- | tactics/tacticals.ml | 2 | ||||
| -rw-r--r-- | tactics/tactics.ml | 11 |
7 files changed, 27 insertions, 14 deletions
diff --git a/tactics/hiddentac.ml b/tactics/hiddentac.ml index 0f61d3b0e2..a33d648ed2 100644 --- a/tactics/hiddentac.ml +++ b/tactics/hiddentac.ml @@ -28,6 +28,7 @@ let h_intro x = h_intro_move (Some x) None let h_intros_until x = abstract_tactic (TacIntrosUntil x) (intros_until x) let h_assumption = abstract_tactic TacAssumption assumption let h_exact c = abstract_tactic (TacExact c) (exact_check c) +let h_exact_no_check c = abstract_tactic (TacExactNoCheck c) (exact_no_check c) let h_apply cb = abstract_tactic (TacApply cb) (apply_with_bindings cb) let h_elim cb cbo = abstract_tactic (TacElim (cb,cbo)) (elim cb cbo) let h_elim_type c = abstract_tactic (TacElimType c) (elim_type c) diff --git a/tactics/hiddentac.mli b/tactics/hiddentac.mli index 711e71d919..ddfb9bd12a 100644 --- a/tactics/hiddentac.mli +++ b/tactics/hiddentac.mli @@ -29,6 +29,7 @@ val h_intros_until : quantified_hypothesis -> tactic val h_assumption : tactic val h_exact : constr -> tactic +val h_exact_no_check : constr -> tactic val h_apply : constr with_bindings -> tactic diff --git a/tactics/leminv.ml b/tactics/leminv.ml index 9fd54ee694..77d9233d19 100644 --- a/tactics/leminv.ml +++ b/tactics/leminv.ml @@ -246,8 +246,9 @@ let add_inversion_lemma name env sigma t sort dep inv_op = let _ = declare_constant name (DefinitionEntry { const_entry_body = invProof; - const_entry_type = None; - const_entry_opaque = false }, + const_entry_type = None; + const_entry_opaque = false; + const_entry_boxed = true}, IsProof Lemma) in () diff --git a/tactics/setoid_replace.ml b/tactics/setoid_replace.ml index cf0388543d..a1873770ba 100644 --- a/tactics/setoid_replace.ml +++ b/tactics/setoid_replace.ml @@ -690,7 +690,8 @@ let add_morphism lemma_infos mor_name (m,quantifiers_rev,args,output) = [| argsconstr; outputconstr; apply_to_rels m quantifiers_rev ; apply_to_rels mext quantifiers_rev |])); const_entry_type = None; - const_entry_opaque = false}, + const_entry_opaque = false; + const_entry_boxed = false}, IsDefinition)) ; mext in @@ -993,7 +994,8 @@ let int_add_relation id a aeq refl sym trans = Name (id_of_string "X"),None,mkType (Termops.new_univ ())] @ a_quantifiers_rev); const_entry_type = None; - const_entry_opaque = false}, + const_entry_opaque = false; + const_entry_boxed = false}, IsDefinition) in let id_precise = id_of_string (string_of_id id ^ "_precise_relation_class") in let xreflexive_relation_class = @@ -1009,7 +1011,8 @@ let int_add_relation id a aeq refl sym trans = {const_entry_body = Sign.it_mkLambda_or_LetIn xreflexive_relation_class a_quantifiers_rev; const_entry_type = None; - const_entry_opaque = false}, + const_entry_opaque = false; + const_entry_boxed = false }, IsDefinition) in let aeq_rel = { aeq_rel with @@ -1068,7 +1071,8 @@ let int_add_relation id a aeq refl sym trans = (DefinitionEntry {const_entry_body = Sign.it_mkLambda_or_LetIn lemma a_quantifiers_rev; const_entry_type = None; - const_entry_opaque = false}, + const_entry_opaque = false; + const_entry_boxed = false}, IsDefinition) in let a_quantifiers_rev = diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml index 6f459b15ce..00dc193325 100644 --- a/tactics/tacinterp.ml +++ b/tactics/tacinterp.ml @@ -552,7 +552,7 @@ let intern_redexp ist = function | Lazy f -> Lazy (intern_flag ist f) | Pattern l -> Pattern (List.map (intern_constr_occurrence ist) l) | Simpl o -> Simpl (option_app (intern_constr_occurrence ist) o) - | (Red _ | Hnf as r) -> r + | (Red _ | Hnf | CbvVm as r ) -> r | ExtraRedExpr (s,c) -> ExtraRedExpr (s, intern_constr ist c) let intern_inversion_strength lf ist = function @@ -637,6 +637,7 @@ let rec intern_atomic lf ist x = option_app (intern_hyp ist) ido') | TacAssumption -> TacAssumption | TacExact c -> TacExact (intern_constr ist c) + | TacExactNoCheck c -> TacExactNoCheck (intern_constr ist c) | TacApply cb -> TacApply (intern_constr_with_bindings ist cb) | TacElim (cb,cbo) -> TacElim (intern_constr_with_bindings ist cb, @@ -1233,7 +1234,7 @@ let redexp_interp ist sigma env = function | Lazy f -> Lazy (interp_flag ist env f) | Pattern l -> Pattern (List.map (interp_pattern ist sigma env) l) | Simpl o -> Simpl (option_app (interp_pattern ist sigma env) o) - | (Red _ | Hnf as r) -> r + | (Red _ | Hnf | CbvVm as r) -> r | ExtraRedExpr (s,c) -> ExtraRedExpr (s,interp_constr ist sigma env c) let pf_redexp_interp ist gl = redexp_interp ist (project gl) (pf_env gl) @@ -1653,6 +1654,7 @@ and interp_atomic ist gl = function (option_app (interp_hyp ist gl) ido') | TacAssumption -> h_assumption | TacExact c -> h_exact (pf_interp_casted_constr ist gl c) + | TacExactNoCheck c -> h_exact_no_check (pf_interp_constr ist gl c) | TacApply cb -> h_apply (interp_constr_with_bindings ist gl cb) | TacElim (cb,cbo) -> h_elim (interp_constr_with_bindings ist gl cb) @@ -1894,7 +1896,7 @@ let subst_redexp subst = function | Lazy f -> Lazy (subst_flag subst f) | Pattern l -> Pattern (List.map (subst_constr_occurrence subst) l) | Simpl o -> Simpl (option_app (subst_constr_occurrence subst) o) - | (Red _ | Hnf as r) -> r + | (Red _ | Hnf | CbvVm as r) -> r | ExtraRedExpr (s,c) -> ExtraRedExpr (s, subst_rawconstr subst c) let subst_raw_may_eval subst = function @@ -1918,6 +1920,7 @@ let rec subst_atomic subst (t:glob_atomic_tactic_expr) = match t with | TacIntroPattern _ | TacIntrosUntil _ | TacIntroMove _ as x -> x | TacAssumption as x -> x | TacExact c -> TacExact (subst_rawconstr subst c) + | TacExactNoCheck c -> TacExactNoCheck (subst_rawconstr subst c) | TacApply cb -> TacApply (subst_raw_with_bindings subst cb) | TacElim (cb,cbo) -> TacElim (subst_raw_with_bindings subst cb, diff --git a/tactics/tacticals.ml b/tactics/tacticals.ml index 3d91877d00..0a0589e967 100644 --- a/tactics/tacticals.ml +++ b/tactics/tacticals.ml @@ -369,7 +369,7 @@ let general_elim_then_using match predicate with | None -> elimclause' | Some p -> - clenv_unify true Evd.CONV (mkMeta pmv) p elimclause' + clenv_unify true Reduction.CONV (mkMeta pmv) p elimclause' in elim_res_pf_THEN_i elimclause' branchtacs gl diff --git a/tactics/tactics.ml b/tactics/tactics.ml index ad17f52483..11f2e38fe3 100644 --- a/tactics/tactics.ml +++ b/tactics/tactics.ml @@ -184,10 +184,12 @@ let change_and_check cv_pb t env sigma c = (* Use cumulutavity only if changing the conclusion not a subterm *) let change_on_subterm cv_pb t = function | None -> change_and_check cv_pb t - | Some occl -> contextually false occl (change_and_check CONV t) + | Some occl -> contextually false occl (change_and_check Reduction.CONV t) -let change_in_concl occl t = reduct_in_concl (change_on_subterm CUMUL t occl) -let change_in_hyp occl t = reduct_in_hyp (change_on_subterm CONV t occl) +let change_in_concl occl t = + reduct_in_concl (change_on_subterm Reduction.CUMUL t occl) +let change_in_hyp occl t = + reduct_in_hyp (change_on_subterm Reduction.CONV t occl) let change_option occl t = function Some id -> change_in_hyp occl t id @@ -1662,7 +1664,8 @@ let elim_scheme_type elim t gl = | Meta mv -> let clause' = (* t is inductive, then CUMUL or CONV is irrelevant *) - clenv_unify true CUMUL t (clenv_meta_type clause mv) clause in + clenv_unify true Reduction.CUMUL t + (clenv_meta_type clause mv) clause in res_pf clause' ~allow_K:true gl | _ -> anomaly "elim_scheme_type" |
