K.ArgProof
{body with K.proof_name = name; K.proof_context=context} in
List.map2 build_proof patterns name_and_arities in
- let teid = get_id te in
let context,term =
(match
build_subproofs_and_args
and avoid_double_coercion subst metasenv ugraph t ty =
match t with
- | (Cic.Appl [ c1 ; (Cic.Appl [c2; head]) ]) as t when
+ | (Cic.Appl [ c1 ; (Cic.Appl [c2; head]) ]) when
CoercGraph.is_a_coercion c1 && CoercGraph.is_a_coercion c2 ->
let source_carr = CoercGraph.source_of c2 in
let tgt_carr = CicMetaSubst.apply_subst subst ty in
C.Lambda (name, aux so, aux dest)
| C.LetIn (name,so,dest) ->
C.LetIn (name, aux so, aux dest)
- | (Cic.Appl [ c1 ; (Cic.Appl [c2; head]) ]) as t when
+ | (Cic.Appl [ c1 ; (Cic.Appl [c2; head]) ]) when
CoercGraph.is_a_coercion c1 && CoercGraph.is_a_coercion c2 ->
let source_carr = CoercGraph.source_of c2 in
let tgt_carr = CoercGraph.target_of c1 in
let add_single_obj uri obj ~basedir =
let obj =
- if List.mem `Generated (CicUtil.attributes_of_obj obj) &&
+ if (*List.mem `Generated (CicUtil.attributes_of_obj obj) &&*)
not (CoercGraph.is_a_coercion (Cic.Const (uri, [])))
then
merge_coercions obj
| _::tl -> find_hyp (n+1) tl
in
let arg,gty = find_hyp 1 context in
- let last_hyp_name_of_status (proof,goal) =
- let curi, metasenv, pbo, pty = proof in
- let metano,context,gty = CicUtil.lookup_meta goal metasenv in
- match context with
- (Some (Cic.Name s,_))::_ -> s
- | _ -> assert false
- in
- let dummy = "dummy" in
+ let dummy = "dummy" in
Some arg,false,
(fun ~term typ ->
Tacticals.seq
*)
let fails f a =
try
- let tmp = (f a) in
- false
+ ignore (f a);
+ false
with
_-> true
;;
apply_tactic (PrimitiveTactics.apply_tac ~term:_Rnot_lt0) status
else
apply_tactic (Tacticals.then_
- ~start:( mk_tactic (fun status ->
- let (proof, goal) = status in
- let curi,metasenv,pbo,pty = proof in
- let metano,context,ty = CicUtil.lookup_meta goal metasenv in
- apply_tactic (PrimitiveTactics.apply_tac ~term:_Rle_not_lt) status))
+ ~start:(mk_tactic (apply_tactic (PrimitiveTactics.apply_tac ~term:_Rle_not_lt)))
~continuation:(tac_zero_infeq_pos gl (-n,d)))
status
in
in
reduceaux context [] body'
| C.Appl (C.CoFix (i,fl) :: tl) ->
- let tys =
- List.map (function (name,ty,_) -> Some (C.Name name, C.Decl ty)) fl in
let (_,_,body) = List.nth fl i in
- let body' =
- let counter = ref (List.length fl) in
- List.fold_right
- (fun _ -> decr counter ; S.subst (C.CoFix (!counter,fl)))
- fl
- body
- in
- let tl' = List.map (reduceaux context []) tl in
- reduceaux context tl' body'
+ let body' =
+ let counter = ref (List.length fl) in
+ List.fold_right
+ (fun _ -> decr counter ; S.subst (C.CoFix (!counter,fl)))
+ fl
+ body
+ in
+ let tl' = List.map (reduceaux context []) tl in
+ reduceaux context tl' body'
| t -> t
in
(match decofix (CicReduction.whd context term) with