1459

1 
(* Title: FOL/ex/prop

0

2 
ID: $Id$

1459

3 
Author: Lawrence C Paulson, Cambridge University Computer Laboratory

0

4 
Copyright 1991 University of Cambridge


5 


6 
FirstOrder Logic: propositional examples (intuitionistic and classical)


7 
Needs declarations of the theory "thy" and the tactic "tac"


8 
*)


9 


10 
writeln"File FOL/ex/prop.";


11 


12 


13 
writeln"commutative laws of & and  ";

5050

14 
Goal "P & Q > Q & P";

0

15 
by tac;


16 
result();


17 

5050

18 
Goal "P  Q > Q  P";

0

19 
by tac;


20 
result();


21 


22 


23 
writeln"associative laws of & and  ";

5050

24 
Goal "(P & Q) & R > P & (Q & R)";

0

25 
by tac;


26 
result();


27 

5050

28 
Goal "(P  Q)  R > P  (Q  R)";

0

29 
by tac;


30 
result();


31 


32 


33 


34 
writeln"distributive laws of & and  ";

5050

35 
Goal "(P & Q)  R > (P  R) & (Q  R)";

0

36 
by tac;


37 
result();


38 

5050

39 
Goal "(P  R) & (Q  R) > (P & Q)  R";

0

40 
by tac;


41 
result();


42 

5050

43 
Goal "(P  Q) & R > (P & R)  (Q & R)";

0

44 
by tac;


45 
result();


46 


47 

5050

48 
Goal "(P & R)  (Q & R) > (P  Q) & R";

0

49 
by tac;


50 
result();


51 


52 


53 
writeln"Laws involving implication";


54 

5050

55 
Goal "(P>R) & (Q>R) <> (PQ > R)";

0

56 
by tac;


57 
result();


58 


59 

5050

60 
Goal "(P & Q > R) <> (P> (Q>R))";

0

61 
by tac;


62 
result();


63 


64 

5050

65 
Goal "((P>R)>R) > ((Q>R)>R) > (P&Q>R) > R";

0

66 
by tac;


67 
result();


68 

5050

69 
Goal "~(P>R) > ~(Q>R) > ~(P&Q>R)";

0

70 
by tac;


71 
result();


72 

5050

73 
Goal "(P > Q & R) <> (P>Q) & (P>R)";

0

74 
by tac;


75 
result();


76 


77 


78 
writeln"Propositionsastypes";


79 


80 
(*The combinator K*)

5050

81 
Goal "P > (Q > P)";

0

82 
by tac;


83 
result();


84 


85 
(*The combinator S*)

5050

86 
Goal "(P>Q>R) > (P>Q) > (P>R)";

0

87 
by tac;


88 
result();


89 


90 


91 
(*Converse is classical*)

5050

92 
Goal "(P>Q)  (P>R) > (P > Q  R)";

0

93 
by tac;


94 
result();


95 

5050

96 
Goal "(P>Q) > (~Q > ~P)";

0

97 
by tac;


98 
result();


99 


100 


101 
writeln"Schwichtenberg's examples (via T. Nipkow)";


102 


103 
(* stabimp *)

5050

104 
Goal "(((Q>R)>R)>Q) > (((P>Q)>R)>R)>P>Q";

0

105 
by tac;


106 
result();


107 


108 
(* stabtopeirce *)

5050

109 
Goal "(((P > R) > R) > P) > (((Q > R) > R) > Q) \

1459

110 
\ > ((P > Q) > P) > P";

0

111 
by tac;


112 
result();


113 


114 
(* peirceimp1 *)

5050

115 
Goal "(((Q > R) > Q) > Q) \

1459

116 
\ > (((P > Q) > R) > P > Q) > P > Q";

0

117 
by tac;


118 
result();


119 


120 
(* peirceimp2 *)

5050

121 
Goal "(((P > R) > P) > P) > ((P > Q > R) > P) > P";

0

122 
by tac;


123 
result();


124 


125 
(* mints *)

5050

126 
Goal "((((P > Q) > P) > P) > Q) > Q";

0

127 
by tac;


128 
result();


129 


130 
(* mintssolovev *)

5050

131 
Goal "(P > (Q > R) > Q) > ((P > Q) > R) > R";

0

132 
by tac;


133 
result();


134 


135 
(* tatsuta *)

5050

136 
Goal "(((P7 > P1) > P10) > P4 > P5) \

1459

137 
\ > (((P8 > P2) > P9) > P3 > P10) \


138 
\ > (P1 > P8) > P6 > P7 \


139 
\ > (((P3 > P2) > P9) > P4) \


140 
\ > (P1 > P3) > (((P6 > P1) > P2) > P9) > P5";

0

141 
by tac;


142 
result();


143 


144 
(* tatsuta1 *)

5050

145 
Goal "(((P8 > P2) > P9) > P3 > P10) \

0

146 
\ > (((P3 > P2) > P9) > P4) \


147 
\ > (((P6 > P1) > P2) > P9) \


148 
\ > (((P7 > P1) > P10) > P4 > P5) \


149 
\ > (P1 > P3) > (P1 > P8) > P6 > P7 > P5";


150 
by tac;


151 
result();


152 


153 
writeln"Reached end of file.";
