diff -r feb0c01cf0fb -r 2aaa4a5569a6 src/HOL/Extraction.thy --- a/src/HOL/Extraction.thy Sun Aug 24 14:42:22 2008 +0200 +++ b/src/HOL/Extraction.thy Sun Aug 24 14:42:24 2008 +0200 @@ -44,7 +44,7 @@ ProofRewriteRules.rprocs true) o Proofterm.rewrite_proof thy (RewriteHOLProof.rews, ProofRewriteRules.rprocs true) o - ProofRewriteRules.elim_vars (curry Const "arbitrary")) + ProofRewriteRules.elim_vars (curry Const @{const_name default})) end *} @@ -221,6 +221,10 @@ theorem exE_realizer': "P (snd p) (fst p) \ (\x y. P y x \ Q) \ Q" by (cases p) simp +setup {* + Sign.add_const_constraint (@{const_name "default"}, SOME @{typ "'a::type"}) +*} + realizers impI (P, Q): "\pq. pq" "\ P Q pq (h: _). allI \ _ \ (\ x. impI \ _ \ _ \ (h \ x))" @@ -356,7 +360,7 @@ disjE: "Null" "\ P Q R pq. disjE_realizer3 \ _ \ _ \ pq \ (\x. R) \ _ \ _" - FalseE (P): "arbitrary" + FalseE (P): "default" "\ P. FalseE \ _" FalseE: "Null" "FalseE" @@ -366,13 +370,13 @@ notI: "Null" "notI" - notE (P, R): "\p. arbitrary" + notE (P, R): "\p. default" "\ P R (h: _) p. notE \ _ \ _ \ (spec \ _ \ p \ h)" notE (P): "Null" "\ P R (h: _) p. notE \ _ \ _ \ (spec \ _ \ p \ h)" - notE (R): "arbitrary" + notE (R): "default" "\ P R. notE \ _ \ _" notE: "Null" "notE" @@ -432,4 +436,8 @@ "\ P. classical \ _" *) +setup {* + Sign.add_const_constraint (@{const_name "default"}, SOME @{typ "'a::default"}) +*} + end