{"action":"created","issue":{"url":"https://api.github.com/repos/hakaru-dev/hakaru/issues/79","repository_url":"https://api.github.com/repos/hakaru-dev/hakaru","labels_url":"https://api.github.com/repos/hakaru-dev/hakaru/issues/79/labels{/name}","comments_url":"https://api.github.com/repos/hakaru-dev/hakaru/issues/79/comments","events_url":"https://api.github.com/repos/hakaru-dev/hakaru/issues/79/events","html_url":"https://github.com/hakaru-dev/hakaru/issues/79","id":233899714,"number":79,"title":"Testing equivalence of Hakaru programs","user":{"login":"JacquesCarette","id":1855141,"avatar_url":"https://avatars1.githubusercontent.com/u/1855141?v=3","gravatar_id":"","url":"https://api.github.com/users/JacquesCarette","html_url":"https://github.com/JacquesCarette","followers_url":"https://api.github.com/users/JacquesCarette/followers","following_url":"https://api.github.com/users/JacquesCarette/following{/other_user}","gists_url":"https://api.github.com/users/JacquesCarette/gists{/gist_id}","starred_url":"https://api.github.com/users/JacquesCarette/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JacquesCarette/subscriptions","organizations_url":"https://api.github.com/users/JacquesCarette/orgs","repos_url":"https://api.github.com/users/JacquesCarette/repos","events_url":"https://api.github.com/users/JacquesCarette/events{/privacy}","received_events_url":"https://api.github.com/users/JacquesCarette/received_events","type":"User","site_admin":false},"labels":[{"id":459554633,"url":"https://api.github.com/repos/hakaru-dev/hakaru/labels/Design","name":"Design","color":"d93f0b","default":false}],"state":"closed","locked":false,"assignee":{"login":"zaxtax","id":8529,"avatar_url":"https://avatars2.githubusercontent.com/u/8529?v=3","gravatar_id":"","url":"https://api.github.com/users/zaxtax","html_url":"https://github.com/zaxtax","followers_url":"https://api.github.com/users/zaxtax/followers","following_url":"https://api.github.com/users/zaxtax/following{/other_user}","gists_url":"https://api.github.com/users/zaxtax/gists{/gist_id}","starred_url":"https://api.github.com/users/zaxtax/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zaxtax/subscriptions","organizations_url":"https://api.github.com/users/zaxtax/orgs","repos_url":"https://api.github.com/users/zaxtax/repos","events_url":"https://api.github.com/users/zaxtax/events{/privacy}","received_events_url":"https://api.github.com/users/zaxtax/received_events","type":"User","site_admin":false},"assignees":[{"login":"zaxtax","id":8529,"avatar_url":"https://avatars2.githubusercontent.com/u/8529?v=3","gravatar_id":"","url":"https://api.github.com/users/zaxtax","html_url":"https://github.com/zaxtax","followers_url":"https://api.github.com/users/zaxtax/followers","following_url":"https://api.github.com/users/zaxtax/following{/other_user}","gists_url":"https://api.github.com/users/zaxtax/gists{/gist_id}","starred_url":"https://api.github.com/users/zaxtax/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zaxtax/subscriptions","organizations_url":"https://api.github.com/users/zaxtax/orgs","repos_url":"https://api.github.com/users/zaxtax/repos","events_url":"https://api.github.com/users/zaxtax/events{/privacy}","received_events_url":"https://api.github.com/users/zaxtax/received_events","type":"User","site_admin":false},{"login":"JacquesCarette","id":1855141,"avatar_url":"https://avatars1.githubusercontent.com/u/1855141?v=3","gravatar_id":"","url":"https://api.github.com/users/JacquesCarette","html_url":"https://github.com/JacquesCarette","followers_url":"https://api.github.com/users/JacquesCarette/followers","following_url":"https://api.github.com/users/JacquesCarette/following{/other_user}","gists_url":"https://api.github.com/users/JacquesCarette/gists{/gist_id}","starred_url":"https://api.github.com/users/JacquesCarette/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JacquesCarette/subscriptions","organizations_url":"https://api.github.com/users/JacquesCarette/orgs","repos_url":"https://api.github.com/users/JacquesCarette/repos","events_url":"https://api.github.com/users/JacquesCarette/events{/privacy}","received_events_url":"https://api.github.com/users/JacquesCarette/received_events","type":"User","site_admin":false},{"login":"ccshan","id":4238073,"avatar_url":"https://avatars3.githubusercontent.com/u/4238073?v=3","gravatar_id":"","url":"https://api.github.com/users/ccshan","html_url":"https://github.com/ccshan","followers_url":"https://api.github.com/users/ccshan/followers","following_url":"https://api.github.com/users/ccshan/following{/other_user}","gists_url":"https://api.github.com/users/ccshan/gists{/gist_id}","starred_url":"https://api.github.com/users/ccshan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ccshan/subscriptions","organizations_url":"https://api.github.com/users/ccshan/orgs","repos_url":"https://api.github.com/users/ccshan/repos","events_url":"https://api.github.com/users/ccshan/events{/privacy}","received_events_url":"https://api.github.com/users/ccshan/received_events","type":"User","site_admin":false},{"login":"yuriy0","id":7536453,"avatar_url":"https://avatars1.githubusercontent.com/u/7536453?v=3","gravatar_id":"","url":"https://api.github.com/users/yuriy0","html_url":"https://github.com/yuriy0","followers_url":"https://api.github.com/users/yuriy0/followers","following_url":"https://api.github.com/users/yuriy0/following{/other_user}","gists_url":"https://api.github.com/users/yuriy0/gists{/gist_id}","starred_url":"https://api.github.com/users/yuriy0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yuriy0/subscriptions","organizations_url":"https://api.github.com/users/yuriy0/orgs","repos_url":"https://api.github.com/users/yuriy0/repos","events_url":"https://api.github.com/users/yuriy0/events{/privacy}","received_events_url":"https://api.github.com/users/yuriy0/received_events","type":"User","site_admin":false}],"milestone":null,"comments":9,"created_at":"2017-06-06T13:54:24Z","updated_at":"2017-07-07T15:01:22Z","closed_at":"2017-07-07T15:01:22Z","body":"As issue #75 mentions, an issue from long ago is resurfacing:  how do we test that two Hakaru programs are 'trivially' equivalent.  I think we'd like to be able to abstract over alpha-equivalence, commutativity-associativity of + and * and && and || .  We might want to not worry about some amount of polynomial arithmetic.  Although I must admit that I would like to not consider \r\n\r\n    x + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 +0\r\n\r\nequivalent to\r\n\r\n    x\r\n\r\n!  [The point is that, in a test, we'd want to know if we're spitting out lots of `+ 0` that we were not expecting.]\r\n\r\nSuggestion: we create a new (simple) data-type in Haskell which is first-order (we can use gensym to generate fresh names) that represents Hakaru programs, for the sole purpose of equivalence testing.  This would be a 'throwaway' representation.  Its only guarantee would be that it produces a 'normal form' with respect to a set of rules (such as alpha-equivalence, etc) that we deem to be 'trivial'."},"comment":{"url":"https://api.github.com/repos/hakaru-dev/hakaru/issues/comments/313706798","html_url":"https://github.com/hakaru-dev/hakaru/issues/79#issuecomment-313706798","issue_url":"https://api.github.com/repos/hakaru-dev/hakaru/issues/79","id":313706798,"user":{"login":"yuriy0","id":7536453,"avatar_url":"https://avatars1.githubusercontent.com/u/7536453?v=3","gravatar_id":"","url":"https://api.github.com/users/yuriy0","html_url":"https://github.com/yuriy0","followers_url":"https://api.github.com/users/yuriy0/followers","following_url":"https://api.github.com/users/yuriy0/following{/other_user}","gists_url":"https://api.github.com/users/yuriy0/gists{/gist_id}","starred_url":"https://api.github.com/users/yuriy0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yuriy0/subscriptions","organizations_url":"https://api.github.com/users/yuriy0/orgs","repos_url":"https://api.github.com/users/yuriy0/repos","events_url":"https://api.github.com/users/yuriy0/events{/privacy}","received_events_url":"https://api.github.com/users/yuriy0/received_events","type":"User","site_admin":false},"created_at":"2017-07-07T15:01:22Z","updated_at":"2017-07-07T15:01:22Z","body":"The changes to literals allow us to specify precisely the program which is produced by Maple (i.e. in terms of `x + negate(y)` vs `x - y`) so this is fixed, at least until we find two equivalent programs which differ by more than `x + negate(y)` vs `x - y`. "}}
{"actor":{"display_login":"yuriy0"}}