• Keine Ergebnisse gefunden

Notwendigkeit bestimmter Bedingungen? Wir haben, mit

N/A
N/A
Protected

Academic year: 2022

Aktie "Notwendigkeit bestimmter Bedingungen? Wir haben, mit"

Copied!
10
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Wir haben, mit fix:

gp (map h l) = map h (g (p◦h) l) für jedesg :: (α →Bool)→[α]→[α], wenn

• h strikt (h ⊥=⊥).

Wir haben, mit fixund seq: . . . , wenn

• p6=⊥,

• h strikt (h ⊥=⊥) und

• h total (∀x 6=⊥.h x 6=⊥).

Wir haben, mit . . . , wenn . . . Naheliegende Fragen jeweils:

1. Sind die Bedingungen für jedes g notwendig?

2. Sind sie es für irgendein g?

(2)

1. Frage, für (nur) fix

Sind alle Striktheitsbedingungen für jedes g notwendig?Nein!

Systematischer Ansatz: ersetze

Γ⊢t :τ →τ Γ⊢(fixt) :τ durch

Γ⊢τ ∈Pointed Γ⊢t :τ →τ Γ⊢(fixt) :τ , wobei

Pointedα,Γ⊢α∈Pointed Γ⊢τ2 ∈Pointed Γ⊢τ1→τ2 ∈Pointed Γ⊢Bool∈Pointed Γ⊢[τ]∈Pointed

(3)

Zum Beispiel erhalten wir:

• Für jedes g::Pointedα⇒(α→Bool)→[α]→[α], g p (map h l) = map h (g (p◦h) l)

wenn h strikt.

• Für jedes g:: (α →Bool)→[α]→[α] (im neuen Typsystem), g p (map h l) = map h (g (p◦h) l)

ohne Bedingung anh.

(4)

2. Frage, für (nur) fix

Zu gegebenem Typ, gibt es ein g, so dass die

Striktheitsbedingungen notwendig sind? Nicht immer!

Idealszenario, mit automatischer Unterstützung:

• Ich gebe einen Typ vor, etwa g:: (α→Bool)→[α]→[α].

• Ich erhalte ein freies Theorem. Hier:

für jedes strikteh, g p (map h l) = maph (g (p◦h) l)

• Ich frage: warum mussh strikt sein? Was wäre sonst?

• Ich erhalte ein konkretes g, sowiep,l, und (nichstriktes) h für welche die Aussage dann falsch wäre.

(5)
(6)

Noch ein Beispiel

(7)

Zum Beispiel, suche ein g so dass

Pointedα⊢g: (α→Bool)→[α]→[α]

aber nicht

α⊢g: (α→Bool)→[α]→[α]

Natürlicher „Anfang“:

Γ⊢τ /∈Pointed Γ(fix(λx :τ.x)) :τ Ansonsten, abhängig vom Typ weitersuchen.

Problem: Nicht alle vorhandenen Regeln sind „syntax-gesteuert“.

Insbesondere:

Γ⊢t:τ1→τ2 Γ⊢u:τ1 Γ⊢(t u) :τ2

(8)

Idee 2: Curry/Howard-Isomorphismus

• [Dyckhoff 1992] stellt eine Beweisprozedur für intuitionistische Propositional-Logik vor.

• Diese Prozedur kann man als Generator für fix-freie Terme zu vorgegebenen polymorphen Typen verwenden

(Djinn, [Augustsson 2009]).

• Wir fügen unsere Regel

Γ⊢τ /∈Pointed Γ(fix (λx :τ.x)) :τ hinzu, führen weitere Anpassungen durch . . . [Seidel & V. 2010]

(9)

Sind alle Totalitäts- und „6=⊥“-bedingungen für jedesg notwendig?

Nein!

Naheliegender Ansatz: ersetze

Γ⊢t11 Γ⊢t22 Γ⊢(seq t1 t2) :τ2 durch

Γ⊢τ1∈Seqable Γ⊢t11 Γ⊢t22 Γ⊢(seqt1 t2) :τ2 , wobei

Seqableα,Γ⊢α∈Seqable ???

Γ⊢(τ1→τ2)∈Seqable Γ⊢Bool∈Seqable Γ⊢[τ]∈Seqable Problem:Man braucht einen ganz neuen Ansatz für Funktionstypen.

(10)

. . . aber es geht [Seidel & V. 2009]

Referenzen

ÄHNLICHE DOKUMENTE

In der Zeichnung ist ein Quadrat ABCD mit der Seitenlänge a abgebildet. die Kantenlängen im Dreieck BIC ) 2) Geben Sie einen sinnvollen Definitionsbereich für α an. 3) Für

[r]

Der Totalreflexionswinkel ( R=1 ) darf nicht mit dem Brewsterwinkel ( R=0 für p-Wellen) verwechselt werden, der ei- ne vollständige Polarisation des Lichtes, im gegebenen Beispiel für

Hieraus folgt insbesondere für Einheitsvektoren, dass das Skalarprodukt zweier paralleler Einheitsvektoren gleich Eins und das Produkt zweier senkrechter Einheitsvektoren gleich

Exercise 4 ∗ 6 ∗ Points A (totally) ordered class hA, ≤i is perfectly ordered if it satisfies the following conditions:. • A has a

[r]

Zeichne eine geeignete Hilfslinie ein und bestätige damit weitere Angaben aus

/ŶĞŝŶĞƌƉƌŽƐƉĞŬƚŝǀĞŶ^ƚƵĚŝĞǁƵƌĚĞƵŶƚĞƌƐƵĐŚƚ͕ŽďĚŝĞɲͲ'ůƵĐŽƐŝĚĂƐĞͲŬƚŝǀŝƚćƚŝŵƵƐĂŵŵĞŶŚĂŶŐŵŝƚ ĚĞƌ ĨƵŶŬƚŝŽŶĞůůĞŶ ^ƉĞƌŵŝĞŶƋƵĂůŝƚćƚ njƵŵ ĞŝŶĞŶ