diff options
author | 2015-01-25 14:42:51 +0100 | |
---|---|---|
committer | 2015-01-25 14:42:51 +0100 | |
commit | 7cfc4e5146be5666419451bdd516f1f3f264d24a (patch) | |
tree | e4197645da03dc3c7cc84e434cc31d0a0cca7056 /tactics/hipattern.mli | |
parent | 420f78b2caeaaddc6fe484565b2d0e49c66888e5 (diff) |
Imported Upstream version 8.5~beta1+dfsg
Diffstat (limited to 'tactics/hipattern.mli')
-rw-r--r-- | tactics/hipattern.mli | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/tactics/hipattern.mli b/tactics/hipattern.mli index 31dd0361..c200871e 100644 --- a/tactics/hipattern.mli +++ b/tactics/hipattern.mli @@ -1,17 +1,14 @@ (************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) -(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2014 *) +(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2015 *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) (************************************************************************) -open Util open Names open Term -open Sign open Evd -open Pattern open Coqlib (** High-order patterns *) @@ -52,13 +49,13 @@ val is_non_recursive_type : testing_function (** Non recursive type with no indices and exactly one argument for each constructor; canonical definition of n-ary disjunction if strict *) -val match_with_disjunction : ?strict:bool -> (constr * constr list) matching_function -val is_disjunction : ?strict:bool -> testing_function +val match_with_disjunction : ?strict:bool -> ?onlybinary:bool -> (constr * constr list) matching_function +val is_disjunction : ?strict:bool -> ?onlybinary:bool -> testing_function (** Non recursive tuple (one constructor and no indices) with no inner dependencies; canonical definition of n-ary conjunction if strict *) -val match_with_conjunction : ?strict:bool -> (constr * constr list) matching_function -val is_conjunction : ?strict:bool -> testing_function +val match_with_conjunction : ?strict:bool -> ?onlybinary:bool -> (constr * constr list) matching_function +val is_conjunction : ?strict:bool -> ?onlybinary:bool -> testing_function (** Non recursive tuple, possibly with inner dependencies *) val match_with_record : (constr * constr list) matching_function @@ -87,7 +84,7 @@ val is_equality_type : testing_function val match_with_nottype : (constr * constr) matching_function val is_nottype : testing_function -val match_with_forall_term : (name * constr * constr) matching_function +val match_with_forall_term : (Name.t * constr * constr) matching_function val is_forall_term : testing_function val match_with_imp_term : (constr * constr) matching_function @@ -123,20 +120,20 @@ val match_with_equation: (** Match terms [eq A t u], [identity A t u] or [JMeq A t A u] Returns associated lemmas and [A,t,u] or fails PatternMatchingFailure *) -val find_eq_data_decompose : Proof_type.goal sigma -> constr -> - coq_eq_data * (types * constr * constr) +val find_eq_data_decompose : [ `NF ] Proofview.Goal.t -> constr -> + coq_eq_data * Univ.universe_instance * (types * constr * constr) (** Idem but fails with an error message instead of PatternMatchingFailure *) -val find_this_eq_data_decompose : Proof_type.goal sigma -> constr -> - coq_eq_data * (types * constr * constr) +val find_this_eq_data_decompose : [ `NF ] Proofview.Goal.t -> constr -> + coq_eq_data * Univ.universe_instance * (types * constr * constr) (** A variant that returns more informative structure on the equality found *) -val find_eq_data : constr -> coq_eq_data * equation_kind +val find_eq_data : constr -> coq_eq_data * Univ.universe_instance * equation_kind (** Match a term of the form [(existT A P t p)] Returns associated lemmas and [A,P,t,p] *) val find_sigma_data_decompose : constr -> - coq_sigma_data * (constr * constr * constr * constr) + coq_sigma_data * (Univ.universe_instance * constr * constr * constr * constr) (** Match a term of the form [{x:A|P}], returns [A] and [P] *) val match_sigma : constr -> constr * constr @@ -150,7 +147,7 @@ val match_eqdec : constr -> bool * constr * constr * constr * constr (** Match an equality up to conversion; returns [(eq,t1,t2)] in normal form *) open Proof_type open Tacmach -val dest_nf_eq : goal sigma -> constr -> (constr * constr * constr) +val dest_nf_eq : [ `NF ] Proofview.Goal.t -> constr -> (constr * constr * constr) (** Match a negation *) val is_matching_not : constr -> bool |