aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar courant <courant@85f007b7-540e-0410-9357-904b9bb8a0f7>2002-10-02 15:21:23 +0000
committerGravatar courant <courant@85f007b7-540e-0410-9357-904b9bb8a0f7>2002-10-02 15:21:23 +0000
commitb0ee21fe08a16aabb211bc4672062fd19cb6a370 (patch)
tree78f78fb6e00838d8b286196af49f499c8c150311
parent04fe5b8a07e0981e8f127fe89f26ff10db124e0c (diff)
Omega can now elim hyps of type False. Therefore, it knows how to deal
with goal of type 'P -> False' and is more compatible with Intuition. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@3065 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--contrib/omega/coq_omega.ml6
1 files changed, 4 insertions, 2 deletions
diff --git a/contrib/omega/coq_omega.ml b/contrib/omega/coq_omega.ml
index f1908fb38..6b6efb807 100644
--- a/contrib/omega/coq_omega.ml
+++ b/contrib/omega/coq_omega.ml
@@ -1648,6 +1648,7 @@ let destructure_hyps gl =
| [] -> (tclTHEN nat_inject coq_omega)
| (i,body,t)::lit ->
begin try match destructurate t with
+ | Kapp("False",[]) -> elim_id i
| Kapp(("Zle"|"Zge"|"Zgt"|"Zlt"|"Zne"),[t1;t2]) -> loop evbd lit
| Kapp("or",[t1;t2]) ->
(tclTHENS ((tclTHEN ((tclTHEN (elim_id i) (clear [i])))
@@ -1674,7 +1675,8 @@ let destructure_hyps gl =
(clear [i]))
(intros_using [i]))
(loop evbd ((i,None,mk_or (mk_not t1) t2)::lit)))
- end else loop evbd lit
+ end else
+ loop evbd lit
| Kapp("not",[t]) ->
begin match destructurate t with
Kapp("or",[t1;t2]) ->
@@ -1842,7 +1844,7 @@ let destructure_goal gl =
let concl = pf_concl gl in
let rec loop t =
match destructurate t with
- | Kapp("not",[t1;t2]) ->
+ | Kapp("not",[t]) ->
(tclTHEN
(tclTHEN (unfold sp_not) intro)
destructure_hyps)