Actually, I was thinking there's probably something in gonum more suitable than expressing it as a linear program. When I do searches for boolean satisfiability problem for example, simplex is not what's mentioned in papers. From what I have understood (I'm by no means an expert in any of this), it just so happens people have been able to coerce a solution to these kinds of problems (boolean and integer) with simplex. To me that read as do-able but not efficient.
I also found it curious what those solutions actually meant when expressed from an LP. For example, for boolean the problem/solution were considered relaxed since the result is in range 0..1 instead of 0 or 1 and there was another step for further resolving i forget. That also brings into question accumulated floating point error for something that really shouldn't suffer from that, boolean or integer operations. I didn't dig too much further since I was mostly just interested in what formal verification entailed and understanding what many of the tools were doing, but i certainly felt like if i really wanted to I could manually express a model check today in a test file. On Tue, Jun 28, 2016 at 2:49 AM Seb Binet <seb.bi...@gmail.com> wrote: > On Tue, Jun 28, 2016 at 12:24 AM, Daniel Skinner <dan...@dasa.cc> wrote: > >> > I think a better question is: can go tools for formal verification >> become available? >> >> I did some research on formal verification recently, no experience >> previously. I don't really see why not. Just digging through my own code, I >> have an implementation of the simplex method which I could use to solve >> boolean and integer linear optimizations. Gonum likely has better >> optimizers up for the tasks, though i haven't looked. >> > > FYI, they are here: > https://godoc.org/github.com/gonum/optimize/convex/lp > https://godoc.org/github.com/gonum/optimize#Method > > examples: > > https://godoc.org/github.com/gonum/optimize#example-Local > https://godoc.org/github.com/gonum/optimize/convex/lp#example-Simplex > > hth, > -s > > >> It just seemed like the most difficult part would be providing an >> intuitive way of defining the problem given a domain. Of course, static >> analysis is great too and you made me curious, what's missing from the `go` >> package to go that route? >> >> On Sun, Jun 26, 2016 at 3:49 PM <w...@iri-labs.com> wrote: >> >>> I think a better question is: can go tools for formal verification >>> become available? The distinction is that formal verification tools can be >>> applied to >>> hardware, protocols, assembly, software, etc. Why not do that in go? >>> >>> Most such tools are in C or C++, and the low level engines/components >>> are highly optimised. Go can easily compete with "standard" C/C++, i.e. >>> software which has not been highly optimised. It also provides enough >>> low-level access to be competitive against highly optimised C/C++ (e.g. >>> assembly, precision of memory representations) but it takes work. >>> >>> One of the research initiatives we are taking up is "scalable cloud >>> architectures for formal technologies". Basically, composable cloud >>> microservices for formal technologies like model checking, SAT/BDD/SMT, >>> theorem proving, as well as encoders for verification problems, etc, but in >>> terms of deployment in the cloud. A related startup is satalia. Go is a >>> natural fit for this initiative, and we already have some results with go. >>> >>> I think the biggest obstacle to formal tools targeting analysis of go >>> programs is formal representations in the golang "go" package. Once that >>> is available, things will start to snowball. >>> >>> >>> >>> >>> >>> Le lundi 9 mars 2015 01:07:36 UTC+1, Camilo Aguilar a écrit : >>>> >>>> I ran across this post today: >>>> http://blog.adacore.com/testing-static-formal. Basically, showing how >>>> you can do formal verifications in ADA2012. Is it realistic to think that a >>>> feature like that would someday arrive to Go? >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "golang-nuts" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to golang-nuts+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.