{"action":"created","comment":{"url":"https://api.github.com/repos/coq/coq/pulls/comments/303843298","pull_request_review_id":262332708,"id":303843298,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDMwMzg0MzI5OA==","diff_hunk":"@@ -0,0 +1,76 @@\n+(************************************************************************)\n+(*         *   The Coq Proof Assistant / The Coq Development Team       *)\n+(*  v      *   INRIA, CNRS and contributors - Copyright 1999-2019       *)\n+(* <O___,, *       (see CREDITS file for the list of authors)           *)\n+(*   \\VV/  **************************************************************)\n+(*    //   *    This file is distributed under the terms of the         *)\n+(*         *     GNU Lesser General Public License Version 2.1          *)\n+(*         *     (see LICENSE file for the text of the license)         *)\n+(************************************************************************)\n+\n+{\n+\n+open Ltac_plugin\n+open Stdarg\n+open Tacarg\n+open Pp\n+\n+let iter_hyps (tac:Tacinterp.Value.t) =\n+  Proofview.Goal.enter  begin fun gl ->\n+    let hyps = List.rev (Tacmach.New.pf_hyps_types gl) in\n+\n+    Tacticals.New.tclTHENLIST\n+          (List.map (fun (h,t) -> Tacticals.New.tclTRY (Tacinterp.Value.apply tac [Tacinterp.Value.of_constr (EConstr.mkVar h) ; Tacinterp.Value.of_constr t])) hyps)\n+    end\n+\n+let iter_specs (tac: Tacinterp.Value.t) =\n+    Zify.iter_specs (fun c -> Tacinterp.Value.apply tac [Tacinterp.Value.of_constr c])","path":"plugins/zify/g_zify.mlg","position":18,"original_position":27,"commit_id":"073c392e79af3217b282cf1648b652a879cd00bb","original_commit_id":"d8b47d46e71f26c982421ab90e6e51d0a2848948","user":{"login":"SkySkimmer","id":2461932,"node_id":"MDQ6VXNlcjI0NjE5MzI=","avatar_url":"https://avatars1.githubusercontent.com/u/2461932?v=4","gravatar_id":"","url":"https://api.github.com/users/SkySkimmer","html_url":"https://github.com/SkySkimmer","followers_url":"https://api.github.com/users/SkySkimmer/followers","following_url":"https://api.github.com/users/SkySkimmer/following{/other_user}","gists_url":"https://api.github.com/users/SkySkimmer/gists{/gist_id}","starred_url":"https://api.github.com/users/SkySkimmer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SkySkimmer/subscriptions","organizations_url":"https://api.github.com/users/SkySkimmer/orgs","repos_url":"https://api.github.com/users/SkySkimmer/repos","events_url":"https://api.github.com/users/SkySkimmer/events{/privacy}","received_events_url":"https://api.github.com/users/SkySkimmer/received_events","type":"User","site_admin":false},"body":"It's `Ltac_plugin.Tacinterp` not just `Tacinterp` (note that Ltac_plugin is opened in the mlg)","created_at":"2019-07-16T10:48:14Z","updated_at":"2019-07-16T10:48:15Z","html_url":"https://github.com/coq/coq/pull/9856#discussion_r303843298","pull_request_url":"https://api.github.com/repos/coq/coq/pulls/9856","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/coq/coq/pulls/comments/303843298"},"html":{"href":"https://github.com/coq/coq/pull/9856#discussion_r303843298"},"pull_request":{"href":"https://api.github.com/repos/coq/coq/pulls/9856"}},"in_reply_to_id":303624066},"pull_request":{"url":"https://api.github.com/repos/coq/coq/pulls/9856","id":265370990,"node_id":"MDExOlB1bGxSZXF1ZXN0MjY1MzcwOTkw","html_url":"https://github.com/coq/coq/pull/9856","diff_url":"https://github.com/coq/coq/pull/9856.diff","patch_url":"https://github.com/coq/coq/pull/9856.patch","issue_url":"https://api.github.com/repos/coq/coq/issues/9856","number":9856,"state":"open","locked":false,"title":"A 'zify' tactic as a ML plugin","user":{"login":"fajb","id":6177099,"node_id":"MDQ6VXNlcjYxNzcwOTk=","avatar_url":"https://avatars3.githubusercontent.com/u/6177099?v=4","gravatar_id":"","url":"https://api.github.com/users/fajb","html_url":"https://github.com/fajb","followers_url":"https://api.github.com/users/fajb/followers","following_url":"https://api.github.com/users/fajb/following{/other_user}","gists_url":"https://api.github.com/users/fajb/gists{/gist_id}","starred_url":"https://api.github.com/users/fajb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fajb/subscriptions","organizations_url":"https://api.github.com/users/fajb/orgs","repos_url":"https://api.github.com/users/fajb/repos","events_url":"https://api.github.com/users/fajb/events{/privacy}","received_events_url":"https://api.github.com/users/fajb/received_events","type":"User","site_admin":false},"body":"<!-- Thank you for your contribution.\r\n     Make sure you read the contributing guide and fill this template. -->\r\nThis is an implementation of zify using a ML plugin.\r\nThe salient features:\r\n- extensibility: declaring new types and functions can be done by registering a type class instance.\r\n- efficiency: this remains to be assessed but\r\n   * for each hypothesis, the transformation is linear (there is no match[context] )\r\n- support for dependent hypotheses: the tactic generates new hypotheses and therefore does not break existing dependences.\r\n\r\nNB: there is still some reliance on some Ltac inherited from PreOmega \r\n\r\n<!-- Keep what applies -->\r\n**Kind:** feature / performance \r\n\r\n","created_at":"2019-03-28T14:59:43Z","updated_at":"2019-07-16T10:48:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0647ef5f03cb6305b207a1790b00894af261d590","assignee":{"login":"maximedenes","id":647105,"node_id":"MDQ6VXNlcjY0NzEwNQ==","avatar_url":"https://avatars1.githubusercontent.com/u/647105?v=4","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},"assignees":[{"login":"maximedenes","id":647105,"node_id":"MDQ6VXNlcjY0NzEwNQ==","avatar_url":"https://avatars1.githubusercontent.com/u/647105?v=4","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}],"requested_reviewers":[{"login":"ejgallego","id":7192257,"node_id":"MDQ6VXNlcjcxOTIyNTc=","avatar_url":"https://avatars2.githubusercontent.com/u/7192257?v=4","gravatar_id":"","url":"https://api.github.com/users/ejgallego","html_url":"https://github.com/ejgallego","followers_url":"https://api.github.com/users/ejgallego/followers","following_url":"https://api.github.com/users/ejgallego/following{/other_user}","gists_url":"https://api.github.com/users/ejgallego/gists{/gist_id}","starred_url":"https://api.github.com/users/ejgallego/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ejgallego/subscriptions","organizations_url":"https://api.github.com/users/ejgallego/orgs","repos_url":"https://api.github.com/users/ejgallego/repos","events_url":"https://api.github.com/users/ejgallego/events{/privacy}","received_events_url":"https://api.github.com/users/ejgallego/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":485986179,"node_id":"MDU6TGFiZWw0ODU5ODYxNzk=","url":"https://api.github.com/repos/coq/coq/labels/kind:%20feature","name":"kind: feature","color":"0e8a16","default":false},{"id":651324615,"node_id":"MDU6TGFiZWw2NTEzMjQ2MTU=","url":"https://api.github.com/repos/coq/coq/labels/kind:%20performance","name":"kind: performance","color":"9900cc","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/coq/coq/pulls/9856/commits","review_comments_url":"https://api.github.com/repos/coq/coq/pulls/9856/comments","review_comment_url":"https://api.github.com/repos/coq/coq/pulls/comments{/number}","comments_url":"https://api.github.com/repos/coq/coq/issues/9856/comments","statuses_url":"https://api.github.com/repos/coq/coq/statuses/073c392e79af3217b282cf1648b652a879cd00bb","head":{"label":"fajb:zify","ref":"zify","sha":"073c392e79af3217b282cf1648b652a879cd00bb","user":{"login":"fajb","id":6177099,"node_id":"MDQ6VXNlcjYxNzcwOTk=","avatar_url":"https://avatars3.githubusercontent.com/u/6177099?v=4","gravatar_id":"","url":"https://api.github.com/users/fajb","html_url":"https://github.com/fajb","followers_url":"https://api.github.com/users/fajb/followers","following_url":"https://api.github.com/users/fajb/following{/other_user}","gists_url":"https://api.github.com/users/fajb/gists{/gist_id}","starred_url":"https://api.github.com/users/fajb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fajb/subscriptions","organizations_url":"https://api.github.com/users/fajb/orgs","repos_url":"https://api.github.com/users/fajb/repos","events_url":"https://api.github.com/users/fajb/events{/privacy}","received_events_url":"https://api.github.com/users/fajb/received_events","type":"User","site_admin":false},"repo":{"id":142558402,"node_id":"MDEwOlJlcG9zaXRvcnkxNDI1NTg0MDI=","name":"coq","full_name":"fajb/coq","private":false,"owner":{"login":"fajb","id":6177099,"node_id":"MDQ6VXNlcjYxNzcwOTk=","avatar_url":"https://avatars3.githubusercontent.com/u/6177099?v=4","gravatar_id":"","url":"https://api.github.com/users/fajb","html_url":"https://github.com/fajb","followers_url":"https://api.github.com/users/fajb/followers","following_url":"https://api.github.com/users/fajb/following{/other_user}","gists_url":"https://api.github.com/users/fajb/gists{/gist_id}","starred_url":"https://api.github.com/users/fajb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fajb/subscriptions","organizations_url":"https://api.github.com/users/fajb/orgs","repos_url":"https://api.github.com/users/fajb/repos","events_url":"https://api.github.com/users/fajb/events{/privacy}","received_events_url":"https://api.github.com/users/fajb/received_events","type":"User","site_admin":false},"html_url":"https://github.com/fajb/coq","description":"Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs. ","fork":true,"url":"https://api.github.com/repos/fajb/coq","forks_url":"https://api.github.com/repos/fajb/coq/forks","keys_url":"https://api.github.com/repos/fajb/coq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fajb/coq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fajb/coq/teams","hooks_url":"https://api.github.com/repos/fajb/coq/hooks","issue_events_url":"https://api.github.com/repos/fajb/coq/issues/events{/number}","events_url":"https://api.github.com/repos/fajb/coq/events","assignees_url":"https://api.github.com/repos/fajb/coq/assignees{/user}","branches_url":"https://api.github.com/repos/fajb/coq/branches{/branch}","tags_url":"https://api.github.com/repos/fajb/coq/tags","blobs_url":"https://api.github.com/repos/fajb/coq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fajb/coq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fajb/coq/git/refs{/sha}","trees_url":"https://api.github.com/repos/fajb/coq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fajb/coq/statuses/{sha}","languages_url":"https://api.github.com/repos/fajb/coq/languages","stargazers_url":"https://api.github.com/repos/fajb/coq/stargazers","contributors_url":"https://api.github.com/repos/fajb/coq/contributors","subscribers_url":"https://api.github.com/repos/fajb/coq/subscribers","subscription_url":"https://api.github.com/repos/fajb/coq/subscription","commits_url":"https://api.github.com/repos/fajb/coq/commits{/sha}","git_commits_url":"https://api.github.com/repos/fajb/coq/git/commits{/sha}","comments_url":"https://api.github.com/repos/fajb/coq/comments{/number}","issue_comment_url":"https://api.github.com/repos/fajb/coq/issues/comments{/number}","contents_url":"https://api.github.com/repos/fajb/coq/contents/{+path}","compare_url":"https://api.github.com/repos/fajb/coq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fajb/coq/merges","archive_url":"https://api.github.com/repos/fajb/coq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fajb/coq/downloads","issues_url":"https://api.github.com/repos/fajb/coq/issues{/number}","pulls_url":"https://api.github.com/repos/fajb/coq/pulls{/number}","milestones_url":"https://api.github.com/repos/fajb/coq/milestones{/number}","notifications_url":"https://api.github.com/repos/fajb/coq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fajb/coq/labels{/name}","releases_url":"https://api.github.com/repos/fajb/coq/releases{/id}","deployments_url":"https://api.github.com/repos/fajb/coq/deployments","created_at":"2018-07-27T09:39:30Z","updated_at":"2019-04-01T10:09:28Z","pushed_at":"2019-07-16T09:39:02Z","git_url":"git://github.com/fajb/coq.git","ssh_url":"git@github.com:fajb/coq.git","clone_url":"https://github.com/fajb/coq.git","svn_url":"https://github.com/fajb/coq","homepage":"https://coq.inria.fr/","size":127986,"stargazers_count":0,"watchers_count":0,"language":"OCaml","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"lgpl-2.1","name":"GNU Lesser General Public License v2.1","spdx_id":"LGPL-2.1","url":"https://api.github.com/licenses/lgpl-2.1","node_id":"MDc6TGljZW5zZTEx"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"coq:master","ref":"master","sha":"a5998b06ccf2367f7d1e58dc80e4237754c953bc","user":{"login":"coq","id":621198,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYyMTE5OA==","avatar_url":"https://avatars1.githubusercontent.com/u/621198?v=4","gravatar_id":"","url":"https://api.github.com/users/coq","html_url":"https://github.com/coq","followers_url":"https://api.github.com/users/coq/followers","following_url":"https://api.github.com/users/coq/following{/other_user}","gists_url":"https://api.github.com/users/coq/gists{/gist_id}","starred_url":"https://api.github.com/users/coq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coq/subscriptions","organizations_url":"https://api.github.com/users/coq/orgs","repos_url":"https://api.github.com/users/coq/repos","events_url":"https://api.github.com/users/coq/events{/privacy}","received_events_url":"https://api.github.com/users/coq/received_events","type":"Organization","site_admin":false},"repo":{"id":1377159,"node_id":"MDEwOlJlcG9zaXRvcnkxMzc3MTU5","name":"coq","full_name":"coq/coq","private":false,"owner":{"login":"coq","id":621198,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYyMTE5OA==","avatar_url":"https://avatars1.githubusercontent.com/u/621198?v=4","gravatar_id":"","url":"https://api.github.com/users/coq","html_url":"https://github.com/coq","followers_url":"https://api.github.com/users/coq/followers","following_url":"https://api.github.com/users/coq/following{/other_user}","gists_url":"https://api.github.com/users/coq/gists{/gist_id}","starred_url":"https://api.github.com/users/coq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coq/subscriptions","organizations_url":"https://api.github.com/users/coq/orgs","repos_url":"https://api.github.com/users/coq/repos","events_url":"https://api.github.com/users/coq/events{/privacy}","received_events_url":"https://api.github.com/users/coq/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/coq/coq","description":"Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs. ","fork":false,"url":"https://api.github.com/repos/coq/coq","forks_url":"https://api.github.com/repos/coq/coq/forks","keys_url":"https://api.github.com/repos/coq/coq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coq/coq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coq/coq/teams","hooks_url":"https://api.github.com/repos/coq/coq/hooks","issue_events_url":"https://api.github.com/repos/coq/coq/issues/events{/number}","events_url":"https://api.github.com/repos/coq/coq/events","assignees_url":"https://api.github.com/repos/coq/coq/assignees{/user}","branches_url":"https://api.github.com/repos/coq/coq/branches{/branch}","tags_url":"https://api.github.com/repos/coq/coq/tags","blobs_url":"https://api.github.com/repos/coq/coq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coq/coq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coq/coq/git/refs{/sha}","trees_url":"https://api.github.com/repos/coq/coq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coq/coq/statuses/{sha}","languages_url":"https://api.github.com/repos/coq/coq/languages","stargazers_url":"https://api.github.com/repos/coq/coq/stargazers","contributors_url":"https://api.github.com/repos/coq/coq/contributors","subscribers_url":"https://api.github.com/repos/coq/coq/subscribers","subscription_url":"https://api.github.com/repos/coq/coq/subscription","commits_url":"https://api.github.com/repos/coq/coq/commits{/sha}","git_commits_url":"https://api.github.com/repos/coq/coq/git/commits{/sha}","comments_url":"https://api.github.com/repos/coq/coq/comments{/number}","issue_comment_url":"https://api.github.com/repos/coq/coq/issues/comments{/number}","contents_url":"https://api.github.com/repos/coq/coq/contents/{+path}","compare_url":"https://api.github.com/repos/coq/coq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coq/coq/merges","archive_url":"https://api.github.com/repos/coq/coq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coq/coq/downloads","issues_url":"https://api.github.com/repos/coq/coq/issues{/number}","pulls_url":"https://api.github.com/repos/coq/coq/pulls{/number}","milestones_url":"https://api.github.com/repos/coq/coq/milestones{/number}","notifications_url":"https://api.github.com/repos/coq/coq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coq/coq/labels{/name}","releases_url":"https://api.github.com/repos/coq/coq/releases{/id}","deployments_url":"https://api.github.com/repos/coq/coq/deployments","created_at":"2011-02-17T05:49:37Z","updated_at":"2019-07-16T07:00:16Z","pushed_at":"2019-07-16T09:08:58Z","git_url":"git://github.com/coq/coq.git","ssh_url":"git@github.com:coq/coq.git","clone_url":"https://github.com/coq/coq.git","svn_url":"https://github.com/coq/coq","homepage":"https://coq.inria.fr/","size":131454,"stargazers_count":2121,"watchers_count":2121,"language":"OCaml","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":352,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":2103,"license":{"key":"lgpl-2.1","name":"GNU Lesser General Public License v2.1","spdx_id":"LGPL-2.1","url":"https://api.github.com/licenses/lgpl-2.1","node_id":"MDc6TGljZW5zZTEx"},"forks":352,"open_issues":2103,"watchers":2121,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/coq/coq/pulls/9856"},"html":{"href":"https://github.com/coq/coq/pull/9856"},"issue":{"href":"https://api.github.com/repos/coq/coq/issues/9856"},"comments":{"href":"https://api.github.com/repos/coq/coq/issues/9856/comments"},"review_comments":{"href":"https://api.github.com/repos/coq/coq/pulls/9856/comments"},"review_comment":{"href":"https://api.github.com/repos/coq/coq/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/coq/coq/pulls/9856/commits"},"statuses":{"href":"https://api.github.com/repos/coq/coq/statuses/073c392e79af3217b282cf1648b652a879cd00bb"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"SkySkimmer"}}