{"action":"created","comment":{"url":"https://api.github.com/repos/CVC4/CVC4/pulls/comments/151813936","pull_request_review_id":77492527,"id":151813936,"diff_hunk":"@@ -0,0 +1,343 @@\n+/*********************                                                        */\n+/*! \\file ho_trigger.cpp\n+ ** \\verbatim\n+ ** Top contributors (to current version):\n+ **   Andrew Reynolds\n+ ** This file is part of the CVC4 project.\n+ ** Copyright (c) 2009-2017 by the authors listed in the file AUTHORS\n+ ** in the top-level source directory) and their institutional affiliations.\n+ ** All rights reserved.  See the file COPYING in the top-level source\n+ ** directory for licensing information.\\endverbatim\n+ **\n+ ** \\brief Implementation of higher-order trigger class\n+ **/\n+\n+#include <stack>\n+\n+#include \"theory/quantifiers/ho_trigger.h\"\n+#include \"theory/quantifiers/term_database.h\"\n+#include \"theory/quantifiers/term_util.h\"\n+#include \"theory/quantifiers_engine.h\"\n+#include \"theory/theory_engine.h\"\n+#include \"theory/uf/equality_engine.h\"\n+#include \"theory/uf/theory_uf_rewriter.h\"\n+#include \"util/hash.h\"\n+\n+using namespace std;\n+using namespace CVC4::kind;\n+using namespace CVC4::context;\n+\n+namespace CVC4 {\n+namespace theory {\n+namespace inst {\n+\n+HigherOrderTrigger::HigherOrderTrigger( QuantifiersEngine* qe, Node q, std::vector< Node >& nodes, \n+                                        std::map< Node, std::vector< Node > >& ho_apps ) :\n+Trigger( qe, q, nodes ), d_ho_var_apps( ho_apps ) {\n+  // process the higher-order variable applications\n+  for( std::map< Node, std::vector< Node > >::iterator it = d_ho_var_apps.begin(); \n+       it != d_ho_var_apps.end(); ++it ){\n+    Node n = it->first;\n+    d_ho_var_list.push_back( n );\n+    TypeNode tn = n.getType();\n+    Assert( tn.isFunction() );\n+    if( Trace.isOn(\"ho-quant-trigger\") ){\n+      Trace(\"ho-quant-trigger\") << \"  have \" << it->second.size();\n+      Trace(\"ho-quant-trigger\") << \" patterns with variable operator \" << n << \":\" << std::endl;\n+      for( unsigned j=0; j<it->second.size(); j++ ){\n+        Trace(\"ho-quant-trigger\") << \"  \" << it->second[j] << std::endl;\n+      }\n+    }\n+    if( d_ho_var_types.find( tn )==d_ho_var_types.end() ){\n+      Trace(\"ho-quant-trigger\") << \"  type \" << tn << \" needs higher-order matching.\" << std::endl;\n+      d_ho_var_types.insert( tn );\n+    }\n+    // make the bound variable lists\n+    d_ho_var_bvl[n] = NodeManager::currentNM()->getBoundVarListForFunctionType( tn );\n+    for( unsigned j=0; j<d_ho_var_bvl[n].getNumChildren(); j++ ){\n+      d_ho_var_bvs[n].push_back( d_ho_var_bvl[n][j] );\n+    }\n+  }\n+}\n+\n+HigherOrderTrigger::~HigherOrderTrigger() {\n+\n+}\n+\n+void HigherOrderTrigger::collectHoVarApplyTerms( Node q, TNode n, std::map< Node, std::vector< Node > >& apps ) {\n+  std::vector< Node > ns;\n+  ns.push_back(n);\n+  collectHoVarApplyTerms( q, ns, apps );\n+}\n+\n+void HigherOrderTrigger::collectHoVarApplyTerms( Node q, std::vector< Node >& ns, std::map< Node, std::vector< Node > >& apps ) {\n+  std::unordered_set<TNode, TNodeHashFunction> visited;\n+  // whether the visited node is a child of a HO_APPLY chain\n+  std::unordered_map<TNode, bool, TNodeHashFunction> withinApply;\n+  std::unordered_set<TNode, TNodeHashFunction>::iterator it;\n+  std::stack<TNode> visit;\n+  TNode cur;\n+  for( unsigned i=0; i<ns.size(); i++ ){\n+    visit.push(ns[i]);\n+    withinApply[ns[i]] = false;\n+    do {\n+      cur = visit.top();\n+      visit.pop();\n+      it = visited.find(cur);\n+\n+      if (it == visited.end()) {\n+        visited.insert(cur);\n+        bool curWithinApply = withinApply[cur];\n+        if( !curWithinApply ){\n+          TNode op;\n+          if( cur.getKind()==kind::APPLY_UF ){\n+            // could be a fully applied function variable\n+            op = cur.getOperator();\n+          }else if( cur.getKind()==kind::HO_APPLY ){\n+            op = cur;\n+            while( op.getKind() == kind::HO_APPLY ){\n+              op = op[0];        \n+            }\n+          }\n+          if( !op.isNull() ){\n+            if( op.getKind()==INST_CONSTANT ){\n+              Assert( quantifiers::TermUtil::getInstConstAttr(cur)==q );\n+              Trace(\"ho-quant-trigger-debug\") << \"Ho variable apply term : \" << cur << \" with head \" << op << std::endl;\n+              Node app = cur;\n+              if( app.getKind()==kind::APPLY_UF ){\n+                // for consistency, convert to HO_APPLY if fully applied\n+                app = uf::TheoryUfRewriter::getHoApplyForApplyUf(app);\n+              }\n+              apps[op].push_back( cur );\n+            }\n+            if( cur.getKind() == kind::HO_APPLY ){\n+              curWithinApply = true;\n+            }\n+          }\n+        }else{\n+          if( cur.getKind()!=HO_APPLY ){\n+            curWithinApply = false;\n+          }\n+        }\n+        // do not look in nested quantifiers\n+        if( cur.getKind()!=FORALL ){\n+          for (unsigned i = 0; i < cur.getNumChildren(); i++) {\n+            withinApply[cur[i]] = curWithinApply && i==0;\n+            visit.push(cur[i]);\n+          }\n+        }\n+      }\n+    } while (!visit.empty());\n+  }\n+}\n+\n+int HigherOrderTrigger::addInstantiations( InstMatch& baseMatch ){\n+  // call the base class implementation\n+  int addedFoLemmas = Trigger::addInstantiations( baseMatch );\n+  // also adds predicate lemms to force app completion\n+  int addedHoLemmas = addHoTypeMatchPredicateLemmas();\n+  return addedHoLemmas+addedFoLemmas;\n+}\n+\n+bool HigherOrderTrigger::sendInstantiation( InstMatch& m ) {\n+  if( options::hoMatching() ){\n+    // get substitution corresponding to m\n+    std::vector< TNode > vars;\n+    std::vector< TNode > subs;\n+    for( unsigned i=0; i<d_f[0].getNumChildren(); i++ ){\n+      subs.push_back( m.d_vals[i] );\n+      vars.push_back( d_quantEngine->getTermUtil()->getInstantiationConstant( d_f, i ) ) ;\n+    }\n+\n+    Trace(\"ho-unif-debug\") << \"Run higher-order unification...\" << std::endl;\n+\n+    // get the substituted form of all variable-operator ho application terms\n+    std::map< TNode, std::vector< Node > > ho_var_apps_subs;\n+    for( std::map< Node, std::vector< Node > >::iterator it = d_ho_var_apps.begin(); \n+         it != d_ho_var_apps.end(); ++it ){\n+      TNode var = it->first;\n+      for( unsigned j=0; j<it->second.size(); j++ ){\n+        TNode app = it->second[j];\n+        Node sapp = app.substitute( vars.begin(), vars.end(), subs.begin(), subs.end() );\n+        ho_var_apps_subs[var].push_back( sapp );\n+        Trace(\"ho-unif-debug\") << \"  app[\" << var << \"] : \" << app << \" -> \" << sapp << std::endl;\n+      }  \n+    }\n+\n+    // compute argument vectors for each variable\n+    d_lchildren.clear();\n+    d_arg_to_arg_rep.clear();\n+    d_arg_vector.clear();\n+    EqualityQuery* eq = d_quantEngine->getEqualityQuery();\n+    for( std::map< TNode, std::vector< Node > >::iterator ith = ho_var_apps_subs.begin();","path":"src/theory/quantifiers/ho_trigger.cpp","position":172,"original_position":172,"commit_id":"a804937ef8acb46bba5562ba6aaf123fc97821d7","original_commit_id":"a804937ef8acb46bba5562ba6aaf123fc97821d7","user":{"login":"HanielB","id":2821688,"avatar_url":"https://avatars0.githubusercontent.com/u/2821688?v=4","gravatar_id":"","url":"https://api.github.com/users/HanielB","html_url":"https://github.com/HanielB","followers_url":"https://api.github.com/users/HanielB/followers","following_url":"https://api.github.com/users/HanielB/following{/other_user}","gists_url":"https://api.github.com/users/HanielB/gists{/gist_id}","starred_url":"https://api.github.com/users/HanielB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HanielB/subscriptions","organizations_url":"https://api.github.com/users/HanielB/orgs","repos_url":"https://api.github.com/users/HanielB/repos","events_url":"https://api.github.com/users/HanielB/events{/privacy}","received_events_url":"https://api.github.com/users/HanielB/received_events","type":"User","site_admin":false},"body":"for-each","created_at":"2017-11-17T23:39:21Z","updated_at":"2017-11-18T00:00:34Z","html_url":"https://github.com/CVC4/CVC4/pull/1204#discussion_r151813936","pull_request_url":"https://api.github.com/repos/CVC4/CVC4/pulls/1204","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/CVC4/CVC4/pulls/comments/151813936"},"html":{"href":"https://github.com/CVC4/CVC4/pull/1204#discussion_r151813936"},"pull_request":{"href":"https://api.github.com/repos/CVC4/CVC4/pulls/1204"}}},"pull_request":{"url":"https://api.github.com/repos/CVC4/CVC4/pulls/1204","id":145200019,"html_url":"https://github.com/CVC4/CVC4/pull/1204","diff_url":"https://github.com/CVC4/CVC4/pull/1204.diff","patch_url":"https://github.com/CVC4/CVC4/pull/1204.patch","issue_url":"https://api.github.com/repos/CVC4/CVC4/issues/1204","number":1204,"state":"open","locked":false,"title":"Ho instantiation","user":{"login":"ajreynol","id":2973467,"avatar_url":"https://avatars0.githubusercontent.com/u/2973467?v=4","gravatar_id":"","url":"https://api.github.com/users/ajreynol","html_url":"https://github.com/ajreynol","followers_url":"https://api.github.com/users/ajreynol/followers","following_url":"https://api.github.com/users/ajreynol/following{/other_user}","gists_url":"https://api.github.com/users/ajreynol/gists{/gist_id}","starred_url":"https://api.github.com/users/ajreynol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ajreynol/subscriptions","organizations_url":"https://api.github.com/users/ajreynol/orgs","repos_url":"https://api.github.com/users/ajreynol/repos","events_url":"https://api.github.com/users/ajreynol/events{/privacy}","received_events_url":"https://api.github.com/users/ajreynol/received_events","type":"User","site_admin":false},"body":"This commit:\r\n- Extends the E-matching algorithm to higher-order. This technique is sometimes called Huet's algorithm or higher-order pre-unification (ho_trigger.h/cpp).\r\n\r\n- Minor updates to the interface of inst match generator so that a parent trigger is passed throughout, so that higher-order pre-unification can be run as a post-process step.\r\n\r\n- Refactoring of the instantiation match generator and trigger classes that came up during documentation (changed default value of the active add flag in InstMatchGenerator, made InstMatchGenerator constructors private, moved getInstMatchGenerator from Trigger to InstMatchGenerator).\r\nEDIT : Also refactored TriggerTrie in aca3af4.\r\n\r\n- Adds documentation for the trigger and instantiation match generator class.  \r\n","created_at":"2017-10-06T16:55:39Z","updated_at":"2017-11-18T00:00:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"93ffe532658d4ffe8abaa824202f699549b60c27","assignee":{"login":"HanielB","id":2821688,"avatar_url":"https://avatars0.githubusercontent.com/u/2821688?v=4","gravatar_id":"","url":"https://api.github.com/users/HanielB","html_url":"https://github.com/HanielB","followers_url":"https://api.github.com/users/HanielB/followers","following_url":"https://api.github.com/users/HanielB/following{/other_user}","gists_url":"https://api.github.com/users/HanielB/gists{/gist_id}","starred_url":"https://api.github.com/users/HanielB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HanielB/subscriptions","organizations_url":"https://api.github.com/users/HanielB/orgs","repos_url":"https://api.github.com/users/HanielB/repos","events_url":"https://api.github.com/users/HanielB/events{/privacy}","received_events_url":"https://api.github.com/users/HanielB/received_events","type":"User","site_admin":false},"assignees":[{"login":"HanielB","id":2821688,"avatar_url":"https://avatars0.githubusercontent.com/u/2821688?v=4","gravatar_id":"","url":"https://api.github.com/users/HanielB","html_url":"https://github.com/HanielB","followers_url":"https://api.github.com/users/HanielB/followers","following_url":"https://api.github.com/users/HanielB/following{/other_user}","gists_url":"https://api.github.com/users/HanielB/gists{/gist_id}","starred_url":"https://api.github.com/users/HanielB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HanielB/subscriptions","organizations_url":"https://api.github.com/users/HanielB/orgs","repos_url":"https://api.github.com/users/HanielB/repos","events_url":"https://api.github.com/users/HanielB/events{/privacy}","received_events_url":"https://api.github.com/users/HanielB/received_events","type":"User","site_admin":false},{"login":"barrettcw","id":2973347,"avatar_url":"https://avatars1.githubusercontent.com/u/2973347?v=4","gravatar_id":"","url":"https://api.github.com/users/barrettcw","html_url":"https://github.com/barrettcw","followers_url":"https://api.github.com/users/barrettcw/followers","following_url":"https://api.github.com/users/barrettcw/following{/other_user}","gists_url":"https://api.github.com/users/barrettcw/gists{/gist_id}","starred_url":"https://api.github.com/users/barrettcw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/barrettcw/subscriptions","organizations_url":"https://api.github.com/users/barrettcw/orgs","repos_url":"https://api.github.com/users/barrettcw/repos","events_url":"https://api.github.com/users/barrettcw/events{/privacy}","received_events_url":"https://api.github.com/users/barrettcw/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/CVC4/CVC4/pulls/1204/commits","review_comments_url":"https://api.github.com/repos/CVC4/CVC4/pulls/1204/comments","review_comment_url":"https://api.github.com/repos/CVC4/CVC4/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CVC4/CVC4/issues/1204/comments","statuses_url":"https://api.github.com/repos/CVC4/CVC4/statuses/a804937ef8acb46bba5562ba6aaf123fc97821d7","head":{"label":"ajreynol:hoInstantiation","ref":"hoInstantiation","sha":"a804937ef8acb46bba5562ba6aaf123fc97821d7","user":{"login":"ajreynol","id":2973467,"avatar_url":"https://avatars0.githubusercontent.com/u/2973467?v=4","gravatar_id":"","url":"https://api.github.com/users/ajreynol","html_url":"https://github.com/ajreynol","followers_url":"https://api.github.com/users/ajreynol/followers","following_url":"https://api.github.com/users/ajreynol/following{/other_user}","gists_url":"https://api.github.com/users/ajreynol/gists{/gist_id}","starred_url":"https://api.github.com/users/ajreynol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ajreynol/subscriptions","organizations_url":"https://api.github.com/users/ajreynol/orgs","repos_url":"https://api.github.com/users/ajreynol/repos","events_url":"https://api.github.com/users/ajreynol/events{/privacy}","received_events_url":"https://api.github.com/users/ajreynol/received_events","type":"User","site_admin":false},"repo":{"id":17024816,"name":"CVC4","full_name":"ajreynol/CVC4","owner":{"login":"ajreynol","id":2973467,"avatar_url":"https://avatars0.githubusercontent.com/u/2973467?v=4","gravatar_id":"","url":"https://api.github.com/users/ajreynol","html_url":"https://github.com/ajreynol","followers_url":"https://api.github.com/users/ajreynol/followers","following_url":"https://api.github.com/users/ajreynol/following{/other_user}","gists_url":"https://api.github.com/users/ajreynol/gists{/gist_id}","starred_url":"https://api.github.com/users/ajreynol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ajreynol/subscriptions","organizations_url":"https://api.github.com/users/ajreynol/orgs","repos_url":"https://api.github.com/users/ajreynol/repos","events_url":"https://api.github.com/users/ajreynol/events{/privacy}","received_events_url":"https://api.github.com/users/ajreynol/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ajreynol/CVC4","description":"CVC4 is an efficient open-source automatic theorem prover for satisfiability modulo theories (SMT) problems.","fork":true,"url":"https://api.github.com/repos/ajreynol/CVC4","forks_url":"https://api.github.com/repos/ajreynol/CVC4/forks","keys_url":"https://api.github.com/repos/ajreynol/CVC4/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ajreynol/CVC4/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ajreynol/CVC4/teams","hooks_url":"https://api.github.com/repos/ajreynol/CVC4/hooks","issue_events_url":"https://api.github.com/repos/ajreynol/CVC4/issues/events{/number}","events_url":"https://api.github.com/repos/ajreynol/CVC4/events","assignees_url":"https://api.github.com/repos/ajreynol/CVC4/assignees{/user}","branches_url":"https://api.github.com/repos/ajreynol/CVC4/branches{/branch}","tags_url":"https://api.github.com/repos/ajreynol/CVC4/tags","blobs_url":"https://api.github.com/repos/ajreynol/CVC4/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ajreynol/CVC4/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ajreynol/CVC4/git/refs{/sha}","trees_url":"https://api.github.com/repos/ajreynol/CVC4/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ajreynol/CVC4/statuses/{sha}","languages_url":"https://api.github.com/repos/ajreynol/CVC4/languages","stargazers_url":"https://api.github.com/repos/ajreynol/CVC4/stargazers","contributors_url":"https://api.github.com/repos/ajreynol/CVC4/contributors","subscribers_url":"https://api.github.com/repos/ajreynol/CVC4/subscribers","subscription_url":"https://api.github.com/repos/ajreynol/CVC4/subscription","commits_url":"https://api.github.com/repos/ajreynol/CVC4/commits{/sha}","git_commits_url":"https://api.github.com/repos/ajreynol/CVC4/git/commits{/sha}","comments_url":"https://api.github.com/repos/ajreynol/CVC4/comments{/number}","issue_comment_url":"https://api.github.com/repos/ajreynol/CVC4/issues/comments{/number}","contents_url":"https://api.github.com/repos/ajreynol/CVC4/contents/{+path}","compare_url":"https://api.github.com/repos/ajreynol/CVC4/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ajreynol/CVC4/merges","archive_url":"https://api.github.com/repos/ajreynol/CVC4/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ajreynol/CVC4/downloads","issues_url":"https://api.github.com/repos/ajreynol/CVC4/issues{/number}","pulls_url":"https://api.github.com/repos/ajreynol/CVC4/pulls{/number}","milestones_url":"https://api.github.com/repos/ajreynol/CVC4/milestones{/number}","notifications_url":"https://api.github.com/repos/ajreynol/CVC4/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ajreynol/CVC4/labels{/name}","releases_url":"https://api.github.com/repos/ajreynol/CVC4/releases{/id}","deployments_url":"https://api.github.com/repos/ajreynol/CVC4/deployments","created_at":"2014-02-20T15:22:15Z","updated_at":"2016-04-04T22:40:53Z","pushed_at":"2017-11-17T23:43:24Z","git_url":"git://github.com/ajreynol/CVC4.git","ssh_url":"git@github.com:ajreynol/CVC4.git","clone_url":"https://github.com/ajreynol/CVC4.git","svn_url":"https://github.com/ajreynol/CVC4","homepage":null,"size":41120,"stargazers_count":0,"watchers_count":0,"language":"SMT","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"CVC4:master","ref":"master","sha":"5b6551c529506592da7c66e39a911d9299944eb8","user":{"login":"CVC4","id":2973223,"avatar_url":"https://avatars0.githubusercontent.com/u/2973223?v=4","gravatar_id":"","url":"https://api.github.com/users/CVC4","html_url":"https://github.com/CVC4","followers_url":"https://api.github.com/users/CVC4/followers","following_url":"https://api.github.com/users/CVC4/following{/other_user}","gists_url":"https://api.github.com/users/CVC4/gists{/gist_id}","starred_url":"https://api.github.com/users/CVC4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CVC4/subscriptions","organizations_url":"https://api.github.com/users/CVC4/orgs","repos_url":"https://api.github.com/users/CVC4/repos","events_url":"https://api.github.com/users/CVC4/events{/privacy}","received_events_url":"https://api.github.com/users/CVC4/received_events","type":"Organization","site_admin":false},"repo":{"id":7040894,"name":"CVC4","full_name":"CVC4/CVC4","owner":{"login":"CVC4","id":2973223,"avatar_url":"https://avatars0.githubusercontent.com/u/2973223?v=4","gravatar_id":"","url":"https://api.github.com/users/CVC4","html_url":"https://github.com/CVC4","followers_url":"https://api.github.com/users/CVC4/followers","following_url":"https://api.github.com/users/CVC4/following{/other_user}","gists_url":"https://api.github.com/users/CVC4/gists{/gist_id}","starred_url":"https://api.github.com/users/CVC4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CVC4/subscriptions","organizations_url":"https://api.github.com/users/CVC4/orgs","repos_url":"https://api.github.com/users/CVC4/repos","events_url":"https://api.github.com/users/CVC4/events{/privacy}","received_events_url":"https://api.github.com/users/CVC4/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CVC4/CVC4","description":"CVC4 is an efficient open-source automatic theorem prover for satisfiability modulo theories (SMT) problems.","fork":false,"url":"https://api.github.com/repos/CVC4/CVC4","forks_url":"https://api.github.com/repos/CVC4/CVC4/forks","keys_url":"https://api.github.com/repos/CVC4/CVC4/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CVC4/CVC4/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CVC4/CVC4/teams","hooks_url":"https://api.github.com/repos/CVC4/CVC4/hooks","issue_events_url":"https://api.github.com/repos/CVC4/CVC4/issues/events{/number}","events_url":"https://api.github.com/repos/CVC4/CVC4/events","assignees_url":"https://api.github.com/repos/CVC4/CVC4/assignees{/user}","branches_url":"https://api.github.com/repos/CVC4/CVC4/branches{/branch}","tags_url":"https://api.github.com/repos/CVC4/CVC4/tags","blobs_url":"https://api.github.com/repos/CVC4/CVC4/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CVC4/CVC4/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CVC4/CVC4/git/refs{/sha}","trees_url":"https://api.github.com/repos/CVC4/CVC4/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CVC4/CVC4/statuses/{sha}","languages_url":"https://api.github.com/repos/CVC4/CVC4/languages","stargazers_url":"https://api.github.com/repos/CVC4/CVC4/stargazers","contributors_url":"https://api.github.com/repos/CVC4/CVC4/contributors","subscribers_url":"https://api.github.com/repos/CVC4/CVC4/subscribers","subscription_url":"https://api.github.com/repos/CVC4/CVC4/subscription","commits_url":"https://api.github.com/repos/CVC4/CVC4/commits{/sha}","git_commits_url":"https://api.github.com/repos/CVC4/CVC4/git/commits{/sha}","comments_url":"https://api.github.com/repos/CVC4/CVC4/comments{/number}","issue_comment_url":"https://api.github.com/repos/CVC4/CVC4/issues/comments{/number}","contents_url":"https://api.github.com/repos/CVC4/CVC4/contents/{+path}","compare_url":"https://api.github.com/repos/CVC4/CVC4/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CVC4/CVC4/merges","archive_url":"https://api.github.com/repos/CVC4/CVC4/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CVC4/CVC4/downloads","issues_url":"https://api.github.com/repos/CVC4/CVC4/issues{/number}","pulls_url":"https://api.github.com/repos/CVC4/CVC4/pulls{/number}","milestones_url":"https://api.github.com/repos/CVC4/CVC4/milestones{/number}","notifications_url":"https://api.github.com/repos/CVC4/CVC4/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CVC4/CVC4/labels{/name}","releases_url":"https://api.github.com/repos/CVC4/CVC4/releases{/id}","deployments_url":"https://api.github.com/repos/CVC4/CVC4/deployments","created_at":"2012-12-06T18:45:04Z","updated_at":"2017-11-07T15:30:14Z","pushed_at":"2017-11-17T23:43:26Z","git_url":"git://github.com/CVC4/CVC4.git","ssh_url":"git@github.com:CVC4/CVC4.git","clone_url":"https://github.com/CVC4/CVC4.git","svn_url":"https://github.com/CVC4/CVC4","homepage":null,"size":40362,"stargazers_count":171,"watchers_count":171,"language":"SMT","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":72,"mirror_url":null,"archived":false,"open_issues_count":188,"forks":72,"open_issues":188,"watchers":171,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/CVC4/CVC4/pulls/1204"},"html":{"href":"https://github.com/CVC4/CVC4/pull/1204"},"issue":{"href":"https://api.github.com/repos/CVC4/CVC4/issues/1204"},"comments":{"href":"https://api.github.com/repos/CVC4/CVC4/issues/1204/comments"},"review_comments":{"href":"https://api.github.com/repos/CVC4/CVC4/pulls/1204/comments"},"review_comment":{"href":"https://api.github.com/repos/CVC4/CVC4/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CVC4/CVC4/pulls/1204/commits"},"statuses":{"href":"https://api.github.com/repos/CVC4/CVC4/statuses/a804937ef8acb46bba5562ba6aaf123fc97821d7"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"HanielB"}}