X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=components%2Fcic_proof_checking%2FcicTypeChecker.ml;h=531705a3c2d40abf7d2699291e683b5da0b2e70f;hb=7d30ce89b662a9d917819586f00f4c7645923b1a;hp=3df3dc3549ea5cda47b0a891627fb52a694f5f0e;hpb=9af2c02b054a92804da88cb06d6699ce21b943c0;p=helm.git diff --git a/components/cic_proof_checking/cicTypeChecker.ml b/components/cic_proof_checking/cicTypeChecker.ml index 3df3dc354..531705a3c 100644 --- a/components/cic_proof_checking/cicTypeChecker.ml +++ b/components/cic_proof_checking/cicTypeChecker.ml @@ -1393,10 +1393,10 @@ and type_of_branch ~subst context argsno need_dummy outtype term constype = C.Appl l -> C.Appl (l@[C.Rel 1]) | t -> C.Appl [t ; C.Rel 1] in - C.Prod (C.Anonymous,so,type_of_branch ~subst + C.Prod (name,so,type_of_branch ~subst ((Some (name,(C.Decl so)))::context) argsno need_dummy (CicSubstitution.lift 1 outtype) term' de) - | _ -> raise (AssertFailure (lazy "20")) + | _ -> raise (AssertFailure (lazy "20")) (* check_metasenv_consistency checks that the "canonical" context of a metavariable is consitent - up to relocation via the relocation list l - @@ -1569,7 +1569,7 @@ and type_of_aux' ~logger ?(subst = []) metasenv context t ugraph = type_of_aux ~logger ((Some (n,(C.Def (s,Some ty))))::context) t ugraph1 in - (CicSubstitution.subst s ty1),ugraph2 + (CicSubstitution.subst ~avoid_beta_redexes:true s ty1),ugraph2 | C.Appl (he::tl) when List.length tl > 0 -> let hetype,ugraph1 = type_of_aux ~logger context he ugraph in let tlbody_and_type,ugraph2 = @@ -1772,6 +1772,15 @@ and type_of_aux' ~logger ?(subst = []) metasenv context t ugraph = R.are_convertible ~subst ~metasenv context ty_p ty_branch ugraph3 in +(* Debugging code +if not b1 then +begin +prerr_endline ("\n!OUTTYPE= " ^ CicPp.ppterm outtype); +prerr_endline ("!CONS= " ^ CicPp.ppterm cons); +prerr_endline ("!TY_CONS= " ^ CicPp.ppterm ty_cons); +prerr_endline ("#### " ^ CicPp.ppterm ty_p ^ "\n<==>\n" ^ CicPp.ppterm ty_branch); +end; +*) if not b1 then debug_print (lazy ("#### " ^ CicPp.ppterm ty_p ^ @@ -1954,7 +1963,8 @@ and type_of_aux' ~logger ?(subst = []) metasenv context t ugraph = begin CicReduction.fdebug := -1 ; eat_prods ~subst context - (CicSubstitution.subst hete t) tl ugraph1 + (CicSubstitution.subst ~avoid_beta_redexes:true hete t) + tl ugraph1 (*TASSI: not sure *) end else @@ -2156,9 +2166,12 @@ let typecheck_obj ~logger uri obj = (** wrappers which instantiate fresh loggers *) +let profiler = HExtlib.profile "K/CicTypeChecker.type_of_aux'" + let type_of_aux' ?(subst = []) metasenv context t ugraph = let logger = new CicLogger.logger in - type_of_aux' ~logger ~subst metasenv context t ugraph + profiler.HExtlib.profile + (type_of_aux' ~logger ~subst metasenv context t) ugraph let typecheck_obj uri obj = let logger = new CicLogger.logger in