src/FOLP/ex/int.ML
changeset 3836 f1a1817659e6
parent 2603 4988dda71c0b
child 15531 08c8dad8e399
equal deleted inserted replaced
3835:9a5a4e123859 3836:f1a1817659e6
   178 
   178 
   179 writeln"** Examples with quantifiers **";
   179 writeln"** Examples with quantifiers **";
   180 
   180 
   181 writeln"The converse is classical in the following implications...";
   181 writeln"The converse is classical in the following implications...";
   182 
   182 
   183 goal IFOLP.thy "?p : (EX x.P(x)-->Q)  -->  (ALL x.P(x)) --> Q";
   183 goal IFOLP.thy "?p : (EX x. P(x)-->Q)  -->  (ALL x. P(x)) --> Q";
   184 by (IntPr.fast_tac 1); 
   184 by (IntPr.fast_tac 1); 
   185 result();  
   185 result();  
   186 
   186 
   187 goal IFOLP.thy "?p : ((ALL x.P(x))-->Q) --> ~ (ALL x. P(x) & ~Q)";
   187 goal IFOLP.thy "?p : ((ALL x. P(x))-->Q) --> ~ (ALL x. P(x) & ~Q)";
   188 by (IntPr.fast_tac 1); 
   188 by (IntPr.fast_tac 1); 
   189 result();  
   189 result();  
   190 
   190 
   191 goal IFOLP.thy "?p : ((ALL x. ~P(x))-->Q)  -->  ~ (ALL x. ~ (P(x)|Q))";
   191 goal IFOLP.thy "?p : ((ALL x. ~P(x))-->Q)  -->  ~ (ALL x. ~ (P(x)|Q))";
   192 by (IntPr.fast_tac 1); 
   192 by (IntPr.fast_tac 1); 
   193 result();  
   193 result();  
   194 
   194 
   195 goal IFOLP.thy "?p : (ALL x.P(x)) | Q  -->  (ALL x. P(x) | Q)";
   195 goal IFOLP.thy "?p : (ALL x. P(x)) | Q  -->  (ALL x. P(x) | Q)";
   196 by (IntPr.fast_tac 1); 
   196 by (IntPr.fast_tac 1); 
   197 result();  
   197 result();  
   198 
   198 
   199 goal IFOLP.thy "?p : (EX x. P --> Q(x)) --> (P --> (EX x. Q(x)))";
   199 goal IFOLP.thy "?p : (EX x. P --> Q(x)) --> (P --> (EX x. Q(x)))";
   200 by (IntPr.fast_tac 1);
   200 by (IntPr.fast_tac 1);
   204 
   204 
   205 
   205 
   206 writeln"The following are not constructively valid!";
   206 writeln"The following are not constructively valid!";
   207 (*The attempt to prove them terminates quickly!*)
   207 (*The attempt to prove them terminates quickly!*)
   208 
   208 
   209 goal IFOLP.thy "?p : ((ALL x.P(x))-->Q) --> (EX x.P(x)-->Q)";
   209 goal IFOLP.thy "?p : ((ALL x. P(x))-->Q) --> (EX x. P(x)-->Q)";
   210 by (IntPr.fast_tac 1) handle ERROR => writeln"Failed, as expected";  
   210 by (IntPr.fast_tac 1) handle ERROR => writeln"Failed, as expected";  
   211 getgoal 1; 
   211 getgoal 1; 
   212 
   212 
   213 goal IFOLP.thy "?p : (P --> (EX x.Q(x))) --> (EX x. P-->Q(x))";
   213 goal IFOLP.thy "?p : (P --> (EX x. Q(x))) --> (EX x. P-->Q(x))";
   214 by (IntPr.fast_tac 1) handle ERROR => writeln"Failed, as expected";  
   214 by (IntPr.fast_tac 1) handle ERROR => writeln"Failed, as expected";  
   215 getgoal 1; 
   215 getgoal 1; 
   216 
   216 
   217 goal IFOLP.thy "?p : (ALL x. P(x) | Q) --> ((ALL x.P(x)) | Q)";
   217 goal IFOLP.thy "?p : (ALL x. P(x) | Q) --> ((ALL x. P(x)) | Q)";
   218 by (IntPr.fast_tac 1) handle ERROR => writeln"Failed, as expected";  
   218 by (IntPr.fast_tac 1) handle ERROR => writeln"Failed, as expected";  
   219 getgoal 1; 
   219 getgoal 1; 
   220 
   220 
   221 goal IFOLP.thy "?p : (ALL x. ~~P(x)) --> ~~(ALL x. P(x))";
   221 goal IFOLP.thy "?p : (ALL x. ~~P(x)) --> ~~(ALL x. P(x))";
   222 by (IntPr.fast_tac 1) handle ERROR => writeln"Failed, as expected";  
   222 by (IntPr.fast_tac 1) handle ERROR => writeln"Failed, as expected";  
   262 by (IntPr.best_tac 1);  
   262 by (IntPr.best_tac 1);  
   263 result();
   263 result();
   264 
   264 
   265 writeln"Problem 24";
   265 writeln"Problem 24";
   266 goal IFOLP.thy "?p : ~(EX x. S(x)&Q(x)) & (ALL x. P(x) --> Q(x)|R(x)) &  \
   266 goal IFOLP.thy "?p : ~(EX x. S(x)&Q(x)) & (ALL x. P(x) --> Q(x)|R(x)) &  \
   267 \    (~(EX x.P(x)) --> (EX x.Q(x))) & (ALL x. Q(x)|R(x) --> S(x))  \
   267 \    (~(EX x. P(x)) --> (EX x. Q(x))) & (ALL x. Q(x)|R(x) --> S(x))  \
   268 \   --> ~~(EX x. P(x)&R(x))";
   268 \   --> ~~(EX x. P(x)&R(x))";
   269 (*Not clear why fast_tac, best_tac, ASTAR and ITER_DEEPEN all take forever*)
   269 (*Not clear why fast_tac, best_tac, ASTAR and ITER_DEEPEN all take forever*)
   270 by IntPr.safe_tac; 
   270 by IntPr.safe_tac; 
   271 by (etac impE 1);
   271 by (etac impE 1);
   272 by (IntPr.fast_tac 1); 
   272 by (IntPr.fast_tac 1); 
   295 \   --> (ALL x. ~~S(x))";
   295 \   --> (ALL x. ~~S(x))";
   296 by (IntPr.fast_tac 1);  
   296 by (IntPr.fast_tac 1);  
   297 result();
   297 result();
   298 
   298 
   299 writeln"Problem 31";
   299 writeln"Problem 31";
   300 goal IFOLP.thy "?p : ~(EX x.P(x) & (Q(x) | R(x))) & \
   300 goal IFOLP.thy "?p : ~(EX x. P(x) & (Q(x) | R(x))) & \
   301 \       (EX x. L(x) & P(x)) & \
   301 \       (EX x. L(x) & P(x)) & \
   302 \       (ALL x. ~ R(x) --> M(x))  \
   302 \       (ALL x. ~ R(x) --> M(x))  \
   303 \   --> (EX x. L(x) & M(x))";
   303 \   --> (EX x. L(x) & M(x))";
   304 by (IntPr.fast_tac 1);
   304 by (IntPr.fast_tac 1);
   305 result();
   305 result();