2,078 research outputs found

    Towards Next Generation Sequential and Parallel SAT Solvers

    Get PDF
    This thesis focuses on improving the SAT solving technology. The improvements focus on two major subjects: sequential SAT solving and parallel SAT solving. To better understand sequential SAT algorithms, the abstract reduction system Generic CDCL is introduced. With Generic CDCL, the soundness of solving techniques can be modeled. Next, the conflict driven clause learning algorithm is extended with the three techniques local look-ahead, local probing and all UIP learning that allow more global reasoning during search. These techniques improve the performance of the sequential SAT solver Riss. Then, the formula simplification techniques bounded variable addition, covered literal elimination and an advanced cardinality constraint extraction are introduced. By using these techniques, the reasoning of the overall SAT solving tool chain becomes stronger than plain resolution. When using these three techniques in the formula simplification tool Coprocessor before using Riss to solve a formula, the performance can be improved further. Due to the increasing number of cores in CPUs, the scalable parallel SAT solving approach iterative partitioning has been implemented in Pcasso for the multi-core architecture. Related work on parallel SAT solving has been studied to extract main ideas that can improve Pcasso. Besides parallel formula simplification with bounded variable elimination, the major extension is the extended clause sharing level based clause tagging, which builds the basis for conflict driven node killing. The latter allows to better identify unsatisfiable search space partitions. Another improvement is to combine scattering and look-ahead as a superior search space partitioning function. In combination with Coprocessor, the introduced extensions increase the performance of the parallel solver Pcasso. The implemented system turns out to be scalable for the multi-core architecture. Hence iterative partitioning is interesting for future parallel SAT solvers. The implemented solvers participated in international SAT competitions. In 2013 and 2014 Pcasso showed a good performance. Riss in combination with Copro- cessor won several first, second and third prices, including two Kurt-Gödel-Medals. Hence, the introduced algorithms improved modern SAT solving technology

    Transfer Function Synthesis without Quantifier Elimination

    Get PDF
    Traditionally, transfer functions have been designed manually for each operation in a program, instruction by instruction. In such a setting, a transfer function describes the semantics of a single instruction, detailing how a given abstract input state is mapped to an abstract output state. The net effect of a sequence of instructions, a basic block, can then be calculated by composing the transfer functions of the constituent instructions. However, precision can be improved by applying a single transfer function that captures the semantics of the block as a whole. Since blocks are program-dependent, this approach necessitates automation. There has thus been growing interest in computing transfer functions automatically, most notably using techniques based on quantifier elimination. Although conceptually elegant, quantifier elimination inevitably induces a computational bottleneck, which limits the applicability of these methods to small blocks. This paper contributes a method for calculating transfer functions that finesses quantifier elimination altogether, and can thus be seen as a response to this problem. The practicality of the method is demonstrated by generating transfer functions for input and output states that are described by linear template constraints, which include intervals and octagons.Comment: 37 pages, extended version of ESOP 2011 pape

    Proving theorems by program transformation

    Get PDF
    In this paper we present an overview of the unfold/fold proof method, a method for proving theorems about programs, based on program transformation. As a metalanguage for specifying programs and program properties we adopt constraint logic programming (CLP), and we present a set of transformation rules (including the familiar unfolding and folding rules) which preserve the semantics of CLP programs. Then, we show how program transformation strategies can be used, similarly to theorem proving tactics, for guiding the application of the transformation rules and inferring the properties to be proved. We work out three examples: (i) the proof of predicate equivalences, applied to the verification of equality between CCS processes, (ii) the proof of first order formulas via an extension of the quantifier elimination method, and (iii) the proof of temporal properties of infinite state concurrent systems, by using a transformation strategy that performs program specialization

    Proceedings of the 21st Conference on Formal Methods in Computer-Aided Design – FMCAD 2021

    Get PDF
    The Conference on Formal Methods in Computer-Aided Design (FMCAD) is an annual conference on the theory and applications of formal methods in hardware and system verification. FMCAD provides a leading forum to researchers in academia and industry for presenting and discussing groundbreaking methods, technologies, theoretical results, and tools for reasoning formally about computing systems. FMCAD covers formal aspects of computer-aided system design including verification, specification, synthesis, and testing

    Automated Deduction – CADE 28

    Get PDF
    This open access book constitutes the proceeding of the 28th International Conference on Automated Deduction, CADE 28, held virtually in July 2021. The 29 full papers and 7 system descriptions presented together with 2 invited papers were carefully reviewed and selected from 76 submissions. CADE is the major forum for the presentation of research in all aspects of automated deduction, including foundations, applications, implementations, and practical experience. The papers are organized in the following topics: Logical foundations; theory and principles; implementation and application; ATP and AI; and system descriptions

    Disproving in First-Order Logic with Definitions, Arithmetic and Finite Domains

    Get PDF
    This thesis explores several methods which enable a first-order reasoner to conclude satisfiability of a formula modulo an arithmetic theory. The most general method requires restricting certain quantifiers to range over finite sets; such assumptions are common in the software verification setting. In addition, the use of first-order reasoning allows for an implicit representation of those finite sets, which can avoid scalability problems that affect other quantified reasoning methods. These new techniques form a useful complement to existing methods that are primarily aimed at proving validity. The Superposition calculus for hierarchic theory combinations provides a basis for reasoning modulo theories in a first-order setting. The recent account of ‘weak abstraction’ and related improvements make an mplementation of the calculus practical. Also, for several logical theories of interest Superposition is an effective decision procedure for the quantifier free fragment. The first contribution is an implementation of that calculus (Beagle), including an optimized implementation of Cooper’s algorithm for quantifier elimination in the theory of linear integer arithmetic. This includes a novel means of extracting values for quantified variables in satisfiable integer problems. Beagle won an efficiency award at CADE Automated theorem prover System Competition (CASC)-J7, and won the arithmetic non-theorem category at CASC-25. This implementation is the start point for solving the ‘disproving with theories’ problem. Some hypotheses can be disproved by showing that, together with axioms the hypothesis is unsatisfiable. Often this is relative to other axioms that enrich a base theory by defining new functions. In that case, the disproof is contingent on the satisfiability of the enrichment. Satisfiability in this context is undecidable. Instead, general characterizations of definition formulas, which do not alter the satisfiability status of the main axioms, are given. These general criteria apply to recursive definitions, definitions over lists, and to arrays. This allows proving some non-theorems which are otherwise intractable, and justifies similar disproofs of non-linear arithmetic formulas. When the hypothesis is contingently true, disproof requires proving existence of a model. If the Superposition calculus saturates a clause set, then a model exists, but only when the clause set satisfies a completeness criterion. This requires each instance of an uninterpreted, theory-sorted term to have a definition in terms of theory symbols. The second contribution is a procedure that creates such definitions, given that a subset of quantifiers range over finite sets. Definitions are produced in a counter-example driven way via a sequence of over and under approximations to the clause set. Two descriptions of the method are given: the first uses the component solver modularly, but has an inefficient counter-example heuristic. The second is more general, correcting many of the inefficiencies of the first, yet it requires tracking clauses through a proof. This latter method is shown to apply also to lists and to problems with unbounded quantifiers. Together, these tools give new ways for applying successful first-order reasoning methods to problems involving interpreted theories

    A formally verified compiler back-end

    Get PDF
    This article describes the development and formal verification (proof of semantic preservation) of a compiler back-end from Cminor (a simple imperative intermediate language) to PowerPC assembly code, using the Coq proof assistant both for programming the compiler and for proving its correctness. Such a verified compiler is useful in the context of formal methods applied to the certification of critical software: the verification of the compiler guarantees that the safety properties proved on the source code hold for the executable compiled code as well

    Combining clause learning and resolution for multimodal reasoning

    Get PDF
    Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2019.Vários aspectos de sistemas computacionais complexos podem ser modelados utilizando linguagens lógicas, que permitem a caracterização de noções como probabilidades, pos- sibilidades, noções temporais, conhecimento e crenças [32, 37, 38, 64]. Lógicas modais, mais especificamente, têm sido amplamente estudadas em Ciência da Computação, pois possibilitam modelar de forma natural, por exemplo, noções de conhecimento e crença em sistemas multiagentes [16, 32, 64] e aspectos temporais na verificação formal de problemas relacionados a sistemas concorrentes e distribuídos [37, 38]. Apesar de sua simplicidade, linguagens modais são expressivas para raciocinar sobre relações entre diferentes contextos ou interpretações [15]. Uma vez que um sistema é especificado em uma linguagem lógica, é possível usar mé- todos de prova para verificar as propriedades desse sistema. Em geral, se I é o conjunto de fórmulas que representam a implementação e S é o conjunto que caracteriza a especi- ficação, o processo de verificação consiste em mostrar que é possível derivar os aspectos especificados em S a partir de I. Cada método de prova corresponde a um conjunto de regras de inferência acompanhado de uma metodologia de como lidar com as fórmulas. Geralmente, a literatura sobre um sistema de prova contém análises de melhor e pior casos. Também pode-se encontrar na literatura comparações entre diferentes métodos de prova para uma linguagem lógica específica. Para lógicas modais, por exemplo, uma aná- lise empírica de desempenho de quatro sistemas de prova diferentes pode ser encontrada em [42]. Ainda é possível combinar métodos de prova para se beneficiar do melhor cenário de cada método. Frequentemente, métodos de prova são projetados para serem implementados como provadores de teoremas automatizados, ou seja, aspectos relacionados à busca por uma prova também são considerados no projeto de um método de prova específico. Na lite- ratura, existem vários provadores de teoremas para lógicas modais [4, 67, 76, 77]. Neste trabalho, o foco é o provador de teoremas para a lógica multimodal básica Kn: KSP [61], que implementa o método baseado em resolução proposto em [60]. Kn é a linguagem que estende a lógica proposicional clássica com a adição dos operadores modais de necessidade, denotado por a , e de possibilidade, denotado por ♦a , ambos indexados por um agente a. v A semântica dos operatores é dada por “é necessário do ponto de vista do agente a” e “é possível do ponto de vista do agente a”, respectivamente. O KSP traduz as fórmulas de entrada para uma forma normal clausal na qual cláusulas são rotuladas pelo nível modal em que ocorrem, ajudando a restringir aplicações desneces- sários das regras de inferência do cálculo que o KSP implementa. Para reduzir o espaço de busca para uma prova, vários refinamentos e estratégias de simplificação são implemen- tadas como parte do provador KSP. Para obter o melhor desempenho para uma fórmula específica, ou classe de fórmulas, é importante escolher as estratégias e otimizações mais adequadas. De acordo com [61], o KSP apresenta um ótimo desempenho se o conjunto de símbolos proposicionais for uniformemente distribuído pelos níveis modais. No entanto, quando há um grande número de símbolos proposicionais em apenas um nível específico, a eficiência diminui. A razão é que a tradução para a forma normal usada sempre gera conjuntos satisfatíveis de cláusulas proposicionais, ou seja, cláusulas sem operadores modais. Como resolução depende da saturação do conjunto de cláusulas, isso pode custar muito tempo. Este trabalho contribui para o KSP com a implementação de uma opção adicional à lista de estratégias disponíveis do provador. O objetivo dessa nova opção é tentar reduzir o tempo que o KSP gasta saturando o conjunto de cláusulas, e, possivelmente, aumentar a velocidade na qual as regras de inferência que lidam com o raciocínio modal podem ser aplicadas. Portanto, a contribuição deste trabalho consiste, principalmente, na adição de duas novas regras ao cálculo implementado pelo KSP. Um dos resultados apresentados é a demonstração de que as regras são corretas e a adição de ambas não interfere na completude do provador. Nossa implementação utiliza um provador de satisfatibilidade booleana baseado em aprendizagem de cláusulas conduzida por análise de conflitos (CDCL SAT solver). O problema de satisfatibilidade booleana (SAT) é o problema de determinar se existe al- guma valoração para as variáveis de uma fórmula proposicional que torne esta fórmula verdadeira. Provadores para este problema (SAT solvers) são em geral conhecidos por serem muito eficientes. Esses provadores comumente são capazes de resolver problemas considerados difíceis, com mais de um milhão de variáveis e milhões de restrições [35]. Uma das principais razões para o amplo uso de SAT em muitas aplicações é que os CDCL SAT solvers são muito eficientes na prática [35]. A principal idéia por trás da aprendiza- gem de cláusulas implementada nesses solvers é adicionar as causas de um dado conflito, derivado de atribuições parciais de valores de verdade a símbolos proposicionais, como cláusulas aprendidas. Então essas informações são usadas para podar a árvore de busca por uma valoração satisfatível em diferentes partes. vi Competições anuais também influenciaram o desenvolvimento de implementações in- teligentes e eficientes dos provadores baseados em SAT, como Chaff [56], MiniSat [73] e Glucose [5]. Essas competições permitem que muitas técnicas sejam exploradas e criam uma extensa coleção de instâncias de problemas do mundo real e problemas projetados como desafiadores, formando um grande banco referência de casos de teste [35]. Além da análise de conflitos, os provadores modernos incluem técnicas como estruturas de dados com avaliação preguiçosa, reinicializações de busca, heurísticas de ramificação controlada por conflitos e estratégias de exclusão de cláusulas [14]. Em 2005, mais especificamente, Sörensson e Een desenvolveram um provador SAT com minimização de cláusulas de con- flito, chamado MiniSat [73], que permaneceu por um tempo como o SAT solver do estado da arte. O MiniSat é um provador popular, com um desempenho surpreendente, que implementa de forma sucinta muitas heurísticas conhecidas. Ele ganhou vários prêmios na competição SAT 2005 e tem a vantagem de ser código aberto. Mantém até hoje sua importância como uma ferramenta usada como parte integrada de diferentes siste- mas [26, 27, 28, 75]. Aproveitamos os esforços teóricos e práticos que foram direcionados em melhorar a eficiência de tais provadores para ajudar a acelerar o processo de saturação dentro dos procedimentos já implementados no KSP. Nossa implementação modifica o provador KSP para realizar uma chamada externa ao MiniSat. O provador modificado pode ser encontrado em [1]. A idéia principal por trás dessa combinação é criar uma consulta para o SAT solver contendo cláusulas especiais criadas a partir de cada nível modal. Se o provador baseado em CDCL aprender uma ou mais cláusulas pelo procedimento de análise de conflitos, adicionamos-as ao conjunto de cláusulas proposicionais da respectiva instância do KSP, pois sabemos que essas cláusulas aprendidas são consequências do conjunto que passamos ao MiniSat. Além disso, se o MiniSat concluir que o conjunto dado como entrada é insatisfatível, também aprendemos uma cláusula que, por construção, deve ser uma das premissas das regras de inferência que lidam com raciocínio modal. Aprendendo esta cláusula, nossa hipótese é que a aplicação dessas regras será possível sem que o KSP dependa da saturação do conjunto de cláusulas proposicionais. A combinação implementada foi testada com três grandes bancos de problemas clás- sicos, LWB [11], MQBF [43, 53] e 3CNF [53], em um Ubuntu 18.04 com um processador Intel i7 e 16 GB de memória. Assim como o KSP sozinho, nossa combinação não conseguiu resolver nenhuma instância dos problemas pertecentes ao 3CNF no limite de tempo de 20 minutos. Para os demais bancos, o limite de tempo dado foi de 100 segundos. Os resul- tados experimentais de nossa implementação executando com os bancos MQBF e LWB não apresentaram, em geral, um ganho em tempo de execução, provavelmente devido à sobrecarga que inserimos com a chamada ao MiniSat. vii Entretanto, nossa implementação foi capaz de avançar o KSP na resolução de entradas insatisfatíveis de uma das famílias mais difíceis do banco LWB. Essa família corresponde ao princípio da casa dos pombos estabelecido como fórmulas em Kn. Essas fórmulas são projetadas com um grande número de símbolos proposicionais distribuídos em um máximo de dois níveis modais, o que representa exatamente o cenário para o qual desejávamos me- lhorar a eficiência do KSP. O provador sozinho é capaz de resolver cinco instâncias dessa família, enquanto nossa combinação conseguiu resolver até a nona entrada. Outros pro- vadores na literatura também apresentam grande dificuldade em resolver instâncias dessa família [61]. Além disso, a execução do KSP combinado com o MiniSat para essas entra- das em particular mostrou que o uso do MiniSat permitiu uma diminuição significativa no número de inferências necessárias para que o KSP encontrasse uma prova. Isso é re- levante quando consideramos uso de memória como parâmetro de eficiência. Este último resultado indica que nossa combinação teve um impacto positivo na execução do KSP. Acreditamos que um refinamento nas mudanças implementadas no provador, buscando um meio termo entre a sobrecarga da chamada ao MiniSat e minimizar o número de inferências feitas, poderia levar a resultados ainda melhores.Conselho Nacional de Desenvolvimento Científico e Tecnológico (CAPES).Modal logics have been widely studied in Computer Science for allowing the character- isation of complex systems that express notions in terms of knowledge, belief etc. In this work, we focus on the theorem prover for the basic multimodal language Kn: KSP, which implements a clausal resolution method. Clauses are labelled by the modal level at which they occur, helping to restrict unnecessary applications of the resolution inference rules. KSP performs well if the set of propositional symbols are uniformly distributed over the modal levels. However, when there is a high number of variables in just one particular level, the performance deteriorates. One reason is that the specific normal form we use al- ways generates satisfiable sets of propositional clauses. As resolution relies on saturation, this can be very time consuming. Our work contributes to KSP with the implementation of an additional option to the list of available strategies. This option attempts to reduce the time KSP spends during saturation, or even to increase the rate in which inference rules that deal with modal reasoning can be applied. We modified KSP to externally call MiniSat, a popular SAT solver based on clause learning. The output from MiniSat, as well as the clauses it might learn in the proof search, gives us important information about the set of clauses at each modal level. Although the proposed combination did not improve KSP performance in average, it allowed KSP to solve more instances of the ph family than before. This is one of the hardest families of the LWB benchmark, which corresponds to the pigeonhole principle established as a formula in Kn
    corecore