src/HOL/Isar_Examples/Peirce.thy
changeset 55640 abc140f21caa
parent 37671 fa53d267dab3
child 58614 7338eb25226c
equal deleted inserted replaced
55639:e4e8cbd9d780 55640:abc140f21caa
    17   the negated goal may be introduced as additional assumption.  This
    17   the negated goal may be introduced as additional assumption.  This
    18   eventually leads to a contradiction.\footnote{The rule involved
    18   eventually leads to a contradiction.\footnote{The rule involved
    19   there is negation elimination; it holds in intuitionistic logic as
    19   there is negation elimination; it holds in intuitionistic logic as
    20   well.} *}
    20   well.} *}
    21 
    21 
    22 theorem "((A --> B) --> A) --> A"
    22 theorem "((A \<longrightarrow> B) \<longrightarrow> A) \<longrightarrow> A"
    23 proof
    23 proof
    24   assume "(A --> B) --> A"
    24   assume "(A \<longrightarrow> B) \<longrightarrow> A"
    25   show A
    25   show A
    26   proof (rule classical)
    26   proof (rule classical)
    27     assume "~ A"
    27     assume "\<not> A"
    28     have "A --> B"
    28     have "A \<longrightarrow> B"
    29     proof
    29     proof
    30       assume A
    30       assume A
    31       with `~ A` show B by contradiction
    31       with `\<not> A` show B by contradiction
    32     qed
    32     qed
    33     with `(A --> B) --> A` show A ..
    33     with `(A \<longrightarrow> B) \<longrightarrow> A` show A ..
    34   qed
    34   qed
    35 qed
    35 qed
    36 
    36 
    37 text {* In the subsequent version the reasoning is rearranged by means
    37 text {* In the subsequent version the reasoning is rearranged by means
    38   of ``weak assumptions'' (as introduced by \isacommand{presume}).
    38   of ``weak assumptions'' (as introduced by \isacommand{presume}).
    46   \isacommand{show} in the context of weak assumptions then the latter
    46   \isacommand{show} in the context of weak assumptions then the latter
    47   give rise to new subgoals, which may be established separately.  In
    47   give rise to new subgoals, which may be established separately.  In
    48   contrast, strong assumptions (as introduced by \isacommand{assume})
    48   contrast, strong assumptions (as introduced by \isacommand{assume})
    49   are solved immediately. *}
    49   are solved immediately. *}
    50 
    50 
    51 theorem "((A --> B) --> A) --> A"
    51 theorem "((A \<longrightarrow> B) \<longrightarrow> A) \<longrightarrow> A"
    52 proof
    52 proof
    53   assume "(A --> B) --> A"
    53   assume "(A \<longrightarrow> B) \<longrightarrow> A"
    54   show A
    54   show A
    55   proof (rule classical)
    55   proof (rule classical)
    56     presume "A --> B"
    56     presume "A \<longrightarrow> B"
    57     with `(A --> B) --> A` show A ..
    57     with `(A \<longrightarrow> B) \<longrightarrow> A` show A ..
    58   next
    58   next
    59     assume "~ A"
    59     assume "\<not> A"
    60     show "A --> B"
    60     show "A \<longrightarrow> B"
    61     proof
    61     proof
    62       assume A
    62       assume A
    63       with `~ A` show B by contradiction
    63       with `\<not> A` show B by contradiction
    64     qed
    64     qed
    65   qed
    65   qed
    66 qed
    66 qed
    67 
    67 
    68 text {* Note that the goals stemming from weak assumptions may be even
    68 text {* Note that the goals stemming from weak assumptions may be even