PFPL Chapter 3 Hypothetical and General Judgments
Please refer this link from page 23 to 32.
Keywords
- Hypothetical Judgments: an entailment between one or more hypotheses and a conclusion.
- Entailment has 2 notions:
- derivability
- admissibility
- General Judgment: the universality or genericity of a judgment.
- General Judgment has 2 forms:
- generic
- parametric
Hypothetical Judgments
Some notations:
- $\Delta$ or $\Gamma$ to stand for a finite set of basic judgments.
- $\mathcal{R}$ stands for a finite set of rules.
- $\vdash$ stands for derivability.
- $\vdash_\mathcal{R}$ stands for derivable under set of rules $\mathcal{R}$.
- $\vDash$ stands for admissibility.
- $\vDash_\mathcal{R}$ stands for admissible under set of rule $\mathcal{R}$.
Derivability
The derivability judgment is defined by $\mathrm J_1,\dots,\mathrm J_k \vdash_R K$, where $\mathrm J_i$ and $K$ are basic judgments.
In another word, we can derive $K$ from the expansion $R \cup {J_1,\dots,J_k }$ of rule set $R$ with axioms
$$
\dfrac{}{\mathrm J_1}, \dots, \dfrac{}{\mathrm J_k}
$$
An equivalent way to see this is to say that
$$
\dfrac{J_1\dots J_n}J
$$
is derivable from $R$.
Stability
If $\Gamma \vdash_R J$, then $\Gamma \vdash_{R\cup R’} J$.
Reflexivity
Every judgment is a consequence of itself: $\Gamma, J\vdash_R J$. Every hypothesis justifies itself as conclusion.
Weakening
If $\Gamma \vdash_R J$, then $\Gamma, K \vdash_R J$. Entailment is not influenced by un-exercised options.
Transitivity
If $\Gamma, K \vdash_R J$ and $\Gamma \vdash_R K$, then $\Gamma \vdash_R J$.
Admissibility
A weaker form of hypothetical judgment than derivability, written as $\Gamma \vDash_R J$.
It is stating that $\vdash_R \Gamma$ implies $\vdash_R J$.
If any of hypotheses are not derivable by $R$, then it is vacuously true.
An equivalent way to see this is to say that
$$
\dfrac{J_1\dots J_n}J
$$
is admissible relative to the rules in $R$.
Weaker Form
If $\Gamma \vdash_R J$, then $\Gamma \vDash_R J$
Reflexivity
$J\vDash_R J$
Weakening
If $\Gamma \vDash_R J$, then $\Gamma, K \vDash_R J$
Transitivity
If $\Gamma, K \vDash_R J$ and $\Gamma \vDash_R K$, then $\Gamma \vDash_R J$
Structural Properties of Entailment
$\Gamma \vDash_R J$ enjoys the structural properties of entailment.
Differences between Derivability and Admissibility
Derivability | Admissibility |
---|---|
Stable under extension with new rules. | Not stable with new rules extension. (Strongest & Closed-Under) |
Get evidence by composing rules | Get evidence by composing and induction |
Hypothetical Inductive Definitions
Some notations:
- $\Gamma$ as global hypotheses
- $\Gamma_i$ as local hypothesis for $i^{th}$ premise of some rule
Enrich the concept of inductive definition to allow rules with derivability judgments as premises and conclusions.
Local Hypothesis is applied only in derivation of a particular premise, like the $\Gamma_i$ in $\Gamma \Gamma_i \vdash J_i$.
Hypothetical inductive definition has a following form
$$
\dfrac{\Gamma \Gamma_1 \vdash J_1, \dots, \Gamma \Gamma_n \vdash J_n}{\Gamma \vdash J}
$$
We require all rules in hypothetical inductive definition be uniform (so to say they can be applied in all global contexts). Then we have a implicit or local form
$$
\dfrac{\Gamma_1 \vdash J_1, \dots, \Gamma_n \vdash J_n}{J}
$$
A hypothetical inductive definition is regarded as an inductive definition of a formal deriviability judgment $\Gamma \vdash J$.
A set of hypothetical rules $R$ defines the strongest formal derivability judgment that is structural and closed under uniform rules $R$. (closed and strongest please refer here).
Structural/Structurality means that the formal derivability judgment must be closed under the rules:
$$
\dfrac{}{\Gamma, J \vdash J}
$$$$
\dfrac{\Gamma \vdash J}{\Gamma, K \vdash J}
$$$$
\dfrac{\Gamma \vdash K\phantom{“”}\Gamma, K \vdash J}{\Gamma \vdash J}
$$
Principle of hypothetical rule induction is just the principle of rule induction applied to the formal hypothetical judgment.
So to show $P(\Gamma \vdash J)$ when $\Gamma \vdash_R J$, it is enough to show that $P$ is closed under the rules of $R$ and the structural rules.
We use admissibility method to dispense structural rules in practice.
To prove that structural rules are admissible by rule induction may restrict rules in $R$.
If all rules in $R$ are uniform, then the latter 2 structural rules are admissible.
The first structural rule must be stated explicitly as a rule.
General Judgments
Some notations:
- $\Gamma \vdash^{\mathcal{U;X}}_\mathcal {R} J$ stands for $J$ is derivable from $\Gamma$ according to rule $\mathcal R$, with objects consisting of abt’s over symbol $\mathcal U$ and variables $\mathcal R$.
General judgments codify the rules for handling variables in a judgment.
- A generic judgment states that a judgment holds for any choice of objects replacing designated variables in original judgment. (generality wrt all substitution instances for variables in a judgment)
- A parametric judgment expresses generality over any fresh renaming of designated symbols in a judgment.
Extended Concept of Uniformity
The concept of uniformity of rules is extended to require that the rules be
- closed under renaming and substitution of variables
- closed under renaming for parameters
If $\mathcal R$ is a set of rules including free variable $x$ of sort $s$ , then it should include all possible substitution instances of abt’s $a$ of sort $s$ for $x$.
Similarly, if $\mathcal R$ contains rules with a parameter $u$, then it must contain all instances that rules substitute $u$ with $u’$ of same sort.
Uniformity rules out stating a rule for a variable/parameter.
Generic and Parametric Derivability
Generic Derivability
Generic derivability is defined as
$$
\mathcal Y\ |\ \Gamma \vdash^\mathcal X_R \iff \Gamma \vdash ^{\mathcal{X} \mathcal Y}_R J
$$
where $\mathcal Y \cap \mathcal X = \varnothing$.
The evidence of generic derivability consist of a generic derivation $\triangledown$ involving variables $\mathcal X \ \mathcal Y$.
Structural Properties of Generic Derivability
So long as $\mathcal R$ is uniform, the following structural properties governs the behavior of variables.
Proliferation
If $\mathcal Y \ | \ \Gamma \vdash^\mathcal X_\mathcal R J$, then $\mathcal Y, \mathcal y \ | \ \Gamma \vdash^\mathcal X_\mathcal R J$
Renaming
If $\mathcal Y, \mathcal y \ | \ \Gamma \vdash^\mathcal X_\mathcal R J$, then $\mathcal Y, \mathcal y’ \ | \ [y \leftrightarrow y’]\Gamma \vdash^\mathcal X_\mathcal R [y \leftrightarrow y’]J$ for any $y \notin \mathcal X\ \mathcal Y$
Substitution
If $\mathcal Y, \mathcal y \ | \ \Gamma \vdash^\mathcal X_\mathcal R J$ and $a \in \mathcal B[\mathcal X\ \mathcal Y]$, then $\mathcal Y\ | \ [a/y]\Gamma \vdash^\mathcal X_\mathcal R [a/y]J$
Parametric Derivability
Parametric derivability is defined as
$$
\mathcal V \ \parallel\ \mathcal Y\ |\ \Gamma \vdash^{\mathcal U;\mathcal X}_R J \iff \mathcal {Y}\ |\ \Gamma \vdash_R^{\mathcal{UV;X}} J
$$
where $\mathcal U \cap \mathcal V = \varnothing$
Generic Inductive Definitions
A generic rule has form
$$
\dfrac{\mathcal Y\ \mathcal Y_1\ |\ \Gamma\ \Gamma_1 \vdash J_1\ \dots\ \mathcal Y\ \mathcal Y_n\ |\ \Gamma\ \Gamma_n \vdash J_n}{\mathcal Y\ |\ \Gamma \vdash J}
$$
and implicit form
$$
\dfrac{\mathcal Y_1\ |\ \Gamma_1 \vdash J_1\ \dots\ \mathcal Y_n\ |\ \Gamma_n\vdash J_n}{J}
$$
To ensure that the formal generic judgments behaves like a generic judgment, we must ensure the structural rules are admissible
$$
\dfrac{}{\mathcal Y\ |\ \Gamma, J\vdash J}
$$
$$
\dfrac{\mathcal Y\ |\ \Gamma \vdash J}{\mathcal Y\ |\ \Gamma, J’ \vdash J}
$$
$$
\dfrac{\mathcal Y\ |\ \Gamma \vdash J}{\mathcal Y, x\ |\ \Gamma \vdash J}
$$
$$
\dfrac{\mathcal Y, x’\ |\ [x \leftrightarrow x’]\Gamma \vdash [x \leftrightarrow x’]J}{\mathcal Y, x\ |\ \Gamma \vdash J}
$$
$$
\dfrac{\mathcal Y\ |\ \Gamma \vdash J \phantom{“”} \mathcal Y\ |\ \Gamma, J \vdash J’}{\mathcal Y\ |\ \Gamma \vdash J’}
$$
$$
\dfrac{\mathcal Y, x\ |\ \Gamma \vdash J\phantom{“”}a \in \mathcal B[\mathcal Y]}{\mathcal Y\ |\ [a/x]\Gamma \vdash [a/x]J}
$$
The last rule must be verified explicitly for each inductive definition.
Exercise
3.1
$$
\dfrac{\text{s comb}}{\text{len(s, 1)}}\phantom{“”}\dfrac{\text{k comb}}{\text{len(k, 1)}}
$$
$$
\dfrac{a_1\text{ comb}\phantom{“”}n_1\text{ nat}\phantom{“”}\text{len}(a_1, n_1)}{\text{len}(\text{ap}(a_1;\text{s}), \text{succ}(n_1))}
$$
$$
\dfrac{a_1\text{ comb}\phantom{“”}n_1\text{ nat}\phantom{“”}\text{len}(a_1, n_1)}{\text{len}(\text{ap}(a_1;\text{k}), \text{succ}(n_1))}
$$
$$
\dfrac{a_2\text{ comb}\phantom{“”}n_2\text{ nat}\phantom{“”}\text{len}(a_2, n_2)}{\text{len}(\text{ap}(\text{s};a_2), \text{succ}(n_2))}
$$
$$
\dfrac{a_2\text{ comb}\phantom{“”}n_2\text{ nat}\phantom{“”}\text{len}(a_2, n_2)}{\text{len}(\text{ap}(\text{k};a_2), \text{succ}(n_2))}
$$
3.2
- Rename $x’$ of $x$ and extend the $\mathcal C$ with rule $a’ \text{comb}$.
- Substitute $x’$ with $a_1$ if $x’$ occurs, otherwise proceed inductively.
3.3
$$
\text{s k k x} \equiv (\text{k x}) (\text{k x}) \equiv \text x
$$
3.4
Consider $[x]a$ with fixed $x$ as argument, i.e., $([x]a) x$
The bracket abstraction can be defined by following rules
$$
\dfrac{}{[x]x \equiv \text{s k k}}
$$
$$
\dfrac{}{[x]\text k \equiv \text{k k}}
$$
$$
\dfrac{}{[x]\text s \equiv \text{k s}}
$$
$$
\dfrac{[x]a_1 \equiv a_1’\phantom{“”}[x]a_2 \equiv a_2’}{[x]a_1 a_2 \equiv \text{s }([x]a_1) \ ([x]a_2)}
$$
3.5
According to Prof. Harper, if we use the definition of $[x] a$ in 3.4, then we will get a big mass on left hand side: $[a/y]$$([x]b)$. Consider the case when $b$ is $y$, then it will reconstruct $a$ when $x$ is applied but it will be a big mass.
So the main point is to construct a more efficient abstraction algorithm here for SKI combinator and avoid messing with parts without $x$. Say, $[x]a \triangleq \text{ap}(\text{k}; a)$ when $x \notin a$.
Related links:
3.6
- $\mathcal B[\mathcal X]$ of abt’s is generated by
- operator $\text{ap}$ with arity
(Exp, Exp) Exp
- operator $\lambda$ with arity
(Exp.Exp) Exp
- $\mathcal X$ set of variables with sort
Exp
- operator $\text{ap}$ with arity
So for $b \text{ closed}$ with no occurrences of variables in $\mathcal X$, we define following inductive rules
$$
\dfrac{1 \leq i \leq n}{x_1, \dots, x_k\ |\ x_1 \text{ closed}, \dots, x_k\text{ closed}\ \vdash x_i \text{ closed}}
$$
$$
\dfrac{x_1, \dots, x_k\ |\ x_1 \text{ closed}, \dots, x_k\text{ closed}\ \vdash a_1 \text{ closed}\phantom{“”}x_1, \dots, x_k\ |\ x_1 \text{ closed}, \dots, x_k\text{ closed}\ \vdash a_2 \text{ closed}}{x_1, \dots, x_k\ |\ x_1 \text{ closed}, \dots, x_k\text{ closed}\ \vdash \text{ap}(a_1;a_2) \text{ closed}}
$$
$$
\dfrac{x_1, \dots, x_k\ |\ x_1 \text{ closed}, \dots, x_k\text{ closed}, x \text{ closed}\ \vdash a \text{ closed}}{x_1, \dots, x_k\ |\ x_1 \text{ closed}, \dots, x_k\text{ closed}\ \vdash \lambda(x.a) \text{ closed}}
$$
We need to require that these local variables $x_1, \dots, x_k$ are disjoint to $\mathcal X$.