Patents by Inventor Leonardo M. de Moura

Leonardo M. de Moura has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8595707
    Abstract: A system is described for processing predicates in the course of analyzing a program, based on a general-purpose theory of pointers. The system converts location expressions in the predicates into logical formulae that are interpretable by a theorem prover module, producing converted predicates. This conversion associates the location expressions with location objects. More specifically, the conversion represents variables as explicitly-specified location objects, and location terms (such as a field-type access terms and dereference-type terms) as constructor-specified location objects. The theory of pointers is also expressed by a set of axioms which constrain the operation of the theorem prover module.
    Type: Grant
    Filed: December 30, 2009
    Date of Patent: November 26, 2013
    Assignee: Microsoft Corporation
    Inventors: Eleonora O. Bounimova, Vladimir A. Levin, Leonardo M. de Moura, Thomas J. Ball
  • Patent number: 8103674
    Abstract: Embodiments are introduced which provide for creation of an E-matching code tree index which works on E-graphs to make E-matching more efficient. Use of the E-matching code tree allows performing matching of several patterns simultaneously. Embodiments are also described which provide for the generation of inverted path indexes. An inverted path index may be used to filter an E-graph to determine terms which may potentially match patterns when an E-graph is updated.
    Type: Grant
    Filed: December 21, 2007
    Date of Patent: January 24, 2012
    Assignee: Microsoft Corporation
    Inventors: Leonardo M. de Moura, Nikolaj S. Bjorner
  • Publication number: 20110161937
    Abstract: A system is described for processing predicates in the course of analyzing a program, based on a general-purpose theory of pointers. The system converts location expressions in the predicates into logical formulae that are interpretable by a theorem prover module, producing converted predicates. This conversion associates the location expressions with location objects. More specifically, the conversion represents variables as explicitly-specified location objects, and location terms (such as a field-type access terms and dereference-type terms) as constructor-specified location objects. The theory of pointers is also expressed by a set of axioms which constrain the operation of the theorem prover module.
    Type: Application
    Filed: December 30, 2009
    Publication date: June 30, 2011
    Applicant: Microsoft Corporation
    Inventors: Eleonora O. Bounimova, Vladimir A. Levin, Leonardo M. de Moura, Thomas J. Ball
  • Patent number: 7925476
    Abstract: A method is described for combining models of a plurality of theory solvers in order to produce a model which may be satisfiable by each of the plurality of theory solvers. A model is accessed for a first theory solver which is satisfiable in the first theory solver. It is determined that one or more equalities are implied by the model and it is determined if the equalities are compatible with a second solver. The model is updated in accordance any equalities determined not to be compatible with the second solver. A method is also described for mutation of models using freedom intervals. A freedom interval is determined for a variable within a model and the model is updates by choosing a value for the variable which lies within the freedom interval.
    Type: Grant
    Filed: January 24, 2008
    Date of Patent: April 12, 2011
    Assignee: Microsoft Corporation
    Inventors: Leonardo M. de Moura, Nikolaj S. Bjorner
  • Publication number: 20090192767
    Abstract: A method is described for combining models of a plurality of theory solvers in order to produce a model which may be satisfiable by each of the plurality of theory solvers. A model is accessed for a first theory solver which is satisfiable in the first theory solver. It is determined that one or more equalities are implied by the model and it is determined if the equalities are compatible with a second solver. The model is updated in accordance any equalities determined not to be compatible with the second solver. A method is also described for mutation of models using freedom intervals. A freedom interval is determined for a variable within a model and the model is updates by choosing a value for the variable which lies within the freedom interval.
    Type: Application
    Filed: January 24, 2008
    Publication date: July 30, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Leonardo M. de Moura, Nikolaj S. Bjorner
  • Publication number: 20090164501
    Abstract: Embodiments are introduced which provide for creation of an E-matching code tree index which works on E-graphs to make E-matching more efficient. Use of the E-matching code tree allows performing matching of several patterns simultaneously. Embodiments are also described which provide for the generation of inverted path indexes. An inverted path index may be used to filter an E-graph to determine terms which may potentially match patterns when an E-graph is updated.
    Type: Application
    Filed: December 21, 2007
    Publication date: June 25, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Leonardo M. de Moura, Nikolaj S. Bjorner