1 header{*Examples of Intuitionistic Reasoning*}
3 theory IFOL_examples imports IFOL begin
5 text{*Quantifier example from the book Logic and Computation*}
6 lemma "(EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y))"
7 --{* @{subgoals[display,indent=0,margin=65]} *}
9 --{* @{subgoals[display,indent=0,margin=65]} *}
11 --{* @{subgoals[display,indent=0,margin=65]} *}
13 --{* @{subgoals[display,indent=0,margin=65]} *}
15 --{* @{subgoals[display,indent=0,margin=65]} *}
17 --{* @{subgoals[display,indent=0,margin=65]} *}
18 txt{*Now @{text "apply assumption"} fails*}
21 text{*Trying again, with the same first two steps*}
22 lemma "(EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y))"
23 --{* @{subgoals[display,indent=0,margin=65]} *}
25 --{* @{subgoals[display,indent=0,margin=65]} *}
27 --{* @{subgoals[display,indent=0,margin=65]} *}
29 --{* @{subgoals[display,indent=0,margin=65]} *}
31 --{* @{subgoals[display,indent=0,margin=65]} *}
33 --{* @{subgoals[display,indent=0,margin=65]} *}
35 --{* @{subgoals[display,indent=0,margin=65]} *}
38 lemma "(EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y))"
39 by (tactic {*IntPr.fast_tac 1*})
41 text{*Example of Dyckhoff's method*}
42 lemma "~ ~ ((P-->Q) | (Q-->P))"
43 --{* @{subgoals[display,indent=0,margin=65]} *}
44 apply (unfold not_def)
45 --{* @{subgoals[display,indent=0,margin=65]} *}
47 --{* @{subgoals[display,indent=0,margin=65]} *}
48 apply (erule disj_impE)
49 --{* @{subgoals[display,indent=0,margin=65]} *}
50 apply (erule imp_impE)
51 --{* @{subgoals[display,indent=0,margin=65]} *}
52 apply (erule imp_impE)
53 --{* @{subgoals[display,indent=0,margin=65]} *}