(add-var-name "x" (py "alpha"))
(add-predconst-name "Q" (make-arity (py "alpha")))
(add-predconst-name "P" (make-arity))

(set-goal (pf "(ex x Q x -> P) -> all x.Q x -> P"))







































(assume 1 "x" 2)
(use 1)
(ex-intro (pt "x"))
(use 2)

(dp)

; ....ex x Q x -> P by assumption Hyp0
; ......all x5.Q x5 -> ex x5 Q x5 by axiom Ex-Intro
; ......x
; .....Q x -> ex x5 Q x5 by all elim
; .....Q x by assumption Hyp1
; ....ex x5 Q x5 by imp elim
; ...P by imp elim
; ..Q x -> P by imp intro Hyp1
; .all x.Q x -> P by all intro
; (ex x Q x -> P) -> all x.Q x -> P by imp intro Hyp0