• Keine Ergebnisse gefunden

University of Kaiserslautern Department of Computer Science Software Technology Group

N/A
N/A
Protected

Academic year: 2022

Aktie "University of Kaiserslautern Department of Computer Science Software Technology Group"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. A. Poetzsch-Heffter Dipl.-Inf. P. Michel

Dipl.-Inf. C. Feller

University of Kaiserslautern

Department of Computer Science Software Technology Group

Exercise Sheet 6: Specification and Verification with Higher-Order Logic (Summer Term 2010)

Date: 31.05.2010

Exercise 1 Inductive Definitions, Lattices and Fixpoints

a) (Prepare!) Define the reflexive, transitive closure of a relationras inductive set.

b) (Prepare!) Define a function whose least fixpoint is the aforementioned set.

c) (Prepare!) LetL be a complete lattice,a, b ∈ Landa ≤ b. Prove that the closed interval[a, b]is a complete lattice.

Reminder:[a, b] :={x. a≤x≤b}

It is not required that you solve this exercise in Isabelle/HOL.

Exercise 2 Case Study: Greatest Common Divisor

a) Consider the following implementation of the greatest common divisor function:

fun gcd :: "nat => nat => nat" where

"gcd m 0 = m" |

"gcd m n = gcd n (m mod n)"

Prove that the function really computes the greatest common divisor ofmandn.

It might be useful to define and prove the following properties ofgcdfirst:

• The result ofgcddivides both arguments.

• Each common divisor divides the result ofgcd.

• Each divisor of the result ofgcdis a common divisor.

• The result ofgcdis not zero if at least one argument is not zero.

Hint: In Isabelle/HOL, the property that a divides b is expressed by:a dvd b.

b) Prove the following property ofgcd:k * gcd m n = gcd (k * m) (k * n).

c) Consider a slightly different implementation of the greatest common divisor function:

fun gcd :: "nat => nat => nat" where

"gcd m n = (if n = 0 then m else gcd n (m mod n))"

• Prove that this implementation is equivalent to the first one.

• Prove the property of b) for this implementation.

d) Use the main property of a) to define the greatest common divisor non-recursively with the Hilbert- Choice operator (SOME), i.e. not using the Euclidean algorithm.

Prove the equivalence of this function to the originalgcd.

Referenzen

ÄHNLICHE DOKUMENTE

b) We now want to proof a more general property of this program which is not fixed to vn being 3. As the first step towards this goal, prove that the execution of the loop body adds

This file contains the Imp language with additional constructs for working with Arrays. The program se- mantics is defined in terms of a Big Step Semantics, similar to Sheet 7.

Peter

e) Define simple generic properties of the newly defined functions and prove them (e.g. the empty list does not contain any elements, formulated on the two constants empty

Exercise Sheet 6: Specification and Verification with Higher-Order Logic (Summer Term 2012)..

b) Download the theory “RQSort.thy” – which stands for refined quicksort – in which you prove the correctness of the efficient quicksort. prove that the efficient version of

c) Optimize your proof by using the custom wphoare method, like done in the splitcorrect lemmas... d) The splitcorrect lemma does not prove that split does not change the content of

In a software project, the classes Person, AgePerson und AgeManager were implemented; their source is given in Figure 1... a) For testing purposes, the following code