let status =
List.fold_left (fun s (uri,o,ugraph) -> MatitaSync.add_obj uri o status)
status new_coercions in
+ let statement_of name =
+ TacticAstPp.pp_statement
+ (TacticAst.Executable (CicAst.dummy_floc,
+ (TacticAst.Command (CicAst.dummy_floc,
+ (TacticAst.Coercion (CicAst.dummy_floc,
+ (CicAst.Ident (name, None)))))))) ^ "\n"
+ in
+ let moo_content_rev =
+ [statement_of (UriManager.name_of_uri coer_uri)] @
+ (List.map
+ (fun (uri, _, _) ->
+ statement_of (UriManager.name_of_uri uri))
+ new_coercions) @ status.moo_content_rev
+ in
+ let status = {status with moo_content_rev = moo_content_rev} in
{status with proof_status = No_proof}
let generate_elimination_principles uri status =
let obj = Cic.Constant (name,Some bo,ty,[],[]) in
MatitaSync.add_obj uri obj status
| TacticAst.Coercion (loc, coercion) ->
- let status = eval_coercion status coercion in
- let moo_content_rev =
- (TacticAstPp.pp_cic_command
- (TacticAst.Coercion (CicAst.dummy_floc,coercion)) ^ ".\n") ::
- status.moo_content_rev in
- {status with moo_content_rev = moo_content_rev}
+ eval_coercion status coercion
| TacticAst.Alias (loc, spec) ->
let aliases =
match spec with