src/HOL/ex/Guess.thy
author blanchet
Wed, 11 Feb 2015 14:53:56 +0100
changeset 59511 ef65605a7d9c
parent 59031 4c3bb56b8ce7
child 61343 5b5656a63bd6
permissions -rw-r--r--
updated NEWS

(*
    Author:     Makarius
*)

section {* Proof by guessing *}

theory Guess
imports Main
begin

notepad
begin
  have 1: "\<exists>x. x = x" by simp

  from 1 guess ..
  from 1 guess x ..
  from 1 guess x :: 'a ..
  from 1 guess x :: nat ..

  have 2: "\<exists>x y. x = x \<and> 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
end

end