Relational program synthesis
Open accessAbstract
This paper proposes relational program synthesis, a new problem that concerns synthesizing one or more programs that collectively satisfy a relational specification. As a dual of relational program verification, relational program synthesis is an important problem that has many practical applications, such as automated program inversion and automatic generation of comparators. However, this relational synthesis problem introduces new challenges over its non-relational counterpart due to the combinatorially larger search space. As a first step towards solving this problem, this paper presents a synthesis technique that combines the counterexample-guided inductive synthesis framework with a novel inductive synthesis algorithm that is based on relational version space learning. We have implemented the proposed technique in a framework called Relish, which can be instantiated to different application domains by providing a suitable domain-specific language and the relevant relational specification. We have used the Relish framework to build relational synthesizers to automatically generate string encoders/decoders as well as comparators, and we evaluate our tool on several benchmarks taken from prior work and online forums. Our experimental results show that the proposed technique can solve almost all of these benchmarks and that it significantly outperforms EUSolver, a generic synthesis framework that won the general track of the most recent SyGuS competition.
AI snapshot
Written from the paper’s full text.
TL;DR
The paper introduces relational program synthesis, where one or more programs are synthesized together to satisfy a relational specification, and presents a CEGIS-based technique using hierarchical finite tree automata (HFTA) for relational version space learning. Implemented as Relish, it synthesizes string encoder/decoder pairs and comparators, solving almost all benchmarks and substantially outperforming EUSolver.
Key findings
- Relish solved all 10 encoder/decoder benchmarks, averaging 17.9 seconds per benchmark; EUSolver solved half within the 24-hour limit and averaged approximately 12 minutes on those it solved. On the five benchmarks solved by both, Relish’s average speed-up was 46.5x.
- Relish solved 19 of 20 comparator benchmarks (95%), averaging 94.7 seconds; EUSolver solved 13. Relish solved 46% more benchmarks than EUSolver and was 26x faster on the common benchmarks.
- Relish required fewer CEGIS iterations on average: 2.8 vs. 3.4 for encoder/decoder benchmarks, and 7.0 vs. 9.9 for comparator benchmarks.
- The paper proves HFTA soundness and completeness for relaxed specifications, and soundness/completeness of the overall synthesis algorithm under stated assumptions.
Methods
- The approach uses counterexample-guided inductive synthesis (CEGIS): a verifier checks candidate programs against the relational specification and returns relational counterexamples as ground formulas, which strengthen the inductive specification.
- The inductive synthesizer relaxes the ground specification, builds an HFTA whose nodes correspond to subterms/subformulas and whose inter-FTA transitions compose individual version spaces, then enforces functional consistency via the FindProgs and Propagate procedures.
- Relish was instantiated for string encoders/decoders (10 benchmarks, 7 from prior work plus Base32hex, UTF-32, UTF-7; 2–3 input-output examples; inversion property ∀x.decode(encode(x))=x) and comparators (20 StackOverflow benchmarks; specifications include anti-symmetry, transitivity, totality, reflexivity, and examples; 2–30 examples, average 16). It was compared against EUSolver using the same DSLs, CEGIS loop, and bounded verifier, with a 24-hour timeout.
Limitations
- The paper states that the method only works with simple DSLs without recursion, loops, or let bindings, and only allows relational specifications of the form ∀x.φ(x) where φ is quantifier-free, so it does not handle quantifier alternation.
- Evident from the text: the failed comparator-20 benchmark is not expressible in the current DSL because it requires comparing integers obtained by concatenating all substrings that represent integers in the input strings.
- Evident from the text: verification in each CEGIS iteration uses bounded testing over permutations up to a bounded length k (over a million test cases per iteration), resorting to full verification only after the candidate passes those tests.
Model-written summary. Check it against the paper before relying on it.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
1 of 5 cited sources checked · 0 supported · 0 flagged · accuracy not yet measured
- Findingown data
Relish significantly outperforms EUSolver, a general-purpose synthesis tool that won the General Track of the most recent SyGuS competition for syntax-guided synthesis.
“Our evaluation also shows that Relish significantly outperforms EUSolver, a general-purpose synthesis tool that won the General Track of the most recent SyGuS competition for syntax-guided synthesis.”
Quote in the paperSubstantial claim - Findingown data
The proposed technique can solve almost all of the benchmarks.
“Our experimental results show that the proposed technique can solve almost all of these benchmarks and that it significantly outperforms EUSolver, a generic synthesis framework that won the general track of the most recent SyGuS competition.”
Quote in the paperSubstantial claim - Findingown data
Relish can automatically synthesize the correct Base64 encoder and decoder from the given specification using a DSL targeted for this domain.
“Relish can automatically synthesize the correct Base64 encoder and decoder from this specification using a DSL targeted for this domain (see Section 6.2).”
Quote in the paperSubstantial claim - Findingown data
The proposed technique significantly outperforms EUSolver, a generic synthesis framework that won the general track of the most recent SyGuS competition.
“Our experimental results show that the proposed technique can solve almost all of these benchmarks and that it significantly outperforms EUSolver, a generic synthesis framework that won the general track of the most recent SyGuS competition.”
Quote in the paperSubstantial claim - Findingown data
Relish can efficiently solve interesting benchmarks taken from previous literature and online forums.
“Our evaluation shows that Relish can efficiently solve interesting benchmarks taken from previous literature and online forums.”
Quote in the paperSubstantial claim
- Findingown data
Relish takes an average of 17.9 seconds per benchmark on the ten encoder/decoder benchmarks.
“As shown in Table 1, Relish can correctly solve all of these benchmarks 9 and takes an average of 17.9 seconds per benchmark.”
Quote in the paperSubstantial claim - Findingown data
Relish's memory usage on encoder/decoder benchmarks varies between 284MB and 1843MB, with an average of 685MB.
“Here, the memory usage varies between 284MB and 1843MB, with the average being 685MB.”
Quote in the paperNot a substantial claim - Findingown data
The comparator-20 benchmark is not expressible in the current DSL because it requires comparing integers obtained by concatenating all substrings that represent integers in the input strings.
“we found this benchmark is not expressible in our current DSL because it requires comparing integers that are obtained by concatenating all substrings that represent integers in the input strings.”
Quote in the paperNot a substantial claim - Findingown data
On comparator benchmarks, Relish requires fewer CEGIS iterations than EUSolver (7.0 vs. 9.9 on average).
“Relish requires fewer CEGIS iterations (7.0 vs. 9.9 on average)”
Quote in the paperSubstantial claim- Rests on an assumption: The relational specifications constructed for each benchmark correctly capture the intended sorting or encoding/decoding task.
- Findingown data
For the five encoder/decoder benchmarks solved by both Relish and EUSolver, Relish's average speed-up over EUSolver is 46.5x.
“For the five benchmarks that can be solved by both tools, the average speed-up of Relish over EUSolver is 46.5x.”
Quote in the paperSubstantial claim - Findingown data
Relish outperforms EUSolver by 26x in running time on the common comparator benchmarks solved by both techniques.
“outperforms EUSolver by 26x (in terms of running time) on the common benchmarks that can be solved by both techniques.”
Quote in the paperSubstantial claim- Rests on an assumption: The relational specifications constructed for each benchmark correctly capture the intended sorting or encoding/decoding task.
- Findingown data
Relish successfully solves 95% of the comparator benchmarks within the 24 hour time limit.
“Relish can successfully solve 95% of the benchmarks within the 24 hour time limit.”
Quote in the paperSubstantial claim- Rests on an assumption: The relational specifications constructed for each benchmark correctly capture the intended sorting or encoding/decoding task.
- Findingreasoning
The HFTA can be constructed in O(km) time, where k is the size of the ground relational specification and m is the size of the largest FTA in the HFTA.
“Since the HFTA may contain at most k FTAs, it can be constructed in O(km) time, where m is the size of largest FTA in the HFTA.”
Quote in the paperNot a substantial claim - Findingreasoning
FindProgs has worst-case complexity O(m bn), where n is the number of functions to synthesize and b is the bound of AST size for all programs under consideration.
“Observe that FindProgs is a backtracking search procedure, its worst case complexity is O(m bn ) where n is the number of functions to synthesize, and b is the bound of AST size for all programs under consideration.”
Quote in the paperNot a substantial claim - Findingown data
Relish's memory usage on comparator benchmarks varies between 12 MB and 18367MB, with an average of 3382MB.
“memory usage varies between 12 MB and 18367MB, with an average memory consumption of 3382MB.”
Quote in the paperNot a substantial claim - Findingown data
Memory usage is higher for comparator benchmarks than for encoder/decoder benchmarks.
“we see that memory usage is higher for comparators than the encoder/decoder benchmarks.”
Quote in the paperNot a substantial claim - Findingown data
Relish is more efficient than EUSolver per CEGIS iteration on comparator benchmarks (12 seconds vs. 492 seconds).
“Relish is also more efficient than EUSolver per CEGIS iteration (12 seconds vs. 492 seconds).”
Quote in the paperNot a substantial claim- Rests on an assumption: The relational specifications constructed for each benchmark correctly capture the intended sorting or encoding/decoding task.
- Findingnone given
The ground relational specification can be relaxed in linear time O(k), where k is the size of the ground relational specification.
“Specifically, the ground relational specification can be relaxed in linear time O(k), where k is the size of ground relational specification.”
Quote in the paperNot a substantial claim - Findingown data
EUSolver solves half of the ten encoder/decoder benchmarks within the 24 hour time limit.
“In contrast, EUSolver solves half of the benchmarks within the 24 hour time limit and takes an average of approximately 12 minutes per benchmark that it is able to solve.”
Quote in the paperSubstantial claim - Findingown data
Relish solves 75% of the comparator benchmarks within 2 minutes.
“and 75% of the benchmarks within 2 minutes.”
Quote in the paperNot a substantial claim - Findingreasoning
If there exist a set of programs that satisfy Φ and can be implemented using the DSLs given by G, then invoking FindProgs on H and M will eventually return programs P satisfying Φ.
“If there exist a set of programs that (a) satisfy Φ and (b) can be implemented using the DSLs given by G, then invoking FindProgs on H and M will eventually return programs P satisfying Φ.”
Quote in the paperSubstantial claim - Findingreasoning
For a ground formula Φ where every function symbol f1,...,fn occurs exactly once, if G,M ⊢ Φ H and there are implementations Pi of fi conforming to grammar G(M^{-1}(fi)), then there exists a hierarchical tree T accepted by H such that Υ(v_fi)=Pi for all i.
“If there are implementations P i of f i where P i conforms to grammar G(M -1 (f i )), then there exists a hierarchical tree T = (V , ϒ, v r , E) accepted by H such that ϒ(v f i ) = P i for all i ∈ [1, n]”
Quote in the paperSubstantial claim - Findingreasoning
The overall complexity of the inductive synthesis algorithm is O(km + m bn).
“Therefore, the overall complexity is O(km + m bn ).”
Quote in the paperNot a substantial claim - Findingown data
Relish solves 46% more comparator benchmarks than EUSolver (19 vs. 13).
“Relish solves 46% more benchmarks than EUSolver (19 vs. 13)”
Quote in the paperSubstantial claim- Rests on an assumption: The relational specifications constructed for each benchmark correctly capture the intended sorting or encoding/decoding task.
- Findingown data
EUSolver takes an average of approximately 12 minutes per benchmark it solves among the encoder/decoder benchmarks.
“In contrast, EUSolver solves half of the benchmarks within the 24 hour time limit and takes an average of approximately 12 minutes per benchmark that it is able to solve.”
Quote in the paperSubstantial claim - Findingown data
Relish has been used to build relational synthesizers to automatically generate string encoders/decoders as well as comparators.
“We have used the Relish framework to build relational synthesizers to automatically generate string encoders/decoders as well as comparators, and we evaluate our tool on several benchmarks taken from prior work and online forums.”
Quote in the paperSubstantial claim - Findingown data
Among the 19 solved comparator benchmarks, Relish takes an average of 94.7 seconds per benchmark.
“Among these 19 benchmarks, Relish takes an average of 94.7 seconds per benchmark”
Quote in the paperNot a substantial claim - Findingown data
Relish solves 55% of the comparator benchmarks within 1 minute.
“it solves 55% of the benchmarks within 1 minute”
Quote in the paperNot a substantial claim - Interpretationnone given
Relish can be instantiated to different application domains by providing a suitable domain-specific language and the relevant relational specification.
“We have implemented the proposed technique in a framework called Relish, which can be instantiated to different application domains by providing a suitable domain-specific language and the relevant relational specification.”
Quote in the paperSubstantial claim - Interpretationnone given
The relational synthesis problem introduces new challenges over its non-relational counterpart due to the combinatorially larger search space.
“However, this relational synthesis problem introduces new challenges over its non-relational counterpart due to the combinatorially larger search space.”
- Also stated in: § Abstract · plain
“Solving the relational synthesis problem introduces new challenges over its non-relational counterpart due to the combinatorially larger search space.”
Quote in the paperSubstantial claim - Also stated in: § Abstract · plain
- Interpretationreasoning
Our method constructs the HFTA in such a way that tuples of programs that do not satisfy the examples are rejected and therefore excluded from the search space.
“Furthermore, our method constructs the HFTA in such a way that tuples of programs that do not satisfy the examples are rejected and therefore excluded from the search space.”
Quote in the paperSubstantial claim - Interpretationnone given
The proposed technique combines the counterexample-guided inductive synthesis framework with a novel inductive synthesis algorithm based on relational version space learning.
“As a first step towards solving this problem, this paper presents a synthesis technique that combines the counterexample-guided inductive synthesis framework with a novel inductive synthesis algorithm that is based on relational version space learning.”
Quote in the paperSubstantial claim - Interpretationnone given
Our relational version space learning algorithm is based on the novel concept of hierarchical finite tree automata (HFTA).
“In more detail, our relational version space learning algorithm is based on the novel concept of hierarchical finite tree automata (HFTA).”
Quote in the paperSubstantial claim - Premisecitation
Relational synthesis can be used to solve the program inversion problem where the goal is to generate a program P' that is an inverse of another program P.
“As another example, we can use relational synthesis to solve the program inversion problem where the goal is to generate a program P ′ that is an inverse of another program P [Hu and D'Antoni 2017;Srivastava et al. 2011].”
Quote in the paperNot a substantial claim0 of 1 sources checked- cites Hu and D'Antoni 2017;Srivastava et al. 2011
Couldn’t be matched to a paper in Crossref, so it can’t be checked.
- Interpretationnone given
Relational synthesis can be used to automatically generate comparators that provably satisfy correctness requirements such as transitivity and anti-symmetry.
“For example, we can use relational synthesis to automatically generate comparators that provably satisfy certain correctness requirements such as transitivity and anti-symmetry.”
Quote in the paperSubstantial claim - Interpretationreasoning
Because relational counterexamples can refer to compositions of functions, the HFTA representation allows us to compose different FTAs according to the hierarchical structure of subterms in the relational counterexamples.
“Because relational counterexamples can refer to compositions of functions (e.g., f (д(1), д(2))), the HFTA representation allows us to compose different FTAs according to the hierarchical structure of subterms in the relational counterexamples.”
Quote in the paperSubstantial claim - Interpretationreasoning
The HFTA representation allows us to compactly represent those programs that are consistent with the relational examples.
“Thus, the HFTA representation allows us to compactly represent those programs that are consistent with the relational examples.”
Quote in the paperSubstantial claim - Interpretationreasoning
A naive algorithm that simply enumerates combinations of programs and then checks their correctness with respect to the relational specification is unlikely to scale.
“In particular, a naive algorithm that simply enumerates combinations of programs and then checks their correctness with respect to the relational specification is unlikely to scale.”
Quote in the paperSubstantial claim - Interpretationreasoning
The solution returned by FindProgs is guaranteed to be a valid solution for the original relational synthesis problem.
“Since the resulting mapping P res maps each function symbol in the original specification to a single program, the solution returned by FindProgs is guaranteed to be a valid solution for the original relational synthesis problem.”
Quote in the paperSubstantial claim - Interpretationreasoning
Lemma A.1: For any tree t accepted by FTA A built with grammar G and initial states using rules from Figure 8, the accepting run of t with x_i = c_i, where q^{c_i}_{x_i} ∈ Q_i, is rooted with final state q^c_s and c = t(c_1,...,c_m).
“(2) The accepting run of t with x i = c i , where q c i x i ∈ Q i , is rooted with final state q c s and c = t(c 1 , . . ., c m ) .”
Quote in the paperSubstantial claim - Interpretationreasoning
Lemma A.2: Given G,M ⊢ t H, for any hierarchical tree T accepted by H, Υ(v_{f_i}) is a program that conforms to grammar G(M^{-1}(f_i)).
“(1) ϒ(v f i ) is a program that conforms to grammar G(M -1 (f i ))”
Quote in the paperSubstantial claim - Interpretationreasoning
Lemma A.3: Given G,M ⊢ Φ H, for any hierarchical tree T accepted by H, Υ(v_{f_i}) is a program that conforms to grammar G(M^{-1}(f_i)).
“(1) ϒ(v f i ) is a program that conforms to grammar G(M -1 (f i ))”
Quote in the paperSubstantial claim - Interpretationreasoning
Lemma A.3: Given G,M ⊢ Φ H, if the run of Υ(v_r) on Ω(v_r) is rooted with final state q^⊥_{s0}, then Υ(v_{f1}),...,Υ(v_{fn}) ̸|= Φ.
“(3) If the run of ϒ(v r ) on Ω(v r ) is rooted with final state q ⊥ s 0 , then ϒ(v f 1 ), . . . , ϒ(v f n ) ̸ |= Φ”
Quote in the paperSubstantial claim - Interpretationown data
Relish's memory usage on encoder/decoder benchmarks mainly depends on the number of CEGIS iterations and the size of programs to be synthesized.
“the memory usage mainly depends on (1) the number of CEGIS iterations and (2) the size of programs to be synthesized.”
Quote in the paperNot a substantial claim - Interpretationown data
The HFTA-based method might have better generalization power compared to enumerative search.
“This discrepancy suggests that our HFTA-based method might have better generalization power compared to enumerative search.”
Quote in the paperNot a substantial claim - Interpretationown data
The HFTA-based approach has advantages over enumerative search for synthesizing string encoders and decoders.
“To summarize, these results clearly indicate the advantages of our approach compared to enumerative search when synthesizing string encoders and decoders.”
Quote in the paperSubstantial claim- Rests on an assumption: The 24-hour time limit is a fair and meaningful criterion for comparing Relish and EUSolver.
- Rests on an assumption: EUSolver is a state-of-the-art enumerative solver and a fair baseline for evaluating Relish.
- Interpretationreasoning
Lemma A.4: If there is a program P conforming to grammar G such that P(a_1,...,a_m)=a where q^{a_i}_{s_i} ∈ Q_i, then there exists a tree accepted by A and the run is rooted with final state q^a_s from initial states q^{a_1}_{x_1},...,q^{a_m}_{x_m}.
“If there is a program P that conforms to grammar G such that P (a 1 , . . ., a m ) = a where q a i s i ∈ Q i for i ∈ [1, m], then there exists a tree accepted by A and the run is rooted with final state q a s from initial states q a 1 x 1 , . . ., q a m x m .”
Quote in the paperSubstantial claim - Interpretationnone given
The method only allows relational specifications of the form ∀x.φ(x) where φ is quantifier-free.
“we only allow relational specifications of the form ∀ì x .ϕ(ìx) where ϕ is quantifier-free.”
Quote in the paperSubstantial claim - Interpretationreasoning
The enumeration-based approach performs considerably worse than Relish on comparator synthesis because it does not use the relational (k-safety) specification to prune its search space.
“the enumerationbased approach performs considerably worse than Relish because it does not use the relational (i.e., k-safety) specification to prune its search space.”
Quote in the paperSubstantial claim - Interpretationreasoning
Constructing an FTA for a function symbol f ∈ F requires knowledge about the possible values of its arguments, which can introduce circular dependencies if we have multiple occurrences of f.
“In particular, constructing an FTA for a function symbol f ∈ F requires knowledge about the possible values of its arguments, which can introduce circular dependencies if we have multiple occurrences of f (e.g., f (f (1))).”
Quote in the paperSubstantial claim - Interpretationreasoning
Lemma A.5: If t is a term where every function symbol f_1,...,f_n occurs exactly once, G,M ⊢ t H, and there are implementations P_i of f_i such that t=a where P_i conforms to G(M^{-1}(f_i)), then there exists a hierarchical tree T accepted by H such that Υ(v_{f_i})=P_i for all i and the run of Υ(v_r) on Ω(v_r) is rooted with final state q^a_s.
“If there are implementations P i of f i such that t = a, where P i conforms to grammar G(M -1 (f i )), then there exists a hierarchical tree T = (V , ϒ, v r , E) accepted by H such that ϒ(v f i ) = P i for all i ∈ [1, n], and the run of ϒ(v r ) on Ω(v r ) is rooted with final state q a s .”
Quote in the paperSubstantial claim - Premisenone given
The technique is implemented in Relish, which can be instantiated in different application domains by providing a suitable DSL and relevant relational specifications.
“We have implemented this technique in a relational synthesis framework called Relish which can be instantiated in different application domains by providing a suitable domain-specific language as well as the relevant relational specifications.”
Quote in the paperSubstantial claim - Interpretationown data
Relish can successfully synthesize non-trivial string comparators that arise in real-world scenarios.
“this experiment demonstrates that Relish can successfully synthesize non-trivial string comparators that arise in real-world scenarios.”
Quote in the paperSubstantial claim- Rests on an assumption: The collected encoder/decoder and comparator benchmarks are representative of real-world relational synthesis tasks.
- Premisenone given
The key idea of the approach is to construct a relational version space in the form of a hierarchical finite tree automaton that encodes all tuples of programs satisfying the original specification.
“the key idea is to construct a relational version space (in the form of a hierarchical finite tree automaton) that encodes all tuples of programs that satisfy the original specification.”
Quote in the paperSubstantial claim - Interpretationreasoning
Lemma A.2: Given G,M ⊢ t H, for any hierarchical tree T accepted by H, the run of Υ(v_r) on Ω(v_r) is rooted with final state q^t_s.
“(2) The run of ϒ(v r ) on Ω(v r ) is rooted with final state q t s .”
Quote in the paperSubstantial claim - Interpretationreasoning
The HFTA method gives a sound and complete synthesis procedure with respect to the relaxed specification where each function symbol occurs exactly once.
“As stated by Theorems 5.2 and 5.3, the HFTA method discussed in the previous subsection gives a sound and complete synthesis procedure with respect to the relaxed specification where each function symbol occurs exactly once.”
Quote in the paperSubstantial claim- The authors state this as an assumption: Every variable x_i in function f is annotated by f to enforce its global uniqueness.
- Interpretationreasoning
If there is a set of programs that (a) satisfy Ψ and (b) can be implemented using the DSLs given by G, then Algorithm 1 will eventually terminate with programs P satisfying Ψ.
“Theorem 5.6.(Completeness) If there is a set of programs that (a) satisfy Ψ and (b) can be implemented using the DSLs given by G, then Algorithm 1 will eventually terminate with programs P satisfying Ψ.”
Quote in the paperSubstantial claim - Interpretationown data
The relational synthesis approach has advantages over an existing state-of-the-art solver for comparator synthesis.
“This experiment also demonstrates the advantages of our new relational synthesis approach compared to an existing state-of-the-art solver.”
Quote in the paperSubstantial claim- Rests on an assumption: EUSolver is a state-of-the-art enumerative solver and a fair baseline for evaluating Relish.
- Interpretationown data
As the CEGIS loop progresses, the number of function occurrences in the ground relational specification increases, resulting in larger HFTAs.
“as the CEGIS loop progresses, the number of function occurrences in the ground relational specification increases, which results in larger HFTAs.”
Quote in the paperNot a substantial claim - Premisecitation
EUSolver only supports synthesis tasks in linear integer arithmetic, bitvectors, and basic string manipulations by default.
“Since EUSolver only supports synthesis tasks in linear integer arithmetic, bitvectors, and basic string manipulations by default, we extend it to encoder/decoders and comparators by implementing the same DSLs described in Section 6.”
Quote in the paperSubstantial claim0 of 1 sources checked- cites Alur et al. 2017
Couldn’t be matched to a paper in Crossref, so it can’t be checked.
- Interpretationown data
Relish outperforms EUSolver across all ten encoder/decoder benchmarks.
“Relish unequivocally outperforms EUSolver across all benchmarks.”
Quote in the paperSubstantial claim- Rests on an assumption: The 24-hour time limit is a fair and meaningful criterion for comparing Relish and EUSolver.
- Rests on an assumption: EUSolver is a state-of-the-art enumerative solver and a fair baseline for evaluating Relish.
- Interpretationnone given
The approach can synthesize a program and its inverse simultaneously rather than requiring the user to provide one of these functions.
“our approach can be used to synthesize the program and its inverse simultaneously rather than requiring the user to provide one of these functions.”
Quote in the paperSubstantial claim - Interpretationreasoning
Lemma A.3: Given G,M ⊢ Φ H, if the run of Υ(v_r) on Ω(v_r) is rooted with final state q^⊤_{s0}, then Υ(v_{f1}),...,Υ(v_{fn}) |= Φ.
“(2) If the run of ϒ(v r ) on Ω(v r ) is rooted with final state q ⊤ s 0 , then ϒ(v f 1 ), . . . , ϒ(v f n ) |= Φ”
Quote in the paperSubstantial claim - Interpretationnone given
The programs currently synthesized by Relish are compositions of built-in functions provided by the DSL.
“the programs that can be currently synthesized by Relish are compositions of built-in functions provided by the DSL.”
Quote in the paperNot a substantial claim - Interpretationnone given
Our HFTA construction follows the recursive decomposition of Φ' and allows us to compose the individual version spaces of each subterm in a way that the final HFTA is consistent with Φ'.
“Our HFTA construction follows the recursive decomposition of Φ ′ and allows us to compose the individual version spaces of each subterm in a way that the final HFTA is consistent with Φ ′ .”
Quote in the paperSubstantial claim - Interpretationreasoning
The method does not handle relational specifications with quantifier alternation.
“our method does not handle more complex relational specifications with quantifier alternation”
Quote in the paperNot a substantial claim - Interpretationreasoning
For any hierarchical tree T accepted by H, the programs assigned to f_1, ..., f_n satisfy Φ.
“(2) ϒ(v f 1 ), . . . , ϒ(v f n ) satisfy Φ, i.e. ϒ(v f 1 ), . . . , ϒ(v f n ) |= Φ”
Quote in the paperSubstantial claim- The authors state this as an assumption: Every variable x_i in function f is annotated by f to enforce its global uniqueness.
- Interpretationnone given
The method only works with simple DSLs without recursion, loops, or let bindings.
“our method only works with simple DSLs without recursion, loops, or let bindings.”
Quote in the paperNot a substantial claim - Interpretationreasoning
Higher memory usage for comparators is attributed to more complex relational specifications involving multiple properties such as reflexivity, anti-symmetry, totality, and transitivity.
“Second, the relational specification for comparators is more complex and involves multiple properties such as reflexivity, anti-symmetry, totality, and transitivity.”
Quote in the paperSubstantial claim - Interpretationreasoning
Lemma A.1: For any tree t accepted by FTA A built with grammar G and initial states using rules from Figure 8, t conforms to grammar G.
“Given a tree t(x 1 , . . ., x m ) that is accepted by A, we have (1) t conforms to grammar G.”
Quote in the paperSubstantial claim - Interpretationreasoning
Given a relaxed relational specification Φ, the algorithm builds an HFTA H that recognizes exactly those programs that satisfy Φ.
“Given a relaxed relational specification Φ, our algorithm builds an HFTA H that recognizes exactly those programs that satisfy Φ.”
Quote in the paperSubstantial claim- The authors state this as an assumption: Every variable x_i in function f is annotated by f to enforce its global uniqueness.
- Interpretationreasoning
For any hierarchical tree T accepted by H, the program assigned to each function symbol f_i conforms to grammar G(M^{-1}(f_i)).
“(1) ϒ(v f i ) is a program that conforms to grammar G(M -1 (f i ))”
Quote in the paperSubstantial claim- The authors state this as an assumption: Every variable x_i in function f is annotated by f to enforce its global uniqueness.
- Interpretationown data
Higher memory usage for comparators is attributed to most comparator benchmarks requiring more CEGIS iterations to solve and therefore resulting in larger HFTAs.
“Finally, most benchmarks in the comparator domain require more CEGIS iterations to solve and therefore result in larger HFTAs.”
Quote in the paperSubstantial claim
- Classified as probably not a substantial claim. 10
- May combine two claims. 22
- The quote only partly states this claim. 7
Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.
PremisecitationEUSolver is an enumeration-based synthesizer that won the General Track of the most recent SyGuS competition.
“EUSolver [Alur et al. 2017], an enumeration-based synthesizer that won the General Track of the most recent SyGuS competition [Alur et al. 2013].”
Quote in the paperNot a substantial claim1 of 2 sources checked- cites Alur et al. 2017
Couldn’t be matched to a paper in Crossref, so it can’t be checked.
- cites Alur et al. 2013 source
The conclusion describes organizing a SyGuS-solvers competition as a future step, but gives no competition results. Searches for EUSolver, the General Track, and a winner found no passage in our copy establishing the attributed win. (LLM, conf=0.78)
Experimental — accuracy not yet measured
Probably not a substantial claim: may not pass S3 (load-bearing). May combine two claims. The quote only partly states this claim.
Findingown dataThe 20 comparator benchmarks collected from StackOverflow have between 2 and 30 examples, with an average of 16.
“Among these benchmarks, the number of examples range from 2 to 30, with an average of 16.”
Quote in the paperNot a substantial claimMay combine two claims.
FindingreasoningIf FindProgs returns programs P (not null) given H and M, then P satisfy Φ, and program Pi for function fi conforms to grammar G(fi).
“If the FindProgs procedure returns programs P (not null) given input H and M, then P satisfy Φ, and program P i for function f i conforms to the grammar G(f i ).”
Quote in the paperSubstantial claimMay combine two claims.
Findingown dataRelish takes an average of 4.5 seconds per CEGIS iteration, whereas EUSolver takes 208.4 seconds on average across the five encoder/decoder benchmarks it solves.
“Relish takes an average of 4.5 seconds per iteration, whereas EUSolver takes 208.4 seconds on average across the five benchmarks that it is able to solve.”
Quote in the paperSubstantial claimMay combine two claims.
FindingreasoningAssuming the soundness of the Verify procedure invoked by Algorithm 1, the set of programs P returned by Synthesize are guaranteed to satisfy the relational specification Ψ, and program Pi of function fi conforms to grammar G(fi).
“Assuming the soundness of the Verify procedure invoked by Algorithm 1, then the set of programs P returned by Synthesize are guaranteed to satisfy the relational specification Ψ, and program P i of function f i conforms to grammar G(f i ).”
Quote in the paperSubstantial claim- The authors state this as an assumption: The Verify procedure invoked by Algorithm 1 is sound.
The quote only partly states this claim.
FindingreasoningIf G,M ⊢ Φ ↠ H and P1,...,Pn |= Φ, then there exists a hierarchical tree T accepted by H such that Υ(v_fi)=Pi for all i.
“By Lemma A.6, we know there exists a hierarchical tree T = (V , ϒ, v r , E) accepted by H ′ such that ϒ(v f i ) = P i for all i ∈ [1, n].”
Quote in the paperSubstantial claimThe quote only partly states this claim.
Findingown dataRelish correctly solves all ten encoder/decoder benchmarks.
“As shown in Table 1, Relish can correctly solve all of these benchmarks 9 and takes an average of 17.9 seconds per benchmark.”
Quote in the paperSubstantial claimMay combine two claims. The quote only partly states this claim.
Findingown dataRelish solves 19 of the 20 comparator benchmarks with an average total time of 94.7 seconds and an average speedup of 26.0x over EUSolver.
“Average | 26.5 | 7.7 | 94.7 | 80.8 | 3382 | 9.9 | 4873.4 | 4866.7 | 26.0x”
- Also stated in: § B COMPLEXITY ANALYSIS · plain
“comparator-20 | - | - | T/O | T/O | - | - | T/O | T/O | -”
Quote in the paperSubstantial claim- Also stated in: § B COMPLEXITY ANALYSIS · plain
May combine two claims.
Findingown dataThe Base64xml benchmark takes 6 CEGIS iterations and consumes 1843 MB, while UTF-32 takes 2 iterations and consumes 284 MB.
“which take 6 and 2 iterations and consume 1843 MB and 284 MB respectively.”
Quote in the paperSubstantial claimMay combine two claims.
FindingreasoningFor the conditions of Lemma A.6, if P1,...,Pn |= Φ then the run of Υ(vr) on Ω(vr) is rooted with final state q⊤s0; if P1,...,Pn ̸|= Φ then it is rooted with final state q⊥s0.
“(1) If P 1 , . . . , P n |= Φ, the run of ϒ(v r ) on Ω(v r ) is rooted with final state q ⊤ s 0 . (2) If P 1 , . . . , P n ̸ |= Φ, the run of ϒ(v r ) on Ω(v r ) is rooted with final state q ⊥ s 0 .”
Quote in the paperSubstantial claimMay combine two claims.
Findingown dataRelish solves the 10 Unicode encoder/decoder benchmarks with an average total time of 17.9 seconds and an average speedup of 46.5x over EUSolver.
“Average | 7.6 | 7.2 | 4.0 | 17.9 | 11.1 | 685 | 3.4 | 708.4 | 703.2 | 46.5x”
Quote in the paperSubstantial claimMay combine two claims.
FindingreasoningIf there exist programs P that satisfy Ψ and can be implemented using the DSLs given by G, then Algorithm 1 will eventually terminate with programs satisfying Ψ.
“we can conclude that Algorithm 1 will eventually terminate with programs satisfying Ψ.”
Quote in the paperSubstantial claimMay combine two claims.
Findingown dataOn the five encoder/decoder benchmarks solved by both tools, Relish takes 2.8 CEGIS iterations on average, whereas EUSolver needs an average of 3.4 attempts.
“Relish takes 2.8 CEGIS iterations on average, whereas EUSolver needs an average of 3.4 attempts to find the correct program.”
Quote in the paperSubstantial claimMay combine two claims.
InterpretationreasoningGiven a set of relational counterexamples, our inductive synthesizer compactly represents tuples of programs and efficiently searches for their implementations that satisfy all relational counterexamples.
“Specifically, given a set of relational counterexamples, such as f (1) = д(1) or f (д(1), д(2)) = f (3), our inductive synthesizer compactly represents tuples of programs and efficiently searches for their implementations that satisfy all relational counterexamples.”
Quote in the paperSubstantial claimMay combine two claims.
InterpretationcitationOur method alternates between inductive synthesis and verification, and the counterexamples returned by the verifier are relational in nature.
“Similar to other synthesis algorithms based on counterexample-guided inductive synthesis (CEGIS) [Solar-Lezama 2008], our method also alternates between inductive synthesis and verification; but the counterexamples returned by the verifier are relational in nature.”
Quote in the paperSubstantial claim0 of 1 sources checked- cites Solar-Lezama 2008
Couldn’t be matched to a paper in Crossref, so it can’t be checked.
Probably not a substantial claim: may not pass S2 (checkable), S4 (based).
Premisenone givenRelational program synthesis is a dual of relational program verification.
“As a dual of relational program verification, relational program synthesis is an important problem that has many practical applications, such as automated program inversion and automatic generation of comparators.”
Quote in the paperNot a substantial claimMay combine two claims.
Interpretationown dataThe HFTA-based approach might have better generalization power than enumerative search, as confirmed by comparator results.
“again confirming the hypothesis that the HFTA-based approach might have better generalization power.”
Quote in the paperSubstantial claimMay combine two claims.
InterpretationreasoningThe relaxation strategy eliminates circular dependencies and allows us to build a relational version space in a compositional way.
“The relaxed specification, however, eliminates such circular dependencies and allows us to build a relational version space in a compositional way.”
Quote in the paperSubstantial claimClassified as probably not a substantial claim.
Interpretationnone givenPropagate returns a new HFTA H' such that the FTAs for all occurrences of f only accept programs that have the same input-output behavior as p.
“Given an HFTA H and a function symbol f with candidate implementation p, Propagate returns a new HFTA H ′ such that the FTAs for all occurrences of f only accept programs that have the same input-output behavior as p.”
Quote in the paperSubstantial claimProbably not a substantial claim: may not pass S3 (load-bearing). May combine two claims.
Study design and conductnone givenThe authors manually inspected the synthesized solutions and confirmed their correctness.
“We manually inspected the synthesized solutions and confirmed their correctness.”
Quote in the paperNot a substantial claimClassified as probably not a substantial claim. May combine two claims.
Study design and conductnone givenThe same CEGIS loop used in Relish is implemented for EUSolver, and the same bounded verifier is used in the evaluation.
“Additionally, we implement the same CEGIS loop used in Relish for EUSolver and use the same bounded verifier in our evaluation.”
Quote in the paperSubstantial claimMay combine two claims.
Premisenone givenCompared to other CEGIS synthesis algorithms, the key differences of the proposed method are the use of relational counterexamples and a new inductive synthesis algorithm that utilizes relational specifications.
“the key differences of our method are (a) the use of relational counterexamples and (b) a new inductive synthesis algorithm that utilizes relational specifications.”
Quote in the paperSubstantial claimThe quote only partly states this claim.
InterpretationreasoningTheorem 5.2: If G,M ⊢ Φ ↠ H, then for any hierarchical tree T accepted by H, the functions Υ(v_{f1}),...,Υ(v_{fn}) satisfy Φ.
“Thus, ϒ(v f 1 ), . . . , ϒ(v f n ) |= Φ.”
Quote in the paperSubstantial claimProbably not a substantial claim: may not pass S3 (load-bearing).
Study design and conductreasoningA time limit of 24 hours is set for each benchmark.
“Due to finite computational resources, we set a time limit of 24 hours for each benchmark.”
Quote in the paperNot a substantial claimMay combine two claims.
InterpretationreasoningThe HFTA is compositional: there is a separate node for every subterm, and inter-FTA transitions account for information flow from each subterm to its parent.
“Observe that our HFTA is compositional in that there is a separate node for every subterm, and the inter-FTA transitions account for the flow of information from each subterm to its parent.”
Quote in the paperNot a substantial claim- The authors state this as an assumption: Every variable x_i in function f is annotated by f to enforce its global uniqueness.
May combine two claims.
Interpretationown dataEvaluation shows that Relish significantly outperforms EUSolver in efficiency of inductive synthesis and generalization power per CEGIS iteration.
“Our evaluation also shows that Relish significantly outperforms EUSolver, both in terms of the efficiency of inductive synthesis as well as its generalization power per CEGIS iteration.”
Quote in the paperSubstantial claim- Rests on an assumption: The 24-hour time limit is a fair and meaningful criterion for comparing Relish and EUSolver.
- Rests on an assumption: EUSolver is a state-of-the-art enumerative solver and a fair baseline for evaluating Relish.
May combine two claims.
Premisenone givenThe method works with arbitrary ground formulas representing relational counterexamples and uses hierarchical finite tree automata to compose version spaces of individual functions, whereas existing version space learning algorithms only work with input-output examples.
“While existing version space learning algorithms only work with input-output examples, the method proposed here works with arbitrary ground formulas representing relational counterexamples and uses hierarchical finite tree automata to compose the version spaces of individual functions.”
Quote in the paperSubstantial claimMay combine two claims.
Interpretationown dataEvaluation in encoders/decoders and comparators demonstrates that Relish can effectively synthesize pairs of closely related programs (inverses) and individual programs that must obey non-trivial k-safety specifications such as transitivity.
“Our evaluation in two different application domains (namely, encoders/decoders and comparators) demonstrate that Relish can effectively synthesize pairs of closely related programs (i.e., inverses) as well as individual programs that must obey non-trivial k-safety specifications (e.g., transitivity).”
Quote in the paperSubstantial claimThe quote only partly states this claim.
Interpretationown dataHigher memory usage for comparators is attributed to larger synthesized programs.
“First, as shown in Table 2, the size of the synthesized programs is larger for the comparator domain.”
Quote in the paperSubstantial claimProbably not a substantial claim: may not pass S4 (based).
Interpretationnone givenThis paper is the first to address the dual synthesis variant of the relational verification problem.
“To the best of our knowledge, this paper is the first one to address the dual synthesis variant of the relational verification problem.”
Quote in the paperNot a substantial claimClassified as probably not a substantial claim.
Study design and conductown dataIn the experiments, over a million test cases are used in each iteration.
“In our experiments, we use over a million test cases in each iteration, and resort to full verification only when the synthesized program passes all of these test cases.”
Quote in the paperSubstantial claimClassified as probably not a substantial claim.
Interpretationnone givenGiven relaxed specification Φ', the next step is to construct an HFTA whose language consists of exactly those programs that satisfy Φ'.
“(2) HFTA construction: Given the relaxed specification Φ ′ , the next step is to construct an HFTA whose language consists of exactly those programs that satisfy Φ ′ (line 9).”
Quote in the paperSubstantial claimThe quote only partly states this claim.
InterpretationreasoningThe size of the target program has an impact on memory usage; larger synthesized programs tend to increase memory usage.
“the size of the target program also has an impact on memory usage.”
Quote in the paperNot a substantial claim
The authors state this as an assumption.
Every variable x_i in function f is annotated by f to enforce its global uniqueness.
“Every variable x i in function f is assumed to be annotated by f to enforce its global uniqueness.”
The paper relies on this without support.
Hierarchical trees with lower cost are likely to have better generalization power.
“Because hierarchical trees with lower cost are likely to have better generalization power, our algorithm lazily enumerates hierarchical trees according to their cost.”
The paper relies on this without support.
The collected encoder/decoder and comparator benchmarks are representative of real-world relational synthesis tasks.
“this experiment demonstrates that Relish can successfully synthesize non-trivial string comparators that arise in real-world scenarios.”
The paper relies on this without support.
The 24-hour time limit is a fair and meaningful criterion for comparing Relish and EUSolver.
“If a tool fails to solve the desired task within the 24 hour time limit, we write T/O to indicate a time-out.”
The paper relies on this without support.
EUSolver is a state-of-the-art enumerative solver and a fair baseline for evaluating Relish.
“This experiment also demonstrates the advantages of our new relational synthesis approach compared to an existing state-of-the-art solver.”
The paper relies on this without support.
The relational specifications constructed for each benchmark correctly capture the intended sorting or encoding/decoding task.
“The relational specification Ψ for each benchmark consists of the following three parts:”
The authors state this as an assumption.
The Verify procedure invoked by Algorithm 1 is sound.
“Assuming the soundness of the Verify procedure invoked by Algorithm 1”
The authors state this as an assumption.
If there is an interpreted function in the relational specification, a trivial grammar with a single production for that function is added to G by default.
“If there is an interpreted function in the relational specification, we assume that a trivial grammar with a single production for that function is added to G by default.”
The authors state this as an assumption.
In the proof of Lemma A.7, the function symbols are assigned in the order f1,...,fn.
“Without loss of generality, we assume the function symbols are assigned in the order of f 1 , . . ., f n .”
Self-check
Percentages, sums and reported differences re-computed from the paper’s own numbers.
Each contradiction between two passages listed here was confirmed by an independent check.
HFTA node v2 is assigned the wrong automaton
MinorThe mapping assigns A3 to both v2 and v3, but the subsequent description says the second ground term is accepted by A2. The listed inter-FTA transitions from A2's r-states likewise require v2 to use A2.
“Ω = {v 1 → A 1 , v 2 → A 3 , v 3 → A 3 }”
“t 1 (resp.t 2 ) is a ground term accepted by A 1 (resp.A 2 )”
Cites
Mitchell, T. M. (1982) · Artificial Intelligence · doi:10.1016/0004-3702(82)90040-6 · Cited by 1,450 · see citing works
Automating string processing in spreadsheets using input-output examples
Gulwani, S. (2011) · ACM-SIGACT Symposium on Principles of Programming Languages · doi:10.1145/1926385.1926423 · Cited by 1,039 · see citing works
Combinatorial sketching for finite programs
Solar-Lezama, A., Tancau, L., Bodík, R., Seshia, S., & Saraswat, V. (2006) · ASPLOS XII · doi:10.1145/1168857.1168907 · Cited by 922 · see citing works
Directed hypergraphs and applications
Gallo, G., Longo, G., Pallottino, S., & Nguyen, S. (1993) · Discrete Applied Mathematics · doi:10.1016/0166-218x(93)90045-p · Cited by 712 · see citing works
Alur, R., Bodik, R., Juniwal, G., Martin, M. M. K., Raghothaman, M., Seshia, S. A., Singh, R., Solar-Lezama, A., Torlak, E., & Udupa, A. (2013) · 2013 Formal Methods in Computer-Aided Design · doi:10.1109/fmcad.2013.6679385 · Cited by 656 · see citing works
A Deductive Approach to Program Synthesis
Manna, Z., & Waldinger, R. J. (1980) · ACM Transactions on Programming Languages and Systems · doi:10.1145/357084.357090 · Cited by 586 · see citing works
Automating string processing in spreadsheets using input-output examples
Gulwani, S. (2011) · ACM SIGPLAN Notices · doi:10.1145/1925844.1926423 · Cited by 581 · see citing works
Green, C. (1981) · Elsevier eBooks · doi:10.1016/b978-0-934613-03-3.50019-2 · Cited by 459 · see citing works
Selected Writings on Computing: A personal Perspective
Dijkstra, E. W. (1982) · Springer eBooks · doi:10.1007/978-1-4612-5695-3 · Cited by 457 · see citing works
SemFix: Program repair via semantic analysis
Nguyen, H. D. T., Qi, D., Roychoudhury, A., & Chandra, S. (2013) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1109/icse.2013.6606623 · Cited by 397 · see citing works
Simple relational correctness proofs for static analyses and program transformations
Benton, N. (2004) · ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL) · doi:10.1145/964001.964003 · Cited by 358 · see citing works
Program synthesis by sketching
Bodík, R., & Solar-Lezama, A. (2008) · Cited by 319 · see citing works
Predicting Program Properties from "Big Code"
Raychev, V., Vechev, M., & Krause, A. (2014) · ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL) · doi:10.1145/2676726.2677009 · Cited by 311 · see citing works
Application of Theorem Proving to Problem Solving
Green, C. (1969) · doi:10.21236/ada459656 · Cited by 290 · see citing works
Schkufza, E., Sharma, R., & Aiken, A. (2013) · International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS) · doi:10.1145/2451116.2451150 · Cited by 279 · see citing works
Synthesizing data structure transformations from input-output examples
Feser, J., Chaudhuri, S., & Dillig, I. (2015) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/2737924.2737977 · Cited by 250 · see citing works
Self-citationFlashMeta: a framework for inductive program synthesis
Polozov, O., & Gulwani, S. (2015) · Conference on Object-Oriented Programming Systems, Languages, and Applications · doi:10.1145/2814270.2814310 · Cited by 229 · see citing works
Jobstmann, B., Griesmayer, A., & Bloem, R. (2005) · Lecture notes in computer science · doi:10.1007/11513988_23 · Cited by 225 · see citing works
Secure information flow by self-composition
Barthe, G., D’Argenio, P. R., & Rezk, T. (2004) · doi:10.1109/csfw.2004.17 · Cited by 217 · see citing works
Relational Verification Using Product Programs
Barthe, G., Crespo, J. M., & Kunz, C. (2011) · Lecture notes in computer science · doi:10.1007/978-3-642-21437-0_17 · Cited by 205 · see citing works
Program synthesis from polymorphic refinement types
Polikarpova, N., Kuraj, I., & Solar-Lezama, A. (2016) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/2908080.2908093 · Cited by 189 · see citing works
The Sketching Approach to Program Synthesis
Solar-Lezama, A. (2009) · Asian Symposium on Programming Languages and Systems · doi:10.1007/978-3-642-10672-9_3 · Cited by 186 · see citing works
Secure information flow by self-composition
Barthe, G., D’Argenio, P. R., & Rezk, T. (2004) · IEEE Computer Security Foundations Workshop (CSFW) · doi:10.1109/csfw.2004.1310735 · Cited by 183 · see citing works
Programming by Demonstration Using Version Space Algebra
Lau, T. A., Wolfman, S. A., Domingos, P., & Weld, D. S. (2003) · Machine Learning · doi:10.1023/a:1025671410623 · Cited by 179 · see citing works
Yang, H. (2007) · Theoretical Computer Science · doi:10.1016/j.tcs.2006.12.036 · Cited by 145 · see citing works
Scaling Enumerative Program Synthesis via Divide and Conquer
Rajeev Alur, A., Radhakrishna, A., & Udupa, A. (2017) · Lecture notes in computer science · doi:10.1007/978-3-662-54577-5_18 · Cited by 144 · see citing works
Learning programs from noisy data
Raychev, V., Bielik, P., Vechev, M., & Krause, A. (2016) · ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL) · doi:10.1145/2837614.2837671 · Cited by 125 · see citing works
Readings in Artificial Intelligence and Software Engineering
(1986) · Elsevier eBooks · doi:10.1016/c2013-0-07696-7 · Cited by 121 · see citing works
Cartesian hoare logic for verifying k-safety properties
Sousa, M., & Dillig, I. (2016) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/2908080.2908092 · Cited by 117 · see citing works
Self-citationProbabilistic relational reasoning for differential privacy
Barthe, G., Köpf, B., Olmedo, F., & Zanella-Béguelin, S. (2012) · ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL) · doi:10.1145/2103656.2103670 · Cited by 110 · see citing works
CoVaC: Compiler Validation by Program Analysis of the Cross-Product
Zaks, A., & Pnueli, A. (2008) · Springer eBooks · doi:10.1007/978-3-540-68237-0_5 · Cited by 109 · see citing works
Synthesis modulo recursive functions
Kneuss, E., Kuraj, I., Kunčak, V., & Suter, P. (2013) · Conference on Object-Oriented Programming Systems, Languages, and Applications · doi:10.1145/2509136.2509555 · Cited by 109 · see citing works
Predicting Program Properties from "Big Code"
Raychev, V., Vechev, M., & Krause, A. (2015) · ACM SIGPLAN Notices · doi:10.1145/2775051.2677009 · Cited by 100 · see citing works
Probabilistic relational reasoning for differential privacy
Barthe, G., Köpf, B., Olmedo, F., & Zanella-Béguelin, S. (2012) · ACM SIGPLAN Notices · doi:10.1145/2103621.2103670 · Cited by 95 · see citing works
Delaware, B., Pit-Claudel, C., Gross, J. S., & Chlipala, A. J. (2014) · ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL) · doi:10.1145/2676726.2677006 · Cited by 86 · see citing works
Program synthesis using abstraction refinement
Wang, X., Dillig, I., & Singh, R. (2017) · Proceedings of the ACM on Programming Languages · doi:10.1145/3158151 · Cited by 84 · see citing works
Self-citationSynthesizing data structure transformations from input-output examples
Feser, J., Chaudhuri, S., & Dillig, I. (2015) · ACM SIGPLAN Notices · doi:10.1145/2813885.2737977 · Cited by 81 · see citing works
Self-citationCombinatorial sketching for finite programs
Solar-Lezama, A., Tancau, L., Bodík, R., Seshia, S. A., & Saraswat, V. (2006) · ACM SIGPLAN Notices · doi:10.1145/1168918.1168907 · Cited by 78 · see citing works
Simple relational correctness proofs for static analyses and program transformations
Benton, N. (2004) · ACM SIGPLAN Notices · doi:10.1145/982962.964003 · Cited by 73 · see citing works
Precise Detection of Side-Channel Vulnerabilities using Quantitative Cartesian Hoare Logic
Chen, J., Feng, Y., & Dillig, I. (2017) · ACM SIGSAC Conference on Computer and Communications Security (CCS) · doi:10.1145/3133956.3134058 · Cited by 71 · see citing works
Self-citationSynthesis from Examples: Interaction Models and Algorithms
Gulwani, S. (2012) · International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC) · doi:10.1109/synasc.2012.69 · Cited by 69 · see citing works
Beyond 2-Safety: Asymmetric Product Programs for Relational Program Verification
Barthe, G., Crespo, J. M., & Kunz, C. (2013) · Lecture notes in computer science · doi:10.1007/978-3-642-35722-0_3 · Cited by 64 · see citing works
Verifying equivalence of database-driven applications
Wang, Y., Dillig, I., Lahiri, S. K., & Cook, W. R. (2017) · Proceedings of the ACM on Programming Languages · doi:10.1145/3158144 · Cited by 64 · see citing works
Self-citationStratified synthesis: automatically learning the x86-64 instruction set
Heule, S., Schkufza, E., Sharma, R., & Aiken, A. (2016) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/2908080.2908121 · Cited by 59 · see citing works
Program synthesis from polymorphic refinement types
Polikarpova, N., Kuraj, I., & Solar-Lezama, A. (2016) · ACM SIGPLAN Notices · doi:10.1145/2980983.2908093 · Cited by 56 · see citing works
Dijkstra, E. W. (1978) · Cited by 55 · see citing works
Path-based inductive synthesis for program inversion
Srivastava, S., Gulwani, S., Chaudhuri, S., & Foster, J. S. (2011) · ACM SIGPLAN Notices · doi:10.1145/1993316.1993557 · Cited by 51 · see citing works
FlashMeta: a framework for inductive program synthesis
Polozov, O., & Gulwani, S. (2015) · ACM SIGPLAN Notices · doi:10.1145/2858965.2814310 · Cited by 48 · see citing works
Synthesis of data completion scripts using finite tree automata
Wang, X., Dillig, I., & Singh, R. (2017) · Proceedings of the ACM on Programming Languages · doi:10.1145/3133886 · Cited by 44 · see citing works
Self-citationVerified three-way program merge
Sousa, M., Dillig, I., & Lahiri, S. K. (2018) · Proceedings of the ACM on Programming Languages · doi:10.1145/3276535 · Cited by 42 · see citing works
Self-citationPath-based inductive synthesis for program inversion
Srivastava, S., Gulwani, S., Chaudhuri, S., & Foster, J. S. (2011) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/1993498.1993557 · Cited by 41 · see citing works
Program inversion: More than fun!
Chen, W., & Udding, J. T. (1990) · Science of Computer Programming · doi:10.1016/0167-6423(90)90042-c · Cited by 40 · see citing works
Product programs and relational program logics
Barthe, G., Crespo, J. M., & Kunz, C. (2016) · Journal of Logical and Algebraic Methods in Programming · doi:10.1016/j.jlamp.2016.05.004 · Cited by 40 · see citing works
Automated migration of hierarchical data to relational tables using programming-by-example
Yaghmazadeh, N., Wang, X., & Dillig, I. (2018) · Proceedings of the VLDB Endowment · doi:10.1145/3187009.3177735 · Cited by 36 · see citing works
Self-citationSynthesizing Imperative Programs from Examples Guided by Static Analysis
So, S., & Oh, H. (2017) · Lecture notes in computer science · doi:10.1007/978-3-319-66706-5_18 · Cited by 35 · see citing works
Relational Verification Through Horn Clause Transformation
Angelis, E. D., Fioravanti, F., Pettorossi, A., & Proietti, M. (2016) · Lecture notes in computer science · doi:10.1007/978-3-662-53413-7_8 · Cited by 33 · see citing works
Running programs backwards: The logical inversion of imperative computation
Ross, B. J. (1997) · Formal Aspects of Computing · doi:10.1007/bf01211087 · Cited by 29 · see citing works
Schkufza, E., Sharma, R., & Aiken, A. (2013) · ACM SIGPLAN Notices · doi:10.1145/2499368.2451150 · Cited by 28 · see citing works
FIDEX: filtering spreadsheet data using examples
Wang, X., Gulwani, S., & Singh, R. (2016) · Conference on Object-Oriented Programming Systems, Languages, and Applications · doi:10.1145/2983990.2984030 · Cited by 25 · see citing works
Self-citationAutomatic program inversion using symbolic transducers
Hu, Q., & D’Antoni, L. (2017) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/3062341.3062345 · Cited by 23 · see citing works
Cartesian hoare logic for verifying k-safety properties
Sousa, M., & Dillig, I. (2016) · ACM SIGPLAN Notices · doi:10.1145/2980983.2908092 · Cited by 23 · see citing works
Self-citationSynchronizing Constrained Horn Clauses
Mordvinov, D., & Fedyukovich, G. (2018) · EPiC series in computing · doi:10.29007/gr5c · Cited by 22 · see citing works
Synthesis modulo recursive functions
Kneuss, E., Kuraj, I., Kunčak, V., & Suter, P. (2013) · ACM SIGPLAN Notices · doi:10.1145/2544173.2509555 · Cited by 21 · see citing works
Probabilistic Relational Hoare Logics for Computer-Aided Security Proofs
Barthe, G., Grégoire, B., & Zanella-Béguelin, S. (2012) · Lecture notes in computer science · doi:10.1007/978-3-642-31113-0_1 · Cited by 19 · see citing works
Consolidation of queries with user-defined functions
Sousa, M., Dillig, I., Vytiniotis, D., Dillig, T., & Gkantsidis, C. (2014) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/2594291.2594305 · Cited by 10 · see citing works
Self-citationFIDEX: filtering spreadsheet data using examples
Wang, X., Gulwani, S., & Singh, R. (2016) · ACM SIGPLAN Notices · doi:10.1145/3022671.2984030 · Cited by 9 · see citing works
Self-citationFiat: Deductive Synthesis of Abstract Data Types in a Proof Assistant
Delaware, B., Pit-Claudel, C., Gross, J., & Chlipala, A. (2015) · ACM SIGPLAN Notices · doi:10.1145/2775051.2677006
Dijkstra, E. W. (1982) · Selected Writings on Computing: A personal Perspective · doi:10.1007/978-1-4612-5695-3_63
Stratified synthesis: automatically learning the x86-64 instruction set
Heule, S., Schkufza, E., Sharma, R., & Aiken, A. (2016) · ACM SIGPLAN Notices · doi:10.1145/2980983.2908121
Learning programs from noisy data
Raychev, V., Bielik, P., Vechev, M., & Krause, A. (2016) · ACM SIGPLAN Notices · doi:10.1145/2914770.2837671
Wang, Y., Wang, X., & Dillig, I. (2018) · arXiv · doi:10.48550/arxiv.1809.02283
Self-citationConsolidation of queries with user-defined functions
Sousa, M., Dillig, I., Vytiniotis, D., Dillig, T., & Gkantsidis, C. (2014) · ACM SIGPLAN Notices · doi:10.1145/2666356.2594305
Self-citation
Flagged first, then by citations
Research works printed but not linked: 7
Cited by
Sorted by citations
Synthesizing database programs for schema refactoring
Wang, Y., Dong, J., Shah, R., & Dillig, I. (2019) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/3314221.3314588 · Cited by 45 · see citing works
Self-citationBottom-up synthesis of recursive functional programs using angelic execution
Miltner, A., Nuñez, A. T., Brendel, A., Chaudhuri, S., & Dillig, I. (2022) · Proceedings of the ACM on Programming Languages · doi:10.1145/3498682 · Cited by 39 · see citing works
Self-citationQuestion selection for interactive program synthesis
Ji, R., Liang, J., Xiong, Y., Zhang, L., & Hu, Z. (2020) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/3385412.3386025 · Cited by 33 · see citing works
Trace-Guided Inductive Synthesis of Recursive Functional Programs
Yuan, Y., Radhakrishna, A., & Samanta, R. (2023) · Proceedings of the ACM on Programming Languages · doi:10.1145/3591255 · Cited by 17 · see citing works
Decidable Synthesis of Programs with Uninterpreted Functions
Krogmeier, P., Mathur, U., Murali, A., Madhusudan, P., & Viswanathan, M. (2020) · Lecture notes in computer science · doi:10.1007/978-3-030-53291-8_32 · Cited by 15 · see citing works
Semantic Code Refactoring for Abstract Data Types
Pailoor, S., Wang, Y., & Dillig, I. (2024) · Proceedings of the ACM on Programming Languages · doi:10.1145/3632870 · Cited by 13 · see citing works
Self-citationProgramming-by-Demonstration for Long-Horizon Robot Tasks
Patton, N., Rahmani, K., Missula, M., Biswas, J., & Dillig, I. (2024) · Proceedings of the ACM on Programming Languages · doi:10.1145/3632860 · Cited by 12 · see citing works
Self-citationDecomposition-based Synthesis for Applying Divide-and-Conquer-like Algorithmic Paradigms
Ji, R., Zhao, Y., Xiong, Y., Wang, D., Zhang, L., & Hu, Z. (2024) · ACM Transactions on Programming Languages and Systems · doi:10.1145/3648440 · Cited by 9 · see citing works
Efficient Bottom-Up Synthesis for Programs with Local Variables
Li, X., Zhou, X., Dong, R., Zhang, Y., & Wang, X. (2024) · Proceedings of the ACM on Programming Languages · doi:10.1145/3632894 · Cited by 7 · see citing works
Self-citationAugmented example-based synthesis using relational perturbation properties
An, S., Singh, R., Misailovíc, S., & Samanta, R. (2019) · Proceedings of the ACM on Programming Languages · doi:10.1145/3371124 · Cited by 7 · see citing works
Learning formulas in finite variable logics
Krogmeier, P., & Madhusudan, P. (2022) · Proceedings of the ACM on Programming Languages · doi:10.1145/3498671 · Cited by 6 · see citing works
Languages with Decidable Learning: A Meta-theorem
Krogmeier, P., & Madhusudan, P. (2023) · Proceedings of the ACM on Programming Languages · doi:10.1145/3586032 · Cited by 4 · see citing works
From Batch to Stream: Automatic Generation of Online Algorithms
Wang, Z., Pailoor, S., Prakash, A., Wang, Y., & Dillig, I. (2024) · Proceedings of the ACM on Programming Languages · doi:10.1145/3656418 · Cited by 3 · see citing works
Self-citationSynthesizing Efficient Memoization Algorithms
Sun, Y., Peng, X., & Xiong, Y. (2023) · Proceedings of the ACM on Programming Languages · doi:10.1145/3622800 · Cited by 3 · see citing works
Relational Synthesis of Recursive Programs via Constraint Annotated Tree Automata
Miltner, A., Wang, Z., Chaudhuri, S., & Dillig, I. (2024) · Lecture notes in computer science · doi:10.1007/978-3-031-65633-0_3 · Cited by 2 · see citing works
Self-citationSynthesizing DSLs for Few-Shot Learning
Krogmeier, P., & Madhusudan, P. (2025) · Proceedings of the ACM on Programming Languages · doi:10.1145/3763073 · Cited by 1 · see citing works
SYNTHBX: An Example-guided Synthesizer for Bidirectional Programs on Relations
Trong, B. N., Tsushima, K., & Hu, Z. (2024) · Journal of Information Processing · doi:10.2197/ipsjjip.32.471
- Authors
- Wang, Y., Wang, X., & Dillig, I.
- Affiliations
- The University of Texas at Austin (US)
- University of Texas at Austin, USA
- Venue
- Proceedings of the ACM on Programming Languages
- Published
- 2018-10-24
- Volume
- 2
- Issue
- OOPSLA
- Pages
- 1-27
- ISSN
- 2475-1421 (ISSN-L)
- OpenAlex
- W2890639568
- Semantic Scholar
- 15ff2cf9804547fe3d86bc983c9f1c8b3e269a24
- Cited by
- 17
- References
- 55
- Citations by year
- 2025: 1 · 2024: 7 · 2023: 3 · 2022: 2 · 2020: 2 · 2019: 2
- FWCI
- 0.54
- Type
- journal article
- Language
- en
- Open access
- diamond
- doi.org
- Licence
- Locations
- Proceedings of the ACM on Programming Languages (publishedVersion, cc-by)
- arXiv (Cornell University) (submittedVersion)
- arXiv (Cornell University)
- Funders
- National Science Foundation (1712067, 1811865, 1646522)
- Air Force Research Laboratory (8750-14-2-0270)
- Topics
- Physical Sciences › Computer Science › Artificial Intelligence › Logic, programming, and type systems
- Physical Sciences › Computer Science › Software › Software Testing and Debugging Techniques
- Physical Sciences › Computer Science › Artificial Intelligence › Evolutionary Algorithms and Applications
- Keywords
- counterexample-guided inductive synthesis, Relish, program inversion, program synthesis
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Claims read by deepseek-v4.1-flash under definition version 3 (extract-v3) on 2026-11-06.
Classified by jev-1.13-20260917 (gold-guideline-v0.2) on 2026-11-06.
Cited sources are checked by gpt-6-sol.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review