X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Ftactics%2FnegationTactics.ml;h=e4cd7389813df6c35cdea841187be0c57a255208;hb=12cc5b2b8e7f7bb0b5e315094b008a293a4df6b1;hp=a4b7d9ba844c8868bea0ecc973107b71e67c493d;hpb=655906d74521fa49de332f54ec34bfc9d9744151;p=helm.git diff --git a/helm/ocaml/tactics/negationTactics.ml b/helm/ocaml/tactics/negationTactics.ml index a4b7d9ba8..e4cd73898 100644 --- a/helm/ocaml/tactics/negationTactics.ml +++ b/helm/ocaml/tactics/negationTactics.ml @@ -29,21 +29,24 @@ let absurd_tac ~term = let module C = Cic in let module U = UriManager in let module P = PrimitiveTactics in - let _,metasenv,_,_ = proof in - let _,context,ty = CicUtil.lookup_meta goal metasenv in - if ((CicTypeChecker.type_of_aux' metasenv context term) = (C.Sort C.Prop)) (* ma questo controllo serve?? *) - then ProofEngineTypes.apply_tactic - (P.apply_tac - ~term:( - C.Appl [(C.Const (HelmLibraryObjects.Logic.absurd_URI , [] )) ; - term ; ty]) - ) - status - else raise (ProofEngineTypes.Fail "Absurd: Not a Proposition") + let _,metasenv,_,_ = proof in + let _,context,ty = CicUtil.lookup_meta goal metasenv in + let ty_term,_ = + CicTypeChecker.type_of_aux' metasenv context term CicUniv.empty_ugraph in + if (ty_term = (C.Sort C.Prop)) (* ma questo controllo serve?? *) + then ProofEngineTypes.apply_tactic + (P.apply_tac + ~term:( + C.Appl [(C.Const (LibraryObjects.absurd_URI (), [] )) ; + term ; ty]) + ) + status + else raise (ProofEngineTypes.Fail "Absurd: Not a Proposition") in - ProofEngineTypes.mk_tactic (absurd_tac ~term) + ProofEngineTypes.mk_tactic (absurd_tac ~term) ;; +(* FG: METTERE I NOMI ANCHE QUI? CSC: in teoria si', per la intros*) let contradiction_tac = let contradiction_tac status = let module C = Cic in @@ -58,8 +61,7 @@ let contradiction_tac = T.then_ ~start: (EliminationTactics.elim_type_tac - ~term: - (C.MutInd (HelmLibraryObjects.Logic.false_URI, 0, []))) + (C.MutInd (LibraryObjects.false_URI (), 0, []))) ~continuation: VariousTactics.assumption_tac)) status with