Your fixed point theorem is a special case of the Knaster-Tarski fixed point theorem. In fact, we can improve your theorem a bit.
[Note: this correction has been incorporated into the question.]
First a correction. You incorrectly transcribed the the original text, which defines the fixed point $G(x)$ as $\forall H . (\forall x . H(x) \Leftrightarrow \alpha_H(x)) \Rightarrow H(x)$ whereas you omitted the inner quantifier and wrote $\forall H . (H(x) \Leftrightarrow \alpha_H(x)) \Rightarrow H(x)$.
Arguably the book is teaching some bad habits, I tell my students never to shadow bound variables like that.
Let me write $G \leq H$ when $\forall x . G x \Rightarrow H x$. The monadic predicates are partially ordered by $\leq$, and in fact they form a complete lattice in the sense that for any schematic formula $\Phi(H)$, the monadic predicate $G(X) \mathrel{{:}{=}} \forall H . \Phi(H) \to H(x)$ satisfies the conditions:
- $\Phi(H) \Rightarrow G \leq H$, and
- $\forall G' . (\forall H . \Phi(H) \Rightarrow G' \leq H) \Rightarrow G' \leq G$.
Furthermore, note that the stated positivity condition on $\alpha_I$ implies monotonicity of $\alpha$ in the sense that $I \leq J \Rightarrow \alpha_I \leq \alpha_J$. We may therefore apply the Knaster-Tarski fixed point theorem (which states that a monotone map on a complete lattice has a least fixed point) to compute the fixed point of $\alpha$ as the infimum of all the prefixed points of $\alpha$:
$$ G(x) \mathrel{{:}{=}} \forall H . \alpha_H \leq H \Rightarrow H(x).$$
The standard proof of Knaster-Tarski confirms that $G$ is the least fixed point of $\alpha$ (see attached formalization in Coq).
There is a slight difference between your construction of $G$ and the one we used. Namely, you took $G(x)$ to be
$$\forall H . (\forall y . \alpha_H(x) \Leftrightarrow H(x)) \Rightarrow H(x),$$
which is the infimum of all fixed points. However, since every fixed point is prefixed point, and the least prefixed point is fixed, it makes no difference which infimum we take.
For your entertainment, here's the formal proof, written in Coq. (It's easier for me to verify things this way than on paper.)
Section FixedPointTheorem.
(* We work with a domain of individuals U. *)
Variable U : Set.
(* The monadic predicates on U. *)
Definition M := U -> Prop.
(* We write H <= G as a shorthand for "for all x, H x implies G x". *)
Notation "H <= G" := (forall x, H x -> G x).
(* Consider a monotone transformation α on M. *)
Variable α : M -> M.
Hypothesis α_monotone : forall I J : M, I <= J -> α I <= α J.
(* Let G be our candidate for the fixed point of α.
We are just following the usual proof of Knaster-Tarski here. *)
Let G x := forall H : M, α H <= H -> H x.
(* G is a prefixed point of α. *)
Lemma G_prefixed: α G <= G.
Proof.
intros x ? ? Q.
apply Q.
cut (α G x).
- apply α_monotone.
intros ? R.
now apply R.
- assumption.
Qed.
(* G is a fixed point of α. *)
Theorem G_fixed: forall x, α G x <-> G x.
Proof.
intro x.
split.
- now apply G_prefixed.
- intro P.
apply P, α_monotone, G_prefixed.
Qed.
(* G is below every fixed point of α. *)
Theorem G_least_fixed: forall H, α H <= H -> G <= H.
Proof.
intros ? ? ? Q.
now apply Q.
Qed.
(* The alternative construction of the fixed point. *)
Definition F x := forall H, (forall y, α H y <-> H y) -> H x.
Lemma F_iff_G x: G x <-> F x.
Proof.
split.
- intros Gx H P.
apply P, Gx, α_monotone, P.
- intros Fx.
apply Fx, G_fixed.
Qed.
End FixedPointTheorem.
.. there are plenty of FPTs out there that I have never encountered. I will post later if you do not beat me to them. :)
– Frode Alfson Bjørdal Dec 01 '20 at 19:19