Auto Verification Conditions VCs Visualisation Tool STUDENT MADIHA

  • Slides: 23
Download presentation
Auto Verification Conditions (VCs) Visualisation Tool STUDENT: MADIHA JAMI SUPERVISOR: ANDREW IRELAND

Auto Verification Conditions (VCs) Visualisation Tool STUDENT: MADIHA JAMI SUPERVISOR: ANDREW IRELAND

WHY AUTO VCV TOOL ? Correctness, security and reliability are essential in safety critical

WHY AUTO VCV TOOL ? Correctness, security and reliability are essential in safety critical systems. Need to achieve highly reliable & dependable software systems in critical domain. Ensure software reliability using static verification of errors or formal verification. Difficult to verify system using tools available, thus application of formal methods in existing real systems is limited. VCs contain information about program’s behavior and correctness. Difficult to read, interpret & verify errors from information enclosed within VCs. Analysis of VCs can facilitate the development of high integrity software systems. Next step – Create safety critical systems, utilizing software verification tools easily.

OBJECTIVE Combine pictures and textual information to efficiently compute complex verification tasks. Facilitate formal

OBJECTIVE Combine pictures and textual information to efficiently compute complex verification tasks. Facilitate formal verification tools to support users. Aid users to comprehend and understand the information provided by VCs. Generate pictures of VCs, making them readable, understandable & comprehensible. “VISUALIZE VCs” to identify unobserved errors in either design or code. Identify errors at initial design or code by analyzing the information contained in VCs

OUTCOME OF AUTO VCV TOOL Connection between theoretical aspects and practical application in formal

OUTCOME OF AUTO VCV TOOL Connection between theoretical aspects and practical application in formal verification and VCGen. Facilitate the industrial domain and teaching sector as well. Verify large applications and complex programs, which was previously constrained. Detect errors from generated pictures of VCs at the end of development lifecycle. Pictures verify errors either in the code or design model all the way back at initial level of development lifecycle. Reduce time and cost. Improve performance and efficiency of the Safety Critical Systems.

MAIN FUNCTIONS AUTO VCV TOOL Represent pictures in Integrated Mode. Represent pictures in Debug

MAIN FUNCTIONS AUTO VCV TOOL Represent pictures in Integrated Mode. Represent pictures in Debug Mode. Detect and display the Bug in VCs.

Highlighting the points in the VC which have been captured during VCs processing.

Highlighting the points in the VC which have been captured during VCs processing.

Polish Flag Problem --# pre (for all I in Index. Range => (Flag(I)=Red or

Polish Flag Problem --# pre (for all I in Index. Range => (Flag(I)=Red or Flag(I)=White)) --# post for some P in Integer range (Flag'First). . (Flag'Last+1) => --# ((for all Q in Integer range Flag'First. . (P-1) => (Flag(Q)=Red)) and --# (for all R in Integer range P. . Flag'Last => (Flag(R)=White)));

VC STRUCTURE RAW VCG FILE VC Type VC from Line VC from Procedure VC

VC STRUCTURE RAW VCG FILE VC Type VC from Line VC from Procedure VC Running Index VC Running Element. . VC Hypothesis Count VC Conclusion Count PICTURE STRUCTURE TRANSLATOR VC Type Array Lower Bound Upper Bound Running Index Data Type VC Label PARSER TOOL DRAWING ROUTINE . . .

Debug Mode of the Tool Single VC Record Pictures Generated by the Tool for

Debug Mode of the Tool Single VC Record Pictures Generated by the Tool for the VC Record

VC STRUCTURE RAW VCG FILE VC Type VC from Line VC from Procedure VC

VC STRUCTURE RAW VCG FILE VC Type VC from Line VC from Procedure VC Running Index VC Running Element. . VC Hypothesis Count VC Conclusion Count PICTURE STRUCTURE TRANSLATOR VC Type Array Lower Bound Upper Bound Running Index Data Type VC Label PARSER TOOL DRAWING ROUTINE ->

Integrated Mode of the Tool Single VC Record Pictures Generated by the Tool for

Integrated Mode of the Tool Single VC Record Pictures Generated by the Tool for the VC Record

Example 1:

Example 1:

Example 2: Showing Swap data values within Array

Example 2: Showing Swap data values within Array

Example 3: Showing the last VC (Sorting Elements either Red Or White)

Example 3: Showing the last VC (Sorting Elements either Red Or White)

VC STRUCTURE RAW VCG FILE VC Type VC from Line VC from Procedure VC

VC STRUCTURE RAW VCG FILE VC Type VC from Line VC from Procedure VC Running Index VC Running Element. . VC Hypothesis Count VC Conclusion Count PICTURE STRUCTURE TRANSLATOR VC Type Array Lower Bound Upper Bound Running Index Data Type VC Label PARSER TOOL DRAWING ROUTINE

Changing Loop Invariant from I - 1 to I

Changing Loop Invariant from I - 1 to I

Changing Loop Invariant from I - 1 to I + 1

Changing Loop Invariant from I - 1 to I + 1

EXTRA FEATURES - Editor Window to display the VCG file - Analyze Statistics of

EXTRA FEATURES - Editor Window to display the VCG file - Analyze Statistics of the VCs

FUTURE WORK FOR AUTO VCV TOOL Auto VCV Tool can have the ability in

FUTURE WORK FOR AUTO VCV TOOL Auto VCV Tool can have the ability in future to link the source code and the actual VCs generated from that line of code. Tool can be improved further by implementing as a Plug-in tool for the existing Software tools which perform static analysis and formal verification thus generating VCs in the end like SPARK, ESC Java, Spec# and Escher C Verifier (e. Cv). Tool can be made more intelligent and efficient so that it would be capable to take any VCG file as an input.