344 |
344 |
345 sealed case class Thm_Id(serial: Long, theory_name: String) |
345 sealed case class Thm_Id(serial: Long, theory_name: String) |
346 |
346 |
347 sealed case class Thm( |
347 sealed case class Thm( |
348 prop: Prop, |
348 prop: Prop, |
349 deps: List[String], |
349 deps: List[Thm_Name], |
350 proof: Term.Proof) |
350 proof: Term.Proof) |
351 extends Content[Thm] { |
351 extends Content[Thm] { |
352 override def cache(cache: Term.Cache): Thm = |
352 override def cache(cache: Term.Cache): Thm = |
353 Thm( |
353 Thm( |
354 prop.cache(cache), |
354 prop.cache(cache), |
355 deps.map(cache.string), |
355 deps.map(cache.thm_name), |
356 cache.proof(proof)) |
356 cache.proof(proof)) |
357 } |
357 } |
358 |
358 |
359 def read_thms(theory_context: Export.Theory_Context): List[Entity[Thm]] = |
359 def read_thms(theory_context: Export.Theory_Context): List[Entity[Thm]] = |
360 read_entities(theory_context, Export.THEORY_PREFIX + "thms", Kind.THM, |
360 read_entities(theory_context, Export.THEORY_PREFIX + "thms", Kind.THM, |
361 { body => |
361 { body => |
362 import XML.Decode._ |
362 import XML.Decode._ |
363 import Term_XML.Decode._ |
363 import Term_XML.Decode._ |
364 val (prop, deps, prf) = triple(decode_prop, list(string), proof)(body) |
364 val (prop, deps, prf) = triple(decode_prop, list(Thm_Name.decode), proof)(body) |
365 Thm(prop, deps, prf) |
365 Thm(prop, deps, prf) |
366 }) |
366 }) |
367 |
367 |
368 sealed case class Proof( |
368 sealed case class Proof( |
369 typargs: List[(String, Term.Sort)], |
369 typargs: List[(String, Term.Sort)], |