X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Ftactics%2FdiscriminationTactics.ml;h=c9feaaee68da093fd97a49df693886a463fc5931;hb=97c2d258a5c524eb5c4b85208899d80751a2c82f;hp=b807728273f82e730102acfb292718dd41a24f6c;hpb=cfda0acfce3f5e0b843bfe2b7ba7c371e5690db0;p=helm.git diff --git a/helm/ocaml/tactics/discriminationTactics.ml b/helm/ocaml/tactics/discriminationTactics.ml index b80772827..c9feaaee6 100644 --- a/helm/ocaml/tactics/discriminationTactics.ml +++ b/helm/ocaml/tactics/discriminationTactics.ml @@ -59,7 +59,7 @@ let rec injection_tac ~term = T.then_ ~start:(injection1_tac ~i ~term) ~continuation:(traverse_list (i+1) tl1 tl2) - | _ -> raise (ProofEngineTypes.Fail "Discriminate: i 2 termini hanno in testa lo stesso costruttore, ma applicato a un numero diverso di termini. possibile???") ; T.id_tac + | _ -> raise (ProofEngineTypes.Fail (lazy "Discriminate: i 2 termini hanno in testa lo stesso costruttore, ma applicato a un numero diverso di termini. possibile???")) ; T.id_tac in traverse_list 1 applist1 applist2 | ((C.MutConstruct (uri1,typeno1,consno1,exp_named_subst1)), (C.MutConstruct (uri2,typeno2,consno2,exp_named_subst2))) @@ -73,9 +73,9 @@ let rec injection_tac ~term = (* raise (ProofEngineTypes.Fail "Injection: not a projectable equality but a discriminable one") ; *) T.id_tac | _ -> (* raise (ProofEngineTypes.Fail "Injection: not a projectable equality") ; *) T.id_tac ) - | _ -> raise (ProofEngineTypes.Fail "Injection: not a projectable equality") + | _ -> raise (ProofEngineTypes.Fail (lazy "Injection: not a projectable equality")) ) - | _ -> raise (ProofEngineTypes.Fail "Injection: not an equation") + | _ -> raise (ProofEngineTypes.Fail (lazy "Injection: not an equation")) ) status in ProofEngineTypes.mk_tactic (injection_tac ~term) @@ -138,7 +138,7 @@ and injection1_tac ~term ~i = in aux reduced_cty 1 ) constructor_list - | _ -> raise (ProofEngineTypes.Fail "Discriminate: object is not an Inductive Definition: it's imposible") + | _ -> raise (ProofEngineTypes.Fail (lazy "Discriminate: object is not an Inductive Definition: it's imposible")) in ProofEngineTypes.apply_tactic (T.thens @@ -158,7 +158,7 @@ and injection1_tac ~term ~i = match gty with (C.Appl (C.MutInd (_,_,_)::arglist)) -> List.nth arglist 1 - | _ -> raise (ProofEngineTypes.Fail "Injection: goal after cut is not correct") + | _ -> raise (ProofEngineTypes.Fail (lazy "Injection: goal after cut is not correct")) in ProofEngineTypes.apply_tactic (ReductionTactics.change_tac @@ -187,9 +187,9 @@ and injection1_tac ~term ~i = ) ]) status - | _ -> raise (ProofEngineTypes.Fail "Discriminate: not a discriminable equality") + | _ -> raise (ProofEngineTypes.Fail (lazy "Discriminate: not a discriminable equality")) ) - | _ -> raise (ProofEngineTypes.Fail "Discriminate: not an equality") + | _ -> raise (ProofEngineTypes.Fail (lazy "Discriminate: not an equality")) in ProofEngineTypes.mk_tactic (injection1_tac ~term ~i) ;; @@ -204,7 +204,7 @@ let discriminate'_tac ~term = let module U = UriManager in let module P = PrimitiveTactics in let module T = Tacticals in - let fail msg = raise (ProofEngineTypes.Fail ("Discriminate: " ^ msg)) in + let fail msg = raise (ProofEngineTypes.Fail (lazy ("Discriminate: " ^ msg))) in let find_discriminating_consno t1 t2 = let rec aux t1 t2 = match t1, t2 with