# HG changeset patch # User wenzelm # Date 1552134299 -3600 # Node ID dec7cc38a5dc754c91cbf9e61a8f7e00249f306d # Parent f8293bf510a0f0fbdf8390ade58ba505717b687e tuned proof; diff -r f8293bf510a0 -r dec7cc38a5dc src/HOL/Computational_Algebra/Euclidean_Algorithm.thy --- a/src/HOL/Computational_Algebra/Euclidean_Algorithm.thy Sat Mar 09 13:19:13 2019 +0100 +++ b/src/HOL/Computational_Algebra/Euclidean_Algorithm.thy Sat Mar 09 13:24:59 2019 +0100 @@ -235,10 +235,12 @@ with less.prems have "y \ 0" "z \ 0" by auto have normalized_factors_product: "{p. p dvd a * b \ normalize p = p} = - (\(x,y). x * y) ` ({p. p dvd a \ normalize p = p} \ {p. p dvd b \ normalize p = p})" for a b + (\(x,y). x * y) ` ({p. p dvd a \ normalize p = p} \ {p. p dvd b \ normalize p = p})" + for a b proof safe fix p assume p: "p dvd a * b" "normalize p = p" - from dvd_productE[OF p(1)] guess x y . note xy = this + from p(1) obtain x y where xy: "p = x * y" "x dvd a" "y dvd b" + by (rule dvd_productE) define x' y' where "x' = normalize x" and "y' = normalize y" have "p = x' * y'" by (subst p(2) [symmetric]) (simp add: xy x'_def y'_def normalize_mult)