X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fcomponents%2Fng_tactics%2FnTactics.ml;h=6870dab573a258ec0c0e91d06b6dfdca72fdfe5f;hb=fd12cbee622c58bc45089d62c3e6f131c238beb5;hp=dbc134319424b94f1397903077ebc1e38e68772c;hpb=894d518aa760c9f816ddb0dc2b3fa88e1fe20a94;p=helm.git diff --git a/matita/components/ng_tactics/nTactics.ml b/matita/components/ng_tactics/nTactics.ml index dbc134319..6870dab57 100644 --- a/matita/components/ng_tactics/nTactics.ml +++ b/matita/components/ng_tactics/nTactics.ml @@ -390,7 +390,7 @@ let select0_tac ~where ~job = let status, instance = mk_meta status newgoalctx (`Decl newgoalty) `IsTerm in - instantiate ~refine:false status goal instance) + instantiate ~refine:false status goal instance) ;; let select_tac ~where:((txt,txtlen,(wanted,hyps,path)) as where) ~job @@ -624,9 +624,9 @@ let case1_tac name = ;; let constructor_tac ?(num=1) ~args = distribute_tac (fun status goal -> - if num < 1 then fail (lazy "constructor numbers begin with 1"); let gty = get_goalty status goal in - let status, (r,_,_,_) = analyse_indty status gty in + let status, (r,consno,_,_) = analyse_indty status gty in + if num < 1 || num > consno then fail (lazy "Non existant constructor"); let ref = NReference.mk_constructor num r in let t = if args = [] then Ast.NRef ref else @@ -705,7 +705,7 @@ let inversion_tac ~what:(txt,len,what) ~where = in let eliminator = let _,_,w = what in - Ast.Appl [ Ast.Ident (name,None) ; Ast.Implicit `Vector ; w ] + Ast.Appl [ Ast.Ident (name,None) ; Ast.Implicit `Vector ; w ; Ast.Implicit `Vector] in exact_tac ("",0,eliminator) status) ]) ;;