aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--contrib/subtac/Utils.v4
-rw-r--r--contrib/subtac/subtac_cases.ml3
-rw-r--r--ide/coq_commands.ml15
-rw-r--r--ide/highlight.mll9
-rw-r--r--tools/coqdoc/output.ml2
5 files changed, 22 insertions, 11 deletions
diff --git a/contrib/subtac/Utils.v b/contrib/subtac/Utils.v
index 4ef4f3ece..102fa94ad 100644
--- a/contrib/subtac/Utils.v
+++ b/contrib/subtac/Utils.v
@@ -12,8 +12,8 @@ Notation "( x & ? )" := (@exist _ _ x _) : core_scope.
Notation " ! " := (False_rect _ _).
-(* Logical if : keep a trace of the control flow in obligations. *)
-Notation " 'lif' b 'then' e 'else' f " := (match b with true => e | false => f end) (at level 30).
+Require Import Coq.Bool.Sumbool.
+Notation "'dec'" := (sumbool_of_bool) (at level 0).
Definition ex_pi1 (A : Prop) (P : A -> Prop) (t : ex P) : A.
intros.
diff --git a/contrib/subtac/subtac_cases.ml b/contrib/subtac/subtac_cases.ml
index 6086bd547..17110c058 100644
--- a/contrib/subtac/subtac_cases.ml
+++ b/contrib/subtac/subtac_cases.ml
@@ -2094,11 +2094,10 @@ let compile_cases loc (typing_fun, isevars) (tycon : Evarutil.type_constraint) e
let _, j = compile pb in
(* We check for unused patterns *)
List.iter (check_unused_pattern env) matx;
- let ty = tycon_constr in
let body = it_mkLambda_or_LetIn (applistc j.uj_val args) lets in
let j =
{ uj_val = it_mkLambda_or_LetIn body tomatchs_lets;
- uj_type = ty; }
+ uj_type = out_some (valcon_of_tycon tycon0); }
in j
(* inh_conv_coerce_to_tycon loc env isevars j tycon0 *)
else
diff --git a/ide/coq_commands.ml b/ide/coq_commands.ml
index 4dde60111..a8edc4061 100644
--- a/ide/coq_commands.ml
+++ b/ide/coq_commands.ml
@@ -77,10 +77,17 @@ let commands = [
["Module";
"Module Type";
"Mutual Inductive";];
- ["Notation";];
- ["Opaque";];
+ ["Notation";
+ "Next Obligation";];
+ ["Opaque";
+ "Obligations Tactic";];
["Parameter";
- "Proof."];
+ "Proof.";
+ "Program Definition";
+ "Program Fixpoint";
+ "Program Lemma";
+ "Program Theorem";
+ ];
["Qed.";
];
["Read Module";
@@ -155,6 +162,8 @@ let state_preserving = [
"Extraction Module";
"Inspect";
"Locate";
+
+ "Obligations";
"Print";
"Print All.";
"Print Classes";
diff --git a/ide/highlight.mll b/ide/highlight.mll
index ea2f5bca4..c033a6af5 100644
--- a/ide/highlight.mll
+++ b/ide/highlight.mll
@@ -28,7 +28,8 @@
"Notation"; "Proof" ; "Print"; "Qed" ;
"Require" ; "Reset"; "Undo"; "Save" ;
"Section" ; "Unset" ;
- "Set" ; "Notation"
+ "Set" ; "Notation";
+ "Implicit"; "Arguments"; "Unfold"; "Resolve"
];
Hashtbl.mem h
@@ -36,7 +37,7 @@
let h = Hashtbl.create 97 in
List.iter (fun s -> Hashtbl.add h s ())
[ "forall"; "fun"; "match"; "fix"; "cofix"; "with"; "for";
- "end"; "as"; "let"; "if"; "then"; "else"; "return";
+ "end"; "as"; "let"; "in"; "dest"; "if"; "then"; "else"; "return";
"Prop"; "Set"; "Type"];
Hashtbl.mem h
@@ -45,7 +46,7 @@
List.iter (fun s -> Hashtbl.add h s ())
[ "Theorem" ; "Lemma" ; "Fact" ; "Remark" ; "Corollary" ; "Proposition" ; "Property" ;
"Definition" ; "Let" ; "Example" ; "SubClass" ; "Inductive" ; "CoInductive" ;
- "Record" ; "Structure" ; "Fixpoint" ; "CoFixpoint";
+ "Record" ; "Structure" ; "Fixpoint" ; "CoFixpoint";
"Hypothesis" ; "Variable" ; "Axiom" ; "Parameter" ; "Conjecture" ;
"Hypotheses" ; "Variables" ; "Axioms" ; "Parameters"
];
@@ -74,12 +75,14 @@ let declaration =
"Inductive" | "CoInductive" |
"Record" | "Structure" |
"Fixpoint" | "CoFixpoint"
+
rule next_order = parse
| "(*"
{ comment_start := lexeme_start lexbuf; comment lexbuf }
| "Module Type"
{ lexeme_start lexbuf, lexeme_end lexbuf, "kwd" }
+ | "Program" space+ ident as id { lexeme_start lexbuf, lexeme_end lexbuf, "decl" }
| ident as id
{ if is_keyword id then
lexeme_start lexbuf, lexeme_end lexbuf, "kwd"
diff --git a/tools/coqdoc/output.ml b/tools/coqdoc/output.ml
index 4bd897321..45017db8d 100644
--- a/tools/coqdoc/output.ml
+++ b/tools/coqdoc/output.ml
@@ -51,7 +51,7 @@ let is_keyword =
"in"; "invariant"; "let"; "of"; "ref"; "state"; "then"; "variant";
"while"; i*)
(*i (* coq terms *) *)
- "match"; "in"; "return"; "with"; "end"; "let"; "dest"; "fun"; "if"; "then"; "else"; "Prop"; "Set"; "Type"; ":="
+ "match"; "as"; "in"; "return"; "with"; "end"; "let"; "dest"; "fun"; "if"; "then"; "else"; "Prop"; "Set"; "Type"; ":="
]
(*s Current Coq module *)