19 research outputs found

    Automated Random Testing of Numerical Constrained Types

    Get PDF
    International audienceWe propose an automated testing framework based on constraint programming techniques. Our framework allows the developer to attach a numerical constraint to a type that restricts its set of possible values. We use this constraint as a partial specification of the program, our goal being to derive property-based tests on such annotated programs. To achieve this, we rely on the user-provided constraints on the types of a program: for each function f present in the program, that returns a constrained type, we generate a test. The tests consists of generating uniformly pseudo-random inputs and checking whether f 's output satisfies the constraint. We are able to automate this process by providing a set of generators for primitive types and generator combinators for composite types. To derive generators for constrained types, we present in this paper a technique that characterizes their inhabitants as the solution set of a numerical CSP. This is done by combining abstract interpretation and constraint solving techniques that allow us to efficiently and uniformly generate solutions of numerical CSP. We validated our approach by implementing it as a syntax extension for the OCaml language

    Quantitative and Algorithmic aspects of Barrier Synchronization in Concurrency

    Get PDF
    In this paper we address the problem of understanding Concurrency Theory from a combinatorial point of view. We are interested in quantitative results and algorithmic tools to refine our understanding of the classical combinatorial explosion phenomenon arising in concurrency. This paper is essentially focusing on the the notion of synchronization from the point of view of combinatorics. As a first step, we address the quantitative problem of counting the number of executions of simple processes interacting with synchronization barriers. We elaborate a systematic decomposition of processes that produces a symbolic integral formula to solve the problem. Based on this procedure, we develop a generic algorithm to generate process executions uniformly at random. For some interesting sub-classes of processes we propose very efficient counting and random sampling algorithms. All these algorithms have one important characteristic in common: they work on the control graph of processes and thus do not require the explicit construction of the state-space

    Beyond Series-Parallel Concurrent Systems: The Case of Arch Processes

    Get PDF
    In this paper we focus on concurrent processes built on synchronization by means of futures. This concept is an abstraction for processes based on a main execution thread but allowing to delay some computations. The structure of a general concurrent process is a directed acyclic graph (DAG). Since the quantitative study of increasingly labeled DAG (directly related to processes) seems out of reach (this is a #P-complete problem), we restrict ourselves to the study of arch processes, a simplistic model of processes with futures. They are based on two parameters related to their sizes and their numbers of arches. The increasingly labeled structures seems not to be specifiable in the classical sense of Analytic Combinatorics, but we manage to derive a recurrence equation for the enumeration. For this model we first exhibit an exact and an asymptotic formula for the number of runs of a given process. The second main contribution is composed of a uniform random sampler algorithm and an unranking one that allow efficient generation and exhaustive enumeration of the runs of a given arch process

    Antimicrobial resistance among migrants in Europe: a systematic review and meta-analysis

    Get PDF
    BACKGROUND: Rates of antimicrobial resistance (AMR) are rising globally and there is concern that increased migration is contributing to the burden of antibiotic resistance in Europe. However, the effect of migration on the burden of AMR in Europe has not yet been comprehensively examined. Therefore, we did a systematic review and meta-analysis to identify and synthesise data for AMR carriage or infection in migrants to Europe to examine differences in patterns of AMR across migrant groups and in different settings. METHODS: For this systematic review and meta-analysis, we searched MEDLINE, Embase, PubMed, and Scopus with no language restrictions from Jan 1, 2000, to Jan 18, 2017, for primary data from observational studies reporting antibacterial resistance in common bacterial pathogens among migrants to 21 European Union-15 and European Economic Area countries. To be eligible for inclusion, studies had to report data on carriage or infection with laboratory-confirmed antibiotic-resistant organisms in migrant populations. We extracted data from eligible studies and assessed quality using piloted, standardised forms. We did not examine drug resistance in tuberculosis and excluded articles solely reporting on this parameter. We also excluded articles in which migrant status was determined by ethnicity, country of birth of participants' parents, or was not defined, and articles in which data were not disaggregated by migrant status. Outcomes were carriage of or infection with antibiotic-resistant organisms. We used random-effects models to calculate the pooled prevalence of each outcome. The study protocol is registered with PROSPERO, number CRD42016043681. FINDINGS: We identified 2274 articles, of which 23 observational studies reporting on antibiotic resistance in 2319 migrants were included. The pooled prevalence of any AMR carriage or AMR infection in migrants was 25·4% (95% CI 19·1-31·8; I2 =98%), including meticillin-resistant Staphylococcus aureus (7·8%, 4·8-10·7; I2 =92%) and antibiotic-resistant Gram-negative bacteria (27·2%, 17·6-36·8; I2 =94%). The pooled prevalence of any AMR carriage or infection was higher in refugees and asylum seekers (33·0%, 18·3-47·6; I2 =98%) than in other migrant groups (6·6%, 1·8-11·3; I2 =92%). The pooled prevalence of antibiotic-resistant organisms was slightly higher in high-migrant community settings (33·1%, 11·1-55·1; I2 =96%) than in migrants in hospitals (24·3%, 16·1-32·6; I2 =98%). We did not find evidence of high rates of transmission of AMR from migrant to host populations. INTERPRETATION: Migrants are exposed to conditions favouring the emergence of drug resistance during transit and in host countries in Europe. Increased antibiotic resistance among refugees and asylum seekers and in high-migrant community settings (such as refugee camps and detention facilities) highlights the need for improved living conditions, access to health care, and initiatives to facilitate detection of and appropriate high-quality treatment for antibiotic-resistant infections during transit and in host countries. Protocols for the prevention and control of infection and for antibiotic surveillance need to be integrated in all aspects of health care, which should be accessible for all migrant groups, and should target determinants of AMR before, during, and after migration. FUNDING: UK National Institute for Health Research Imperial Biomedical Research Centre, Imperial College Healthcare Charity, the Wellcome Trust, and UK National Institute for Health Research Health Protection Research Unit in Healthcare-associated Infections and Antimictobial Resistance at Imperial College London

    Surgical site infection after gastrointestinal surgery in high-income, middle-income, and low-income countries: a prospective, international, multicentre cohort study

    Get PDF
    Background: Surgical site infection (SSI) is one of the most common infections associated with health care, but its importance as a global health priority is not fully understood. We quantified the burden of SSI after gastrointestinal surgery in countries in all parts of the world. Methods: This international, prospective, multicentre cohort study included consecutive patients undergoing elective or emergency gastrointestinal resection within 2-week time periods at any health-care facility in any country. Countries with participating centres were stratified into high-income, middle-income, and low-income groups according to the UN's Human Development Index (HDI). Data variables from the GlobalSurg 1 study and other studies that have been found to affect the likelihood of SSI were entered into risk adjustment models. The primary outcome measure was the 30-day SSI incidence (defined by US Centers for Disease Control and Prevention criteria for superficial and deep incisional SSI). Relationships with explanatory variables were examined using Bayesian multilevel logistic regression models. This trial is registered with ClinicalTrials.gov, number NCT02662231. Findings: Between Jan 4, 2016, and July 31, 2016, 13 265 records were submitted for analysis. 12 539 patients from 343 hospitals in 66 countries were included. 7339 (58·5%) patient were from high-HDI countries (193 hospitals in 30 countries), 3918 (31·2%) patients were from middle-HDI countries (82 hospitals in 18 countries), and 1282 (10·2%) patients were from low-HDI countries (68 hospitals in 18 countries). In total, 1538 (12·3%) patients had SSI within 30 days of surgery. The incidence of SSI varied between countries with high (691 [9·4%] of 7339 patients), middle (549 [14·0%] of 3918 patients), and low (298 [23·2%] of 1282) HDI (p < 0·001). The highest SSI incidence in each HDI group was after dirty surgery (102 [17·8%] of 574 patients in high-HDI countries; 74 [31·4%] of 236 patients in middle-HDI countries; 72 [39·8%] of 181 patients in low-HDI countries). Following risk factor adjustment, patients in low-HDI countries were at greatest risk of SSI (adjusted odds ratio 1·60, 95% credible interval 1·05–2·37; p=0·030). 132 (21·6%) of 610 patients with an SSI and a microbiology culture result had an infection that was resistant to the prophylactic antibiotic used. Resistant infections were detected in 49 (16·6%) of 295 patients in high-HDI countries, in 37 (19·8%) of 187 patients in middle-HDI countries, and in 46 (35·9%) of 128 patients in low-HDI countries (p < 0·001). Interpretation: Countries with a low HDI carry a disproportionately greater burden of SSI than countries with a middle or high HDI and might have higher rates of antibiotic resistance. In view of WHO recommendations on SSI prevention that highlight the absence of high-quality interventional research, urgent, pragmatic, randomised trials based in LMICs are needed to assess measures aiming to reduce this preventable complication

    Concurrent process and combinatorics of increasingly labeled structures : quantitative analysis and random generation algorithms

    No full text
    Un programme concurrent est composĂ© de plusieurs unitĂ©s logiques : les processus. Chaque processus a un comportement qui lui est propre : il exĂ©cute ses actions de façon sĂ©quentielle. Un objectif important est de s'assurer que de tels systĂšmes concurrents complexes soient cependant exempts de dĂ©faut. Cette problĂ©matique est Ă©tudiĂ©e dans le cadre de la thĂ©orie de la concurrence. Quand plusieurs processus s’exĂ©cutent en parallĂšle, l’ordre d’exĂ©cution des actions du programme global n’est plus dĂ©terminĂ©. On assiste au fameux phĂ©nomĂšne "d’explosion combinatoire" faisant rĂ©fĂ©rence au trĂšs grand nombre d’exĂ©cutions globales possibles. Les diverses techniques et mĂ©thodes d'analyse existantes (model checking, analyse statique, tests automatisĂ©s, etc) se heurtent irrĂ©mĂ©diablement Ă  cette "explosion". Cette thĂšse s'inscrit dans un projet Ă  long terme d'Ă©tude quantitative de ce phĂ©nomĂšne et de dĂ©veloppement des techniques d’analyse statistique basĂ©es sur la gĂ©nĂ©ration alĂ©atoire uniforme. Notre objectif dans cette thĂšse est de traiter une composante fondamentale de la concurrence : la synchronisation. Ce mĂ©canisme permet aux processus de communiquer entre eux. Dans cette thĂšse nous proposons un modĂšle combinatoire de structures croissantes pour modĂ©liser les exĂ©cutions de programmes concurrents synchronisĂ©s. Avec des outils de combinatoire analytique nous obtenons plusieurs rĂ©sultats exacts et asymptotiques sur le nombre moyen d'exĂ©cutions dans des sous-classes de programmes concurrents. Nous prĂ©sentons aussi plusieurs algorithmes de gĂ©nĂ©ration alĂ©atoire uniforme de structures croissantes et de leurs Ă©tiquetages.A concurrent program is a composition of several logical blocks: the processes. Each process has its own behavior, independent from the others: it sequentially runs its actions. An important goal is to ensure that such concurrent complex systems are faultless. This problem is studied in the field of concurrency theory. When several process are running in parallel, the running order of the actions of the total program is no more decided. This is the well-known "combinatorial explosion" phenomena, meaning that the number of possible runs of the global program is huge. The analysis techniques and methods existing (model checking, static analysis, automated testing, etc) are irremediably limited by this "explosion". This thesis is a part of a long-term project about the quantitative study of this phenomena and the development of statistic analysis methods based on the uniform random generation. Our specific goal is to study a fundamental principle of the concurrency theory: the synchronization. This mechanism allows communications between the processes. In this thesis we propose a combinatorial model of increasingly labeled structures to deal with runs of synchronized concurrent programs. Using the tools of analytic combinatorics we obtain close formulas and asymptotic equivalents for the average number of runs in several subclasses of concurrent programs. We also present algorithms of uniform random generation of increasingly labeled structures and for their increasing labelings

    Processus concurrents et combinatoire des structures croissantes : analyse quantitative et algorithmes de génération aléatoire

    No full text
    A concurrent program is a composition of several logical blocks: the processes. Each process has its own behavior, independent from the others: it sequentially runs its actions. An important goal is to ensure that such concurrent complex systems are faultless. This problem is studied in the field of concurrency theory. When several process are running in parallel, the running order of the actions of the total program is no more decided. This is the well-known "combinatorial explosion" phenomena, meaning that the number of possible runs of the global program is huge. The analysis techniques and methods existing (model checking, static analysis, automated testing, etc) are irremediably limited by this "explosion". This thesis is a part of a long-term project about the quantitative study of this phenomena and the development of statistic analysis methods based on the uniform random generation. Our specific goal is to study a fundamental principle of the concurrency theory: the synchronization. This mechanism allows communications between the processes. In this thesis we propose a combinatorial model of increasingly labeled structures to deal with runs of synchronized concurrent programs. Using the tools of analytic combinatorics we obtain close formulas and asymptotic equivalents for the average number of runs in several subclasses of concurrent programs. We also present algorithms of uniform random generation of increasingly labeled structures and for their increasing labelings.Un programme concurrent est composĂ© de plusieurs unitĂ©s logiques : les processus. Chaque processus a un comportement qui lui est propre : il exĂ©cute ses actions de façon sĂ©quentielle. Un objectif important est de s'assurer que de tels systĂšmes concurrents complexes soient cependant exempts de dĂ©faut. Cette problĂ©matique est Ă©tudiĂ©e dans le cadre de la thĂ©orie de la concurrence. Quand plusieurs processus s’exĂ©cutent en parallĂšle, l’ordre d’exĂ©cution des actions du programme global n’est plus dĂ©terminĂ©. On assiste au fameux phĂ©nomĂšne "d’explosion combinatoire" faisant rĂ©fĂ©rence au trĂšs grand nombre d’exĂ©cutions globales possibles. Les diverses techniques et mĂ©thodes d'analyse existantes (model checking, analyse statique, tests automatisĂ©s, etc) se heurtent irrĂ©mĂ©diablement Ă  cette "explosion". Cette thĂšse s'inscrit dans un projet Ă  long terme d'Ă©tude quantitative de ce phĂ©nomĂšne et de dĂ©veloppement des techniques d’analyse statistique basĂ©es sur la gĂ©nĂ©ration alĂ©atoire uniforme. Notre objectif dans cette thĂšse est de traiter une composante fondamentale de la concurrence : la synchronisation. Ce mĂ©canisme permet aux processus de communiquer entre eux. Dans cette thĂšse nous proposons un modĂšle combinatoire de structures croissantes pour modĂ©liser les exĂ©cutions de programmes concurrents synchronisĂ©s. Avec des outils de combinatoire analytique nous obtenons plusieurs rĂ©sultats exacts et asymptotiques sur le nombre moyen d'exĂ©cutions dans des sous-classes de programmes concurrents. Nous prĂ©sentons aussi plusieurs algorithmes de gĂ©nĂ©ration alĂ©atoire uniforme de structures croissantes et de leurs Ă©tiquetages

    Uniform SAmplINg with BOLTZmann

    No full text
    International audienceUSAIN BOLTZ is a fast Python library for the uniform random generation of tree-like structures. It allows the user to specify both (1) the data structure they wish to sample, using simple combinators similar to those of context-free grammars, and (2) their memory representation. The underlying algorithms are optimised Boltzmann samplers allowing to get approximatesize uniform random generation in linear time. Experimental results show that USAIN BOLTZ matches the performance of the experimental Arbogen package for OCaml, and out-performs the Boltzmann brain Haskell library, while being easier to integrate into existing scientific tools such as Sagemath

    A Combinatorial Study of Async/Await Processes

    No full text
    International audienceIn this paper we study families of async/await concurrent processes using techniques and tools from (enumerative) combinatorics and order theory. We consider the count of process executions as the primary measure of "complexity", which closely relates to the (in general, difficult) problem of counting linear extensions of partial orders. Interestingly, the control structures of async/await processes fall into the subclass of what we call the BIT-decomposable posets, providing an effective way to count executions in practice. We also show that async/await processes can be seen as generalizations of families of interval orders, a well-studied class of partial orders. Based on this combinatorial study, we define a variety of uniform random generation algorithms. We consider on the one side the generation of process structures, and on the other side the generation of execution paths-which is performed without requiring the explicit construction of the state-space

    Quantitative and Algorithmic aspects of Barrier Synchronization in Concurrency

    No full text
    In this paper we address the problem of understanding Concurrency Theory from a combinatorial point of view. We are interested in quantitative results and algorithmic tools to refine our understanding of the classical combinatorial explosion phenomenon arising in concurrency. This paper is essentially focusing on the the notion of synchronization from the point of view of combinatorics. As a first step, we address the quantitative problem of counting the number of executions of simple processes interacting with synchronization barriers. We elaborate a systematic decomposition of processes that produces a symbolic integral formula to solve the problem. Based on this procedure, we develop a generic algorithm to generate process executions uniformly at random. For some interesting sub-classes of processes we propose very efficient counting and random sampling algorithms. All these algorithms have one important characteristic in common: they work on the control graph of processes and thus do not require the explicit construction of the state-space
    corecore