# HG changeset patch # User desharna # Date 1710675251 -3600 # Node ID caa9dbffd712e7d6f75e9ead07f242bf67cf5863 # Parent 91b7695c92cff77b7fa09d080e50f801fcfe74e9 added lemmas wf_on_antimono, wf_on_antimono_strong, wfp_on_antimono, wfp_on_antimono_strong, wf_on_subset, and wfp_on_subset diff -r 91b7695c92cf -r caa9dbffd712 NEWS --- a/NEWS Sun Mar 17 09:05:44 2024 +0100 +++ b/NEWS Sun Mar 17 12:34:11 2024 +0100 @@ -103,11 +103,17 @@ wf_onE_pf wf_onI_pf wf_on_UNIV + wf_on_antimono + wf_on_antimono_strong wf_on_iff_ex_minimal wf_on_induct + wf_on_subset wfp_on_UNIV + wfp_on_antimono + wfp_on_antimono_strong wfp_on_iff_ex_minimal wfp_on_induct + wfp_on_subset wfp_on_wf_on_eq * Theory "HOL-Library.Multiset": diff -r 91b7695c92cf -r caa9dbffd712 src/HOL/Wellfounded.thy --- a/src/HOL/Wellfounded.thy Sun Mar 17 09:05:44 2024 +0100 +++ b/src/HOL/Wellfounded.thy Sun Mar 17 12:34:11 2024 +0100 @@ -230,6 +230,38 @@ lemmas wfP_eq_minimal = wf_eq_minimal [to_pred] +subsubsection \Antimonotonicity\ + +lemma wf_on_antimono_strong: + assumes "wf_on B r" and "A \ B" and "(\x y. x \ A \ y \ A \ (x, y) \ q \ (x, y) \ r)" + shows "wf_on A q" + unfolding wf_on_iff_ex_minimal +proof (intro allI impI) + fix AA assume "AA \ A" and "AA \ {}" + hence "\z\AA. \y. (y, z) \ r \ y \ AA" + using \wf_on B r\ \A \ B\ + by (simp add: wf_on_iff_ex_minimal) + then show "\z\AA. \y. (y, z) \ q \ y \ AA" + using \AA \ A\ assms(3) by blast +qed + +lemma wfp_on_antimono_strong: + "wfp_on B R \ A \ B \ (\x y. x \ A \ y \ A \ Q x y \ R x y) \ wfp_on A Q" + using wf_on_antimono_strong[of B _ A, to_pred] . + +lemma wf_on_antimono: "A \ B \ q \ r \ wf_on B r \ wf_on A q" + using wf_on_antimono_strong[of B r A q] by auto + +lemma wfp_on_antimono: "A \ B \ Q \ R \ wfp_on B R \ wfp_on A Q" + using wfp_on_antimono_strong[of B R A Q] by auto + +lemma wf_on_subset: "wf_on B r \ A \ B \ wf_on A r" + using wf_on_antimono_strong . + +lemma wfp_on_subset: "wfp_on B R \ A \ B \ wfp_on A R" + using wfp_on_antimono_strong . + + subsubsection \Well-foundedness of transitive closure\ lemma wf_trancl: