Я использую https://github.com/dominique-unruh/scala-isabelle/ дайджест формализации Isabelle / HOL алгоритма быстрой сортировки https://isabelle.in.tum.de/library/HOL/HOL-Imperative_HOL/Imperative_Quicksort.html. Мне удалось импортировать теорию быстрой сортировки в контекст через
val ctxt = Context("HOL.Imperative_HOL.ex.Imperative_Quicksort")
И теперь я ожидаю, что ctxt содержит AST Impeartive_Quicksort.thy, поэтому я хотел бы преобразовать его в дерево объектов JSON. Я использую для этого каркас Lift. Мой файл buil.sbt содержит
libraryDependencies ++= {
val liftVersion = "3.4.3"
Seq(
"net.liftweb" %% "lift-webkit" % liftVersion % "compile",
"ch.qos.logback" % "logback-classic" % "1.2.3"
)
}
И код
val ctxt = Context("HOL.Imperative_HOL.ex.Imperative_Quicksort")
import net.liftweb.json._
import net.liftweb.json.Serialization.write
implicit val formats = net.liftweb.json.DefaultFormats
val jsonString = write(ctxt)
println("before jsonString")
println(jsonString)
println("after jsonString")
что дает результат в скудном количестве:
before jsonString
{"mlValue":{"id":{"_fun":{},"_ec":{},"_arg":null,"_xform":2}}}
after jsonString
Думаю, это проблема сериализации JSON. Ctxt определенно содержит теорию Impeartive_Quicksort, но есть некоторая проблема с переводом JSON.
Как я могу вывести всю теорию в виде дерева объектов JOSN для AST Imperative_Quicksort.thy?