3,090 research outputs found
Exact Recursive Probabilistic Programming
Recursive calls over recursive data are widely useful for generating
probability distributions, and probabilistic programming allows computations
over these distributions to be expressed in a modular and intuitive way. Exact
inference is also useful, but unfortunately, existing probabilistic programming
languages do not perform exact inference on recursive calls over recursive
data, forcing programmers to code many applications manually. We introduce a
probabilistic language in which a wide variety of recursion can be expressed
naturally, and inference carried out exactly. For instance, probabilistic
pushdown automata and their generalizations are easy to express, and
polynomial-time parsing algorithms for them are derived automatically. We
eliminate recursive data types using program transformations related to
defunctionalization and refunctionalization. These transformations are assured
correct by a linear type system, and a successful choice of transformations, if
there is one, is guaranteed to be found by a greedy algorithm
Tools and Algorithms for the Construction and Analysis of Systems
This open access two-volume set constitutes the proceedings of the 27th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2021, which was held during March 27 – April 1, 2021, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2021. The conference was planned to take place in Luxembourg and changed to an online format due to the COVID-19 pandemic. The total of 41 full papers presented in the proceedings was carefully reviewed and selected from 141 submissions. The volume also contains 7 tool papers; 6 Tool Demo papers, 9 SV-Comp Competition Papers. The papers are organized in topical sections as follows: Part I: Game Theory; SMT Verification; Probabilities; Timed Systems; Neural Networks; Analysis of Network Communication. Part II: Verification Techniques (not SMT); Case Studies; Proof Generation/Validation; Tool Papers; Tool Demo Papers; SV-Comp Tool Competition Papers
Foundations of Software Science and Computation Structures
This open access book constitutes the proceedings of the 22nd International Conference on Foundations of Software Science and Computational Structures, FOSSACS 2019, which took place in Prague, Czech Republic, in April 2019, held as part of the European Joint Conference on Theory and Practice of Software, ETAPS 2019. The 29 papers presented in this volume were carefully reviewed and selected from 85 submissions. They deal with foundational research with a clear significance for software science
IST Austria Thesis
In this thesis we present a computer-aided programming approach to concurrency. Our approach helps the programmer by automatically fixing concurrency-related bugs, i.e. bugs that occur when the program is executed using an aggressive preemptive scheduler, but not when using a non-preemptive (cooperative) scheduler. Bugs are program behaviours that are incorrect w.r.t. a specification. We consider both user-provided explicit specifications in the form of assertion
statements in the code as well as an implicit specification. The implicit specification is inferred from the non-preemptive behaviour. Let us consider sequences of calls that the program makes to an external interface. The implicit specification requires that any such sequence produced under a preemptive scheduler should be included in the set of sequences produced under a non-preemptive scheduler. We consider several semantics-preserving fixes that go beyond atomic sections typically explored in the synchronisation synthesis literature. Our synthesis is able to place locks, barriers and wait-signal statements and last, but not least reorder independent statements. The latter may be useful if a thread is released to early, e.g., before some initialisation is completed. We guarantee that our synthesis does not introduce deadlocks and that the synchronisation inserted is optimal w.r.t. a given objective function. We dub our solution trace-based synchronisation synthesis and it is loosely based on counterexample-guided inductive synthesis (CEGIS). The synthesis works by discovering a trace that is incorrect w.r.t. the specification and identifying ordering constraints crucial to trigger the specification violation. Synchronisation may be placed immediately (greedy approach) or delayed until all incorrect traces are found (non-greedy approach). For the non-greedy approach we construct a set of global constraints over synchronisation placements. Each model of the global constraints set corresponds to a correctness-ensuring synchronisation placement. The placement that is optimal w.r.t. the given objective function is chosen as the synchronisation solution. We evaluate our approach on a number of realistic (albeit simplified) Linux device-driver
benchmarks. The benchmarks are versions of the drivers with known concurrency-related bugs. For the experiments with an explicit specification we added assertions that would detect the bugs in the experiments. Device drivers lend themselves to implicit specification, where the device and the operating system are the external interfaces. Our experiments demonstrate that our synthesis method is precise and efficient. We implemented objective functions for coarse-grained and fine-grained locking and observed that different synchronisation placements are produced for our experiments, favouring e.g. a minimal number of synchronisation operations or maximum concurrency
MaxSAT Evaluation 2018 : Solver and Benchmark Descriptions
Non peer reviewe
The power of linear programming for general-valued CSPs
Let , called the domain, be a fixed finite set and let , called
the valued constraint language, be a fixed set of functions of the form
, where different functions might have
different arity . We study the valued constraint satisfaction problem
parametrised by , denoted by VCSP. These are minimisation
problems given by variables and the objective function given by a sum of
functions from , each depending on a subset of the variables.
Finite-valued constraint languages contain functions that take on only rational
values and not infinite values.
Our main result is a precise algebraic characterisation of valued constraint
languages whose instances can be solved exactly by the basic linear programming
relaxation (BLP). For a valued constraint language , BLP is a decision
procedure for if and only if admits a symmetric fractional
polymorphism of every arity. For a finite-valued constraint language ,
BLP is a decision procedure if and only if admits a symmetric
fractional polymorphism of some arity, or equivalently, if admits a
symmetric fractional polymorphism of arity 2.
Using these results, we obtain tractability of several novel classes of
problems, including problems over valued constraint languages that are: (1)
submodular on arbitrary lattices; (2) -submodular on arbitrary finite
domains; (3) weakly (and hence strongly) tree-submodular on arbitrary trees.Comment: A full version of a FOCS'12 paper by the last two authors
(arXiv:1204.1079) and an ICALP'13 paper by the first author (arXiv:1207.7213)
to appear in SIAM Journal on Computing (SICOMP
Achieving while maintaining:A logic of knowing how with intermediate constraints
In this paper, we propose a ternary knowing how operator to express that the
agent knows how to achieve given while maintaining
in-between. It generalizes the logic of goal-directed knowing how proposed by
Yanjing Wang 2015 'A logic of knowing how'. We give a sound and complete
axiomatization of this logic.Comment: appear in Proceedings of ICLA 201
- …