diff -r e321569ec7a1 -r b6b7f3caa74a src/HOL/Wellfounded.thy --- a/src/HOL/Wellfounded.thy Mon Dec 19 11:25:37 2022 +0100 +++ b/src/HOL/Wellfounded.thy Mon Dec 19 11:26:56 2022 +0100 @@ -864,6 +864,14 @@ "sym r\<^sub>A \ sym r\<^sub>B \ sym (r\<^sub>A <*lex*> r\<^sub>B)" by (rule sym_on_lex_prod[of UNIV _ UNIV, unfolded UNIV_Times_UNIV]) +lemma asym_on_lex_prod[simp]: + "asym_on A r\<^sub>A \ asym_on B r\<^sub>B \ asym_on (A \ B) (r\<^sub>A <*lex*> r\<^sub>B)" + by (auto intro!: asym_onI dest: asym_onD) + +lemma asym_lex_prod[simp]: + "asym r\<^sub>A \ asym r\<^sub>B \ asym (r\<^sub>A <*lex*> r\<^sub>B)" + by (rule asym_on_lex_prod[of UNIV _ UNIV, unfolded UNIV_Times_UNIV]) + text \\<*lex*>\ preserves transitivity\ lemma trans_lex_prod [simp,intro!]: "trans R1 \ trans R2 \ trans (R1 <*lex*> R2)" unfolding trans_def lex_prod_def by blast @@ -875,9 +883,6 @@ lemma total_lex_prod[simp]: "total r\<^sub>A \ total r\<^sub>B \ total (r\<^sub>A <*lex*> r\<^sub>B)" by (rule total_on_lex_prod[of UNIV _ UNIV, unfolded UNIV_Times_UNIV]) -lemma asym_lex_prod: "\asym R; asym S\ \ asym (R <*lex*> S)" - by (auto simp add: asym_iff lex_prod_def) - text \lexicographic combinations with measure functions\ definition mlex_prod :: "('a \ nat) \ ('a \ 'a) set \ ('a \ 'a) set" (infixr "<*mlex*>" 80)