let whydp log smt file =
let timeout = Wp_parameters.Timeout.get () in
let stdout = Buffer.create 80 in
let args = Array.append smt.wdp [| "-batch" ; file |] in
Log.command log "why-dp" args ;
Task.command ~timeout ~stdout "why-dp" args
>>? Log.output log stdout
>>= fun res ->
if res = 0 then Task.return Valid
else
if (1<= res && res <= 4) then Task.return Unknown
else Task.failed "Why-dp exit %d" res