{"action":"created","issue":{"url":"https://api.github.com/repos/Z3Prover/z3/issues/6","labels_url":"https://api.github.com/repos/Z3Prover/z3/issues/6/labels{/name}","comments_url":"https://api.github.com/repos/Z3Prover/z3/issues/6/comments","events_url":"https://api.github.com/repos/Z3Prover/z3/issues/6/events","html_url":"https://github.com/Z3Prover/z3/issues/6","id":64710708,"number":6,"title":"Enhancement: Use operator overloading in the .NET API","user":{"login":"deiruch","id":4119188,"avatar_url":"https://avatars.githubusercontent.com/u/4119188?v=3","gravatar_id":"","url":"https://api.github.com/users/deiruch","html_url":"https://github.com/deiruch","followers_url":"https://api.github.com/users/deiruch/followers","following_url":"https://api.github.com/users/deiruch/following{/other_user}","gists_url":"https://api.github.com/users/deiruch/gists{/gist_id}","starred_url":"https://api.github.com/users/deiruch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deiruch/subscriptions","organizations_url":"https://api.github.com/users/deiruch/orgs","repos_url":"https://api.github.com/users/deiruch/repos","events_url":"https://api.github.com/users/deiruch/events{/privacy}","received_events_url":"https://api.github.com/users/deiruch/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-03-27T07:13:07Z","updated_at":"2015-03-28T13:57:13Z","closed_at":"2015-03-27T13:42:41Z","body":"* Instead of MkAnd the .NET API should use operator overloading to support && instead.\r\n* Instead of MkLE the .NET API should support >=\r\n* ...\r\n\r\nThis would make my code much easier to read.\r\n"},"comment":{"url":"https://api.github.com/repos/Z3Prover/z3/issues/comments/87232365","html_url":"https://github.com/Z3Prover/z3/issues/6#issuecomment-87232365","issue_url":"https://api.github.com/repos/Z3Prover/z3/issues/6","id":87232365,"user":{"login":"wintersteiger","id":10155819,"avatar_url":"https://avatars.githubusercontent.com/u/10155819?v=3","gravatar_id":"","url":"https://api.github.com/users/wintersteiger","html_url":"https://github.com/wintersteiger","followers_url":"https://api.github.com/users/wintersteiger/followers","following_url":"https://api.github.com/users/wintersteiger/following{/other_user}","gists_url":"https://api.github.com/users/wintersteiger/gists{/gist_id}","starred_url":"https://api.github.com/users/wintersteiger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wintersteiger/subscriptions","organizations_url":"https://api.github.com/users/wintersteiger/orgs","repos_url":"https://api.github.com/users/wintersteiger/repos","events_url":"https://api.github.com/users/wintersteiger/events{/privacy}","received_events_url":"https://api.github.com/users/wintersteiger/received_events","type":"User","site_admin":false},"created_at":"2015-03-28T13:57:13Z","updated_at":"2015-03-28T13:57:13Z","body":"Yes, that would be possible, but it would be inconsistent with the C++ and Python APIs, and the Java API as well (Java doesn't support overloading). Note that & and && are not the same in C++ (or any other language), specifically, if their result is used in an if-condition, the result of & will silently be cast to an int and compared to zero, but in Z3 there are no silent casts. If things were the other way around (&& overloadable, not &), we could think about adding just the Boolean case (not everybody needs BitVectors, but everybody needs Booleans), but that isn't the case. So after re-evaluating the situation, I'm still opposed to adding this. "}}