Dedukti: From Universality To Interoperability: Slide 1

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

Dedukti: from universality to interoperability

Slide 1 Gilles Dowek

Slide 2

I. Proof systems

Some common points to Coq, PVS, ACL, ...

Systems developed over decades Slide 3 In one bloc (one Makefile, one process) That implement a single (rich and powerful) formalism: CIC, HOL (with predicate subtyping), BM-logic

Two opposite trends

Word + Excel Ofce Slide 4 Turbopascal cc + emacs

Towards small proof systems

A proof checker A (some) tactic system(s) Slide 5 A (some) program extraction system(s) A (some) editor(s) that share a le format

A single formalism?

HOL, CIC, ... can be axiomatized in predicate logic Slide 6 Why not: a system for predicate logic + axioms?

Because

it does not work no witness property Slide 7 no way to extract programs no efcient proof-search methods

Slide 8

II. From axioms to computation rules

Computation rules

Instead of a (Peano) axiom

x (x + 0 = x)
Slide 9 a computation rule

x + 0 x
That denes a congruence, modulo which we reason

Unneeded axioms The axiom

x (x + 0 = x)
becomes unneeded because it is congruent to Slide 10

x (x = x)
Without axioms we get back: the witness property program extraction efcient proof-search methods

Small proofs (witnesses)

-intro 13 | 221 -intro x (x | 221)


Slide 11

(13 | 221)

Slide 12

III. -modulo

Algorithmic interpretation of proofs?

Many -calculi

: predicate logic
Slide 13 arithmetic Martin-Lof: CoC: simple type theory CIC: simple type theory with the axiom of innity

-modulo

Predicate logic: Slide 14

+ computation rules

predicate logic + computation rules:

Can encode

all functional PTS (D-Cousineau) CIC (Burel-Boespug)


Slide 15

predicate logic + deduction modulo (Dorra) permissive nominal logic?

An example: polymorphism

X : Type (X X )
but Type does not have type Type Slide 16 no way to quantify over Type (in )

x : U ((x) (x))
with U

: Type and : U Type

Substitute nat

nat for X ?

:U nat nat where nat


Slide 17

: U and :U U U

x : U ((x) (x)) ) (nat ) (nat nat nat


and not (nat

nat) (nat nat)

Now is the good time to use

(x y ) ((x) (y )) ) nat (nat


Slide 18 so that

) (nat ) (nat nat nat (nat nat) (nat nat)

Again ...

Why not + axioms? Slide 19 Same reasons Same solution + computation rules

Slide 20

IV. Compiling

Testing the congruence

In deduction modulo

C A if C (A B ) B
Slide 21 Test the congruence of A Same in -modulo

B and C

Testing the congruence

A problem already met in Coq (that has a little modulo in it) Comparison of normal forms Slide 22 Barras: explicit substitutions (environment machine) Gregoire (+ Leroy and Werner): compilation Dedukti: reduction extended to an arbitrary rewrite system

Boespugs solution

A reinterpretation of Gregoires compilation: NBE Slide 23 Reinterpretation of NBE: translation in the underlying programming language, execution, reication

Once the problem understood this way: rewriting for free The underlying language (Caml, Haskell) already has rewriting

More novelties Coq: only conversion is compiled, verication is classical Back and forth between the term and the compiled code Dedukti: the full verication is compiled Slide 24 a term t: a Haskell program that returns true or false according to the well-typedness of t

More novelties

A well-chosen version of NBE (untyped, tagged) Slide 25 + ad hoc optimizations

a factor 100 (one some examples) with respect to other


implementations of NBE + rewriting es) ` a factor 3 with respect to Coq (Den

Slide 26

V. Some prospective: towards interoperability

So far: only a proof checker

No tactics, no extraction, ... Slide 27 Back-end for the systems that use Coq just as a back-end to verify certcates (Zeno, Focalize, ... in progress) Back-end for Coq (Burel-Boespug, in progress) and HOL (Keller, in progress)

From universality to reverse mathematics

Many Coq or HOL proofs are just a proof by induction in predicate logic (or HA) Slide 28 Others use the power of the logical system Can we use Dedukti to tag each proof by its minimal theory? Identify the rules used for the verication

From reverse mathematics to interoperability

Lemmas proved in HA: exported to all systems Slide 29 Intuitionist HOL proofs: exported to Coq Coq that do not use some rewrite rules: provable in HOL

Esperanto is the data, all the rest is Volapuk

Nowadays diversity of programming languages does not preclude data exchange Slide 30

We want the same for proofs

You might also like