let private_inversion_tac ~term (proof, goal) =
(*DEBUG*) debug_print (lazy ("private inversion begins"));
let private_inversion_tac ~term (proof, goal) =
(*DEBUG*) debug_print (lazy ("private inversion begins"));
- let (_,metasenv,_,_) = proof in
+ let _,metasenv,_,_, _ = proof in
parameters_tys goalty uri_of_eq in
(*DEBUG*) debug_print (lazy ("cut term " ^ CicPp.ppterm cut_term));
debug_print (lazy ("CONTEXT before apply HCUT: " ^
parameters_tys goalty uri_of_eq in
(*DEBUG*) debug_print (lazy ("cut term " ^ CicPp.ppterm cut_term));
debug_print (lazy ("CONTEXT before apply HCUT: " ^
debug_print (lazy ("termty " ^ CicPp.ppterm termty));
(* cut DXn=DXn \to GOAL *)
let proof1,gl1 = PET.apply_tactic (P.cut_tac cut_term) (proof,goal) in
debug_print (lazy ("termty " ^ CicPp.ppterm termty));
(* cut DXn=DXn \to GOAL *)
let proof1,gl1 = PET.apply_tactic (P.cut_tac cut_term) (proof,goal) in
(*DEBUG*) debug_print (lazy ("after apply HCUT;reflexivity
in private inversion"));
(* apply (ledx_ind( lambda x. lambda y, ...)) *)
(*DEBUG*) debug_print (lazy ("after apply HCUT;reflexivity
in private inversion"));
(* apply (ledx_ind( lambda x. lambda y, ...)) *)
- let (t1,metasenv,t3,t4) = proof2 in
+ let t1,metasenv,t3,t4, attrs = proof2 in
let goal2 = List.hd (List.tl gl1) in
let (_,context,_) = CicUtil.lookup_meta goal2 metasenv in
(* rightparameters type list *)
let goal2 = List.hd (List.tl gl1) in
let (_,context,_) = CicUtil.lookup_meta goal2 metasenv in
(* rightparameters type list *)
debug_print
(lazy ("Right param: " ^ (CicPp.ppterm (Cic.Appl rightparameters))));
debug_print (lazy ("CONTEXT before refinement: " ^
debug_print
(lazy ("Right param: " ^ (CicPp.ppterm (Cic.Appl rightparameters))));
debug_print (lazy ("CONTEXT before refinement: " ^
(*DEBUG*) debug_print (lazy ("private inversion: term before refinement: " ^
CicPp.ppterm t));
let (ref_t,_,metasenv'',_) = CicRefine.type_of_aux' metasenv context t
(*DEBUG*) debug_print (lazy ("private inversion: term before refinement: " ^
CicPp.ppterm t));
let (ref_t,_,metasenv'',_) = CicRefine.type_of_aux' metasenv context t
- let proof2 = (t1,metasenv'',t3,t4) in
+ let proof2 = (t1,metasenv'',t3,t4, attrs) in
- let (_,metasenv''',_,_) = proof in
+ let (_,metasenv''',_,_, _) = proof in
let module PET = ProofEngineTypes in
let inversion_tac ~term (proof, goal) =
(*DEBUG*) debug_print (lazy ("inversion begins"));
let module PET = ProofEngineTypes in
let inversion_tac ~term (proof, goal) =
(*DEBUG*) debug_print (lazy ("inversion begins"));
- let (_,metasenv,_,_) = proof in
+ let _,metasenv,_,_, _ = proof in
let (_,context,goalty) = CicUtil.lookup_meta goal metasenv in
let termty,_ = T.type_of_aux' metasenv context term CicUniv.empty_ugraph in
let uri, typeno =
let (_,context,goalty) = CicUtil.lookup_meta goal metasenv in
let termty,_ = T.type_of_aux' metasenv context term CicUniv.empty_ugraph in
let uri, typeno =
Cic.Appl ([Cic.Const(uri,[])] @ !a @ [Cic.Rel 1])
in
let t = appl_term (arity_length + (List.length cons_list)) inversor_uri in
Cic.Appl ([Cic.Const(uri,[])] @ !a @ [Cic.Rel 1])
in
let t = appl_term (arity_length + (List.length cons_list)) inversor_uri in
- let (t1,metasenv,t3,t4) = proof in
+ let (t1,metasenv,t3,t4, attrs) = proof in
let (ref_t,_,metasenv'',_) = CicRefine.type_of_aux' metasenv context t
CicUniv.empty_ugraph
in
let (ref_t,_,metasenv'',_) = CicRefine.type_of_aux' metasenv context t
CicUniv.empty_ugraph
in
- let proof = (t1,metasenv'',t3,t4) in
+ let proof = (t1,metasenv'',t3,t4, attrs) in
- let (_,metasenv''',_,_) = proof3 in
+ let (_,metasenv''',_,_, _) = proof3 in