X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Ftactics%2FproofEngineTypes.ml;h=c60b6fdc0080ae6fbbecfa238a2c215267d31c83;hb=b68e52f889215ce2c21c3d771f59b2d2057d53c1;hp=abe460775b935a5271a6cda8a5deb8e1ac5a879f;hpb=c6cc2a7227d6750076f591a62d7b1896ebf1ebfa;p=helm.git diff --git a/helm/software/components/tactics/proofEngineTypes.ml b/helm/software/components/tactics/proofEngineTypes.ml index abe460775..c60b6fdc0 100644 --- a/helm/software/components/tactics/proofEngineTypes.ml +++ b/helm/software/components/tactics/proofEngineTypes.ml @@ -28,7 +28,8 @@ (** current proof (proof uri * metas * (in)complete proof * term to be prooved) *) -type proof = UriManager.uri option * Cic.metasenv * Cic.substitution * Cic.term * Cic.term * Cic.attribute list +type proof = + UriManager.uri option * Cic.metasenv * Cic.substitution * Cic.term Lazy.t * Cic.term * Cic.attribute list (** current goal, integer index *) type goal = int type status = proof * goal @@ -45,7 +46,8 @@ let initial_status ty metasenv attrs = let newmeta_idx = aux 0 metasenv in let _subst = [] in let proof = - None, (newmeta_idx, [], ty) :: metasenv, _subst, Cic.Meta (newmeta_idx, []), ty, attrs + None, (newmeta_idx, [], ty) :: metasenv, _subst, + lazy (Cic.Meta (newmeta_idx, [])), ty, attrs in (proof, newmeta_idx) @@ -76,13 +78,15 @@ type ('term, 'lazy_term) pattern = type lazy_pattern = (Cic.term, Cic.lazy_term) pattern +let hole = Cic.Implicit (Some `Hole) + let conclusion_pattern t = let t' = match t with | None -> None | Some t -> Some (const_lazy_term t) in - t',[],Some (Cic.Implicit (Some `Hole)) + t',[], Some hole (** tactic failure *) exception Fail of string Lazy.t