]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaEngine.ml
ocaml 3.09 transition
[helm.git] / helm / matita / matitaEngine.ml
index 1d3b1f94e0d74c58525610eca3894e4e9bb46363..bf39a1caca2170658880b4673bd77b2c7bd7a874 100644 (file)
@@ -253,7 +253,7 @@ let disambiguate_tactic status goal tactic =
               with
               | Cic.MutInd (uri, tyno, _) ->
                   (GrafiteAst.Type (uri, tyno) :: types)
-              | _ -> raise Disambiguate.NoWellTypedInterpretation)
+              | _ -> raise (MatitaDisambiguator.DisambiguationError [[lazy "Decompose works only on inductive types"]]))
         in
         let types = List.fold_left disambiguate [] types in
         GrafiteAst.Decompose (loc, types, what, names)
@@ -614,8 +614,11 @@ let eval_coercion status coercion =
   let new_coercions =
     CoercGraph.close_coercion_graph src_uri tgt_uri coer_uri in
   let status =
-   List.fold_left (fun s (uri,o,_) -> MatitaSync.add_obj uri o status)
+   List.fold_left (fun s (uri,o,_) -> 
+      let status = MatitaSync.add_obj uri o status in
+      {status with coercions = uri :: status.coercions})
     status new_coercions in
+  let status = {status with coercions = coer_uri :: status.coercions} in
   let statement_of name =
     GrafiteAst.Coercion (DisambiguateTypes.dummy_floc, 
       (CicNotationPt.Ident (name, None)))
@@ -1015,6 +1018,7 @@ let initial_status =
     proof_status = No_proof;
     options = default_options ();
     objects = [];
+    coercions = [];
     notation_ids = [];
   }