{"action":"created","issue":{"url":"https://api.github.com/repos/coq/coq/issues/248","repository_url":"https://api.github.com/repos/coq/coq","labels_url":"https://api.github.com/repos/coq/coq/issues/248/labels{/name}","comments_url":"https://api.github.com/repos/coq/coq/issues/248/comments","events_url":"https://api.github.com/repos/coq/coq/issues/248/events","html_url":"https://github.com/coq/coq/pull/248","id":165056370,"number":248,"title":"Adding eassert, eset, epose, etc.","user":{"login":"herbelin","id":460771,"avatar_url":"https://avatars.githubusercontent.com/u/460771?v=3","gravatar_id":"","url":"https://api.github.com/users/herbelin","html_url":"https://github.com/herbelin","followers_url":"https://api.github.com/users/herbelin/followers","following_url":"https://api.github.com/users/herbelin/following{/other_user}","gists_url":"https://api.github.com/users/herbelin/gists{/gist_id}","starred_url":"https://api.github.com/users/herbelin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/herbelin/subscriptions","organizations_url":"https://api.github.com/users/herbelin/orgs","repos_url":"https://api.github.com/users/herbelin/repos","events_url":"https://api.github.com/users/herbelin/events{/privacy}","received_events_url":"https://api.github.com/users/herbelin/received_events","type":"User","site_admin":false},"labels":[{"id":485986179,"url":"https://api.github.com/repos/coq/coq/labels/feature","name":"feature","color":"0e8a16","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2016-07-12T11:29:02Z","updated_at":"2016-11-21T15:34:58Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/coq/coq/pulls/248","html_url":"https://github.com/coq/coq/pull/248","diff_url":"https://github.com/coq/coq/pull/248.diff","patch_url":"https://github.com/coq/coq/pull/248.patch"},"body":"This is a natural extension of the language of primitive tactics. It provides e-variants for \"assert\", \"pose\", \"set\", \"remember\", \"pose proof\", \"enough\", allowing to manipulate partial terms or statements, and hence to ease a way to develop proofs by refinement and unification. One can for instance see it as adding some benefits of \"refine\" to usual tactics (typically, I found the need for \"eassert\" when implementing \"functional extensionality in\").\n\nNot a commitment to the e-policy. With a translating tool, the e-prefix could eventually become the default if considered to be the good way to go. In the meantime, I however don't see other alternatives than adding specific e-variants. (See also #3872.)\n\nNot a commitment to say that statements with free evars should be kept with unresolved evars rather than generalized over unresolved evars. For instance, Matthieu's \"`\" could be generalized to tell \"generalize\" rather than \"keep evars/fail\", as in, say, providing \"assert`(_ = _)\" to be possibly interpreted as \"assert (forall A (x y : A), x = y)\".\n\nNot a commitment to say that the syntax of tactics should be hard-wired in g_tactic.ml4. I followed the easy path but maybe these tactics could already be definable with TACTIC EXTEND instead.\n\nNo documentation yet. \n"},"comment":{"url":"https://api.github.com/repos/coq/coq/issues/comments/261971321","html_url":"https://github.com/coq/coq/pull/248#issuecomment-261971321","issue_url":"https://api.github.com/repos/coq/coq/issues/248","id":261971321,"user":{"login":"maximedenes","id":647105,"avatar_url":"https://avatars.githubusercontent.com/u/647105?v=3","gravatar_id":"","url":"https://api.github.com/users/maximedenes","html_url":"https://github.com/maximedenes","followers_url":"https://api.github.com/users/maximedenes/followers","following_url":"https://api.github.com/users/maximedenes/following{/other_user}","gists_url":"https://api.github.com/users/maximedenes/gists{/gist_id}","starred_url":"https://api.github.com/users/maximedenes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maximedenes/subscriptions","organizations_url":"https://api.github.com/users/maximedenes/orgs","repos_url":"https://api.github.com/users/maximedenes/repos","events_url":"https://api.github.com/users/maximedenes/events{/privacy}","received_events_url":"https://api.github.com/users/maximedenes/received_events","type":"User","site_admin":false},"created_at":"2016-11-21T15:34:58Z","updated_at":"2016-11-21T15:34:58Z","body":"@herbelin do you want this PR to be discussed for integration on the 8.7 roadmap?"}}
{"actor":{"display_login":"maximedenes"}}