@unpublished{176526715326300,
author = {Andrei Lapets and David House},
title = {{Efficient Support for Common Relations in Lightweight Formal Reasoning Systems}},
note = {
Report describing an efficient data structure for supporting common relations in an application capable of assisting and verifying formal arguments.
},
institution = {CS Dept., Boston University},
month = {{November}},
year = {2009},
abstract = {
In work that involves mathematical rigor, there are numerous benefits to adopting a representation of models and arguments that can be supplied to a formal reasoning or verification system: reusability, automatic evaluation of examples, and verification of consistency and correctness. However, accessibility has not been a priority in the design of formal verification tools that can provide these benefits. In earlier work \cite{BUCS-TR-2009-015}, we attempt to address this broad problem by proposing several specific design criteria organized around the notion of a \emph{natural context}: the sphere of awareness a working human user maintains of the relevant constructs, arguments, experiences, and background materials necessary to accomplish the task at hand. This work expands one aspect of the earlier work by considering more extensively an essential capability for any formal reasoning system whose design is oriented around simulating the natural context: native support for a collection of mathematical relations that deal with common constructs in arithmetic and set theory. We provide a formal definition for a context of relations that can be used to both validate and assist formal reasoning activities. We provide a proof that any algorithm that implements this formal structure faithfully will necessary converge. Finally, we present and prove the efficiency of an implementation of this formal structure that leverages modular implementations of well-known data structures: balanced search trees and transitive closures of hypergraphs.
}
}
@unpublished{826526515526306,
author = {Andrei Lapets},
title = {{Lightweight Formal Verification in Classroom Instruction of Reasoning about Functional Code}},
institution = {CS Dept., Boston University},
month = {{November}},
year = {2009},
abstract = {
In college courses dealing with material that requires mathematical rigor, there are numerous benefits to adopting a machine-readable representation for formal arguments: students can focus on a consistent and specific collection of constructs, examples and counterexamples can be evaluated, and assignments can be assembled and checked with the help of automated system for assistance and verification of formal reasoning. However, the usability and accessibility of such machine-readable representations (and the corresponding systems) has not been a priority in the design of formal verification tools that can provide these benefits. In related work \cite{BUCS-TR-2009-015}, we attempt to address this broad problem by proposing several specific design criteria organized around the notion of a \emph{natural context}: the sphere of awareness a working human user maintains of the relevant constructs, arguments, experiences, and background materials necessary to accomplish the task at hand. We evaluate our proposed design criteria by deploying within the classroom a formal lightweight verification system designed according to our criteria. We present all of the formal reasoning examples and assignments considered during this deployment, most of which are drawn directly from an introductory text on functional programming. We demonstrate how the design of the system improves the effectiveness and understandability of the examples, and how it aids in the instruction of formal basic formal reasoning techniques. We make brief remarks about the practical and administrative implications of the system's design from the perspectives of the student, the instructor, and the grader.
}
}
@techreport{BUCS-TR-2009-030,
author = {Andrei Lapets and Assaf Kfoury},
title = {{Verification with Natural Contexts: Soundness of Safe Compositional Network Sketches}},
institution = {CS Dept., Boston University},
number = {BUCS-TR-2009-030},
month = {{October 1}},
year = {2009},
url = {http://www.cs.bu.edu/techreports/2009-030-verified-netsketch-soundness.ps.Z},
abstract = {
In research areas involving mathematical rigor, there are numerous benefits to adopting a formal representation of models and arguments: reusability, automatic evaluation of examples, and verification of consistency and correctness. However, accessibility has not been a priority in the design of formal verification tools that can provide these benefits. In earlier work \cite{BUCS-TR-2009-015}, we attempt to address this broad problem by proposing several specific design criteria organized around the notion of a \emph{natural context}: the sphere of awareness a working human user maintains of the relevant constructs, arguments, experiences, and background materials necessary to accomplish the task at hand. We evaluate our proposed design criteria by utilizing within the context of novel research a formal reasoning system that is designed according to these criteria. In particular, we consider how the design and capabilities of the formal reasoning system that we employ influence, aid, or hinder our ability to accomplish a formal reasoning task -- the assembly of a machine-verifiable proof pertaining to the NetSketch formalism.

NetSketch is a tool for the specification of constrained-flow applications and the certification of desirable safety properties imposed thereon. NetSketch is conceived to assist system integrators in two types of activities: modeling and design. It provides capabilities for compositional analysis based on a strongly-typed Domain-Specific Language (DSL) for describing and reasoning about constrained-flow networks and invariants that need to be enforced thereupon. In a companion paper \cite{BUCS-TR-2009-028}, we overview NetSketch, highlight its salient features, and illustrate how it could be used in actual applications. In this paper, we define using a machine-readable syntax major parts of the formal system underlying the operation of NetSketch, along with its semantics and a corresponding notion of validity. We then provide a proof of soundness for the formalism that can be partially verified using a lightweight formal reasoning system that simulates natural contexts. A traditional version of these definitions and arguments can be found in a related paper \cite{BUCS-TR-2009-029}.
}
}
@techreport{BUCS-TR-2009-029,
author = {Azer Bestavros and Assaf Kfoury and Andrei Lapets and Michael Ocean},
title = {{Safe Compositional Network Sketches: The Formal Framework}},
institution = {CS Dept., Boston University},
number = {BUCS-TR-2009-029},
month = {{October 1}},
year = {2009},
url = {http://www.cs.bu.edu/techreports/2009-029-netsketch-formalism.ps.Z},
abstract = {
NetSketch is a tool for the specification of constrained-flow applications and the certification of desirable safety properties imposed thereon. NetSketch is conceived to assist system integrators in two types of activities: modeling and design. As a modeling tool, it enables the abstraction of an existing system while retaining sufficient information about it to carry out future analysis of safety properties. As a design tool, NetSketch enables the exploration of alternative safe designs as well as the identification of minimal requirements for outsourced subsystems. NetSketch embodies a lightweight formal verification philosophy, whereby the power (but not the heavy machinery) of a rigorous formalism is made accessible to users via a friendly interface. NetSketch does so by exposing tradeoffs between exactness of analysis and scalability, and by combining traditional whole-system analysis with a more flexible compositional analysis. The compositional analysis is based on a strongly-typed Domain-Specific Language (DSL) for describing and reasoning about constrained-flow networks at various levels of sketchiness along with invariants that need to be enforced thereupon. In this paper, we define the formal system underlying the operation of NetSketch, in particular the DSL behind NetSketch's user-interface when used in ``sketch mode'', and prove its soundness relative to appropriately-defined notions of validity. In a companion paper \cite{BUCS-TR-2009-028}, we overview NetSketch, highlight its salient features, and illustrate how it could be used in two applications: the management/shaping of traffic flows in a vehicular network (as a proxy for CPS applications) and in a streaming media network (as a proxy for Internet applications).
}
}
@techreport{BUCS-TR-2009-028,
author = {Azer Bestavros and Assaf Kfoury and Andrei Lapets and Michael Ocean},
title = {{Safe Compositional Network Sketches: Tool and Use Cases}},
institution = {CS Dept., Boston University},
number = {BUCS-TR-2009-028},
month = {{September 29}},
year = {2009},
url = {http://www.cs.bu.edu/techreports/2009-028-scnsTool.ps.Z},
abstract = {
"NetSketch is a tool that enables the specification of network-flow applications and the certification of desirable safety properties imposed thereon. NetSketch is conceived to assist system integrators in two types of activities: modeling and design. As a modeling tool, it enables the abstraction of an existing system while retaining sufficient information about it to enable future analysis of safety properties. As a design tool, NetSketch enables the exploration of alternative safe designs as well as the identification of minimal requirements for outsourced subsystems. NetSketch embodies a lightweight formal verification philosophy, whereby the power (but not the heavy machinery) of a rigorous formalism is made accessible to users via a friendly interface. NetSketch does so by exposing tradeoffs between exactness of analysis and scalability, and by combining traditional whole-system analysis with a more flexible compositional analysis. The compositional analysis is based on a strongly-typed Domain-Specific Language (DSL) for describing network configurations at various levels of sketchiness along with invariants that need to be enforced thereupon. In this paper, we overview NetSketch, highlight its salient features, and illustrate how it could be used in two applications: the management/shaping of traffic flows in a vehicular network (as a proxy for CPS applications) and in a streaming media network (as a proxy for Internet applications). In a companion paper, we define the formal system underlying the operation of NetSketch, in particular the DSL behind NetSketch's user-interface when used in ``sketch mode'', and prove its soundness relative to appropriately-defined notions of validity.
}
}
@techreport{BUCS-TR-2009-015,
author = {Andrei Lapets},
title = {{Improving the accessibility of lightweight formal verification systems}},
institution = {Computer Science Department, Boston University},
number = {BUCS-TR-2009-015},
month = {April},
year = {2009},
url = {http://www.cs.bu.edu/techreports/2009-015-formal-verification-accessibility.ps.Z},
abstract = {
In research areas involving mathematical rigor, there are numerous benefits to adopting a formal representation of models and arguments: reusability, automatic evaluation of examples, and verification of consistency and correctness. However, broad accessibility has not been a priority in the design of formal verification tools that can provide these benefits. We propose a few design criteria to address these issues by drawing on our own reasoning as well as that of existing work: (1) a simple, familiar, and conventional concrete syntax that is independent of any environment, application, or veri- fication strategy; (2) extensive native support for at least basic constructions and practices related to logical reasoning, arithmetic, naive set theory, algebraic manipulation, and evaluation of simple functions; and (3) a lightweight underlying structure that reduces workload and entry costs by allowing users to employ features selectively and by automatically managing multiple logical systems without requiring a user's involvement or technical knowledge.

We demonstrate the feasibility of satisfying these criteria by presenting our own formal representation and verification system. Our system's simple concrete syntax overlaps with English, LATEX and MediaWiki markup. The system's underlying verifier demonstrates our main contributions. It relies on heuristic search techniques, data structures, syntactic analyses, and normal forms to make the proof authoring process more manageable and consistent with prevailing practices. Furthermore, its underlying logic consists of a symbolic template that enables lightweight verification but can also be used to automatically manage multiple logical systems through straightforward syntactic restrictions.
}
}
@techreport{BUCS-TR-2008-026,
author = {Andrei Lapets and Alex Levin and David Parkes},
title = {{A Typed Truthful Language for One-dimensional Truthful Mechanism Design}},
institution = {Computer Science Department, Boston University},
number = {BUCS-TR-2008-026},
month = {October},
year = {2008},
url = {http://www.cs.bu.edu/techreports/2008-026-language-for-truthful-mechanism-design.ps.Z},
abstract = {
We first introduce a very simple typed language for expressing allocation algorithms that allows automatic verification that an algorithm is monotonic and therefore truthful. The analysis of truthfulness is accomplished using a syntax-directed transformation which constructs a proof of monotonicity based on an exhaustive critical-value analysis of the algorithm. We then define a more high-level, general-purpose programming language with typical constructs, such as those for defining recursive functions, along with primitives that match allocation algorithm combinators found in the work of Mu'alem and Nisan. We demonstrate how this language can be used to combine both primitive and user-defined combinators, allowing it to capture a collection of basic truthful allocation algorithms. In addition to demonstrating the value of programming language design techniques in application to a specific domain, this work suggests a blueprint for interactive tools that can be used to teach the simple principles of truthful mechanism design.
}
}