diff options
author | courant <courant@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2002-10-02 15:21:23 +0000 |
---|---|---|
committer | courant <courant@85f007b7-540e-0410-9357-904b9bb8a0f7> | 2002-10-02 15:21:23 +0000 |
commit | b0ee21fe08a16aabb211bc4672062fd19cb6a370 (patch) | |
tree | 78f78fb6e00838d8b286196af49f499c8c150311 | |
parent | 04fe5b8a07e0981e8f127fe89f26ff10db124e0c (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.ml | 6 |
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) |