-
Sierpinski object for affine systems
Authors:
Jeffrey T. Denniston,
Austin Melton,
Stephen E. Rodabaugh,
Sergey A. Solovyov
Abstract:
Motivated by the concept of Sierpinski object for topological systems of S.~Vickers, presented recently by R.~Noor and A.~K.~Srivastava, this paper introduces the Sierpinski object for many-valued topological systems and shows that it has three important properties of the crisp Sierpinski space of general topology.
Motivated by the concept of Sierpinski object for topological systems of S.~Vickers, presented recently by R.~Noor and A.~K.~Srivastava, this paper introduces the Sierpinski object for many-valued topological systems and shows that it has three important properties of the crisp Sierpinski space of general topology.
△ Less
Submitted 16 September, 2018;
originally announced September 2018.
-
Topological systems as a framework for institutions
Authors:
Jeffrey T. Denniston,
Austin Melton,
Stephen E. Rodabaugh,
Sergey A. Solovyov
Abstract:
Recently, J.~T.~Denniston, A.~Melton, and S.~E.~Rodabaugh introduced a lattice-valued analogue of the concept of institution of J.~A.~Goguen and R.~M.~Burstall, comparing it, moreover, with the (lattice-valued version of the) notion of topological system of S.~Vickers. In this paper, we show that a suitable generalization of topological systems provides a convenient framework for doing certain kin…
▽ More
Recently, J.~T.~Denniston, A.~Melton, and S.~E.~Rodabaugh introduced a lattice-valued analogue of the concept of institution of J.~A.~Goguen and R.~M.~Burstall, comparing it, moreover, with the (lattice-valued version of the) notion of topological system of S.~Vickers. In this paper, we show that a suitable generalization of topological systems provides a convenient framework for doing certain kinds of (lattice-valued) institutions.
△ Less
Submitted 16 September, 2018;
originally announced September 2018.
-
Transition Watchpoints: Teaching Old Debuggers New Tricks
Authors:
Kapil Arya,
Tyler Denniston,
Ariel Rabkin,
Gene Cooperman
Abstract:
Reversible debuggers and process replay have been developed at least since 1970. This vision enables one to execute backwards in time under a debugger. Two important problems in practice are that, first, current reversible debuggers are slow when reversing over long time periods, and, second, after building one reversible debugger, it is difficult to transfer that achievement to a new programming…
▽ More
Reversible debuggers and process replay have been developed at least since 1970. This vision enables one to execute backwards in time under a debugger. Two important problems in practice are that, first, current reversible debuggers are slow when reversing over long time periods, and, second, after building one reversible debugger, it is difficult to transfer that achievement to a new programming environment. The user observes a bug when arriving at an error. Searching backwards for the corresponding fault may require many reverse steps. Ultimately, the user prefers to write an expression that will transition to false upon arriving at the fault. The solution is an expression-transition watchpoint facility based on top of snapshots and record/replay. Expression-transition watch- points are implemented as binary search through the timeline of a program execution, while using the snapshots as landmarks within that timeline. This allows for debugging of subtle bugs that appear only after minutes or more of program execution. When a bug occurs within seconds of program startup, repeated debugging sessions suffice. Reversible debugging is preferred for bugs seen only after minutes. This architecture allows for an efficient and easy-to-write snapshot-based reversibe debugger on top of a conventional debugger. The validity of this approach was tested by developing four personalities (for GDB, MATLAB, Perl, and Python), with each personality typically requiring just 100 lines of code.
△ Less
Submitted 31 March, 2017;
originally announced March 2017.
-
Formal Contexts, Formal Concept Analysis, and Galois Connections
Authors:
Jeffrey T. Denniston,
Austin Melton,
Stephen E. Rodabaugh
Abstract:
Formal concept analysis (FCA) is built on a special type of Galois connections called polarities. We present new results in formal concept analysis and in Galois connections by presenting new Galois connection results and then applying these to formal concept analysis. We also approach FCA from the perspective of collections of formal contexts. Usually, when doing FCA, a formal context is fixed.…
▽ More
Formal concept analysis (FCA) is built on a special type of Galois connections called polarities. We present new results in formal concept analysis and in Galois connections by presenting new Galois connection results and then applying these to formal concept analysis. We also approach FCA from the perspective of collections of formal contexts. Usually, when doing FCA, a formal context is fixed. We are interested in comparing formal contexts and asking what criteria should be used when determining when one formal context is better than another formal context. Interestingly, we address this issue by studying sets of polarities.
△ Less
Submitted 19 September, 2013;
originally announced September 2013.
-
FReD: Automated Debugging via Binary Search through a Process Lifetime
Authors:
Kapil Arya,
Tyler Denniston,
Ana-Maria Visan,
Gene Cooperman
Abstract:
Reversible debuggers have been developed at least since 1970. Such a feature is useful when the cause of a bug is close in time to the bug manifestation. When the cause is far back in time, one resorts to setting appropriate breakpoints in the debugger and beginning a new debugging session. For these cases when the cause of a bug is far in time from its manifestation, bug diagnosis requires a seri…
▽ More
Reversible debuggers have been developed at least since 1970. Such a feature is useful when the cause of a bug is close in time to the bug manifestation. When the cause is far back in time, one resorts to setting appropriate breakpoints in the debugger and beginning a new debugging session. For these cases when the cause of a bug is far in time from its manifestation, bug diagnosis requires a series of debugging sessions with which to narrow down the cause of the bug.
For such "difficult" bugs, this work presents an automated tool to search through the process lifetime and locate the cause. As an example, the bug could be related to a program invariant failing. A binary search through the process lifetime suffices, since the invariant expression is true at the beginning of the program execution, and false when the bug is encountered. An algorithm for such a binary search is presented within the FReD (Fast Reversible Debugger) software. It is based on the ability to checkpoint, restart and deterministically replay the multiple processes of a debugging session. It is based on GDB (a debugger), DMTCP (for checkpoint-restart), and a custom deterministic record-replay plugin for DMTCP.
FReD supports complex, real-world multithreaded programs, such as MySQL and Firefox. Further, the binary search is robust. It operates on multi-threaded programs, and takes advantage of multi-core architectures during replay.
△ Less
Submitted 20 December, 2012;
originally announced December 2012.
-
Temporal Debugging using URDB
Authors:
Ana Maria Visan,
Artem Polyakov,
Praveen S. Solanki,
Kapil Arya,
Tyler Denniston,
Gene Cooperman
Abstract:
A new style of temporal debugging is proposed. The new URDB debugger can employ such techniques as temporal search for finding an underlying fault that is causing a bug. This improves on the standard iterative debugging style, which iteratively re-executes a program under debugger control in the search for the underlying fault. URDB acts as a meta-debugger, with current support for four widely u…
▽ More
A new style of temporal debugging is proposed. The new URDB debugger can employ such techniques as temporal search for finding an underlying fault that is causing a bug. This improves on the standard iterative debugging style, which iteratively re-executes a program under debugger control in the search for the underlying fault. URDB acts as a meta-debugger, with current support for four widely used debuggers: gdb, MATLAB, python, and perl. Support for a new debugger can be added in a few hours. Among its points of novelty are: (i) the first reversible debuggers for MATLAB, python, and perl; (ii) support for today's multi-core architectures; (iii) reversible debugging of multi-process and distributed computations; and (iv) temporal search on changes in program expressions. URDB gains its reversibility and temporal abilities through the fast checkpoint-restart capability of DMTCP (Distributed MultiThreaded CheckPointing). The recently enhanced DMTCP also adds ptrace support, enabling one to freeze, migrate, and replicate debugging sessions.
△ Less
Submitted 27 October, 2009;
originally announced October 2009.