src/HOL/ex/Guess.thy
author krauss
Tue, 28 Sep 2010 09:54:07 +0200
changeset 39754 150f831ce4a3
parent 20005 3fd6d57b16de
child 41460 ea56b98aee83
permissions -rw-r--r--
no longer declare .psimps rules as [simp]. This regularly caused confusion (e.g., they show up in simp traces when the regular simp rules are disabled). In the few places where the rules are used, explicitly mentioning them actually clarifies the proof text.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20005
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
     1
(*
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
     2
    ID:         $Id$
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
     3
    Author:     Makarius
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
     4
*)
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
     5
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
     6
header {* Proof by guessing *}
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
     7
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
     8
theory Guess
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
     9
imports Main
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    10
begin
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    11
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    12
lemma True
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    13
proof
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    14
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    15
  have 1: "\<exists>x. x = x" by simp
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    16
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    17
  from 1 guess ..
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    18
  from 1 guess x ..
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    19
  from 1 guess x :: 'a ..
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    20
  from 1 guess x :: nat ..
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    21
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    22
  have 2: "\<exists>x y. x = x & y = y" by simp
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    23
  from 2 guess apply - apply (erule exE conjE)+ done
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    24
  from 2 guess x apply - apply (erule exE conjE)+ done
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    25
  from 2 guess x y apply - apply (erule exE conjE)+ done
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    26
  from 2 guess x :: 'a and y :: 'b apply - apply (erule exE conjE)+ done
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    27
  from 2 guess x y :: nat apply - apply (erule exE conjE)+ done
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    28
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    29
qed
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    30
3fd6d57b16de Proof by guessing.
wenzelm
parents:
diff changeset
    31
end