Section Paradox.
Variable Lambda : Set.
Variable lambda : (Lambda -> False) ->Lambda.
Variable matchL  : Lambda -> forall Q:Prop, ((Lambda ->False) -> Q) -> Q.
(* understand matchL Q l (fun h : Lambda -> False => t)  as match l return Q with lambda h => t end *)
Definition application (f x: Lambda) :False :=
matchL f False (fun h => h x).
Definition Delta : Lambda := lambda (fun x : Lambda => application x x).
Definition loop : False := application Delta Delta.

Theorem two_is_three : 2 = 3.