src/HOL/Tools/Nitpick/kodkod.scala
changeset 72179 0841895ca438
parent 72178 2481cdb84832
child 72181 6241cbbf5a58
equal deleted inserted replaced
72178:2481cdb84832 72179:0841895ca438
    15 
    15 
    16 
    16 
    17 object Kodkod
    17 object Kodkod
    18 {
    18 {
    19   sealed case class Result(rc: Int, out: String, err: String)
    19   sealed case class Result(rc: Int, out: String, err: String)
       
    20   {
       
    21     def ok: Boolean = rc == 0
       
    22     def check: String =
       
    23       if (ok) out else error(if (err.isEmpty) "Error" else err)
       
    24   }
    20 
    25 
    21   def kodkod(source: String,
    26   def execute(source: String,
    22     solve_all: Boolean = false,
    27     solve_all: Boolean = false,
    23     prove: Boolean = false,
    28     prove: Boolean = false,
    24     max_solutions: Int = Integer.MAX_VALUE,
    29     max_solutions: Int = Integer.MAX_VALUE,
    25     cleanup_inst: Boolean = false,
    30     cleanup_inst: Boolean = false,
    26     timeout: Time = Time.zero,
    31     timeout: Time = Time.zero,
    89         context.return_code(1)
    94         context.return_code(1)
    90     }
    95     }
    91 
    96 
    92     context.result()
    97     context.result()
    93   }
    98   }
       
    99 
       
   100   def warmup(): String =
       
   101     execute(File.read(Path.explode("$KODKODI/examples/weber3.kki"))).check
    94 }
   102 }