aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ide/coq_commands.ml1
-rw-r--r--tactics/extratactics.ml416
2 files changed, 16 insertions, 1 deletions
diff --git a/ide/coq_commands.ml b/ide/coq_commands.ml
index 1971fb4f0..0176ccf85 100644
--- a/ide/coq_commands.ml
+++ b/ide/coq_commands.ml
@@ -22,6 +22,7 @@ let commands = [
"Add Rec ML Path";
"Add Ring A Aplus Amult Aone Azero Ainv Aeq T [ c1 ... cn ]. ";
"Add Semi Ring A Aplus Amult Aone Azero Aeq T [ c1 ... cn ].";
+ "Add Relation";
"Add Setoid";
"Axiom";];
[(* "Back"; *) ];
diff --git a/tactics/extratactics.ml4 b/tactics/extratactics.ml4
index 7cc6cd5bd..694e88801 100644
--- a/tactics/extratactics.ml4
+++ b/tactics/extratactics.ml4
@@ -174,10 +174,24 @@ TACTIC EXTEND SetoidRewrite
END
VERNAC COMMAND EXTEND AddSetoid
-| [ "Add" "Setoid" constr(a) constr(aeq) constr(t) ] -> [ add_setoid a aeq t ]
+ [ "Add" "Setoid" constr(a) constr(aeq) constr(t) ] -> [ add_setoid a aeq t ]
| [ "Add" "Morphism" constr(m) ":" ident(s) ] -> [ new_named_morphism s m ]
END
+VERNAC COMMAND EXTEND AddRelation1
+ [ "Add" "Relation" constr(a) constr(aeq) "reflexivity" "proved" "by" constr(t) "symmetry" "proved" "by" constr(t')] ->
+ [ add_relation a aeq (Some t) (Some t') ]
+| [ "Add" "Relation" constr(a) constr(aeq) "reflexivity" "proved" "by" constr(t) ] ->
+ [ add_relation a aeq (Some t) None ]
+| [ "Add" "Relation" constr(a) constr(aeq) ] ->
+ [ add_relation a aeq None None ]
+END
+
+VERNAC COMMAND EXTEND AddRelation2
+ [ "Add" "Relation" constr(a) constr(aeq) "symmetry" "proved" "by" constr(t')] ->
+ [ add_relation a aeq None (Some t') ]
+END
+
(* Inversion lemmas (Leminv) *)
open Inv