Live data from Hacker News

Z3: A high-performance theorem prover from Microsoft Research

z3.codeplex.com

11–20 of 50 posts

Re: Z3: A high-performance theorem prover from Microsoft Research

#11

Did anyone make a Javascript version of this with emscripten? I am currently using Z3 on the server side but would really like a client side solution to save computational resources.

The license is a non-commercial one, which makes it impractical for many use cases. Could be why it hasn't been ported yet (I might have done so myself, had the license been otherwise).

Re: Z3: A high-performance theorem prover from Microsoft Research

#12
post #6
post #5

Though the source is available, it cannot be used for commercial purposes. https://z3.codeplex.com/sourcecontrol/latest#LICENSE.txt You may not redistribute the source on a website intending to teach the use of Z3 for commercial purposes. You also agree that MS can sell any modifications or derivative software that you produce.

Is it even legal to prohibit teaching something due to copyright infringment?

They're not prohibiting teaching. They're setting the terms under which you can copy their bits.

Re: Z3: A high-performance theorem prover from Microsoft Research

#13
post #8
post #7

Earlier quoted context omitted.

"...for commercial purposes"

Yeah, I got that first time, thanks. It is not trivial to separate commercial and non-commercial purposes. Creative commons licenses still don't have a clear criteria. So as it goes with copyright, this just has a chilling effect on the education of some compsci fundamentals. I just dont get why MS would do that, is it a competitive advantage?

Commercial = I make money from using this; Non-commercial = NOT commercial

(In case the sarcasm was a bit too thick, although it was at no less a level than your reply, I think it's plainly obvious what the licence is dictating and hope you will go into a little more detail of your viewpoint that it isn't)

Re: Z3: A high-performance theorem prover from Microsoft Research

#14
post #8
post #7

Earlier quoted context omitted.

"...for commercial purposes"

Yeah, I got that first time, thanks. It is not trivial to separate commercial and non-commercial purposes. Creative commons licenses still don't have a clear criteria. So as it goes with copyright, this just has a chilling effect on the education of some compsci fundamentals. I just dont get why MS would do that, is it a competitive advantage?

There is no bright line determination. The details depends on how well the teaching falls within fair use. For example, it isn't fair use for a teacher to make copies of the complete works of Borges when the lesson only covers 'The Library of Babel', but making a copy of 'The Library of Babel' will likely fall into fair use.

Even then, if the teacher makes the text available to the students via a public web site, then its availability to non-students puts it outside of fair use.

However, the Z3 license does not prohibit teaching in general. In fact, it says:

"You may use, copy, reproduce, and distribute this Software for any non-commercial purpose, subject to the restrictions in this MSR-LA. Some purposes which can be non-commercial are teaching, academic research, public demonstrations and personal experimentation. You may also distribute this Software with books or other teaching materials, or publish the Software on websites, that are intended to teach the use of the Software for academic or other non-commercial purposes."

How does this have "a chilling effect on the education of some compsci fundamentals"?

If the software is going to be used for commercial purposes, then Microsoft wants some of the action. If you're going to teach how to use the software for commercial purposes, then Microsoft still wants some of the action.

Re: Z3: A high-performance theorem prover from Microsoft Research

#16
Weirdly enough, I've studying this kind of thing lately.

So it seems from the various papers Z3 is oriented around infinite precision real arithmetic. It's that kind of overkill for most practical problems?

How does it compare with iSat or similar approaches in speed? One of the problems with SMT, Satisfiability Modulo Theories, is that it involves a somewhat loose connection between a SAT problem and an underlying theory prover, which can slow down the whole process if the underlying theory prover is not very fast.

http://en.wikipedia.org/wiki/Satisfiability_Modulo_Theories

Re: Z3: A high-performance theorem prover from Microsoft Research

#17
post #15

If people are using this for interesting projects, I'd love some details.

Last week I wrote a fun tool using it (actually, any SMT-LIB 2 compatible solver, of which Z3 seems to be the only open-source-ish one that works out of the box) to search for optimal branch-free load-free C implementations of small integer lookup tables (i.e. something the compiler should do but doesn't). It's really a minimal use of an SMT solver, but it saved me from having to think of a more clever algorithm than brute force.

Re: Z3: A high-performance theorem prover from Microsoft Research

#18

Weirdly enough, I've studying this kind of thing lately. So it seems from the various papers Z3 is oriented around infinite precision real arithmetic. It's that kind of overkill for most practical problems? How does it compare with iSat or similar approaches in speed? One of the problems with SMT, Satisfiability Modulo Theories, is that it involves a somewhat loose connection between a SAT problem and an underlying t…

Z3 supports many more theories than just real arithmetic. I've primarily dabbled with difference logic and bit vectors, both of which I believe benefit strongly from SMT's SAT underpinnings.

Re: Z3: A high-performance theorem prover from Microsoft Research

#19
post #8

Earlier quoted context omitted.

Yeah, I got that first time, thanks. It is not trivial to separate commercial and non-commercial purposes. Creative commons licenses still don't have a clear criteria. So as it goes with copyright, this just has a chilling effect on the education of some compsci fundamentals. I just dont get why MS would do that, is it a competitive advantage?

Commercial = I make money from using this; Non-commercial = NOT commercial (In case the sarcasm was a bit too thick, although it was at no less a level than your reply, I think it's plainly obvious what the licence is dictating and hope you will go into a little more detail of your viewpoint that it isn't)

What if you don't make money from it now, but use what you learned to profit ten minutes later? How about 10 days later? Or 10 years later?

Non-commercial use for something that is directly involved in the production of something else is fairly easy to determine; it depends on whether that something else is sold for money or not.

But for analytical software like this prover, you could indirectly use it to improve something that is sold for money, but the process of improvement is not necessarily a commercial transaction. It could be performed by students at a university, for example. I have in mind formal verification of program invariants, with potential identification of breaks, as an example.

Re: Z3: A high-performance theorem prover from Microsoft Research

#20
post #8

Earlier quoted context omitted.

Yeah, I got that first time, thanks. It is not trivial to separate commercial and non-commercial purposes. Creative commons licenses still don't have a clear criteria. So as it goes with copyright, this just has a chilling effect on the education of some compsci fundamentals. I just dont get why MS would do that, is it a competitive advantage?

Commercial = I make money from using this; Non-commercial = NOT commercial (In case the sarcasm was a bit too thick, although it was at no less a level than your reply, I think it's plainly obvious what the licence is dictating and hope you will go into a little more detail of your viewpoint that it isn't)

"Commercial = I make money from using this; Non-commercial = NOT commercial "

False. There are cases where commercial was held to mean "any use by a for profit company, regardless if the use is research, earns money directly or indirectly", etc.

Post reply on HN