Ich nehme an, Sie sprechen über die einfach typisierten Lambda-Kalkül mit den Datentypen erweitert int
und boolean
, wobei die Begriffe _≤_
, 1
und 2
und die Typisierung Ableitungsregeln
--------------------------------
Γ ⊢ _≤_ : int → int → boolean
------------
Γ ⊢ 1 : int
------------
Γ ⊢ 2 : int
diese verwenden, und die Standard-STLC Tippregeln, der Typ Ihrer Amtszeit ist nichtint → boolean
, eher ist es boolean
wie wir unten sehen werden. Auch es reduziert sich auf 2 ≤ 1
, so dass Sie ziemlich leicht zeigen sollten, dass es sich um eine boolean
handelt.
Aber jetzt, um das Fleisch davon: die Typisierung Herleitungsbaum:
{x : int} ⊢ _≤_ : int → int → boolean {x : int} ⊢ x : int
----------------------------------------------------------------
{x : int} ⊢ x ≤_ : int → boolean {x: int} ⊢ 1 : int
--------------------------------------------------------------------
{x: int} ⊢ x ≤ 1 : boolean
auf horizontalen Raum zu sparen, lassen Sie sich in einem neuen Baum den Rest:
{x: int} ⊢ x ≤ 1 : boolean
----------------------------------------
{} ⊢ (λx : int. (x ≤ 1) : int → boolean {} ⊢ 2 : int
-------------------------------------------------------------------
{} ⊢ ((λx : int. (x ≤ 1)) 2) : boolean ∎