12 views

Uploaded by Berthin Torres

- Pythagorean Proof Project
- Risa Verification
- Predicate Calculus
- Advanced Higher Notes
- The Part-Time Parliament (Original Paxos) - 1998
- proofs.pdf
- First Order Logic
- PracticalProblemSolving.pdf
- Discrete Mathematics ch1
- Computer Software Science Mathematics
- _M&S_02_Introduction.pdf
- Exercise 1
- Chap3_4
- arti int
- w12
- Understanding Assignments
- finalreflection
- textbook 2 6
- Cmp Cache Architectures - A Survey
- QIzvNuXp

You are on page 1of 45

Index

Introduction

What is KIV Application areas History: former and current projects

KIV system

KIV features Using KIV Proof Support

An example

Java Smart Card

tool for formal system development used to

construct formal models design and to verify high assurance systems

used in

industrial pilot applications in formal methods courses as an educational tool

software failures can

cause significant economic loss endanger human life or environmental damage

describing the structure of the system in a formal specification finding the properties of the system symplifing the whole software

specification and verification of software systems development of safety critical systems, from formal requirements specifications to executable code semantical foundations of programming language, from a specification of the semantics to a verified compiler other areas, like mathematics

KIV History

KIV started in 1986 at the University of Karlsruhe

first project sponsored by the DFG (German Research Foundation) focus on tactical theorem proving PPL, the basic framework of the KIV system, was developed

KIV History

work continued in 1992 with two projects:

KORSO, sponsored by the BMFT (German ministry of research)

theory of modular, sequential software systems was developed and implemented strategy for the reuse of proofs

VSE (Verification Support Environment), (Verification Environment), sponsored by the BSI (German Security Agency)

a case tool and an automatic theorem prover were integrated with the KIV system

KIV History:

Current Projects

functional Verification of JavaCard Applets

the study investigates costs, benefits, requirements to formally verify Java Card programs

VSE-II VSE extension of the application domain of the VSE to distributed, reactive systems improvements to the productivity and ergonomics of the VSE system for its use in industrial projects

KIV History

Current Projects

FORMOSA (Integrating FORmal MOdels and Safety Analysis)

method for the systematic development of formal models for high assurance systems

generic formal security model for multiplicative smartcards

formally verifying the correctness of medical treatment protocols

KIV Features

different specification and implementation techniques, usying a Higher-Order variant of HigherDynamic Logic powerful proof support

automation, heuristics, simplification

a large library of standard data types ergonomical graphical user interface documentation facilities for all levels of development

PPL

the meta-language of the KIV system is PPL meta typed functional language in the style of ML

the root is the assertion to be proved the leaves are closed if they correspond to some axiom, or open if the proof is partial each step in a proof tree corresponds to a rule application

Using KIV

specification components implementation modules their dependencies

Start Project 1 Spec 1 Module m Proof 1 Proof n Project k

KIV DaVinci

Specification/Module

Specification/Module Strategy

Specification

structured algebraic specifications signature axioms principles of induction to create a new specification choose its type type its text install it (its syntactical correctness is automatically checked) work on it when all theorems are proved, it can be set in the Proved State

Implementation modules

used to implement one abstract data type, i.e. a specification, on the basis of another consist of

an export interface: the specification to interface: implement an export interface: the specification of the used interface: data type a mapping that defines the corrispondance between the export interface, the import one and the module implementation the implementation: procedure declarations that implementation: implement the export operations

Implementation modules

each one has some files

module: text for the module module: sequents: to enter or modify theorems sequents: module-specific: pattern of the heuristics module-specific: formulas: to enter complex formula for rules formulas: proofs: theorem base and all proofs proofs: doc: documentation automatically generated doc:

Dependencies

dependencies between specification and module form a directed acyclic graph represented with DaVinci development graphs

KIV walkthrough

example: implementing ordered sets by ordered example: lists

sets are generated by the empty set and insert which adds an element to a set specification: orderset specification: module: ordeset-module module: ordeset-

what to do?

write the import and export specification proof the specification until it is set in the proved state write the implementation module proof the module

Project selection

Work on specification

Work on implementation

Proof Support

the heart of KIV is a tactical theorem prover construction of proofs is done by

applying tactics, selectioned by heuristics reducing goals to subgoals

select tactics or heuristics backtracking (If the choice proves incorrect, computation backtracks or restarts at the point of choice and tries another choice) pruning the proof tree introducing lemmas

two kinds of rules

basic rules user-defined rules user-

rules may be schematic, in that their sequents may contain meta-variables for all metasyntactical categories

S1 S2 S Sn

Proof Support:

Proof tactics

proofs are supported by an advanced interactive deduction component based on proof tactics

simplification lemma application induction for first-order reasoning first first order induction systems do not typically allow quantification over predicates. But, unlike first order systems, all objects are assumed to be finite.

a static analysis technique in which program execution is simulated using symbols, such as variable names, rather than actual values for input data, and program outputs are expressed as logical or mathematical expressions involving these symbols

Proof Support:

Heuristics

rules that reduces or limits the search for solutions in domains that are difficult. Unlike algorithms, difficult. heuristics do not guarantee optimal solutions to automate proofs (for both specifications and modules) KIV offers a number of heuristics

induction simplification ...

heuristics can be chosen freely and changed any time during the proof heuristics manage to find 80 - 100 % of the required proof steps automatically

Proof Support:

Simplifier

a complete proof for means to simplify in the formula true simplifier rules describe what simplification step should be done KIV handles thousands of rules, using some extensions like forward reasoning

given an implication of the form: If conditions then conclusion and a collection of statements that match the conditions, forward reasoning derives the conclusion as a logical consequence of the conditions

Proof Support:

Proof engineering facilities

the problem in engineering high assurance systems is to interpret failed proof

errors in specifications, programs, lemmas etc

the user is assisted in the decision whether the goal to prove is not correct, proof decisions were incorrect, or there is a flaw in the specification

Proof Support:

Proof reuse

both successful and failed proof attempts are reused automatically to guide the verification after corrections or modifications 90% of a failed proof attempt can be 90% recycled for the verification after correction

Proof Support:

Correctness management

changes to or deletions of specifications, modules, and theorems do not lead to inconsistencies proofs can be done in any order only the minimal number of proofs are invalidated after modifications there are no cycles in the proof hierarchy all used lemmas are been proved

Java Cards are

open portable component of distributed systems GSM computer (in cellular phones)

but

limited resources few innovative application realised

The project

objective: improving the security of objective: application JSC for internet based usage formal design metodology for multi

abstract and modular specification for innovative applications formalization and proof of security objectives implementation and verification of JavaCard applet NOT physical tampering and cryptographic algorithms

An Application

application

purchase and transfer of a railroad ticket via mobile phone SmartCard contains

ticket ticketing applet (Railroad Company) digital signature capability (Trust Center)

An Application

Security objectives

customer

ticket genuine, anonymous, trasferible loading a ticket modifies no other data on the card purchase and restitution are provable

railroad company

no forgery and copying possible no multiple usage offline ticket inspection no repudiation of expense claim

Security mechanisms

modular combination of protocol and cryptographic methods authentication with PIN public key cryptography for tamper-proof tampersignature nonrepudation through time stamps and trust center uniqueness with session keys

Formal methods

is this a correct implementation of the protocol?

formal specification of use cases and protocols formalization of security objectives proof of security

Formal methods

verification of JC programs

correctness of command encoding correctness of data encoding bounded resources time conditions

advantage

correctness no gaps

Formal methods

the semantic chosen is the natural one, defined relatively to an algebraic specification

the full semantics of the language constructs is described in 123 rules

every one describes exactly one case that may occur during evaluation

proof rules are specified and implemented in KIV and their corretness has been proved currently KIV is the only prover usable for a Java Card calculus

References

KIV at Karlsruhe

http://i11www.ira.uka.de/~kiv/KIVhttp://i11www.ira.uka.de/~kiv/KIV-KA.html

KIV at Augsburg

http://www.informatik.unihttp://www.informatik.uniaugsburg.de/swt/fmg/

KIV at Saarbrcken

http://www.dfki.unihttp://www.dfki.unisb.de/vse/projects/kiv.html

it has more expressive power then firstfirstorder logic extends first-order logic with function that firsthave functions as argument and results function variables lambda expression x.e that denote x. anonymous function

Dynamic Logic

extends predicate logic with two modal operators

[.] box [E] statement E terminates and afterwards holds <.> diamond <E> if statement E terminates then afterwards holds

allows the expression of properties of programs like partial and total correctness, program equivalence etc example:

card.balance =1 |--- <card.change(17);>card.balance = 18

specification

implementation module

each node

corresponds to a specification component or a implementation module has a theorem base attached, containing

axioms automatically generated proof theorems added by the user

and managing proofs and their dependencies the colors show the status: planed, worked on, status: proved

Sequents

let 1,, n, 1, m DL( ,X) (DL=Dynamic Logic) be two lists of formulas with n,m>=0 1,, n |--- 1, m |--is called sequent It is a simple way to present 1 n 1 m

Simplification

simplifier rules are sequents whose syntactical form describes what simplification step should be done, i.e.

Formula substitution step: a formula is substituted with a simpler one

|--( ) is the formula to be simplified and simplification the result of the

|--= is the term to be simplified and the result of the simplification

- Pythagorean Proof ProjectUploaded byNicholas Yates
- Risa VerificationUploaded bybobmarley20161934
- Predicate CalculusUploaded bySadeep Madhushan
- Advanced Higher NotesUploaded byWilliam Thomas-Walters
- The Part-Time Parliament (Original Paxos) - 1998Uploaded by.xml
- proofs.pdfUploaded byYXZ300
- First Order LogicUploaded bybunty da
- PracticalProblemSolving.pdfUploaded byFouad Tachi
- Discrete Mathematics ch1Uploaded byMohammad Gulam Ahamad
- Computer Software Science MathematicsUploaded byOscar Fernando Chevarria Meza
- _M&S_02_Introduction.pdfUploaded byLakim Arsenal
- Exercise 1Uploaded byDilan Srilal
- Chap3_4Uploaded byMalay Bhatt
- arti intUploaded byVishnu Vikash
- w12Uploaded byFred_Mayweather
- Understanding AssignmentsUploaded byShim Kouei
- finalreflectionUploaded byapi-285095897
- textbook 2 6Uploaded byapi-293865618
- Cmp Cache Architectures - A SurveyUploaded byInternational Journal of Research in Engineering and Technology
- QIzvNuXpUploaded byAbraxas Luchenko
- SSRN-id2172414Uploaded byLucas Piroulus
- Logic1Uploaded byanupsoren
- 1Uploaded byfabais
- ch01Uploaded byavi8989
- Intelligibility and Proof in DescartesUploaded byManuel Romero
- Week 0708 Kleenes TheoremUploaded bysarah farooqi
- lesson 9Uploaded byapi-256184539
- lesson 10Uploaded byapi-256184539
- c10_logic.pptUploaded byAyano Midakso
- Tabulation Proof Procedures for Fuzzy Linguistic Logic Programming 2015 International Journal of Approximate ReasoningUploaded byulya khairani

- RISC & CISCUploaded byBerthin Torres
- UntitledUploaded byBerthin Torres
- Vargas 1994106Uploaded byBerthin Torres
- opencv_cheatsheetUploaded byJohn Anthony Jose
- Abnormal Crowd Behavior Detection Using Social Force ModelUploaded byBerthin Torres
- Features face recognitionUploaded byBerthin Torres
- Supplement Knight TourUploaded byBerthin Torres
- The Science of Computing: Curl BurchUploaded byBerthin Torres
- tetbfm:978-1-4615-3650-5_1Uploaded byBerthin Torres
- p347Uploaded byBerthin Torres

- T4240 Product BriefUploaded bysenoghte
- 01 CS107 Course InformationUploaded bymilan_aryal
- Data SheetUploaded byMuhammad Miftah Faris
- Chaptor 06Uploaded byKaustav Das
- CortexM1-Processor_Tutorial_UG.pdfUploaded byHuy Hoang
- WalletUploaded byPhani Kumar
- FAQ FOR DIGITAL SIGNATURE CERTIFICATEUploaded byMehul Patel
- Think Python_ How to Think Like a Computer ScientistUploaded byyeeleong
- Mathematics of Rsa CryptosystemUploaded bynkapre
- Question Answering System Using Ontology in Marathi LanguageUploaded byAdam Hansen
- E-SSO 803 SSOWatchAdminGuideUploaded bywolalo
- Sg Certified Platform Developer i iUploaded byproteus555
- eSLZ000_EMFeSL_XC_Board_Handbook_v01Uploaded bythorsharp
- Bedhboperation r41 FrUploaded byBen Aissa Chokri
- ecc03paarUploaded byRaul Cuenos
- Master Template 13 Release NotesUploaded byKimmie Iiyambo Vidic
- Sq l Notes for ProfessionalsUploaded byytee
- DataPath DesignUploaded byOliver Barrina Jaguines
- Memory Segmentation of 8086Uploaded byAshraf Hossain
- Lister - HW2Uploaded byJacqueline Jensen
- R MOD 08-ESXi Host Installation and Integration for BlockUploaded bySrinivas Kumar
- Securing User Data in Local Connectivity using Multicast Key AgreementUploaded byEditor IJRITCC
- zebra_zpl_languageUploaded byChantelle Grundling
- Inkscape Seamless PatternsUploaded byblissbee
- 7 Steps to Create OOPS ALVUploaded byKishore Reddy
- comp422-2010-Lecture6-PthreadsUploaded byKunal Kaul
- Michael P. Papazoglou - Web Services Principles and TechnologyUploaded byPanosKarampis
- RL78-Instruction Set ManualUploaded byOctavian Birsan
- User Story MappingUploaded byVeronica Vera
- SSIS Log Analyzer HelpUploaded bysunildangerous