Relations logiques et fonctions bool nnes.buccia/RECENT_TALKS/slides_P8_11.pdf · Ω,true,false :...
Transcript of Relations logiques et fonctions bool nnes.buccia/RECENT_TALKS/slides_P8_11.pdf · Ω,true,false :...
logo
Structures booléennes Relations Logiques λ-calculs booléens
Relations logiques et fonctions booléennes.
Antonio Bucciarelli
Laboratoire Preuves Programmes et SystèmesUniversité Paris Diderot - Paris 7
logo
Structures booléennes Relations Logiques λ-calculs booléens
Outline
1 Structures booléennesDéfinition et exemples
2 Relations LogiquesLa relation de totalitéClasses de totalité et sensibilité des fonctions booléennesSituations d’“écroulement extensionnel”
3 λ-calculs booléensSyntaxeSémantiqueLe lemme fondamentale des relations logiquesDegrés de définissabilitéDegrés de parallélisme
logo
Structures booléennes Relations Logiques λ-calculs booléens
Définition et exemples
Structures booléennes
Types (booléens) simples
σ ::= bool | σ → σ
Par exemple
bool → (bool → bool) : le type des fonctions booléennes à deux arguments.En général σ1 → (σ2 → (... → (σn−1 → σn)...)) ≡ (σ1 × σ2 × ...× σn−1) → σn
(bool → bool) → bool : le type des fonctionnelles qui prennent en argument unefonction booléenne unaire, et renvoient un booléen.
Structures booléennes
Une structure booléenne Dσ est une famille d’ensembles indexée par les typessimples, munie d’une famille de fonctions evalσ,τ : (Dσ→τ × Dσ) ⇒ Dτ .Dσ est extensionnelle si (∀x eval(f , x) = eval(g, x)) ⇒ f = g.
Souvent, Dσ→τ est un ensemble de fonctions de Dσ vers Dτ , et evalσ,τ estl’application (abus de notation habituelle : pour f ∈ Dσ→τ , x ∈ Dσ , on écrit f (x) au lieudeevalσ,τ (f , x).)
logo
Structures booléennes Relations Logiques λ-calculs booléens
Définition et exemples
Structures booléennes : exemples
La structure Sσ :Sbool = 0, 1,Sσ→τ = toutes les fonctions de Sσ vers Sτ .
La structure Cσ :Cbool = ⊥, 0, 1, avec ⊥< 0, 1Cσ→τ = les fonctions monotones de Cσ vers Cτ , ordonnées point par point..
La structure Lσ :Lbool = ⊥, 0, 1,⊤, avec ⊥< 0, 1 < ⊤Lσ→τ = les fonctions monotones de Lσ vers Lτ , ordonnées point par point.
Construction d’une structure booléenne : le cas général
Si C est une catégorie cartésienne fermée, B un objet de C, et on définit Cbool = B, etCσ→τ = Cσ ⇒ Cτ , alors la famille Dσ = C(1,Cσ) est une structure booléenne, avecevalσ,τ (f , x) = ev 〈f , x〉.
logo
Structures booléennes Relations Logiques λ-calculs booléens
Définition et exemples
L’ordre partiel Cbool→bool
0 7→ 0 0 7→ 1 1 7→ 0 1 7→ 1
∅
0 7→ 0, 1 7→ 1 0 7→ 1, 1 7→ 0 0 7→ 1, 1 7→ 1
⊥7→ 0 ⊥7→ 1
0 7→ 0, 1 7→ 0
logo
Structures booléennes Relations Logiques λ-calculs booléens
Outline
1 Structures booléennesDéfinition et exemples
2 Relations LogiquesLa relation de totalitéClasses de totalité et sensibilité des fonctions booléennesSituations d’“écroulement extensionnel”
3 λ-calculs booléensSyntaxeSémantiqueLe lemme fondamentale des relations logiquesDegrés de définissabilitéDegrés de parallélisme
logo
Structures booléennes Relations Logiques λ-calculs booléens
Relations logiques
Cas binaire
Une relation logique (binaire) entre deux structures booléennes Dσ, Eσ est unefamille de relations binaires Rσ telle que, pour tous σ, τ :
Rσ ⊆ Dσ × Eσ
(f , g) ∈ Rσ→τ ssi pour tout (x , y) ∈ Dσ × Eσ ( (x , y) ∈ Rσ ⇒ (f (x), g(y)) ∈ Rτ )
Notation : Rσ ⊆ Dσ × Eσ
Premier exemple : la totalité
La relation de totalité est la relation logique binaire Tσ ⊆ Cσ × Sσ, définie parTbool = (0, 0), (1, 1)
Graphiquement :
01 1 0
Tbool Tbool
⊥
logo
Structures booléennes Relations Logiques λ-calculs booléens
La relation de totalité au type bool → bool
0 7→ 0 0 7→ 1 1 7→ 0 1 7→ 1
∅
0 7→ 1, 1 7→ 0 0 7→ 1, 1 7→ 1
⊥7→ 0 ⊥7→ 1
0 7→ 0, 1 7→ 0 0 7→ 0, 1 7→ 1
0 7→ 0, 1 7→ 0
0 7→ 0, 1 7→ 1
0 7→ 1, 1 7→ 0
0 7→ 1, 1 7→ 1
logo
Structures booléennes Relations Logiques λ-calculs booléens
La relation de totalité au type bool → bool
0 7→ 0 0 7→ 1 1 7→ 0 1 7→ 1
∅
0 7→ 1, 1 7→ 0 0 7→ 1, 1 7→ 1
⊥7→ 0 ⊥7→ 1
0 7→ 0, 1 7→ 0 0 7→ 0, 1 7→ 1
0 7→ 0, 1 7→ 0
0 7→ 0, 1 7→ 1
0 7→ 1, 1 7→ 0
0 7→ 1, 1 7→ 1
logo
Structures booléennes Relations Logiques λ-calculs booléens
La relation de totalité au type bool → bool
0 7→ 0 0 7→ 1 1 7→ 0 1 7→ 1
∅
0 7→ 1, 1 7→ 0 0 7→ 1, 1 7→ 1
⊥7→ 0 ⊥7→ 1
0 7→ 0, 1 7→ 0 0 7→ 0, 1 7→ 1
0 7→ 0, 1 7→ 0
0 7→ 0, 1 7→ 1
0 7→ 1, 1 7→ 0
0 7→ 1, 1 7→ 1
logo
Structures booléennes Relations Logiques λ-calculs booléens
La relation de totalité au type bool → bool
0 7→ 0 0 7→ 1 1 7→ 0 1 7→ 1
∅
0 7→ 1, 1 7→ 0 0 7→ 1, 1 7→ 1
⊥7→ 0 ⊥7→ 1
0 7→ 0, 1 7→ 0 0 7→ 0, 1 7→ 1
0 7→ 0, 1 7→ 0
0 7→ 0, 1 7→ 1
0 7→ 1, 1 7→ 0
0 7→ 1, 1 7→ 1
logo
Structures booléennes Relations Logiques λ-calculs booléens
La relation de totalité au type bool → bool
0 7→ 0 0 7→ 1 1 7→ 0 1 7→ 1
∅
0 7→ 1, 1 7→ 0 0 7→ 1, 1 7→ 1
⊥7→ 0 ⊥7→ 1
0 7→ 0, 1 7→ 0 0 7→ 0, 1 7→ 1
0 7→ 0, 1 7→ 0
0 7→ 0, 1 7→ 1
0 7→ 1, 1 7→ 0
0 7→ 1, 1 7→ 1
logo
Structures booléennes Relations Logiques λ-calculs booléens
Les classes de totalité
Surjections logiques partielles
Une relation logique Rσ ⊆ Dσ × Eσ est une surjection logique partielle si, pourtout type σ, Rσ est une relation surjective et fonctionnelle de Dσ vers Eσ .Pour x ∈ Eσ , y ∈ Dσ | (y , x) ∈ Rσ est la R-classe de x .
Classes de totalité
Tσ ⊆ Cσ × Sσ est une surjetions logique partielle.
Pour x ∈ Sσ , la classe de totalité de x (i.e. l’ensemble y ∈ Cσ | (y , x) ∈ Tσ) estun treillis.
Les éléments de la classe de totalité de x ∈ Sσ peuvent être considérés commedes algorithmes qui “implémentent” x .
logo
Structures booléennes Relations Logiques λ-calculs booléens
La classe de totalité de la disjonction (binaire)
ou_gauche = ((1,⊥), 1), ((0, 1), 1), ((0, 0), 0)
ou_strict = ((1, 1), 1), ((1, 0), 1), ((0, 1), 1), ((0, 0), 0)
ou_parallele = ((1,⊥), 1), ((⊥, 1), 1), ((0, 0), 0)
ou_droit = ((⊥, 1), 1), ((0, 0), 1), ((0, 0), 0)
Les fonctions ou_strict, ou_gauche et ou_droit sont des implantations séquentielles dela disjonction booléenne. Le ou_parallèle (le top du treillis) est une implantationparallèle.(en général, les plus petits éléments des classes de totalités sont séquentiels).
logo
Structures booléennes Relations Logiques λ-calculs booléens
Le problème de la séquentialité (digression historique)
Sσ n’est pas un modèle “réaliste” des langages de programmation (pas de nonterminaison, pas de définitions récursives)
Cσ (le modèle de Scott) contient des éléments non définissables par leslangages séquentiels (comme le λ-calcul, ou les langages de programmationconventionnels).
Problème : définir un modèle dont tous les éléments soient (λ)-définissables.
logo
Structures booléennes Relations Logiques λ-calculs booléens
Classes de totalité et sensibilité des fonctions booléenne s
Sensibilité des fonctions booléennes et classes de totalité
Sensibilité : une mesure de complexité des fonctions boolée nnes
Soit f : 0, 1n → 0, 1
La sensibilité de f en x = (x1, . . . , xn) ∈ 0, 1n estS(f , x) =
∑ni=1 |f (x1, . . . , xn)− f (x1, . . . , xi−1, xi , xi+1, . . . , xn)|
La sensibilité de f est S(f ) =∑
x∈bn S(f , x).
f S(f ) Taille de la classe de totalité de f
fonction de parité n-aire n ∗ 2n 1fonction constante n-aire 0 > n ∗ 2n (0 7→ 1, 1 7→ 2, 3 7→ 17, ...)
logo
Structures booléennes Relations Logiques λ-calculs booléens
Situations d’“écroulement extensionnel”
Situations d’“écroulement extensionnel”
Une situation d’écroulement extensionnel est la donnée de deux structures booléennesDσ, Eσ et d’une surjection logique partielle Rσ ⊆ Dσ × Eσ
Dans une situation d’écroulement extensionnel :
Les R-classes des éléments de Eσ fournissent un outil pour l’étude depropriétés de ces éléments (par exemple, la sensibilité dans l’écroulement partotalité de Cσ sur Sσ).
(En tant que modèles du λ-calcul simplement typé) La théorie de Dσ est plusfine que celle de Eσ.
logo
Structures booléennes Relations Logiques λ-calculs booléens
Situations d’“écroulement extensionnel”
Situations d’écroulement extensionnel
“Gros” modèle “Petit” modèle
C SL CRel LStabmult StabsetSeqAlg HyperCoh... ...
logo
Structures booléennes Relations Logiques λ-calculs booléens
Outline
1 Structures booléennesDéfinition et exemples
2 Relations LogiquesLa relation de totalitéClasses de totalité et sensibilité des fonctions booléennesSituations d’“écroulement extensionnel”
3 λ-calculs booléensSyntaxeSémantiqueLe lemme fondamentale des relations logiquesDegrés de définissabilitéDegrés de parallélisme
logo
Structures booléennes Relations Logiques λ-calculs booléens
Syntaxe
λ-calculs booléens
Types : σ ::= bool | σ → σ
Termes : le noyau commun à tous les langages
t ::= xσ | λxσ .t |t1 t2
Un λ-calcul booléen particulier est défini par un ensemble de constantes, typées (parexemple : true : bool, false : bool, not : bool → bool, and : bool → bool → bool, or :bool → bool → bool).
Règle de réduction
règle β : (λx .t) r t[r/x ]
règles δ : propres aux constantes ; par exemple not true false
logo
Structures booléennes Relations Logiques λ-calculs booléens
Syntaxe
Circuits booléens et λ-termes
Un circuit définissant la fonction de parité à deux arguments et le λ-termecorrespondant :
x
y
λxbool.λybool.or(and x (not x))(and y (not y))
Un terme de type supérieure :λf bool→bool.λgbool→bool.λxbool.f (g x)
logo
Structures booléennes Relations Logiques λ-calculs booléens
Syntaxe
Un exemple de λ-calcul booléen : PCF finitaire
Constantes
Ω, true, false : bool
if : bool → bool → bool → bool
Règles de réduction
Ω Ωt t′
if t r s if t′ r s
if true r s r
if false r s s
Exemple de terme : le “ou gauche”
ou_gauche ≡ λx .λy . if x true y
ou_gauche true Ω ∗ true
ou_gauche Ω true 6 ∗ true
logo
Structures booléennes Relations Logiques λ-calculs booléens
Sémantique
Interprétation des λ-calculs dans les structures booléennes
Données : une structure booléenne Dσ, un λ-calcul Λ caractérisé par l’ensembleC = c1 : σ1, . . . , ck : σk de constantes.But : définir une interprétation J K des termes de Λ dans Dσ, qui soit un modèledénotationnel de Λ dans le sense suivant : si t ∗ t ′ alors JtK = Jt ′K.Un environnement ρ est une fonction des variables de Λ dans
⋃
σDσ , préservant les
types.
Interprétation des termes
JxKρ = ρ(x)
JciKρ = ci ∈ Dσi condition : ci valide les règles de réduction définissant ci ,
Jλx .tKρ(d) = JtKρ[x :=d ]
Jt sKρ = JtKρ(JsKρ)
Par exemple :
Cσ est un modèle de PCF finitaire.
Sσ est un modèle du λ-calcul défini par l’ensemble true, false, not, and, or.
Sσ n’est pas un modèle de PCF finitaire.
logo
Structures booléennes Relations Logiques λ-calculs booléens
Le lemme fondamentale des relations logiques
λ-calcul booléens et relations logiques
Lemme fondamentale des relations logiques
Soit Λ λ-calcul booléen, Dσ , Eσ modèles de Λ, Rσ ⊆ Dσ× Eσ une relationlogique telle que, pour toute constante c : σ de Λ, (JcKD , JcKE ) ∈ Rσ .Alors, pour tout terme (clos) t : τ , (JtKD , JtKE ) ∈ Rτ .
Exemple d’utilisation du lemme fondamentale pour prouver des résultats de nondéfinissabilité :À voir : l’ensemble and , or n’est pas fonctionnellement complet.Soit Mσ ⊆ Sσ × Sσ la relation logique définie par Mbool = (0, 0), (0, 1), (1, 1).
(JandKS , JandKS) ∈ Mbool→bool→bool
(JorKS , JorKS) ∈ Mbool→bool→bool
(JnotKS , JnotKS)not ∈ Mbool→bool, car (0, 1) ∈ Mbool et(JnotKS(0), JnotKS(1)) = (1, 0) 6∈ Mbool.
Donc not n’est pas (λ-)définissable à partir de and et or .
logo
Structures booléennes Relations Logiques λ-calculs booléens
Degrés de définissabilité
Degrés de définissabilité
Données : un λ-calcul Λ, un modèle Dσ de Λ.
Definissabilité relative
Pour f , g éléments du modèle Dσ, f est définissable relativement à g, f ≤d g, s’ilexiste un terme t de Λ + cg tel que JtKD = f , cg étant une nouvelle constante de Λ dontl’interprétation est g.
Par exemple, pour le λ-calcul sans constantes et son modèle Sσ, ∀f ∈ Sσ , avec σd’ordre 1, on a f ≤d nand .
Degrés de définissabilité
Un degré de définissabilité est une classe d’équivalence de la relation d’équivalence≡d associée au préordre ≤d .
Par exemple, si on considère le calcul ayant not comme unique constante, et sonmodèle Sσ, on a and ≡d or , car or = Jλxbool.λybool.not(not x)(not y)K etand = Jλxbool.λybool.not(not x)(not y)K.
logo
Structures booléennes Relations Logiques λ-calculs booléens
Degrés de parallélisme
Degrés de parallélisme
Étude des degrés de définissabilité dans le modèle Cσ, relativement à PCF finitaire.
Plotkin, 1976
Tous les éléments de Cσ,à tous les types, sont définissables relativement à lafonction ou_parallele.
Sieber, 1992
La définissabilité relative dans le modèle Cσ de PCF finitaire est décidable, pour desfonctions d’ordre ≤ 2.
Loader, 1994
La définissabilité relative dans le modèle Cσ, de PCF finitaire est indécidable, engénéral.
logo
Structures booléennes Relations Logiques λ-calculs booléens
Degrés de parallélisme
Hypergraphes représentant les élément d’ordre 1 de Cσ :
por(x , y) =
1 si x = 1 ou y = 10 si x = 0 et y = 0⊥ sinon
trace(por) = ((1,⊥), 1), ((⊥, 1), 1), ((0, 0), 0)
L’hypergraphe associé à por , Hpor , est :
⊥, 11,⊥
0, 0
logo
Structures booléennes Relations Logiques λ-calculs booléens
Degrés de parallélisme
La “fonction de Gustave” :
g(x , y , z) =
1 si (x = 1 ∧ y = 0) ∨ (x = 0 ∧ z = 1) ∨ (y = 1 ∧ z = 0)⊥ sinon
trace(g) = ((1, 0,⊥), 1), ((0,⊥, 1), 1), ((⊥, 1, 0), 1)
Hg :
0,⊥, 1⊥, 1, 0
1, 0,⊥
logo
Structures booléennes Relations Logiques λ-calculs booléens
Degrés de parallélisme
Compilation d’un morphisme d’hypergraphes vers un terme dePCF
0,⊥, 1⊥, 1, 0
1, 0,⊥
0, 0
⊥, 11,⊥
g = fun x y z . por (if y (if z Omega true) (if x true Omega))(if z (if x Omega true) Omega)
logo
Structures booléennes Relations Logiques λ-calculs booléens
Degrés de parallélisme
Correction
S’il existe un morphisme de Hf vers Hg , alors f ≤p g.
La complétude ne vaut pas :
por3
por2
1,⊥ ⊥, 1
⊥, 1,⊥
1,⊥,⊥ ⊥,⊥, 1
por3 = fun x y z . por2 (por2 x y) z
logo
Structures booléennes Relations Logiques λ-calculs booléens
Degrés de parallélisme
Morphismes stratifiés :
1,⊥ ⊥, 1
⊥, 1,⊥
1,⊥,⊥ ⊥,⊥, 1
por3 = fun x y z . por2 (por2 x y) z
Thm. de complétude pour les fonctions sous-séquentielles
If f est sous-séquentielle, alors il existe un morphisme stratifié de Hf vers Hg , si etseulement si f ≤p g.
logo
Structures booléennes Relations Logiques λ-calculs booléens
Quelques références bibliographiques
A.B. : Extensional collapse situations I : non-termination and unrecoverable errors.
A.B. : Degrees of parallelism in the continuous type hierarchy.
A.B., P. Malacaria : Relative definabilioty of boolean functions via hypergraphs.
A.B., B. Leperchey : Hypergraphs and degrees of parallelelism, a completenessresult.
www.pps.jussieu.fr/˜buccia/PUBLI