diff options
| author | Enrico Tassi | 2013-12-31 16:25:25 +0100 |
|---|---|---|
| committer | Enrico Tassi | 2014-01-05 16:55:59 +0100 |
| commit | f8970ec2140662274bb10f0eb8d3ca72924835c7 (patch) | |
| tree | be571df76cb769d482d389ec13e2b11cd51371b3 /proofs/proof_using.mli | |
| parent | 8e57267d4a08103506ebd6dd99b21c1f13813461 (diff) | |
Proof_using: new syntax + suggestion
Proof using can be followed by:
- All : all variables
- Type : all variables occurring in the type
- expr:
- (a b .. c) : set
- expr + expr : set union
- expr - expr : set difference
- -expr : set complement (All - expr)
Exceptions:
- a singleton set can be written without parentheses. This also allows
the implementation of named sets sharing the same name space of
section hyps ans write
- bla - x : where bla is defined as (a b .. x y) elsewhere.
- if expr is just a set, then parentheses can be omitted
This module also implements some AI to tell the user how he could
decorate "Proof" with a "using BLA" clause.
Finally, one can Set Default Proof Using "str" to any string that is
used whenever the "using ..." part is missing. The coding of this
sucks a little since it is the parser that applies the default.
Diffstat (limited to 'proofs/proof_using.mli')
| -rw-r--r-- | proofs/proof_using.mli | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/proofs/proof_using.mli b/proofs/proof_using.mli new file mode 100644 index 0000000000..f1731621de --- /dev/null +++ b/proofs/proof_using.mli @@ -0,0 +1,24 @@ +(************************************************************************) +(* v * The Coq Proof Assistant / The Coq Development Team *) +(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2013 *) +(* \VV/ **************************************************************) +(* // * This file is distributed under the terms of the *) +(* * GNU Lesser General Public License Version 2.1 *) +(************************************************************************) + + +(* [minimize_hyps e s1] gives [s2] s.t. [Id.Set.subset s2 s1] is [true] + * and [keep_hyps e s1] is equal to [keep_hyps e s2]. Inefficient. *) +val minimize_hyps : Environ.env -> Names.Id.Set.t -> Names.Id.Set.t + +(* [minimize_unused_hyps e s1] gives [s2] s.t. [Id.Set.subset s2 s1] is [true] + * and s.t. calling [clear s1] would do the same as [clear s2]. Inefficient. *) +val minimize_unused_hyps : Environ.env -> Names.Id.Set.t -> Names.Id.Set.t + +val process_expr : + Environ.env -> Vernacexpr.section_subset_descr -> Constr.types list -> + Names.Id.t list + +val to_string : Vernacexpr.section_subset_descr -> string + +val get_default_proof_using : unit -> string option |
