25
Lambda-Calcul Sémantique de Montague

Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Embed Size (px)

Citation preview

Page 1: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Lambda-Calcul Sémantique de Montague

Page 2: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Plan• Introduction au lambda-calcul

1- Lambda Calcul non typé

2- Lambda Calcul simplement typé

3- Propriétés du lambda-calcul

• Sémantique de Montague.

• Calcul de la sémantique en Coq (ICHARATE).

Page 3: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Lambda-Calcul• Inventé par Church en 1930.

• Outil convenable pour exprimer les fonctions mathématiques

• Application en informatique:

-LISP : basé sur le lambda-calcul non typé

- ML : basé sur le lambda-calcul typé.

-conception de preuves de correction de programmes etc…

Page 4: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Lambda-calcul non typé

• Définition inductive des -termes:

- Toute variable de Var est un -terme.

- Si t est un -terme et x une variable alors

x.t est un -terme. (abstraction)

- Si u et v sont deux -termes alors (u v) est aussi un -terme. (application)

Page 5: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Opérations de base -conversion: x.X y.[y/x]X (à condition

que le renommage préserve le caractère libre/lié de chaque variable).

Exemples : x. x+1 y.y+1

x. y. x+y y. y. y+y

-réduction: (x.u y) u[y/x] (toute variable libre de y reste ainsi après la réduction).

Exemples: (x. x+1 2 ) 2+1

(x. y. x+y y) y. y+y

Page 6: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Paradoxe de Russel

(x. (x x) x. (x x)) (x. (x x) x. (x x))

Logique incohérente!

(Plus concrètement : Si dans un village, un barbier déclare raser la barbe de tous ceux qui ne se rasent pas eux-mêmes, le barbier se rase-t-il lui même ? )

Solution : théorie des types et lambda calcul typé. Hiérarchie des types: aucune fonction ne peut s'appliquer à elle même.

Page 7: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

-calcul simplement typé• BaseType: ensemble de types de base• Si tBaseType alors t Type• Si t1, t2 Type alors t1 t2 Type.• Définition inductive des -termes : -Si v Var ayant un type t Type alors v est

un -terme. -Si l1 et l2 sont deux -termes de types

respectifs t1 t2et t1 alors (l1 l2) est un -terme de type t2.

-Si v Var ayant un type t1 Type et l est un -terme de type t2 alors v.l est un terme de type t1 t2

Page 8: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Propriétés importantes• Théorème de Church-Rosser: (confluence)

u*v et u* w l | v* l et w * lCorollaire: unicité de la forme normale• Normalisation Forte: Pas de suite infinie de réductions Rq: dans le lambda-calcul non typé, la propriété de

normalisation forte n’est pas vérifiéeEx: (x. y (z (z z) z (z z)))

Page 9: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Sémantique de Montague• Principe de compositionnalité de Frege

- Le sens d’une expression composée est une fonction des sens des éléments partiels qui la composent.

• Principe d’extensionnalité :

- Substitution:

u=v [v/u]

Page 10: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Sémantique de MontagueTypes Sémantiques : SemType• Deux types de base - e: type des individus - t: type des valeurs de vérités • Types composés à partir de ‘*’ (produit cartésien)

et ‘’ (application fonctionnelle).Fonction de mapping: Map:SyntType SemTypeMapBase:Atomes SemType

Map(A/i B)=Map(B\ iA)=Map(B) Map(A)

Map(A i B) = Map(A)*Map(B)Map(jA)=Map(� j A)=Map(A)

Page 11: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Sémantique de Montague• -termes: T={(term, type)}- v Var t SemType; (v, t) T.

- (l1, t1 t2) T (l2,t1)T ;((l1 l2), t2) T

- v Var t1 SemType ;si v est de type t1 alors (l,t2) T; (v.l t1 t2) T.

- (l1,t1) T (l2,t2) T; ((l1;l2), t1*t2)

- (l1,t1*t2) T ;(1 l1, t1) T

- (l1,t1*t2) T ;(2 l1, t2) T

- (l1,t1) T ;(l1,t1) T (resp (l1, t1) (l1 , t1) (l1, t1))

Page 12: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Sémantique de Montague

• Lexique : W SynType* T

Condition: w, Lex(w)=(synT, lTerm)

où : lTerm=(t1, l1) avec t1=Map(synT)

Exemples:Marie: (sn, (e; M)) girl: n , (e t; G)

That:((n \ n)/(s / sn) , ((et) (e t) e ; xyz (y z) (x z)))

Likes: ((sn \ s)/sn , (e e t ; L)

Page 13: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Sémantique de Montague

(Γ , :xB)i |- : y A (x:B , Γ )i |- : y A Γ |- : y A Δ |-z: B [Ax] [/iI ] [\iI ] [• iI ] x: A |-x:A Γ |- x. : y A /i B Γ |- x. :y B \i A (Γ, Δ ) i |- <y, x>:A• iB

Δ |- t:A• iB Γ[(x:A, :y B)i] |- z: C Γ |-x:A/iB Δ |-y:B Γ |- :xB Δ |- :yB \iA [• iE] [/iE] [\iE] Γ [Δ] |- z [ :x =Π1 t, y:=Π2 t]: C ( Γ , Δ)i |- (xy): A ( Γ, Δ)i |-( )yx :A

Γ |- x :A [◊jI] <Γ>j |- x :A [1 jI] Γ |- x :1 jA [1 jE] Δ |-x : ◊jA Γ[<y :A>j] |- t :C[◊jE ]

<Γ>j |- ∧x:◊jA Γ |-∩x: 1 jA <Γ>j |-

∪x:A Γ [Δ] |- t [y:= ∨ x] :C

Page 14: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Exemple1• ‘Le cœur a ses raisons que toute raison ignore’ (Blaise Pascal).• Un mode de composition : a. Γ[(Δ1 ,a (Δ2 ,a <Δ3>a))]C

Lexique: Γ[((Δ1 ,a Δ2 ),a <Δ3>a)]C

raison(s) que toute ignore

n (n\an)/a(s/aa �anp) (s/a(np\as)/an (np\as)/anp e t (e t)(e t ) (e t) e e t

e t (e t

R QPx.(Q x)(P x) QP x:e I (Q x) (P x)

Page 15: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Hyp2: � anp|- h2: � anp

toute |- z:(s/a(np\as)/an raison |- u:n ignore|-v: (np\as)/anp <Hyp2: � anp>a |-h2:np

(toute , raison)|-(z u): s/a(np\as) (ignore, <Hyp2: � anp>a )|- (v h2):np\as

((toute, raison), (ignore, <Hyp2: � anp>a ))|- ((z u) (v h2)): s Hyp1: a � anp |- h1:a � anp (((toute, raison), ignore), <Hyp2: � anp>a )|-((z u) (v h2)): s

(((toute, raison), ignore), Hyp1: a � anp) |- ((z u) (v h1)): s

que |-y: (n\an)/a(s/aa �anp) ( (toute , raison), ignore) |- h1. ((z u) (v h1)): s/aa � anp

raisons |-x : n (que , ( (toute , raison), ignore))) |-(y h1. ((z u) (v h1))): n\an

( raisons , (que , ( (toute , raison), ignore)))|- ((y h1. ((z u) (v h1))) x)n

Page 16: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Exemple2• Money is a good servant and a bad master.

Mode de composition : n

Lexique:

Money, servant , master : n

good, bad : n/nn

a: ((s/nnp)\ns)/nn : PQ: x:e (P x) (Q x)

is: (np\ns)/n(s/nnp)\ns: x y(x z (y=z))

And : (X\X)/X (X= (s/nnp)\ns), P Q p:

(P p) (Q p)

Page 17: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Exemple2(suite)• Arbre dérivation composé de règle d’élimination

uniquement: application.a bad master: (PQ. x:e (P x) (Q x))(B Ma) Q . x:e ((B Ma) x) (Q x))a good servant and a bad master: P Q p.(P p) (Q p) ( Q . x:e ((B Ma) x) (Q x)) ( Q . x:e ((G S) x) (Q x))p. x:e ((B Ma) x) (p x) x:e ((G S) x) (p x)Money is a good servant and a bad master :x:e. Mo=x ((B Ma) x) x:e. Mo=x ((G S) x)

Page 18: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Logique intentionnelle• Opérateurs d’intentionnalité: contraindre le principe

d’extensionnalité.

• Exemples de constructions qui créent des contextes

opaques:1- Discours indirect: Marie a dit que Maurice aime Sophie.

Maurice est l’élève le plus stupide de la classe.

Marie a dit que l’élève le plus stupide de la classe aime Sophie ??!

2-Temporalité:

GW Bush est le président des USA.

En 1963, le président des USA a été assassiné à Dallas.

En 1963, GW Bush a été assassiné à Dallas ??!

Page 19: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Logique intentionnelle• Modalités :Neuf est nécessairement supérieur à 7.

Neuf est le nombre de planètes.

Le nombre de planètes est nécessairement supérieur à 7 ??!

(9 > 7)

• Le nombre de planètes = 9

(le nombre de planètes >7)

• Nouveau principe de substitution:

x = y [y/x]

Page 20: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Logique intentionnelle réduction:

(x. y) [y/x] Conditions: pas de capture de variable y est intentionnellement close.Si on considère que les constantes ne sont pas

intentionnellement clos: pas de propriété du diamond!!

(x (y ( y= f(x)) x) c) (y ( y= f(c)) c) (x ( x= f(x)) c)

Page 21: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Formalisation en Coq

• Lambda termes typés avec indices de Bruijn

• Variables liées représentées par des entiers.

• Avantage : éviter les captures de variables

• Exemple: x y ((likes x) y)

e e t e t app

t app 0:e

e t likes 1:e

Page 22: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Formalisation en Coq• Opérations de base sur le lambda-calcul

- substitution d’une variable libre par un lambda-terme

- abstraction d’une variable

• Définition récursive de l’abstraction:

e t app e t t t app 0:e e t app

e t likes H1:e t app 0:e

e t likes H1:e 1:e

Page 23: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Théorèmes prouvés• Deux prédicats:

wellFormed et wellTyped.

Γ , Γ- u: A => (wellTyped u)

-Attention à la définition de wellTyped:

Constructeur pour l’abstraction:

l, (wellTyped l) ->(hasSameType t’ 0 l)->

getType l=t -> (wellTyped ( t’ t l)).

• Propriétés diverses:

Γ ress, Γ- u: A; occurs ress Γ -> freeVar ress u.

Page 24: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

Calcul de la sémantique

• Analyse syntaxique avec ressources.• Sémantique dérivationnelle: fonction récursive qui

récupére l’arbre de dérivation et calcul le lambda-terme associé (en fonction des ressources).

• Sémantique lexicale: substitution de chaque étiquette par sa valeur (sa sémantique donnée par le lexique)

• Pour l’instant : lambda-terme non réduit!

Page 25: Lambda-Calcul Sémantique de Montague. Plan Introduction au lambda-calcul 1- Lambda Calcul non typé 2- Lambda Calcul simplement typé 3- Propriétés du lambda-calcul

A Faire

• Stratégies de réduction .

• Théorèmes avancés: Church-Rosser etc…