make definitional CNF translation code more robust in the presence of existential quantifiers in the "literals"
authorblanchet
Thu, 02 Sep 2010 11:02:13 +0200
changeset 39035 094848cf7ef3
parent 39014 e820beaf7d8c
child 39036 dff91b90d74c
make definitional CNF translation code more robust in the presence of existential quantifiers in the "literals"
src/HOL/Tools/cnf_funcs.ML
--- a/src/HOL/Tools/cnf_funcs.ML	Thu Sep 02 08:51:16 2010 +0200
+++ b/src/HOL/Tools/cnf_funcs.ML	Thu Sep 02 11:02:13 2010 +0200
@@ -430,7 +430,7 @@
 				in
 					make_cnf_disj_conj_r OF [thm1, thm2]  (* (x' | (y1 & y2)) = ((x' | y1)' & (x' | y2)') *)
 				end
-			  | make_cnfx_disj_thm (Const (@{const_name Ex}, _) $ x') y' =
+			  | make_cnfx_disj_thm (@{term "Ex::(bool => bool) => bool"} $ x') y' =
 				let
 					val thm1 = inst_thm thy [x', y'] make_cnfx_disj_ex_l   (* ((Ex x') | y') = (Ex (x' | y')) *)
 					val var  = new_free ()
@@ -441,7 +441,7 @@
 				in
 					iff_trans OF [thm1, thm5]  (* ((Ex x') | y') = (Ex v. body') *)
 				end
-			  | make_cnfx_disj_thm x' (Const (@{const_name Ex}, _) $ y') =
+			  | make_cnfx_disj_thm x' (@{term "Ex::(bool => bool) => bool"} $ y') =
 				let
 					val thm1 = inst_thm thy [x', y'] make_cnfx_disj_ex_r   (* (x' | (Ex y')) = (Ex (x' | y')) *)
 					val var  = new_free ()