[isabelle-dev] sign_simps

Florian Haftmann florian.haftmann at informatik.tu-muenchen.de
Sat Feb 14 11:32:16 CET 2015


In c3ca292c1484 src/HOL/Fields.thy, there is a pseudo fact-collection
sign_simps with a comment (from about 2007):

> Lemmas @{text sign_simps} is a first attempt to automate proofs
> of positivity/negativity needed for @{text field_simps}. Have not added @{text
> sign_simps} to @{text field_simps} because the former can lead to case
> explosions.

It is used but not that prominently:

> $ grep -rIPn sign_simps src/HOL ../../afp/devel/thys/
> src/HOL/Multivariate_Analysis/Derivative.thy:686:      linordered_field_class.sign_simps(41) nonzero_mult_divide_cancel_right not_real_square_gt_zero
> src/HOL/Probability/ex/Koepf_Duermuth_Countermeasure.thy:466:    unfolding entropy_chain_rule[symmetric, OF simple_function_finite simple_function_finite] sign_simps
> src/HOL/Fields.thy:816: prefer 2 apply(simp add:sign_simps)
> src/HOL/Fields.thy:818: prefer 2 apply(simp add:sign_simps)
> src/HOL/Decision_Procs/Approximation.thy:244:    hence "0 < m" using assms powr_gt_zero[of 2 e] by (auto simp: sign_simps)
> ../../afp/devel/thys/Affine_Arithmetic/Counterclockwise_2D_Arbitrary.thy:36:  by (auto simp: psi_def lex_def det3_def' not_less sign_simps)
> ../../afp/devel/thys/Affine_Arithmetic/Counterclockwise_2D_Arbitrary.thy:79:  by (auto simp: lex_def prod_eq_iff less_eq_prod_def sign_simps)
> ../../afp/devel/thys/Affine_Arithmetic/Counterclockwise_2D_Arbitrary.thy:229:  by (auto simp: ccw'_def det3_def' lex_def sign_simps)
> ../../afp/devel/thys/Affine_Arithmetic/Counterclockwise_2D_Arbitrary.thy:500:      by (auto simp: lex_def not_less sign_simps y ccw'_def)
> ../../afp/devel/thys/pGCL/Healthiness.thy:114:    from uP have "0 \<le> 1 - P s" by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Healthiness.thy:127:    have "wp g Q s \<le> b" and "0 \<le> 1 - P s" by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Healthiness.thy:147:    moreover from uP have "0 \<le> 1 - P s" by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Healthiness.thy:179:  from uP have nnP: "0 \<le> P s" "0 \<le> 1 - P s" by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Continuity.thy:301:      from up show "0 \<le> 1 - p s" by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Continuity.thy:360:    moreover from up have "0 \<le> (1 - p s)" by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Continuity.thy:374:      moreover from up have "0 \<le> 1 - p s" by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Continuity.thy:440:    moreover from up have "0 \<le> p s" "0 \<le> 1 - p s" by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Continuity.thy:451:    moreover from up have "\<And>s. 0 \<le> p s" "\<And>s. 0 \<le> 1 - p s" by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Continuity.thy:698:          from up have "0 \<le> p y" "0 \<le> 1 - p x" by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Algebra.thy:361:    hence "\<And>s. 0 \<le> ?Pc s" by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Sublinearity.thy:98:        by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/Sublinearity.thy:117:      by(auto simp:sign_simps)
> ../../afp/devel/thys/pGCL/WellDefined.thy:335:    using uP by(auto simp:sign_simps)
> ../../afp/devel/thys/LinearQuantifierElim/Thys/FRE.thy:174:      from * have [simp]: "c * (c * (d * (d * 4))) > 0" by (auto simp add: sign_simps)

I see two possibilities:
* Discontinue sign_simps as an comparingly unfruitful attempt.
* Turn sign_simps in a proper fact collection like algebra_simps and
field_simps.  Maybe there are other candidates of splitting rewrite rules?

Any suggestions on that topic?

Cheers,
	Florian

-- 

PGP available:
http://home.informatik.tu-muenchen.de/haftmann/pgp/florian_haftmann_at_informatik_tu_muenchen_de

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <https://mailmanbroy.informatik.tu-muenchen.de/pipermail/isabelle-dev/attachments/20150214/fb0953ee/attachment-0001.asc>


More information about the isabelle-dev mailing list