let goal = CicMkImplicit.new_meta metasenv [] in
let metasenv' = (goal,[],ref_theorem)::metasenv in
let attrs = [`Class (`InversionPrinciple); `Generated] in
+ let _subst = [] in
let proof=
- (Some inversor_uri,metasenv',Cic.Meta(goal,[]),ref_theorem, attrs) in
+ (Some inversor_uri,metasenv',_subst,Cic.Meta(goal,[]),ref_theorem, attrs) in
let _,applies =
List.fold_right
(fun _ (i,applies) ->
(proof,goal)
in
let metasenv,bo,ty, attrs =
- match proof1 with (_,metasenv,bo,ty, attrs) -> metasenv,bo,ty, attrs
+ match proof1 with (_,metasenv,_subst,bo,ty, attrs) -> metasenv,bo,ty, attrs
in
assert (metasenv = []);
Some
Cic.Constant
(UriManager.name_of_uri inversor_uri,Some bo,ty,[],[]))
with
- Inversion.EqualityNotDefinedYet -> None
+ Inversion.EqualityNotDefinedYet -> None
+ | CicRefine.RefineFailure ls ->
+ HLog.warn
+ ("CicRefine.RefineFailure during generation of inversion principle: " ^
+ Lazy.force ls) ;
+ None
+ | CicRefine.Uncertain ls ->
+ HLog.warn
+ ("CicRefine.Uncertain during generation of inversion principle: " ^
+ Lazy.force ls) ;
+ None
+ | CicRefine.AssertFailure ls ->
+ HLog.warn
+ ("CicRefine.AssertFailure during generation of inversion principle: " ^
+ Lazy.force ls) ;
+ None
in
match obj with
| Cic.InductiveDefinition (tys,_,nleft,_) ->