isac-java/src/java-tests/isac/bridge/TestTerm.scala
author Walther Neuper <wneuper@ist.tugraz.at>
Fri, 22 Jan 2016 18:30:47 +0100
changeset 4849 b007eb31d6f9
child 4851 d0e38e353a6a
permissions -rw-r--r--
example for libisabelle transporting a term isac-java/scala <-- Isabelle

cf https://intra.ist.tugraz.at/hg/isa/rev/df727a458e7c
     1 package isac.bridge
     2 
     3 import junit.framework.TestCase
     4 
     5 import scala.concurrent._
     6 import scala.concurrent.ExecutionContext.Implicits.global
     7 import scala.concurrent.duration._
     8 import java.nio.file.Paths
     9 import edu.tum.cs.isabelle._
    10 import edu.tum.cs.isabelle.api._
    11 import edu.tum.cs.isabelle.japi._
    12 import edu.tum.cs.isabelle.pure._
    13 import edu.tum.cs.isabelle.hol._
    14 
    15 class TestTerm extends TestCase {
    16 
    17   val ReadTerm = Operation.implicitly[(String, Typ, String), Option[Term]]("read_term")
    18   
    19   val MakeInt = Operation.implicitly[Unit, Term]("make_int")
    20   
    21   def testTerm() {
    22     val env = JSetup.makeEnvironment(
    23                 Paths.get("/usr/local/isabisac"), JPlatform.guess(), new Version("2015"))
    24     val config = Configuration.fromBuiltin("libisabelle_Isac")
    25     val sys = Await.result(System.create(env, config), 10.seconds)
    26     val thy = Theory(sys, "Main")
    27     
    28     val expr = Await.result(Expr.ofString[scala.math.BigInt](thy, "3"), 10.seconds)
    29     println(expr)
    30     
    31     val expr2 = Await.result(sys.invoke(ReadTerm)(("3", Type("Int.int", Nil), "Main")), 10.seconds)
    32     println(expr2)
    33     
    34     val expr3 = Await.result(sys.invoke(MakeInt)(()), 10.seconds)
    35     println(expr3)
    36     
    37     val t: Term = Const("HOL.True", Typ.dummyT)
    38     
    39     t match {
    40       case Const(_, _) =>
    41       case Free(_, _) =>
    42     }
    43   }
    44   
    45 }