Idea of Type Rules
Notation for Type Rules
We write to indicate that
- is well-typed inside and has resulting type
Examples:
Type rule for addition:
e1 : Int, e2 : Int ------------------ e1+e2 : Int
For <=:
e1 : int, e2 : int ------------------ e1<=e2 : boolean
Type derivation for
3 + 5 <= 9
is the following
3 : Int, 5 : Int ---------------- , 9 : Int 3 + 5 : Int --------------------------- (3 + 5 <= 9) : boolean
Type Rule for Function Application
We have
- for user-defined functions, rules are given by their declaration
The general rule for operation is:
- if ,
- and ,
- then
We write this as the following application typing rule: