4,464 research outputs found
Lucid : a formal system for writing and proving programs
Lucid is both a programming language and a formal system for proving properties of Lucid programs. The programming language is unconventional in many ways, although programs are readily understood as using assignment statements and loops in a 'structured' fashion. Semantically, an assignment statement is really an equation between 'histories', and a whole program is simply an unordered set of such equations.
From these equations, properties of the program can be derived by straightforward mathematical reasoning, using the Lucid formal system. The rules of this system are mainly those of first order logic, together with extra axioms and rules for the special Lucid functions.
This paper formally describes the syntax and semantics of programs and justifies the axioms and rules of the formal system
Reasoning About a Simulated Printer Case Investigation with Forensic Lucid
In this work we model the ACME (a fictitious company name) "printer case
incident" and make its specification in Forensic Lucid, a Lucid- and
intensional-logic-based programming language for cyberforensic analysis and
event reconstruction specification. The printer case involves a dispute between
two parties that was previously solved using the finite-state automata (FSA)
approach, and is now re-done in a more usable way in Forensic Lucid. Our
simulation is based on the said case modeling by encoding concepts like
evidence and the related witness accounts as an evidential statement context in
a Forensic Lucid program, which is an input to the transition function that
models the possible deductions in the case. We then invoke the transition
function (actually its reverse) with the evidential statement context to see if
the evidence we encoded agrees with one's claims and then attempt to
reconstruct the sequence of events that may explain the claim or disprove it.Comment: 18 pages, 3 figures, 7 listings, TOC, index; this article closely
relates to arXiv:0906.0049 and arXiv:0904.3789 but to remain stand-alone
repeats some of the background and introductory content; abstract presented
at HSC'09 and the full updated paper at ICDF2C'11. This is an updated/edited
version after ICDF2C proceedings with more references and correction
Formally Specifying and Proving Operational Aspects of Forensic Lucid in Isabelle
A Forensic Lucid intensional programming language has been proposed for
intensional cyberforensic analysis. In large part, the language is based on
various predecessor and codecessor Lucid dialects bound by the higher-order
intensional logic (HOIL) that is behind them. This work formally specifies the
operational aspects of the Forensic Lucid language and compiles a theory of its
constructs using Isabelle, a proof assistant system.Comment: 23 pages, 3 listings, 3 figures, 1 table, 1 Appendix with theorems,
pp. 76--98. TPHOLs 2008 Emerging Trends Proceedings, August 18-21, Montreal,
Canada. Editors: Otmane Ait Mohamed and Cesar Munoz and Sofiene Tahar. The
individual paper's PDF is at
http://users.encs.concordia.ca/~tphols08/TPHOLs2008/ET/76-98.pd
A strategy for automatically generating programs in the lucid programming language
A strategy for automatically generating and verifying simple computer programs is described. The programs are specified by a precondition and a postcondition in predicate calculus. The programs generated are in the Lucid programming language, a high-level, data-flow language known for its attractive mathematical properties and ease of program verification. The Lucid programming is described, and the automatic program generation strategy is described and applied to several example problems
Using the General Intensional Programming System (GIPSY) for Evaluation of Higher-Order Intensional Logic (HOIL) Expressions
The General Intensional Programming System (GIPSY) has been built around the
Lucid family of intensional programming languages that rely on the higher-order
intensional logic (HOIL) to provide context-oriented multidimensional reasoning
of intensional expressions. HOIL combines functional programming with various
intensional logics to allow explicit context expressions to be evaluated as
first-class values that can be passed as parameters to functions and return as
results with an appropriate set of operators defined on contexts. GIPSY's
frameworks are implemented in Java as a collection of replaceable components
for the compilers of various Lucid dialects and the demand-driven eductive
evaluation engine that can run distributively. GIPSY provides support for
hybrid programming models that couple intensional and imperative languages for
a variety of needs. Explicit context expressions limit the scope of evaluation
of math expressions (effectively a Lucid program is a mathematics or physics
expression constrained by the context) in tensor physics, regular math in
multiple dimensions, etc., and for cyberforensic reasoning as one of the
use-cases of interest. Thus, GIPSY is a support testbed for HOIL-based
languages some of which enable such reasoning, as in formal cyberforensic case
analysis with event reconstruction. In this paper we discuss the GIPSY
architecture, its evaluation engine and example use-cases.Comment: 14 pages; 8 figure
- …