Как получить имя названной цели в coq api

В настоящее время я работаю над программой ocaml, которая будет использовать coq api для извлечения информации о доказательствах и их целях. Для этого я хочу извлечь имя, данное цели, когда использовалось "уточнение?[Имя]" или какая-то другая тактика для обозначения цели. На данный момент я получаю текущие цели, используя свое текущее состояние проверки, чтобы извлечь их, как показано ниже.

(*currstate is the current state of the proof*)
let pstate = match currentstate.proof with
  | None ->
    begin
      failwith ""
    end
  | Some pst -> pst
in
let goals = (Proof.data pstate).goals in
...

с помощью этого метода я могу извлекать идентификаторы целей, но не их названия.

Есть ли возможность извлечь имена?

1 ответ

Наконец я нашел способ получить имя названной цели из API. Поскольку, возможно, я не единственный, кому это нужно, я отправляю ответ.

Уже существует функция, которая позволяет печатать название цели в принтере, но, к сожалению, она является частной и не может быть использована. Оно используетNames.Id.print (Termops.evar_suggested_name goal sigma) получить имя, где цель имеет тип Goal.goal и сигма типа Evd.evar_map.

Другие вопросы по тегам