• Aucun résultat trouvé

Proof assistants TD 2- Specifics of the Calculus of Constructions

N/A
N/A
Protected

Academic year: 2022

Partager "Proof assistants TD 2- Specifics of the Calculus of Constructions"

Copied!
2
0
0

Texte intégral

(1)

Proof assistants

TD 2- Specifics of the Calculus of Constructions

1 Inductive Predicates

A- Give an inductive definitioneven : nat -> Prop for the predicate “ to be even ”.

B- Caracterize with an inductive definition a relation exp : nat -> nat -> nat -> Prop with two constructors corresponding to the graph of the function np =q on natural numbers.

2 Recursive types

A- Propose in Coq an inductive definition with parameter corresponding to the ML type of polymorphic lists:

type ’ a l i s t = n i l | cons of ’ a * ’ a l i s t

B- Coq library defines the binary product, the unit type and the type of natural numbers:

Inductive prod (A B : Type) : Type := p a i r : AB prod A B.

Inductive u n i t : Type := t t : u n i t .

Inductive nat : Type := O : nat | S : natnat .

Construct an expression prodn in CCI of type Type → nat → Type which builds the n-ary product of a given typeA: (i.e. prodn A nis A×. . .×A(n times)). The definition will be by recursion on n.

Give an expression length of type∀A.list A→natwhich computes the length of a list.

Give an expression embed of type ∀A.∀l : list A.prodn A (length l) which translates a list into a n-uple.

3 Termination of fixpoints

Are the following fixpoints well-founded in CCI ? explain why ?

Fixpoint l e q (n p : nat ) {s t r u c t n} : bool :=

match n with

| O t r u e

| S n ’ match p with O f a l s e | S p ’ l e q n ’ p ’ end end.

Definition exp (p : nat ) :=

(f i x f (n : nat ) : nat :=

match l e q p n with | t r u eS 0 | f a l s e f (S n) + f (S n) end) 0 .

Definition ackermann := f i x f (n : nat ) : nat nat := match n with

| OS

| S n ’ f i x g (m: nat ) : nat := matchm with

| O f n ’ (S O)

| S m’ f n ’ (g m’ ) end

end.

1

(2)

4 Strong elimination

Lett1 and t2 be two arbitrary terms of type T1 and T2. Is the following function typable ?

Definition g (b : bool ) := match b with t r u e t1 | f a l s e t2 end.

If yes, give the corresponding return clause.

5 Restrictions on sorts in eliminations

A- We introduce the following definition of the true proposition:

Inductive True : Prop := I : True .

Write a function from unitto True which is one-to-one.

B- We now introduce

Inductive BOOL : Prop := TRUE : BOOL | FALSE : BOOL.

Can we show the equivalence between bool and BOOL? Show that such an equivalence gives a proof of the negation of the principle of ¡¡ proof-irrelevance ¿¿ in Prop, i. e. ∀P : Prop ∀p q : P. p=q) .

6 The type W of well-founded trees (exam 2008)

The type W of well-founded trees is parameterised by a typeA and a family of types B :A→ Type. It has only one constructor and is defined by :

Inductive W (A: Type) (B:AType) : Type :=

node : f o r a l l ( a :A) , (B a→W A B)W A B.

The type A is used to parameterised the nodes and the type B a give the arity of the node parameterised by a.

1. Give the type of dependent elimination for type W on sortType.

2. In order to encode the type nat of natural numbers with O and S, we need two types of nodes. We take A = bool. The constructor O corresponds to a = false, it does not expect any argument so we take Bfalse = empty. The constructor S corresponds to a=true, it takes one argument, we defineBtrue=unit.

Using this encoding, give the terms corresponding tonat, O etS.

3. Propose an encoding usingW for the typetreeof binary trees parameterised by a type of valuesV, which means that we have a constructorleafof type (treeV) and a constructor binof typetreeV →V →treeV →treeV. Define the type and its constructors using this encoding.

4. Given a variable n of type nat, build two functions f1 and f2 of type unit → nat such that ∀x:unit, fix=n is provable but such that f1 and f2 are not convertible.

5. Which consequence does it have on the encoding of nat using W? Propose an equality on the type W which solves this problem.

2

Références

Documents relatifs

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

We can see that programming in the Calculus of Con- structions is quite verbose: programs have arguments that are indeed only static information (type decorations, proof

We present extensions of Miquel’s Implicit Calculus of Constructions (ICC) and Barras and Bernardo’s decidable Implicit Calculus of Constructions (ICC*) with union and subset

In a previous work, we proved that almost all of the Calculus of Inductive Constructions (CIC), the basis of the proof assistant Coq, can be seen as a Calculus of

The strong normalization of a typed λµ-calculus can be deduced from the one of the corresponding typed λ-calculus by using CPS translations. See, for example, [14] for such

On the order of the reductions of algebraic numbers.. Pietro

In Section 6 we prove Theorem 1 by transforming the conditions on the order into conditions on the index and on the Frobenius conjugacy class with respect to certain finite

[38], discussed three new versions of the Caputo fractional derivative of variable order (FDVO) and presented a numerical tool to solve partial differential equations involving