(* ID: $Id: Guess.thy,v 1.1 2006/07/04 17:49:56 wenzelm Exp $ Author: Makarius *) header {* Proof by guessing *} theory Guess imports Main begin lemma True proof have 1: "∃x. x = x" by simp from 1 guess .. from 1 guess x .. from 1 guess x :: 'a .. from 1 guess x :: nat .. have 2: "∃x y. x = x & y = y" by simp from 2 guess apply - apply (erule exE conjE)+ done from 2 guess x apply - apply (erule exE conjE)+ done from 2 guess x y apply - apply (erule exE conjE)+ done from 2 guess x :: 'a and y :: 'b apply - apply (erule exE conjE)+ done from 2 guess x y :: nat apply - apply (erule exE conjE)+ done qed end
lemma
True