Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Aleksey Nogin is active.

Publication


Featured researches published by Aleksey Nogin.


theorem proving in higher order logics | 2003

MetaPRL – A Modular Logical Environment

Jason Hickey; Aleksey Nogin; Robert L. Constable; Brian E. Aydemir; Eli Barzilay; Yegor Bryukhov; Richard Eaton; Adam Granicz; Alexei Kopylov; Christoph Kreitz; Vladimir N. Krupski; Lori Lorigo; Stephan Schmitt; Carl Witty; Xin Yu

MetaPRL is the latest system to come out of over twenty five years of research by the Cornell PRL group. While initially created at Cornell, MetaPRL is currently a collaborative project involving several universities in several countries. The MetaPRL system combines the properties of an interactive LCF-style tactic-based proof assistant, a logical framework, a logical programming environment, and a formal methods programming toolkit. MetaPRL is distributed under an open-source license and can be downloaded from http://metaprl.org/. This paper provides an overview of the system focusing on the features that did not exist in the previous generations of PRL systems.


international joint conference on automated reasoning | 2001

JProver: Integrating Connection-Based Theorem Proving into Interactive Proof Assistants

Stephan Schmitt; Lori Lorigo; Christoph Kreitz; Aleksey Nogin

JProver is a first-order intuitionistic theorem prover that creates sequent-style proof objects and can serve as a proof engine in interactive proof assistants with expressive constructive logics. This paper gives a brief overview of JProvers proof technique, the generation of proof objects, and its integration into the Nuprl proof development system.


theorem proving in higher order logics | 2002

Sequent Schema for Derived Rules

Aleksey Nogin; Jason Hickey

This paper presents a general sequent schema language that can be used for specifying sequent-style rules for a logical theory. We show how by adding the sequent schema language to a theory we gain an ability to prove new inference rules within the theory itself. We show that the extension of any such theory with our sequent schema language and with any new rules found using this mechanism is conservative. By using the sequent schema language in a theorem prover, one gets an ability to allow users to derive new rules and then use such derived rules as if they were primitive axioms. The conservativity result guarantees the validity of this approach. This property makes it a convenient tool for implementing a derived rules mechanism in theorem provers, especially considering that the application of the rules expressed in the sequent schema language can be efficiently implemented using MetaPRLs fast rewriting engine.


theorem proving in higher order logics | 2002

Quotient Types: A Modular Approach

Aleksey Nogin

In this paper we introduce a new approach to axiomatizing quotient types in type theory. We suggest replacing the existing monolithic rule set by a modular set of rules for a specially chosen set of primitive operations. This modular formalization of quotient types turns out to be much easier to use and free of many limitations of the traditional monolithic formalization. To illustrate the advantages of the new approach, we show how the type of collections (that is known to be very hard to formalize using traditional quotient types) can be naturally formalized using the new primitives. We also show how modularity allows us to reuse one of the new primitives to simplify and enhance the rules for the set types.


theorem proving in higher order logics | 2000

Fast Tactic-Based Theorem Proving

Jason Hickey; Aleksey Nogin

Theorem provers for higher-order logics often use tactics to implement automated proof search. Tactics use a general-purpose metalanguage to implement both general-purpose reasoning and computationally intensive domain-specific proof procedures. The generality of tactic provers has a performance penalty; the speed of proof search lags far behind special-purpose provers. We present a new modular proving architecture that significantly increases the speed of the core logic engine. Our speedup is due to efficient data structures and modularity, which allows parts of the prover to be customized on a domain-specific basis. Our architecture is used in the MetaPRL logical framework, with speedups of more than two orders of magnitude over traditional tactic-based proof search.


computer science logic | 2001

Markov's Principle for Propositional Type Theory

Alexei Kopylov; Aleksey Nogin

In this paper we show how to extend a constructive type theory with a principle that captures the spirit of Markovs principle from constructive recursive mathematics. Markovs principle is especially useful for proving termination of specific computations. Allowing a limited form of classical reasoning we get more powerful resulting system which remains constructive and valid in the standard constructive semantics of a type theory. We also show that this principle can be formulated and used in a propositional fragment of a type theory.


international conference on functional programming | 2005

A computational approach to reflective meta-reasoning about languages with bindings

Aleksey Nogin; Alexei Kopylov; Xin Yu; Jason Hickey

We present a foundation for a computational meta-theory of languages with bindings implemented in a computer-aided formal reasoning environment. Our theory provides the ability to reason abstractly about operators, languages, open-ended languages, classes of languages, etc. The theory is based on the ideas of higher-order abstract syntax, with an appropriate induction principle parameterized over the language i.e. a set of operators) being used. In our approach, both the bound and free variables are treated uniformly and this uniform treatment extends naturally to variable-length bindings. The implementation is reflective, namely there is a natural mapping between the meta-language of the theorem-prover and the object language of our theory. The object language substitution operation is mapped to the meta-language substitution and does not need to be defined recursively. Our approach does not require designing a custom type theory; in this paper we describe the implementation of this foundational theory within a general-purpose type theory. This work is fully implemented in the MetaPRL theorem prover, using the pre-existing NuPRL-like Martin-Lof-style computational type theory. Based on this implementation, we lay out an outline for a framework for programming language experimentation and exploration as well as a general reflective reasoning framework. This paper also includes a short survey of the existing approaches to syntactic reflection.


Higher-order and Symbolic Computation \/ Lisp and Symbolic Computation | 2006

Formal compiler construction in a logical framework

Jason Hickey; Aleksey Nogin

The task of designing and implementing a compiler can be a difficult and error-prone process. In this paper, we present a new approach based on the use of higher-order abstract syntax and term rewriting in a logical framework. All program transformations, from parsing to code generation, are cleanly isolated and specified as term rewrites. This has several advantages. The correctness of the compiler depends solely on a small set of rewrite rules that are written in the language of formal mathematics. In addition, the logical framework guarantees the preservation of scoping, and it automates many frequently-occurring tasks including substitution and rewriting strategies. As we show, compiler development in a logical framework can be easier than in a general-purpose language like ML, in part because of automation, and also because the framework provides extensive support for examination, validation, and debugging of the compiler transformations. The paper is organized around a case study, using the MetaPRL logical framework to compile an ML-like language to Intel x86 assembly. We also present a scoped formalization of x86 assembly in which all registers are immutable.


international conference on functional programming | 2006

Mechanized meta-reasoning using a hybrid HOAS/de bruijn representation and reflection

Jason Hickey; Aleksey Nogin; Xin Yu; Alexei Kopylov

We investigate the development of a general-purpose framework for mechanized reasoning about the meta-theory of programming languages. In order to provide a standard, uniform account of a programming language, we propose to define it as a logic in a logical framework, using the same mechanisms for definition, reasoning, and automation that are available to other logics. Then, in order to reason about the languages meta-theory, we use reflection to inject the programming language into (usually richer and more expressive) meta-theory.One of the key features of our approach is that structure of the language is preserved when it is reflected, including variables, meta-variables, and binding structure. This allows the structure of proofs to be preserved as well, and there is a one-to-one map from proof steps in the original programming logic to proof steps in the reflected logic. The act of reflecting a language is automated; all definitions, theorems, and proofs are preserved by the transformation and all the key lemmas (such as proof and structural induction) are automatically derived.The principal representation used by the reflected logic is higher-order abstract syntax (HOAS). However, reasoning about terms in HOAS can be awkward in some cases, especially for variables. For this reason, we define a computationally equivalent variable-free de Bruijn representation that is interchangeable with the HOAS in all contexts. The de Bruijn representation inherits the properties of substitution and alpha-equality from the logical framework, and it is not complicated by administrative issues like variable renumbering.We further develop the concepts and principles of proofs, provability, and structural and proof induction. This work is fully implemented in the MetaPRL theorem prover. We illustrate with an application to F<: as defined in the POPLmark challenge.


fundamental approaches to software engineering | 2006

OMake: designing a scalable build process

Jason Hickey; Aleksey Nogin

Modern software codebases are frequently large, heterogeneous, and constantly evolving. The languages and tools for software construction, including code builds and configuration management, have not been well-studied. Developers are often faced with using 1) older tools (like make) that do not scale well, 2) custom build scripts that tend to be fragile, or 3) proprietary tools that are not portable. In this paper, we study the build issue as a domain-specific programming problem. There are a number of challenges that are unique to the domain of build systems. We argue that a central goal is compositionality—that is, it should be possible to specify a software component in isolation and add it to a project with an assurance that the global specification will not be compromised. The next important goal is to cover the full range of complexity—from allowing very concise specifications for the most common cases to providing the flexibility to encompass projects with unusual needs. Dependency analysis, which is a prerequisite for incremental builds, must be automated in order to achieve compositionality an reliability; it also spans the full range of complexity. We develop a language for describing software builds and configuration. We also develop an implementation (called OMake), that addresses all the above challenges efficiently and portably. It also provides a number of features that help streamline the edit/compile development cycle. OMake is freely available under the GNU General Public License, and is actively being used in several large projects.

Collaboration


Dive into the Aleksey Nogin's collaboration.

Top Co-Authors

Avatar

Jason Hickey

California Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Xin Yu

California Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Adam Granicz

California Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Brian E. Aydemir

California Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Yegor Bryukhov

City University of New York

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge