<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Exploring Representation of Horn Clauses using GNNs</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Chencheng Liang</string-name>
          <email>chencheng.liang@it.uu.se</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Philipp Rümmer</string-name>
          <email>philipp.ruemmer@it.uu.se</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marc Brockschmidt</string-name>
          <email>marc@marcbrockschmidt.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Microsoft Research</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Regensburg</institution>
          ,
          <addr-line>Regensburg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Uppsala University, Department of Information Technology</institution>
          ,
          <addr-line>Uppsala</addr-line>
          ,
          <country country="SE">Sweden</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In recent years, the application of machine learning in program verification, and the embedding of programs to capture semantic information, has been recognised as an important tool by many research groups. Learning program semantics from raw source code is challenging due to the complexity of real-world programming language syntax and due to the dificulty of reconstructing long-distance relational information implicitly represented in programs using identifiers. Addressing the first point, we consider Constrained Horn Clauses (CHCs) as a standard representation of program verification problems, providing a simple and programming language-independent syntax. For the second challenge, we explore graph representations of CHCs, and propose a new Relational Hypergraph Neural Network (R-HyGNN) architecture to learn program features. We introduce two diferent graph representations of CHCs. One is called constraint graph (CG), and emphasizes syntactic information of CHCs by translating the symbols and their relations in CHCs as typed nodes and binary edges, respectively, and constructing the constraints as abstract syntax trees. The second one is called control- and data-flow hypergraph (CDHG), and emphasizes semantic information of CHCs by representing the control and data lfow through ternary hyperedges. We then propose a new GNN architecture, R-HyGNN, extending Relational Graph Convolutional Networks, to handle hypergraphs. To evaluate the ability of R-HyGNN to extract semantic information from programs, we use R-HyGNNs to train models on the two graph representations, and on five proxy tasks with increasing dificulty, using benchmarks from CHC-COMP 2021 as training data. The most dicfiult proxy task requires the model to predict the occurrence of clauses in counter-examples, which subsumes satisfiability of CHCs. CDHG achieves 90.59% accuracy in this task. Furthermore, R-HyGNN has perfect predictions on one of the graphs consisting of more than 290 clauses. Overall, our experiments indicate that R-HyGNN can capture intricate program features for guiding verification problems.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Constraint Horn clauses</kwd>
        <kwd>Graph Neural Networks</kwd>
        <kwd>Automatic program verification</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Automatic program verification is challenging because of the complexity of industrially
relevant programs. In practice, constructing domain-specific heuristics from program
features (e.g., information from loops, control flow, or data flow) is essential for solving
verification problems. For instance, [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] extract semantic information by
performing systematical static analysis to refine abstractions for the counterexample-guided
abstraction refinement (CEGAR) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] based system. However, manually designed heuristics
usually aim at a specific domain and are hard to transfer to other problems. Along with
the rapid development of deep learning in recent years, learning-based methods have
evolved quickly and attracted more attention. For example, the program features are
explicitly given in [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ] to decide which algorithm is potentially the best for verifying
the programs. Later in [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ], program features are learned in the end-to-end pipeline.
Moreover, some generative models [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ] are also introduced to produce essential
information for solving verification problems. For instance, Code2inv [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] embeds the programs
by graph neural networks (GNNs) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and learns to construct loop invariants by a deep
neural reinforcement framework.
      </p>
      <p>
        For deep learning-based methods, no matter how the learning pipeline is designed
and the neural network structure is constructed, learning to represent semantic program
features is essential and challenging (a) because the syntax of the source code varies
depending on the programming languages, conventions, regulations, and even syntax sugar
and (b) because it requires capturing intricate semantics from long-distance relational
information based on re-occurring identifiers. For the first challenge, since the source code
is not the only way to represent a program, learning from other formats is a promising
direction. For example, inst2vec [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] learns control and data flow from LLVM intermediate
representation [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] by recursive neural networks (RNNs) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Constrained Horn Clauses
(CHCs) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], as an intermediate verification language, consist of logic implications and
constraints and can alleviate the dificulty since they can naturally encode program logic
with simple syntax. For the second challenge, we use graphs to represent CHCs and
learn the program features by GNNs since they can learn from the structural information
within the node’s N-hop neighbourhood by recursive neighbourhood aggregation (i.e.,
neural message passing) procedure.
      </p>
      <p>In this work, we explore how to learn program features from CHCs by answering two
questions: (1) What kind of graph representation is suitable for CHCs? (2) Which kind
of GNN is suitable to learn from the graph representation?</p>
      <p>
        For the first point, we introduce two graph representations for CHCs: the constraint
graph (CG) and control- and data-flow hypergraph (CDHG). The constraint graph encodes
the CHCs into three abstract layers (predicate, clause, and constraint layers) to preserve as
much structural information as possible (i.e., it emphasizes program syntax). On the other
hand, the Control- and data-flow hypergraph uses ternary hyperedges to capture the flow
of control and data in CHCs to emphasize program semantics. To better express control
and data flow in CDHG, we construct it from normalized CHCs. The normalization
changes the format of the original CHC but retains logical meaning. We assume that
diferent graph representations of CHCs capture diferent aspects of semantics. The two
graph representations can be used as a baseline to construct new graph representations of
CHC to represent diferent semantics. In addition, similar to the idea in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], our graph
representations are invariant to the concrete symbol names in the CHCs since we map
them to typed nodes.
      </p>
      <p>
        For the second point, we propose a Relational Hypergraph Neural Network (R-HyGNN),
an extension of Relational Graph Convolutional Networks (R-GCN) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Similar to the
GNNs used in LambdaNet [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], R-HyGNN can handle hypergraphs by concatenating
the node representations involved in a hyperedge and passing the messages to all nodes
connected by the hyperedge.
      </p>
      <p>
        Finally, we evaluate our framework (two graph representations of CHCs and R-HyGNN)
by five proxy tasks (see details in Table 1) with increasing dificulties. Task 1 requires the
framework to learn to classify syntactic information of CHCs, which is explicitly encoded
in the two graph representations. Task 2 requires the R-HyGNN to predict a syntactic
counting task. Task 3 needs the R-HyGNN to approximate the Tarjan’s algorithm [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ],
which solves a general graph theoretical problem. Task 4 is much harder than the last
three tasks since the existence of argument bounds is undecidable. Task 5 is harder than
solving CHCs since it predicts the trace of counter-examples (CEs). Note that Task 1
to 3 can be easily solved by specific, dedicated standard algorithms. We include them
to systematically study the representational power of graph neural networks applied to
diferent graph construction methods. However, we speculate that using these tasks as
pre-training objectives for neural networks that are later fine-tuned to specific (data-poor)
tasks may be a successful strategy which we plan to study in future work.
      </p>
      <p>
        Our benchmark data is extracted from the 8705 linear and 8425 non-linear Linear
Integer Arithmetic (LIA) problems in the CHC-COMP repository1 (see Table 1 in the
competition report [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]). The verification problems come from various sources (e.g.,
higher-order program verification benchmark 2 and benchmarks generated with JayHorn3),
      </p>
      <sec id="sec-1-1">
        <title>1https://chc-comp.github.io/</title>
      </sec>
      <sec id="sec-1-2">
        <title>2https://github.com/chc-comp/hopv</title>
      </sec>
      <sec id="sec-1-3">
        <title>3https://github.com/chc-comp/jayhorn-benchmarks</title>
        <p>
          therefore cover programs with diferent size and complexity. We collect and form the train,
valid, and test data using the predicate abstraction-based model checker Eldarica [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
We implement R-HyGNNs4 based on the framework tf2_gnn5. Our code is available in
a Github repository6. For both graph representations, even if the predicted accuracy
decreases along with the increasing dificulty of tasks, for undecidable problems in Task
4, R-HyGNN still achieves high accuracy, i.e., 91% and 94% for constraint graph and
CDHG, respectively. Moreover, in Task 5, despite the high accuracy (96%) achieved by
CDHG, R-HyGNN has a perfect prediction on one of the graphs consisting of more than
290 clauses, which is impossible to achieve by learning simple patterns (e.g., predict the
clause including false as positive). Overall, our experiments show that our framework
learns not only the explicit syntax but also intricate semantics.
        </p>
        <p>Contributions of the paper. (i) We encode CHCs into two graph representations,
emphasising abstract program syntactic and semantic information, respectively. (ii) We
extend a message passing-based GNN, R-GCN, to R-HyGNN to handle hypergraphs.
(iii) We introduce five proxy supervised learning tasks to explore the capacity of
RHyGNN to learn semantic information from the two graph representations. (iv) We
evaluate our framework on the CHC-COMP benchmark and show that this framework
can learn intricate semantic information from CHCs and has the potential to produce
good heuristics for program verification.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Background</title>
      <sec id="sec-2-1">
        <title>2.1. From Program Verification to Horn clauses</title>
        <p>
          Constrained Horn Clauses are logical implications involving unknown predicates. They
can be used to encode many formalisms, such as transition systems, concurrent systems,
and interactive systems. The connections between program logic and CHCs can be bridged
by Floyd-Hoare logic [
          <xref ref-type="bibr" rid="ref22 ref23">22, 23</xref>
          ], allowing to encode program verification problems into the
CHC satisfiability problems [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. In this setting, a program is guaranteed to satisfy a
specification if the encoded CHCs are satisfiable, and vice versa.
        </p>
        <p>We write CHCs in the form H ← B1 ∧ · · · ∧ Bn ∧ ϕ, where (i) Bi is an application qi(t¯i)
of the relation symbol qi to a list of first-order terms t¯i; (ii) H is either an application
q(t¯), or false; (iii) ϕ is a first-order constraint. Here, H and B1 ∧ · · · ∧ Bn ∧ ϕ in the left
and right hand side of implication ← are called “head" and “body", respectively.</p>
        <p>An example in Figure 1 explains how to encode a verification problem into CHCs. In
Figure 1a, we have a verification problem, i.e., a C program with specifications. It has an
external input n, and we can initially assume that x == n, y == n, and, n &gt;= 0. While
x is not equal to 0, x and y are decreased by 1. The assertion is that finally, y == 0.
This program can be encoded to the CHC shown in Figure 1b. The variables x and y
4https://github.com/ChenchengLiang/tf2-gnn
5https://github.com/microsoft/tf2-gnn
6https://github.com/ChenchengLiang/Systematic-Predicate-Abstraction-using-Machine-Learning</p>
        <p>L1(n) ← L0(n)
L2(x, y, n) ← L1(n)
L3(x, y, n) ← L2(x, y, n) ∧ n ≥ 0</p>
        <p>∧ x = n ∧ y = n line 3
L8(x, y, n) ← L3(x, y, n) ∧ x = 0 line 4
L4(x, y, n) ← L3(x, y, n) ∧ x 6= 0 line 4
L5(x, y, n) ← L4(x0, y, n) ∧ x = x0 − 1 line 5
L6(x, y, n) ← L5(x, y0, n) ∧ y = y0 − 1 line 6
L3(x, y, n) ← L6(x, y, n) line 6
false ← L8(x, y, n) ∧ y 6= 0 line 8
(b) CHCs encoded from C program in Figure 1a.</p>
        <p>
          false ← L(x, y, n) ∧ x = 0 ∧ y 6= 0
L(x, y, n) ← n ≥ 0 ∧ x = n ∧ y = n line 3
L(x, y, n) ← L(x0, y0, n0) ∧ x0 6= 0 ∧ x = x0 − 1 ∧ y = y0 − 1 ∧ n = n0 line 4-7
line 8
(c) Simplified CHCs from Figure 1b.
are quantified universally. We can further simplify the CHCs in Figure 1b to the CHCs
shown in Figure 1c without changing the satisfiability by some preprocessing steps (e.g.,
inlining and slicing) [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]. For example, the first CHC encodes line 3, i.e., the assume
statement, the second clause encodes lines 4-7, i.e., the while loop, and the third clause
encodes line 8, i.e., the assert statement in Figure 1a. Solving the CHCs is equivalent
to answering the verification problem. In this example, with a given n, if the CHCs are
satisfiable for all x and y, then the program is guaranteed to satisfy the specifications.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Graph Neural Networks</title>
        <p>Let G = (V, R, E, X, `) denote a graph in which v ∈ V is a set of nodes, r ∈ R is a set of
edge types, E ∈ V × V × R is a set of typed edges, x ∈ X is a set of node types, and
` : v → x is a labelling map from nodes to their type. A tuple e = (u, v, r) ∈ E denotes
an edge from node u to v with edge type r.</p>
        <p>Message passing-based GNNs use a neighbourhood aggregation strategy, where at
timestep t, each node updates its representation htv by aggregating representations of its
neighbours and then combining its own representation. The initial node representation hv0
is usually derived from its type or label `(v). The common assumption of this architecture
is that after T iterations, the node representation hvT captures local information within
htv = σ(X X
r∈R u∈Nvr cv,r
1</p>
        <p>
          Wrthtu−1 + W0htv−1),
(1)
t-hop neighbourhoods. Most GNN architectures [
          <xref ref-type="bibr" rid="ref26 ref27">26, 27</xref>
          ] can be characterized by their
used “aggregation” function ρ and “update” function φ. The node representation of the
t-th layer of such a GNN is then computed by htv = φ(ρ({htu−1 | u ∈ Nvr, r ∈ R}), htv−1),
where R is a set of edge type and Nvr is the set of nodes that are the neighbors of v in
edge type r.
        </p>
        <p>
          A closed GNN architecture to the R-HyGNN is R-GCN [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. They update the node
representation by
where Wr and W0 are edge-type-dependent trainable weights, cv,r is a learnable or fixed
normalisation factor, and σ is a activation function.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Graph Representations for CHCs</title>
      <p>
        Graphs as a representation format support arbitrary relational structure and thus can
naturally encode information with rich structures like CHCs. We define two graph
representations for CHCs that emphasize the program syntax and semantics, respectively.
We map all symbols in CHCs to typed nodes and use typed edges to represent their
relations. In this section, we give concrete examples to illustrate how to construct the
two graph representations from a single CHC modified from Figure 1c. In the examples,
we first give the intuition of the graph design and then describe how to construct the
graph step-wise. To better visualize how to construct the two graph representations in
Figures 2 and 3, the concrete symbol names for the typed nodes are shown in the blue
boxes. R-HyGNN is not using these names (which, as a result of repeated transformations,
usually do not carry any meaning anyway) and only consumes the node types. The
formal definitions of the graph representations and the algorithms to construct them
from multiple CHCs are in the full version of this paper [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. Note that the two graph
representations in this study are designed empirically. They can be used as a baseline to
create variations of the graphs to fit diferent purposes.
      </p>
      <sec id="sec-3-1">
        <title>3.1. Constraint Graph (CG)</title>
        <p>
          Our Constraint graph is a directed graph with binary edges designed to emphasize
syntactic information in CHCs. One concrete example of constructing the constraint
graph for a single CHC L(x, y, n) ← L(x0, y0, n0) ∧ x 6= 0 ∧ x = x0 − 1 ∧ y = y0 − 1 modified
from Figure 1c is shown in Figure 2. The corresponding node and edge types are described
in Tables 2 and 3 in the full version of this paper [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ].
        </p>
        <p>We construct the constraint graph by parsing the CHCs in three diferent aspects
(relation symbol, clause structure, and constraint) and building relations for them. In
other words, a constraint graph consists of three layers: the predicate layer depicts the
relation between relation symbols and their arguments; the clause layer describes the
abstract syntax of head and body items in the CHC; the constraint layer represents the
constraint by abstract syntax trees (ASTs).
Constructing a constraint graph. Now we give a concrete example to describe how to
construct a constraint graph for a single CHC L(x, y, n) ← L(x0, y0, n0) ∧ x 6= 0 ∧ x =
x0 − 1 ∧ y = y0 − 1 step-wise. All steps correspond to the steps in Figure 2. In the
ifrst step, we draw relation symbols and their arguments as typed nodes and build the
connection between them. In the second step, we construct the clause layer by drawing
clauses, the relation symbols in the head and body, and their arguments as typed nodes
and build the relation between them. In the third step, we construct the constraint
layer by drawing ASTs for the sub-expressions of the constraint. In the fourth step, we
add connections between three layers. The predicate and clause layer are connected by
the relation symbol instance (RSI) and argument instance (AI) edges, which means the
elements in the predicate layer are instances of the clause layer. The clause and constraint
layers are connected by the GUARD and DATA edges since the constraint is the guard
of the clause implication, and the constraint and clause layer share some elements.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Control- and Data-flow Hypergraph (CDHG)</title>
        <p>In contrast to the constraint graph, the CDHG representation emphasizes the semantic
information (control and data flow) in the CHCs by hyperedges which can join any number
of vertices. To represent control and data flow in CDHG, first, we preprocess every CHC
and then split the constraint into control and data flow sub-formulas.</p>
        <p>Normalization. We normalize every CHC by applying the following rewriting steps:
(i) We ensure that every relation symbol occurs at most once in every clause. For instance,
the CHC q(a) ← q(b) ∧ q(c) has multiple occurrences of the relation symbol q, and we
normalize it to equi-satisfiable CHCs q(a) ← q0(b) ∧ q00(c), q0(b) ← q(b0) ∧ b = b0 and
q00(c) ← q(c0) ∧ c = c0. (ii) We associate each relation symbol q with a unique vector
of pair-wise distinct argument variables x¯q, and rewrite every occurrence of q to the
form q(x¯q). In addition, all the argument vectors x¯q are kept disjoint. The normalized
CHCs from Figure 1c are shown in Table 2.</p>
        <p>Splitting constraints into control- and data-flow formulas. We can rewrite the
constraint ϕ to a conjunction ϕ = ϕ1 ∧ · · · ∧ ϕk, k ∈ N . The sub-formula ϕi is called a
“data-flow sub-formula” if and only if it can be rewritten to the form x = t(y¯) such that
(i) x is one of the arguments in head q(x¯q); (ii) t(y¯) is a term over variables y¯, where each
element of y¯ is an argument of some body literal q0(x¯q0 ). We call all other ϕj “control-flow
sub-formulas”. A constraint ϕ can then be represented by ϕ = g1 ∧ · · · ∧ gm ∧ d1 ∧ · · · ∧ dn,
where m, n ∈ N and gi and dj are the control- and data-flow sub-formulas, respectively.
The control and data flow sub-formulas for the normalized CHCs of our running example
are shown in Table 2.</p>
        <p>Constructing a CDHG. The CDHG represents program control- and data-flow by
guarded control-flow hyperedges CFHE and data-flow hyperedges DFHE. A CFHE edge
denotes the flow of control from the body to head literals of the CHC. A DFHE edge
denotes how data flows from the body to the head. Both control- and data-flow are
guarded by the control flow sub-formula.</p>
        <p>
          Constructing the CDHG for a normalized CHC L(x, y, n) ← L0(x0, y0, n0) ∧ x 6= 0 ∧ x =
x0 − 1 ∧ y = y0 − 1 is shown in Figure 3. The corresponding node and edge types are
described in Tables 5 and 6 in the full version of this paper [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ].
        </p>
        <p>In the first step, we draw relation symbols and their arguments and build the relation
between them. In the second step, we add a guard node and draw ASTs for the control flow
sub-formulas. In the third step, we construct guarded control-flow edges by connecting
the relation symbols in the head and body and the guard node, which connects the root
of control flow sub-formulas. In the fourth step, we construct the ASTs for the right-hand
side of every data flow sub-formula. In the fifth step, we construct the guarded data-flow
edges by connecting the left- and right-hand sides of the data flow sub-formulas and the
guard node. Note that the diamond shapes in Figure 3 are not nodes in the graph but
are used to visualize our (ternary) hyperedges of types CFHE and DFHE. We show it in
this way to visualize CDHG better.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Relational Hypergraph Neural Network</title>
      <p>Diferent from regular graphs, which connect nodes by binary edges, CDHG includes
hyperedges which connect arbitrary number of nodes. Therefore, we extend R-GCN to
R-HyGNN to handle hypergraphs. The updating rule for node representation at time
step t in R-HyGNN is
htv = ReLU(X</p>
      <p>X X
r∈R p∈Pr e∈Evr,p</p>
      <p>Wrt,p · k[htu−1 | u ∈ e]),
(2)
where k{·} denotes concatenation of all elements in a set, r ∈ R = {ri | i ∈ N} is the
set of edge types (relations), p ∈ Pr = {pj | j ∈ N} is the set of node positions under
edge type r, Wrt,p denotes learnable parameters when the node is in the pth position
with edge type r, and e ∈ Evr,p is the set of hyperedges of type r in the graph in which
node v appears in position p, where e is a list of nodes. The updating process for the
representation of node v at time step 1 is illustrated in Figure 4.</p>
      <p>Note that diferent edge types may have the same number of connected nodes. For
instance, in CDHG, CFHE and DFHE are both ternary edges.</p>
      <p>Overall, our definition of R-HyGNN is a generalization of R-GCN. Concretely, it can
directly be applied to the special-case of binary graphs, and in that setting is slightly
more powerful as each message between nodes is computed using the representations of
both source and target nodes, whereas R-GCN only uses the source node representation.</p>
      <sec id="sec-4-1">
        <title>4.1. Training Model</title>
        <p>The end-to-end model consists of three components: the first component is an embedding
layer, which learns to map the node’s type (encoded by integers) to the initial feature
vectors; the second component is R-HyGNN, which learns program features; the third
component is a set of fully connected neural networks, which learns to solve a specific
task by using gathered node representations from R-HyGNNs. All parameters in these
three components are trained together. Note that diferent tasks may gather diferent
node representations. For example, Task 1 gathers all node representations, while Task 2
only gathers node representations with type rs.</p>
        <p>We set all vector lengths to 64, i.e., the embedding layer output size, the middle layers’
neuron size in R-HyGNNs, and the layer sizes in fully connected neural networks are
all 64. The maximum training epoch is 500, and the patient is 100. The number of
message passing steps is 8 (i.e., (2) is applied eight times). For the rest of the parameters
(e.g., learning rate, optimizer, dropout rate, etc.), we use the default setting in the
tf2_gnn framework. We set these parameters empirically according to the graph size
and the structure. We apply these fixed parameter settings for all tasks and two graph
representations without fine-tuning.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Proxy Tasks</title>
      <p>We propose five proxy tasks with increasing dificulty to systematically evaluate the
R-HyGNN on the two graph representations. Tasks 1 to 3 evaluate if R-HyGNN can
solve general problems in graphs. In contrast, Tasks 4 and 5 evaluate if combining our
graph representations and R-HyGNN can learn program features to solve the encoded
program verification problems. We first describe the learning target for every task and
then explain how to produce training labels and discuss the learning dificulty.
Task 1: Argument identification. For both graph representations, the R-HyGNN model
performs binary classification on all nodes to predict if the node type is a relation symbol
argument (rsa) and the metric is accuracy. The binary training label is obtained by
reading explicit node types. This task evaluates if R-HyGNN can diferentiate explicit node
types. This task is easy because the graph explicitly includes the node type information
in both typed nodes and edges.</p>
      <p>Task 2: Count occurrence of relation symbols in all clauses. For both graph
representations, the R-HyGNN model performs regression on nodes with type rs to predict
how many times the relation symbols occur in all clauses. The metric is mean square
error. The training label is obtained by counting the occurrence of every relation symbol
in all clauses. This task is designed to see if R-HyGNN can correctly perform a counting
task. For example, the relation symbol L occurs four times in all CHCs in Figure 2, so
the training label for node L is value 4. This task is harder than Task 1 since it needs to
count the connected binary edges or hyperedges for a particular node.</p>
      <p>
        Task 3: Relation symbol occurrence in SCCs. For both graph representations, the
R-HyGNN model performs binary classification on nodes with type rs to predict if this
node is an SCC (i.e., in a cycle) and the metric is accuracy. The binary training label is
obtained using Tarjan’s algorithm [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. For example, in Figure 2, L is an SCC because
L and L0 construct a cycle by L ← L0 and L0 ← L. This task is designed to evaluate
if R-HyGNN can recognize general graph structures such as cycles. This task requires
the model to classify a graph-theoretic object (SCC), which is harder than the previous
two tasks since it needs to approximate a concrete algorithm rather than classifying or
counting explicit graphical elements.
      </p>
      <p>Task 4: Existence of argument bounds. For both graph representations, we train
two independent R-HyGNN models which perform binary classification on nodes with
type rsa to predict if individual arguments have (a) lower and (b) upper bounds in the
least solution of a set of CHCs, and the metric is accuracy. To obtain the training label,
we apply the Horn solver Eldarica to check the correctness of guessed (and successively
increased) lower and upper arguments bounds; arguments for which no bounds can be
shown are assumed to be unbounded. We use a timeout of 3 s for the lower and upper
bound of a single argument, respectively. The overall timeout for extracting labels from
one program is 3 hours. For example, consider the CHCs in Fig. 1c. The CHCs contain a
single relation symbol L; all three arguments of L are bounded from below but not from
above. This task is (significantly) harder than the previous three tasks, as boundedness
of arguments is an undecidable property that can, in practice, be approximated using
static analysis methods.</p>
      <p>
        Task 5: Clause occurrence in counter-examples This task consists of two binary
classification tasks on nodes with type guard (for CDHG), and with type clause (for
constraint graph) to predict if a clause occurs in the counter-examples. Those kinds
of nodes are unique representatives of the individual clauses of a problem. The task
focuses on unsatisfiable sets of CHCs. Every unsatisfiable clause set gives rise to a set of
minimal unsatisfiable subsets (MUSes); MUSes correspond to the minimal CEs of the
clause set. Two models are trained independently to predict whether a clause belongs to
(a) the intersection or (b) the union of the MUSes of a clause set. The metric for this
task is accuracy. We obtain training data by applying the Horn solver Eldarica [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], in
combination with an optimization library that provides an algorithm to compute MUSes7.
This task is hard, as it attempts the prediction of an uncomputable binary labelling of
the graph.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. Evaluation</title>
      <p>We first describe the dataset we use for the training and evaluation and then analyse the
experiment results for the five proxy tasks.</p>
      <sec id="sec-6-1">
        <title>7https://github.com/uuverifiers/lattice-optimiser/</title>
        <sec id="sec-6-1-1">
          <title>6.1. Benchmarks and Dataset</title>
          <p>
            Table 3 shows the number of labelled graph representations from a collection of
CHCCOMP benchmarks [
            <xref ref-type="bibr" rid="ref20">20</xref>
            ]. All graphs were constructed by first running the preprocessor
of Eldarica [
            <xref ref-type="bibr" rid="ref25">25</xref>
            ] on the clauses, then building the graphs as described in Section 3,
and computing training data. For instance, in the first four tasks we constructed 2337
constraint graphs with labels from 8705 benchmarks in the CHC-COMP LIA-Lin track
(linear Horn clauses over linear integer arithmetic). The remaining 6368 benchmarks are
not included in the learning dataset because when we construct the graphs, (1) the data
generation process timed out, or (2) the graphs were too big (more than 10,000 nodes), or
(3) there was no clause left after simplification. In Task 5, since the label is mined from
CEs, we first need to identify unsat benchmarks using a Horn solver (1-hour timeout),
and then construct graph representations. We obtain 881 and 857 constraint graphs when
we form the labels for Task 5 (a) and (b), respectively, in LIA-Lin.
          </p>
          <p>Finally, to compare the performance of the two graph representations, we align the
dataset for both two graph representations to have 5602 labelled graphs for the first four
tasks. For Task 5 (a) and (b), we have 1927 and 1914 labelled graphs, respectively. We
divide them to train, valid, and test sets with ratios of 60%, 20%, and 20%. We include
all corresponding files for the dataset in a Github repository 8.</p>
        </sec>
        <sec id="sec-6-1-2">
          <title>6.2. Experimental Results for Five Proxy Tasks</title>
          <p>From Table 4, we can see that for all binary classification tasks, the accuracy for both
graph representations is higher than the ratios of the dominant labels. For the regression
task, the scattered points are close to the diagonal line. These results show that R-HyGNN
can learn the syntactic and semantic information for the tasks rather than performing
simple strategies (e.g., fill all likelihood by 0 or 1). Next, we analyse the experimental
results for every task.</p>
          <p>Task 1: Argument identification. When the task is performed in the constraint graph,
the accuracy of prediction is 100%, which means R-HyGNN can perfectly diferentiate if a
node is a relation symbol argument rsa node. When the task is performed in CDHG, the
accuracy is close to 100% because, unlike in the constraint graph, the number of incoming</p>
        </sec>
      </sec>
      <sec id="sec-6-2">
        <title>8https://github.com/ChenchengLiang/Horn-graph-dataset</title>
        <p>and outgoing edges are fixed (i.e., RSA and AI), the rsa nodes in CDHG may connect
with a various number of edges (including RSA, AST _1, AST _2, and DFHE) which
makes R-HyGNN hard to predict the label precisely.</p>
        <p>Besides, the data distribution looks very diferent between the two graph representations
because the normalization of CHCs introduces new clauses and arguments. For example,
in the simplified CHCs in Figure 1c, there are three arguments for the relation symbol
L, while in the normalized clauses in Figure 2, there are six arguments for two relation
symbols L and L0. If the relation symbols have a large number of arguments, the diference
in data distribution between the two graph representations becomes larger. Even though
the predicted label in this task cannot directly help solve the CHC-encoded problem, it is
important to study the message flows in the R-HyGNNs.</p>
        <p>Task 2: Count occurrence of relation symbols in all clauses. In the scattered plots in
Figure 5, the x- and y-axis denote true and the predicted values in the logarithm scale,
respectively. The closer scattered points are to the diagonal line, the better performance
of predicting the number of relation symbol occurrences in CHCs. Both CDHG and
constraint graph show good performance (i.e., most of the scattered points are near the
diagonal lines). This syntactic information can be obtained by counting the CFHE and
RSI edges for CDHG and constraint graph, respectively. When the number of nodes is
large, the predicted values are less accurate. We believe this is because graphs with a
large number of nodes have a more complex structure, and there is less training data.
Moreover, the mean square error for the CDHG is larger than the constraint graph
because normalization increases the number of nodes and the maximum counting of
relation symbols for CDHG, and the larger range of the value is, the more dificult for
regression task. Notice that the number of test data (1115) for this task is less than the
data in the test set (1121) shown in Table 3 because the remaining six graphs do not
have a rs node.</p>
        <p>
          Task 3: Relation symbol occurrence in SCCs. The predicted high accuracy for both
graph representations shows that our framework can approximate Tarjan’s algorithm [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
In contrast to Task 2, even if the CDHG has more nodes than the constraint graph on
average, the CDHG has better performance than the constraint graph , which means the
control and data flow in CDHG can help R-HyGNN to learn graph structures better. For
the same reason as task 2, the number of test data (1115) for this task is less than the
data in the test set (1121).
        </p>
        <p>Task 4: Existence of argument bounds. For both graph representations, the accuracy
is much higher than the ratio of the dominant label. Our framework can predict the
answer for undecidable problems with high accuracy, which shows the potential for guiding
CHC solvers. The CDHG has better performance than the constraint graph, which might
be because predicting argument bounds relies on semantic information. The number of
test data (1028) for this task is less than the data in the test set (1121) because the
remaining 93 graphs do not have a rsa node.
(a) Scatter plot for CDHG. The total rs node
number is 16858. The mean square error is
4.22.</p>
        <p>(b) Scatter plot for constraint graph. The total
rs node number is 11131. The mean square
error is 1.04.</p>
        <p>Task 5: Clause occurrence in counter-examples. For Task (a) and (b), the overall
accuracy for two graph representations is high. We manually analysed some predicted
results by visualizing the (small) graphs9. We identify some simple patterns that are
learned by R-HyGNNs. For instance, the predicted likelihoods are always high for the rs
nodes connected to the false nodes. One promising result is that the model can predict all
labels perfectly for some big graphs10 that contain more than 290 clauses, which confirms
that the R-HyGNN is learning certain intricate patterns rather than simple patterns. In
addition, the CDHG has better performance than the constraint graph , possibly because
semantic information is more important for solving this task.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>7. Related Work</title>
      <p>
        Learning to represent programs. Contextual embedding methods (e.g. transformer [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ],
BERT [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], GPT [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], etc.) achieved impressive results in understanding natural languages.
Some methods are adapted to explore source code understanding in text format (e.g.
CodeBERT [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ], cuBERT [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ], etc.). But, the programming language usually contains rich,
explicit, and complicated structural information, and the problem sets (learning targets)
of it [
        <xref ref-type="bibr" rid="ref34 ref35">34, 35</xref>
        ] are diferent from natural languages. Therefore, the way of representing the
programs and learning models should adapt to the programs’ characteristics. Recently, the
frameworks consisting of structural program representations (graph or AST) and graph or
tree-based deep learning models made good progress in solving program language-related
problems. For example, [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ] represents the program by a sequence of code subtokens
      </p>
      <sec id="sec-7-1">
        <title>9https://github.com/ChenchengLiang/Horn-graph-dataset/tree/main/example-analysis/</title>
        <p>task5-small-graphs</p>
        <p>
          10https://github.com/ChenchengLiang/Horn-graph-dataset/tree/main/example-analysis/
task5-big-graphs
and predicts source code snippets summarization by a novel convolutional attention
network. Code2vec [
          <xref ref-type="bibr" rid="ref37">37</xref>
          ] learns the program from the paths in its AST and predicts
semantic properties for the program using a path-based attention model. [
          <xref ref-type="bibr" rid="ref38">38</xref>
          ] use AST to
represent the program and classify programs according to functionality using the
treebased convolutional neural network (TBCNN). Some studies focus on defining eficient
program representations, others focus on introducing novel learning structures, while we
do both of them (i.e. represent the CHC-encoded programs by two graph representations
and propose a novel GNN structure to learn the graph representations).
Deep learning for logic formulas. Since deep learning is introduced to learn the
features from logic formulas, an increasing number of studies have begun to explore graph
representations for logic formulas and corresponding learning frameworks because logic
formulas are also highly structured like program languages. For instance, DeepMath [
          <xref ref-type="bibr" rid="ref39">39</xref>
          ]
had an early attempt to use text-level learning on logic formulas to guide the formal
method’s search process, in which neural sequence models are used to select premises
for automated theorem prover (ATP). Later on, FormulaNet [
          <xref ref-type="bibr" rid="ref40">40</xref>
          ] used an
edge-orderpreserving embedding method to capture the structural information of higher-order logic
(HOL) formulas represented in a graph format. As an extension of FormulaNet, [
          <xref ref-type="bibr" rid="ref41">41</xref>
          ]
construct syntax trees of HOL formulas as structural inputs and use message-passing
GNNs to learn features of HOL to guide theorem proving by predicting tactics and tactic
arguments at every step of the proof. LERNA [
          <xref ref-type="bibr" rid="ref42">42</xref>
          ] uses convolutional neural networks
(CNNs) [
          <xref ref-type="bibr" rid="ref43">43</xref>
          ] to learn previous proof search attempts (logic formulas) represented by graphs
to guide the current proof search for ATP. NeuroSAT [
          <xref ref-type="bibr" rid="ref44 ref45">44, 45</xref>
          ] reads SAT queries (logic
formulas) as graphs and learns the features using diferent graph embedding strategies
(e.g. message passing GNNs) [
          <xref ref-type="bibr" rid="ref26 ref46">46, 47, 26</xref>
          ]) to directly predict the satisfiability or guide the
SAT solver. Following this trend, we introduce R-HyGNN to learn the program features
from the graph representation of CHCs.
        </p>
        <p>
          Graph neural networks. Message passing GNNs [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ], such as graph convolutional
network (GCN) [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], graph attention network (GAT) [48], and gated graph neural network
(GGNN) [47] have been applied in several domains ranging from predicting molecule
properties to learning logic formula representations. However, these frameworks only
apply to graphs with binary edges. Some spectral methods have been proposed to deal
with the hypergraph [49, 50]. For instance, the hypergraph neural network (HGNN) [51]
extends GCN proposed by [52] to handle hyperedges. The authors in [53] integrate
graph attention mechanism [48] to hypergraph convolution [52] to further improve the
performance. But, they cannot be directly applied to the spatial domain. Similar to the
ifxed arity predicates strategy described in LambdaNet [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], R-HyGNN concatenates node
representations connected by the hyperedge and updates the representation depending on
the node’s position in the hyperedge.
        </p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>8. Conclusion and Future Work</title>
      <p>In this work, we systematically explore learning program features from CHCs using
R-HyGNN, using two tailor-made graph representations of CHCs. We use five proxy
tasks to evaluate the framework. The experimental results indicate that our framework
has the potential to guide CHC solvers analysing Horn clauses. In future work, among
others we plan to use this framework to filter predicates in Horn solvers applying the
CEGAR model checking algorithm.
[47] Y. Li, D. Tarlow, M. Brockschmidt, R. Zemel, Gated graph sequence neural networks,
2015. URL: https://arxiv.org/abs/1511.05493. doi:10.48550/ARXIV.1511.05493.
[48] P. Veličković, G. Cucurull, A. Casanova, A. Romero, P. Liò, Y. Bengio, Graph
attention networks, 2017. URL: https://arxiv.org/abs/1710.10903. doi:10.48550/
ARXIV.1710.10903.
[49] H. Gui, J. Liu, F. Tao, M. Jiang, B. Norick, J. Han, Large-scale embedding learning
in heterogeneous event data, 2016, pp. 907–912. doi:10.1109/ICDM.2016.0111.
[50] K. Tu, P. Cui, X. Wang, F. Wang, W. Zhu, Structural deep embedding for
hypernetworks, CoRR abs/1711.10146 (2017). URL: http://arxiv.org/abs/1711.10146.
arXiv:1711.10146.
[51] Y. Feng, H. You, Z. Zhang, R. Ji, Y. Gao, Hypergraph neural networks, CoRR
abs/1809.09401 (2018). URL: http://arxiv.org/abs/1809.09401. arXiv:1809.09401.
[52] T. N. Kipf, M. Welling, Semi-supervised classification with graph convolutional
networks, CoRR abs/1609.02907 (2016). URL: http://arxiv.org/abs/1609.02907.
arXiv:1609.02907.
[53] S. Bai, F. Zhang, P. H. S. Torr, Hypergraph convolution and hypergraph attention,
2020. arXiv:1901.08150.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J.</given-names>
            <surname>Leroux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Rümmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Subotić</surname>
          </string-name>
          ,
          <article-title>Guiding Craig interpolation with domain-specific abstractions</article-title>
          ,
          <source>Acta Informatica</source>
          <volume>53</volume>
          (
          <year>2016</year>
          )
          <fpage>387</fpage>
          -
          <lpage>424</lpage>
          . URL: https://doi.org/10.1007/ s00236-015-0236-z. doi:
          <volume>10</volume>
          .1007/s00236-015-0236-z.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Demyanova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Rümmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Zuleger</surname>
          </string-name>
          ,
          <article-title>Systematic predicate abstraction using variable roles</article-title>
          , in: C.
          <string-name>
            <surname>Barrett</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Davies</surname>
          </string-name>
          , T. Kahsai (Eds.),
          <source>NASA Formal Methods</source>
          , Springer International Publishing, Cham,
          <year>2017</year>
          , pp.
          <fpage>265</fpage>
          -
          <lpage>281</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>E.</given-names>
            <surname>Clarke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Grumberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Jha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Veith</surname>
          </string-name>
          ,
          <article-title>Counterexample-guided abstraction refinement</article-title>
          , in: E. A.
          <string-name>
            <surname>Emerson</surname>
            ,
            <given-names>A. P.</given-names>
          </string-name>
          Sistla (Eds.), Computer Aided Verification, Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2000</year>
          , pp.
          <fpage>154</fpage>
          -
          <lpage>169</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>V.</given-names>
            <surname>Tulsian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kanade</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kumar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Lal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Nori</surname>
          </string-name>
          , MUX:
          <article-title>Algorithm selection for software model checkers</article-title>
          ,
          <source>in: Proceedings of the 11th Working Conference on Mining Software Repositories, MSR</source>
          <year>2014</year>
          ,
          <article-title>Association for Computing Machinery</article-title>
          , New York, NY, USA,
          <year>2014</year>
          , p.
          <fpage>132</fpage>
          -
          <lpage>141</lpage>
          . URL: https://doi.org/10.1145/2597073.2597080. doi:
          <volume>10</volume>
          .1145/2597073.2597080.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Demyanova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Pani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Veith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Zuleger</surname>
          </string-name>
          ,
          <article-title>Empirical software metrics for benchmarking of verification tools</article-title>
          , in: J.
          <string-name>
            <surname>Knoop</surname>
          </string-name>
          , U. Zdun (Eds.),
          <source>Software Engineering</source>
          <year>2016</year>
          ,
          <article-title>Gesellschaft für Informatik e</article-title>
          .V.,
          <string-name>
            <surname>Bonn</surname>
          </string-name>
          ,
          <year>2016</year>
          , pp.
          <fpage>67</fpage>
          -
          <lpage>68</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Richter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Hüllermeier</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.-C. Jakobs</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Wehrheim</surname>
          </string-name>
          ,
          <article-title>Algorithm selection for software validation based on graph kernels</article-title>
          ,
          <source>Automated Software Engineering</source>
          <volume>27</volume>
          (
          <year>2020</year>
          )
          <fpage>153</fpage>
          -
          <lpage>186</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>C.</given-names>
            <surname>Richter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wehrheim</surname>
          </string-name>
          ,
          <article-title>Attend and represent: A novel view on algorithm selection for software verification</article-title>
          ,
          <source>in: 2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE)</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>1016</fpage>
          -
          <lpage>1028</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D. P.</given-names>
            <surname>Kingma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Welling</surname>
          </string-name>
          , Auto-encoding
          <source>variational Bayes</source>
          ,
          <year>2013</year>
          . URL: https: //arxiv.org/abs/1312.6114. doi:
          <volume>10</volume>
          .48550/ARXIV.1312.6114.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>H.</given-names>
            <surname>Dai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Tian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Dai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Skiena</surname>
          </string-name>
          , L. Song,
          <article-title>Syntax-directed variational autoencoder for structured data</article-title>
          ,
          <year>2018</year>
          . URL: https://arxiv.org/abs/
          <year>1802</year>
          .08786. doi:
          <volume>10</volume>
          .48550/ ARXIV.
          <year>1802</year>
          .
          <volume>08786</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>X.</given-names>
            <surname>Si</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Naik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Dai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Naik</surname>
          </string-name>
          , L. Song,
          <article-title>Code2inv: A deep learning framework for program verification</article-title>
          , in: Computer Aided Verification: 32nd International Conference,
          <string-name>
            <surname>CAV</surname>
          </string-name>
          <year>2020</year>
          , Los Angeles, CA, USA, July
          <volume>21</volume>
          -
          <issue>24</issue>
          ,
          <year>2020</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>II</given-names>
          </string-name>
          , Springer-Verlag, Berlin, Heidelberg,
          <year>2020</year>
          , p.
          <fpage>151</fpage>
          -
          <lpage>164</lpage>
          . URL: https://doi.org/10. 1007/978-3-
          <fpage>030</fpage>
          -53291-
          <issue>8</issue>
          _9. doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -53291-
          <issue>8</issue>
          _
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P. W.</given-names>
            <surname>Battaglia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. B.</given-names>
            <surname>Hamrick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Bapst</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sanchez-Gonzalez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. F.</given-names>
            <surname>Zambaldi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Malinowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tacchetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Raposo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Santoro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Faulkner</surname>
          </string-name>
          , Ç. Gülçehre,
          <string-name>
            <given-names>H. F.</given-names>
            <surname>Song</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Ballard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gilmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. E.</given-names>
            <surname>Dahl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vaswani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. R.</given-names>
            <surname>Allen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Nash</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Langston</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Heess</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Wierstra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kohli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Botvinick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Vinyals</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Pascanu</surname>
          </string-name>
          ,
          <article-title>Relational inductive biases, deep learning, and graph networks</article-title>
          , CoRR abs/
          <year>1806</year>
          .01261 (
          <year>2018</year>
          ). URL: http://arxiv.org/abs/
          <year>1806</year>
          .01261. arXiv:
          <year>1806</year>
          .01261.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>T.</given-names>
            <surname>Ben-Nun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Jakobovits</surname>
          </string-name>
          , T. Hoefler,
          <article-title>Neural code comprehension: A learnable representation of code semantics</article-title>
          , CoRR abs/
          <year>1806</year>
          .07336 (
          <year>2018</year>
          ). URL: http://arxiv. org/abs/
          <year>1806</year>
          .07336. arXiv:
          <year>1806</year>
          .07336.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>C.</given-names>
            <surname>Lattner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Adve</surname>
          </string-name>
          ,
          <article-title>LLVM: a compilation framework for lifelong program analysis amp; transformation</article-title>
          , in:
          <source>International Symposium on Code Generation and Optimization</source>
          ,
          <year>2004</year>
          .
          <source>CGO</source>
          <year>2004</year>
          .,
          <year>2004</year>
          , pp.
          <fpage>75</fpage>
          -
          <lpage>86</lpage>
          . doi:
          <volume>10</volume>
          .1109/CGO.
          <year>2004</year>
          .
          <volume>1281665</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mikolov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Karafiát</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Burget</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Cernocký</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Khudanpur</surname>
          </string-name>
          ,
          <article-title>Recurrent neural network based language model</article-title>
          ,
          <source>in: INTERSPEECH</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Horn</surname>
          </string-name>
          ,
          <article-title>On sentences which are true of direct unions of algebras</article-title>
          ,
          <source>The Journal of Symbolic Logic</source>
          <volume>16</volume>
          (
          <year>1951</year>
          )
          <fpage>14</fpage>
          -
          <lpage>21</lpage>
          . URL: http://www.jstor.org/stable/2268661.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Olsák</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Kaliszyk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Urban</surname>
          </string-name>
          ,
          <article-title>Property invariant embedding for automated reasoning</article-title>
          , CoRR abs/
          <year>1911</year>
          .12073 (
          <year>2019</year>
          ). URL: http://arxiv.org/abs/
          <year>1911</year>
          .12073. arXiv:
          <year>1911</year>
          .12073.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Schlichtkrull</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. N.</given-names>
            <surname>Kipf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bloem</surname>
          </string-name>
          , R. v. d. Berg, I. Titov,
          <string-name>
            <given-names>M.</given-names>
            <surname>Welling</surname>
          </string-name>
          ,
          <article-title>Modeling relational data with graph convolutional networks</article-title>
          ,
          <year>2017</year>
          . URL: https://arxiv.org/ abs/1703.06103. doi:
          <volume>10</volume>
          .48550/ARXIV.1703.06103.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Wei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Goyal</surname>
          </string-name>
          , G. Durrett,
          <string-name>
            <surname>I. Dillig</surname>
          </string-name>
          ,
          <article-title>LambdaNet: Probabilistic type inference using graph neural networks</article-title>
          ,
          <year>2020</year>
          . arXiv:
          <year>2005</year>
          .02161.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>R. E.</given-names>
            <surname>Tarjan</surname>
          </string-name>
          ,
          <article-title>Depth-first search and linear graph algorithms</article-title>
          ,
          <source>SIAM J. Comput. 1</source>
          (
          <year>1972</year>
          )
          <fpage>146</fpage>
          -
          <lpage>160</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>G.</given-names>
            <surname>Fedyukovich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Rümmer</surname>
          </string-name>
          ,
          <source>Competition report: CHC-COMP-21</source>
          ,
          <year>2021</year>
          . URL: https://chc-comp.
          <source>github.io/2021/report.pdf.</source>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>P.</given-names>
            <surname>Rümmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Hojjat</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Kuncak</surname>
          </string-name>
          ,
          <article-title>Disjunctive interpolants for Horn-clause verification</article-title>
          (extended
          <source>technical report)</source>
          ,
          <year>2013</year>
          . arXiv:
          <volume>1301</volume>
          .
          <fpage>4973</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>R. W.</given-names>
            <surname>Floyd</surname>
          </string-name>
          ,
          <article-title>Assigning meanings to programs</article-title>
          ,
          <source>Proceedings of Symposium on Applied Mathematics</source>
          <volume>19</volume>
          (
          <year>1967</year>
          )
          <fpage>19</fpage>
          -
          <lpage>32</lpage>
          . URL: http://laser.cs.umass.edu/courses/cs521-
          <fpage>621</fpage>
          . Spr06/papers/Floyd.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>C. A. R.</given-names>
            <surname>Hoare</surname>
          </string-name>
          ,
          <article-title>An axiomatic basis for computer programming</article-title>
          ,
          <source>Commun. ACM</source>
          <volume>12</volume>
          (
          <year>1969</year>
          )
          <fpage>576</fpage>
          -
          <lpage>580</lpage>
          . URL: https://doi.org/10.1145/363235.363259. doi:
          <volume>10</volume>
          .1145/363235. 363259.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>N.</given-names>
            <surname>Bjørner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gurfinkel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>McMillan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rybalchenko</surname>
          </string-name>
          ,
          <article-title>Horn clause solvers for program verification</article-title>
          ,
          <year>2015</year>
          , pp.
          <fpage>24</fpage>
          -
          <lpage>51</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -23534-
          <issue>9</issue>
          _
          <fpage>2</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>H.</given-names>
            <surname>Hojjat</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ruemmer</surname>
          </string-name>
          ,
          <article-title>The ELDARICA Horn solver</article-title>
          ,
          <source>in: 2018 Formal Methods in Computer Aided Design (FMCAD)</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          . doi:
          <volume>10</volume>
          .23919/FMCAD.
          <year>2018</year>
          .
          <volume>8603013</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>J.</given-names>
            <surname>Gilmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. S.</given-names>
            <surname>Schoenholz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. F.</given-names>
            <surname>Riley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Vinyals</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. E.</given-names>
            <surname>Dahl</surname>
          </string-name>
          ,
          <article-title>Neural message passing for quantum chemistry</article-title>
          ,
          <source>CoRR abs/1704</source>
          .01212 (
          <year>2017</year>
          ). URL: http://arxiv. org/abs/1704.01212. arXiv:
          <volume>1704</volume>
          .
          <fpage>01212</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>K.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Leskovec</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Jegelka</surname>
          </string-name>
          ,
          <article-title>How powerful are graph neural networks?</article-title>
          , CoRR abs/
          <year>1810</year>
          .00826 (
          <year>2018</year>
          ). URL: http://arxiv.org/abs/
          <year>1810</year>
          .00826. arXiv:
          <year>1810</year>
          .00826.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>C.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Rümmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brockschmidt</surname>
          </string-name>
          ,
          <article-title>Exploring representation of horn clauses using gnns, 2022</article-title>
          . URL: https://arxiv.org/abs/2206.06986. doi:
          <volume>10</volume>
          .48550/ARXIV.2206. 06986.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>A.</given-names>
            <surname>Vaswani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Shazeer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Parmar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Uszkoreit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Jones</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. N.</given-names>
            <surname>Gomez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Kaiser</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Polosukhin</surname>
          </string-name>
          , Attention is all you need,
          <year>2017</year>
          . arXiv:
          <volume>1706</volume>
          .
          <fpage>03762</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>J.</given-names>
            <surname>Devlin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Toutanova</surname>
          </string-name>
          ,
          <article-title>BERT: pre-training of deep bidirectional transformers for language understanding</article-title>
          , CoRR abs/
          <year>1810</year>
          .04805 (
          <year>2018</year>
          ). URL: http://arxiv.org/abs/
          <year>1810</year>
          .04805. arXiv:
          <year>1810</year>
          .04805.
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>A.</given-names>
            <surname>Radford</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Narasimhan</surname>
          </string-name>
          ,
          <article-title>Improving language understanding by generative pre-training</article-title>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Feng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Duan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Feng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Shou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Qin</surname>
          </string-name>
          , T. Liu,
          <string-name>
            <given-names>D.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Zhou, CodeBERT: A pre-trained model for programming and natural languages</article-title>
          , CoRR abs/
          <year>2002</year>
          .08155 (
          <year>2020</year>
          ). URL: https://arxiv.org/abs/
          <year>2002</year>
          .08155. arXiv:
          <year>2002</year>
          .08155.
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kanade</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Maniatis</surname>
          </string-name>
          , G. Balakrishnan,
          <string-name>
            <given-names>K.</given-names>
            <surname>Shi</surname>
          </string-name>
          ,
          <article-title>Pre-trained contextual embedding of source code</article-title>
          , CoRR abs/
          <year>2001</year>
          .00059 (
          <year>2020</year>
          ). URL: http://arxiv.org/abs/
          <year>2001</year>
          .00059. arXiv:
          <year>2001</year>
          .00059.
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>H.</given-names>
            <surname>Husain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Gazit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Allamanis</surname>
          </string-name>
          , M. Brockschmidt,
          <article-title>CodeSearchNet challenge: Evaluating the state of semantic code search</article-title>
          , CoRR abs/
          <year>1909</year>
          .09436 (
          <year>2019</year>
          ). URL: http://arxiv.org/abs/
          <year>1909</year>
          .09436. arXiv:
          <year>1909</year>
          .09436.
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>S.</given-names>
            <surname>Lu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Svyatkovskiy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Blanco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. B.</given-names>
            <surname>Clement</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Drain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Shou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tufano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Duan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sundaresan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. K.</given-names>
            <surname>Deng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Fu</surname>
          </string-name>
          , S. Liu,
          <string-name>
            <surname>CodeXGLUE:</surname>
          </string-name>
          <article-title>A machine learning benchmark dataset for code understanding and generation</article-title>
          ,
          <source>CoRR abs/2102</source>
          .04664 (
          <year>2021</year>
          ). URL: https://arxiv.org/abs/2102.04664. arXiv:
          <volume>2102</volume>
          .
          <fpage>04664</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>M.</given-names>
            <surname>Allamanis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Peng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sutton</surname>
          </string-name>
          ,
          <article-title>A convolutional attention network for extreme summarization of source code</article-title>
          ,
          <source>CoRR abs/1602</source>
          .03001 (
          <year>2016</year>
          ). URL: http://arxiv.org/ abs/1602.03001. arXiv:
          <volume>1602</volume>
          .
          <fpage>03001</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>U.</given-names>
            <surname>Alon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zilberstein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Levy</surname>
          </string-name>
          ,
          <string-name>
            <surname>E. Yahav,</surname>
          </string-name>
          <article-title>Code2vec: Learning distributed representations of code</article-title>
          ,
          <source>Proc. ACM Program. Lang</source>
          .
          <volume>3</volume>
          (
          <year>2019</year>
          )
          <volume>40</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>40</lpage>
          :
          <fpage>29</fpage>
          . URL: http://doi.acm.
          <source>org/10</source>
          .1145/3290353. doi:
          <volume>10</volume>
          .1145/3290353.
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>L.</given-names>
            <surname>Mou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Jin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , T. Wang,
          <string-name>
            <surname>TBCNN:</surname>
          </string-name>
          <article-title>A tree-based convolutional neural network for programming language processing</article-title>
          ,
          <source>CoRR abs/1409</source>
          .5718 (
          <year>2014</year>
          ). URL: http://arxiv.org/abs/1409.5718. arXiv:
          <volume>1409</volume>
          .
          <fpage>5718</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>G.</given-names>
            <surname>Irving</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Szegedy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Alemi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Een</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Chollet</surname>
          </string-name>
          , J. Urban, DeepMath
          <article-title>- deep sequence models for premise selection</article-title>
          , in: D. D.
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Sugiyama</surname>
            ,
            <given-names>U. V.</given-names>
          </string-name>
          <string-name>
            <surname>Luxburg</surname>
            ,
            <given-names>I. Guyon</given-names>
          </string-name>
          , R. Garnett (Eds.),
          <source>Advances in Neural Information Processing Systems</source>
          <volume>29</volume>
          ,
          <string-name>
            <surname>Curran</surname>
            <given-names>Associates</given-names>
          </string-name>
          , Inc.,
          <year>2016</year>
          , pp.
          <fpage>2235</fpage>
          -
          <lpage>2243</lpage>
          . URL: http://papers.nips.cc/paper/ 6280-deepmath
          <article-title>-deep-sequence-models-for-premise-selection</article-title>
          .
          <source>pdf.</source>
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Deng</surname>
          </string-name>
          ,
          <article-title>Premise selection for theorem proving by deep graph embedding</article-title>
          , in: I. Guyon,
          <string-name>
            <given-names>U. V.</given-names>
            <surname>Luxburg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bengio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wallach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Fergus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Vishwanathan</surname>
          </string-name>
          , R. Garnett (Eds.),
          <source>Advances in Neural Information Processing Systems</source>
          <volume>30</volume>
          ,
          <string-name>
            <surname>Curran</surname>
            <given-names>Associates</given-names>
          </string-name>
          , Inc.,
          <year>2017</year>
          , pp.
          <fpage>2786</fpage>
          -
          <lpage>2796</lpage>
          . URL: http://papers.nips.cc/ paper/6871-premise
          <article-title>-selection-for-theorem-proving-by-deep-graph-embedding</article-title>
          .pdf.
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>A.</given-names>
            <surname>Paliwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. M.</given-names>
            <surname>Loos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. N.</given-names>
            <surname>Rabe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Bansal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Szegedy</surname>
          </string-name>
          ,
          <article-title>Graph representations for higher-order logic and theorem proving</article-title>
          , CoRR abs/
          <year>1905</year>
          .10006 (
          <year>2019</year>
          ). URL: http://arxiv.org/abs/
          <year>1905</year>
          .10006. arXiv:
          <year>1905</year>
          .10006.
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <given-names>M.</given-names>
            <surname>Rawson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Reger</surname>
          </string-name>
          ,
          <article-title>A neurally-guided, parallel theorem prover</article-title>
          , in: A.
          <string-name>
            <surname>Herzig</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Popescu (Eds.),
          <source>Frontiers of Combining Systems</source>
          , Springer International Publishing, Cham,
          <year>2019</year>
          , pp.
          <fpage>40</fpage>
          -
          <lpage>56</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43]
          <string-name>
            <given-names>A.</given-names>
            <surname>Krizhevsky</surname>
          </string-name>
          , I. Sutskever,
          <string-name>
            <given-names>G. E.</given-names>
            <surname>Hinton</surname>
          </string-name>
          ,
          <article-title>ImageNet classification with deep convolutional neural networks</article-title>
          , in: F. Pereira,
          <string-name>
            <given-names>C. J. C.</given-names>
            <surname>Burges</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bottou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. Q.</given-names>
            <surname>Weinberger</surname>
          </string-name>
          (Eds.),
          <source>Advances in Neural Information Processing Systems</source>
          , volume
          <volume>25</volume>
          ,
          <string-name>
            <surname>Curran</surname>
            <given-names>Associates</given-names>
          </string-name>
          , Inc.,
          <year>2012</year>
          . URL: https://proceedings.neurips.cc/paper/2012/file/ c399862d3b9d6b76c8436e924a68c45b-Paper.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [44]
          <string-name>
            <given-names>D.</given-names>
            <surname>Selsam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Bjørner</surname>
          </string-name>
          ,
          <article-title>Neurocore: Guiding high-performance SAT solvers with unsat-core predictions</article-title>
          , CoRR abs/
          <year>1903</year>
          .04671 (
          <year>2019</year>
          ). URL: http://arxiv.org/abs/
          <year>1903</year>
          .04671. arXiv:
          <year>1903</year>
          .04671.
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [45]
          <string-name>
            <given-names>D.</given-names>
            <surname>Selsam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lamm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Bünz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Liang</surname>
          </string-name>
          , L. de Moura,
          <string-name>
            <given-names>D. L.</given-names>
            <surname>Dill</surname>
          </string-name>
          ,
          <article-title>Learning a SAT solver from single-bit supervision</article-title>
          , CoRR abs/
          <year>1802</year>
          .03685 (
          <year>2018</year>
          ). URL: http://arxiv.org/abs/
          <year>1802</year>
          .03685. arXiv:
          <year>1802</year>
          .03685.
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          [46]
          <string-name>
            <given-names>F.</given-names>
            <surname>Scarselli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gori</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. C.</given-names>
            <surname>Tsoi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hagenbuchner</surname>
          </string-name>
          ,
          <string-name>
            <surname>G. Monfardini,</surname>
          </string-name>
          <article-title>The graph neural network model</article-title>
          ,
          <source>IEEE Transactions on Neural Networks</source>
          <volume>20</volume>
          (
          <year>2009</year>
          )
          <fpage>61</fpage>
          -
          <lpage>80</lpage>
          . doi:
          <volume>10</volume>
          .1109/TNN.
          <year>2008</year>
          .
          <volume>2005605</volume>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>